From 195d6a9d7de32a10f24f41c428d7163ec00bfef1 Mon Sep 17 00:00:00 2001 From: atratsevskiy Date: Tue, 9 Jun 2009 15:26:22 +0000 Subject: [PATCH] git-svn-id: http://svn.calculate.ru/calculate/trunk@1671 c91db197-33c1-4113-bf15-f8a5c547ca64 --- COPYING | 15 + Change.log | 37 + LICENSE | 674 ++ Makefile | 16 + .../addition/CDS/develop/server_develop | 17 + install/builder/addition/CDS/web/server_sql | 13 + install/builder/addition/CDS/web/server_web | 21 + install/builder/addition/CDS/x/server_x | 7 + install/builder/addition/CDS/x/x_drivers | 13 + .../addition/CLD/develop/desktop_developer | 13 + .../builder/addition/CLD/develop/desktop_edu | 6 + .../addition/CLD/develop/desktop_emulation | 6 + .../builder/addition/CLD/develop/desktop_sql | 10 + .../builder/addition/CLD/develop/server_sql | 7 + .../builder/addition/CLD/develop/server_web | 5 + .../builder/addition/CLD/games/games-action | 5 + .../builder/addition/CLD/games/games-arcade | 10 + .../addition/CLD/games/games-emulation | 11 + .../builder/addition/CLD/games/games-puzzle | 5 + .../builder/addition/CLD/games/games-sports | 5 + .../builder/addition/CLD/games/games-strategy | 5 + install/builder/addition/CLD/games/kde-base | 35 + install/builder/addition/CLD/hacker/wireless | 4 + .../addition/CLD/mediatools/desktop_audioedit | 10 + .../addition/CLD/mediatools/desktop_videoedit | 18 + .../kernel/config?system=desktop&march=i686 | 2719 +++++++ .../kernel/config?system=desktop&march=x86_64 | 2676 +++++++ install/builder/packages/base/base | 42 + install/builder/packages/base/base_arc | 16 + install/builder/packages/base/base_first | 11 + install/builder/packages/base/base_hacker | 7 + install/builder/packages/base/base_net | 13 + install/builder/packages/base/base_tools | 10 + install/builder/packages/base/base_ups | 5 + .../builder/packages/base/desktop_wireless | 17 + .../packages/base?system=desktop/desktop | 12 + .../base?system=desktop/desktop_decoration | 8 + .../base?system=desktop/desktop_laptop | 16 + .../base?system=desktop/desktop_media | 5 + .../packages/base?system=desktop/desktop_net | 10 + .../base?system=desktop/desktop_nettools | 9 + .../base?system=desktop/desktop_print | 9 + .../base?system=desktop/desktop_video | 6 + .../base?system=desktop/desktop_wireless | 7 + .../packages/base?system=desktop/desktop_x | 6 + .../packages/base?system=desktop/server_file | 6 + .../packages/base?system=desktop/x11_drivers | 10 + .../packages/desktop?calculate=CLD/desktop | 10 + .../desktop?calculate=CLD/desktop_decoration | 11 + .../desktop?calculate=CLD/desktop_developer | 10 + .../desktop?calculate=CLD/desktop_dict | 29 + .../desktop?calculate=CLD/desktop_emulation | 9 + .../desktop?calculate=CLD/desktop_graphics | 10 + .../desktop?calculate=CLD/desktop_guard | 6 + .../desktop?calculate=CLD/desktop_hacker | 10 + .../desktop?calculate=CLD/desktop_home | 17 + .../desktop?calculate=CLD/desktop_kde | 307 + .../desktop?calculate=CLD/desktop_net | 15 + .../desktop?calculate=CLD/desktop_nettools | 16 + .../desktop?calculate=CLD/desktop_office | 35 + .../desktop?calculate=CLD/desktop_video | 16 + .../desktop?calculate=CLD/desktop_wireless | 6 + .../desktop?calculate=CLD/x11_drivers | 6 + .../packages/desktop?calculate=CLDX/desktop | 6 + .../desktop?calculate=CLDX/desktop_decoration | 22 + .../desktop?calculate=CLDX/desktop_dict | 13 + .../desktop?calculate=CLDX/desktop_graphics | 9 + .../desktop?calculate=CLDX/desktop_hacker | 10 + .../desktop?calculate=CLDX/desktop_home | 12 + .../desktop?calculate=CLDX/desktop_net | 13 + .../desktop?calculate=CLDX/desktop_nettools | 16 + .../desktop?calculate=CLDX/desktop_office | 11 + .../desktop?calculate=CLDX/desktop_video | 6 + .../desktop?calculate=CLDX/desktop_xfce | 10 + .../packages/server?calculate=CDS/server | 13 + .../server?calculate=CDS/server_decoration | 6 + .../server?calculate=CDS/server_developer | 7 + .../packages/server?calculate=CDS/server_file | 8 + .../server?calculate=CDS/server_guard | 6 + .../server?calculate=CDS/server_hacker | 6 + .../packages/server?calculate=CDS/server_mail | 11 + .../server?calculate=CDS/server_media | 6 + .../packages/server?calculate=CDS/server_net | 17 + .../server?calculate=CDS/server_nettools | 29 + .../packages/server?calculate=CDS/server_sql | 6 + .../server?calculate=CDS/server_tools | 7 + install/builder/profile/0builder/etc/issue | 3 + .../builder/profile/0builder/etc/locale.gen | 40 + .../builder/profile/0builder/etc/make.conf | 33 + .../package.keywords/CLD?calculate=CLD | 24 + .../package.keywords/CLDX?calculate=CLDX | 5 + .../etc/portage/package.keywords/default | 27 + .../etc/portage/package.keywords/dependence | 2 + .../package.keywords/desktop?system=desktop | 10 + .../package.keywords/kde?calculate=CLD | 4 + .../etc/portage/package.keywords/using | 3 + .../portage/package.mask/CDS?calculate=CDS | 4 + .../portage/package.mask/CLD?calculate=CLD | 24 + .../0builder/etc/portage/package.mask/default | 32 + .../0builder/etc/portage/package.mask/using | 3 + .../portage/package.unmask/CLD?calculate=CLD | 3 + .../etc/portage/package.unmask/dependence | 2 + .../kde?calculate=CLD&calcver=9.0 | 4 + .../0builder/etc/portage/package.unmask/using | 3 + .../etc/portage/package.use/CDS?calculate=CDS | 4 + .../etc/portage/package.use/CLD?calculate=CLD | 14 + .../portage/package.use/CLDX?calculate=CLDX | 6 + .../0builder/etc/portage/package.use/default | 8 + .../package.use/desktop?system=desktop | 28 + .../portage/package.use/games?calculate=CLD | 5 + .../0builder/etc/portage/package.use/using | 3 + .../0builder/etc/portage/profile/virtuals | 13 + install/builder/profile/IMG/etc/issue | 3 + .../builder/profile/IMG/etc/modprobe.d/bond | 1 + install/builder/profile/IMG/etc/mtab | 0 .../profile/IMG/etc/splash/tty1/1024x768.cfg | 58 + .../profile/IMG/etc/splash/tty2/1024x768.cfg | 23 + .../profile/IMG/etc/splash/tty3/1024x768.cfg | 23 + .../profile/IMG/etc/splash/tty4/1024x768.cfg | 23 + .../profile/IMG/etc/splash/tty5/1024x768.cfg | 23 + .../profile/IMG/etc/splash/tty6/1024x768.cfg | 23 + .../profile/ISO/calculate/etc/^rc.conf | 5 + .../profile/ISO/calculate/etc/conf.d/hostname | 4 + .../profile/ISO/calculate/etc/conf.d/hwclock | 15 + .../builder/profile/ISO/calculate/etc/fstab | 7 + .../ISO/calculate/etc/init.d/calculate | 31 + ...device-mapper?linuxver>9.4.3&linuxver<=9.5 | 26 + .../builder/profile/ISO/calculate/etc/mtab | 0 .../calculate/etc/runlevels/boot/calculate | 1 + .../builder/profile/ISO/calculate/etc/sudoers | 4 + .../profile/ISO/calculate/usr/sbin/calculate | 1 + .../ISO/target/boot/memtest86plus/memtest.bin | Bin 0 -> 124152 bytes .../profile/ISO/target/isolinux/back.jpg | Bin 0 -> 21454 bytes .../profile/ISO/target/isolinux/common.cfg | 26 + .../profile/ISO/target/isolinux/f1.txt | 22 + .../profile/ISO/target/isolinux/isolinux.cfg | 32 + .../profile/ISO/target/isolinux/isolinux.txt | 8 + .../profile/ISO/target/isolinux/keymap.cfg | 92 + .../profile/ISO/target/isolinux/lang.cfg | 42 + .../profile/ISO/target/isolinux/timezone.cfg | 436 ++ .../profile/ISO/target/isolinux/vga.cfg | 38 + install/builder/profile/ISO/target/livecd | 1 + install/builder/use/Artwork | 5 + install/builder/use/Audio | 17 + install/builder/use/CD_and_DVD | 9 + install/builder/use/Doc | 3 + install/builder/use/Guard_and_Security | 12 + install/builder/use/Hardware | 30 + install/builder/use/IM | 8 + install/builder/use/Image | 27 + install/builder/use/Language | 4 + install/builder/use/Locale_and_Fonts | 10 + install/builder/use/Mail | 11 + install/builder/use/Net | 19 + install/builder/use/Photo | 4 + install/builder/use/Printing | 3 + install/builder/use/Sql | 5 + install/builder/use/System | 8 + install/builder/use/Video | 38 + install/builder/use/WM_and_Speciality | 26 + install/builder/use/Web | 11 + install/calculate | 6523 +++++++++++++++++ install/config/fdisk.CDS | 46 + install/config/fdisk.CLD | 46 + install/config/fdisk.CLDX | 46 + install/i18n/ru | 1 + install/i18n/ru_RU/LC_MESSAGES/calculate.mo | Bin 0 -> 28903 bytes install/i18n/ru_RU/LC_MESSAGES/calculate.po | 939 +++ install/profile/1default/boot/grub/device.map | 1 + .../1default/boot/grub/grub.conf?pass=install | 40 + install/profile/1default/etc/X11/xorg.conf | 105 + .../profile/1default/etc/conf.d/fbcondecor | 8 + install/profile/1default/etc/conf.d/gpm | 4 + install/profile/1default/etc/conf.d/hdparm | 5 + install/profile/1default/etc/conf.d/hostname | 4 + .../1default/etc/conf.d/net?calculate=CDS | 3 + .../conf.d/net?system=desktop&linuxver<=9.5 | 3 + install/profile/1default/etc/conf.d/splash | 54 + .../1default/etc/cron.hourly/clocksync | 4 + install/profile/1default/etc/eix-sync.conf | 1 + .../etc/fstab?pass=install&location!=ram | 9 + install/profile/1default/etc/hosts | 3 + ...install&removableinstall=off&location!=ram | 38 + ...=install&removableinstall=on&location!=ram | 48 + .../init.d/net.ath0?net_ath0=on&linuxver<=9.5 | 1 + .../init.d/net.eth0?net_eth0=on&calculate=CDS | 1 + ...h0?net_eth0=on&calculate=CLD&linuxver<=9.5 | 1 + .../init.d/net.eth1?net_eth1=on&calculate=CDS | 1 + ...h1?net_eth1=on&calculate=CLD&linuxver<=9.5 | 1 + .../init.d/net.eth2?net_eth2=on&calculate=CDS | 1 + .../init.d/net.eth3?net_eth3=on&calculate=CDS | 1 + .../net.wlan0?net_wlan0=on&linuxver<=9.5 | 1 + install/profile/1default/etc/issue | 8 + .../profile/1default/etc/layman/~layman.cfg | 3 + .../profile/1default/etc/modprobe.d/saa7134 | 1 + .../profile/1default/etc/modules.d/saa7134 | 7 + .../profile/1default/etc/mtab?pass=install | 1 + .../boot/calculate?pass=install&location!=ram | 1 + .../1default/etc/runlevels/boot/syslog-ng | 1 + .../1default/etc/runlevels/default/dbus | 1 + .../1default/etc/runlevels/default/hald | 1 + .../1default/etc/runlevels/default/hdparm | 1 + .../etc/runlevels/default/numlock?laptop!= | 1 + .../etc/runlevels/default/sshd?location!=ram | 1 + .../1default/etc/runlevels/default/vixie-cron | 1 + install/profile/1default/etc/ssh/ssh_config | 4 + install/profile/1default/etc/ssh/sshd_config | 15 + .../profile/1default/etc/sudoers?pass=install | 3 + install/profile/1default/etc/wgetrc | 7 + install/profile/1default/etc/~make.conf | 3 + .../1default/root/.bash_profile?load=ram | 5 + .../profile/1default/usr/local/bin/livecd.sh | 16 + .../2locale/etc/conf.d/clock?linuxver<9.4.3 | 8 + .../profile/2locale/etc/conf.d/consolefont | 3 + install/profile/2locale/etc/conf.d/hwclock | 15 + install/profile/2locale/etc/conf.d/keymaps | 6 + install/profile/2locale/etc/env.d/02locale | 5 + install/profile/2locale/etc/motd?pass=install | 0 .../motd?pass=profile&load=ram&language!=ru | 24 + .../motd?pass=profile&load=ram&language=ru | 25 + install/profile/2locale/etc/timezone | 1 + ...refox-l10n.js?linuxver>=8.9&system=desktop | 1 + .../3patch/etc/mc/^mc.menu?pass=install | 9 + install/profile/5compatible/etc/default/grub | 3 + .../etc/hal/fdi/policy/ntfs-3g.fdi | 10 + ...device-mapper?linuxver>9.4.3&linuxver<=9.5 | 26 + .../5compatible/etc/man.conf?language=ru | 149 + .../profile/5compatible/sbin/mount.ntfs-3g | 5 + install/profile/6desktop/etc/conf.d/slmodem | 37 + install/profile/6desktop/etc/env.d/99editor | 2 + .../profile/6desktop/etc/runlevels/boot/wicd | 1 + .../default/bluetooth?usb_bluetooth=yes | 1 + .../6desktop/etc/runlevels/default/cupsd | 1 + .../6desktop/etc/runlevels/default/fbcondecor | 1 + .../6desktop/etc/runlevels/default/hotplug | 1 + .../etc/runlevels/default/hplip?usb_hp=yes | 1 + .../6desktop/etc/runlevels/default/portmap | 1 + .../6desktop/etc/runlevels/default/xdm | 1 + install/profile/6desktop/etc/sysctl.conf | 43 + .../etc/udev/rules.d/10-touchpad.rules | 4 + .../gcstar/GCPlugins/GCfilms/GCKinopoisk.pm | 343 + .../usr/share/X11/app-defaults/Xmessage | 19 + .../hal/fdi/policy/10osvendor/10-ntfs-3g.fdi | 10 + .../fdi/policy/10osvendor/10-x11-input.fdi | 37 + .../policy/10osvendor/11-x11-synaptics.fdi | 31 + .../10osvendor/15-x11-alps-touchpad.fdi | 35 + .../10osvendor/15-x11-apple-touchpad.fdi | 24 + .../10osvendor/15-x11-bcm5974-touchpad.fdi | 44 + .../10osvendor/15-x11-elantech-touchpad.fdi | 27 + .../10osvendor/15-x11-synaptics-touchpad.fdi | 31 + .../999-storage-policy-fixed-drives.fdi | 11 + .../client?linuxver>=8.11&system=desktop | 37 + .../etc/ldap.conf?server=CDS&system=desktop | 16 + .../nsswitch.conf?server!=CDS&system=desktop | 23 + .../nsswitch.conf?server=CDS&system=desktop | 19 + .../system-auth?server!=CDS&system=desktop | 15 + .../system-auth?server=CDS&system=desktop | 19 + .../default/client?server!=CDS&system=desktop | 0 .../default/client?server=CDS&system=desktop | 1 + .../ssh/ssh_config?server=CDS&system=desktop | 4 + install/profile/CDS/etc/env.d/99editor | 2 + .../CDS/etc/runlevels/default/fbcondecor | 1 + .../etc/runlevels/default/ntpd?location!=ram | 1 + install/profile/CDS/root/.mc/ini | 122 + install/profile/CDS/root/.weechat/weechat.rc | 22 + install/profile/CDS/usr/bin/irc | 1 + install/profile/CLD/etc/conf.d/xdm | 4 + .../profile/CLD/etc/dbus-1/system.d/hal.conf | 62 + install/profile/CLD/etc/env.d/90xsession | 2 + install/profile/CLD/root/.qt/qtrc | 13 + .../kdm/Xreset?client<2.0.17&linuxver<=9.5 | 16 + .../kdm/Xstartup?client<2.0.17&linuxver<=9.5 | 51 + .../CLD/usr/share/config/kdm/backgroundrc | 19 + .../profile/CLD/usr/share/config/kdm/~kdmrc | 122 + .../profile/CLD/usr/share/config/~kdeglobals | 14 + install/profile/CLDX/etc/conf.d/xdm | 4 + install/profile/CLDX/etc/env.d/90xsession | 2 + install/profile/CLDX/etc/~slim.conf | 12 + 278 files changed, 18496 insertions(+) create mode 100644 COPYING create mode 100644 Change.log create mode 100644 LICENSE create mode 100644 Makefile create mode 100644 install/builder/addition/CDS/develop/server_develop create mode 100644 install/builder/addition/CDS/web/server_sql create mode 100644 install/builder/addition/CDS/web/server_web create mode 100644 install/builder/addition/CDS/x/server_x create mode 100644 install/builder/addition/CDS/x/x_drivers create mode 100644 install/builder/addition/CLD/develop/desktop_developer create mode 100644 install/builder/addition/CLD/develop/desktop_edu create mode 100644 install/builder/addition/CLD/develop/desktop_emulation create mode 100644 install/builder/addition/CLD/develop/desktop_sql create mode 100644 install/builder/addition/CLD/develop/server_sql create mode 100644 install/builder/addition/CLD/develop/server_web create mode 100644 install/builder/addition/CLD/games/games-action create mode 100644 install/builder/addition/CLD/games/games-arcade create mode 100644 install/builder/addition/CLD/games/games-emulation create mode 100644 install/builder/addition/CLD/games/games-puzzle create mode 100644 install/builder/addition/CLD/games/games-sports create mode 100644 install/builder/addition/CLD/games/games-strategy create mode 100644 install/builder/addition/CLD/games/kde-base create mode 100644 install/builder/addition/CLD/hacker/wireless create mode 100644 install/builder/addition/CLD/mediatools/desktop_audioedit create mode 100644 install/builder/addition/CLD/mediatools/desktop_videoedit create mode 100644 install/builder/kernel/config?system=desktop&march=i686 create mode 100644 install/builder/kernel/config?system=desktop&march=x86_64 create mode 100644 install/builder/packages/base/base create mode 100644 install/builder/packages/base/base_arc create mode 100644 install/builder/packages/base/base_first create mode 100644 install/builder/packages/base/base_hacker create mode 100644 install/builder/packages/base/base_net create mode 100644 install/builder/packages/base/base_tools create mode 100644 install/builder/packages/base/base_ups create mode 100644 install/builder/packages/base/desktop_wireless create mode 100644 install/builder/packages/base?system=desktop/desktop create mode 100644 install/builder/packages/base?system=desktop/desktop_decoration create mode 100644 install/builder/packages/base?system=desktop/desktop_laptop create mode 100644 install/builder/packages/base?system=desktop/desktop_media create mode 100644 install/builder/packages/base?system=desktop/desktop_net create mode 100644 install/builder/packages/base?system=desktop/desktop_nettools create mode 100644 install/builder/packages/base?system=desktop/desktop_print create mode 100644 install/builder/packages/base?system=desktop/desktop_video create mode 100644 install/builder/packages/base?system=desktop/desktop_wireless create mode 100644 install/builder/packages/base?system=desktop/desktop_x create mode 100644 install/builder/packages/base?system=desktop/server_file create mode 100644 install/builder/packages/base?system=desktop/x11_drivers create mode 100644 install/builder/packages/desktop?calculate=CLD/desktop create mode 100644 install/builder/packages/desktop?calculate=CLD/desktop_decoration create mode 100644 install/builder/packages/desktop?calculate=CLD/desktop_developer create mode 100644 install/builder/packages/desktop?calculate=CLD/desktop_dict create mode 100644 install/builder/packages/desktop?calculate=CLD/desktop_emulation create mode 100644 install/builder/packages/desktop?calculate=CLD/desktop_graphics create mode 100644 install/builder/packages/desktop?calculate=CLD/desktop_guard create mode 100644 install/builder/packages/desktop?calculate=CLD/desktop_hacker create mode 100644 install/builder/packages/desktop?calculate=CLD/desktop_home create mode 100644 install/builder/packages/desktop?calculate=CLD/desktop_kde create mode 100644 install/builder/packages/desktop?calculate=CLD/desktop_net create mode 100644 install/builder/packages/desktop?calculate=CLD/desktop_nettools create mode 100644 install/builder/packages/desktop?calculate=CLD/desktop_office create mode 100644 install/builder/packages/desktop?calculate=CLD/desktop_video create mode 100644 install/builder/packages/desktop?calculate=CLD/desktop_wireless create mode 100644 install/builder/packages/desktop?calculate=CLD/x11_drivers create mode 100644 install/builder/packages/desktop?calculate=CLDX/desktop create mode 100644 install/builder/packages/desktop?calculate=CLDX/desktop_decoration create mode 100644 install/builder/packages/desktop?calculate=CLDX/desktop_dict create mode 100644 install/builder/packages/desktop?calculate=CLDX/desktop_graphics create mode 100644 install/builder/packages/desktop?calculate=CLDX/desktop_hacker create mode 100644 install/builder/packages/desktop?calculate=CLDX/desktop_home create mode 100644 install/builder/packages/desktop?calculate=CLDX/desktop_net create mode 100644 install/builder/packages/desktop?calculate=CLDX/desktop_nettools create mode 100644 install/builder/packages/desktop?calculate=CLDX/desktop_office create mode 100644 install/builder/packages/desktop?calculate=CLDX/desktop_video create mode 100644 install/builder/packages/desktop?calculate=CLDX/desktop_xfce create mode 100644 install/builder/packages/server?calculate=CDS/server create mode 100644 install/builder/packages/server?calculate=CDS/server_decoration create mode 100644 install/builder/packages/server?calculate=CDS/server_developer create mode 100644 install/builder/packages/server?calculate=CDS/server_file create mode 100644 install/builder/packages/server?calculate=CDS/server_guard create mode 100644 install/builder/packages/server?calculate=CDS/server_hacker create mode 100644 install/builder/packages/server?calculate=CDS/server_mail create mode 100644 install/builder/packages/server?calculate=CDS/server_media create mode 100644 install/builder/packages/server?calculate=CDS/server_net create mode 100644 install/builder/packages/server?calculate=CDS/server_nettools create mode 100644 install/builder/packages/server?calculate=CDS/server_sql create mode 100644 install/builder/packages/server?calculate=CDS/server_tools create mode 100644 install/builder/profile/0builder/etc/issue create mode 100644 install/builder/profile/0builder/etc/locale.gen create mode 100644 install/builder/profile/0builder/etc/make.conf create mode 100644 install/builder/profile/0builder/etc/portage/package.keywords/CLD?calculate=CLD create mode 100644 install/builder/profile/0builder/etc/portage/package.keywords/CLDX?calculate=CLDX create mode 100644 install/builder/profile/0builder/etc/portage/package.keywords/default create mode 100644 install/builder/profile/0builder/etc/portage/package.keywords/dependence create mode 100644 install/builder/profile/0builder/etc/portage/package.keywords/desktop?system=desktop create mode 100644 install/builder/profile/0builder/etc/portage/package.keywords/kde?calculate=CLD create mode 100644 install/builder/profile/0builder/etc/portage/package.keywords/using create mode 100644 install/builder/profile/0builder/etc/portage/package.mask/CDS?calculate=CDS create mode 100644 install/builder/profile/0builder/etc/portage/package.mask/CLD?calculate=CLD create mode 100644 install/builder/profile/0builder/etc/portage/package.mask/default create mode 100644 install/builder/profile/0builder/etc/portage/package.mask/using create mode 100644 install/builder/profile/0builder/etc/portage/package.unmask/CLD?calculate=CLD create mode 100644 install/builder/profile/0builder/etc/portage/package.unmask/dependence create mode 100644 install/builder/profile/0builder/etc/portage/package.unmask/kde?calculate=CLD&calcver=9.0 create mode 100644 install/builder/profile/0builder/etc/portage/package.unmask/using create mode 100644 install/builder/profile/0builder/etc/portage/package.use/CDS?calculate=CDS create mode 100644 install/builder/profile/0builder/etc/portage/package.use/CLD?calculate=CLD create mode 100644 install/builder/profile/0builder/etc/portage/package.use/CLDX?calculate=CLDX create mode 100644 install/builder/profile/0builder/etc/portage/package.use/default create mode 100644 install/builder/profile/0builder/etc/portage/package.use/desktop?system=desktop create mode 100644 install/builder/profile/0builder/etc/portage/package.use/games?calculate=CLD create mode 100644 install/builder/profile/0builder/etc/portage/package.use/using create mode 100644 install/builder/profile/0builder/etc/portage/profile/virtuals create mode 100644 install/builder/profile/IMG/etc/issue create mode 120000 install/builder/profile/IMG/etc/modprobe.d/bond create mode 100644 install/builder/profile/IMG/etc/mtab create mode 100644 install/builder/profile/IMG/etc/splash/tty1/1024x768.cfg create mode 100644 install/builder/profile/IMG/etc/splash/tty2/1024x768.cfg create mode 100644 install/builder/profile/IMG/etc/splash/tty3/1024x768.cfg create mode 100644 install/builder/profile/IMG/etc/splash/tty4/1024x768.cfg create mode 100644 install/builder/profile/IMG/etc/splash/tty5/1024x768.cfg create mode 100644 install/builder/profile/IMG/etc/splash/tty6/1024x768.cfg create mode 100644 install/builder/profile/ISO/calculate/etc/^rc.conf create mode 100644 install/builder/profile/ISO/calculate/etc/conf.d/hostname create mode 100644 install/builder/profile/ISO/calculate/etc/conf.d/hwclock create mode 100644 install/builder/profile/ISO/calculate/etc/fstab create mode 100755 install/builder/profile/ISO/calculate/etc/init.d/calculate create mode 100755 install/builder/profile/ISO/calculate/etc/init.d/device-mapper?linuxver>9.4.3&linuxver<=9.5 create mode 100644 install/builder/profile/ISO/calculate/etc/mtab create mode 120000 install/builder/profile/ISO/calculate/etc/runlevels/boot/calculate create mode 100644 install/builder/profile/ISO/calculate/etc/sudoers create mode 120000 install/builder/profile/ISO/calculate/usr/sbin/calculate create mode 100644 install/builder/profile/ISO/target/boot/memtest86plus/memtest.bin create mode 100644 install/builder/profile/ISO/target/isolinux/back.jpg create mode 100644 install/builder/profile/ISO/target/isolinux/common.cfg create mode 100755 install/builder/profile/ISO/target/isolinux/f1.txt create mode 100755 install/builder/profile/ISO/target/isolinux/isolinux.cfg create mode 100755 install/builder/profile/ISO/target/isolinux/isolinux.txt create mode 100644 install/builder/profile/ISO/target/isolinux/keymap.cfg create mode 100755 install/builder/profile/ISO/target/isolinux/lang.cfg create mode 100755 install/builder/profile/ISO/target/isolinux/timezone.cfg create mode 100755 install/builder/profile/ISO/target/isolinux/vga.cfg create mode 100644 install/builder/profile/ISO/target/livecd create mode 100644 install/builder/use/Artwork create mode 100644 install/builder/use/Audio create mode 100644 install/builder/use/CD_and_DVD create mode 100644 install/builder/use/Doc create mode 100644 install/builder/use/Guard_and_Security create mode 100644 install/builder/use/Hardware create mode 100644 install/builder/use/IM create mode 100644 install/builder/use/Image create mode 100644 install/builder/use/Language create mode 100644 install/builder/use/Locale_and_Fonts create mode 100644 install/builder/use/Mail create mode 100644 install/builder/use/Net create mode 100644 install/builder/use/Photo create mode 100644 install/builder/use/Printing create mode 100644 install/builder/use/Sql create mode 100644 install/builder/use/System create mode 100644 install/builder/use/Video create mode 100644 install/builder/use/WM_and_Speciality create mode 100644 install/builder/use/Web create mode 100755 install/calculate create mode 100644 install/config/fdisk.CDS create mode 100644 install/config/fdisk.CLD create mode 100644 install/config/fdisk.CLDX create mode 120000 install/i18n/ru create mode 100644 install/i18n/ru_RU/LC_MESSAGES/calculate.mo create mode 100644 install/i18n/ru_RU/LC_MESSAGES/calculate.po create mode 100644 install/profile/1default/boot/grub/device.map create mode 100644 install/profile/1default/boot/grub/grub.conf?pass=install create mode 100644 install/profile/1default/etc/X11/xorg.conf create mode 100644 install/profile/1default/etc/conf.d/fbcondecor create mode 100644 install/profile/1default/etc/conf.d/gpm create mode 100644 install/profile/1default/etc/conf.d/hdparm create mode 100644 install/profile/1default/etc/conf.d/hostname create mode 100644 install/profile/1default/etc/conf.d/net?calculate=CDS create mode 100644 install/profile/1default/etc/conf.d/net?system=desktop&linuxver<=9.5 create mode 100644 install/profile/1default/etc/conf.d/splash create mode 100755 install/profile/1default/etc/cron.hourly/clocksync create mode 100644 install/profile/1default/etc/eix-sync.conf create mode 100644 install/profile/1default/etc/fstab?pass=install&location!=ram create mode 100644 install/profile/1default/etc/hosts create mode 100755 install/profile/1default/etc/init.d/calculate?pass=install&removableinstall=off&location!=ram create mode 100755 install/profile/1default/etc/init.d/calculate?pass=install&removableinstall=on&location!=ram create mode 120000 install/profile/1default/etc/init.d/net.ath0?net_ath0=on&linuxver<=9.5 create mode 120000 install/profile/1default/etc/init.d/net.eth0?net_eth0=on&calculate=CDS create mode 120000 install/profile/1default/etc/init.d/net.eth0?net_eth0=on&calculate=CLD&linuxver<=9.5 create mode 120000 install/profile/1default/etc/init.d/net.eth1?net_eth1=on&calculate=CDS create mode 120000 install/profile/1default/etc/init.d/net.eth1?net_eth1=on&calculate=CLD&linuxver<=9.5 create mode 120000 install/profile/1default/etc/init.d/net.eth2?net_eth2=on&calculate=CDS create mode 120000 install/profile/1default/etc/init.d/net.eth3?net_eth3=on&calculate=CDS create mode 120000 install/profile/1default/etc/init.d/net.wlan0?net_wlan0=on&linuxver<=9.5 create mode 100644 install/profile/1default/etc/issue create mode 100644 install/profile/1default/etc/layman/~layman.cfg create mode 120000 install/profile/1default/etc/modprobe.d/saa7134 create mode 100644 install/profile/1default/etc/modules.d/saa7134 create mode 100644 install/profile/1default/etc/mtab?pass=install create mode 120000 install/profile/1default/etc/runlevels/boot/calculate?pass=install&location!=ram create mode 120000 install/profile/1default/etc/runlevels/boot/syslog-ng create mode 120000 install/profile/1default/etc/runlevels/default/dbus create mode 120000 install/profile/1default/etc/runlevels/default/hald create mode 120000 install/profile/1default/etc/runlevels/default/hdparm create mode 120000 install/profile/1default/etc/runlevels/default/numlock?laptop!= create mode 120000 install/profile/1default/etc/runlevels/default/sshd?location!=ram create mode 120000 install/profile/1default/etc/runlevels/default/vixie-cron create mode 100644 install/profile/1default/etc/ssh/ssh_config create mode 100644 install/profile/1default/etc/ssh/sshd_config create mode 100644 install/profile/1default/etc/sudoers?pass=install create mode 100644 install/profile/1default/etc/wgetrc create mode 100644 install/profile/1default/etc/~make.conf create mode 100644 install/profile/1default/root/.bash_profile?load=ram create mode 100755 install/profile/1default/usr/local/bin/livecd.sh create mode 100644 install/profile/2locale/etc/conf.d/clock?linuxver<9.4.3 create mode 100644 install/profile/2locale/etc/conf.d/consolefont create mode 100644 install/profile/2locale/etc/conf.d/hwclock create mode 100644 install/profile/2locale/etc/conf.d/keymaps create mode 100644 install/profile/2locale/etc/env.d/02locale create mode 100644 install/profile/2locale/etc/motd?pass=install create mode 100644 install/profile/2locale/etc/motd?pass=profile&load=ram&language!=ru create mode 100644 install/profile/2locale/etc/motd?pass=profile&load=ram&language=ru create mode 100644 install/profile/2locale/etc/timezone create mode 100644 install/profile/2locale/usr/lib/mozilla-firefox/defaults/preferences/firefox-l10n.js?linuxver>=8.9&system=desktop create mode 100644 install/profile/3patch/etc/mc/^mc.menu?pass=install create mode 100644 install/profile/5compatible/etc/default/grub create mode 100644 install/profile/5compatible/etc/hal/fdi/policy/ntfs-3g.fdi create mode 100755 install/profile/5compatible/etc/init.d/device-mapper?linuxver>9.4.3&linuxver<=9.5 create mode 100644 install/profile/5compatible/etc/man.conf?language=ru create mode 100755 install/profile/5compatible/sbin/mount.ntfs-3g create mode 100644 install/profile/6desktop/etc/conf.d/slmodem create mode 100644 install/profile/6desktop/etc/env.d/99editor create mode 120000 install/profile/6desktop/etc/runlevels/boot/wicd create mode 120000 install/profile/6desktop/etc/runlevels/default/bluetooth?usb_bluetooth=yes create mode 120000 install/profile/6desktop/etc/runlevels/default/cupsd create mode 120000 install/profile/6desktop/etc/runlevels/default/fbcondecor create mode 120000 install/profile/6desktop/etc/runlevels/default/hotplug create mode 120000 install/profile/6desktop/etc/runlevels/default/hplip?usb_hp=yes create mode 120000 install/profile/6desktop/etc/runlevels/default/portmap create mode 120000 install/profile/6desktop/etc/runlevels/default/xdm create mode 100644 install/profile/6desktop/etc/sysctl.conf create mode 100644 install/profile/6desktop/etc/udev/rules.d/10-touchpad.rules create mode 100644 install/profile/6desktop/usr/lib/gcstar/GCPlugins/GCfilms/GCKinopoisk.pm create mode 100644 install/profile/6desktop/usr/share/X11/app-defaults/Xmessage create mode 100644 install/profile/6desktop/usr/share/hal/fdi/policy/10osvendor/10-ntfs-3g.fdi create mode 100644 install/profile/6desktop/usr/share/hal/fdi/policy/10osvendor/10-x11-input.fdi create mode 100644 install/profile/6desktop/usr/share/hal/fdi/policy/10osvendor/11-x11-synaptics.fdi create mode 100644 install/profile/6desktop/usr/share/hal/fdi/policy/10osvendor/15-x11-alps-touchpad.fdi create mode 100644 install/profile/6desktop/usr/share/hal/fdi/policy/10osvendor/15-x11-apple-touchpad.fdi create mode 100644 install/profile/6desktop/usr/share/hal/fdi/policy/10osvendor/15-x11-bcm5974-touchpad.fdi create mode 100644 install/profile/6desktop/usr/share/hal/fdi/policy/10osvendor/15-x11-elantech-touchpad.fdi create mode 100644 install/profile/6desktop/usr/share/hal/fdi/policy/10osvendor/15-x11-synaptics-touchpad.fdi create mode 100644 install/profile/6desktop/usr/share/hal/fdi/policy/10osvendor/999-storage-policy-fixed-drives.fdi create mode 100755 install/profile/7intranet?client<2.0.17&linuxver<=9.5/etc/init.d/client?linuxver>=8.11&system=desktop create mode 100644 install/profile/7intranet?client<2.0.17&linuxver<=9.5/etc/ldap.conf?server=CDS&system=desktop create mode 100644 install/profile/7intranet?client<2.0.17&linuxver<=9.5/etc/nsswitch.conf?server!=CDS&system=desktop create mode 100644 install/profile/7intranet?client<2.0.17&linuxver<=9.5/etc/nsswitch.conf?server=CDS&system=desktop create mode 100644 install/profile/7intranet?client<2.0.17&linuxver<=9.5/etc/pam.d/system-auth?server!=CDS&system=desktop create mode 100644 install/profile/7intranet?client<2.0.17&linuxver<=9.5/etc/pam.d/system-auth?server=CDS&system=desktop create mode 100644 install/profile/7intranet?client<2.0.17&linuxver<=9.5/etc/runlevels/default/client?server!=CDS&system=desktop create mode 120000 install/profile/7intranet?client<2.0.17&linuxver<=9.5/etc/runlevels/default/client?server=CDS&system=desktop create mode 100644 install/profile/7intranet?client<2.0.17&linuxver<=9.5/etc/ssh/ssh_config?server=CDS&system=desktop create mode 100644 install/profile/CDS/etc/env.d/99editor create mode 120000 install/profile/CDS/etc/runlevels/default/fbcondecor create mode 120000 install/profile/CDS/etc/runlevels/default/ntpd?location!=ram create mode 100644 install/profile/CDS/root/.mc/ini create mode 100644 install/profile/CDS/root/.weechat/weechat.rc create mode 120000 install/profile/CDS/usr/bin/irc create mode 100644 install/profile/CLD/etc/conf.d/xdm create mode 100644 install/profile/CLD/etc/dbus-1/system.d/hal.conf create mode 100644 install/profile/CLD/etc/env.d/90xsession create mode 100644 install/profile/CLD/root/.qt/qtrc create mode 100755 install/profile/CLD/usr/share/config/kdm/Xreset?client<2.0.17&linuxver<=9.5 create mode 100755 install/profile/CLD/usr/share/config/kdm/Xstartup?client<2.0.17&linuxver<=9.5 create mode 100644 install/profile/CLD/usr/share/config/kdm/backgroundrc create mode 100644 install/profile/CLD/usr/share/config/kdm/~kdmrc create mode 100644 install/profile/CLD/usr/share/config/~kdeglobals create mode 100644 install/profile/CLDX/etc/conf.d/xdm create mode 100644 install/profile/CLDX/etc/env.d/90xsession create mode 100644 install/profile/CLDX/etc/~slim.conf diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..863b786 --- /dev/null +++ b/COPYING @@ -0,0 +1,15 @@ + Calculate + Copyright (C) 2006-2009 Calculate Pack; http://www.calculate-linux.org + +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 . diff --git a/Change.log b/Change.log new file mode 100644 index 0000000..95dbda7 --- /dev/null +++ b/Change.log @@ -0,0 +1,37 @@ +CHANGE LOG + +1.0.4 +* Добавлен метод распознавания laptop через hal +* Добавлено корректное распознавание двух видеокарт, встречаемых в некоторых моделях ноутбуков. +* Добавлена переменная #-video_id-# - идентификатор PCI слота видеокарты. +* Добавлено сохранение времени в bios при завершении работы (опция была забыта при переходе на openrc). +* Исправлена установка времени при загрузке с livecd. + +1.0.3 +* Добавлена поддержка установки CLDX 9.6. +* Добавлена поддержка профиля desktop/server для CLD/CLDX и CDS систем соответственно. +* Изменен метод определения аутентификации в LDAP сервере. +* Добавлен вывод языка, раскладки и временной зоны при установке системы. + +1.0.2 +* Функции по вводу Calculate Linux Desktop в домен замаскированы для версий 9.6, т.к. полностью перенесены в calculate-client начиная с версии 2.0.17. +* Вместо grub теперь используется calcboot (на базе isolinux) для создания livecd образа. +* При загрузке Livecd вместо vesa по возможности включается nv, radeon либо intel. +* Исправлен метод обнаружения разрешения экрана. +* При переустановке десктопной версии системы, начиная с 9.5.1, сетевые ресурсы fstab.conf не переносятся. +* При настройке xorg.conf применяются проприетарные драйвера ATI и Nvidia только в случае если система CLD и загружена с жесткого диска. +* Добавлена переменная #-client-#, содержащая версию установленного пакета calculate-client. +* Добавлена поддержка условия ИЛИ (разделитель "?") в условном блоке профиля. +* Удалены неиспользуемые модули в профиле xorg.conf +* Добавлен перенос директории /usr/portage при установке системы при отсутствии портежей в новой системе. +* Добавлена поддержка блоков при наложении переменных из файла профиля, начинающегося на "~". Поддерживается только простой формат конфигурационных фалов вида "параметр значение". +* Добавлена проверка на совместимость с устанавливаемой версией системы. + +1.0.1 +* Добавлен CHANGE LOG файл. +* Добавлена тестовая поддержка сборки и установки CLDX (Calculate Linux Desktop XFCE). +* Изменен метод установки системы из ISO образа. +* Отключен перенос точек монтирования при установке системы на другой жесткий диск с авторазбиением разделов. +* Добавлена поддержка настройки драйверов nv и ati в случае отсутствия проприетарных драйверов в системе. +* Добавлена поддержка спящего режима в параметрах grub.conf. + diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..94a9ed0 --- /dev/null +++ b/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + 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 . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..cd500c8 --- /dev/null +++ b/Makefile @@ -0,0 +1,16 @@ +INSTALL = install -D -m 644 +ECHO = echo +NAME = calculate +DESTDIR = +MKDIR = mkdir -p +FIND = find +CHMOD = chmod + +EXES = all + +all: + @${ECHO} -n + +install: all + @${FIND} install -wholename \*.svn -prune -o -type f -exec ${INSTALL} {} ${DESTDIR}/usr/${NAME}/{} \; + @${CHMOD} 755 ${DESTDIR}/usr/${NAME}/install/calculate diff --git a/install/builder/addition/CDS/develop/server_develop b/install/builder/addition/CDS/develop/server_develop new file mode 100644 index 0000000..d71c874 --- /dev/null +++ b/install/builder/addition/CDS/develop/server_develop @@ -0,0 +1,17 @@ +#------------------------------------------------------------------------------ +# Разработка ПО +#------------------------------------------------------------------------------ + +www-apps/bugzilla +media-gfx/graphviz +dev-perl/GDGraph +dev-perl/Template-GD +dev-perl/Email-Reply +dev-perl/HTML-Scrubber +dev-perl/XML-Twig +dev-perl/Chart +dev-perl/PatchReader +dev-perl/SOAP-Lite +dev-perl/DBD-Pg +dev-perl/Email-MIME-Attachment-Stripper + diff --git a/install/builder/addition/CDS/web/server_sql b/install/builder/addition/CDS/web/server_sql new file mode 100644 index 0000000..de4222e --- /dev/null +++ b/install/builder/addition/CDS/web/server_sql @@ -0,0 +1,13 @@ +#------------------------------------------------------------------------------ +# Сервер баз данных +#------------------------------------------------------------------------------ + +# PostgreSQL +dev-db/postgresql +dev-perl/DBD-Pg +dev-python/psycopg + +# MySQL +dev-db/mysql +dev-perl/DBD-mysql +dev-python/mysql-python diff --git a/install/builder/addition/CDS/web/server_web b/install/builder/addition/CDS/web/server_web new file mode 100644 index 0000000..df8d7d4 --- /dev/null +++ b/install/builder/addition/CDS/web/server_web @@ -0,0 +1,21 @@ +# Web-сервер + +app-dicts/ispell-ru +app-text/gocr +app-text/htmldoc #экспорт html в pdf в вики +dev-lang/php +dev-libs/geoip +dev-perl/Compress-Zlib +dev-perl/Crypt-Blowfish +dev-perl/crypt-cbc +dev-perl/GD +dev-perl/libwww-perl +dev-perl/Text-Iconv +dev-python/geoip-python +dev-python/mysql-python +dev-python/pythonmagick +dev-python/reportlab +media-gfx/imagemagick +www-apps/mediawiki +www-servers/apache + diff --git a/install/builder/addition/CDS/x/server_x b/install/builder/addition/CDS/x/server_x new file mode 100644 index 0000000..bc517b4 --- /dev/null +++ b/install/builder/addition/CDS/x/server_x @@ -0,0 +1,7 @@ +#------------------------------------------------------------------------------ +# Поддержка Xorg +#------------------------------------------------------------------------------ + +xorg-x11 +mplayer + diff --git a/install/builder/addition/CDS/x/x_drivers b/install/builder/addition/CDS/x/x_drivers new file mode 100644 index 0000000..cd41bba --- /dev/null +++ b/install/builder/addition/CDS/x/x_drivers @@ -0,0 +1,13 @@ +#------------------------------------------------------------------------------ +# Поддержка видеокарт +#------------------------------------------------------------------------------ + +#x11-drivers/ati-drivers +#x11-drivers/nvidia-drivers +x11-drivers/xf86-video-nv +x11-drivers/xf86-video-ati +x11-drivers/xf86-video-intel +x11-drivers/xf86-video-radeonhd +#x11-drivers/xf86-video-via +x11-drivers/xf86-video-sis + diff --git a/install/builder/addition/CLD/develop/desktop_developer b/install/builder/addition/CLD/develop/desktop_developer new file mode 100644 index 0000000..a5e99f1 --- /dev/null +++ b/install/builder/addition/CLD/develop/desktop_developer @@ -0,0 +1,13 @@ +#------------------------------------------------------------------------------ +# Инструменты разработчика +#------------------------------------------------------------------------------ + +app-editors/kxmleditor #редактор XML файлов +dev-lang/php +dev-python/ipython +dev-util/kdevelop #среда разработки программного обеспечения +dev-util/kdesvn +net-nds/luma +sys-devel/gdb #необходим для отображения протокола сбоя программы +#sys-devel/distcc + diff --git a/install/builder/addition/CLD/develop/desktop_edu b/install/builder/addition/CLD/develop/desktop_edu new file mode 100644 index 0000000..3502b89 --- /dev/null +++ b/install/builder/addition/CLD/develop/desktop_edu @@ -0,0 +1,6 @@ +#------------------------------------------------------------------------------ +# Программы для изучения +#------------------------------------------------------------------------------ + +dev-lang/fpc #Free Pascal компилятор + diff --git a/install/builder/addition/CLD/develop/desktop_emulation b/install/builder/addition/CLD/develop/desktop_emulation new file mode 100644 index 0000000..f8bacb6 --- /dev/null +++ b/install/builder/addition/CLD/develop/desktop_emulation @@ -0,0 +1,6 @@ +#------------------------------------------------------------------------------ +# Различные эмуляторы +#------------------------------------------------------------------------------ + +#app-emulation/virtualbox-bin #система виртуализации для Windows и др. + diff --git a/install/builder/addition/CLD/develop/desktop_sql b/install/builder/addition/CLD/develop/desktop_sql new file mode 100644 index 0000000..8d8be4b --- /dev/null +++ b/install/builder/addition/CLD/develop/desktop_sql @@ -0,0 +1,10 @@ +#------------------------------------------------------------------------------ +# Софт для работы с базами данных +#------------------------------------------------------------------------------ + +#dev-db/kpogre +#dev-db/myodbc +dev-db/pgadmin3 +#dev-db/unixODBC +#virtual/postgresql-base #Библиотеки доступа к PostgreSQL серверу + diff --git a/install/builder/addition/CLD/develop/server_sql b/install/builder/addition/CLD/develop/server_sql new file mode 100644 index 0000000..8cec0f8 --- /dev/null +++ b/install/builder/addition/CLD/develop/server_sql @@ -0,0 +1,7 @@ +#------------------------------------------------------------------------------ +# Сервер баз данных +#------------------------------------------------------------------------------ + +virtual/mysql +virtual/postgresql-server +dev-python/psycopg diff --git a/install/builder/addition/CLD/develop/server_web b/install/builder/addition/CLD/develop/server_web new file mode 100644 index 0000000..a488601 --- /dev/null +++ b/install/builder/addition/CLD/develop/server_web @@ -0,0 +1,5 @@ +#------------------------------------------------------------------------------ +# Web-сервер +#------------------------------------------------------------------------------ + +www-servers/apache diff --git a/install/builder/addition/CLD/games/games-action b/install/builder/addition/CLD/games/games-action new file mode 100644 index 0000000..6eb9adb --- /dev/null +++ b/install/builder/addition/CLD/games/games-action @@ -0,0 +1,5 @@ +#------------------------------------------------------------------------------ +# Игры +#------------------------------------------------------------------------------ + +games-action/openastromenace diff --git a/install/builder/addition/CLD/games/games-arcade b/install/builder/addition/CLD/games/games-arcade new file mode 100644 index 0000000..0f91a01 --- /dev/null +++ b/install/builder/addition/CLD/games/games-arcade @@ -0,0 +1,10 @@ +#------------------------------------------------------------------------------ +# Игры +#------------------------------------------------------------------------------ + +games-arcade/frozen-bubble +games-arcade/jumpnbump +games-arcade/lbreakout2 +games-arcade/pachi +games-arcade/supertux +games-arcade/xrick diff --git a/install/builder/addition/CLD/games/games-emulation b/install/builder/addition/CLD/games/games-emulation new file mode 100644 index 0000000..c351627 --- /dev/null +++ b/install/builder/addition/CLD/games/games-emulation @@ -0,0 +1,11 @@ +#------------------------------------------------------------------------------ +# Игровые эмуляторы, не вошедшие в CLD +#------------------------------------------------------------------------------ + +games-emulation/dosbox #эмулятор MS-DOS +#?unmask=~x86# + games-emulation/gens #эмулятор SEGA +#unmask# +games-emulation/fceultra #эмулятор NES (Dendy) +games-emulation/zsnes #эмулятор Super Nintendo + diff --git a/install/builder/addition/CLD/games/games-puzzle b/install/builder/addition/CLD/games/games-puzzle new file mode 100644 index 0000000..291ea62 --- /dev/null +++ b/install/builder/addition/CLD/games/games-puzzle @@ -0,0 +1,5 @@ +#------------------------------------------------------------------------------ +# Игры +#------------------------------------------------------------------------------ + +games-puzzle/toppler diff --git a/install/builder/addition/CLD/games/games-sports b/install/builder/addition/CLD/games/games-sports new file mode 100644 index 0000000..b235c5c --- /dev/null +++ b/install/builder/addition/CLD/games/games-sports @@ -0,0 +1,5 @@ +#------------------------------------------------------------------------------ +# Игры +#------------------------------------------------------------------------------ + +games-sports/xmoto diff --git a/install/builder/addition/CLD/games/games-strategy b/install/builder/addition/CLD/games/games-strategy new file mode 100644 index 0000000..f9c0a5e --- /dev/null +++ b/install/builder/addition/CLD/games/games-strategy @@ -0,0 +1,5 @@ +#------------------------------------------------------------------------------ +# Игры +#------------------------------------------------------------------------------ + +games-strategy/freeciv diff --git a/install/builder/addition/CLD/games/kde-base b/install/builder/addition/CLD/games/kde-base new file mode 100644 index 0000000..96d5a8a --- /dev/null +++ b/install/builder/addition/CLD/games/kde-base @@ -0,0 +1,35 @@ +#------------------------------------------------ +# kdegames - игры +#------------------------------------------------ +#kde-base/kasteroids +#kde-base/kbounce +#kde-base/kolf +#kde-base/atlantik +#kde-base/katomic +#kde-base/kbackgammon +#kde-base/kbattleship +#kde-base/kblackbox +#kde-base/kenolaba +#kde-base/kfouleggs +kde-base/kgoldrunner +#kde-base/kjumpingcube +#kde-base/klickety +#kde-base/klines +#kde-base/kmahjongg +kde-base/kmines +#kde-base/konquest +kde-base/kpat +#kde-base/kpoker +#kde-base/ktron +kde-base/ktuberling +#kde-base/ksame +#kde-base/kshisen +#kde-base/ksirtet +#kde-base/ksmiletris +#kde-base/ksnake +#kde-base/ksokoban +#kde-base/kspaceduel +#kde-base/kreversi +#kde-base/kwin4 +#kde-base/lskat + diff --git a/install/builder/addition/CLD/hacker/wireless b/install/builder/addition/CLD/hacker/wireless new file mode 100644 index 0000000..1342448 --- /dev/null +++ b/install/builder/addition/CLD/hacker/wireless @@ -0,0 +1,4 @@ +net-wireless/aircrack-ng #перехват, анализ и расшифровка пакетов +net-wireless/airtraf #отслеживает точки доступа, предоставляет статистику +net-wireless/kismet #сниффер и дешифратор пакетов + diff --git a/install/builder/addition/CLD/mediatools/desktop_audioedit b/install/builder/addition/CLD/mediatools/desktop_audioedit new file mode 100644 index 0000000..5075746 --- /dev/null +++ b/install/builder/addition/CLD/mediatools/desktop_audioedit @@ -0,0 +1,10 @@ +#------------------------------------------------------------------------------ +# Программы редактирования аудио +#------------------------------------------------------------------------------ + +dev-perl/XML-Twig #XML::Parser (нужен для rosegarden) +media-plugins/mac #Monkey Audio Codec (MAC linux port) +media-sound/audacity +media-sound/lilypond # создание музыкальных партитур (нужен для rosegarden) +media-sound/rosegarden + diff --git a/install/builder/addition/CLD/mediatools/desktop_videoedit b/install/builder/addition/CLD/mediatools/desktop_videoedit new file mode 100644 index 0000000..f192e33 --- /dev/null +++ b/install/builder/addition/CLD/mediatools/desktop_videoedit @@ -0,0 +1,18 @@ +#------------------------------------------------------------------------------ +# Программы видеомонтажа +#------------------------------------------------------------------------------ + +media-tv/tvtime +media-video/avidemux +media-video/cinelerra +media-video/devede +media-video/dvdrip +#media-video/kdenlive +media-video/kino +media-video/lives +media-video/mkvtoolnix #набор утилит для работы с Matroska +media-video/ogmrip #библиотека копирования и кодирования DVD в DivX/OGM файлы +#media-video/pitivi +media-video/qdvdauthor #создание DVD видео дисков +media-video/videotrans + diff --git a/install/builder/kernel/config?system=desktop&march=i686 b/install/builder/kernel/config?system=desktop&march=i686 new file mode 100644 index 0000000..7561c49 --- /dev/null +++ b/install/builder/kernel/config?system=desktop&march=i686 @@ -0,0 +1,2719 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.28.10-calculate +# Tue May 26 18:42:59 2009 +# +# CONFIG_64BIT is not set +CONFIG_X86_32=y +# CONFIG_X86_64 is not set +CONFIG_X86=y +CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig" +CONFIG_GENERIC_TIME=y +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_FAST_CMPXCHG_LOCAL=y +CONFIG_MMU=y +CONFIG_ZONE_DMA=y +CONFIG_GENERIC_ISA_DMA=y +CONFIG_GENERIC_IOMAP=y +CONFIG_GENERIC_BUG=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 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_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_GENERIC_HARDIRQS=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_X86_SMP=y +CONFIG_USE_GENERIC_SMP_HELPERS=y +CONFIG_X86_32_SMP=y +CONFIG_X86_HT=y +CONFIG_X86_BIOS_REBOOT=y +CONFIG_X86_TRAMPOLINE=y +CONFIG_KTIME_SCALAR=y +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" + +# +# General setup +# +CONFIG_EXPERIMENTAL=y +CONFIG_LOCK_KERNEL=y +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +CONFIG_POSIX_MQUEUE=y +# CONFIG_BSD_PROCESS_ACCT is not set +# CONFIG_TASKSTATS is not set +# CONFIG_AUDIT is not set +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_LOG_BUF_SHIFT=15 +# CONFIG_CGROUPS is not set +CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y +CONFIG_GROUP_SCHED=y +CONFIG_FAIR_GROUP_SCHED=y +# CONFIG_RT_GROUP_SCHED is not set +CONFIG_USER_SCHED=y +# CONFIG_CGROUP_SCHED is not set +CONFIG_SYSFS_DEPRECATED=y +CONFIG_SYSFS_DEPRECATED_V2=y +# CONFIG_RELAY is not set +CONFIG_NAMESPACES=y +# CONFIG_UTS_NS is not set +# CONFIG_IPC_NS is not set +# CONFIG_USER_NS is not set +# CONFIG_PID_NS is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="/usr/share/v86d/initramfs " +CONFIG_INITRAMFS_ROOT_UID=0 +CONFIG_INITRAMFS_ROOT_GID=0 +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_SYSCTL=y +CONFIG_ANON_INODES=y +# CONFIG_EMBEDDED is not set +CONFIG_UID16=y +CONFIG_SYSCTL_SYSCALL=y +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_EXTRA_PASS is not set +CONFIG_HOTPLUG=y +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_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_VM_EVENT_COUNTERS=y +CONFIG_PCI_QUIRKS=y +CONFIG_SLUB_DEBUG=y +CONFIG_COMPAT_BRK=y +# CONFIG_SLAB is not set +CONFIG_SLUB=y +# CONFIG_SLOB is not set +# CONFIG_PROFILING is not set +# CONFIG_MARKERS is not set +CONFIG_HAVE_OPROFILE=y +# CONFIG_KPROBES is not set +CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y +CONFIG_HAVE_IOREMAP_PROT=y +CONFIG_HAVE_KPROBES=y +CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_ARCH_TRACEHOOK=y +CONFIG_HAVE_GENERIC_DMA_COHERENT=y +CONFIG_SLABINFO=y +CONFIG_RT_MUTEXES=y +# CONFIG_TINY_SHMEM is not set +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_KMOD=y +CONFIG_STOP_MACHINE=y +CONFIG_BLOCK=y +# CONFIG_LBD is not set +# CONFIG_BLK_DEV_IO_TRACE is not set +CONFIG_LSF=y +# CONFIG_BLK_DEV_BSG is not set +# CONFIG_BLK_DEV_INTEGRITY is not set + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_AS=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y +# CONFIG_DEFAULT_AS is not set +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="cfq" +CONFIG_CLASSIC_RCU=y +CONFIG_FREEZER=y + +# +# Processor type and features +# +CONFIG_TICK_ONESHOT=y +CONFIG_NO_HZ=y +# CONFIG_HIGH_RES_TIMERS is not set +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +CONFIG_SMP=y +CONFIG_X86_FIND_SMP_CONFIG=y +CONFIG_X86_MPPARSE=y +CONFIG_X86_PC=y +# CONFIG_X86_ELAN is not set +# CONFIG_X86_VOYAGER is not set +# CONFIG_X86_GENERICARCH is not set +# CONFIG_X86_VSMP is not set +# CONFIG_X86_RDC321X is not set +CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y +# CONFIG_PARAVIRT_GUEST is not set +# 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_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_MPSC is not set +# CONFIG_MCORE2 is not set +# CONFIG_GENERIC_CPU is not set +# CONFIG_X86_GENERIC is not set +CONFIG_X86_CPU=y +CONFIG_X86_CMPXCHG=y +CONFIG_X86_L1_CACHE_SHIFT=5 +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_USE_PPRO_CHECKSUM=y +CONFIG_X86_TSC=y +CONFIG_X86_CMOV=y +CONFIG_X86_MINIMUM_CPU_FAMILY=4 +CONFIG_X86_DEBUGCTLMSR=y +CONFIG_CPU_SUP_INTEL=y +CONFIG_CPU_SUP_CYRIX_32=y +CONFIG_CPU_SUP_AMD=y +CONFIG_CPU_SUP_CENTAUR_32=y +CONFIG_CPU_SUP_TRANSMETA_32=y +CONFIG_CPU_SUP_UMC_32=y +# CONFIG_X86_DS is not set +# CONFIG_HPET_TIMER is not set +CONFIG_DMI=y +# CONFIG_IOMMU_HELPER is not set +CONFIG_NR_CPUS=16 +CONFIG_SCHED_SMT=y +CONFIG_SCHED_MC=y +# 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_MCE=y +CONFIG_X86_MCE_NONFATAL=y +# CONFIG_X86_MCE_P4THERMAL is not set +CONFIG_VM86=y +CONFIG_TOSHIBA=m +CONFIG_I8K=m +CONFIG_X86_REBOOTFIXUPS=y +CONFIG_MICROCODE=m +CONFIG_MICROCODE_INTEL=y +# CONFIG_MICROCODE_AMD is not set +CONFIG_MICROCODE_OLD_INTERFACE=y +CONFIG_X86_MSR=m +CONFIG_X86_CPUID=m +# 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_FLATMEM_ENABLE=y +CONFIG_ARCH_SPARSEMEM_ENABLE=y +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_SELECT_MEMORY_MODEL=y +CONFIG_FLATMEM_MANUAL=y +# CONFIG_DISCONTIGMEM_MANUAL is not set +# CONFIG_SPARSEMEM_MANUAL is not set +CONFIG_FLATMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +CONFIG_SPARSEMEM_STATIC=y +CONFIG_PAGEFLAGS_EXTENDED=y +CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_RESOURCES_64BIT=y +# CONFIG_PHYS_ADDR_T_64BIT is not set +CONFIG_ZONE_DMA_FLAG=1 +CONFIG_BOUNCE=y +CONFIG_VIRT_TO_BUS=y +CONFIG_UNEVICTABLE_LRU=y +# CONFIG_HIGHPTE is not set +# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set +CONFIG_X86_RESERVE_LOW_64K=y +# CONFIG_MATH_EMULATION is not set +CONFIG_MTRR=y +CONFIG_MTRR_SANITIZER=y +CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0 +CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1 +CONFIG_X86_PAT=y +CONFIG_EFI=y +CONFIG_SECCOMP=y +# CONFIG_HZ_100 is not set +CONFIG_HZ_250=y +# CONFIG_HZ_300 is not set +# CONFIG_HZ_1000 is not set +CONFIG_HZ=250 +# CONFIG_SCHED_HRTICK is not set +CONFIG_KEXEC=y +# CONFIG_CRASH_DUMP is not set +# CONFIG_KEXEC_JUMP is not set +CONFIG_PHYSICAL_START=0x100000 +# CONFIG_RELOCATABLE is not set +CONFIG_PHYSICAL_ALIGN=0x100000 +CONFIG_HOTPLUG_CPU=y +CONFIG_COMPAT_VDSO=y +# CONFIG_CMDLINE_BOOL is not set +CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y + +# +# Power management and ACPI options +# +CONFIG_PM=y +# CONFIG_PM_DEBUG is not set +CONFIG_PM_SLEEP_SMP=y +CONFIG_PM_SLEEP=y +CONFIG_SUSPEND=y +CONFIG_SUSPEND_FREEZER=y +CONFIG_HIBERNATION=y +CONFIG_PM_STD_PARTITION="" +CONFIG_ACPI=y +CONFIG_ACPI_SLEEP=y +CONFIG_ACPI_PROCFS=y +CONFIG_ACPI_PROCFS_POWER=y +CONFIG_ACPI_SYSFS_POWER=y +CONFIG_ACPI_PROC_EVENT=y +CONFIG_ACPI_AC=m +CONFIG_ACPI_BATTERY=m +CONFIG_ACPI_BUTTON=m +CONFIG_ACPI_FAN=m +CONFIG_ACPI_DOCK=y +CONFIG_ACPI_PROCESSOR=m +CONFIG_ACPI_HOTPLUG_CPU=y +CONFIG_ACPI_THERMAL=m +CONFIG_ACPI_WMI=m +CONFIG_ACPI_ASUS=m +CONFIG_ACPI_TOSHIBA=m +# 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_ACPI_SYSTEM=y +CONFIG_X86_PM_TIMER=y +CONFIG_ACPI_CONTAINER=m +CONFIG_ACPI_SBS=m +CONFIG_X86_APM_BOOT=y +CONFIG_APM=m +CONFIG_APM_IGNORE_USER_SUSPEND=y +CONFIG_APM_DO_ENABLE=y +CONFIG_APM_CPU_IDLE=y +CONFIG_APM_DISPLAY_BLANK=y +CONFIG_APM_ALLOW_INTS=y +CONFIG_APM_REAL_MODE_POWER_OFF=y + +# +# CPU Frequency scaling +# +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_TABLE=y +# CONFIG_CPU_FREQ_DEBUG is not set +CONFIG_CPU_FREQ_STAT=y +# CONFIG_CPU_FREQ_STAT_DETAILS is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +# 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=m +CONFIG_CPU_FREQ_GOV_ONDEMAND=m +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m + +# +# CPUFreq processor drivers +# +CONFIG_X86_ACPI_CPUFREQ=m +CONFIG_X86_POWERNOW_K6=m +CONFIG_X86_POWERNOW_K7=m +CONFIG_X86_POWERNOW_K7_ACPI=y +CONFIG_X86_POWERNOW_K8=m +CONFIG_X86_POWERNOW_K8_ACPI=y +# CONFIG_X86_GX_SUSPMOD is not set +CONFIG_X86_SPEEDSTEP_CENTRINO=m +CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE=y +CONFIG_X86_SPEEDSTEP_ICH=m +CONFIG_X86_SPEEDSTEP_SMI=m +CONFIG_X86_P4_CLOCKMOD=m +CONFIG_X86_CPUFREQ_NFORCE2=m +CONFIG_X86_LONGRUN=m +CONFIG_X86_LONGHAUL=m +CONFIG_X86_E_POWERSAVER=m + +# +# shared options +# +# CONFIG_X86_ACPI_CPUFREQ_PROC_INTF is not set +CONFIG_X86_SPEEDSTEP_LIB=m +# 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 + +# +# 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_GOOLPC is not set +CONFIG_PCI_GOANY=y +CONFIG_PCI_BIOS=y +CONFIG_PCI_DIRECT=y +CONFIG_PCI_MMCONFIG=y +CONFIG_PCI_DOMAINS=y +CONFIG_PCIEPORTBUS=y +CONFIG_PCIEAER=y +# CONFIG_PCIEASPM is not set +CONFIG_ARCH_SUPPORTS_MSI=y +CONFIG_PCI_MSI=y +CONFIG_PCI_LEGACY=y +CONFIG_HT_IRQ=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_K8_NB=y +CONFIG_PCCARD=m +# CONFIG_PCMCIA_DEBUG is not set +CONFIG_PCMCIA=m +CONFIG_PCMCIA_LOAD_CIS=y +CONFIG_PCMCIA_IOCTL=y +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_PD6729=m +CONFIG_I82092=m +CONFIG_PCCARD_NONSTATIC=m +# CONFIG_HOTPLUG_PCI is not set + +# +# Executable file formats / Emulations +# +CONFIG_BINFMT_ELF=y +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_HAVE_AOUT=y +CONFIG_BINFMT_AOUT=y +CONFIG_BINFMT_MISC=y +CONFIG_HAVE_ATOMIC_IOMAP=y +CONFIG_NET=y + +# +# Networking options +# +CONFIG_PACKET=y +# CONFIG_PACKET_MMAP is not set +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=y +CONFIG_ASK_IP_FIB_HASH=y +# CONFIG_IP_FIB_TRIE is not set +CONFIG_IP_FIB_HASH=y +# CONFIG_IP_MULTIPLE_TABLES is not set +CONFIG_IP_ROUTE_MULTIPATH=y +CONFIG_IP_ROUTE_VERBOSE=y +# CONFIG_IP_PNP is not set +CONFIG_NET_IPIP=m +CONFIG_NET_IPGRE=m +# CONFIG_NET_IPGRE_BROADCAST 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=m +CONFIG_INET_XFRM_MODE_TRANSPORT=y +CONFIG_INET_XFRM_MODE_TUNNEL=y +CONFIG_INET_XFRM_MODE_BEET=y +# CONFIG_INET_LRO is not set +# 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_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set +CONFIG_NETFILTER_ADVANCED=y + +# +# Core Netfilter Configuration +# +CONFIG_NETFILTER_NETLINK=m +CONFIG_NETFILTER_NETLINK_QUEUE=m +CONFIG_NETFILTER_NETLINK_LOG=m +CONFIG_NF_CONNTRACK=m +CONFIG_NF_CT_ACCT=y +CONFIG_NF_CONNTRACK_MARK=y +CONFIG_NF_CONNTRACK_EVENTS=y +# CONFIG_NF_CT_PROTO_DCCP is not set +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_NETBIOS_NS=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 is not set +CONFIG_NETFILTER_XTABLES=m +CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m +CONFIG_NETFILTER_XT_TARGET_CONNMARK=m +CONFIG_NETFILTER_XT_TARGET_DSCP=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_TRACE=m +CONFIG_NETFILTER_XT_TARGET_TCPMSS=m +CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=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_DCCP=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_IPRANGE=m +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_OWNER=m +CONFIG_NETFILTER_XT_MATCH_POLICY=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 is not set +CONFIG_NETFILTER_XT_MATCH_SCTP=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_VS is not set + +# +# IP: Netfilter Configuration +# +CONFIG_NF_DEFRAG_IPV4=m +CONFIG_NF_CONNTRACK_IPV4=m +CONFIG_NF_CONNTRACK_PROC_COMPAT=y +CONFIG_IP_NF_QUEUE=m +CONFIG_IP_NF_IPTABLES=m +CONFIG_IP_NF_MATCH_ADDRTYPE=m +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=m +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_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_ARPTABLES=m +CONFIG_IP_NF_ARPFILTER=m +CONFIG_IP_NF_ARP_MANGLE=m +# CONFIG_IP_DCCP is not set +# CONFIG_IP_SCTP is not set +# CONFIG_TIPC is not set +# CONFIG_ATM 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_NET_SCHED is not set +CONFIG_NET_CLS_ROUTE=y + +# +# 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=m +CONFIG_BT_L2CAP=m +CONFIG_BT_SCO=m +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_HIDP=m + +# +# Bluetooth device drivers +# +CONFIG_BT_HCIBTUSB=m +# CONFIG_BT_HCIBTSDIO is not set +# CONFIG_BT_HCIUART is not set +# CONFIG_BT_HCIBCM203X is not set +# CONFIG_BT_HCIBPA10X is not set +# CONFIG_BT_HCIBFUSB is not set +# CONFIG_BT_HCIDTL1 is not set +# CONFIG_BT_HCIBT3C is not set +# CONFIG_BT_HCIBLUECARD is not set +# CONFIG_BT_HCIBTUART is not set +# CONFIG_BT_HCIVHCI is not set +# CONFIG_AF_RXRPC is not set +# CONFIG_PHONET is not set +CONFIG_WIRELESS=y +CONFIG_CFG80211=m +CONFIG_NL80211=y +CONFIG_WIRELESS_OLD_REGULATORY=y +CONFIG_WIRELESS_EXT=y +CONFIG_WIRELESS_EXT_SYSFS=y +CONFIG_MAC80211=m + +# +# Rate control algorithm selection +# +CONFIG_MAC80211_RC_PID=y +# CONFIG_MAC80211_RC_MINSTREL is not set +CONFIG_MAC80211_RC_DEFAULT_PID=y +# CONFIG_MAC80211_RC_DEFAULT_MINSTREL is not set +CONFIG_MAC80211_RC_DEFAULT="pid" +# CONFIG_MAC80211_MESH is not set +CONFIG_MAC80211_LEDS=y +# CONFIG_MAC80211_DEBUG_MENU is not set +CONFIG_IEEE80211=m +# CONFIG_IEEE80211_DEBUG is not set +CONFIG_IEEE80211_CRYPT_WEP=m +CONFIG_IEEE80211_CRYPT_CCMP=m +CONFIG_IEEE80211_CRYPT_TKIP=m +CONFIG_RFKILL=m +CONFIG_RFKILL_INPUT=m +CONFIG_RFKILL_LEDS=y +# CONFIG_NET_9P is not set + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_FW_LOADER=y +CONFIG_FIRMWARE_IN_KERNEL=y +CONFIG_EXTRA_FIRMWARE="" +# CONFIG_SYS_HYPERVISOR is not set +CONFIG_CONNECTOR=y +CONFIG_PROC_EVENTS=y +# CONFIG_MTD is not set +CONFIG_PARPORT=y +CONFIG_PARPORT_PC=y +# CONFIG_PARPORT_SERIAL is not set +# CONFIG_PARPORT_PC_FIFO is not set +# CONFIG_PARPORT_PC_SUPERIO is not set +# CONFIG_PARPORT_PC_PCMCIA is not set +# CONFIG_PARPORT_GSC is not set +# CONFIG_PARPORT_AX88796 is not set +# CONFIG_PARPORT_1284 is not set +CONFIG_PNP=y +CONFIG_PNP_DEBUG_MESSAGES=y + +# +# Protocols +# +CONFIG_PNPACPI=y +CONFIG_BLK_DEV=y +CONFIG_BLK_DEV_FD=m +# CONFIG_PARIDE is not set +# CONFIG_BLK_CPQ_DA is not set +CONFIG_BLK_CPQ_CISS_DA=m +# CONFIG_CISS_SCSI_TAPE 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_CRYPTOLOOP is not set +# CONFIG_BLK_DEV_NBD 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=4096 +# CONFIG_BLK_DEV_XIP is not set +CONFIG_CDROM_PKTCDVD=m +CONFIG_CDROM_PKTCDVD_BUFFERS=8 +# CONFIG_CDROM_PKTCDVD_WCACHE is not set +# CONFIG_ATA_OVER_ETH is not set +# CONFIG_BLK_DEV_HD is not set +CONFIG_MISC_DEVICES=y +CONFIG_IBM_ASM=m +CONFIG_PHANTOM=m +CONFIG_EEPROM_93CX6=m +CONFIG_SGI_IOC4=m +CONFIG_TIFM_CORE=m +CONFIG_TIFM_7XX1=m +CONFIG_ACER_WMI=m +CONFIG_ASUS_LAPTOP=m +CONFIG_FUJITSU_LAPTOP=m +# CONFIG_FUJITSU_LAPTOP_DEBUG is not set +CONFIG_TC1100_WMI=m +# CONFIG_HP_WMI is not set +# CONFIG_ICS932S401 is not set +CONFIG_MSI_LAPTOP=m +# CONFIG_PANASONIC_LAPTOP is not set +# CONFIG_COMPAL_LAPTOP is not set +CONFIG_SONY_LAPTOP=m +CONFIG_SONYPI_COMPAT=y +CONFIG_THINKPAD_ACPI=m +CONFIG_THINKPAD_ACPI_DEBUG=y +CONFIG_THINKPAD_ACPI_BAY=y +CONFIG_THINKPAD_ACPI_VIDEO=y +CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y +CONFIG_INTEL_MENLOW=m +CONFIG_EEEPC_LAPTOP=m +CONFIG_ENCLOSURE_SERVICES=m +# CONFIG_HP_ILO is not set +# CONFIG_C2PORT is not set +CONFIG_HAVE_IDE=y +# CONFIG_IDE is not set + +# +# SCSI device support +# +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=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 is not set +# CONFIG_CHR_DEV_SCH is not set +# CONFIG_SCSI_ENCLOSURE is not set + +# +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs +# +# CONFIG_SCSI_MULTI_LUN is not set +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_LOGGING is not set +# CONFIG_SCSI_SCAN_ASYNC is not set +CONFIG_SCSI_WAIT_SCAN=m + +# +# SCSI Transports +# +CONFIG_SCSI_SPI_ATTRS=m +CONFIG_SCSI_FC_ATTRS=m +# CONFIG_SCSI_FC_TGT_ATTRS is not set +CONFIG_SCSI_ISCSI_ATTRS=m +CONFIG_SCSI_SAS_ATTRS=m +CONFIG_SCSI_SAS_LIBSAS=m +# CONFIG_SCSI_SAS_ATA is not set +CONFIG_SCSI_SAS_HOST_SMP=y +CONFIG_SCSI_SAS_LIBSAS_DEBUG=y +# CONFIG_SCSI_SRP_ATTRS is not set +CONFIG_SCSI_LOWLEVEL=y +CONFIG_ISCSI_TCP=m +CONFIG_BLK_DEV_3W_XXXX_RAID=m +CONFIG_SCSI_3W_9XXX=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 is not set +CONFIG_AIC7XXX_DEBUG_MASK=0 +# CONFIG_AIC7XXX_REG_PRETTY_PRINT is not set +CONFIG_SCSI_AIC7XXX_OLD=m +CONFIG_SCSI_AIC79XX=m +CONFIG_AIC79XX_CMDS_PER_DEVICE=32 +CONFIG_AIC79XX_RESET_DELAY_MS=5000 +# CONFIG_AIC79XX_DEBUG_ENABLE is not set +CONFIG_AIC79XX_DEBUG_MASK=0 +CONFIG_AIC79XX_REG_PRETTY_PRINT=y +CONFIG_SCSI_AIC94XX=m +# CONFIG_AIC94XX_DEBUG is not set +CONFIG_SCSI_DPT_I2O=m +CONFIG_SCSI_ADVANSYS=m +CONFIG_SCSI_ARCMSR=m +CONFIG_SCSI_ARCMSR_AER=y +CONFIG_MEGARAID_NEWGEN=y +CONFIG_MEGARAID_MM=m +CONFIG_MEGARAID_MAILBOX=m +CONFIG_MEGARAID_LEGACY=m +CONFIG_MEGARAID_SAS=m +CONFIG_SCSI_HPTIOP=m +CONFIG_SCSI_BUSLOGIC=m +# CONFIG_SCSI_FLASHPOINT is not set +CONFIG_SCSI_DMX3191D=m +CONFIG_SCSI_EATA=m +CONFIG_SCSI_EATA_TAGGED_QUEUE=y +CONFIG_SCSI_EATA_LINKED_COMMANDS=y +CONFIG_SCSI_EATA_MAX_TAGS=16 +CONFIG_SCSI_FUTURE_DOMAIN=m +CONFIG_SCSI_GDTH=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=y +CONFIG_SCSI_IZIP_SLOW_CTR=y +CONFIG_SCSI_MVSAS=m +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_DC395x=m +CONFIG_SCSI_DC390T=m +CONFIG_SCSI_NSP32=m +CONFIG_SCSI_DEBUG=m +CONFIG_SCSI_SRP=m +# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set +# CONFIG_SCSI_DH is not set +CONFIG_ATA=y +# CONFIG_ATA_NONSTANDARD is not set +CONFIG_ATA_ACPI=y +CONFIG_SATA_PMP=y +CONFIG_SATA_AHCI=y +CONFIG_SATA_SIL24=m +CONFIG_ATA_SFF=y +CONFIG_SATA_SVW=m +CONFIG_ATA_PIIX=y +CONFIG_SATA_MV=m +CONFIG_SATA_NV=m +CONFIG_PDC_ADMA=m +CONFIG_SATA_QSTOR=m +CONFIG_SATA_PROMISE=m +CONFIG_SATA_SX4=m +CONFIG_SATA_SIL=m +CONFIG_SATA_SIS=m +CONFIG_SATA_ULI=m +CONFIG_SATA_VIA=m +CONFIG_SATA_VITESSE=m +CONFIG_SATA_INIC162X=m +CONFIG_PATA_ACPI=m +CONFIG_PATA_ALI=m +CONFIG_PATA_AMD=m +CONFIG_PATA_ARTOP=m +CONFIG_PATA_ATIIXP=m +CONFIG_PATA_CMD640_PCI=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_ATA_GENERIC=m +CONFIG_PATA_HPT366=m +CONFIG_PATA_HPT37X=m +CONFIG_PATA_HPT3X2N=m +CONFIG_PATA_HPT3X3=m +CONFIG_PATA_HPT3X3_DMA=y +CONFIG_PATA_IT821X=m +CONFIG_PATA_IT8213=m +CONFIG_PATA_JMICRON=m +CONFIG_PATA_TRIFLEX=m +CONFIG_PATA_MARVELL=m +CONFIG_PATA_MPIIX=y +CONFIG_PATA_OLDPIIX=m +CONFIG_PATA_NETCELL=m +CONFIG_PATA_NINJA32=m +CONFIG_PATA_NS87410=m +CONFIG_PATA_NS87415=m +CONFIG_PATA_OPTI=m +CONFIG_PATA_OPTIDMA=m +CONFIG_PATA_PCMCIA=m +CONFIG_PATA_PDC_OLD=m +CONFIG_PATA_RADISYS=m +CONFIG_PATA_RZ1000=m +CONFIG_PATA_SC1200=m +CONFIG_PATA_SERVERWORKS=m +CONFIG_PATA_PDC2027X=m +CONFIG_PATA_SIL680=m +CONFIG_PATA_SIS=m +CONFIG_PATA_VIA=m +CONFIG_PATA_WINBOND=m +CONFIG_PATA_SCH=m +CONFIG_MD=y +CONFIG_BLK_DEV_MD=m +CONFIG_MD_LINEAR=m +CONFIG_MD_RAID0=m +CONFIG_MD_RAID1=m +CONFIG_MD_RAID10=m +CONFIG_MD_RAID456=m +CONFIG_MD_RAID5_RESHAPE=y +# CONFIG_MD_MULTIPATH is not set +# CONFIG_MD_FAULTY is not set +# CONFIG_BLK_DEV_DM is not set +CONFIG_FUSION=y +CONFIG_FUSION_SPI=m +CONFIG_FUSION_FC=m +CONFIG_FUSION_SAS=m +CONFIG_FUSION_MAX_SGE=128 +CONFIG_FUSION_CTL=m +# CONFIG_FUSION_LOGGING is not set + +# +# IEEE 1394 (FireWire) support +# + +# +# Enable only one of the two stacks, unless you know what you are doing +# +# CONFIG_FIREWIRE is not set +CONFIG_IEEE1394=m +CONFIG_IEEE1394_OHCI1394=m +CONFIG_IEEE1394_PCILYNX=m +CONFIG_IEEE1394_SBP2=m +# CONFIG_IEEE1394_SBP2_PHYS_DMA is not set +# CONFIG_IEEE1394_ETH1394_ROM_ENTRY is not set +# CONFIG_IEEE1394_ETH1394 is not set +CONFIG_IEEE1394_RAWIO=m +CONFIG_IEEE1394_VIDEO1394=m +# CONFIG_IEEE1394_DV1394 is not set +# CONFIG_IEEE1394_VERBOSEDEBUG is not set +# CONFIG_I2O is not set +CONFIG_MACINTOSH_DRIVERS=y +CONFIG_MAC_EMUMOUSEBTN=y +CONFIG_NETDEVICES=y +CONFIG_DUMMY=m +CONFIG_BONDING=m +# 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_PHYLIB=m + +# +# 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_MDIO_BITBANG is not set +CONFIG_NET_ETHERNET=y +CONFIG_MII=m +# CONFIG_HAPPYMEAL is not set +# CONFIG_SUNGEM is not set +CONFIG_CASSINI=m +CONFIG_NET_VENDOR_3COM=y +CONFIG_VORTEX=m +CONFIG_TYPHOON=m +# CONFIG_NET_TULIP 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=m +# CONFIG_AMD8111_ETH is not set +# CONFIG_ADAPTEC_STARFIRE is not set +CONFIG_B44=m +CONFIG_B44_PCI_AUTOSELECT=y +CONFIG_B44_PCICORE_AUTOSELECT=y +CONFIG_B44_PCI=y +CONFIG_FORCEDETH=m +# CONFIG_FORCEDETH_NAPI is not set +# CONFIG_EEPRO100 is not set +CONFIG_E100=m +CONFIG_FEALNX=m +CONFIG_NATSEMI=m +CONFIG_NE2K_PCI=m +CONFIG_8139CP=m +CONFIG_8139TOO=m +CONFIG_8139TOO_PIO=y +CONFIG_8139TOO_TUNE_TWISTER=y +CONFIG_8139TOO_8129=y +# CONFIG_8139_OLD_RX_RESET is not set +CONFIG_R6040=m +CONFIG_SIS900=m +CONFIG_EPIC100=m +CONFIG_SUNDANCE=m +CONFIG_SUNDANCE_MMIO=y +CONFIG_TLAN=m +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=y +CONFIG_DL2K=m +CONFIG_E1000=m +CONFIG_E1000E=m +CONFIG_IP1000=m +CONFIG_IGB=m +# CONFIG_IGB_LRO is not set +CONFIG_NS83820=m +CONFIG_HAMACHI=m +CONFIG_YELLOWFIN=m +CONFIG_R8169=m +CONFIG_SIS190=m +CONFIG_SKGE=m +CONFIG_SKY2=m +CONFIG_VIA_VELOCITY=m +CONFIG_TIGON3=m +CONFIG_BNX2=m +CONFIG_QLA3XXX=m +CONFIG_ATL1=m +CONFIG_ATL1E=m +CONFIG_JME=m +CONFIG_NETDEV_10000=y +# CONFIG_CHELSIO_T1 is not set +# CONFIG_CHELSIO_T3 is not set +# CONFIG_ENIC is not set +# CONFIG_IXGBE is not set +# CONFIG_IXGB is not set +# CONFIG_S2IO 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_QLGE is not set +# CONFIG_SFC is not set +# CONFIG_TR is not set + +# +# Wireless LAN +# +# CONFIG_WLAN_PRE80211 is not set +CONFIG_WLAN_80211=y +CONFIG_PCMCIA_RAYCS=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_LIBERTAS=m +CONFIG_LIBERTAS_USB=m +CONFIG_LIBERTAS_CS=m +CONFIG_LIBERTAS_SDIO=m +# CONFIG_LIBERTAS_DEBUG is not set +# CONFIG_LIBERTAS_THINFIRM is not set +CONFIG_AIRO=m +CONFIG_HERMES=m +CONFIG_PLX_HERMES=m +CONFIG_TMD_HERMES=m +CONFIG_NORTEL_HERMES=m +CONFIG_PCI_HERMES=m +CONFIG_PCMCIA_HERMES=m +CONFIG_PCMCIA_SPECTRUM=m +CONFIG_ATMEL=m +CONFIG_PCI_ATMEL=m +CONFIG_PCMCIA_ATMEL=m +CONFIG_AIRO_CS=m +CONFIG_PCMCIA_WL3501=m +CONFIG_PRISM54=m +CONFIG_USB_ZD1201=m +CONFIG_USB_NET_RNDIS_WLAN=m +CONFIG_RTL8180=m +CONFIG_RTL8187=m +CONFIG_ADM8211=m +# CONFIG_MAC80211_HWSIM is not set +CONFIG_P54_COMMON=m +CONFIG_P54_USB=m +CONFIG_P54_PCI=m +CONFIG_ATH5K=m +# CONFIG_ATH5K_DEBUG is not set +CONFIG_ATH9K=m +CONFIG_IWLWIFI=m +CONFIG_IWLCORE=m +CONFIG_IWLWIFI_LEDS=y +CONFIG_IWLWIFI_RFKILL=y +# CONFIG_IWLWIFI_DEBUG is not set +CONFIG_IWLAGN=m +CONFIG_IWLAGN_SPECTRUM_MEASUREMENT=y +CONFIG_IWLAGN_LEDS=y +CONFIG_IWL4965=y +CONFIG_IWL5000=y +CONFIG_IWL3945=m +CONFIG_IWL3945_RFKILL=y +CONFIG_IWL3945_SPECTRUM_MEASUREMENT=y +CONFIG_IWL3945_LEDS=y +# CONFIG_IWL3945_DEBUG is not set +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +CONFIG_HOSTAP_FIRMWARE_NVRAM=y +CONFIG_HOSTAP_PLX=m +CONFIG_HOSTAP_PCI=m +CONFIG_HOSTAP_CS=m +CONFIG_B43=m +CONFIG_B43_PCI_AUTOSELECT=y +CONFIG_B43_PCICORE_AUTOSELECT=y +CONFIG_B43_PCMCIA=y +CONFIG_B43_PIO=y +CONFIG_B43_LEDS=y +CONFIG_B43_RFKILL=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_RFKILL=y +CONFIG_B43LEGACY_DEBUG=y +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_ZD1211RW=m +# CONFIG_ZD1211RW_DEBUG is not set +CONFIG_RT2X00=m +CONFIG_RT2400PCI=m +CONFIG_RT2500PCI=m +CONFIG_RT61PCI=m +CONFIG_RT2500USB=m +CONFIG_RT73USB=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_RFKILL=y +CONFIG_RT2X00_LIB_LEDS=y +# CONFIG_RT2X00_DEBUG 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_DM9601=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_HSO=m +CONFIG_NET_PCMCIA=y +CONFIG_PCMCIA_3C589=m +CONFIG_PCMCIA_3C574=m +CONFIG_PCMCIA_FMVJ18X=m +CONFIG_PCMCIA_PCNET=m +CONFIG_PCMCIA_NMCLAN=m +CONFIG_PCMCIA_SMC91C92=m +CONFIG_PCMCIA_XIRC2PS=m +CONFIG_PCMCIA_AXNET=m +# CONFIG_WAN is not set +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +# CONFIG_PLIP is not set +CONFIG_PPP=y +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_PPPOL2TP=m +CONFIG_SLIP=m +# CONFIG_SLIP_COMPRESSED is not set +CONFIG_SLHC=y +# CONFIG_SLIP_SMART is not set +# CONFIG_SLIP_MODE_SLIP6 is not set +# CONFIG_NET_FC 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=m +CONFIG_INPUT_POLLDEV=m + +# +# 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=m +CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_EVBUG is not set + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +CONFIG_KEYBOARD_ATKBD=y +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_LKKBD is not set +# CONFIG_KEYBOARD_XTKBD is not set +# CONFIG_KEYBOARD_NEWTON is not set +# CONFIG_KEYBOARD_STOWAWAY 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_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_INPUT_JOYSTICK=y +CONFIG_JOYSTICK_ANALOG=m +CONFIG_JOYSTICK_A3D=m +CONFIG_JOYSTICK_ADI=m +CONFIG_JOYSTICK_COBRA=m +CONFIG_JOYSTICK_GF2K=m +CONFIG_JOYSTICK_GRIP=m +CONFIG_JOYSTICK_GRIP_MP=m +CONFIG_JOYSTICK_GUILLEMOT=m +CONFIG_JOYSTICK_INTERACT=m +CONFIG_JOYSTICK_SIDEWINDER=m +CONFIG_JOYSTICK_TMDC=m +CONFIG_JOYSTICK_IFORCE=m +CONFIG_JOYSTICK_IFORCE_USB=y +CONFIG_JOYSTICK_IFORCE_232=y +CONFIG_JOYSTICK_WARRIOR=m +CONFIG_JOYSTICK_MAGELLAN=m +CONFIG_JOYSTICK_SPACEORB=m +CONFIG_JOYSTICK_SPACEBALL=m +CONFIG_JOYSTICK_STINGER=m +CONFIG_JOYSTICK_TWIDJOY=m +CONFIG_JOYSTICK_ZHENHUA=m +CONFIG_JOYSTICK_DB9=m +CONFIG_JOYSTICK_GAMECON=m +CONFIG_JOYSTICK_TURBOGRAFX=m +CONFIG_JOYSTICK_JOYDUMP=m +CONFIG_JOYSTICK_XPAD=m +CONFIG_JOYSTICK_XPAD_FF=y +CONFIG_JOYSTICK_XPAD_LEDS=y +# CONFIG_INPUT_TABLET is not set +# CONFIG_INPUT_TOUCHSCREEN is not set +CONFIG_INPUT_MISC=y +CONFIG_INPUT_PCSPKR=y +# CONFIG_INPUT_APANEL is not set +# CONFIG_INPUT_WISTRON_BTNS 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_POWERMATE is not set +# CONFIG_INPUT_YEALINK is not set +# CONFIG_INPUT_CM109 is not set +CONFIG_INPUT_UINPUT=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 +# CONFIG_SERIO_RAW is not set +CONFIG_GAMEPORT=m +# CONFIG_GAMEPORT_NS558 is not set +# CONFIG_GAMEPORT_L4 is not set +CONFIG_GAMEPORT_EMU10K1=m +# CONFIG_GAMEPORT_FM801 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_DEVKMEM=y +CONFIG_SERIAL_NONSTANDARD=y +# CONFIG_COMPUTONE is not set +# CONFIG_ROCKETPORT is not set +# CONFIG_CYCLADES is not set +# CONFIG_DIGIEPCA is not set +# CONFIG_MOXA_INTELLIO is not set +# CONFIG_MOXA_SMARTIO is not set +# CONFIG_ISI is not set +# CONFIG_SYNCLINK is not set +# CONFIG_SYNCLINKMP is not set +# CONFIG_SYNCLINK_GT is not set +# CONFIG_N_HDLC is not set +# CONFIG_RISCOM8 is not set +# CONFIG_SPECIALIX is not set +# CONFIG_SX is not set +# CONFIG_RIO is not set +# CONFIG_STALDRV is not set +# CONFIG_NOZOMI is not set + +# +# Serial drivers +# +CONFIG_SERIAL_8250=y +# CONFIG_SERIAL_8250_CONSOLE is not set +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=4 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +# CONFIG_SERIAL_8250_EXTENDED is not set + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_CORE=y +# CONFIG_SERIAL_JSM is not set +CONFIG_UNIX98_PTYS=y +# CONFIG_LEGACY_PTYS is not set +CONFIG_PRINTER=y +# CONFIG_LP_CONSOLE is not set +# CONFIG_PPDEV is not set +# CONFIG_IPMI_HANDLER is not set +CONFIG_HW_RANDOM=m +CONFIG_HW_RANDOM_INTEL=m +CONFIG_HW_RANDOM_AMD=m +CONFIG_HW_RANDOM_GEODE=m +CONFIG_HW_RANDOM_VIA=m +CONFIG_NVRAM=m +CONFIG_RTC=y +# CONFIG_R3964 is not set +# CONFIG_APPLICOM is not set +# CONFIG_SONYPI 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=m +# CONFIG_PC8736x_GPIO is not set +# CONFIG_NSC_GPIO is not set +# CONFIG_CS5535_GPIO is not set +# CONFIG_RAW_DRIVER is not set +# CONFIG_HPET is not set +# CONFIG_HANGCHECK_TIMER is not set +# CONFIG_TCG_TPM is not set +# CONFIG_TELCLOCK is not set +CONFIG_DEVPORT=y +CONFIG_I2C=m +CONFIG_I2C_BOARDINFO=y +CONFIG_I2C_CHARDEV=m +CONFIG_I2C_HELPER_AUTO=y +CONFIG_I2C_ALGOBIT=m + +# +# 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 is not set +# 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 + +# +# I2C system bus drivers (mostly embedded / system-on-chip) +# +# CONFIG_I2C_OCORES is not set +# CONFIG_I2C_SIMTEC is not set + +# +# External I2C/SMBus adapter drivers +# +# CONFIG_I2C_PARPORT is not set +# CONFIG_I2C_PARPORT_LIGHT is not set +# CONFIG_I2C_TAOS_EVM is not set +# CONFIG_I2C_TINY_USB is not set + +# +# Graphics adapter I2C/DDC channel drivers +# +# CONFIG_I2C_VOODOO3 is not set + +# +# Other I2C/SMBus bus drivers +# +# CONFIG_I2C_PCA_PLATFORM is not set +# CONFIG_I2C_STUB is not set +# CONFIG_SCx200_ACB is not set + +# +# Miscellaneous I2C Chip support +# +# CONFIG_DS1682 is not set +# CONFIG_AT24 is not set +# CONFIG_SENSORS_EEPROM is not set +# CONFIG_SENSORS_PCF8574 is not set +# CONFIG_PCF8575 is not set +# CONFIG_SENSORS_PCA9539 is not set +# CONFIG_SENSORS_PCF8591 is not set +# CONFIG_SENSORS_MAX6875 is not set +# CONFIG_SENSORS_TSL2550 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_I2C_DEBUG_CHIP is not set +# CONFIG_SPI is not set +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_BATTERY_DS2760 is not set +# CONFIG_BATTERY_BQ27x00 is not set +CONFIG_HWMON=m +# CONFIG_HWMON_VID is not set +# 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_ADT7462 is not set +# CONFIG_SENSORS_ADT7470 is not set +# CONFIG_SENSORS_ADT7473 is not set +# CONFIG_SENSORS_K8TEMP is not set +# CONFIG_SENSORS_ASB100 is not set +# CONFIG_SENSORS_ATXP1 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_FSCHER is not set +# CONFIG_SENSORS_FSCPOS is not set +# CONFIG_SENSORS_FSCHMD 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_LM63 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_MAX1619 is not set +# CONFIG_SENSORS_MAX6650 is not set +# CONFIG_SENSORS_PC87360 is not set +# CONFIG_SENSORS_PC87427 is not set +# CONFIG_SENSORS_SIS5595 is not set +# CONFIG_SENSORS_DME1737 is not set +# CONFIG_SENSORS_SMSC47M1 is not set +# CONFIG_SENSORS_SMSC47M192 is not set +# CONFIG_SENSORS_SMSC47B397 is not set +# CONFIG_SENSORS_ADS7828 is not set +# CONFIG_SENSORS_THMC50 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_W83L785TS is not set +# CONFIG_SENSORS_W83L786NG is not set +# CONFIG_SENSORS_W83627HF is not set +# CONFIG_SENSORS_W83627EHF is not set +# CONFIG_SENSORS_HDAPS is not set +# CONFIG_SENSORS_LIS3LV02D is not set +# CONFIG_SENSORS_APPLESMC is not set +# CONFIG_HWMON_DEBUG_CHIP is not set +CONFIG_THERMAL=y +# CONFIG_WATCHDOG is not set +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_PCMCIAHOST_POSSIBLE=y +CONFIG_SSB_PCMCIAHOST=y +# CONFIG_SSB_DEBUG is not set +CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y +CONFIG_SSB_DRIVER_PCICORE=y + +# +# Multifunction device drivers +# +# CONFIG_MFD_CORE is not set +# CONFIG_MFD_SM501 is not set +# CONFIG_HTC_PASIC3 is not set +# CONFIG_MFD_TMIO is not set +# CONFIG_MFD_WM8400 is not set +# CONFIG_MFD_WM8350_I2C is not set +# CONFIG_REGULATOR is not set + +# +# Multimedia devices +# + +# +# Multimedia core support +# +CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_V4L2_COMMON=m +CONFIG_VIDEO_ALLOW_V4L1=y +CONFIG_VIDEO_V4L1_COMPAT=y +# CONFIG_DVB_CORE is not set +CONFIG_VIDEO_MEDIA=m + +# +# Multimedia drivers +# +CONFIG_VIDEO_SAA7146=m +CONFIG_VIDEO_SAA7146_VV=m +# CONFIG_MEDIA_ATTACH is not set +CONFIG_MEDIA_TUNER=m +# CONFIG_MEDIA_TUNER_CUSTOMIZE is not set +CONFIG_MEDIA_TUNER_SIMPLE=m +CONFIG_MEDIA_TUNER_TDA8290=m +CONFIG_MEDIA_TUNER_TDA9887=m +CONFIG_MEDIA_TUNER_TEA5761=m +CONFIG_MEDIA_TUNER_TEA5767=m +CONFIG_MEDIA_TUNER_MT20XX=m +CONFIG_MEDIA_TUNER_XC2028=m +CONFIG_MEDIA_TUNER_XC5000=m +CONFIG_VIDEO_V4L2=m +CONFIG_VIDEO_V4L1=m +CONFIG_VIDEOBUF_GEN=m +CONFIG_VIDEOBUF_DMA_SG=m +CONFIG_VIDEOBUF_VMALLOC=m +CONFIG_VIDEO_BTCX=m +CONFIG_VIDEO_IR=m +CONFIG_VIDEO_TVEEPROM=m +CONFIG_VIDEO_TUNER=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 +CONFIG_VIDEO_TVAUDIO=m +CONFIG_VIDEO_TDA7432=m +CONFIG_VIDEO_TDA9840=m +CONFIG_VIDEO_TDA9875=m +CONFIG_VIDEO_TEA6415C=m +CONFIG_VIDEO_TEA6420=m +CONFIG_VIDEO_MSP3400=m +CONFIG_VIDEO_CS53L32A=m +CONFIG_VIDEO_M52790=m +CONFIG_VIDEO_WM8775=m +CONFIG_VIDEO_WM8739=m +CONFIG_VIDEO_VP27SMPX=m +CONFIG_VIDEO_BT819=m +CONFIG_VIDEO_BT856=m +CONFIG_VIDEO_KS0127=m +CONFIG_VIDEO_OV7670=m +CONFIG_VIDEO_SAA7110=m +CONFIG_VIDEO_SAA7111=m +CONFIG_VIDEO_SAA7114=m +CONFIG_VIDEO_SAA711X=m +CONFIG_VIDEO_SAA717X=m +CONFIG_VIDEO_TVP5150=m +CONFIG_VIDEO_VPX3220=m +CONFIG_VIDEO_CX25840=m +CONFIG_VIDEO_CX2341X=m +CONFIG_VIDEO_SAA7127=m +CONFIG_VIDEO_SAA7185=m +CONFIG_VIDEO_ADV7170=m +CONFIG_VIDEO_ADV7175=m +CONFIG_VIDEO_UPD64031A=m +CONFIG_VIDEO_UPD64083=m +CONFIG_VIDEO_VIVI=m +CONFIG_VIDEO_BT848=m +CONFIG_VIDEO_SAA6588=m +CONFIG_VIDEO_BWQCAM=m +CONFIG_VIDEO_CQCAM=m +CONFIG_VIDEO_CPIA=m +CONFIG_VIDEO_CPIA_USB=m +CONFIG_VIDEO_CPIA2=m +CONFIG_VIDEO_SAA5246A=m +CONFIG_VIDEO_SAA5249=m +CONFIG_VIDEO_STRADIS=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_MXB=m +CONFIG_VIDEO_HEXIUM_ORION=m +CONFIG_VIDEO_HEXIUM_GEMINI=m +CONFIG_VIDEO_CX88=m +CONFIG_VIDEO_CX88_ALSA=m +CONFIG_VIDEO_CX88_BLACKBIRD=m +CONFIG_VIDEO_IVTV=m +CONFIG_VIDEO_FB_IVTV=m +CONFIG_VIDEO_CAFE_CCIC=m +# CONFIG_SOC_CAMERA is not set +CONFIG_V4L_USB_DRIVERS=y +CONFIG_USB_VIDEO_CLASS=m +CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y +# CONFIG_USB_GSPCA is not set +CONFIG_VIDEO_PVRUSB2=m +CONFIG_VIDEO_PVRUSB2_SYSFS=y +CONFIG_VIDEO_PVRUSB2_DEBUGIFC=y +CONFIG_VIDEO_EM28XX=m +CONFIG_VIDEO_EM28XX_ALSA=m +CONFIG_VIDEO_USBVISION=m +CONFIG_VIDEO_USBVIDEO=m +CONFIG_USB_VICAM=m +CONFIG_USB_IBMCAM=m +CONFIG_USB_KONICAWC=m +CONFIG_USB_QUICKCAM_MESSENGER=m +CONFIG_USB_ET61X251=m +CONFIG_VIDEO_OVCAMCHIP=m +CONFIG_USB_W9968CF=m +CONFIG_USB_OV511=m +CONFIG_USB_SE401=m +CONFIG_USB_SN9C102=m +CONFIG_USB_STV680=m +CONFIG_USB_ZC0301=m +CONFIG_USB_PWC=m +CONFIG_USB_PWC_DEBUG=y +CONFIG_USB_ZR364XX=m +CONFIG_USB_STKWEBCAM=m +# CONFIG_USB_S2255 is not set +# CONFIG_RADIO_ADAPTERS is not set +# CONFIG_DAB is not set + +# +# Graphics support +# +CONFIG_AGP=y +# CONFIG_AGP_ALI is not set +CONFIG_AGP_ATI=m +CONFIG_AGP_AMD=m +CONFIG_AGP_AMD64=m +CONFIG_AGP_INTEL=m +CONFIG_AGP_NVIDIA=m +CONFIG_AGP_SIS=m +# CONFIG_AGP_SWORKS is not set +CONFIG_AGP_VIA=m +# CONFIG_AGP_EFFICEON is not set +CONFIG_DRM=m +CONFIG_DRM_TDFX=m +CONFIG_DRM_R128=m +CONFIG_DRM_RADEON=m +CONFIG_DRM_I810=m +CONFIG_DRM_I830=m +CONFIG_DRM_I915=m +CONFIG_DRM_MGA=m +CONFIG_DRM_SIS=m +CONFIG_DRM_VIA=m +CONFIG_DRM_SAVAGE=m +# 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_SVGALIB is not set +# CONFIG_FB_MACMODES is not set +# CONFIG_FB_BACKLIGHT is not set +CONFIG_FB_MODE_HELPERS=y +# CONFIG_FB_TILEBLITTING is not set + +# +# 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=y +# CONFIG_FB_VESA is not set +# CONFIG_FB_EFI is not set +# 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_I810 is not set +# CONFIG_FB_LE80578 is not set +# CONFIG_FB_INTEL 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_CYBLA 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_VIRTUAL is not set +# CONFIG_FB_METRONOME is not set +# CONFIG_FB_MB862XX is not set +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_LCD_CLASS_DEVICE=m +# CONFIG_LCD_ILI9320 is not set +# CONFIG_LCD_PLATFORM is not set +CONFIG_BACKLIGHT_CLASS_DEVICE=m +# CONFIG_BACKLIGHT_CORGI is not set +# CONFIG_BACKLIGHT_PROGEAR is not set +# CONFIG_BACKLIGHT_MBP_NVIDIA is not set +# CONFIG_BACKLIGHT_SAHARA 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 is not set +CONFIG_DUMMY_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE=y +# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set +CONFIG_FB_CON_DECOR=y +# CONFIG_FONTS is not set +CONFIG_FONT_8x8=y +CONFIG_FONT_8x16=y +# CONFIG_LOGO is not set +CONFIG_SOUND=y +CONFIG_SOUND_OSS_CORE=y +CONFIG_SND=m +CONFIG_SND_TIMER=m +CONFIG_SND_PCM=m +CONFIG_SND_HWDEP=m +CONFIG_SND_RAWMIDI=m +CONFIG_SND_SEQUENCER=m +# CONFIG_SND_SEQ_DUMMY 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_SEQUENCER_OSS is not set +# CONFIG_SND_RTCTIMER is not set +# CONFIG_SND_DYNAMIC_MINORS is not set +# CONFIG_SND_SUPPORT_OLD_API is not set +CONFIG_SND_VERBOSE_PROCFS=y +# CONFIG_SND_VERBOSE_PRINTK is not set +# CONFIG_SND_DEBUG is not set +CONFIG_SND_VMASTER=y +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_DUMMY is not set +# CONFIG_SND_VIRMIDI is not set +# CONFIG_SND_MTPAV is not set +# CONFIG_SND_MTS64 is not set +# CONFIG_SND_SERIAL_U16550 is not set +# CONFIG_SND_MPU401 is not set +# CONFIG_SND_PORTMAN2X4 is not set +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_PCI=y +CONFIG_SND_AD1889=m +CONFIG_SND_ALS300=m +CONFIG_SND_ALS4000=m +CONFIG_SND_ALI5451=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=m +CONFIG_SND_AZT3328=m +CONFIG_SND_BT87X=m +CONFIG_SND_BT87X_OVERCLOCK=y +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_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_EMU10K1=m +CONFIG_SND_EMU10K1X=m +CONFIG_SND_ENS1370=m +CONFIG_SND_ENS1371=m +CONFIG_SND_ES1938=m +CONFIG_SND_ES1968=m +CONFIG_SND_FM801=m +CONFIG_SND_FM801_TEA575X_BOOL=y +CONFIG_SND_FM801_TEA575X=m +CONFIG_SND_HDA_INTEL=m +CONFIG_SND_HDA_HWDEP=y +# CONFIG_SND_HDA_INPUT_BEEP is not set +CONFIG_SND_HDA_CODEC_REALTEK=y +CONFIG_SND_HDA_CODEC_ANALOG=y +CONFIG_SND_HDA_CODEC_SIGMATEL=y +CONFIG_SND_HDA_CODEC_VIA=y +CONFIG_SND_HDA_CODEC_ATIHDMI=y +CONFIG_SND_HDA_CODEC_NVHDMI=y +CONFIG_SND_HDA_CODEC_CONEXANT=y +CONFIG_SND_HDA_CODEC_CMEDIA=y +CONFIG_SND_HDA_CODEC_SI3054=y +CONFIG_SND_HDA_GENERIC=y +CONFIG_SND_HDA_POWER_SAVE=y +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 +CONFIG_SND_HDSP=m +CONFIG_SND_HDSPM=m +CONFIG_SND_HIFIER=m +CONFIG_SND_ICE1712=m +CONFIG_SND_ICE1724=m +CONFIG_SND_INTEL8X0=m +CONFIG_SND_INTEL8X0M=m +CONFIG_SND_KORG1212=m +CONFIG_SND_MAESTRO3=m +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_USX2Y is not set +# CONFIG_SND_USB_CAIAQ is not set +# CONFIG_SND_USB_US122L 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_AC97_BUS=m +CONFIG_HID_SUPPORT=y +CONFIG_HID=y +# CONFIG_HID_DEBUG is not set +# CONFIG_HIDRAW is not set + +# +# USB Input Devices +# +CONFIG_USB_HID=y +# CONFIG_HID_PID is not set +# CONFIG_USB_HIDDEV is not set + +# +# Special HID drivers +# +CONFIG_HID_COMPAT=y +CONFIG_HID_A4TECH=y +CONFIG_HID_APPLE=y +CONFIG_HID_BELKIN=y +CONFIG_HID_BRIGHT=y +CONFIG_HID_CHERRY=y +CONFIG_HID_CHICONY=y +CONFIG_HID_CYPRESS=y +CONFIG_HID_DELL=y +CONFIG_HID_EZKEY=y +CONFIG_HID_GYRATION=y +CONFIG_HID_LOGITECH=y +# CONFIG_LOGITECH_FF is not set +# CONFIG_LOGIRUMBLEPAD2_FF is not set +CONFIG_HID_MICROSOFT=y +CONFIG_HID_MONTEREY=y +CONFIG_HID_PANTHERLORD=y +# CONFIG_PANTHERLORD_FF is not set +CONFIG_HID_PETALYNX=y +CONFIG_HID_SAMSUNG=y +CONFIG_HID_SONY=y +CONFIG_HID_SUNPLUS=y +# CONFIG_THRUSTMASTER_FF is not set +# CONFIG_ZEROPLUS_FF 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 is not set +# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set + +# +# Miscellaneous USB options +# +CONFIG_USB_DEVICEFS=y +CONFIG_USB_DEVICE_CLASS=y +# CONFIG_USB_DYNAMIC_MINORS is not set +CONFIG_USB_SUSPEND=y +# CONFIG_USB_OTG 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_EHCI_HCD=y +# CONFIG_USB_EHCI_ROOT_HUB_TT is not set +# CONFIG_USB_EHCI_TT_NEWSCHED is not set +# CONFIG_USB_ISP116X_HCD is not set +# CONFIG_USB_ISP1760_HCD is not set +CONFIG_USB_OHCI_HCD=m +# CONFIG_USB_OHCI_HCD_SSB is not set +# 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=m +# 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 +# CONFIG_USB_GADGET_MUSB_HDRC is not set + +# +# USB Device Class drivers +# +CONFIG_USB_ACM=m +CONFIG_USB_PRINTER=m +# 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 information +# +CONFIG_USB_STORAGE=y +# CONFIG_USB_STORAGE_DEBUG 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_DPCM 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_LIBUSUAL is not set + +# +# USB Imaging devices +# +# CONFIG_USB_MDC800 is not set +# CONFIG_USB_MICROTEK is not set + +# +# USB port drivers +# +# CONFIG_USB_USS720 is not set +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_CP2101=m +CONFIG_USB_SERIAL_CYPRESS_M8=m +CONFIG_USB_SERIAL_EMPEG=m +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=m +CONFIG_USB_SERIAL_IPW=m +CONFIG_USB_SERIAL_IUU=m +CONFIG_USB_SERIAL_KEYSPAN_PDA=m +CONFIG_USB_SERIAL_KEYSPAN=m +CONFIG_USB_SERIAL_KEYSPAN_MPR=y +CONFIG_USB_SERIAL_KEYSPAN_USA28=y +CONFIG_USB_SERIAL_KEYSPAN_USA28X=y +CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y +CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y +CONFIG_USB_SERIAL_KEYSPAN_USA19=y +CONFIG_USB_SERIAL_KEYSPAN_USA18X=y +CONFIG_USB_SERIAL_KEYSPAN_USA19W=y +CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y +CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y +CONFIG_USB_SERIAL_KEYSPAN_USA49W=y +CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y +CONFIG_USB_SERIAL_KLSI=m +CONFIG_USB_SERIAL_KOBIL_SCT=m +CONFIG_USB_SERIAL_MCT_U232=m +CONFIG_USB_SERIAL_MOS7720=m +CONFIG_USB_SERIAL_MOS7840=m +CONFIG_USB_SERIAL_MOTOROLA=m +CONFIG_USB_SERIAL_NAVMAN=m +CONFIG_USB_SERIAL_PL2303=m +CONFIG_USB_SERIAL_OTI6858=m +CONFIG_USB_SERIAL_SPCP8X5=m +CONFIG_USB_SERIAL_HP4X=m +CONFIG_USB_SERIAL_SAFE=m +CONFIG_USB_SERIAL_SAFE_PADDED=y +CONFIG_USB_SERIAL_SIERRAWIRELESS=m +CONFIG_USB_SERIAL_TI=m +CONFIG_USB_SERIAL_CYBERJACK=m +CONFIG_USB_SERIAL_XIRCOM=m +CONFIG_USB_SERIAL_OPTION=m +CONFIG_USB_SERIAL_OMNINET=m +CONFIG_USB_SERIAL_DEBUG=m + +# +# 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_BERRY_CHARGE is not set +# CONFIG_USB_LED is not set +# CONFIG_USB_CYPRESS_CY7C63 is not set +# CONFIG_USB_CYTHERM is not set +# CONFIG_USB_PHIDGET 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_VST is not set +CONFIG_USB_GADGET=m +# CONFIG_USB_GADGET_DEBUG_FILES is not set +CONFIG_USB_GADGET_VBUS_DRAW=2 +CONFIG_USB_GADGET_SELECTED=y +# CONFIG_USB_GADGET_AT91 is not set +# CONFIG_USB_GADGET_ATMEL_USBA is not set +# CONFIG_USB_GADGET_FSL_USB2 is not set +# CONFIG_USB_GADGET_LH7A40X is not set +# CONFIG_USB_GADGET_OMAP is not set +# CONFIG_USB_GADGET_PXA25X is not set +# CONFIG_USB_GADGET_PXA27X is not set +# CONFIG_USB_GADGET_S3C2410 is not set +CONFIG_USB_GADGET_M66592=y +CONFIG_USB_M66592=m +# CONFIG_USB_GADGET_AMD5536UDC is not set +# CONFIG_USB_GADGET_FSL_QE is not set +# CONFIG_USB_GADGET_NET2280 is not set +# CONFIG_USB_GADGET_GOKU is not set +# CONFIG_USB_GADGET_DUMMY_HCD is not set +CONFIG_USB_GADGET_DUALSPEED=y +# CONFIG_USB_ZERO is not set +CONFIG_USB_ETH=m +CONFIG_USB_ETH_RNDIS=y +# CONFIG_USB_GADGETFS is not set +# CONFIG_USB_FILE_STORAGE is not set +# CONFIG_USB_G_SERIAL is not set +# CONFIG_USB_MIDI_GADGET is not set +# CONFIG_USB_G_PRINTER is not set +# CONFIG_USB_CDC_COMPOSITE is not set +# CONFIG_UWB is not set +CONFIG_MMC=m +# CONFIG_MMC_DEBUG is not set +# CONFIG_MMC_UNSAFE_RESUME is not set + +# +# MMC/SD/SDIO Card Drivers +# +CONFIG_MMC_BLOCK=m +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_SDHCI=m +# CONFIG_MMC_SDHCI_PCI is not set +CONFIG_MMC_WBSD=m +CONFIG_MMC_TIFM_SD=m +# CONFIG_MMC_SDRICOH_CS is not set +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_NEW_LEDS=y +CONFIG_LEDS_CLASS=m + +# +# LED drivers +# +# CONFIG_LEDS_PCA9532 is not set +# CONFIG_LEDS_HP_DISK is not set +# CONFIG_LEDS_CLEVO_MAIL is not set +# CONFIG_LEDS_PCA955X is not set + +# +# LED Triggers +# +CONFIG_LEDS_TRIGGERS=y +# 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 +# CONFIG_ACCESSIBILITY is not set +# CONFIG_INFINIBAND is not set +# CONFIG_EDAC is not set +# CONFIG_RTC_CLASS is not set +# CONFIG_DMADEVICES is not set +# CONFIG_AUXDISPLAY is not set +# CONFIG_UIO is not set +# CONFIG_STAGING is not set + +# +# Firmware Drivers +# +# CONFIG_EDD is not set +CONFIG_FIRMWARE_MEMMAP=y +# CONFIG_EFI_VARS is not set +# CONFIG_DELL_RBU is not set +# CONFIG_DCDBAS is not set +CONFIG_DMIID=y +# CONFIG_ISCSI_IBFT_FIND is not set + +# +# File systems +# +CONFIG_EXT2_FS=m +CONFIG_EXT2_FS_XATTR=y +CONFIG_EXT2_FS_POSIX_ACL=y +CONFIG_EXT2_FS_SECURITY=y +CONFIG_EXT2_FS_XIP=y +CONFIG_EXT3_FS=m +CONFIG_EXT3_FS_XATTR=y +CONFIG_EXT3_FS_POSIX_ACL=y +CONFIG_EXT3_FS_SECURITY=y +CONFIG_EXT4_FS=m +# CONFIG_EXT4DEV_COMPAT is not set +CONFIG_EXT4_FS_XATTR=y +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_EXT4_FS_SECURITY=y +CONFIG_FS_XIP=y +CONFIG_JBD=m +CONFIG_JBD2=m +CONFIG_FS_MBCACHE=m +CONFIG_REISERFS_FS=m +CONFIG_REISERFS_CHECK=y +CONFIG_REISERFS_PROC_INFO=y +CONFIG_REISERFS_FS_XATTR=y +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y +CONFIG_JFS_FS=m +CONFIG_JFS_POSIX_ACL=y +CONFIG_JFS_SECURITY=y +CONFIG_JFS_DEBUG=y +CONFIG_JFS_STATISTICS=y +CONFIG_FS_POSIX_ACL=y +CONFIG_FILE_LOCKING=y +CONFIG_XFS_FS=m +CONFIG_XFS_QUOTA=y +CONFIG_XFS_POSIX_ACL=y +CONFIG_XFS_RT=y +# CONFIG_XFS_DEBUG is not set +# CONFIG_OCFS2_FS is not set +CONFIG_DNOTIFY=y +CONFIG_INOTIFY=y +CONFIG_INOTIFY_USER=y +# CONFIG_QUOTA is not set +CONFIG_QUOTACTL=y +# CONFIG_AUTOFS_FS is not set +CONFIG_AUTOFS4_FS=y +CONFIG_FUSE_FS=m + +# +# 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=866 +CONFIG_FAT_DEFAULT_IOCHARSET="utf8" +CONFIG_NTFS_FS=m +# CONFIG_NTFS_DEBUG is not set +CONFIG_NTFS_RW=y + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_KCORE=y +CONFIG_PROC_SYSCTL=y +CONFIG_PROC_PAGE_MONITOR=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +# CONFIG_TMPFS_POSIX_ACL is not set +# CONFIG_HUGETLBFS is not set +# CONFIG_HUGETLB_PAGE is not set +# CONFIG_CONFIGFS_FS is not set + +# +# Layered filesystems +# +# CONFIG_ECRYPT_FS is not set +CONFIG_UNION_FS=m +CONFIG_UNION_FS_XATTR=y +# CONFIG_UNION_FS_DEBUG is not set + +# +# Miscellaneous filesystems +# +# 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_CRAMFS 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_SYSV_FS is not set +# CONFIG_UFS_FS is not set +CONFIG_NETWORK_FILESYSTEMS=y +CONFIG_NFS_FS=m +CONFIG_NFS_V3=y +# CONFIG_NFS_V3_ACL is not set +CONFIG_NFS_V4=y +CONFIG_NFSD=m +CONFIG_NFSD_V3=y +# CONFIG_NFSD_V3_ACL is not set +# CONFIG_NFSD_V4 is not set +CONFIG_LOCKD=m +CONFIG_LOCKD_V4=y +CONFIG_EXPORTFS=m +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=m +CONFIG_SUNRPC_GSS=m +# CONFIG_SUNRPC_REGISTER_V4 is not set +CONFIG_RPCSEC_GSS_KRB5=m +# CONFIG_RPCSEC_GSS_SPKM3 is not set +CONFIG_SMB_FS=m +CONFIG_SMB_NLS_DEFAULT=y +CONFIG_SMB_NLS_REMOTE="cp866" +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_EXPERIMENTAL=y +# CONFIG_CIFS_DFS_UPCALL 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 is not set +CONFIG_MSDOS_PARTITION=y +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="utf8" +CONFIG_NLS_CODEPAGE_437=m +# 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=m +# 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=m +# 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=m +CONFIG_NLS_ASCII=m +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=m +# 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=m +CONFIG_NLS_KOI8_U=m +CONFIG_NLS_UTF8=m +# CONFIG_DLM is not set + +# +# Kernel hacking +# +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +# CONFIG_PRINTK_TIME is not set +# CONFIG_ENABLE_WARN_DEPRECATED is not set +# CONFIG_ENABLE_MUST_CHECK is not set +CONFIG_FRAME_WARN=1024 +CONFIG_MAGIC_SYSRQ=y +# CONFIG_UNUSED_SYMBOLS is not set +# CONFIG_DEBUG_FS is not set +# CONFIG_HEADERS_CHECK is not set +# CONFIG_DEBUG_KERNEL is not set +# CONFIG_SLUB_DEBUG_ON is not set +# CONFIG_SLUB_STATS is not set +CONFIG_DEBUG_BUGVERBOSE=y +CONFIG_DEBUG_MEMORY_INIT=y +# CONFIG_RCU_CPU_STALL_DETECTOR is not set +# CONFIG_LATENCYTOP is not set +CONFIG_SYSCTL_SYSCALL_CHECK=y +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y + +# +# Tracers +# +# CONFIG_SYSPROF_TRACER is not set +# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set +# CONFIG_DYNAMIC_PRINTK_DEBUG is not set +# CONFIG_SAMPLES is not set +CONFIG_HAVE_ARCH_KGDB=y +# CONFIG_STRICT_DEVMEM is not set +CONFIG_X86_VERBOSE_BOOTUP=y +CONFIG_EARLY_PRINTK=y +# CONFIG_EARLY_PRINTK_DBGP is not set +# CONFIG_4KSTACKS is not set +CONFIG_DOUBLEFAULT=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_OPTIMIZE_INLINING is not set + +# +# Security options +# +CONFIG_KEYS=y +CONFIG_KEYS_DEBUG_PROC_KEYS=y +# CONFIG_SECURITY is not set +# CONFIG_SECURITYFS is not set +# CONFIG_SECURITY_FILE_CAPABILITIES is not set +CONFIG_XOR_BLOCKS=m +CONFIG_ASYNC_CORE=m +CONFIG_ASYNC_MEMCPY=m +CONFIG_ASYNC_XOR=m +CONFIG_CRYPTO=y + +# +# Crypto core or helper +# +# CONFIG_CRYPTO_FIPS is not set +CONFIG_CRYPTO_ALGAPI=m +CONFIG_CRYPTO_ALGAPI2=m +CONFIG_CRYPTO_AEAD2=m +CONFIG_CRYPTO_BLKCIPHER=m +CONFIG_CRYPTO_BLKCIPHER2=m +CONFIG_CRYPTO_HASH=m +CONFIG_CRYPTO_HASH2=m +CONFIG_CRYPTO_RNG2=m +CONFIG_CRYPTO_MANAGER=m +CONFIG_CRYPTO_MANAGER2=m +# 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=m +# CONFIG_CRYPTO_CTR is not set +# CONFIG_CRYPTO_CTS is not set +CONFIG_CRYPTO_ECB=m +# CONFIG_CRYPTO_LRW is not set +CONFIG_CRYPTO_PCBC=m +# CONFIG_CRYPTO_XTS is not set + +# +# Hash modes +# +CONFIG_CRYPTO_HMAC=m +# CONFIG_CRYPTO_XCBC is not set + +# +# Digest +# +CONFIG_CRYPTO_CRC32C=m +# CONFIG_CRYPTO_CRC32C_INTEL is not set +# CONFIG_CRYPTO_MD4 is not set +CONFIG_CRYPTO_MD5=m +CONFIG_CRYPTO_MICHAEL_MIC=m +# 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=m +CONFIG_CRYPTO_SHA256=m +CONFIG_CRYPTO_SHA512=m +# CONFIG_CRYPTO_TGR192 is not set +# CONFIG_CRYPTO_WP512 is not set + +# +# Ciphers +# +CONFIG_CRYPTO_AES=m +CONFIG_CRYPTO_AES_586=m +# CONFIG_CRYPTO_ANUBIS is not set +CONFIG_CRYPTO_ARC4=m +# 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=m +# CONFIG_CRYPTO_FCRYPT is not set +# CONFIG_CRYPTO_KHAZAD is not set +# CONFIG_CRYPTO_SALSA20 is not set +# CONFIG_CRYPTO_SALSA20_586 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_586 is not set + +# +# Compression +# +CONFIG_CRYPTO_DEFLATE=m +# CONFIG_CRYPTO_LZO is not set + +# +# Random Number Generation +# +# CONFIG_CRYPTO_ANSI_CPRNG is not set +CONFIG_CRYPTO_HW=y +# CONFIG_CRYPTO_DEV_PADLOCK is not set +CONFIG_CRYPTO_DEV_GEODE=m +# CONFIG_CRYPTO_DEV_HIFN_795X is not set +CONFIG_HAVE_KVM=y +# CONFIG_VIRTUALIZATION is not set + +# +# Library routines +# +CONFIG_BITREVERSE=y +CONFIG_GENERIC_FIND_FIRST_BIT=y +CONFIG_GENERIC_FIND_NEXT_BIT=y +CONFIG_CRC_CCITT=m +CONFIG_CRC16=m +# CONFIG_CRC_T10DIF is not set +CONFIG_CRC_ITU_T=m +CONFIG_CRC32=y +# CONFIG_CRC7 is not set +CONFIG_LIBCRC32C=m +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=m +CONFIG_TEXTSEARCH=y +CONFIG_TEXTSEARCH_KMP=m +CONFIG_TEXTSEARCH_BM=m +CONFIG_TEXTSEARCH_FSM=m +CONFIG_PLIST=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAS_DMA=y +CONFIG_CHECK_SIGNATURE=y diff --git a/install/builder/kernel/config?system=desktop&march=x86_64 b/install/builder/kernel/config?system=desktop&march=x86_64 new file mode 100644 index 0000000..ac3fdef --- /dev/null +++ b/install/builder/kernel/config?system=desktop&march=x86_64 @@ -0,0 +1,2676 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.28.10-calculate +# Tue May 26 18:43:39 2009 +# +CONFIG_64BIT=y +# CONFIG_X86_32 is not set +CONFIG_X86_64=y +CONFIG_X86=y +CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig" +CONFIG_GENERIC_TIME=y +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_FAST_CMPXCHG_LOCAL=y +CONFIG_MMU=y +CONFIG_ZONE_DMA=y +CONFIG_GENERIC_ISA_DMA=y +CONFIG_GENERIC_IOMAP=y +CONFIG_GENERIC_BUG=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_ARCH_MAY_HAVE_PC_FDC=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set +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_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_GENERIC_HARDIRQS=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_X86_SMP=y +CONFIG_USE_GENERIC_SMP_HELPERS=y +CONFIG_X86_64_SMP=y +CONFIG_X86_HT=y +CONFIG_X86_BIOS_REBOOT=y +CONFIG_X86_TRAMPOLINE=y +# CONFIG_KTIME_SCALAR is not set +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" + +# +# General setup +# +CONFIG_EXPERIMENTAL=y +CONFIG_LOCK_KERNEL=y +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +CONFIG_POSIX_MQUEUE=y +# CONFIG_BSD_PROCESS_ACCT is not set +# CONFIG_TASKSTATS is not set +# CONFIG_AUDIT is not set +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_LOG_BUF_SHIFT=18 +# CONFIG_CGROUPS is not set +CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y +CONFIG_GROUP_SCHED=y +CONFIG_FAIR_GROUP_SCHED=y +# CONFIG_RT_GROUP_SCHED is not set +CONFIG_USER_SCHED=y +# CONFIG_CGROUP_SCHED is not set +CONFIG_SYSFS_DEPRECATED=y +CONFIG_SYSFS_DEPRECATED_V2=y +# CONFIG_RELAY is not set +CONFIG_NAMESPACES=y +# CONFIG_UTS_NS is not set +# CONFIG_IPC_NS is not set +# CONFIG_USER_NS is not set +# CONFIG_PID_NS is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="/usr/share/v86d/initramfs " +CONFIG_INITRAMFS_ROOT_UID=0 +CONFIG_INITRAMFS_ROOT_GID=0 +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_SYSCTL=y +CONFIG_ANON_INODES=y +# CONFIG_EMBEDDED is not set +CONFIG_UID16=y +CONFIG_SYSCTL_SYSCALL=y +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_EXTRA_PASS is not set +CONFIG_HOTPLUG=y +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_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_VM_EVENT_COUNTERS=y +CONFIG_PCI_QUIRKS=y +CONFIG_SLUB_DEBUG=y +CONFIG_COMPAT_BRK=y +# CONFIG_SLAB is not set +CONFIG_SLUB=y +# CONFIG_SLOB is not set +# CONFIG_PROFILING is not set +# CONFIG_MARKERS is not set +CONFIG_HAVE_OPROFILE=y +# CONFIG_KPROBES is not set +CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y +CONFIG_HAVE_IOREMAP_PROT=y +CONFIG_HAVE_KPROBES=y +CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_ARCH_TRACEHOOK=y +# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set +CONFIG_SLABINFO=y +CONFIG_RT_MUTEXES=y +# CONFIG_TINY_SHMEM is not set +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_KMOD=y +CONFIG_STOP_MACHINE=y +CONFIG_BLOCK=y +# CONFIG_BLK_DEV_IO_TRACE is not set +# CONFIG_BLK_DEV_BSG is not set +# CONFIG_BLK_DEV_INTEGRITY is not set +CONFIG_BLOCK_COMPAT=y + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_AS=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y +# CONFIG_DEFAULT_AS is not set +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="cfq" +CONFIG_CLASSIC_RCU=y +CONFIG_FREEZER=y + +# +# Processor type and features +# +# CONFIG_NO_HZ is not set +# CONFIG_HIGH_RES_TIMERS is not set +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +CONFIG_SMP=y +CONFIG_X86_FIND_SMP_CONFIG=y +CONFIG_X86_MPPARSE=y +CONFIG_X86_PC=y +# CONFIG_X86_ELAN is not set +# CONFIG_X86_VOYAGER is not set +# CONFIG_X86_GENERICARCH is not set +# CONFIG_X86_VSMP is not set +# CONFIG_PARAVIRT_GUEST is not set +# 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 is not set +# 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_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_MPSC is not set +# CONFIG_MCORE2 is not set +CONFIG_GENERIC_CPU=y +CONFIG_X86_CPU=y +CONFIG_X86_L1_CACHE_BYTES=128 +CONFIG_X86_INTERNODE_CACHE_BYTES=128 +CONFIG_X86_CMPXCHG=y +CONFIG_X86_L1_CACHE_SHIFT=7 +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_64=y +# CONFIG_X86_DS is not set +CONFIG_HPET_TIMER=y +CONFIG_HPET_EMULATE_RTC=y +CONFIG_DMI=y +CONFIG_GART_IOMMU=y +# CONFIG_CALGARY_IOMMU is not set +# CONFIG_AMD_IOMMU is not set +CONFIG_SWIOTLB=y +CONFIG_IOMMU_HELPER=y +CONFIG_NR_CPUS=16 +CONFIG_SCHED_SMT=y +CONFIG_SCHED_MC=y +# 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_MCE=y +CONFIG_X86_MCE_INTEL=y +CONFIG_X86_MCE_AMD=y +CONFIG_I8K=m +CONFIG_MICROCODE=m +CONFIG_MICROCODE_INTEL=y +# CONFIG_MICROCODE_AMD is not set +CONFIG_MICROCODE_OLD_INTERFACE=y +CONFIG_X86_MSR=m +CONFIG_X86_CPUID=m +CONFIG_ARCH_PHYS_ADDR_T_64BIT=y +CONFIG_NUMA=y +CONFIG_K8_NUMA=y +CONFIG_X86_64_ACPI_NUMA=y +CONFIG_NODES_SPAN_OTHER_NODES=y +CONFIG_NUMA_EMU=y +CONFIG_NODES_SHIFT=6 +CONFIG_ARCH_SPARSEMEM_DEFAULT=y +CONFIG_ARCH_SPARSEMEM_ENABLE=y +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_SELECT_MEMORY_MODEL=y +# CONFIG_FLATMEM_MANUAL is not set +# CONFIG_DISCONTIGMEM_MANUAL is not set +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_VMEMMAP=y + +# +# Memory hotplug is currently incompatible with Software Suspend +# +CONFIG_PAGEFLAGS_EXTENDED=y +CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_MIGRATION=y +CONFIG_RESOURCES_64BIT=y +CONFIG_PHYS_ADDR_T_64BIT=y +CONFIG_ZONE_DMA_FLAG=1 +CONFIG_BOUNCE=y +CONFIG_VIRT_TO_BUS=y +CONFIG_UNEVICTABLE_LRU=y +# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set +CONFIG_X86_RESERVE_LOW_64K=y +CONFIG_MTRR=y +CONFIG_MTRR_SANITIZER=y +CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0 +CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1 +CONFIG_X86_PAT=y +# CONFIG_EFI is not set +CONFIG_SECCOMP=y +# 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 is not set +CONFIG_KEXEC=y +# CONFIG_CRASH_DUMP is not set +CONFIG_PHYSICAL_START=0x200000 +CONFIG_RELOCATABLE=y +CONFIG_PHYSICAL_ALIGN=0x200000 +CONFIG_HOTPLUG_CPU=y +CONFIG_COMPAT_VDSO=y +# CONFIG_CMDLINE_BOOL is not set +CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y +CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y + +# +# Power management and ACPI options +# +CONFIG_ARCH_HIBERNATION_HEADER=y +CONFIG_PM=y +# CONFIG_PM_DEBUG is not set +CONFIG_PM_SLEEP_SMP=y +CONFIG_PM_SLEEP=y +CONFIG_SUSPEND=y +CONFIG_SUSPEND_FREEZER=y +CONFIG_HIBERNATION=y +CONFIG_PM_STD_PARTITION="" +CONFIG_ACPI=y +CONFIG_ACPI_SLEEP=y +CONFIG_ACPI_PROCFS=y +CONFIG_ACPI_PROCFS_POWER=y +CONFIG_ACPI_SYSFS_POWER=y +CONFIG_ACPI_PROC_EVENT=y +CONFIG_ACPI_AC=m +CONFIG_ACPI_BATTERY=m +CONFIG_ACPI_BUTTON=m +CONFIG_ACPI_FAN=m +CONFIG_ACPI_DOCK=y +CONFIG_ACPI_PROCESSOR=m +CONFIG_ACPI_HOTPLUG_CPU=y +CONFIG_ACPI_THERMAL=m +CONFIG_ACPI_NUMA=y +CONFIG_ACPI_WMI=m +CONFIG_ACPI_ASUS=m +CONFIG_ACPI_TOSHIBA=m +# 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_ACPI_SYSTEM=y +CONFIG_X86_PM_TIMER=y +CONFIG_ACPI_CONTAINER=m +CONFIG_ACPI_SBS=m + +# +# CPU Frequency scaling +# +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_TABLE=y +# CONFIG_CPU_FREQ_DEBUG is not set +CONFIG_CPU_FREQ_STAT=y +# CONFIG_CPU_FREQ_STAT_DETAILS is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +# 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=m +CONFIG_CPU_FREQ_GOV_ONDEMAND=m +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m + +# +# CPUFreq processor drivers +# +CONFIG_X86_ACPI_CPUFREQ=m +CONFIG_X86_POWERNOW_K8=m +CONFIG_X86_POWERNOW_K8_ACPI=y +CONFIG_X86_SPEEDSTEP_CENTRINO=m +CONFIG_X86_P4_CLOCKMOD=m + +# +# shared options +# +CONFIG_X86_ACPI_CPUFREQ_PROC_INTF=y +CONFIG_X86_SPEEDSTEP_LIB=m +CONFIG_CPU_IDLE=y +CONFIG_CPU_IDLE_GOV_LADDER=y + +# +# 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_DMAR is not set +# CONFIG_INTR_REMAP is not set +CONFIG_PCIEPORTBUS=y +CONFIG_PCIEAER=y +# CONFIG_PCIEASPM is not set +CONFIG_ARCH_SUPPORTS_MSI=y +CONFIG_PCI_MSI=y +CONFIG_PCI_LEGACY=y +CONFIG_HT_IRQ=y +CONFIG_ISA_DMA_API=y +CONFIG_K8_NB=y +CONFIG_PCCARD=m +# CONFIG_PCMCIA_DEBUG is not set +CONFIG_PCMCIA=m +CONFIG_PCMCIA_LOAD_CIS=y +CONFIG_PCMCIA_IOCTL=y +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_PD6729=m +CONFIG_I82092=m +CONFIG_PCCARD_NONSTATIC=m +# CONFIG_HOTPLUG_PCI is not set + +# +# Executable file formats / Emulations +# +CONFIG_BINFMT_ELF=y +CONFIG_COMPAT_BINFMT_ELF=y +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +# CONFIG_HAVE_AOUT is not set +CONFIG_BINFMT_MISC=y +CONFIG_IA32_EMULATION=y +CONFIG_IA32_AOUT=y +CONFIG_COMPAT=y +CONFIG_COMPAT_FOR_U64_ALIGNMENT=y +CONFIG_SYSVIPC_COMPAT=y +CONFIG_NET=y + +# +# Networking options +# +CONFIG_PACKET=y +# CONFIG_PACKET_MMAP is not set +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=y +CONFIG_ASK_IP_FIB_HASH=y +# CONFIG_IP_FIB_TRIE is not set +CONFIG_IP_FIB_HASH=y +# CONFIG_IP_MULTIPLE_TABLES is not set +CONFIG_IP_ROUTE_MULTIPATH=y +CONFIG_IP_ROUTE_VERBOSE=y +# CONFIG_IP_PNP is not set +CONFIG_NET_IPIP=m +CONFIG_NET_IPGRE=m +# CONFIG_NET_IPGRE_BROADCAST 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=m +CONFIG_INET_XFRM_MODE_TRANSPORT=y +CONFIG_INET_XFRM_MODE_TUNNEL=y +CONFIG_INET_XFRM_MODE_BEET=y +# CONFIG_INET_LRO is not set +# 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_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set +CONFIG_NETFILTER_ADVANCED=y + +# +# Core Netfilter Configuration +# +CONFIG_NETFILTER_NETLINK=m +CONFIG_NETFILTER_NETLINK_QUEUE=m +CONFIG_NETFILTER_NETLINK_LOG=m +CONFIG_NF_CONNTRACK=m +CONFIG_NF_CT_ACCT=y +CONFIG_NF_CONNTRACK_MARK=y +CONFIG_NF_CONNTRACK_EVENTS=y +# CONFIG_NF_CT_PROTO_DCCP is not set +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_NETBIOS_NS=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 is not set +CONFIG_NETFILTER_XTABLES=m +CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m +CONFIG_NETFILTER_XT_TARGET_CONNMARK=m +CONFIG_NETFILTER_XT_TARGET_DSCP=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_TRACE=m +CONFIG_NETFILTER_XT_TARGET_TCPMSS=m +CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=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_DCCP=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_IPRANGE=m +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_OWNER=m +CONFIG_NETFILTER_XT_MATCH_POLICY=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 is not set +CONFIG_NETFILTER_XT_MATCH_SCTP=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_VS is not set + +# +# IP: Netfilter Configuration +# +CONFIG_NF_DEFRAG_IPV4=m +CONFIG_NF_CONNTRACK_IPV4=m +CONFIG_NF_CONNTRACK_PROC_COMPAT=y +CONFIG_IP_NF_QUEUE=m +CONFIG_IP_NF_IPTABLES=m +CONFIG_IP_NF_MATCH_ADDRTYPE=m +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=m +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_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_ARPTABLES=m +CONFIG_IP_NF_ARPFILTER=m +CONFIG_IP_NF_ARP_MANGLE=m +# CONFIG_IP_DCCP is not set +# CONFIG_IP_SCTP is not set +# CONFIG_TIPC is not set +# CONFIG_ATM 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_NET_SCHED is not set +CONFIG_NET_CLS_ROUTE=y + +# +# 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=m +CONFIG_BT_L2CAP=m +CONFIG_BT_SCO=m +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_HIDP=m + +# +# Bluetooth device drivers +# +CONFIG_BT_HCIBTUSB=m +# CONFIG_BT_HCIBTSDIO is not set +# CONFIG_BT_HCIUART is not set +# CONFIG_BT_HCIBCM203X is not set +# CONFIG_BT_HCIBPA10X is not set +# CONFIG_BT_HCIBFUSB is not set +# CONFIG_BT_HCIDTL1 is not set +# CONFIG_BT_HCIBT3C is not set +# CONFIG_BT_HCIBLUECARD is not set +# CONFIG_BT_HCIBTUART is not set +# CONFIG_BT_HCIVHCI is not set +# CONFIG_AF_RXRPC is not set +# CONFIG_PHONET is not set +CONFIG_WIRELESS=y +CONFIG_CFG80211=m +CONFIG_NL80211=y +CONFIG_WIRELESS_OLD_REGULATORY=y +CONFIG_WIRELESS_EXT=y +CONFIG_WIRELESS_EXT_SYSFS=y +CONFIG_MAC80211=m + +# +# Rate control algorithm selection +# +CONFIG_MAC80211_RC_PID=y +# CONFIG_MAC80211_RC_MINSTREL is not set +CONFIG_MAC80211_RC_DEFAULT_PID=y +# CONFIG_MAC80211_RC_DEFAULT_MINSTREL is not set +CONFIG_MAC80211_RC_DEFAULT="pid" +# CONFIG_MAC80211_MESH is not set +CONFIG_MAC80211_LEDS=y +# CONFIG_MAC80211_DEBUG_MENU is not set +CONFIG_IEEE80211=m +# CONFIG_IEEE80211_DEBUG is not set +CONFIG_IEEE80211_CRYPT_WEP=m +CONFIG_IEEE80211_CRYPT_CCMP=m +CONFIG_IEEE80211_CRYPT_TKIP=m +CONFIG_RFKILL=m +CONFIG_RFKILL_INPUT=m +CONFIG_RFKILL_LEDS=y +# CONFIG_NET_9P is not set + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_FW_LOADER=y +CONFIG_FIRMWARE_IN_KERNEL=y +CONFIG_EXTRA_FIRMWARE="" +# CONFIG_SYS_HYPERVISOR is not set +CONFIG_CONNECTOR=y +CONFIG_PROC_EVENTS=y +# CONFIG_MTD is not set +CONFIG_PARPORT=y +CONFIG_PARPORT_PC=y +# CONFIG_PARPORT_SERIAL is not set +# CONFIG_PARPORT_PC_FIFO is not set +# CONFIG_PARPORT_PC_SUPERIO is not set +# CONFIG_PARPORT_PC_PCMCIA is not set +# CONFIG_PARPORT_GSC is not set +# CONFIG_PARPORT_AX88796 is not set +# CONFIG_PARPORT_1284 is not set +CONFIG_PNP=y +CONFIG_PNP_DEBUG_MESSAGES=y + +# +# Protocols +# +CONFIG_PNPACPI=y +CONFIG_BLK_DEV=y +CONFIG_BLK_DEV_FD=m +# CONFIG_PARIDE is not set +# CONFIG_BLK_CPQ_DA is not set +CONFIG_BLK_CPQ_CISS_DA=m +# CONFIG_CISS_SCSI_TAPE 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_CRYPTOLOOP is not set +# CONFIG_BLK_DEV_NBD 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=4096 +# CONFIG_BLK_DEV_XIP is not set +CONFIG_CDROM_PKTCDVD=m +CONFIG_CDROM_PKTCDVD_BUFFERS=8 +# CONFIG_CDROM_PKTCDVD_WCACHE is not set +# CONFIG_ATA_OVER_ETH is not set +# CONFIG_BLK_DEV_HD is not set +CONFIG_MISC_DEVICES=y +CONFIG_IBM_ASM=m +CONFIG_PHANTOM=m +CONFIG_EEPROM_93CX6=m +CONFIG_SGI_IOC4=m +CONFIG_TIFM_CORE=m +CONFIG_TIFM_7XX1=m +CONFIG_ACER_WMI=m +CONFIG_ASUS_LAPTOP=m +CONFIG_FUJITSU_LAPTOP=m +# CONFIG_FUJITSU_LAPTOP_DEBUG is not set +# CONFIG_HP_WMI is not set +# CONFIG_ICS932S401 is not set +CONFIG_MSI_LAPTOP=m +# CONFIG_PANASONIC_LAPTOP is not set +# CONFIG_COMPAL_LAPTOP is not set +CONFIG_SONY_LAPTOP=m +CONFIG_SONYPI_COMPAT=y +CONFIG_THINKPAD_ACPI=m +CONFIG_THINKPAD_ACPI_DEBUG=y +CONFIG_THINKPAD_ACPI_BAY=y +CONFIG_THINKPAD_ACPI_VIDEO=y +CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y +CONFIG_INTEL_MENLOW=m +CONFIG_EEEPC_LAPTOP=m +CONFIG_ENCLOSURE_SERVICES=m +# CONFIG_SGI_XP is not set +# CONFIG_HP_ILO is not set +# CONFIG_SGI_GRU is not set +# CONFIG_C2PORT is not set +CONFIG_HAVE_IDE=y +# CONFIG_IDE is not set + +# +# SCSI device support +# +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=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 is not set +# CONFIG_CHR_DEV_SCH is not set +# CONFIG_SCSI_ENCLOSURE is not set + +# +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs +# +# CONFIG_SCSI_MULTI_LUN is not set +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_LOGGING is not set +# CONFIG_SCSI_SCAN_ASYNC is not set +CONFIG_SCSI_WAIT_SCAN=m + +# +# SCSI Transports +# +CONFIG_SCSI_SPI_ATTRS=m +CONFIG_SCSI_FC_ATTRS=m +# CONFIG_SCSI_FC_TGT_ATTRS is not set +CONFIG_SCSI_ISCSI_ATTRS=m +CONFIG_SCSI_SAS_ATTRS=m +CONFIG_SCSI_SAS_LIBSAS=m +# CONFIG_SCSI_SAS_ATA is not set +CONFIG_SCSI_SAS_HOST_SMP=y +CONFIG_SCSI_SAS_LIBSAS_DEBUG=y +# CONFIG_SCSI_SRP_ATTRS is not set +CONFIG_SCSI_LOWLEVEL=y +CONFIG_ISCSI_TCP=m +CONFIG_BLK_DEV_3W_XXXX_RAID=m +CONFIG_SCSI_3W_9XXX=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 is not set +CONFIG_AIC7XXX_DEBUG_MASK=0 +# CONFIG_AIC7XXX_REG_PRETTY_PRINT is not set +CONFIG_SCSI_AIC7XXX_OLD=m +CONFIG_SCSI_AIC79XX=m +CONFIG_AIC79XX_CMDS_PER_DEVICE=32 +CONFIG_AIC79XX_RESET_DELAY_MS=5000 +# 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=y +# CONFIG_SCSI_DPT_I2O is not set +CONFIG_SCSI_ADVANSYS=m +CONFIG_SCSI_ARCMSR=m +CONFIG_SCSI_ARCMSR_AER=y +CONFIG_MEGARAID_NEWGEN=y +CONFIG_MEGARAID_MM=m +CONFIG_MEGARAID_MAILBOX=m +CONFIG_MEGARAID_LEGACY=m +CONFIG_MEGARAID_SAS=m +CONFIG_SCSI_HPTIOP=m +CONFIG_SCSI_BUSLOGIC=m +CONFIG_SCSI_DMX3191D=m +CONFIG_SCSI_EATA=m +CONFIG_SCSI_EATA_TAGGED_QUEUE=y +CONFIG_SCSI_EATA_LINKED_COMMANDS=y +CONFIG_SCSI_EATA_MAX_TAGS=16 +CONFIG_SCSI_FUTURE_DOMAIN=m +CONFIG_SCSI_GDTH=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=y +CONFIG_SCSI_IZIP_SLOW_CTR=y +CONFIG_SCSI_MVSAS=m +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_DC395x=m +CONFIG_SCSI_DC390T=m +# CONFIG_SCSI_DEBUG is not set +CONFIG_SCSI_SRP=m +# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set +# CONFIG_SCSI_DH is not set +CONFIG_ATA=y +# CONFIG_ATA_NONSTANDARD is not set +CONFIG_ATA_ACPI=y +CONFIG_SATA_PMP=y +CONFIG_SATA_AHCI=y +CONFIG_SATA_SIL24=m +CONFIG_ATA_SFF=y +CONFIG_SATA_SVW=m +CONFIG_ATA_PIIX=y +CONFIG_SATA_MV=m +CONFIG_SATA_NV=m +CONFIG_PDC_ADMA=m +CONFIG_SATA_QSTOR=m +CONFIG_SATA_PROMISE=m +CONFIG_SATA_SX4=m +CONFIG_SATA_SIL=m +CONFIG_SATA_SIS=m +CONFIG_SATA_ULI=m +CONFIG_SATA_VIA=m +CONFIG_SATA_VITESSE=m +CONFIG_SATA_INIC162X=m +CONFIG_PATA_ACPI=m +CONFIG_PATA_ALI=m +CONFIG_PATA_AMD=m +CONFIG_PATA_ARTOP=m +CONFIG_PATA_ATIIXP=m +CONFIG_PATA_CMD640_PCI=m +CONFIG_PATA_CMD64X=m +CONFIG_PATA_CS5520=m +CONFIG_PATA_CS5530=m +CONFIG_PATA_CYPRESS=m +CONFIG_PATA_EFAR=m +CONFIG_ATA_GENERIC=m +CONFIG_PATA_HPT366=m +CONFIG_PATA_HPT37X=m +CONFIG_PATA_HPT3X2N=m +CONFIG_PATA_HPT3X3=m +CONFIG_PATA_HPT3X3_DMA=y +CONFIG_PATA_IT821X=m +CONFIG_PATA_IT8213=m +CONFIG_PATA_JMICRON=m +CONFIG_PATA_TRIFLEX=m +CONFIG_PATA_MARVELL=m +CONFIG_PATA_MPIIX=y +CONFIG_PATA_OLDPIIX=m +CONFIG_PATA_NETCELL=m +CONFIG_PATA_NINJA32=m +CONFIG_PATA_NS87410=m +CONFIG_PATA_NS87415=m +CONFIG_PATA_OPTI=m +CONFIG_PATA_OPTIDMA=m +CONFIG_PATA_PCMCIA=m +CONFIG_PATA_PDC_OLD=m +CONFIG_PATA_RADISYS=m +CONFIG_PATA_RZ1000=m +CONFIG_PATA_SC1200=m +CONFIG_PATA_SERVERWORKS=m +CONFIG_PATA_PDC2027X=m +CONFIG_PATA_SIL680=m +CONFIG_PATA_SIS=m +CONFIG_PATA_VIA=m +CONFIG_PATA_WINBOND=m +CONFIG_PATA_SCH=m +CONFIG_MD=y +CONFIG_BLK_DEV_MD=m +CONFIG_MD_LINEAR=m +CONFIG_MD_RAID0=m +CONFIG_MD_RAID1=m +CONFIG_MD_RAID10=m +CONFIG_MD_RAID456=m +CONFIG_MD_RAID5_RESHAPE=y +# CONFIG_MD_MULTIPATH is not set +# CONFIG_MD_FAULTY is not set +# CONFIG_BLK_DEV_DM is not set +CONFIG_FUSION=y +CONFIG_FUSION_SPI=m +CONFIG_FUSION_FC=m +CONFIG_FUSION_SAS=m +CONFIG_FUSION_MAX_SGE=128 +CONFIG_FUSION_CTL=m +# CONFIG_FUSION_LOGGING is not set + +# +# IEEE 1394 (FireWire) support +# + +# +# Enable only one of the two stacks, unless you know what you are doing +# +# CONFIG_FIREWIRE is not set +CONFIG_IEEE1394=m +CONFIG_IEEE1394_OHCI1394=m +CONFIG_IEEE1394_PCILYNX=m +CONFIG_IEEE1394_SBP2=m +# CONFIG_IEEE1394_SBP2_PHYS_DMA is not set +# CONFIG_IEEE1394_ETH1394_ROM_ENTRY is not set +# CONFIG_IEEE1394_ETH1394 is not set +CONFIG_IEEE1394_RAWIO=m +CONFIG_IEEE1394_VIDEO1394=m +# CONFIG_IEEE1394_DV1394 is not set +# CONFIG_IEEE1394_VERBOSEDEBUG is not set +# CONFIG_I2O is not set +CONFIG_MACINTOSH_DRIVERS=y +CONFIG_MAC_EMUMOUSEBTN=y +CONFIG_NETDEVICES=y +CONFIG_DUMMY=m +CONFIG_BONDING=m +# 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_PHYLIB=m + +# +# 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_MDIO_BITBANG is not set +CONFIG_NET_ETHERNET=y +CONFIG_MII=m +# CONFIG_HAPPYMEAL is not set +# CONFIG_SUNGEM is not set +# CONFIG_CASSINI is not set +CONFIG_NET_VENDOR_3COM=y +CONFIG_VORTEX=m +CONFIG_TYPHOON=m +# CONFIG_NET_TULIP 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=m +CONFIG_AMD8111_ETH=m +# CONFIG_ADAPTEC_STARFIRE is not set +CONFIG_B44=m +CONFIG_B44_PCI_AUTOSELECT=y +CONFIG_B44_PCICORE_AUTOSELECT=y +CONFIG_B44_PCI=y +CONFIG_FORCEDETH=m +# CONFIG_FORCEDETH_NAPI is not set +# CONFIG_EEPRO100 is not set +CONFIG_E100=m +CONFIG_FEALNX=m +CONFIG_NATSEMI=m +CONFIG_NE2K_PCI=m +CONFIG_8139CP=m +CONFIG_8139TOO=m +CONFIG_8139TOO_PIO=y +CONFIG_8139TOO_TUNE_TWISTER=y +CONFIG_8139TOO_8129=y +# CONFIG_8139_OLD_RX_RESET is not set +CONFIG_R6040=m +CONFIG_SIS900=m +CONFIG_EPIC100=m +CONFIG_SUNDANCE=m +CONFIG_SUNDANCE_MMIO=y +CONFIG_TLAN=m +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=y +CONFIG_DL2K=m +CONFIG_E1000=m +CONFIG_E1000E=m +CONFIG_IP1000=m +CONFIG_IGB=m +# CONFIG_IGB_LRO is not set +CONFIG_NS83820=m +CONFIG_HAMACHI=m +CONFIG_YELLOWFIN=m +CONFIG_R8169=m +CONFIG_SIS190=m +CONFIG_SKGE=m +CONFIG_SKY2=m +CONFIG_VIA_VELOCITY=m +CONFIG_TIGON3=m +CONFIG_BNX2=m +CONFIG_QLA3XXX=m +CONFIG_ATL1=m +CONFIG_ATL1E=m +CONFIG_JME=m +CONFIG_NETDEV_10000=y +# CONFIG_CHELSIO_T1 is not set +# CONFIG_CHELSIO_T3 is not set +# CONFIG_ENIC is not set +# CONFIG_IXGBE is not set +# CONFIG_IXGB is not set +# CONFIG_S2IO 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_QLGE is not set +# CONFIG_SFC is not set +# CONFIG_TR is not set + +# +# Wireless LAN +# +# CONFIG_WLAN_PRE80211 is not set +CONFIG_WLAN_80211=y +CONFIG_PCMCIA_RAYCS=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_LIBERTAS=m +CONFIG_LIBERTAS_USB=m +CONFIG_LIBERTAS_CS=m +CONFIG_LIBERTAS_SDIO=m +# CONFIG_LIBERTAS_DEBUG is not set +# CONFIG_LIBERTAS_THINFIRM is not set +CONFIG_AIRO=m +CONFIG_HERMES=m +CONFIG_PLX_HERMES=m +CONFIG_TMD_HERMES=m +CONFIG_NORTEL_HERMES=m +CONFIG_PCI_HERMES=m +CONFIG_PCMCIA_HERMES=m +CONFIG_PCMCIA_SPECTRUM=m +CONFIG_ATMEL=m +CONFIG_PCI_ATMEL=m +CONFIG_PCMCIA_ATMEL=m +CONFIG_AIRO_CS=m +CONFIG_PCMCIA_WL3501=m +CONFIG_PRISM54=m +CONFIG_USB_ZD1201=m +CONFIG_USB_NET_RNDIS_WLAN=m +CONFIG_RTL8180=m +CONFIG_RTL8187=m +CONFIG_ADM8211=m +# CONFIG_MAC80211_HWSIM is not set +CONFIG_P54_COMMON=m +CONFIG_P54_USB=m +CONFIG_P54_PCI=m +CONFIG_ATH5K=m +# CONFIG_ATH5K_DEBUG is not set +CONFIG_ATH9K=m +CONFIG_IWLWIFI=m +CONFIG_IWLCORE=m +CONFIG_IWLWIFI_LEDS=y +CONFIG_IWLWIFI_RFKILL=y +# CONFIG_IWLWIFI_DEBUG is not set +CONFIG_IWLAGN=m +CONFIG_IWLAGN_SPECTRUM_MEASUREMENT=y +CONFIG_IWLAGN_LEDS=y +CONFIG_IWL4965=y +CONFIG_IWL5000=y +CONFIG_IWL3945=m +CONFIG_IWL3945_RFKILL=y +CONFIG_IWL3945_SPECTRUM_MEASUREMENT=y +CONFIG_IWL3945_LEDS=y +# CONFIG_IWL3945_DEBUG is not set +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +CONFIG_HOSTAP_FIRMWARE_NVRAM=y +CONFIG_HOSTAP_PLX=m +CONFIG_HOSTAP_PCI=m +CONFIG_HOSTAP_CS=m +CONFIG_B43=m +CONFIG_B43_PCI_AUTOSELECT=y +CONFIG_B43_PCICORE_AUTOSELECT=y +CONFIG_B43_PCMCIA=y +CONFIG_B43_PIO=y +CONFIG_B43_LEDS=y +CONFIG_B43_RFKILL=y +CONFIG_B43_DEBUG=y +CONFIG_B43_FORCE_PIO=y +CONFIG_B43LEGACY=m +CONFIG_B43LEGACY_PCI_AUTOSELECT=y +CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y +CONFIG_B43LEGACY_LEDS=y +CONFIG_B43LEGACY_RFKILL=y +CONFIG_B43LEGACY_DEBUG=y +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_ZD1211RW=m +# CONFIG_ZD1211RW_DEBUG is not set +CONFIG_RT2X00=m +CONFIG_RT2400PCI=m +CONFIG_RT2500PCI=m +CONFIG_RT61PCI=m +CONFIG_RT2500USB=m +CONFIG_RT73USB=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_RFKILL=y +CONFIG_RT2X00_LIB_LEDS=y +# CONFIG_RT2X00_DEBUG 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_DM9601=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_HSO=m +CONFIG_NET_PCMCIA=y +CONFIG_PCMCIA_3C589=m +CONFIG_PCMCIA_3C574=m +CONFIG_PCMCIA_FMVJ18X=m +CONFIG_PCMCIA_PCNET=m +CONFIG_PCMCIA_NMCLAN=m +CONFIG_PCMCIA_SMC91C92=m +CONFIG_PCMCIA_XIRC2PS=m +CONFIG_PCMCIA_AXNET=m +# CONFIG_WAN is not set +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +# CONFIG_PLIP is not set +CONFIG_PPP=y +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_PPPOL2TP=m +CONFIG_SLIP=m +# CONFIG_SLIP_COMPRESSED is not set +CONFIG_SLHC=y +# CONFIG_SLIP_SMART is not set +# CONFIG_SLIP_MODE_SLIP6 is not set +# CONFIG_NET_FC 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=m +CONFIG_INPUT_POLLDEV=m + +# +# 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=m +CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_EVBUG is not set + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +CONFIG_KEYBOARD_ATKBD=y +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_LKKBD is not set +# CONFIG_KEYBOARD_XTKBD is not set +# CONFIG_KEYBOARD_NEWTON is not set +# CONFIG_KEYBOARD_STOWAWAY 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_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_INPUT_JOYSTICK=y +CONFIG_JOYSTICK_ANALOG=m +CONFIG_JOYSTICK_A3D=m +CONFIG_JOYSTICK_ADI=m +CONFIG_JOYSTICK_COBRA=m +CONFIG_JOYSTICK_GF2K=m +CONFIG_JOYSTICK_GRIP=m +CONFIG_JOYSTICK_GRIP_MP=m +CONFIG_JOYSTICK_GUILLEMOT=m +CONFIG_JOYSTICK_INTERACT=m +CONFIG_JOYSTICK_SIDEWINDER=m +CONFIG_JOYSTICK_TMDC=m +CONFIG_JOYSTICK_IFORCE=m +CONFIG_JOYSTICK_IFORCE_USB=y +CONFIG_JOYSTICK_IFORCE_232=y +CONFIG_JOYSTICK_WARRIOR=m +CONFIG_JOYSTICK_MAGELLAN=m +CONFIG_JOYSTICK_SPACEORB=m +CONFIG_JOYSTICK_SPACEBALL=m +CONFIG_JOYSTICK_STINGER=m +CONFIG_JOYSTICK_TWIDJOY=m +CONFIG_JOYSTICK_ZHENHUA=m +CONFIG_JOYSTICK_DB9=m +CONFIG_JOYSTICK_GAMECON=m +CONFIG_JOYSTICK_TURBOGRAFX=m +CONFIG_JOYSTICK_JOYDUMP=m +CONFIG_JOYSTICK_XPAD=m +CONFIG_JOYSTICK_XPAD_FF=y +CONFIG_JOYSTICK_XPAD_LEDS=y +# CONFIG_INPUT_TABLET is not set +# CONFIG_INPUT_TOUCHSCREEN is not set +CONFIG_INPUT_MISC=y +CONFIG_INPUT_PCSPKR=y +# 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_POWERMATE is not set +# CONFIG_INPUT_YEALINK is not set +# CONFIG_INPUT_CM109 is not set +CONFIG_INPUT_UINPUT=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 +# CONFIG_SERIO_RAW is not set +CONFIG_GAMEPORT=m +# CONFIG_GAMEPORT_NS558 is not set +# CONFIG_GAMEPORT_L4 is not set +CONFIG_GAMEPORT_EMU10K1=m +# CONFIG_GAMEPORT_FM801 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_DEVKMEM=y +CONFIG_SERIAL_NONSTANDARD=y +# CONFIG_COMPUTONE is not set +# CONFIG_ROCKETPORT is not set +# CONFIG_CYCLADES is not set +# CONFIG_DIGIEPCA is not set +# CONFIG_MOXA_INTELLIO is not set +# CONFIG_MOXA_SMARTIO is not set +# CONFIG_ISI is not set +# CONFIG_SYNCLINK is not set +# CONFIG_SYNCLINKMP is not set +# CONFIG_SYNCLINK_GT is not set +# CONFIG_N_HDLC is not set +# CONFIG_RISCOM8 is not set +# CONFIG_SPECIALIX is not set +# CONFIG_SX is not set +# CONFIG_RIO is not set +# CONFIG_STALDRV is not set +# CONFIG_NOZOMI 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=4 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +# CONFIG_SERIAL_8250_EXTENDED is not set + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +# CONFIG_SERIAL_JSM is not set +CONFIG_UNIX98_PTYS=y +# CONFIG_LEGACY_PTYS is not set +CONFIG_PRINTER=y +# CONFIG_LP_CONSOLE is not set +# CONFIG_PPDEV is not set +# CONFIG_IPMI_HANDLER is not set +CONFIG_HW_RANDOM=m +CONFIG_HW_RANDOM_INTEL=m +CONFIG_HW_RANDOM_AMD=m +CONFIG_NVRAM=m +CONFIG_RTC=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=m +# CONFIG_PC8736x_GPIO is not set +# CONFIG_RAW_DRIVER is not set +# CONFIG_HPET is not set +# CONFIG_HANGCHECK_TIMER is not set +# CONFIG_TCG_TPM is not set +# CONFIG_TELCLOCK is not set +CONFIG_DEVPORT=y +CONFIG_I2C=m +CONFIG_I2C_BOARDINFO=y +# CONFIG_I2C_CHARDEV is not set +CONFIG_I2C_HELPER_AUTO=y +CONFIG_I2C_ALGOBIT=m + +# +# 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 is not set +# 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 + +# +# I2C system bus drivers (mostly embedded / system-on-chip) +# +# CONFIG_I2C_OCORES is not set +# CONFIG_I2C_SIMTEC is not set + +# +# External I2C/SMBus adapter drivers +# +# CONFIG_I2C_PARPORT is not set +# CONFIG_I2C_PARPORT_LIGHT is not set +# CONFIG_I2C_TAOS_EVM is not set +# CONFIG_I2C_TINY_USB is not set + +# +# Graphics adapter I2C/DDC channel drivers +# +# CONFIG_I2C_VOODOO3 is not set + +# +# Other I2C/SMBus bus drivers +# +# CONFIG_I2C_PCA_PLATFORM is not set +# CONFIG_I2C_STUB is not set + +# +# Miscellaneous I2C Chip support +# +# CONFIG_DS1682 is not set +# CONFIG_AT24 is not set +# CONFIG_SENSORS_EEPROM is not set +# CONFIG_SENSORS_PCF8574 is not set +# CONFIG_PCF8575 is not set +# CONFIG_SENSORS_PCA9539 is not set +# CONFIG_SENSORS_PCF8591 is not set +# CONFIG_SENSORS_MAX6875 is not set +# CONFIG_SENSORS_TSL2550 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_I2C_DEBUG_CHIP is not set +# CONFIG_SPI is not set +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_BATTERY_DS2760 is not set +# CONFIG_BATTERY_BQ27x00 is not set +CONFIG_HWMON=m +# CONFIG_HWMON_VID is not set +# 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_ADT7462 is not set +# CONFIG_SENSORS_ADT7470 is not set +# CONFIG_SENSORS_ADT7473 is not set +# CONFIG_SENSORS_K8TEMP is not set +# CONFIG_SENSORS_ASB100 is not set +# CONFIG_SENSORS_ATXP1 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_FSCHER is not set +# CONFIG_SENSORS_FSCPOS is not set +# CONFIG_SENSORS_FSCHMD 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_LM63 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_MAX1619 is not set +# CONFIG_SENSORS_MAX6650 is not set +# CONFIG_SENSORS_PC87360 is not set +# CONFIG_SENSORS_PC87427 is not set +# CONFIG_SENSORS_SIS5595 is not set +# CONFIG_SENSORS_DME1737 is not set +# CONFIG_SENSORS_SMSC47M1 is not set +# CONFIG_SENSORS_SMSC47M192 is not set +# CONFIG_SENSORS_SMSC47B397 is not set +# CONFIG_SENSORS_ADS7828 is not set +# CONFIG_SENSORS_THMC50 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_W83L785TS is not set +# CONFIG_SENSORS_W83L786NG is not set +# CONFIG_SENSORS_W83627HF is not set +# CONFIG_SENSORS_W83627EHF is not set +# CONFIG_SENSORS_HDAPS is not set +# CONFIG_SENSORS_LIS3LV02D is not set +# CONFIG_SENSORS_APPLESMC is not set +# CONFIG_HWMON_DEBUG_CHIP is not set +CONFIG_THERMAL=y +# CONFIG_WATCHDOG is not set +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_PCMCIAHOST_POSSIBLE=y +CONFIG_SSB_PCMCIAHOST=y +# CONFIG_SSB_DEBUG is not set +CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y +CONFIG_SSB_DRIVER_PCICORE=y + +# +# Multifunction device drivers +# +# CONFIG_MFD_CORE is not set +# CONFIG_MFD_SM501 is not set +# CONFIG_HTC_PASIC3 is not set +# CONFIG_MFD_TMIO is not set +# CONFIG_MFD_WM8400 is not set +# CONFIG_MFD_WM8350_I2C is not set +# CONFIG_REGULATOR is not set + +# +# Multimedia devices +# + +# +# Multimedia core support +# +CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_V4L2_COMMON=m +CONFIG_VIDEO_ALLOW_V4L1=y +CONFIG_VIDEO_V4L1_COMPAT=y +# CONFIG_DVB_CORE is not set +CONFIG_VIDEO_MEDIA=m + +# +# Multimedia drivers +# +CONFIG_VIDEO_SAA7146=m +CONFIG_VIDEO_SAA7146_VV=m +# CONFIG_MEDIA_ATTACH is not set +CONFIG_MEDIA_TUNER=m +# CONFIG_MEDIA_TUNER_CUSTOMIZE is not set +CONFIG_MEDIA_TUNER_SIMPLE=m +CONFIG_MEDIA_TUNER_TDA8290=m +CONFIG_MEDIA_TUNER_TDA9887=m +CONFIG_MEDIA_TUNER_TEA5761=m +CONFIG_MEDIA_TUNER_TEA5767=m +CONFIG_MEDIA_TUNER_MT20XX=m +CONFIG_MEDIA_TUNER_XC2028=m +CONFIG_MEDIA_TUNER_XC5000=m +CONFIG_VIDEO_V4L2=m +CONFIG_VIDEO_V4L1=m +CONFIG_VIDEOBUF_GEN=m +CONFIG_VIDEOBUF_DMA_SG=m +CONFIG_VIDEOBUF_VMALLOC=m +CONFIG_VIDEO_BTCX=m +CONFIG_VIDEO_IR=m +CONFIG_VIDEO_TVEEPROM=m +CONFIG_VIDEO_TUNER=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 +CONFIG_VIDEO_TVAUDIO=m +CONFIG_VIDEO_TDA7432=m +CONFIG_VIDEO_TDA9840=m +CONFIG_VIDEO_TDA9875=m +CONFIG_VIDEO_TEA6415C=m +CONFIG_VIDEO_TEA6420=m +CONFIG_VIDEO_MSP3400=m +CONFIG_VIDEO_CS53L32A=m +CONFIG_VIDEO_M52790=m +CONFIG_VIDEO_WM8775=m +CONFIG_VIDEO_WM8739=m +CONFIG_VIDEO_VP27SMPX=m +CONFIG_VIDEO_BT819=m +CONFIG_VIDEO_BT856=m +CONFIG_VIDEO_KS0127=m +CONFIG_VIDEO_OV7670=m +CONFIG_VIDEO_SAA7110=m +CONFIG_VIDEO_SAA7111=m +CONFIG_VIDEO_SAA7114=m +CONFIG_VIDEO_SAA711X=m +CONFIG_VIDEO_SAA717X=m +CONFIG_VIDEO_TVP5150=m +CONFIG_VIDEO_VPX3220=m +CONFIG_VIDEO_CX25840=m +CONFIG_VIDEO_CX2341X=m +CONFIG_VIDEO_SAA7127=m +CONFIG_VIDEO_SAA7185=m +CONFIG_VIDEO_ADV7170=m +CONFIG_VIDEO_ADV7175=m +CONFIG_VIDEO_UPD64031A=m +CONFIG_VIDEO_UPD64083=m +CONFIG_VIDEO_VIVI=m +CONFIG_VIDEO_BT848=m +CONFIG_VIDEO_SAA6588=m +CONFIG_VIDEO_BWQCAM=m +CONFIG_VIDEO_CQCAM=m +CONFIG_VIDEO_CPIA=m +CONFIG_VIDEO_CPIA_USB=m +CONFIG_VIDEO_CPIA2=m +CONFIG_VIDEO_SAA5246A=m +CONFIG_VIDEO_SAA5249=m +CONFIG_VIDEO_STRADIS=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_MXB=m +CONFIG_VIDEO_HEXIUM_ORION=m +CONFIG_VIDEO_HEXIUM_GEMINI=m +CONFIG_VIDEO_CX88=m +CONFIG_VIDEO_CX88_ALSA=m +CONFIG_VIDEO_CX88_BLACKBIRD=m +CONFIG_VIDEO_IVTV=m +CONFIG_VIDEO_FB_IVTV=m +CONFIG_VIDEO_CAFE_CCIC=m +# CONFIG_SOC_CAMERA is not set +CONFIG_V4L_USB_DRIVERS=y +CONFIG_USB_VIDEO_CLASS=m +CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y +# CONFIG_USB_GSPCA is not set +CONFIG_VIDEO_PVRUSB2=m +CONFIG_VIDEO_PVRUSB2_SYSFS=y +CONFIG_VIDEO_PVRUSB2_DEBUGIFC=y +CONFIG_VIDEO_EM28XX=m +CONFIG_VIDEO_EM28XX_ALSA=m +CONFIG_VIDEO_USBVISION=m +CONFIG_VIDEO_USBVIDEO=m +CONFIG_USB_VICAM=m +CONFIG_USB_IBMCAM=m +CONFIG_USB_KONICAWC=m +CONFIG_USB_QUICKCAM_MESSENGER=m +CONFIG_USB_ET61X251=m +CONFIG_VIDEO_OVCAMCHIP=m +CONFIG_USB_W9968CF=m +CONFIG_USB_OV511=m +CONFIG_USB_SE401=m +CONFIG_USB_SN9C102=m +CONFIG_USB_STV680=m +CONFIG_USB_ZC0301=m +CONFIG_USB_PWC=m +CONFIG_USB_PWC_DEBUG=y +CONFIG_USB_ZR364XX=m +CONFIG_USB_STKWEBCAM=m +# CONFIG_USB_S2255 is not set +# CONFIG_RADIO_ADAPTERS is not set +# CONFIG_DAB is not set + +# +# Graphics support +# +CONFIG_AGP=y +CONFIG_AGP_AMD64=y +CONFIG_AGP_INTEL=m +CONFIG_AGP_SIS=m +CONFIG_AGP_VIA=m +CONFIG_DRM=m +CONFIG_DRM_TDFX=m +CONFIG_DRM_R128=m +CONFIG_DRM_RADEON=m +CONFIG_DRM_I810=m +CONFIG_DRM_I830=m +CONFIG_DRM_I915=m +CONFIG_DRM_MGA=m +CONFIG_DRM_SIS=m +CONFIG_DRM_VIA=m +CONFIG_DRM_SAVAGE=m +# 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_SVGALIB is not set +# CONFIG_FB_MACMODES is not set +# CONFIG_FB_BACKLIGHT is not set +CONFIG_FB_MODE_HELPERS=y +# CONFIG_FB_TILEBLITTING is not set + +# +# 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=y +# CONFIG_FB_VESA is not set +# 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_INTEL 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_VIRTUAL is not set +# CONFIG_FB_METRONOME is not set +# CONFIG_FB_MB862XX is not set +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_LCD_CLASS_DEVICE=m +# CONFIG_LCD_ILI9320 is not set +# CONFIG_LCD_PLATFORM is not set +CONFIG_BACKLIGHT_CLASS_DEVICE=m +# CONFIG_BACKLIGHT_CORGI is not set +# CONFIG_BACKLIGHT_PROGEAR is not set +# CONFIG_BACKLIGHT_MBP_NVIDIA is not set +# CONFIG_BACKLIGHT_SAHARA 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 is not set +CONFIG_DUMMY_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE=y +# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set +CONFIG_FB_CON_DECOR=y +# CONFIG_FONTS is not set +CONFIG_FONT_8x8=y +CONFIG_FONT_8x16=y +# CONFIG_LOGO is not set +CONFIG_SOUND=y +CONFIG_SOUND_OSS_CORE=y +CONFIG_SND=m +CONFIG_SND_TIMER=m +CONFIG_SND_PCM=m +CONFIG_SND_HWDEP=m +CONFIG_SND_RAWMIDI=m +CONFIG_SND_SEQUENCER=m +# CONFIG_SND_SEQ_DUMMY 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_SEQUENCER_OSS is not set +# CONFIG_SND_RTCTIMER is not set +# CONFIG_SND_DYNAMIC_MINORS is not set +# CONFIG_SND_SUPPORT_OLD_API is not set +CONFIG_SND_VERBOSE_PROCFS=y +# CONFIG_SND_VERBOSE_PRINTK is not set +# CONFIG_SND_DEBUG is not set +CONFIG_SND_VMASTER=y +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_DUMMY is not set +# CONFIG_SND_VIRMIDI is not set +# CONFIG_SND_MTPAV is not set +# CONFIG_SND_MTS64 is not set +# CONFIG_SND_SERIAL_U16550 is not set +# CONFIG_SND_MPU401 is not set +# CONFIG_SND_PORTMAN2X4 is not set +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_PCI=y +CONFIG_SND_AD1889=m +CONFIG_SND_ALS300=m +CONFIG_SND_ALS4000=m +CONFIG_SND_ALI5451=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=m +CONFIG_SND_AZT3328=m +CONFIG_SND_BT87X=m +CONFIG_SND_BT87X_OVERCLOCK=y +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_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_EMU10K1=m +CONFIG_SND_EMU10K1X=m +CONFIG_SND_ENS1370=m +CONFIG_SND_ENS1371=m +CONFIG_SND_ES1938=m +CONFIG_SND_ES1968=m +CONFIG_SND_FM801=m +CONFIG_SND_FM801_TEA575X_BOOL=y +CONFIG_SND_FM801_TEA575X=m +CONFIG_SND_HDA_INTEL=m +CONFIG_SND_HDA_HWDEP=y +# CONFIG_SND_HDA_INPUT_BEEP is not set +CONFIG_SND_HDA_CODEC_REALTEK=y +CONFIG_SND_HDA_CODEC_ANALOG=y +CONFIG_SND_HDA_CODEC_SIGMATEL=y +CONFIG_SND_HDA_CODEC_VIA=y +CONFIG_SND_HDA_CODEC_ATIHDMI=y +CONFIG_SND_HDA_CODEC_NVHDMI=y +CONFIG_SND_HDA_CODEC_CONEXANT=y +CONFIG_SND_HDA_CODEC_CMEDIA=y +CONFIG_SND_HDA_CODEC_SI3054=y +CONFIG_SND_HDA_GENERIC=y +CONFIG_SND_HDA_POWER_SAVE=y +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 +CONFIG_SND_HDSP=m +CONFIG_SND_HDSPM=m +CONFIG_SND_HIFIER=m +CONFIG_SND_ICE1712=m +CONFIG_SND_ICE1724=m +CONFIG_SND_INTEL8X0=m +CONFIG_SND_INTEL8X0M=m +CONFIG_SND_KORG1212=m +CONFIG_SND_MAESTRO3=m +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_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_USX2Y is not set +# CONFIG_SND_USB_CAIAQ is not set +# CONFIG_SND_USB_US122L 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_AC97_BUS=m +CONFIG_HID_SUPPORT=y +CONFIG_HID=y +# CONFIG_HID_DEBUG is not set +# CONFIG_HIDRAW is not set + +# +# USB Input Devices +# +CONFIG_USB_HID=y +# CONFIG_HID_PID is not set +# CONFIG_USB_HIDDEV is not set + +# +# Special HID drivers +# +CONFIG_HID_COMPAT=y +CONFIG_HID_A4TECH=y +CONFIG_HID_APPLE=y +CONFIG_HID_BELKIN=y +CONFIG_HID_BRIGHT=y +CONFIG_HID_CHERRY=y +CONFIG_HID_CHICONY=y +CONFIG_HID_CYPRESS=y +CONFIG_HID_DELL=y +CONFIG_HID_EZKEY=y +CONFIG_HID_GYRATION=y +CONFIG_HID_LOGITECH=y +# CONFIG_LOGITECH_FF is not set +# CONFIG_LOGIRUMBLEPAD2_FF is not set +CONFIG_HID_MICROSOFT=y +CONFIG_HID_MONTEREY=y +CONFIG_HID_PANTHERLORD=y +# CONFIG_PANTHERLORD_FF is not set +CONFIG_HID_PETALYNX=y +CONFIG_HID_SAMSUNG=y +CONFIG_HID_SONY=y +CONFIG_HID_SUNPLUS=y +# CONFIG_THRUSTMASTER_FF is not set +# CONFIG_ZEROPLUS_FF 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 is not set +# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set + +# +# 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=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_EHCI_HCD=y +# CONFIG_USB_EHCI_ROOT_HUB_TT is not set +# CONFIG_USB_EHCI_TT_NEWSCHED is not set +CONFIG_USB_ISP116X_HCD=m +# CONFIG_USB_ISP1760_HCD is not set +CONFIG_USB_OHCI_HCD=m +# CONFIG_USB_OHCI_HCD_SSB is not set +# 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=m +# 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 +# CONFIG_USB_GADGET_MUSB_HDRC is not set + +# +# USB Device Class drivers +# +CONFIG_USB_ACM=m +CONFIG_USB_PRINTER=m +# 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 information +# +CONFIG_USB_STORAGE=y +# CONFIG_USB_STORAGE_DEBUG 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_DPCM 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_LIBUSUAL is not set + +# +# USB Imaging devices +# +# CONFIG_USB_MDC800 is not set +# CONFIG_USB_MICROTEK is not set + +# +# USB port drivers +# +# CONFIG_USB_USS720 is not set +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_CP2101=m +CONFIG_USB_SERIAL_CYPRESS_M8=m +CONFIG_USB_SERIAL_EMPEG=m +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=m +CONFIG_USB_SERIAL_IPW=m +CONFIG_USB_SERIAL_IUU=m +CONFIG_USB_SERIAL_KEYSPAN_PDA=m +CONFIG_USB_SERIAL_KEYSPAN=m +CONFIG_USB_SERIAL_KEYSPAN_MPR=y +CONFIG_USB_SERIAL_KEYSPAN_USA28=y +CONFIG_USB_SERIAL_KEYSPAN_USA28X=y +CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y +CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y +CONFIG_USB_SERIAL_KEYSPAN_USA19=y +CONFIG_USB_SERIAL_KEYSPAN_USA18X=y +CONFIG_USB_SERIAL_KEYSPAN_USA19W=y +CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y +CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y +CONFIG_USB_SERIAL_KEYSPAN_USA49W=y +CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y +CONFIG_USB_SERIAL_KLSI=m +CONFIG_USB_SERIAL_KOBIL_SCT=m +CONFIG_USB_SERIAL_MCT_U232=m +CONFIG_USB_SERIAL_MOS7720=m +CONFIG_USB_SERIAL_MOS7840=m +CONFIG_USB_SERIAL_MOTOROLA=m +CONFIG_USB_SERIAL_NAVMAN=m +CONFIG_USB_SERIAL_PL2303=m +CONFIG_USB_SERIAL_OTI6858=m +CONFIG_USB_SERIAL_SPCP8X5=m +CONFIG_USB_SERIAL_HP4X=m +CONFIG_USB_SERIAL_SAFE=m +CONFIG_USB_SERIAL_SAFE_PADDED=y +CONFIG_USB_SERIAL_SIERRAWIRELESS=m +CONFIG_USB_SERIAL_TI=m +CONFIG_USB_SERIAL_CYBERJACK=m +CONFIG_USB_SERIAL_XIRCOM=m +CONFIG_USB_SERIAL_OPTION=m +CONFIG_USB_SERIAL_OMNINET=m +CONFIG_USB_SERIAL_DEBUG=m + +# +# 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_BERRY_CHARGE is not set +# CONFIG_USB_LED is not set +# CONFIG_USB_CYPRESS_CY7C63 is not set +# CONFIG_USB_CYTHERM is not set +# CONFIG_USB_PHIDGET 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_VST is not set +CONFIG_USB_GADGET=m +# CONFIG_USB_GADGET_DEBUG_FILES is not set +CONFIG_USB_GADGET_VBUS_DRAW=2 +CONFIG_USB_GADGET_SELECTED=y +# CONFIG_USB_GADGET_AT91 is not set +# CONFIG_USB_GADGET_ATMEL_USBA is not set +# CONFIG_USB_GADGET_FSL_USB2 is not set +# CONFIG_USB_GADGET_LH7A40X is not set +# CONFIG_USB_GADGET_OMAP is not set +# CONFIG_USB_GADGET_PXA25X is not set +# CONFIG_USB_GADGET_PXA27X is not set +# CONFIG_USB_GADGET_S3C2410 is not set +CONFIG_USB_GADGET_M66592=y +CONFIG_USB_M66592=m +# CONFIG_USB_GADGET_AMD5536UDC is not set +# CONFIG_USB_GADGET_FSL_QE is not set +# CONFIG_USB_GADGET_NET2280 is not set +# CONFIG_USB_GADGET_GOKU is not set +# CONFIG_USB_GADGET_DUMMY_HCD is not set +CONFIG_USB_GADGET_DUALSPEED=y +# CONFIG_USB_ZERO is not set +CONFIG_USB_ETH=m +CONFIG_USB_ETH_RNDIS=y +# CONFIG_USB_GADGETFS is not set +# CONFIG_USB_FILE_STORAGE is not set +# CONFIG_USB_G_SERIAL is not set +# CONFIG_USB_MIDI_GADGET is not set +# CONFIG_USB_G_PRINTER is not set +# CONFIG_USB_CDC_COMPOSITE is not set +# CONFIG_UWB is not set +CONFIG_MMC=m +# CONFIG_MMC_DEBUG is not set +# CONFIG_MMC_UNSAFE_RESUME is not set + +# +# MMC/SD/SDIO Card Drivers +# +CONFIG_MMC_BLOCK=m +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_SDHCI=m +# CONFIG_MMC_SDHCI_PCI is not set +CONFIG_MMC_WBSD=m +CONFIG_MMC_TIFM_SD=m +# CONFIG_MMC_SDRICOH_CS is not set +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_NEW_LEDS=y +CONFIG_LEDS_CLASS=m + +# +# LED drivers +# +# CONFIG_LEDS_PCA9532 is not set +# CONFIG_LEDS_HP_DISK is not set +# CONFIG_LEDS_CLEVO_MAIL is not set +# CONFIG_LEDS_PCA955X is not set + +# +# LED Triggers +# +CONFIG_LEDS_TRIGGERS=y +# 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 +# CONFIG_ACCESSIBILITY is not set +# CONFIG_INFINIBAND is not set +# CONFIG_EDAC is not set +# CONFIG_RTC_CLASS is not set +# CONFIG_DMADEVICES is not set +# CONFIG_AUXDISPLAY is not set +# CONFIG_UIO is not set +# CONFIG_STAGING is not set + +# +# Firmware Drivers +# +# CONFIG_EDD is not set +CONFIG_FIRMWARE_MEMMAP=y +# CONFIG_DELL_RBU is not set +# CONFIG_DCDBAS is not set +CONFIG_DMIID=y +# CONFIG_ISCSI_IBFT_FIND is not set + +# +# File systems +# +CONFIG_EXT2_FS=m +CONFIG_EXT2_FS_XATTR=y +CONFIG_EXT2_FS_POSIX_ACL=y +CONFIG_EXT2_FS_SECURITY=y +CONFIG_EXT2_FS_XIP=y +CONFIG_EXT3_FS=m +CONFIG_EXT3_FS_XATTR=y +CONFIG_EXT3_FS_POSIX_ACL=y +CONFIG_EXT3_FS_SECURITY=y +CONFIG_EXT4_FS=m +# CONFIG_EXT4DEV_COMPAT is not set +CONFIG_EXT4_FS_XATTR=y +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_EXT4_FS_SECURITY=y +CONFIG_FS_XIP=y +CONFIG_JBD=m +CONFIG_JBD2=m +CONFIG_FS_MBCACHE=m +CONFIG_REISERFS_FS=m +CONFIG_REISERFS_CHECK=y +CONFIG_REISERFS_PROC_INFO=y +CONFIG_REISERFS_FS_XATTR=y +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y +CONFIG_JFS_FS=m +CONFIG_JFS_POSIX_ACL=y +CONFIG_JFS_SECURITY=y +CONFIG_JFS_DEBUG=y +CONFIG_JFS_STATISTICS=y +CONFIG_FS_POSIX_ACL=y +CONFIG_FILE_LOCKING=y +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_DNOTIFY=y +CONFIG_INOTIFY=y +CONFIG_INOTIFY_USER=y +# CONFIG_QUOTA is not set +CONFIG_QUOTACTL=y +# CONFIG_AUTOFS_FS is not set +CONFIG_AUTOFS4_FS=y +CONFIG_FUSE_FS=m + +# +# 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=866 +CONFIG_FAT_DEFAULT_IOCHARSET="utf8" +CONFIG_NTFS_FS=m +# CONFIG_NTFS_DEBUG is not set +CONFIG_NTFS_RW=y + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_KCORE=y +CONFIG_PROC_SYSCTL=y +CONFIG_PROC_PAGE_MONITOR=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +# CONFIG_TMPFS_POSIX_ACL is not set +# CONFIG_HUGETLBFS is not set +# CONFIG_HUGETLB_PAGE is not set +# CONFIG_CONFIGFS_FS is not set + +# +# Layered filesystems +# +# CONFIG_ECRYPT_FS is not set +CONFIG_UNION_FS=m +CONFIG_UNION_FS_XATTR=y +# CONFIG_UNION_FS_DEBUG is not set + +# +# Miscellaneous filesystems +# +# 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_CRAMFS 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_SYSV_FS is not set +# CONFIG_UFS_FS is not set +CONFIG_NETWORK_FILESYSTEMS=y +CONFIG_NFS_FS=m +CONFIG_NFS_V3=y +# CONFIG_NFS_V3_ACL is not set +CONFIG_NFS_V4=y +CONFIG_NFSD=m +CONFIG_NFSD_V3=y +# CONFIG_NFSD_V3_ACL is not set +# CONFIG_NFSD_V4 is not set +CONFIG_LOCKD=m +CONFIG_LOCKD_V4=y +CONFIG_EXPORTFS=m +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=m +CONFIG_SUNRPC_GSS=m +# CONFIG_SUNRPC_REGISTER_V4 is not set +CONFIG_RPCSEC_GSS_KRB5=m +# CONFIG_RPCSEC_GSS_SPKM3 is not set +CONFIG_SMB_FS=m +CONFIG_SMB_NLS_DEFAULT=y +CONFIG_SMB_NLS_REMOTE="cp866" +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_EXPERIMENTAL=y +# CONFIG_CIFS_DFS_UPCALL 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 is not set +CONFIG_MSDOS_PARTITION=y +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="utf8" +CONFIG_NLS_CODEPAGE_437=m +# 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=m +# 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=m +# 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=m +CONFIG_NLS_ASCII=m +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=m +# 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=m +CONFIG_NLS_KOI8_U=m +CONFIG_NLS_UTF8=m +# CONFIG_DLM is not set + +# +# Kernel hacking +# +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +# CONFIG_PRINTK_TIME is not set +# CONFIG_ENABLE_WARN_DEPRECATED is not set +# CONFIG_ENABLE_MUST_CHECK is not set +CONFIG_FRAME_WARN=2048 +CONFIG_MAGIC_SYSRQ=y +# CONFIG_UNUSED_SYMBOLS is not set +# CONFIG_DEBUG_FS is not set +# CONFIG_HEADERS_CHECK is not set +# CONFIG_DEBUG_KERNEL is not set +# CONFIG_SLUB_DEBUG_ON is not set +# CONFIG_SLUB_STATS is not set +CONFIG_DEBUG_BUGVERBOSE=y +CONFIG_DEBUG_MEMORY_INIT=y +# CONFIG_RCU_CPU_STALL_DETECTOR is not set +# CONFIG_LATENCYTOP is not set +CONFIG_SYSCTL_SYSCALL_CHECK=y +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y + +# +# Tracers +# +# CONFIG_SYSPROF_TRACER is not set +# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set +# CONFIG_DYNAMIC_PRINTK_DEBUG is not set +# CONFIG_SAMPLES is not set +CONFIG_HAVE_ARCH_KGDB=y +# CONFIG_STRICT_DEVMEM is not set +CONFIG_X86_VERBOSE_BOOTUP=y +CONFIG_EARLY_PRINTK=y +# CONFIG_EARLY_PRINTK_DBGP 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_OPTIMIZE_INLINING is not set + +# +# Security options +# +CONFIG_KEYS=y +CONFIG_KEYS_DEBUG_PROC_KEYS=y +# CONFIG_SECURITY is not set +# CONFIG_SECURITYFS is not set +# CONFIG_SECURITY_FILE_CAPABILITIES is not set +CONFIG_XOR_BLOCKS=m +CONFIG_ASYNC_CORE=m +CONFIG_ASYNC_MEMCPY=m +CONFIG_ASYNC_XOR=m +CONFIG_CRYPTO=y + +# +# Crypto core or helper +# +# CONFIG_CRYPTO_FIPS is not set +CONFIG_CRYPTO_ALGAPI=m +CONFIG_CRYPTO_ALGAPI2=m +CONFIG_CRYPTO_AEAD2=m +CONFIG_CRYPTO_BLKCIPHER=m +CONFIG_CRYPTO_BLKCIPHER2=m +CONFIG_CRYPTO_HASH=m +CONFIG_CRYPTO_HASH2=m +CONFIG_CRYPTO_RNG2=m +CONFIG_CRYPTO_MANAGER=m +CONFIG_CRYPTO_MANAGER2=m +# 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=m +# CONFIG_CRYPTO_CTR is not set +# CONFIG_CRYPTO_CTS is not set +CONFIG_CRYPTO_ECB=m +# CONFIG_CRYPTO_LRW is not set +CONFIG_CRYPTO_PCBC=m +# CONFIG_CRYPTO_XTS is not set + +# +# Hash modes +# +CONFIG_CRYPTO_HMAC=m +# CONFIG_CRYPTO_XCBC is not set + +# +# Digest +# +CONFIG_CRYPTO_CRC32C=m +# CONFIG_CRYPTO_CRC32C_INTEL is not set +# CONFIG_CRYPTO_MD4 is not set +CONFIG_CRYPTO_MD5=m +CONFIG_CRYPTO_MICHAEL_MIC=m +# 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=m +CONFIG_CRYPTO_SHA256=m +CONFIG_CRYPTO_SHA512=m +# CONFIG_CRYPTO_TGR192 is not set +# CONFIG_CRYPTO_WP512 is not set + +# +# Ciphers +# +CONFIG_CRYPTO_AES=m +CONFIG_CRYPTO_AES_X86_64=m +# CONFIG_CRYPTO_ANUBIS is not set +CONFIG_CRYPTO_ARC4=m +# 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=m +# 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=m +# CONFIG_CRYPTO_LZO is not set + +# +# Random Number Generation +# +# CONFIG_CRYPTO_ANSI_CPRNG is not set +CONFIG_CRYPTO_HW=y +# CONFIG_CRYPTO_DEV_HIFN_795X is not set +CONFIG_HAVE_KVM=y +# CONFIG_VIRTUALIZATION is not set + +# +# Library routines +# +CONFIG_BITREVERSE=y +CONFIG_GENERIC_FIND_FIRST_BIT=y +CONFIG_GENERIC_FIND_NEXT_BIT=y +CONFIG_CRC_CCITT=m +CONFIG_CRC16=m +# CONFIG_CRC_T10DIF is not set +CONFIG_CRC_ITU_T=m +CONFIG_CRC32=y +# CONFIG_CRC7 is not set +CONFIG_LIBCRC32C=m +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=m +CONFIG_TEXTSEARCH=y +CONFIG_TEXTSEARCH_KMP=m +CONFIG_TEXTSEARCH_BM=m +CONFIG_TEXTSEARCH_FSM=m +CONFIG_PLIST=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAS_DMA=y +CONFIG_CHECK_SIGNATURE=y diff --git a/install/builder/packages/base/base b/install/builder/packages/base/base new file mode 100644 index 0000000..0e609fd --- /dev/null +++ b/install/builder/packages/base/base @@ -0,0 +1,42 @@ +#------------------------------------------------------------------------------ +# Базовый набор программ всех конфигураций +#------------------------------------------------------------------------------ +app-admin/logrotate +app-admin/syslog-ng +app-cdr/cdrkit #необходим для создания ISO-образов +app-i18n/enca #используется для корректного отображения man +app-misc/mc +app-portage/eix +app-portage/emerge-delta-webrsync +app-portage/genlop +app-portage/gentoolkit +app-portage/layman +app-portage/portage-utils +app-portage/ufed +dev-util/dialog +#dev-util/git #система контроля версий +media-fonts/terminus-font +net-misc/wol #Wake On LAN client +sys-apps/hal +sys-apps/hotplug +sys-apps/kexec-tools #быстрая перезагрузка Linux +sys-apps/memtest86+ +sys-apps/pciutils +sys-apps/usbutils +sys-apps/v86d #поддержка uvesafb +sys-boot/grub +sys-boot/calcboot +sys-fs/calculate-squashfs #модуль squashfs+lzma +sys-fs/dmraid +sys-fs/dosfstools +sys-fs/e2fsprogs +sys-fs/jfsutils +sys-fs/mdadm #A useful tool for running RAID systems - it can be used as a replacement for the raidtools +sys-fs/ntfs3g +#sys-fs/reiser4progs +sys-fs/reiserfsprogs +sys-fs/xfsprogs +sys-kernel/calckernel #создание initrd файла +sys-kernel/module-rebuild #пересборка модулей после перекомпиляции нового ядра +sys-process/vixie-cron + diff --git a/install/builder/packages/base/base_arc b/install/builder/packages/base/base_arc new file mode 100644 index 0000000..d199e3d --- /dev/null +++ b/install/builder/packages/base/base_arc @@ -0,0 +1,16 @@ +#------------------------------------------------------------------------------ +# Утилиты архивирования +#------------------------------------------------------------------------------ + +app-arch/arj +app-arch/bzip2 +app-arch/gzip +app-arch/lha +app-arch/p7zip +app-arch/rar +app-arch/zip +app-arch/zoo +app-arch/unace +app-arch/unarj +app-arch/unzip +app-arch/unrar diff --git a/install/builder/packages/base/base_first b/install/builder/packages/base/base_first new file mode 100644 index 0000000..d4ed842 --- /dev/null +++ b/install/builder/packages/base/base_first @@ -0,0 +1,11 @@ +#------------------------------------------------------------------------------ +# Базовый набор программ устанавливаемый перед остальными пакетами из calculate +#------------------------------------------------------------------------------ +sys-apps/openrc #OpenRC manages the services, startup and shutdown of a host +sys-apps/sysvinit +sys-fs/udev +sys-apps/baselayout + +sys-apps/v86d +dev-libs/klibc + diff --git a/install/builder/packages/base/base_hacker b/install/builder/packages/base/base_hacker new file mode 100644 index 0000000..41945e9 --- /dev/null +++ b/install/builder/packages/base/base_hacker @@ -0,0 +1,7 @@ +#------------------------------------------------------------------------------ +# Проверка надежности систем +#------------------------------------------------------------------------------ + +app-admin/sudo +sys-process/htop + diff --git a/install/builder/packages/base/base_net b/install/builder/packages/base/base_net new file mode 100644 index 0000000..7d5e4d3 --- /dev/null +++ b/install/builder/packages/base/base_net @@ -0,0 +1,13 @@ +#------------------------------------------------------------------------------ +# Поддержка сети +#------------------------------------------------------------------------------ + +net-analyzer/macchanger +net-dialup/rp-pppoe +net-dialup/xl2tpd #A modern version of the Layer 2 Tunneling Protocol (L2TP) daemon +net-firewall/iptables +net-fs/nfs-utils +net-fs/mount-cifs +net-misc/ifenslave #настройка bonding-а (параллельной работы сетевых адаптеров) +sys-apps/ethtool + diff --git a/install/builder/packages/base/base_tools b/install/builder/packages/base/base_tools new file mode 100644 index 0000000..cfdd1c8 --- /dev/null +++ b/install/builder/packages/base/base_tools @@ -0,0 +1,10 @@ +#------------------------------------------------------------------------------ +# Различные утилиты +#------------------------------------------------------------------------------ + +app-cdr/dvd+rw-tools +app-misc/livecd-tools +#dev-perl/Crypt-PasswdMD5 #для получения хэша +media-sound/sox +sys-fs/mdadm #Linux Software RAID Management +sys-fs/mtools #необходим для установки системы на Flash diff --git a/install/builder/packages/base/base_ups b/install/builder/packages/base/base_ups new file mode 100644 index 0000000..71c4615 --- /dev/null +++ b/install/builder/packages/base/base_ups @@ -0,0 +1,5 @@ +#------------------------------------------------------------------------------ +# Поддержка источников бесперебойного питания +#------------------------------------------------------------------------------ + +sys-power/nut diff --git a/install/builder/packages/base/desktop_wireless b/install/builder/packages/base/desktop_wireless new file mode 100644 index 0000000..b276c3e --- /dev/null +++ b/install/builder/packages/base/desktop_wireless @@ -0,0 +1,17 @@ +#------------------------------------------------------------------------------ +# Беспроводные сети +#------------------------------------------------------------------------------ + +net-misc/wicd +net-wireless/b43-fwcutter +net-wireless/ipw2200-firmware +net-wireless/ipw2100-firmware +net-wireless/iwl3945-ucode +net-wireless/iwl4965-ucode +net-wireless/iwl5000-ucode +net-wireless/madwifi-ng +net-wireless/madwifi-ng-tools +#net-wireless/ndiswrapper #поддержка Wireless через Windows-драйвера +net-wireless/wireless-tools +net-wireless/wpa_supplicant + diff --git a/install/builder/packages/base?system=desktop/desktop b/install/builder/packages/base?system=desktop/desktop new file mode 100644 index 0000000..256305c --- /dev/null +++ b/install/builder/packages/base?system=desktop/desktop @@ -0,0 +1,12 @@ +#------------------------------------------------------------------------------ +# Основные программы рабочей станции +#------------------------------------------------------------------------------ + +sys-apps/calculate-client +sys-apps/keyexec #запуск rdesktop с пользовательским паролем +sys-apps/keyutils #управление ключами ядра +sys-auth/pam_keystore #сохранение пароля пользователя в ключах ядра +sys-devel/prelink +x11-apps/xev #настройка дополнительных клавиш на клавиатуре +x11-base/xorg-x11 + diff --git a/install/builder/packages/base?system=desktop/desktop_decoration b/install/builder/packages/base?system=desktop/desktop_decoration new file mode 100644 index 0000000..bb5db99 --- /dev/null +++ b/install/builder/packages/base?system=desktop/desktop_decoration @@ -0,0 +1,8 @@ +#------------------------------------------------------------------------------ +# Шрифты, декорации +#------------------------------------------------------------------------------ + +media-fonts/corefonts +media-fonts/droid +media-gfx/splashutils + diff --git a/install/builder/packages/base?system=desktop/desktop_laptop b/install/builder/packages/base?system=desktop/desktop_laptop new file mode 100644 index 0000000..90f10b5 --- /dev/null +++ b/install/builder/packages/base?system=desktop/desktop_laptop @@ -0,0 +1,16 @@ +#------------------------------------------------------------------------------ +# Ноутбук +#------------------------------------------------------------------------------ + +#?unmask=~x86# + app-laptop/fnfx #поддержка дополнительных клавиш Toshiba + sys-auth/thinkfinger #сканер отпечатков пальцев +#unmask# + +net-dialup/slmodem #софтовый модем +x11-misc/xbindkeys #настройка дополнительных клавиш посредством xorg +sys-power/acpi +sys-power/acpid +sys-power/cpufreqd +sys-power/powernowd + diff --git a/install/builder/packages/base?system=desktop/desktop_media b/install/builder/packages/base?system=desktop/desktop_media new file mode 100644 index 0000000..1658ffe --- /dev/null +++ b/install/builder/packages/base?system=desktop/desktop_media @@ -0,0 +1,5 @@ +#------------------------------------------------------------------------------ +# Мультимедиа софт +#------------------------------------------------------------------------------ + +media-sound/alsa-utils diff --git a/install/builder/packages/base?system=desktop/desktop_net b/install/builder/packages/base?system=desktop/desktop_net new file mode 100644 index 0000000..e1e8851 --- /dev/null +++ b/install/builder/packages/base?system=desktop/desktop_net @@ -0,0 +1,10 @@ +#------------------------------------------------------------------------------ +# Сетевые приложения +#------------------------------------------------------------------------------ + +net-irc/xchat +net-misc/rdesktop +#?march=x86_64# +www-plugins/nspluginwrapper +#march# +www-plugins/adobe-flash diff --git a/install/builder/packages/base?system=desktop/desktop_nettools b/install/builder/packages/base?system=desktop/desktop_nettools new file mode 100644 index 0000000..1670df5 --- /dev/null +++ b/install/builder/packages/base?system=desktop/desktop_nettools @@ -0,0 +1,9 @@ +#------------------------------------------------------------------------------ +# Различные сетевые утилиты +#------------------------------------------------------------------------------ + +net-dns/bind-tools +net-misc/dhcpcd +sys-auth/nss_ldap #авторизация в ldap-сервере +sys-auth/pam_ldap #-..- + diff --git a/install/builder/packages/base?system=desktop/desktop_print b/install/builder/packages/base?system=desktop/desktop_print new file mode 100644 index 0000000..3f4305d --- /dev/null +++ b/install/builder/packages/base?system=desktop/desktop_print @@ -0,0 +1,9 @@ +#------------------------------------------------------------------------------ +# Софт для работы с принтером +#------------------------------------------------------------------------------ + +net-print/cups +net-print/hplip +net-print/foo2zjs +net-print/gutenprint + diff --git a/install/builder/packages/base?system=desktop/desktop_video b/install/builder/packages/base?system=desktop/desktop_video new file mode 100644 index 0000000..9184ca0 --- /dev/null +++ b/install/builder/packages/base?system=desktop/desktop_video @@ -0,0 +1,6 @@ +#------------------------------------------------------------------------------ +# Программы для воспроизведения видео-файлов +#------------------------------------------------------------------------------ + +media-video/mplayer + diff --git a/install/builder/packages/base?system=desktop/desktop_wireless b/install/builder/packages/base?system=desktop/desktop_wireless new file mode 100644 index 0000000..03474f0 --- /dev/null +++ b/install/builder/packages/base?system=desktop/desktop_wireless @@ -0,0 +1,7 @@ +#------------------------------------------------------------------------------ +# Беспроводные сети +#------------------------------------------------------------------------------ + +#app-pda/msynctool #синхронизация с Windows Mobile +#app-pda/synce #Synchronize Windows CE devices with Linux +#net-wireless/bluez-utils diff --git a/install/builder/packages/base?system=desktop/desktop_x b/install/builder/packages/base?system=desktop/desktop_x new file mode 100644 index 0000000..baf96d3 --- /dev/null +++ b/install/builder/packages/base?system=desktop/desktop_x @@ -0,0 +1,6 @@ +#------------------------------------------------------------------------------ +# Утилиты Xorg +#------------------------------------------------------------------------------ + +x11-apps/xdpyinfo #display information utility for X + diff --git a/install/builder/packages/base?system=desktop/server_file b/install/builder/packages/base?system=desktop/server_file new file mode 100644 index 0000000..964f9ca --- /dev/null +++ b/install/builder/packages/base?system=desktop/server_file @@ -0,0 +1,6 @@ +#------------------------------------------------------------------------------ +# Файловый сервер +#------------------------------------------------------------------------------ + +net-fs/samba + diff --git a/install/builder/packages/base?system=desktop/x11_drivers b/install/builder/packages/base?system=desktop/x11_drivers new file mode 100644 index 0000000..675dfa0 --- /dev/null +++ b/install/builder/packages/base?system=desktop/x11_drivers @@ -0,0 +1,10 @@ +#------------------------------------------------------------------------------ +# Поддержка видеокарт +#------------------------------------------------------------------------------ + +x11-drivers/xf86-video-ati +x11-drivers/xf86-video-intel +x11-drivers/xf86-video-radeonhd +#x11-drivers/xf86-video-via +#x11-drivers/xf86-video-sis + diff --git a/install/builder/packages/desktop?calculate=CLD/desktop b/install/builder/packages/desktop?calculate=CLD/desktop new file mode 100644 index 0000000..d90463b --- /dev/null +++ b/install/builder/packages/desktop?calculate=CLD/desktop @@ -0,0 +1,10 @@ +#------------------------------------------------------------------------------ +# Основные программы рабочей станции +#------------------------------------------------------------------------------ + +app-cdr/k3b +app-editors/vim +app-portage/porthole #а GTK+-based frontend to Portage +dev-tcltk/expect +#sys-auth/pam_mount #монтирование сетевых дисков с поддержкой криптографии + diff --git a/install/builder/packages/desktop?calculate=CLD/desktop_decoration b/install/builder/packages/desktop?calculate=CLD/desktop_decoration new file mode 100644 index 0000000..ddd0c2b --- /dev/null +++ b/install/builder/packages/desktop?calculate=CLD/desktop_decoration @@ -0,0 +1,11 @@ +#------------------------------------------------------------------------------ +# Декорации +#------------------------------------------------------------------------------ + +kde-misc/kgtk # диалоги открытия файлов для gtk в стиле kde +kde-misc/stdin-plasmoid #Плазмоид выполняет команду и отображает выходной поток +kde-misc/translatoid #переводчик использующий translate.google.com +media-gfx/calculate-cld-themes +#x11-themes/gtk-engines-qt #преобразование Gtk стилей в Qt +x11-themes/gtk-engines-qtcurve #преобразование Gtk стилей в Qt + diff --git a/install/builder/packages/desktop?calculate=CLD/desktop_developer b/install/builder/packages/desktop?calculate=CLD/desktop_developer new file mode 100644 index 0000000..7b0e973 --- /dev/null +++ b/install/builder/packages/desktop?calculate=CLD/desktop_developer @@ -0,0 +1,10 @@ +#------------------------------------------------------------------------------ +# Инструменты разработчика +#------------------------------------------------------------------------------ + +dev-db/pgadmin3 +dev-python/ipython +dev-python/psycopg +dev-util/kdesvn +net-nds/luma + diff --git a/install/builder/packages/desktop?calculate=CLD/desktop_dict b/install/builder/packages/desktop?calculate=CLD/desktop_dict new file mode 100644 index 0000000..ca14583 --- /dev/null +++ b/install/builder/packages/desktop?calculate=CLD/desktop_dict @@ -0,0 +1,29 @@ +#------------------------------------------------------------------------------ +# Словари +#------------------------------------------------------------------------------ +#словари используются в KDE +app-dicts/aspell-de +app-dicts/aspell-en +app-dicts/aspell-es +app-dicts/aspell-fr +app-dicts/aspell-pt-br +app-dicts/aspell-ru +app-dicts/aspell-uk + +#словари используются в KDE +app-dicts/ispell-de +app-dicts/ispell-es +app-dicts/ispell-fr +app-dicts/ispell-pt-br +app-dicts/ispell-ru + +#Словари используются в OpenOffice.org +app-dicts/myspell-de +app-dicts/myspell-en +app-dicts/myspell-es +app-dicts/myspell-fr +app-dicts/myspell-pt +app-dicts/myspell-ru +app-dicts/myspell-uk + +app-dicts/qstardict #QStarDict is a StarDict clone written with using Qt diff --git a/install/builder/packages/desktop?calculate=CLD/desktop_emulation b/install/builder/packages/desktop?calculate=CLD/desktop_emulation new file mode 100644 index 0000000..dc96b1d --- /dev/null +++ b/install/builder/packages/desktop?calculate=CLD/desktop_emulation @@ -0,0 +1,9 @@ +#------------------------------------------------------------------------------ +# Различные эмуляторы +#------------------------------------------------------------------------------ + +app-emulation/qemu +app-emulation/virtualbox-bin #система виртуализации для Windows и др. +app-emulation/virtualbox-guest-additions +app-emulation/wine + diff --git a/install/builder/packages/desktop?calculate=CLD/desktop_graphics b/install/builder/packages/desktop?calculate=CLD/desktop_graphics new file mode 100644 index 0000000..4721894 --- /dev/null +++ b/install/builder/packages/desktop?calculate=CLD/desktop_graphics @@ -0,0 +1,10 @@ +#------------------------------------------------------------------------------ +# Работа с изображениями, векторная графика +#------------------------------------------------------------------------------ + +#app-doc/gimp-help +media-gfx/gimp +media-gfx/xsane +media-plugins/kipi-plugins +#sci-misc/qcad + diff --git a/install/builder/packages/desktop?calculate=CLD/desktop_guard b/install/builder/packages/desktop?calculate=CLD/desktop_guard new file mode 100644 index 0000000..c8d426f --- /dev/null +++ b/install/builder/packages/desktop?calculate=CLD/desktop_guard @@ -0,0 +1,6 @@ +#------------------------------------------------------------------------------ +# Защита компьютера +#------------------------------------------------------------------------------ + +app-antivirus/clamav #антивирус +#app-admin/kiosktool #управление доступом пользователя diff --git a/install/builder/packages/desktop?calculate=CLD/desktop_hacker b/install/builder/packages/desktop?calculate=CLD/desktop_hacker new file mode 100644 index 0000000..a5937fe --- /dev/null +++ b/install/builder/packages/desktop?calculate=CLD/desktop_hacker @@ -0,0 +1,10 @@ +#------------------------------------------------------------------------------ +# Проверка надежности систем +#------------------------------------------------------------------------------ + +#app-crypt/truecrypt +#app-forensics/rkhunter +#net-analyzer/nessus +net-analyzer/nmap +#net-analyzer/snort +#net-wireless/kismet diff --git a/install/builder/packages/desktop?calculate=CLD/desktop_home b/install/builder/packages/desktop?calculate=CLD/desktop_home new file mode 100644 index 0000000..71706eb --- /dev/null +++ b/install/builder/packages/desktop?calculate=CLD/desktop_home @@ -0,0 +1,17 @@ +#------------------------------------------------------------------------------ +# Набор софта для домашнего компьютера +#------------------------------------------------------------------------------ + +app-misc/gcstar #personal collections manager +#app-mobilephone/kmobiletools +#app-office/kmymoney2 #программа финансового учёта +media-gfx/digikam +media-libs/mutagen #набор утилит конвертации тэгов +media-sound/amarok +#media-tv/ktvschedule #просмотр каналов TV-передач +#media-tv/mtvg #просмотр каналов TV-передач +media-tv/tvtime +#media-tv/xmltv #библиотеки для работы с форматом XMLTV +#net-p2p/linuxdcpp +#x11-themes/hicolor-icon-theme #набор иконок freedesktop +#x11-themes/gnome-icon-theme #набор иконок Gnome diff --git a/install/builder/packages/desktop?calculate=CLD/desktop_kde b/install/builder/packages/desktop?calculate=CLD/desktop_kde new file mode 100644 index 0000000..d229eb5 --- /dev/null +++ b/install/builder/packages/desktop?calculate=CLD/desktop_kde @@ -0,0 +1,307 @@ +#------------------------------------------------------------------------------ +# KDE4 (K Desktop Environment) — свободное рабочее окружение +# http://ru.wikipedia.org/wiki/KDE +#------------------------------------------------------------------------------ + +#------------------------------------------------------------------------------ +# kdelibs, kdepimlibs — основные библиотеки, требуются для сборки других пакетов +#------------------------------------------------------------------------------ +#kde-base/kdelibs #основные библиотеки, требуется для сборки других пакетов + +#------------------------------------------------------------------------------ +# kdeadmin - инструменты графического администрирования +#------------------------------------------------------------------------------ +kde-base/kcron +kde-base/knetworkconf +#kde-base/ksystemlog +kde-base/kuser +#kde-base/lilo-config + +#------------------------------------------------------------------------------ +# kdeartwork - дополнительные украшения (стили, заставки, обои и т. д.) +#------------------------------------------------------------------------------ +kde-base/kdeartwork-colorschemes +kde-base/kdeartwork-desktopthemes +kde-base/kdeartwork-emoticons +kde-base/kdeartwork-iconthemes +kde-base/kdeartwork-kscreensaver +kde-base/kdeartwork-sounds +kde-base/kdeartwork-styles +kde-base/kdeartwork-wallpapers + +#------------------------------------------------------------------------------ +# kdebase - рабочий стол и основные приложения +#------------------------------------------------------------------------------ +kde-base/dolphin +#kde-base/drkonqi #окно анализатора сбоя +kde-base/kappfinder #поиск приложений на компьютере с добавлением их в меню KDE +kde-base/kcheckpass +kde-base/kcminit +kde-base/kcmshell +kde-base/kcontrol #инструмент для централизованной настройки KDE +kde-base/kde-menu +kde-base/kde-menu-icons +kde-base/kde-wallpapers +kde-base/kdebase-cursors +kde-base/kdebase-data +kde-base/kdebase-desktoptheme +kde-base/kdebase-kioslaves +kde-base/kdebase-startkde +kde-base/kdebugdialog +kde-base/kdedglobalaccel +kde-base/kdepasswd +kde-base/kdesu +kde-base/kdialog +kde-base/kdm #графический вход в систему +kde-base/keditbookmarks +kde-base/kephal +kde-base/kfile +kde-base/kfind +kde-base/khelpcenter +kde-base/khotkeys +kde-base/kiconfinder +kde-base/kinfocenter +kde-base/kioclient +kde-base/klipper +kde-base/kmenuedit #редактор главного меню KDE +kde-base/kmimetypefinder +kde-base/knetattach +kde-base/knewstuff +kde-base/konqueror +kde-base/konsole #графический эмулятор терминала +kde-base/kpasswdserver +kde-base/kquitapp +kde-base/kscreensaver #экранные заставки +kde-base/ksmserver +kde-base/ksplash +kde-base/kstart +kde-base/kstartupconfig +kde-base/kstyles +kde-base/ksysguard +kde-base/ksystraycmd +kde-base/ktimezoned +kde-base/ktraderclient +kde-base/kuiserver +kde-base/kurifilter-plugins +kde-base/kwalletd +kde-base/kwin +kde-base/kwrite +kde-base/kwrited +kde-base/libkonq +kde-base/libkworkspace +kde-base/libplasmaclock +kde-base/libtaskmanager +kde-base/nsplugins +kde-base/phonon-kde +kde-base/plasma-apps +kde-base/plasma-workspace +kde-base/powerdevil +kde-base/renamedlg-plugins +kde-base/solid +kde-base/solid-hardware +kde-base/soliduiserver +kde-base/systemsettings +#kde-base/nepomuk + +#------------------------------------------------------------------------------ +# kdeedu - образовательное ПО +#------------------------------------------------------------------------------ +#kde-base/blinken +#kde-base/kalgebra +#kde-base/kalzium +#kde-base/kanagram +#kde-base/kbruch +#kde-base/kgeography +#kde-base/khangman +#kde-base/kig +#kde-base/kiten +#kde-base/klettres +#kde-base/kmplot +#kde-base/kstars +#kde-base/ktouch +#kde-base/kturtle +#kde-base/kwordquiz +#kde-base/libkdeedu +#kde-base/marble +#kde-base/parley +#kde-base/step + +#------------------------------------------------------------------------------ +# kdegames - игры +#------------------------------------------------------------------------------ +#kde-base/bomber +#kde-base/bovo +#kde-base/kapman +#kde-base/katomic +#kde-base/kbattleship +#kde-base/kblackbox +#kde-base/kblocks +#kde-base/kbounce +#kde-base/kbreakout +#kde-base/kdiamond +#kde-base/kfourinline +#kde-base/kgoldrunner +#kde-base/killbots +#kde-base/kiriki +#kde-base/kjumpingcube +#kde-base/klines +#kde-base/kmahjongg +#kde-base/kmines +#kde-base/knetwalk +#kde-base/kolf +#kde-base/kollision +#kde-base/konquest +#kde-base/kpat +#kde-base/kreversi +#kde-base/ksame +#kde-base/kshisen +#kde-base/ksirk +#kde-base/kspaceduel +#kde-base/ksquares +#kde-base/ksudoku +#kde-base/ktuberling +#kde-base/kubrick +#kde-base/libkdegames +#kde-base/libkmahjongg +#kde-base/lskat + +#------------------------------------------------------------------------------ +# kdegraphics - ПО для работы с графикой +#------------------------------------------------------------------------------ +kde-base/gwenview +kde-base/kamera #работа с фотоаппаратом +kde-base/kcolorchooser +kde-base/kgamma +kde-base/kolourpaint #примитивный графический редактор +kde-base/kruler +kde-base/ksnapshot #снимки экрана +kde-base/libkdcraw +kde-base/libkexiv2 +kde-base/libkipi +kde-base/libksane +kde-base/okular +kde-base/svgpart +kde-base/kdegraphics-strigi-analyzer + +#------------------------------------------------------------------------------ +# kdemultimedia - мультимедиа ПО +#------------------------------------------------------------------------------ +#kde-base/dragonplayer +#kde-base/juk +kde-base/kdemultimedia-kioslaves #отображение директорий MP3, Ogg.. аудио-диске +kde-base/kmix +kde-base/kscd +kde-base/libkcddb +kde-base/libkcompactdisc + +#------------------------------------------------------------------------------ +# kdenetwork - инструменты для работы с сетью +#------------------------------------------------------------------------------ +kde-base/kdenetwork-filesharing +kde-base/kdnssd +kde-base/kget +#!#kde-base/knewsticker +kde-base/kopete #im-клиент поддерживающий различные протоколы +kde-base/kppp +kde-base/krdc #клиент для подключения к удаленному рабочему столу +kde-base/krfb #общий рабочий стол + +#------------------------------------------------ +# kdepim - персональный органайзер +#------------------------------------------------ +kde-base/akonadi +kde-base/akregator +kde-base/kaddressbook +kde-base/kalarm +kde-base/kdemaildir +kde-base/kdepim-icons +kde-base/kdepim-kresources +kde-base/kdepim-strigi-analyzer +kde-base/kdepim-wizards +kde-base/kjots +kde-base/kleopatra +kde-base/kmail +kde-base/kmailcvt +kde-base/knode #программа для чтения новостей +kde-base/knotes +kde-base/kode +kde-base/kontact +kde-base/kontact-specialdates +kde-base/kontactinterfaces +kde-base/korganizer +kde-base/ktimetracker +kde-base/libkdepim +kde-base/libkholidays +kde-base/libkleo +kde-base/libkpgp +kde-base/libksieve +kde-base/mimelib + +#------------------------------------------------ +# kdesdk — инструменты разработчика +#------------------------------------------------ +#kde-base/cervisia +#kde-base/kapptemplate +kde-base/kate +#kde-base/kbugbuster +#kde-base/kcachegrind +#kde-base/kdeaccounts-plugin +kde-base/kdesdk-kioslaves #в зависимостях для kdesvn +#kde-base/kdesdk-misc +#kde-base/kdesdk-scripts +#kde-base/kdesdk-strigi-analyzer +#kde-base/kompare +#kde-base/kstartperf +#kde-base/kuiviewer +#kde-base/lokalize +#kde-base/umbrello + +#------------------------------------------------------------------------------ +# kdetoys - бесполезные игрушки +#------------------------------------------------------------------------------ +#kde-base/amor +#kde-base/kteatime +#kde-base/ktux +#kde-base/kweather + +#------------------------------------------------------------------------------ +# kdeutils - разнообразные утилиты +#------------------------------------------------------------------------------ +kde-base/ark +kde-base/kcalc +kde-base/kcharselect +kde-base/kdessh +kde-base/kdf +kde-base/kgpg +kde-base/ktimer +kde-base/kwallet +kde-base/superkaramba +kde-base/sweeper +kde-base/okteta +#kde-base/kfloppy + +#------------------------------------------------------------------------------ +# kdeaccessibility - дополнительные программы для людей с ограниченными +# способностями (лупа, синтезатор речи и т. д.) +#------------------------------------------------------------------------------ +#kde-base/kdeaccessibility-colorschemes +#kde-base/kdeaccessibility-iconthemes +#kde-base/kmag +#kde-base/kmousetool +#kde-base/kmouth +#kde-base/kttsd + +#------------------------------------------------------------------------------ +# kde-l10n — интернационализация; пакет для пользователей, которые хотят +# использовать в меню, справке и в приложениях языки, отличные от английского. +#------------------------------------------------------------------------------ +kde-base/kde-l10n #интернационализация KDE + +#------------------------------------------------ +# kdemisc - не входящие в основной пакет програмы +#------------------------------------------------ +kde-base/kdeplasma-addons #Extra Plasma applets and engines. +kde-misc/konq-plugins #Various plugins for konqueror +kde-misc/yakuake #разновидность консоли +kde-misc/webkit-kpart #поддержка webkit в konqueror + diff --git a/install/builder/packages/desktop?calculate=CLD/desktop_net b/install/builder/packages/desktop?calculate=CLD/desktop_net new file mode 100644 index 0000000..03c1826 --- /dev/null +++ b/install/builder/packages/desktop?calculate=CLD/desktop_net @@ -0,0 +1,15 @@ +#------------------------------------------------------------------------------ +# Сетевые приложения +#------------------------------------------------------------------------------ + +#dev-java/sun-jre-bin +#mail-client/mozilla-thunderbird +#net-im/ekiga +#net-im/licq +#net-im/sim +#net-im/skype +net-p2p/ktorrent +#net-p2p/amule +www-client/mozilla-firefox +#www-client/opera +#x11-misc/googleearth diff --git a/install/builder/packages/desktop?calculate=CLD/desktop_nettools b/install/builder/packages/desktop?calculate=CLD/desktop_nettools new file mode 100644 index 0000000..7aa6a3d --- /dev/null +++ b/install/builder/packages/desktop?calculate=CLD/desktop_nettools @@ -0,0 +1,16 @@ +#------------------------------------------------------------------------------ +# Различные сетевые утилиты +#------------------------------------------------------------------------------ + +net-analyzer/iptraf +net-analyzer/tcpdump +net-analyzer/traceroute +net-dialup/minicom +net-dialup/ppp +net-dialup/pptpclient +net-ftp/ftp +net-misc/netkit-telnetd +net-misc/ntp #синхронизация времени +net-misc/openvpn +net-misc/whois +sys-apps/iproute2 diff --git a/install/builder/packages/desktop?calculate=CLD/desktop_office b/install/builder/packages/desktop?calculate=CLD/desktop_office new file mode 100644 index 0000000..c49a7ee --- /dev/null +++ b/install/builder/packages/desktop?calculate=CLD/desktop_office @@ -0,0 +1,35 @@ +#------------------------------------------------------------------------------ +# Офисные пакеты, просмотрщики +#------------------------------------------------------------------------------ + +#app-office/abiword +#app-office/gnumeric +app-office/languagetool #расширение OOo для проверки грамматики. +app-office/openoffice +#app-office/scribus #верстка +#app-text/acroread +#app-text/cuneiform-qt #Graphical interface to Cuneiform +#app-text/djview4 #формат поддерживается в KDE 4.2 +#app-text/kchmviewer #формат поддерживается в KDE 4.2 +#media-gfx/inkscape #векторная графика +#sci-misc/qcad #создание технических чертежей +#x11-misc/basket + +#------------------------------------------------ +# kdeoffice +#------------------------------------------------ +#app-i18n/koffice-i18n +#app-office/karbon +#app-office/kchart +#app-office/kexi +#app-office/kformula +#app-office/kivio +#app-office/koffice-data +#app-office/koffice-libs +#app-office/koshell +#app-office/kplato +#app-office/kpresenter +#app-office/krita +#app-office/kspread +#app-office/kugar +#app-office/kword diff --git a/install/builder/packages/desktop?calculate=CLD/desktop_video b/install/builder/packages/desktop?calculate=CLD/desktop_video new file mode 100644 index 0000000..481b42f --- /dev/null +++ b/install/builder/packages/desktop?calculate=CLD/desktop_video @@ -0,0 +1,16 @@ +#------------------------------------------------------------------------------ +# Программы для воспроизведения видео-файлов +#------------------------------------------------------------------------------ + +media-libs/win32codecs +#media-video/codeine +media-video/dvdauthor #создание DVD из kdenlive +media-video/dvgrab #захват через fireware для kdenlive +##media-video/gspcav1 #драйвер для веб-камер +#media-video/kaffeine +media-video/kdenlive +##media-video/linux-uvc #драйвер для веб-камер +media-video/recordmydesktop #захват с экрана для kdenlive +media-video/smplayer +#media-video/vlc #видео-плеер + diff --git a/install/builder/packages/desktop?calculate=CLD/desktop_wireless b/install/builder/packages/desktop?calculate=CLD/desktop_wireless new file mode 100644 index 0000000..467a2ef --- /dev/null +++ b/install/builder/packages/desktop?calculate=CLD/desktop_wireless @@ -0,0 +1,6 @@ +#------------------------------------------------------------------------------ +# Беспроводные сети +#------------------------------------------------------------------------------ + +#net-wireless/kdebluetooth + diff --git a/install/builder/packages/desktop?calculate=CLD/x11_drivers b/install/builder/packages/desktop?calculate=CLD/x11_drivers new file mode 100644 index 0000000..7257bdf --- /dev/null +++ b/install/builder/packages/desktop?calculate=CLD/x11_drivers @@ -0,0 +1,6 @@ +#------------------------------------------------------------------------------ +# Поддержка видеокарт +#------------------------------------------------------------------------------ + +#x11-drivers/ati-drivers + diff --git a/install/builder/packages/desktop?calculate=CLDX/desktop b/install/builder/packages/desktop?calculate=CLDX/desktop new file mode 100644 index 0000000..f3c9bf7 --- /dev/null +++ b/install/builder/packages/desktop?calculate=CLDX/desktop @@ -0,0 +1,6 @@ +#------------------------------------------------------------------------------ +# Основные программы рабочей станции +#------------------------------------------------------------------------------ + +#app-portage/porthole #а GTK+-based frontend to Portage + diff --git a/install/builder/packages/desktop?calculate=CLDX/desktop_decoration b/install/builder/packages/desktop?calculate=CLDX/desktop_decoration new file mode 100644 index 0000000..c98676a --- /dev/null +++ b/install/builder/packages/desktop?calculate=CLDX/desktop_decoration @@ -0,0 +1,22 @@ +#------------------------------------------------------------------------------ +# Декорации +#------------------------------------------------------------------------------ + +media-gfx/calculate-cldx-themes +#x11-themes/echo-icon-theme +#x11-themes/gnome-icon-theme +#x11-themes/gtk-engines +#x11-themes/gtk-engines-aurora +#x11-themes/gtk-engines-candido +#x11-themes/gtk-engines-cleanice +#x11-themes/gtk-engines-dwerg +#x11-themes/gtk-engines-experience +#x11-themes/gtk-engines-flat +#x11-themes/gtk-engines-murrine +##x11-themes/gtk-engines-nimbus +#x11-themes/gtk-engines-qtcurve +#x11-themes/gtk-engines-qtpixmap +#x11-themes/gtk-engines-rezlooks +#x11-themes/gtk-engines-ubuntulooks +x11-themes/tango-icon-theme + diff --git a/install/builder/packages/desktop?calculate=CLDX/desktop_dict b/install/builder/packages/desktop?calculate=CLDX/desktop_dict new file mode 100644 index 0000000..a915709 --- /dev/null +++ b/install/builder/packages/desktop?calculate=CLDX/desktop_dict @@ -0,0 +1,13 @@ +#------------------------------------------------------------------------------ +# Словари +#------------------------------------------------------------------------------ +#Словари используются в OpenOffice.org, Claws +app-dicts/myspell-de +app-dicts/myspell-en +app-dicts/myspell-es +app-dicts/myspell-fr +app-dicts/myspell-pt +app-dicts/myspell-ru +app-dicts/myspell-uk + +app-dicts/stardict diff --git a/install/builder/packages/desktop?calculate=CLDX/desktop_graphics b/install/builder/packages/desktop?calculate=CLDX/desktop_graphics new file mode 100644 index 0000000..d680e76 --- /dev/null +++ b/install/builder/packages/desktop?calculate=CLDX/desktop_graphics @@ -0,0 +1,9 @@ +#------------------------------------------------------------------------------ +# Работа с изображениями, векторная графика +#------------------------------------------------------------------------------ + +media-gfx/gimp +media-gfx/gqview +media-gfx/xsane +#media-plugins/kipi-plugins + diff --git a/install/builder/packages/desktop?calculate=CLDX/desktop_hacker b/install/builder/packages/desktop?calculate=CLDX/desktop_hacker new file mode 100644 index 0000000..bd96d98 --- /dev/null +++ b/install/builder/packages/desktop?calculate=CLDX/desktop_hacker @@ -0,0 +1,10 @@ +#------------------------------------------------------------------------------ +# Проверка надежности систем +#------------------------------------------------------------------------------ + +#app-crypt/truecrypt +#app-forensics/rkhunter +#net-analyzer/nessus +#net-analyzer/nmap +#net-analyzer/snort +#net-wireless/kismet diff --git a/install/builder/packages/desktop?calculate=CLDX/desktop_home b/install/builder/packages/desktop?calculate=CLDX/desktop_home new file mode 100644 index 0000000..5450f7e --- /dev/null +++ b/install/builder/packages/desktop?calculate=CLDX/desktop_home @@ -0,0 +1,12 @@ +#------------------------------------------------------------------------------ +# Набор софта для домашнего компьютера +#------------------------------------------------------------------------------ + +app-cdr/graveman +#app-misc/gcstar #personal collections manager +media-gfx/gtkam #A frontend for gPhoto 2 - redistributable digital camera software application +media-sound/audacious +#media-tv/tvtime +#net-p2p/linuxdcpp +#x11-themes/hicolor-icon-theme #набор иконок freedesktop +#x11-themes/gnome-icon-theme #набор иконок Gnome diff --git a/install/builder/packages/desktop?calculate=CLDX/desktop_net b/install/builder/packages/desktop?calculate=CLDX/desktop_net new file mode 100644 index 0000000..6955abf --- /dev/null +++ b/install/builder/packages/desktop?calculate=CLDX/desktop_net @@ -0,0 +1,13 @@ +#------------------------------------------------------------------------------ +# Сетевые приложения +#------------------------------------------------------------------------------ + +mail-client/claws-mail +mail-client/claws-mail-gtkhtml +mail-client/claws-mail-notification +mail-client/claws-mail-rssyl +#mail-client/mozilla-thunderbird +#mail-client/sylpheed +net-im/pidgin +www-client/mozilla-firefox +x11-plugins/pidgin-libnotify diff --git a/install/builder/packages/desktop?calculate=CLDX/desktop_nettools b/install/builder/packages/desktop?calculate=CLDX/desktop_nettools new file mode 100644 index 0000000..7aa6a3d --- /dev/null +++ b/install/builder/packages/desktop?calculate=CLDX/desktop_nettools @@ -0,0 +1,16 @@ +#------------------------------------------------------------------------------ +# Различные сетевые утилиты +#------------------------------------------------------------------------------ + +net-analyzer/iptraf +net-analyzer/tcpdump +net-analyzer/traceroute +net-dialup/minicom +net-dialup/ppp +net-dialup/pptpclient +net-ftp/ftp +net-misc/netkit-telnetd +net-misc/ntp #синхронизация времени +net-misc/openvpn +net-misc/whois +sys-apps/iproute2 diff --git a/install/builder/packages/desktop?calculate=CLDX/desktop_office b/install/builder/packages/desktop?calculate=CLDX/desktop_office new file mode 100644 index 0000000..a2d3f94 --- /dev/null +++ b/install/builder/packages/desktop?calculate=CLDX/desktop_office @@ -0,0 +1,11 @@ +#------------------------------------------------------------------------------ +# Офисные пакеты, просмотрщики +#------------------------------------------------------------------------------ + +#app-office/abiword +#app-office/gnumeric +#app-office/languagetool #расширение OOo для проверки грамматики. +app-office/openoffice +#app-office/scribus #верстка +#app-text/acroread +#media-gfx/inkscape #векторная графика diff --git a/install/builder/packages/desktop?calculate=CLDX/desktop_video b/install/builder/packages/desktop?calculate=CLDX/desktop_video new file mode 100644 index 0000000..ef91195 --- /dev/null +++ b/install/builder/packages/desktop?calculate=CLDX/desktop_video @@ -0,0 +1,6 @@ +#------------------------------------------------------------------------------ +# Программы для воспроизведения видео-файлов +#------------------------------------------------------------------------------ + +media-libs/win32codecs +media-video/gnome-mplayer diff --git a/install/builder/packages/desktop?calculate=CLDX/desktop_xfce b/install/builder/packages/desktop?calculate=CLDX/desktop_xfce new file mode 100644 index 0000000..3304f7a --- /dev/null +++ b/install/builder/packages/desktop?calculate=CLDX/desktop_xfce @@ -0,0 +1,10 @@ +#------------------------------------------------------------------------------ +# XFCE +#------------------------------------------------------------------------------ + +x11-misc/slim +xfce-base/xfce4 +xfce-extra/xfce4-battery +x11-misc/xfce4-notifyd #Xfce4 notification daemon +xfce-extra/xfce4-screenshooter +xfce-extra/xfce4-xkb #XKB layout switching panel plugin diff --git a/install/builder/packages/server?calculate=CDS/server b/install/builder/packages/server?calculate=CDS/server new file mode 100644 index 0000000..45de907 --- /dev/null +++ b/install/builder/packages/server?calculate=CDS/server @@ -0,0 +1,13 @@ +#------------------------------------------------------------------------------ +# Основные серверные программы +#------------------------------------------------------------------------------ + +app-admin/hddtemp #температура жесткого диска +app-editors/vim +#dev-libs/cyrus-sasl +dev-python/pyserial #модуль для работы с последовательным портом +dev-util/subversion +sys-apps/calculate-server +sys-apps/smartmontools #проверка состояния HDD +sys-fs/mdadm #утилита для управления RAID массивами +sys-process/lsof #(LiSt of Open Files) вывод информации о том, какие файлы используются теми или иными процессами diff --git a/install/builder/packages/server?calculate=CDS/server_decoration b/install/builder/packages/server?calculate=CDS/server_decoration new file mode 100644 index 0000000..87db677 --- /dev/null +++ b/install/builder/packages/server?calculate=CDS/server_decoration @@ -0,0 +1,6 @@ +#------------------------------------------------------------------------------ +# Декорации +#------------------------------------------------------------------------------ + +media-gfx/calculate-cds-themes +media-gfx/splashutils diff --git a/install/builder/packages/server?calculate=CDS/server_developer b/install/builder/packages/server?calculate=CDS/server_developer new file mode 100644 index 0000000..0b19326 --- /dev/null +++ b/install/builder/packages/server?calculate=CDS/server_developer @@ -0,0 +1,7 @@ +#------------------------------------------------------------------------------ +# Инструменты разработчика +#------------------------------------------------------------------------------ + +dev-python/pyserial #работа с последовательным портом +sci-libs/fftw #библиотека быстрых преобразований фурье + diff --git a/install/builder/packages/server?calculate=CDS/server_file b/install/builder/packages/server?calculate=CDS/server_file new file mode 100644 index 0000000..2e47a70 --- /dev/null +++ b/install/builder/packages/server?calculate=CDS/server_file @@ -0,0 +1,8 @@ +#------------------------------------------------------------------------------ +# Файловый сервер +#------------------------------------------------------------------------------ + +app-antivirus/clamav +net-fs/samba +sys-apps/acl #Access control list utilities, libraries and headers + diff --git a/install/builder/packages/server?calculate=CDS/server_guard b/install/builder/packages/server?calculate=CDS/server_guard new file mode 100644 index 0000000..5e91dca --- /dev/null +++ b/install/builder/packages/server?calculate=CDS/server_guard @@ -0,0 +1,6 @@ +#------------------------------------------------------------------------------ +# Защита сервера +#------------------------------------------------------------------------------ + +net-analyzer/fail2ban #защита от подбора пароля сетевых служб + diff --git a/install/builder/packages/server?calculate=CDS/server_hacker b/install/builder/packages/server?calculate=CDS/server_hacker new file mode 100644 index 0000000..8e847fa --- /dev/null +++ b/install/builder/packages/server?calculate=CDS/server_hacker @@ -0,0 +1,6 @@ +#------------------------------------------------------------------------------ +# Проверка надежности систем +#------------------------------------------------------------------------------ + +net-analyzer/nmap + diff --git a/install/builder/packages/server?calculate=CDS/server_mail b/install/builder/packages/server?calculate=CDS/server_mail new file mode 100644 index 0000000..ade3c5f --- /dev/null +++ b/install/builder/packages/server?calculate=CDS/server_mail @@ -0,0 +1,11 @@ +#------------------------------------------------------------------------------ +# Почтовый сервер +#------------------------------------------------------------------------------ + +mail-filter/clamsmtp +mail-filter/postgrey #сервер для организации серых списков в postfix +mail-filter/procmail #агент доставки почты +mail-filter/spamassassin #набор фильтров для проверки сообщения на спам +net-mail/dovecot #почтовый IMAP и POP3 сервер +net-mail/fetchmail #сбор почты с удалённых почтовых серверов +mail-mta/postfix #MTA diff --git a/install/builder/packages/server?calculate=CDS/server_media b/install/builder/packages/server?calculate=CDS/server_media new file mode 100644 index 0000000..225e1b4 --- /dev/null +++ b/install/builder/packages/server?calculate=CDS/server_media @@ -0,0 +1,6 @@ +#------------------------------------------------------------------------------ +# Мультимедиа софт +#------------------------------------------------------------------------------ + +media-video/mplayer + diff --git a/install/builder/packages/server?calculate=CDS/server_net b/install/builder/packages/server?calculate=CDS/server_net new file mode 100644 index 0000000..888d00b --- /dev/null +++ b/install/builder/packages/server?calculate=CDS/server_net @@ -0,0 +1,17 @@ +#------------------------------------------------------------------------------ +# Сетевые сервисы +#------------------------------------------------------------------------------ + +net-dialup/freeradius #Radius-сервер +net-dns/bind #DNS сервер +net-irc/cgiirc #IRC Web-клиент +net-irc/weechat #IRC клиент +net-misc/dhcp #DHCP сервер +net-misc/faxsend #Факсовая рассылка +net-nds/openldap #LDAP сервер +net-p2p/bittorrent #BitTorrent сервер +net-p2p/btpd #BitTorrent клиент +net-proxy/squid #Proxy сервер +net-ftp/proftpd #FTP сервер +sys-apps/ifplugd #автоматическое поднятие сетевых карт при подключении кабеля + diff --git a/install/builder/packages/server?calculate=CDS/server_nettools b/install/builder/packages/server?calculate=CDS/server_nettools new file mode 100644 index 0000000..b96fbcf --- /dev/null +++ b/install/builder/packages/server?calculate=CDS/server_nettools @@ -0,0 +1,29 @@ +#------------------------------------------------------------------------------ +# Различные сетевые утилиты +#------------------------------------------------------------------------------ +#rejic havp +#net-analyzer/bmon +net-analyzer/ipcad #учёт трафика +net-analyzer/iptraf +net-analyzer/sarg #Squid Analysis Report Generator +net-analyzer/tcpdump +net-analyzer/traceroute +net-analyzer/vnstat #монитор трафика +net-dialup/minicom +net-dialup/ppp +net-dialup/pptpclient +net-dialup/pptpd +net-dns/bind-tools +net-dns/ddclient #Perl updater client for dynamic DNS services +net-ftp/ftp +net-im/calculate-ejabberd +net-misc/netkit-telnetd +net-misc/ntp #синхронизация времени +net-misc/whois +#net-p2p/mldonkey +net-proxy/havp #HTTP AntiVirus Proxy +sys-apps/iproute2 +sys-auth/nss_ldap #авторизация в ldap-сервере +sys-auth/pam_ldap #-..- +www-client/links + diff --git a/install/builder/packages/server?calculate=CDS/server_sql b/install/builder/packages/server?calculate=CDS/server_sql new file mode 100644 index 0000000..766ef18 --- /dev/null +++ b/install/builder/packages/server?calculate=CDS/server_sql @@ -0,0 +1,6 @@ +#------------------------------------------------------------------------------ +# Сервер баз данных +#------------------------------------------------------------------------------ + +dev-db/postgresql-server +dev-python/psycopg diff --git a/install/builder/packages/server?calculate=CDS/server_tools b/install/builder/packages/server?calculate=CDS/server_tools new file mode 100644 index 0000000..0de9917 --- /dev/null +++ b/install/builder/packages/server?calculate=CDS/server_tools @@ -0,0 +1,7 @@ +#------------------------------------------------------------------------------ +# Различные утилиты +#------------------------------------------------------------------------------ + +app-admin/testdisk +app-misc/screen + diff --git a/install/builder/profile/0builder/etc/issue b/install/builder/profile/0builder/etc/issue new file mode 100644 index 0000000..d8f23ce --- /dev/null +++ b/install/builder/profile/0builder/etc/issue @@ -0,0 +1,3 @@ + +Welcome to \n.\O (#-calculatename-# #-linuxver-#) + diff --git a/install/builder/profile/0builder/etc/locale.gen b/install/builder/profile/0builder/etc/locale.gen new file mode 100644 index 0000000..7b9caf8 --- /dev/null +++ b/install/builder/profile/0builder/etc/locale.gen @@ -0,0 +1,40 @@ +#-title-# + +#Belarussian +be_BY.UTF-8 UTF-8 +be_BY CP1251 +#Belgian +fr_BE.UTF-8 UTF-8 +#Brazilian Portuguese +pt_BR.UTF-8 UTF-8 +#Canadian French +fr_CA.UTF-8 UTF-8 +#Danish +da_DK.UTF-8 UTF-8 +#French +fr_FR.UTF-8 UTF-8 +#German +de_DE.UTF-8 UTF-8 +#Icelandic +is_IS.UTF-8 UTF-8 +#Italian +it_IT.UTF-8 UTF-8 +#Norwegian +nn_NO.UTF-8 UTF-8 +#Polish +pl_PL.UTF-8 UTF-8 +#Russian +ru_RU.UTF-8 UTF-8 +ru_RU.KOI8-R KOI8-R +#Spanish +es_ES.UTF-8 UTF-8 +#Swedish +sv_SE.UTF-8 UTF-8 +#Ukrainian +uk_UA.UTF-8 UTF-8 +uk_UA KOI8-U +#United Kingdom/British +en_GB.UTF-8 UTF-8 +#United State/English +en_US.UTF-8 UTF-8 + diff --git a/install/builder/profile/0builder/etc/make.conf b/install/builder/profile/0builder/etc/make.conf new file mode 100644 index 0000000..a3fadd1 --- /dev/null +++ b/install/builder/profile/0builder/etc/make.conf @@ -0,0 +1,33 @@ +#-title-# + +#?march=i686&calculate!=CLDX# +CFLAGS="-O2 -march=i686 -pipe" +CHOST="i686-pc-linux-gnu" +#march# +#?march=i686&calculate=CLDX# +CFLAGS="-O2 -march=i686 -pipe" +CHOST="i686-pc-linux-gnu" +#march# +#?march=x86_64# +CFLAGS="-O2 -march=k8 -pipe" +CHOST="x86_64-pc-linux-gnu" +#march# + +#USE lines: #-uselist-# + +USE="#-use-#" + +LINGUAS="#-linguas-#" +AUTOCLEAN="yes" +ALSA_CARDS="ca0106 emu10k1 hda-intel intel8x0 intel8x0m pcsp via82xx" +FOO2ZJS_DEVICES="*" +CAMERAS="*" +#GENTOO_MIRRORS="#-gentoo_mirrors-#" +DISTDIR="#-distdir-#" +PORTDIR_OVERLAY="#-portdir-#" +#-unmerge-orphans for cracklib +FEATURES="parallel-fetch -unmerge-orphans" +PORTAGE_NICENESS=19 +VIDEO_CARDS="fbdev glint i810 intel mach64 mga neomagic nv radeon savage sis tdfx trident vesa vga via vmware" +INPUT_DEVICES="keyboard mouse evdev synaptics" + diff --git a/install/builder/profile/0builder/etc/portage/package.keywords/CLD?calculate=CLD b/install/builder/profile/0builder/etc/portage/package.keywords/CLD?calculate=CLD new file mode 100644 index 0000000..60d5169 --- /dev/null +++ b/install/builder/profile/0builder/etc/portage/package.keywords/CLD?calculate=CLD @@ -0,0 +1,24 @@ +#-title-# + +app-cdr/k3b #-unmask-# +app-emulation/virtualbox-bin #-unmask-# +app-emulation/virtualbox-guest-additions #-unmask-# +app-text/kchmviewer #-unmask-# +kde-misc/kgtk #-unmask-# +kde-misc/webkit-kpart ** +media-gfx/digikam #-unmask-# +media-plugins/kipi-plugins #-unmask-# +media-sound/amarok #-unmask-# +net-p2p/ktorrent #-unmask-# +#x11-libs/qt-core #-unmask-# +#x11-libs/qt-dbus #-unmask-# +#x11-libs/qt-gui #-unmask-# +#x11-libs/qt-opengl #-unmask-# +#x11-libs/qt-qt3support #-unmask-# +#x11-libs/qt-script #-unmask-# +#x11-libs/qt-sql #-unmask-# +#x11-libs/qt-svg #-unmask-# +#x11-libs/qt-test #-unmask-# +#x11-libs/qt-webkit #-unmask-# +x11-themes/gtk-engines-qtcurve #-unmask-# + diff --git a/install/builder/profile/0builder/etc/portage/package.keywords/CLDX?calculate=CLDX b/install/builder/profile/0builder/etc/portage/package.keywords/CLDX?calculate=CLDX new file mode 100644 index 0000000..cf61a6d --- /dev/null +++ b/install/builder/profile/0builder/etc/portage/package.keywords/CLDX?calculate=CLDX @@ -0,0 +1,5 @@ +#-title-# + +media-sound/audacious #-unmask-# +xfce-base/xfce4 #-unmask-# + diff --git a/install/builder/profile/0builder/etc/portage/package.keywords/default b/install/builder/profile/0builder/etc/portage/package.keywords/default new file mode 100644 index 0000000..ab74222 --- /dev/null +++ b/install/builder/profile/0builder/etc/portage/package.keywords/default @@ -0,0 +1,27 @@ +#-title-# + +app-misc/mc #-unmask-# +dev-db/postgresql-base #-unmask-# +dev-db/postgresql-server #-unmask-# +media-gfx/splashutils #-unmask-# +media-libs/mesa #-unmask-# +media-video/mplayer #-unmask-# +net-nds/luma #-unmask-# +net-nds/openldap #-unmask-# +sys-kernel/genkernel #-unmask-# +virtual/postgresql-base #-unmask-# +virtual/postgresql-server #-unmask-# +x11-base/xorg-x11 #-unmask-# +x11-drivers/ati-drivers #-unmask-# +x11-drivers/xf86-video-radeonhd #-unmask-# +x11-drivers/xf86-video-ati #-unmask-# +x11-drivers/xf86-video-intel #-unmask-# +x11-drivers/xf86-video-nv #-unmask-# +x11-drivers/nvidia-drivers #-unmask-# + +sys-apps/openrc #-unmask-# +sys-apps/baselayout #-unmask-# +sys-apps/sysvinit #-unmask-# +sys-fs/cryptsetup #-unmask-# +sys-fs/udev #-unmask-# + diff --git a/install/builder/profile/0builder/etc/portage/package.keywords/dependence b/install/builder/profile/0builder/etc/portage/package.keywords/dependence new file mode 100644 index 0000000..1e07e72 --- /dev/null +++ b/install/builder/profile/0builder/etc/portage/package.keywords/dependence @@ -0,0 +1,2 @@ +#-title-# + diff --git a/install/builder/profile/0builder/etc/portage/package.keywords/desktop?system=desktop b/install/builder/profile/0builder/etc/portage/package.keywords/desktop?system=desktop new file mode 100644 index 0000000..41210b4 --- /dev/null +++ b/install/builder/profile/0builder/etc/portage/package.keywords/desktop?system=desktop @@ -0,0 +1,10 @@ +#-title-# + +=app-office/openoffice-3.0.1 #-unmask-# +dev-db/pgadmin3 #-unmask-# +media-gfx/gimp #-unmask-# +media-libs/libgphoto2 #-unmask-# +net-print/gutenprint #-unmask-# +net-misc/wicd #-unmask-# +www-client/mozilla-firefox #-unmask-# + diff --git a/install/builder/profile/0builder/etc/portage/package.keywords/kde?calculate=CLD b/install/builder/profile/0builder/etc/portage/package.keywords/kde?calculate=CLD new file mode 100644 index 0000000..f593f83 --- /dev/null +++ b/install/builder/profile/0builder/etc/portage/package.keywords/kde?calculate=CLD @@ -0,0 +1,4 @@ +#-title-# + +#-keywords:kde-base-# + diff --git a/install/builder/profile/0builder/etc/portage/package.keywords/using b/install/builder/profile/0builder/etc/portage/package.keywords/using new file mode 100644 index 0000000..9c02bac --- /dev/null +++ b/install/builder/profile/0builder/etc/portage/package.keywords/using @@ -0,0 +1,3 @@ +# Insert yours packages + + diff --git a/install/builder/profile/0builder/etc/portage/package.mask/CDS?calculate=CDS b/install/builder/profile/0builder/etc/portage/package.mask/CDS?calculate=CDS new file mode 100644 index 0000000..0762683 --- /dev/null +++ b/install/builder/profile/0builder/etc/portage/package.mask/CDS?calculate=CDS @@ -0,0 +1,4 @@ +#-title-# + +#-themes-# +>x11-drivers/xf86-video-intel-2.5.1-r9 + + (пример: /etc/splash/default) +#text_font= + +#двигающаяся полоска прогрессбара в Silent +box silent noover 360 408 664 414 #8B8B8B +box silent inter 360 409 360 414 #ffffff #ffffff #D48D17 #D48D17 +box silent 360 409 664 414 #ffffff #ffffff #D48D17 #D48D17 + +#рамка прогресс бара в Silent +box silent 360 408 664 408 #313234 +box silent 360 414 664 414 #eef4ff +box silent 360 408 360 414 #313234 +box silent 664 408 664 414 #eef4ff + +#фон текстового поля в Verbose +box noover 20 20 1004 678 #1B2D3A + +#рамка вокруг текстового поля в Verbose +box 19 19 19 679 #313234 +box 19 19 1005 19 #313234 +box 1005 19 1005 679 #eef4ff +box 19 679 1005 679 #eef4ff + diff --git a/install/builder/profile/IMG/etc/splash/tty2/1024x768.cfg b/install/builder/profile/IMG/etc/splash/tty2/1024x768.cfg new file mode 100644 index 0000000..b9d30f4 --- /dev/null +++ b/install/builder/profile/IMG/etc/splash/tty2/1024x768.cfg @@ -0,0 +1,23 @@ +#-title-# + +bgcolor=0 + +tx=25 +ty=28 +tw=979 +th=649 + +text_x=204 +text_y=544 +text_size=26 +text_color=0xeef4ff + +pic=/etc/splash/tty2/images/verbose-tty2.jpg +silentpic=/etc/splash/tty1/images/silent-tty1.jpg + +box noover 20 20 1004 678 #1B2D3A +box 19 19 19 679 #313234 +box 19 19 1005 19 #313234 +box 1005 19 1005 679 #eef4ff +box 19 679 1005 679 #eef4ff + diff --git a/install/builder/profile/IMG/etc/splash/tty3/1024x768.cfg b/install/builder/profile/IMG/etc/splash/tty3/1024x768.cfg new file mode 100644 index 0000000..c224319 --- /dev/null +++ b/install/builder/profile/IMG/etc/splash/tty3/1024x768.cfg @@ -0,0 +1,23 @@ +#-title-# + +bgcolor=0 + +tx=25 +ty=28 +tw=979 +th=649 + +text_x=204 +text_y=544 +text_size=26 +text_color=0xeef4ff + +pic=/etc/splash/tty3/images/verbose-tty3.jpg +silentpic=/etc/splash/tty1/images/silent-tty1.jpg + +box noover 20 20 1004 678 #1B2D3A +box 19 19 19 679 #313234 +box 19 19 1005 19 #313234 +box 1005 19 1005 679 #eef4ff +box 19 679 1005 679 #eef4ff + diff --git a/install/builder/profile/IMG/etc/splash/tty4/1024x768.cfg b/install/builder/profile/IMG/etc/splash/tty4/1024x768.cfg new file mode 100644 index 0000000..b862418 --- /dev/null +++ b/install/builder/profile/IMG/etc/splash/tty4/1024x768.cfg @@ -0,0 +1,23 @@ +#-title-# + +bgcolor=0 + +tx=25 +ty=28 +tw=979 +th=649 + +text_x=204 +text_y=544 +text_size=26 +text_color=0xeef4ff + +pic=/etc/splash/tty4/images/verbose-tty4.jpg +silentpic=/etc/splash/tty1/images/silent-tty1.jpg + +box noover 20 20 1004 678 #1B2D3A +box 19 19 19 679 #313234 +box 19 19 1005 19 #313234 +box 1005 19 1005 679 #eef4ff +box 19 679 1005 679 #eef4ff + diff --git a/install/builder/profile/IMG/etc/splash/tty5/1024x768.cfg b/install/builder/profile/IMG/etc/splash/tty5/1024x768.cfg new file mode 100644 index 0000000..52dea63 --- /dev/null +++ b/install/builder/profile/IMG/etc/splash/tty5/1024x768.cfg @@ -0,0 +1,23 @@ +#-title-# + +bgcolor=0 + +tx=25 +ty=28 +tw=979 +th=649 + +text_x=204 +text_y=544 +text_size=26 +text_color=0xeef4ff + +pic=/etc/splash/tty5/images/verbose-tty5.jpg +silentpic=/etc/splash/tty1/images/silent-tty1.jpg + +box noover 20 20 1004 678 #1B2D3A +box 19 19 19 679 #313234 +box 19 19 1005 19 #313234 +box 1005 19 1005 679 #eef4ff +box 19 679 1005 679 #eef4ff + diff --git a/install/builder/profile/IMG/etc/splash/tty6/1024x768.cfg b/install/builder/profile/IMG/etc/splash/tty6/1024x768.cfg new file mode 100644 index 0000000..0c55f9b --- /dev/null +++ b/install/builder/profile/IMG/etc/splash/tty6/1024x768.cfg @@ -0,0 +1,23 @@ +#-title-# + +bgcolor=0 + +tx=25 +ty=28 +tw=979 +th=649 + +text_x=204 +text_y=544 +text_size=26 +text_color=0xeef4ff + +pic=/etc/splash/tty6/images/verbose-tty6.jpg +silentpic=/etc/splash/tty1/images/silent-tty1.jpg + +box noover 20 20 1004 678 #1B2D3A +box 19 19 19 679 #313234 +box 19 19 1005 19 #313234 +box 1005 19 1005 679 #eef4ff +box 19 679 1005 679 #eef4ff + diff --git a/install/builder/profile/ISO/calculate/etc/^rc.conf b/install/builder/profile/ISO/calculate/etc/^rc.conf new file mode 100644 index 0000000..8bb7449 --- /dev/null +++ b/install/builder/profile/ISO/calculate/etc/^rc.conf @@ -0,0 +1,5 @@ +#-title-# + +#запрет отмонтирования ресурсов, созданных в ramfs +no_umounts="/newroot.*:/lib/splash/cache:/lib64/splash/cache" + diff --git a/install/builder/profile/ISO/calculate/etc/conf.d/hostname b/install/builder/profile/ISO/calculate/etc/conf.d/hostname new file mode 100644 index 0000000..d77f5fa --- /dev/null +++ b/install/builder/profile/ISO/calculate/etc/conf.d/hostname @@ -0,0 +1,4 @@ +#-title-# + +HOSTNAME="calculate" + diff --git a/install/builder/profile/ISO/calculate/etc/conf.d/hwclock b/install/builder/profile/ISO/calculate/etc/conf.d/hwclock new file mode 100644 index 0000000..e47f1ad --- /dev/null +++ b/install/builder/profile/ISO/calculate/etc/conf.d/hwclock @@ -0,0 +1,15 @@ +#-title-# +# Set CLOCK to "UTC" if your system clock is set to UTC (also known as +# Greenwich Mean Time). If your clock is set to the local time, then +# set CLOCK to "local". Note that if you dual boot with Windows, then +# you should set it to "local". +clock="#-clock-#" + +# If you want to set the Hardware Clock to the current System Time +# during shutdown, then say "YES" here. +# You normally don't need to do this if you run a ntp daemon. +clock_systohc="NO" + +# If you wish to pass any other arguments to hwclock during bootup, +# you may do so here. Alpha users may wish to use --arc or --srm here. +clock_args="" diff --git a/install/builder/profile/ISO/calculate/etc/fstab b/install/builder/profile/ISO/calculate/etc/fstab new file mode 100644 index 0000000..885366c --- /dev/null +++ b/install/builder/profile/ISO/calculate/etc/fstab @@ -0,0 +1,7 @@ +#-title-# + +/dev/loop0 / squashfs ro,defaults 0 0 + +proc /proc proc defaults 0 0 +shm /dev/shm tmpfs nodev,nosuid,noexec 0 0 + diff --git a/install/builder/profile/ISO/calculate/etc/init.d/calculate b/install/builder/profile/ISO/calculate/etc/init.d/calculate new file mode 100755 index 0000000..5bbe227 --- /dev/null +++ b/install/builder/profile/ISO/calculate/etc/init.d/calculate @@ -0,0 +1,31 @@ +#!/sbin/runscript +#-title-# + +depend() { + need localmount root fsck modules +} + +start() { + /usr/calculate/install/calculate -P all + # update system time, after appling profiles + hwclock --hctosys + /usr/local/bin/livecd.sh + + /usr/sbin/env-update + source /etc/profile + /sbin/update-modules + + #support flash for x86_64 + if [ -e /usr/lib32/nsbrowser/plugins/libflashplayer.so ] + then + /usr/bin/nspluginwrapper -v -i /usr/lib32/nsbrowser/plugins/libflashplayer.so &>/dev/null && /usr/bin/nspluginwrapper -a + fi +} + +#stop() { + +#} + +#restart() { + +#} diff --git a/install/builder/profile/ISO/calculate/etc/init.d/device-mapper?linuxver>9.4.3&linuxver<=9.5 b/install/builder/profile/ISO/calculate/etc/init.d/device-mapper?linuxver>9.4.3&linuxver<=9.5 new file mode 100755 index 0000000..ec166b4 --- /dev/null +++ b/install/builder/profile/ISO/calculate/etc/init.d/device-mapper?linuxver>9.4.3&linuxver<=9.5 @@ -0,0 +1,26 @@ +#!/sbin/runscript +#-title-# +# Copyright 1999-2008 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-fs/device-mapper/files/device-mapper.rc-1.02.22-r3,v 1.8 2008/12/18 21:52:25 cardoe Exp $ + +depend() { + # necessary for services when using baselayout-2 + # but conflict for baselayout-1 + if [ -e /etc/init.d/root ] ; then + after modules + before checkfs fsck + fi +} + +start() { + if [ ! -e /etc/init.d/root ] ; then + eerror "The ${SVCNAME} init script is written for baselayout-2" + eerror "Please do not use it with baselayout-1" + return 1 + fi + + #start_addon dm + source /lib/rcscripts/addons/dm-start.sh +} + diff --git a/install/builder/profile/ISO/calculate/etc/mtab b/install/builder/profile/ISO/calculate/etc/mtab new file mode 100644 index 0000000..e69de29 diff --git a/install/builder/profile/ISO/calculate/etc/runlevels/boot/calculate b/install/builder/profile/ISO/calculate/etc/runlevels/boot/calculate new file mode 120000 index 0000000..beb36a5 --- /dev/null +++ b/install/builder/profile/ISO/calculate/etc/runlevels/boot/calculate @@ -0,0 +1 @@ +/etc/init.d/calculate \ No newline at end of file diff --git a/install/builder/profile/ISO/calculate/etc/sudoers b/install/builder/profile/ISO/calculate/etc/sudoers new file mode 100644 index 0000000..701122a --- /dev/null +++ b/install/builder/profile/ISO/calculate/etc/sudoers @@ -0,0 +1,4 @@ +Defaults env_reset +root ALL=(ALL) ALL +%wheel ALL=(ALL) NOPASSWD: ALL +%vboxusers ALL=NOPASSWD:/sbin/modprobe vboxdrv diff --git a/install/builder/profile/ISO/calculate/usr/sbin/calculate b/install/builder/profile/ISO/calculate/usr/sbin/calculate new file mode 120000 index 0000000..df5b350 --- /dev/null +++ b/install/builder/profile/ISO/calculate/usr/sbin/calculate @@ -0,0 +1 @@ +/usr/calculate/install/calculate \ No newline at end of file diff --git a/install/builder/profile/ISO/target/boot/memtest86plus/memtest.bin b/install/builder/profile/ISO/target/boot/memtest86plus/memtest.bin new file mode 100644 index 0000000000000000000000000000000000000000..49d6c681371fb2746b54b0dc7c1dacc8c2b3ea27 GIT binary patch literal 124152 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 z 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 O_5XLH|M?zRZ2w;ql)%ma literal 0 HcmV?d00001 diff --git a/install/builder/profile/ISO/target/isolinux/common.cfg b/install/builder/profile/ISO/target/isolinux/common.cfg new file mode 100644 index 0000000..15ee30f --- /dev/null +++ b/install/builder/profile/ISO/target/isolinux/common.cfg @@ -0,0 +1,26 @@ +PROMPT 0 +TIMEOUT 300 +MENU TABMSG F1 Help | F2 Language | F3 Keymap | F4 Timezone | F5 Video | Tab Edit options + +MENU BACKGROUND back.jpg + +MENU WIDTH 58 +MENU MARGIN 0 +MENU ROWS 14 +MENU HELPMSGROW 19 +MENU TIMEOUTROW 19 +MENU TABMSGROW 30 +MENU CMDLINEROW 22 +MENU VSHIFT 3 +MENU HSHIFT 20 + +MENU COLOR title 31;40 #90fea817 #00000000 std +MENU COLOR border 30;44 #00ffffff #00000000 none +MENU COLOR sel 37;40 #a0000000 #25ffffff all +menu color tabmsg 31;40 #90fea817 #00000000 std + +F1 f1.txt +F2 calcmenu.c32 lang.cfg +F3 calcmenu.c32 keymap.cfg +F4 calcmenu.c32 timezone.cfg +F5 calcmenu.c32 vga.cfg diff --git a/install/builder/profile/ISO/target/isolinux/f1.txt b/install/builder/profile/ISO/target/isolinux/f1.txt new file mode 100755 index 0000000..bedc736 --- /dev/null +++ b/install/builder/profile/ISO/target/isolinux/f1.txt @@ -0,0 +1,22 @@ + + + + + 07Calculate Linux Installation LiveCD + + + Welcome to Calculate Linux Live CD. + + Before loading the operating system, you may choose + language, keymap, timezone and resolution, by using + F2-F5 keys. + + The live system does not require space on your harddisk. + + If you can't start Calculate Linux, dont't dispair! + We are ready to help you! + + Thank you for choosing Calculate Linux! + + See our web site for more information, + http://www.calculate-linux.org diff --git a/install/builder/profile/ISO/target/isolinux/isolinux.cfg b/install/builder/profile/ISO/target/isolinux/isolinux.cfg new file mode 100755 index 0000000..5262261 --- /dev/null +++ b/install/builder/profile/ISO/target/isolinux/isolinux.cfg @@ -0,0 +1,32 @@ +DEFAULT calcmenu.c32 +INCLUDE common.cfg + +MENU TITLE Welcome to Calculate Linux + +#?system=desktop# +LABEL cld + MENU LABEL #-calculatename-# #-march-# #-linuxver-# #-calculatesubname-# LiveDVD + KERNEL /boot/vmlinuz + APPEND root=/dev/ram0 initrd=/boot/initrd init=/linuxrc looptype=squashfs unionfs doload=squashfs,unionfs loop=/livecd.squashfs nodevfs cdroot video=uvesafb:ywrap,1024x768-32@60,mtrr:3,splash=silent,theme:tty1 CONSOLE=/dev/tty1 udev quiet noresume doscsi + +LABEL cld-nox + MENU LABEL #-calculatename-# #-march-# #-linuxver-# #-calculatesubname-# LiveDVD (No-X) + KERNEL /boot/vmlinuz + APPEND root=/dev/ram0 initrd=/boot/initrd init=/linuxrc looptype=squashfs unionfs doload=squashfs,unionfs loop=/livecd.squashfs nodevfs cdroot video=uvesafb:ywrap,1024x768-32@60,mtrr:3,splash=silent,theme:tty1 CONSOLE=/dev/tty1 udev quiet noresume doscsi nox +#system# + +#?system=server# +LABEL cds + MENU LABEL #-calculatename-# #-linuxver-# #-march-# LiveDVD + KERNEL /boot/vmlinuz + APPEND root=/dev/ram0 initrd=/boot/initrd init=/linuxrc looptype=squashfs unionfs doload=squashfs,unionfs loop=/livecd.squashfs nodevfs cdroot video=uvesafb:ywrap,1024x768-32@60,mtrr:3,splash=silent,theme:tty1 CONSOLE=/dev/tty1 udev quiet noresume elevator=deadline + +LABEL cds-nox + MENU LABEL #-calculatename-# #-linuxver-# #-march-# LiveDVD (No-FB) + KERNEL /boot/vmlinuz + APPEND root=/dev/ram0 initrd=/boot/initrd init=/linuxrc looptype=squashfs unionfs doload=squashfs,unionfs loop=/livecd.squashfs nodevfs cdroot video=uvesafb:ywrap,1024x768-32@60,mtrr:3,splash=silent,theme:tty1 CONSOLE=/dev/tty1 udev quiet noresume elevator=deadline nofb +#system# + +LABEL memtest + MENU LABEL Memtest86+ + KERNEL memtest diff --git a/install/builder/profile/ISO/target/isolinux/isolinux.txt b/install/builder/profile/ISO/target/isolinux/isolinux.txt new file mode 100755 index 0000000..50bce4d --- /dev/null +++ b/install/builder/profile/ISO/target/isolinux/isolinux.txt @@ -0,0 +1,8 @@ +splash.rle +0f + +Welcome to Sabayon 4.1 + +Press F1control and F then 1 for help and advanced boot modes. +Automatic Monitor detection, to force a resolution use res=.07 + diff --git a/install/builder/profile/ISO/target/isolinux/keymap.cfg b/install/builder/profile/ISO/target/isolinux/keymap.cfg new file mode 100644 index 0000000..727a965 --- /dev/null +++ b/install/builder/profile/ISO/target/isolinux/keymap.cfg @@ -0,0 +1,92 @@ +DEFAULT calcmenu.c32 +MENU TITLE Select Keymap + +INCLUDE common.cfg + +MENUPARAM calculate 1 + +LABEL en_US + MENU LABEL English,USA + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,en_US + +LABEL en_GB + MENU LABEL English,GB + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,en_GB + +LABEL be_BY + MENU LABEL Belarusian + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,be_BY + +LABEL pt_BR + MENU LABEL Brazilian + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,pt_BR + +LABEL da_DK + MENU LABEL Danish + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,da_DK + +LABEL fr_BE + MENU LABEL Belgium + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,fr_BE + +LABEL fr_FR + MENU LABEL French + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,fr_FR + +LABEL fr_CA + MENU LABEL French,Canada + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,fr_CA + +LABEL de_DE + MENU LABEL German + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,de_DE + +LABEL is_IS + MENU LABEL Icelandic + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,is_IS + +LABEL it_IT + MENU LABEL Italian + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,it_IT + +LABEL nn_NO + MENU LABEL Norwegian,Nynorsk + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,nn_NO + +LABEL pl_PL + MENU LABEL Polish + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,pl_PL + +LABEL ru_RU + MENU LABEL Russian + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,ru_RU + +LABEL es_ES + MENU LABEL Spanish + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,es_ES + +LABEL sv_SE + MENU LABEL Swedish + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,sv_SE + +LABEL uk_UA + MENU LABEL Ukrainian + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,uk_UA + diff --git a/install/builder/profile/ISO/target/isolinux/lang.cfg b/install/builder/profile/ISO/target/isolinux/lang.cfg new file mode 100755 index 0000000..b9a4168 --- /dev/null +++ b/install/builder/profile/ISO/target/isolinux/lang.cfg @@ -0,0 +1,42 @@ +DEFAULT calcmenu.c32 +MENU TITLE Select Language + +INCLUDE common.cfg + +MENUPARAM calculate 0 + +LABEL en_US + MENU LABEL American English + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=en_US,en_US,Canada/Pacific + +LABEL pt_BR + MENU LABEL Brazilian Portuguese + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=pt_BR,pt_BR,America/Sao_Paulo + +LABEL de_DE + MENU LABEL Deutsch + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=de_DE,de_DE,Europe/Amsterdam + +LABEL fr_FR + MENU LABEL Francais + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=fr_FR,fr_FR,Europe/Brussels + +LABEL ru_RU + MENU LABEL Russian + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=ru_RU,ru_RU,Europe/Moscow + +LABEL es_ES + MENU LABEL Espanol + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=es_ES,es_ES,Europe/Brussels + +LABEL uk_UA + MENU LABEL Ukrainian + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=uk_UA,uk_UA,Europe/Kiev + diff --git a/install/builder/profile/ISO/target/isolinux/timezone.cfg b/install/builder/profile/ISO/target/isolinux/timezone.cfg new file mode 100755 index 0000000..3dd9a7d --- /dev/null +++ b/install/builder/profile/ISO/target/isolinux/timezone.cfg @@ -0,0 +1,436 @@ +DEFAULT calcmenu.c32 +MENU TITLE Select Timezone + +INCLUDE common.cfg + +MENUPARAM calculate 2 + +LABEL Etc/GMT-12 + MENU LABEL (GMT-12:00) International Date Line West + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Etc/GMT-12 + +LABEL Pacific/Midway + MENU LABEL (GMT-11:00) Midway Island,Samoa + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Pacific/Midway + +LABEL Pacific/Honolulu + MENU LABEL (GMT-10:00) Hawaii + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Pacific/Honolulu + +LABEL America/Anchorage + MENU LABEL (GMT-09:00) Alaska + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,America/Anchorage + +LABEL Canada/Pacific + MENU LABEL (GMT-08:00) Pacific Time (US & Canada) + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Canada/Pacific + +LABEL America/Tijuana + MENU LABEL (GMT-08:00) Tijuana,Baja California + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,America/Tijuana + +LABEL America/Phoenix + MENU LABEL (GMT-07:00) Arizona + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,America/Phoenix + +LABEL America/Denver + MENU LABEL (GMT-07:00) Mountain Time (US & Canada) + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,America/Denver + +LABEL America/Mazatlan + MENU LABEL (GMT-07:00) Chihuahua,La Paz,Mazatlan - New + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,America/Mazatlan + +LABEL America/Mazatlan + MENU LABEL (GMT-07:00) Chihuahua,La Paz,Mazatlan - Old + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,America/Mazatlan + +LABEL America/Monterrey + MENU LABEL (GMT-06:00) Guadalajara,Mexico City,Monterrey - New + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,America/Monterrey + +LABEL America/Monterrey + MENU LABEL (GMT-06:00) Guadalajara,Mexico City,Monterrey - Old + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,America/Monterrey + +LABEL America/Regina + MENU LABEL (GMT-06:00) Saskatchewan + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,America/Regina + +LABEL America/Mexico_City + MENU LABEL (GMT-06:00) Central America + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,America/Mexico_City + +LABEL Canada/Central + MENU LABEL (GMT-06:00) Central Time (US & Canada) + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Canada/Central + +LABEL America/Bogota + MENU LABEL (GMT-05:00) Bogota,Lima,Quito,Rio Branco + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,America/Bogota + +LABEL America/New_York + MENU LABEL (GMT-05:00) Eastern Time (US & Canada) + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,America/New_York + +LABEL America/Indiana/Indianapolis + MENU LABEL (GMT-05:00) Indiana (East) + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,America/Indiana/Indianapolis + +LABEL America/Halifax + MENU LABEL (GMT-04:00) Atlantic Time (Canada) + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,America/Halifax + +LABEL America/Caracas + MENU LABEL (GMT-04:00) Caracas,La Paz + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,America/Caracas + +LABEL America/Manaus + MENU LABEL (GMT-04:00) Manaus + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,America/Manaus + +LABEL America/Santiago + MENU LABEL (GMT-04:00) Santiago + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,America/Santiago + +LABEL America/St_Johns + MENU LABEL (GMT-03:30) Newfoundland + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,America/St_Johns + +LABEL America/Sao_Paulo + MENU LABEL (GMT-03:00) Brasilia + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,America/Sao_Paulo + +LABEL America/Argentina/Buenos_Aires + MENU LABEL (GMT-03:00) Buenos Aires,Georgetown + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,America/Argentina/Buenos_Aires + +LABEL Etc/GMT+3 + MENU LABEL (GMT-03:00) Greenland + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Etc/GMT+3 + +LABEL America/Montevideo + MENU LABEL (GMT-03:00) Montevideo + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,America/Montevideo + +LABEL Atlantic/South_Georgia + MENU LABEL (GMT-02:00) Mid-Atlantic + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Atlantic/South_Georgia + +LABEL Atlantic/Azores + MENU LABEL (GMT-01:00) Azores + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Atlantic/Azores + +LABEL Atlantic/Cape_Verde + MENU LABEL (GMT-01:00) Cape Verde Is. + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Atlantic/Cape_Verde + +LABEL UTC + MENU LABEL (GMT+00:00) Greenwich Mean Time: Dublin,Edinburgh,Lisbon,London + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,UTC + +LABEL Africa/Casablanca + MENU LABEL (GMT+00:00) Casablanca,Monrovia,Reykjavik + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Africa/Casablanca + +LABEL Europe/Amsterdam + MENU LABEL (GMT+01:00) Amsterdam,Berlin,Bern,Rome,Stockholm,Vienna + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Europe/Amsterdam + +LABEL Europe/Belgrade + MENU LABEL (GMT+01:00) Belgrade,Bratislava,Budapest,Ljubljana,Prague + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Europe/Belgrade + +LABEL Europe/Brussels + MENU LABEL (GMT+01:00) Brussels,Copenhagen,Madrid,Paris + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Europe/Brussels + +LABEL Europe/Zagreb + MENU LABEL (GMT+01:00) Sarajevo,Skopje,Warsaw,Zagreb,Oslo + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Europe/Zagreb + +LABEL Africa/Tunis + MENU LABEL (GMT+01:00) West Central Africa + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Africa/Tunis + +LABEL Asia/Amman + MENU LABEL (GMT+02:00) Amman + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Asia/Amman + +LABEL Europe/Istanbul + MENU LABEL (GMT+02:00) Athens,Bucharest,Istanbul + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Europe/Istanbul + +LABEL Asia/Beirut + MENU LABEL (GMT+02:00) Beirut + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Asia/Beirut + +LABEL Europe/Kiev + MENU LABEL (GMT+02:00) Helsinki,Kyiv,Riga,Sofia,Tallinn,Vilnius + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Europe/Kiev + +LABEL Africa/Windhoek + MENU LABEL (GMT+02:00) Windhoek + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Africa/Windhoek + +LABEL Asia/Jerusalem + MENU LABEL (GMT+02:00) Jerusalem + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Asia/Jerusalem + +LABEL Africa/Cairo + MENU LABEL (GMT+02:00) Cairo + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Africa/Cairo + +LABEL Europe/Minsk + MENU LABEL (GMT+02:00) Minsk + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Europe/Minsk + +LABEL Africa/Harare + MENU LABEL (GMT+02:00) Harare,Pretoria + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Africa/Harare + +LABEL Asia/Baghdad + MENU LABEL (GMT+03:00) Baghdad + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Asia/Baghdad + +LABEL Asia/Kuwait + MENU LABEL (GMT+03:00) Kuwait,Riyadh + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Asia/Kuwait + +LABEL Europe/Moscow + MENU LABEL (GMT+03:00) Moscow,St. Petersburg,Volgograd + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Europe/Moscow + +LABEL Africa/Nairobi + MENU LABEL (GMT+03:00) Nairobi + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Africa/Nairobi + +LABEL Asia/Tbilisi + MENU LABEL (GMT+03:00) Tbilisi + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Asia/Tbilisi + +LABEL Asia/Tehran + MENU LABEL (GMT+03:30) Tehran + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Asia/Tehran + +LABEL Asia/Muscat + MENU LABEL (GMT+04:00) Abu Dhabi,Muscat + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Asia/Muscat + +LABEL Asia/Baku + MENU LABEL (GMT+04:00) Baku + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Asia/Baku + +LABEL Asia/Yerevan + MENU LABEL (GMT+04:00) Yerevan + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Asia/Yerevan + +LABEL Asia/Kabul + MENU LABEL (GMT+04:30) Kabul + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Asia/Kabul + +LABEL Asia/Yekaterinburg + MENU LABEL (GMT+05:00) Ekaterinburg + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Asia/Yekaterinburg + +LABEL Asia/Karachi + MENU LABEL (GMT+05:00) Islamabad,Karachi,Tashkent + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Asia/Karachi + +LABEL Asia/Calcutta + MENU LABEL (GMT+05:30) Chennai,Kalkata,Bumbai,New Delhi + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Asia/Calcutta + +LABEL Asia/Jayapura + MENU LABEL (GMT+05:30) Sri Jayawardenepura + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Asia/Jayapura + +LABEL Asia/Katmandu + MENU LABEL (GMT+05:45) Kathmandu + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Asia/Katmandu + +LABEL Asia/Almaty + MENU LABEL (GMT+05:00) Almaty + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Asia/Almaty + +LABEL Asia/Dhaka + MENU LABEL (GMT+06:00) Astana,Dhaka + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Asia/Dhaka + +LABEL Asia/Omsk + MENU LABEL (GMT+06:00) Omsk,Novosibirsk + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Asia/Omsk + +LABEL Asia/Rangoon + MENU LABEL (GMT+06:30) Yangon (Rangoon) + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Asia/Rangoon + +LABEL Asia/Bangkok + MENU LABEL (GMT+07:00) Bangkok,Hanoi,Jakarta + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Asia/Bangkok + +LABEL Asia/Krasnoyarsk + MENU LABEL (GMT+07:00) Krasnoyarsk + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Asia/Krasnoyarsk + +LABEL Asia/Hong_Kong + MENU LABEL (GMT+08:00) Beijing,Chongqing,Hong Kong,Urumqi + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Asia/Hong_Kong + +LABEL Asia/Irkutsk + MENU LABEL (GMT+08:00) Irkutsk,Ulaan Bataar + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Asia/Irkutsk + +LABEL Asia/Singapore + MENU LABEL (GMT+08:00) Kuala Lumpur,Singapore + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Asia/Singapore + +LABEL Australia/Perth + MENU LABEL (GMT+08:00) Perth + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Australia/Perth + +LABEL Asia/Taipei + MENU LABEL (GMT+08:00) Taipei + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Asia/Taipei + +LABEL Asia/Tokyo + MENU LABEL (GMT+09:00) Osaka,Sapporo,Tokyo + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Asia/Tokyo + +LABEL Asia/Seoul + MENU LABEL (GMT+09:00) Seoul + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Asia/Seoul + +LABEL Asia/Yakutsk + MENU LABEL (GMT+09:00) Yakutsk + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Asia/Yakutsk + +LABEL Australia/Adelaide + MENU LABEL (GMT+09:30) Adelaide + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Australia/Adelaide + +LABEL Australia/Darwin + MENU LABEL (GMT+09:30) Darwin + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Australia/Darwin + +LABEL Australia/Brisbane + MENU LABEL (GMT+10:00) Brisbane + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Australia/Brisbane + +LABEL Asia/Vladivostok + MENU LABEL (GMT+10:00) Vladivostok + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Asia/Vladivostok + +LABEL Pacific/Guam + MENU LABEL (GMT+10:00) Guam,Port Moresby + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Pacific/Guam + +LABEL Australia/Melbourne + MENU LABEL (GMT+10:00) Canberra,Melbourne,Sydney + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Australia/Melbourne + +LABEL Australia/Hobart + MENU LABEL (GMT+10:00) Hobart + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Australia/Hobart + +LABEL Asia/Magadan + MENU LABEL (GMT+11:00) Magadan,Solomon Is.,New Caledonia + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Asia/Magadan + +LABEL Asia/Kamchatka + MENU LABEL (GMT+12:00) Fiji,Kamchatka,Marshall Is. + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Asia/Kamchatka + +LABEL Pacific/Auckland + MENU LABEL (GMT+12:00) Auckland,Wellington + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Pacific/Auckland + +LABEL Etc/GMT-13 + MENU LABEL (GMT+13:00) Nuku'alofa + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,Etc/GMT-13 diff --git a/install/builder/profile/ISO/target/isolinux/vga.cfg b/install/builder/profile/ISO/target/isolinux/vga.cfg new file mode 100755 index 0000000..bfbdff4 --- /dev/null +++ b/install/builder/profile/ISO/target/isolinux/vga.cfg @@ -0,0 +1,38 @@ +DEFAULT vesamenu.c32 +MENU TITLE Select Resolution + +INCLUDE common.cfg + +MENUPARAM calculate 3 + +LABEL auto + MENU LABEL Auto + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,,auto +ENDTEXT + + +LABEL 640x480 + MENU LABEL 640x480 + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,,640x480 + +LABEL 800x600 + MENU LABEL 800x600 + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,,800x600 + +LABEL 1024x768 + MENU LABEL 1024x768 + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,,1024x768 + +LABEL 1280x1024 + MENU LABEL 1280x1024 + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,,1280x1024 + +LABEL 1600x1200 + MENU LABEL 1600x1200 + KERNEL calcmenu.c32 + APPEND isolinux.cfg calculate=,,,1600x1200 diff --git a/install/builder/profile/ISO/target/livecd b/install/builder/profile/ISO/target/livecd new file mode 100644 index 0000000..a0c91d3 --- /dev/null +++ b/install/builder/profile/ISO/target/livecd @@ -0,0 +1 @@ +calculate \ No newline at end of file diff --git a/install/builder/use/Artwork b/install/builder/use/Artwork new file mode 100644 index 0000000..99b30fd --- /dev/null +++ b/install/builder/use/Artwork @@ -0,0 +1,5 @@ +#дополнительные флаги поддержки визуальных расширений + +#?system=desktop# +#xscreensaver #support for the XScreenSaver extension +#system# diff --git a/install/builder/use/Audio b/install/builder/use/Audio new file mode 100644 index 0000000..ecbfeb0 --- /dev/null +++ b/install/builder/use/Audio @@ -0,0 +1,17 @@ +#?system=desktop# +alsa #Adds support for media-libs/alsa-lib (Advanced Linux Sound Architecture) +audiofile #Adds support for libaudiofile where applicable +id3tag #Enables ID3 tagging with id3tag library +flac #Adds support for the flac audio codec +mad #Adds support for mad (high-quality mp3 decoder library and cli frontend) +mp3 #Add support for reading mp3 files +mpeg #Adds libmpeg3 support to various packages +nas #Adds support for network audio sound +ogg #Adds support for the Ogg container format (commonly used by Vorbis, Theora and flac) +oggvorbis #Adds support for the OggVorbis audio encoding - DEPRECATED useflag +openal #Adds support for the Open Audio Library +portaudio #Adds support for the crossplatform portaudio audio API +vorbis #Adds support for the OggVorbis audio codec +mikmod #Adds libmikmod support to allow playing of SoundTracker-style music files +#system# + diff --git a/install/builder/use/CD_and_DVD b/install/builder/use/CD_and_DVD new file mode 100644 index 0000000..998b8e3 --- /dev/null +++ b/install/builder/use/CD_and_DVD @@ -0,0 +1,9 @@ +#?system=desktop# +cdparanoia #Enables cdparanoia support +cdr #Adds support for CD writer hardware +dvd #Adds support for DVDs +dvdr #Adds support for DVD writer hardware (e.g. in xcdroast) +dvdread #Enables usage of Ogle's libdvdread for DVD playback +vcd #Video CD support +#system# + diff --git a/install/builder/use/Doc b/install/builder/use/Doc new file mode 100644 index 0000000..bfef450 --- /dev/null +++ b/install/builder/use/Doc @@ -0,0 +1,3 @@ +chm #Enable support for Microsoft Compiled HTML Help files +djvu #support DjVu, a PDF-like document format esp. suited for scanned documents +ebook #Add E-Book suppport diff --git a/install/builder/use/Guard_and_Security b/install/builder/use/Guard_and_Security new file mode 100644 index 0000000..f2b360f --- /dev/null +++ b/install/builder/use/Guard_and_Security @@ -0,0 +1,12 @@ +#?system=desktop# +clamav #Adds support for Clam AntiVirus software (usually with a plugin) +crypt #Add support for encryption -- using mcrypt or gpg where applicable +ssl #Adds support for Secure Socket Layer connections +#system# + +#?system=server# +#hardened #activate default security enhancements for toolchain (gcc, glibc, binutils) +#kerberos #Adds kerberos support +#sasl #Adds support for the Simple Authentication and Security Layer +#system# + diff --git a/install/builder/use/Hardware b/install/builder/use/Hardware new file mode 100644 index 0000000..0ac8267 --- /dev/null +++ b/install/builder/use/Hardware @@ -0,0 +1,30 @@ +#?system=desktop# +3dnow #Adds support for 3dnow multimedia processor instructions +acpi #Adds support for Advanced Configuration and Power Interface +apm #Adds APM (Advanced Power Management) support +bluetooth #Enables Bluetooth Support +cairo #adds cairo support +dbus #Enable dbus support for anything that needs it (gpsd, gnomemeeting, etc) +dri #Enable direct rendering: used for accelerated 3D and some 2D, like DMA +hal #Enable Hardware Abstraction Layer (HAL) support +ieee1394 #Enable FireWire/iLink IEEE1394 support (dv, camera, ...) +mmx #Adds support for optimizations for Pentium MMX and Athlon class processors +mmxext #Enables mmx2 support +nvidia #Enable binary Nvidia driver support +opengl #Adds support for OpenGL +scanner #Adds support for scanner hardware (e.g. build the sane frontend in kdegraphics) +smp #Enable support for multiprocessors +sse #fast floating point optimization for PentiumIII+ class chips +sse2 #faster floating point optimization for SS[2E2 capable chips +sse3 #Enable SSE3 support +sse4.1 #Enable SSE4.1 support +sse4.2 #Enable SSE4.2 support +sse4a #Enable SSE4a support +sse5 #Enable SSE5 support +ssse3 #faster floating point optimization for SSSE3 capable chips (Intel Core 2 and later chips) +usb #Adds USB support to applications that have optional USB support (e.g. cups) +xcomposite #Enable support for the Xorg composite extension +#system# +#?calculate=CLD# +lirc #Adds support for lirc (Linux's Infra-Red Remote Control) +#calculate# diff --git a/install/builder/use/IM b/install/builder/use/IM new file mode 100644 index 0000000..e80234d --- /dev/null +++ b/install/builder/use/IM @@ -0,0 +1,8 @@ +#?system=desktop# +irc #Enable support for the IRC protocol +jabber #Enable jabber IM protocol support +jingle #Enables voice calls for jabber +oscar #Enable Oscar (AIM/ICQ) IM protocol support +yahoo #Enable Yahoo Messenger IM protocol support +#system# + diff --git a/install/builder/use/Image b/install/builder/use/Image new file mode 100644 index 0000000..2a50a56 --- /dev/null +++ b/install/builder/use/Image @@ -0,0 +1,27 @@ +#?system=desktop# +X #Adds support for X11 +exif #Adds support for reading EXIF headers from JPEG and TIFF images +fdftk #Add supports for Adobe's FDF toolkit +gd #Adds support for media-libs/gd (to generate graphics on the fly) +gif #Adds GIF image support +imagemagick #Enables support for Imagemagick (image converter) +jpeg #Adds JPEG image support +jpeg2k #Support for JPEG 2000, a wavelet-based image compression format +mng #Adds support for libmng (MNG images) +pdf #Adds general support for PDF, this replaces the pdflib and cpdflib flags +png #Adds support for libpng (PNG images) +svg #Adds support for SVG. +tiff #Adds support for the tiff image format +wmf #Adds support for the wmf vector image format +wxwindows #Adds support for wxWidgets/wxGTK GUI toolkit +xpm #Support for XPM graphics format +#system# +#?system=server# +exif #Adds support for reading EXIF headers from JPEG and TIFF images +gif #Adds GIF image support +jpeg #Adds JPEG image support +jpeg2k #Support for JPEG 2000, a wavelet-based image compression format +png #Adds support for libpng (PNG images) +tiff #Adds support for the tiff image format +#system# + diff --git a/install/builder/use/Language b/install/builder/use/Language new file mode 100644 index 0000000..42cca65 --- /dev/null +++ b/install/builder/use/Language @@ -0,0 +1,4 @@ +#?system=desktop# +-java #Adds support for Java +#system# + diff --git a/install/builder/use/Locale_and_Fonts b/install/builder/use/Locale_and_Fonts new file mode 100644 index 0000000..bcee9b2 --- /dev/null +++ b/install/builder/use/Locale_and_Fonts @@ -0,0 +1,10 @@ +truetype #Adds support for FreeType and/or FreeType2 fonts +nls #Adds Native Language Support (using gettext - GNU locale utilities) +slang #Adds support for the slang text display library (it's like ncurses, but different) +unicode #Adds support for Unicode +userlocales #build only the locales specified in /etc/locales.build + +#?system=desktop# +spell #Adds dictionary support +#system# + diff --git a/install/builder/use/Mail b/install/builder/use/Mail new file mode 100644 index 0000000..7d8651d --- /dev/null +++ b/install/builder/use/Mail @@ -0,0 +1,11 @@ +-mailwrapper #Adds mailwrapper support to allow multiple MTAs to be installed + +#?system=desktop# +mbox #Adds support for mbox (/var/spool/mail) style mail spools +#system# + +#?system=server# +imap #Adds support for IMAP (Internet Mail Application Protocol) +maildir #Adds support for maildir (~/.maildir) style mail spools +#system# + diff --git a/install/builder/use/Net b/install/builder/use/Net new file mode 100644 index 0000000..c00ae1c --- /dev/null +++ b/install/builder/use/Net @@ -0,0 +1,19 @@ +#Сетевые протоколы + +bittorrent #Enable embedded bittorrent transport plugin +ftp #Adds FTP (File Transfer Protocol) support +ipv6 #Adds support for IP version 6 +nfs #Adds support for NFS file system + +#?system=desktop# +ldap #Adds LDAP support (Lightweight Directory Access Protocol) +rdesktop #support for the remote desktop protocol +samba #Adds support for SAMBA +#system# + +#?system=desktop# +ldap #Adds LDAP support (Lightweight Directory Access Protocol) +radius #Adds support for RADIUS authentication +samba #Adds support for SAMBA +#system# + diff --git a/install/builder/use/Photo b/install/builder/use/Photo new file mode 100644 index 0000000..3f3a935 --- /dev/null +++ b/install/builder/use/Photo @@ -0,0 +1,4 @@ +#?system=desktop# +gphoto2 #Adds digital camera support +#system# + diff --git a/install/builder/use/Printing b/install/builder/use/Printing new file mode 100644 index 0000000..d61e4d6 --- /dev/null +++ b/install/builder/use/Printing @@ -0,0 +1,3 @@ +cups #Add support for CUPS (Common Unix Printing System) +foomaticdb #Adds support for the foomatic printing driver database + diff --git a/install/builder/use/Sql b/install/builder/use/Sql new file mode 100644 index 0000000..1099023 --- /dev/null +++ b/install/builder/use/Sql @@ -0,0 +1,5 @@ +#?calculate=CLD# +mysql #Adds mySQL Database support +#postgres #Adds support for the postgresql database +#system# + diff --git a/install/builder/use/System b/install/builder/use/System new file mode 100644 index 0000000..c019988 --- /dev/null +++ b/install/builder/use/System @@ -0,0 +1,8 @@ +logrotate #Install support files for logrotate +nptl #Enable support for Native POSIX Threads Library, the new threading module (requires linux-2.6 or better usually) +nptlonly #Disables building the linuxthreads fallback in glibc ebuilds that support building both linuxthreads and nptl + +#?system=desktop# +nsplugin #Builds plugins for Netscape compatible browsers +#system# + diff --git a/install/builder/use/Video b/install/builder/use/Video new file mode 100644 index 0000000..df1b337 --- /dev/null +++ b/install/builder/use/Video @@ -0,0 +1,38 @@ +#?system=desktop# +a52 #Enables support for decoding ATSC A/52 streams used in DVD +aac #Enables support for MPEG-4 AAC Audio +aalib #Adds support for media-libs/aalib (ASCII-Graphics Library) +avi #Adds avifile (Library for avi) support +cddb #Access cddb servers to retrieve and submit information about compact disks +dv #Enables support for a codec used by many camcorders +encode #Adds support for encoding of audio or video files +fbcon #Adds framebuffer support for the console, via the kernel +ffmpeg #Enable ffmpeg support +flash #Adds support for creating flash files using Ming +ggi #Adds support for media-libs/libggi (non-X video api/drivers) +libcaca #Add support for colored ASCII-art graphics +lzo #Enables support for lzo compression +matroska #Adds support for the matroska container format +mplayer #Enable mplayer support +musepack #Enable support for the musepack audio codec +real #Installs the real video codecs +sdl #Adds support for Simple Direct Layer (media library) +speex #Adds support for the speex audio codec +srt #Support for SRT subtitle format +svga #Adds support for SVGAlib (graphics library) +tga #Enables Targa video output +quicktime #Adds support for OpenQuickTime +theora #Adds support for the Theora Video Compression Codec +v4l #Enables video4linux support +v4l2 #Enable video4linux2 support +vidix #Support for vidix video output +win32codecs #use win32codecs package for dll avi decoding support (wmv and what not) +xanim #Enables support for xanim based codecs +x264 #Enable h264 encoding using x264 +xine #Add support for the XINE movie libraries +xinerama #Add support for the xinerama X11 extension, which allows you to stretch your display across multiple monitors +xv #Adds in optional support for the Xvideo extension (an X API for video playback) +xvid #Adds support for xvid.org's open-source mpeg-4 codec +xvmc #Support for XVideo Motion Compensation (accelerated mpeg playback) +#system# + diff --git a/install/builder/use/WM_and_Speciality b/install/builder/use/WM_and_Speciality new file mode 100644 index 0000000..2256035 --- /dev/null +++ b/install/builder/use/WM_and_Speciality @@ -0,0 +1,26 @@ +#?calculate=CLD# +-gnome #Adds GNOME support +-eds #Enables support for Evolution-Data-Server(eds) +kde #Adds support for kde-base/kde (K Desktop Enviroment) +-qt3 #Adds support for the Qt GUI/Application Toolkit version 3.x +qt4 #Adds support for the Qt GUI/Application Toolkit version 4.x +#calculate# + +#?calculate=CLDX# +-gnome #Adds GNOME support +gtk #Adds support for x11-libs/gtk+ (The GIMP Toolkit) +-eds #Enables support for Evolution-Data-Server(eds) +-kde #Adds support for kde-base/kde (K Desktop Enviroment) +-qt3 #Adds support for the Qt GUI/Application Toolkit version 3.x +-qt4 #Adds support for the Qt GUI/Application Toolkit version 4.x +#calculate# + +#?system=server# +-gnome +-gtk +-kde +-qt3 +-qt4 +-X +#system# + diff --git a/install/builder/use/Web b/install/builder/use/Web new file mode 100644 index 0000000..e3234d8 --- /dev/null +++ b/install/builder/use/Web @@ -0,0 +1,11 @@ +#?system=desktop# +#-apache #Chooses Apache1 support when a package optionally supports Apache1 +#apache2 #Chooses Apache2 support when a package supports both Apache1 and Apache2 +libwww #Adds libwww support (General purpose WEB API) +vhosts #Adds support for installing web-based applications into a virtual-hosting environment +#javascript #enable javascript support +#system# +#calculate=CLD# +webkit #enable WebKit support +#calculate# + diff --git a/install/calculate b/install/calculate new file mode 100755 index 0000000..0f8f1d5 --- /dev/null +++ b/install/calculate @@ -0,0 +1,6523 @@ +#!/usr/bin/perl +use Cwd; +use IO::Socket; +use Time::Local; + +#------------------------------------------------------------------------------ +# Calculate +# Copyright ©2006-2009 Calculate Pack +# Программа создана: 12.04.2006г. +# +# 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 . +#------------------------------------------------------------------------------ +my %data; #объявим хэш переменных +$data{"calcver"} = "1.1.0"; + +#Определим путь к программе +if(!getpath()){exit;}; + +#Считаем входящие параметры и выполним простые действия +if(!getarg()){savelog(); exit;}; + +#Проверим на ошибки +if(!checkerrors()){savelog(); exit;}; + +#Определим систему для установки и обновления +welcome(); + +#Соберем сведения о системе +checksystem(); + +#------------------------------------------------------------------------------ +# Выполним действия +#------------------------------------------------------------------------------ +#Покажем все переменные +if(defined $data{arg}{'vars'}){ + printvars(); #Выведем список переменных конфигурационных файлов +#Покажем список пакетов, входящих в дополнение +}elsif(defined $data{arg}{'L'}){ + listadd(); +#Соберем дополнение +}elsif(defined $data{arg}{'M'}){ + makeadd(); +#Установка дополнений +}elsif(defined $data{arg}{'addition'}){ + addition(); +#Сгенерируем новый initrd +}elsif(defined $data{arg}{'initrd'}){ + initrd(); +#Установим по необходимости видеодрайвер +}elsif(defined $data{arg}{'video'}){ + video(); +#Выполним обновления +}elsif(defined $data{arg}{update}){ + checkupdate(); +#Покажем информацию о компьютере +}elsif(defined $data{arg}{'hardware'}){ + printhardware(); #Выведем конфигурацию ПК +#Настроим серверы CDS +}elsif(defined $data{arg}{'setup'}){ + setupservers(); #настроим серверы +#Выполним резервное копирование данных серверов +}elsif(defined $data{arg}{'backup'}){ + backupservers(); #настроим серверы +#Управление пользователями +}elsif(defined $data{arg}{'useradd'} || defined $data{arg}{'userdel'} || defined $data{arg}{'userpasswd'} || defined $data{arg}{'groupadd'} || defined $data{arg}{'groupdel'} || defined $data{arg}{'groupmod'}){ + user(); #управление пользователями +#Управление почтовыми ящиками +}elsif(defined $data{arg}{'mailuseradd'} || defined $data{arg}{'mailuserdel'} || defined $data{arg}{'mailuserpasswd'} || defined $data{arg}{'mailgroupadd'} || defined $data{arg}{'mailgroupdel'}){ + mail(); #управление пользователями +#Наложим обновления профилей на текущую систему +}elsif(defined $data{arg}{'profile'}){ + if(number_ver($data{os}) < number_ver(7.12)){ + printmes(gettext('It is supported in systems of versions')); + printmes(" > 7.11\n"); + }else{ + update_profile(); + } +#Выполним сборку новой системы +}elsif($data{builder}){ + if(defined $data{arg}{list}){ + if(!list()){ + beep(); + } + }elsif(defined $data{arg}{dependence}){ + if(!dependence()){ + beep(); + } + }elsif(defined $data{arg}{make}){ + if(!make()){ + beep(); + }elsif(!makepkg()){ + beep(); + } + }elsif(defined $data{arg}{pack}){ + if(!packsystem()){ + beep(); + } + }elsif(defined $data{arg}{iso}){ + if(!createiso()){ + beep(); + } + }elsif(defined $data{arg}{'break'}){ + if(!breakbuild()){ + beep(); + } + }else{ + #Создадим директорию сборки + system "$data{path} mkdir $data{mount}"; + + #Соберем новый дистрибутив + if(!checkready()){system "$data{path} rmdir $data{mount}";} #Выполним проверки перед установкой + elsif(!extract()){system "$data{path} rmdir $data{mount}";} #Распакуем систему + elsif(!configure()){} #Подготовим систему к сборке + } +#Выполним установку новой системы +}elsif( + $data{load} eq "ram" || + ( + number_ver($data{linuxver}) > number_ver(7.11) +# && +# ( +# number_ver($data{linuxver}) > number_ver($data{os}) || +# defined $data{arg}{'force'} || +# $data{calculatename} ne $data{linuxold} +# ) + && + !defined $data{arg}{'updateonly'} + ) +){ + #Создадим директорию установки + system "$data{path} mkdir $data{mount}"; + #Установим новую версию системы + if(!checkready()){} #Выполним проверки перед установкой + elsif(!extract()){} #Распакуем систему + elsif(!profiles()){} #Наложим обновления + elsif(!setup()){} #Выполним общие настройки системы + elsif(!loader()){} #Подготовим систему к перезагрузке + elsif(!reboot()){} #Перезагрузим компьютер + #Удалим директорию установки + system "$data{path} rmdir $data{mount}"; +#Выполним установку патчей +}else{ + if(%{$data{patches}}){ + patch(); + }else{ + printmes("\n".gettext('No updates available')); printmes(".\n"); + } +} + +savelog(); +exit; + + +#------------------------------------------------------------------------------ +# +# Определим путь к программе +# +#------------------------------------------------------------------------------ +sub getpath{ + #---------------------------------------------------------------------- + # Добавим по необходимости переменные пути + #---------------------------------------------------------------------- + { + $data{path} = ''; + if(":$ENV{PATH}:"!~m|:/sbin:|){ $data{path}.= "/sbin:"; } + if(":$ENV{PATH}:"!~m|:/bin:|){ $data{path}.= "/bin:"; } + if(":$ENV{PATH}:"!~m|:/usr/sbin:|){ $data{path}.= "/usr/sbin:"; } + if(":$ENV{PATH}:"!~m|:/usr/bin:|){ $data{path}.= "/usr/bin:"; } + if($data{path}){ $data{path} = "PATH=$data{path}\${PATH} && "; } + } + + #---------------------------------------------------------------------- + # Путь к директории calculate, последнюю доступную версию системы + # $data{dir} + #---------------------------------------------------------------------- + { + my $wd = &Cwd::cwd(); + #добавим завершающий слеш в пути если его нет + if(substr($wd,length($wd)-1) ne "/"){$wd.="/";} + #удалим из файла запускаемой программы "./" + my $file = $0; if(substr($file,0,2) eq "./"){$file = substr($file,2);} + #склеим путь текущей директории с выполняемым файлом + my $path; if(substr($file,0,1) eq "/"){ $path = $file; }else{ $path = $wd.$file; } + #проверим на символическую ссылку + my $link = `$data{path} file $path`; chomp $link; #получим информацию о файле запуска + #если это символическая ссылка, сформируем путь + if($link=~m/.+symbolic link to \`([^']+)'$/){ + $link = $1; #путь к файлу + if($link=~m/^\//){ + $path = $link; #фактический путь при указании на прямой путь + }else{ + $path=~s/(.+)\/[^\/]+/$1/; #директория символической ссылки + $path = "$path/$link"; #фактический путь при указании относительного пути в ссылке + } + } + #получим путь к директории calculate + $data{dir} = $path; $data{dir}=~s/(.+)\/[^\/]+/$1/; + $data{dir}=~s/(.+)\/([^\/]+)/$1/; + chdir($data{dir}); + } + return 1; +} + +#------------------------------------------------------------------------------ +# +# Считаем входящие параметры и выполним простые действия +# +#------------------------------------------------------------------------------ +sub getarg{ + #краткое и полное название программы + $data{"calcname"} = "Calculate"; + $data{'calcinstall'} = "$data{calcname} $data{calcver}"; + + #---------------------------------------------------------------------- + # Считаем параметры запуска + # %{$data{arg}} %{$data{par}} + #---------------------------------------------------------------------- + { + my $par = ''; + #извлечем параметры слов + my @arg; foreach(@ARGV){ + if(/^\-\-([^\s=]+)=(.+)$/){ $data{arg}{$1} = $2; $par++;} + elsif(/^\-\-([^\s]+)$/){$data{arg}{$1} = ''; $par++;} + else{push @arg, $_} + } + + #обработаем параметры букв и дополнительные параметры - слова или буквы разделеныне пробелами + foreach(split "-", "@arg"){ + if(!$_){next;} + my ($var, $val, @par) = split " "; + $data{arg}{$var} = "$val"; #параметры букв + if(@par){ + foreach(@par){$data{par}{$_} = '';} #дополнительные параметры + } + $par++; + } + if(!$par){$data{NOPAR}++;} + } + + #Проверим переданные параметры + { + #Допустимые переменные + my %arg = ( + "a" => '', "addition" => '', + "s" => '', "os" => '', + "d" => '', "disk" => '', + "f" => '', "force" => '', + "U" => '', "updateonly" => '', + "P" => '', "profile" => '', + "l" => '', "list" => '', + "c" => '', "configure" => '', + "D" => '', "dependence" => '', + "m" => '', "make" => '', + "p" => '', "pack" => '', + "iso" => '', + "break" => '', + "L" => '', + "M" => '', + #"S" => '', "setup" => '', + #"backup" => '', + "useradd" => '', + "userdel" => '', + "userpasswd" => '', + "groupadd" => '', + "groupdel" => '', + "groupmod" => '', + "mailuseradd" => '', + "mailuserdel" => '', + "mailuserpasswd" => '', +# "mailgroupadd" => '', +# "mailgroupdel" => '', + "u" => '', "update" => '', + "h" => '', "help" => '', + "v" => '', "vars" => '', + "H" => '', "hardware" => '', + "V" => '', "version" => '', + "translate" => '', + "initrd" => '', + "video" => '', + "chroot" => '', + "nodie" => '', #выводить минимум информации показывая неверно завершенную работу + "softly" => '', #не вылетать при ошибке запускаемой программы + "composite" => '', + ); + + my @write = ( + "builderdir", + "cpus", + "domain", + "erase", + "format", + "gateway", + "hostname", + "ldap_base", + "ldap_bind", + "ldap_bindpw", + "ldap_root", + "linuxver", + "makeopts", + "march", + "mbr", + "menuconfig", + "mesline", + "mestitle", + "mount", + "move_fstab", + "nfs", + "ntp", + "patchdir", + "portdir", + "proxy", + "server_url", + "skipfirst", + "swap", + "tmpdir", + "user_comment", + "user_groups", + "useradd", + "userdel", + "mail", + "video_drv", + "video_resolution", + "lang", + "timezone", + "clock", + "composite", + "system", + ); + foreach(@write){$data{write}{$_} ++;} + + #Проверим переменные + foreach(keys %{$data{arg}}){ + if( !defined $arg{$_} && + $_!~/^set\-/i + ){errorarg($_); return "";} + + #Перенесем переданные значения + if($_=~m/^set\-(.+)/){ + if($data{write}{$1}){ + $data{$1} = $data{arg}{$_}; + }else{ + printmes(gettext('Incorrect variable name')); + printmes(" '$1' "); + printmes(gettext('or value cannot be changed')); + printmes(".\n"); + printmes(gettext('Try')); printmes(" 'calculate --vars' "); printmes(gettext('for a print of all variables')); + printmes(".\n"); + beep(); + return ""; + } + }elsif($_=~m/^SET\-(.+)/){ + $data{$1} = $data{arg}{$_}; + } + } + #Допустимые аргументы + my %par = (); + #Проверим аргументы + foreach(keys %{$data{par}}){ + if(!defined $par{$_}){errorarg(-$_); return "";} + } + } + + #---------------------------------------------------------------------- + # Считаем параметры запуска, установим флаги действий + #---------------------------------------------------------------------- + if(defined $data{arg}{'a'} || defined $data{arg}{'addition'}){ + if(!defined $data{arg}{'addition'}){$data{arg}{'addition'} = $data{arg}{'a'}} + $data{CHECKSYSTEM_NOMES}++; $data{builder}++; + $data{addition} = lc($data{arg}{'a'}); + } + if(defined $data{arg}{'s'} || defined $data{arg}{'os'}){ + if(!defined $data{arg}{'os'}){$data{arg}{'os'} = $data{arg}{'s'}} + } + #Флаги установки и обновления системы + if($data{arg}{d} || $data{arg}{'disk'}){ + if(!$data{arg}{'disk'}){$data{arg}{'disk'} = $data{arg}{'d'}} + + } + if(defined $data{arg}{f} || defined $data{arg}{'force'}){ + if(!defined $data{arg}{'force'}){$data{arg}{'force'} = $data{arg}{'f'}} + } + if(defined $data{arg}{U} || defined $data{arg}{'updateonly'}){ + if(!defined $data{arg}{'updateonly'}){$data{arg}{'updateonly'} = $data{arg}{'U'}} + $data{change}++; #флаг производимых в системе изменений + } + if(defined $data{arg}{P} || defined $data{arg}{'profile'}){ + if(!defined $data{arg}{'profile'}){$data{arg}{'profile'} = $data{arg}{'P'}} + $data{CHECKSYSTEM_NOMES}++; $data{change}++; #флаг производимых в системе изменений + } + #Флаги сборки системы + if(defined $data{arg}{l} || defined $data{arg}{'list'}){ + if(!defined $data{arg}{'list'}){$data{arg}{'list'} = $data{arg}{'l'}} + $data{CHECKSYSTEM_NOMES}++; $data{builder}++; + } + if(defined $data{arg}{c} || defined $data{arg}{'configure'}){ + if(!defined $data{arg}{'configure'}){$data{arg}{'configure'} = $data{arg}{'c'}} + $data{builder}++; + } + if(defined $data{arg}{D} || defined $data{arg}{'dependence'}){ + if(!defined $data{arg}{'dependence'}){$data{arg}{'dependence'} = $data{arg}{'D'}} + $data{CHECKSYSTEM_NOMES}++; $data{builder}++; $data{builder_chroot}++; #флаг того что директория chroot должна быть создана предварительно + } + if(defined $data{arg}{m} || defined $data{arg}{'make'}){ + if(!defined $data{arg}{'make'}){$data{arg}{'make'} = $data{arg}{'m'}} + $data{builder}++; $data{builder_chroot}++; + } + if(defined $data{arg}{p} || defined $data{arg}{'pack'}){ + if(!defined $data{arg}{'pack'}){$data{arg}{'pack'} = $data{arg}{'p'}} + $data{CHECKSYSTEM_NOMES}++; $data{builder}++; $data{builder_chroot}++; + } + if(defined $data{arg}{'iso'}){ + $data{CHECKSYSTEM_NOMES}++; $data{builder}++; + } + if(defined $data{arg}{'break'}){ + $data{CHECKSYSTEM_NOMES}++; $data{builder}++; $data{builder_chroot}++; + } + #Сборка дополнений + if(defined $data{arg}{'L'}){ + $data{CHECKSYSTEM_NOMES}++; $data{builder}++; + if($data{arg}{'L'}){$data{addition} = lc($data{arg}{'L'});} + } + if(defined $data{arg}{'M'}){ + $data{CHECKSYSTEM_NOMES}++; $data{builder}++; + if($data{arg}{'M'}){$data{addition} = lc($data{arg}{'M'});} + } + #Настройка сервера +# if(defined $data{arg}{S} || defined $data{arg}{'setup'}){ +# if(!defined $data{arg}{'setup'}){$data{arg}{'setup'} = $data{arg}{'S'}} +# $data{CHECKSYSTEM_NOMES}++; +# } +# if(defined $data{arg}{'backup'}){ +# $data{CHECKSYSTEM_NOMES}++; +# } + if(defined $data{arg}{'useradd'} || defined $data{arg}{'userdel'} || defined $data{arg}{'userpasswd'} || defined $data{arg}{'groupadd'} || defined $data{arg}{'groupdel'} || defined $data{arg}{'groupmod'}){ + $data{CHECKSYSTEM_NOMES}++; + } + if(defined $data{arg}{'mailuseradd'} || defined $data{arg}{'mailuserdel'} || defined $data{arg}{'mailuserpasswd'} || defined $data{arg}{'mailgroupadd'} || defined $data{arg}{'mailgroupdel'}){ + $data{CHECKSYSTEM_NOMES}++; + } + #Флаг обновления системы + if(defined $data{arg}{u} || defined $data{arg}{'update'}){ + if(!defined $data{arg}{'update'}){$data{arg}{'update'} = $data{arg}{'u'}} + $data{CHECKSYSTEM_NOMES}++; + } + #Флаги информационного вывода + if(defined $data{arg}{h} || defined $data{arg}{'help'}){ + if(!defined $data{arg}{'help'}){$data{arg}{'help'} = $data{arg}{'h'}} + } + if(defined $data{arg}{v} || defined $data{arg}{'vars'}){ + if(!defined $data{arg}{'vars'}){$data{arg}{'vars'} = $data{arg}{'v'}} + $data{CHECKSYSTEM_NOMES}++; + } + if(defined $data{arg}{H} || defined $data{arg}{'hardware'}){ + if(!defined $data{arg}{'hardware'}){$data{arg}{'hardware'} = $data{arg}{'H'}} + $data{CHECKSYSTEM_NOMES}++; + } + if(defined $data{arg}{V} || defined $data{arg}{'version'}){ + if(!defined $data{arg}{'version'}){$data{arg}{'version'} = $data{arg}{'V'}} + } + if(defined $data{arg}{'initrd'}){ + $data{CHECKSYSTEM_NOMES}++; + } + if(defined $data{arg}{'video'}){ + $data{CHECKSYSTEM_NOMES}++; + } + + #---------------------------------------------------------------------- + # Выполним информационные команды + #---------------------------------------------------------------------- + if(defined $data{arg}{h} || defined $data{arg}{help}){ + printmes("$data{'calcinstall'}\n\n"); + + printmes(gettext('Usage').": "); + printmes("calculate ["); + printmes(gettext('OPTION')); + printmes("]...\n"); + + printmes("\n".gettext('Installation, compilation and updating of system')); printmes(".\n\n"); + + printmes(gettext('Mandatory arguments to long options are mandatory for short options too').".\n"); + printmes(gettext('Similarly for optional arguments').".\n\n"); + + printmes(gettext('Location').":\n"); + printmes(" -s, --os=[CLD|CLDX|CDS] "); printmes(gettext('select operation system')); printmes(" (Calculate Linux Desktop KDE, Calculate Linux Desktop XFCE, Calculate Directory Server)\n"); + printmes(" -d, --disk=DISK\t"); printmes(gettext('installation or building system volume')."\n"); + printmes(" -f, --force\t\t"); printmes(gettext('do not prompt before overwriting')."\n"); + + printmes("\n".gettext('Installation and Update').":\n"); + printmes(" -a, --addition\t"); printmes(gettext('to establish additions')."\n"); + printmes(" -U, --updateonly\t"); printmes(gettext('perform updates only')."\n"); + printmes(" --set-[var]=value\t"); printmes(gettext('set config files parameter')."\n"); + printmes(" --SET-[var]=value\t"); printmes(gettext('set config files parameter without check')."\n"); + printmes(" -P, --profile=name[,name2...]\t"); printmes(gettext('apply configuration profile (all - all profiles)')."\n"); + + printmes("\n".gettext('System building').":\n"); + printmes(" -l, --list\t\t"); printmes(gettext('show the package list incoming in the distributive file')."\n"); + printmes(" -c, --configure\t"); printmes(gettext('prepare system for building')."\n"); + printmes(" -D, --dependence\t"); printmes(gettext('check of dependences')."\n"); + printmes(" -m, --make\t\t"); printmes(gettext('make system')."\n"); + printmes(" -p, --pack\t\t"); printmes(gettext('pack the distribution package into the archive file')."\n"); + printmes(" --iso\t\t\t"); printmes(gettext('create a loaded iso-image of system')."\n"); + printmes(" --break\t\t"); printmes(gettext('break the system building')."\n"); + + printmes("\n".gettext('Additions assemble').":\n"); + printmes(" -L [value]\t\t"); printmes(gettext('show the package list incoming in the addition')."\n"); + printmes(" -M [value]\t\t"); printmes(gettext('make addition')."\n"); + +# printmes("\n".gettext('Setup server').":\n"); +# printmes(" -S, --setup=[ldap|mail] "); printmes(gettext('setup and run servers')); +# printmes("\n"); #, ftp, squid, apache +# printmes(" --backup\t\t"); printmes(gettext('backup data of working servers')."\n"); + +# printmes("\n".gettext('Access management')); +# printmes("\n ".gettext('User').":\n"); +# printmes(" --useradd=value\t"); printmes(gettext('create a new user account')."\n"); +# printmes(" --userdel=value\t"); printmes(gettext('delete a user account')."\n"); +# printmes(" --userpasswd=value\t"); printmes(gettext('change user password')."\n"); +# +# printmes(" --groupadd=value\t"); printmes(gettext('create a new group')."\n"); +# printmes(" --groupdel=value\t"); printmes(gettext('delete a group')."\n"); +# printmes(" --groupmod=value [--set-useradd=value|--set-userdel=value] "); printmes(gettext('modify a group definition on the system')."\n"); +# +# printmes(" ".gettext('E-Mail').":\n"); +# printmes(" --mailuseradd=value\t"); printmes(gettext('create a new email account')."\n"); +# printmes(" --mailuserdel=value\t"); printmes(gettext('delete a email account')."\n"); +# printmes(" --mailuserpasswd=value "); printmes(gettext('change a email account password')."\n"); +# # printmes(" --mailgroupadd=value\t"); printmes(gettext('create a new email group')."\n"); +# # printmes(" --mailgroupdel=value\t"); printmes(gettext('delete a email group')."\n"); + + printmes("\n".gettext('Updating').":\n"); + printmes(" -u, --update\t\t"); printmes(gettext('download and install latest update available')."\n"); + + printmes("\n".gettext('Informative output').":\n"); + printmes(" -h, --help\t\t"); printmes(gettext('display this help and exit')."\n"); + printmes(" -v, --vars\t\t"); printmes(gettext('config files parameters')."\n"); + printmes(" -H, --hardware\t"); printmes(gettext('show hardware information')."\n"); + printmes(" -V, --version\t\t"); printmes(gettext('output version information and exit')."\n"); + + return ""; + }elsif(defined $data{arg}{V} || defined $data{arg}{version}){ + printmes("Copyright (C) 2006-2008 Calculate Pack\n"); + printmes(gettext('This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.')); printmes ("\n"); + printmes(gettext('Written by')); printmes(" Alexander Tratsevsky\n"); + + return ""; + }elsif(defined $data{arg}{chroot}){ + #выполним сложные команды из chroot-окружения + if(system "$data{arg}{chroot}"){ + if(defined $data{arg}{nodie}){ + die; + }elsif(defined $data{arg}{softly}){ + return ""; + }else{ + die "Error run \"$data{arg}{chroot}\""; + } + } + return ""; + }elsif(defined $data{arg}{translate}){ + printmes(gettext('Update lang translation file')); printmes("... "); + if(-e "/usr/calculate/install"){ + chdir("/usr/calculate/install"); + #выполним локализацию пакета (для разработки) + system "xgettext --join-existing --no-location --sort-output --language=Perl --from-code=UTF-8 --msgid-bugs-address=support@calculate.ru -o i18n/ru_RU/LC_MESSAGES/calculate.po calculate"; + system "msgfmt -o i18n/ru_RU/LC_MESSAGES/calculate.mo i18n/ru_RU/LC_MESSAGES/calculate.po"; + printmes(gettext('done')); printmes(".\n"); + }else{ + printmes(gettext('error')); printmes(".\n"); + } + return ""; + } + + return 1; +} + +#------------------------------------------------------------------------------ +# +# Проверим на ошибки +# +#------------------------------------------------------------------------------ +sub checkerrors{ + #---------------------------------------------------------------------- + # Предопределим диск для установки + # инициируем: $data{data_install_set}, $data{partitions_dev}, $data{partitions_fdisk} + #---------------------------------------------------------------------- + $data{data_install_set} = ""; + $data{partitions_dev} = ""; + $data{partitions_fdisk} = ""; + if($data{arg}{'disk'}){ + if($data{arg}{'disk'}!~m/^(\/dev\/)/ || !-e $data{arg}{'disk'}){ + printmes(gettext('Incorrect partition')); + printmes(" \"$data{arg}{'disk'}\".\n"); + return ""; + }elsif($data{arg}{'disk'}=~/[0-9]$/){ + $data{rootinstall} = $data{arg}{'disk'}; + }else{ + if(`mount | grep "$data{arg}{'disk'}"`){ + printmes(gettext('On the disk is to mount partitions')."!\n"); + beep(); return ""; + } + + #проверим размер диска + my $disk = $data{arg}{'disk'}; + $disk =~m/\/([^\/]+)$/; + $disk = "/sys/block/$1/size"; + if(!-e $disk){ + printmes(gettext('The size of the disk is not defined')."!\n"); + beep(); return ""; + }else{ + open(F, $disk); + my $size = ; + close(F); + chomp $size; + + $size*=512/1024/1024/1024; #переведем в гигабайты + if($size < 45){ + printmes(gettext('The size of the disk is not sufficient to perform automatic partitioning')."!\n"); + beep(); return ""; + } } + + $data{rootinstall} = $data{arg}{'disk'}."2"; #устанавливаем во второй раздел диска + $data{data_install_set} = $data{arg}{'disk'}."5"; #раздел данных пятый + $data{partitions_dev} = $data{arg}{'disk'}; + $data{partitions_fdisk} = + " /var/calculate auto noatime 0 0\n". + "/var/calculate/home /home auto bind 0 0\n". + "/var/calculate/share /usr/calculate/share auto bind 0 0\n\n"; + } } + + #---------------------------------------------------------------------- + # Проверим id пользователя, запустившего скрипт + #---------------------------------------------------------------------- + { + my $id = `$data{path} id -u`; chomp $id; + if($id > 0){ + printmes(gettext('Only root can perform system installation')."!\n"); + $data{NOLOG}++; #отключим лог, т.к. мы все равно в него ничего не сможем записать + beep(); return ""; + } } + + #---------------------------------------------------------------------- + # Определим и проверим директорию установки, директорию временных файлов + #---------------------------------------------------------------------- + if(!$data{tmpdir}){ + if(defined $data{arg}{'iso'}){ + $data{tmpdir} = "/var/calculate/tmp"; + }else{ + $data{tmpdir} = "/var/calculate/tmp"; + } + } + + if(!$data{mount} && !defined $data{addition}){ + if(!$data{builder}){ + $data{mount} = "/mnt/install"; + }else{ + $data{mount} = "/mnt/builder"; + } } + + if(!defined $data{arg}{'iso'}){ + $data{'chroot'} = $data{mount}; + }else{ + $data{'chroot'} = "$data{tmpdir}/livecd"; + } + + if(-e $data{mount} && !$data{builder_chroot} && !defined $data{arg}{'vars'} && !defined $data{arg}{'list'} && !defined $data{arg}{'iso'}){ + system "$data{path} rmdir $data{mount}" + } + + if(-e $data{mount} && !$data{builder_chroot} && !defined $data{arg}{'vars'} && !defined $data{arg}{'list'} && !defined $data{arg}{'iso'}){ + printmes(gettext('Error')."! "); + printmes(gettext('For continuation please remove directory')); + printmes(" $data{mount} "); + printmes(gettext('created by installer')."!\n"); + beep(); return ""; + }elsif($data{builder_chroot} && !defined $data{arg}{'vars'}){ + my $mounts = 0; + foreach(`$data{path} mount`){ + if(/on\s+($data{chroot}\/[^\s]+)/){ + $mounts++; + } } + if($mounts < 4){ + printmes(gettext('For performance of operation it is necessary to configure system')); printmes(".\n"); + printmes(gettext('Execute with parameter')); printmes(" \"--configure\".\n"); + beep(); return ""; + } } + return 1; +} + +#------------------------------------------------------------------------------ +# +# Определим систему для установки или сборки +# +#------------------------------------------------------------------------------ +sub welcome{ + #---------------------------------------------------------------------- + # Определим наименование устанавливаемой или обновляемой системы + # %{$data{ver}}, $data{'calculate'}, $data{'calculatename'} + #---------------------------------------------------------------------- + #обозначение зарезервированных версий систем + %{$data{ver}} = ( + CLD => "Calculate Linux Desktop", + CLDX => "Calculate Linux Desktop", + CDS => "Calculate Directory Server", + ); + %{$data{ver_desktop}} = ( + CLD => "KDE", + CLDX => "XFCE", + ); + + #если передан параметр выбора системы, установим значения + if($data{arg}{'os'}){ + if($data{ver}{ uc($data{arg}{'os'}) }){ + $data{'calculate'} = uc($data{arg}{'os'}); + $data{'calculatename'} = $data{ver}{$data{calculate}}; + }else{ + $data{'calculate'} = $data{arg}{'os'}; +# if(lc($data{'calculate'}) eq 'acoola'){$data{'calculate'} = "AcoolA";} + $data{'calculatename'} = $data{'calculate'}; + } + #в противном случае определим по текущей + #новым способом + }elsif(getini(calculate)){ + if($data{builder} && !defined $data{addition} && getini(calculate, 'chroot')){ + $data{calculate} = getini(calculate, 'chroot'); + }else{ + $data{calculate} = getini(calculate); + } + $data{'calculatename'} = $data{ver}{$data{calculate}}; + if(!$data{'calculatename'}){$data{'calculatename'} = $data{calculate}} + + #старым способом (из issue-файла) + }else{ + my $path = "/etc/issue"; + my $chk; + if($data{builder} && `$data{path} mount | grep "$data{'chroot'} "` && -e $data{'chroot'}.$path){ + $path = $data{'chroot'}.$path; + $chk = 'continue'; + }elsif(-e $path){ + $chk = 'building'; + } + + #если файл с версией системы найден, определим версию + if($chk && `$data{path} cat $path | grep "Welcome to "`=~m#Welcome to \\n.\\O \(([a-zA-Z ]+) ([^\s\)]+)#){ + my $issuename = $1; #имя дистрибутива извлеченное из issue + foreach(keys %{$data{ver}}){ + if($data{ver}{$_} eq $issuename){ + $data{'calculate'} = $_; + $data{'calculatename'} = $data{ver}{$data{calculate}}; + last; + } } + #если имя не определено, но оно новое и мы его уже передали параметром --configure + #if($data{builder} && !$data{'calculate'} && $chk eq 'continue'){ + if(!$data{'calculate'}){ + $data{'calculatename'} = $issuename; + if($issuename=~m/ /){ + #сократим название, разделенное пробелами + foreach(split / /, $issuename){ + $data{'calculate'} .= substr($_, 0, 1); + } + }else{ + $data{'calculate'} = $issuename; + } + } + } + + #устанавливаемая или собираемая система по умолчанию + if(!$data{'calculate'}){ + $data{'calculate'} = "CLD"; + $data{'calculatename'} = $data{ver}{$data{calculate}}; + } + } + if($data{'calculate'}=~m/^CLD/){ + @{$data{other}}{'calculatesubname'} = ["KDE", "XFCE"]; + $data{'calculatesubname'} = $data{ver_desktop}{$data{calculate}}; + } + + #---------------------------------------------------------------------- + # Получим тип системы + # $data{system} + #---------------------------------------------------------------------- + if($data{'calculatename'}=~m/server/i || + $data{'system'}=~m/server/i + ){ + $data{'system'} = 'server' + }else{ + $data{'system'} = 'desktop' + } + + #---------------------------------------------------------------------- + # Приветственное сообщение + #---------------------------------------------------------------------- + if($data{builder}){ + printmes(gettext('Building')); printmes(" $data{'calculatename'}\n"); + }elsif( + !defined $data{arg}{update} && + !defined $data{arg}{'vars'} && + !defined $data{arg}{'hardware'} && + !defined $data{arg}{'profile'} && + !defined $data{arg}{'setup'} && + !defined $data{arg}{'backup'} && + !defined $data{arg}{'useradd'} && + !defined $data{arg}{'userdel'} && + !defined $data{arg}{'userpasswd'} && + !defined $data{arg}{'groupadd'} && + !defined $data{arg}{'groupdel'} && + !defined $data{arg}{'groupmod'} && + !defined $data{arg}{'mailuseradd'} && + !defined $data{arg}{'mailuserdel'} && + !defined $data{arg}{'mailuserpasswd'} +# && +# !defined $data{arg}{'mailgroupadd'} && +# !defined $data{arg}{'mailgroupdel'} + ){ + printmes(gettext('Installation')); + printmes(" $data{calculatename}\n"); + }else{ + printmes("$data{calcinstall}\n"); + } +} + +#------------------------------------------------------------------------------ +# +# Соберем сведения о системе +# +#------------------------------------------------------------------------------ +sub checksystem{ + #отключим вывод сообщений + if($data{CHECKSYSTEM_NOMES}){ + $data{NOMES}++; + }; + printmes(gettext('Collecting system information')."\n"); + + #---------------------------------------------------------------------- + # Выполним проверки доступности необходимых программ и определим пути + # $data{exec_host}, $data{exec_nmap} + #---------------------------------------------------------------------- + if(!system "which host >/dev/null 2>&1"){$data{exec_host} = `which host`; chomp $data{exec_host};} + if(!system "which nmap >/dev/null 2>&1"){$data{exec_nmap} = `which nmap`; chomp $data{exec_nmap};} + if(!system "which wget >/dev/null 2>&1"){$data{exec_wget} = `which wget`; chomp $data{exec_wget};} + #---------------------------------------------------------------------- + # Считаем параметры ядра + #---------------------------------------------------------------------- + if(-e "/proc/cmdline"){ + #считаем параметры + open(F, '/proc/cmdline'); + my $cmdline = ; + close(F); + chomp $cmdline; $cmdline.=' '; + #разобьем на переменные + foreach(split / /,$cmdline){ + if(/^calculate=(.+)/){ + #разобьем на значения передаваемые для calculate + ( + $data{boot}{lang}, + $data{boot}{keybd}, + $data{boot}{timezone}, + $data{boot}{video_resolution}, + ) = split /,/,$1; + $data{boot}{set}++; + } } } + + #---------------------------------------------------------------------- + # Определим хэши паролей root/root, guest/guest + # $data{hash_root}, $data{hash_guest} + #---------------------------------------------------------------------- + $data{hash_root} = 'root:$1$JMvNh5xg$VnV1DyJdTcwuZ0hp5YiJG0:14349:0:::::'; + $data{hash_guest} = 'guest:$1$uSceexyH$vLQn4kh7NUzNqZtlrgEWF.:14349:0:99999:7:::'; + + #---------------------------------------------------------------------- + # Определим тип операции + # $data{pass} + #---------------------------------------------------------------------- + @{$data{other}}{'pass'} = ["profile", "builder", "install"]; + if(defined $data{arg}{'profile'} || defined $data{arg}{'setup'}){ + $data{pass} = "profile"; + }elsif($data{builder}){ + $data{pass} = "builder"; + }else{ + $data{pass} = "install"; + } + + if(!$data{builder}){ + if($data{erase} =~m/off/i ||$data{erase} =~m/no/i){ + $data{erase} = "off"; + }else{ + $data{erase} = "on"; + } + }else{$data{erase} = "on";} + + #---------------------------------------------------------------------- + # Определим номер версии клиента + # $data{client} + #---------------------------------------------------------------------- + $data{client} = ""; + my $clientfile = "/usr/lib/calculate/calculate-client/pym/cl_vars_client.py"; + if($data{pass} eq "profile" && -e $clientfile){ + $data{client} = `$data{path} cat $clientfile | grep " cl_ver "`; + $data{client}=~s/.+'Calculate-client\s+([0-9\.]+).+/$1/; + chomp $data{client}; + } + + #---------------------------------------------------------------------- + # Флаг включения композитного режима + #---------------------------------------------------------------------- + if(!$data{composite} && -e '/var/log/Xorg.0.log'){ + open(F, '/var/log/Xorg.0.log'); + foreach(){ + if(m/Composite.*enabled/){$data{composite} = 'on'; last;} + } + close(F); + if(!$data{composite}){ $data{composite} = 'off'; } + }elsif($data{composite}=~m/on/i || $data{composite}=~m/yes/i || $data{composite}=~m/true/i){ + $data{composite} = 'on'; + }else{ $data{composite} = 'off'; } + + #---------------------------------------------------------------------- + # Флаг выполнения make menuconfig ядра при сборке системы, + # флаг пропуска первого пакета при возобновлении сборки. + # $data{menuconfig}, $data{skipfirst} + #---------------------------------------------------------------------- + if($data{builder}){ + if(!$data{menuconfig} || $data{menuconfig}=~m/^yes$/i || $data{menuconfig}=~m/^on$/i){ + $data{menuconfig} = "on"; + }else{ + $data{menuconfig} = "off"; + } + if(!$data{skipfirst} || $data{skipfirst}=~m/^no$/i || $data{skipfirst}=~m/^off$/i){ + $data{skipfirst} = "off"; + }else{ + $data{skipfirst} = "on"; + } + } + + #---------------------------------------------------------------------- + # Определим графический режим фреймбуфера + #---------------------------------------------------------------------- + if(-e "/sys/class/graphics/fb0"){ + $data{fb} = 'vesa'; + }else{ + $data{fb} = 'console'; + } + + #---------------------------------------------------------------------- + # Язык, локаль, консольный шрифт + # http://gentoo-wiki.com/TIP_Speak_Your_Language + #---------------------------------------------------------------------- + #system: locale, keymap, dumpkeys_charset, consolefont, consoletranslation, xkblayout + #KDE: kb_groups, kb_layout, country, language, dictionary + my %lang = ( + #Belarussian + 'be_BY' => ["be_BY.UTF-8", "by", "koi8-u", "Cyr_a8x16", "", "us,by", + "by(winkeys):us", "us,by(winkeys)", "by", "ru", "ru"], + #Belgian + 'fr_BE' => ["fr_BE.UTF-8", "be-latin1", "", "lat9w-16", "", "us,be", + "", "us,be", "be", "en_US", "en"], + #Brazilian Portuguese + 'pt_BR' => ["pt_BR.UTF-8", "br-abnt2", "", "lat9w-16", "", "pt,us", + "", "us,pt", "br", "pt_BR", "en"], + #Canadian French + 'fr_CA' => ["fr_CA.UTF-8", "cf", "", "default8x16", "8859-1_to_uni", "us,ca_enhanced", + "", "us,ca(fr)", "ca", "en_US", "en"], + #Danish + 'da_DK' => ["da_DK.UTF-8", "dk-latin1", "", "lat0-16", "", "us,dk", + "", "us,dk", "dk", "da", "da"], + #French + 'fr_FR' => ["fr_FR.UTF-8", "fr-latin9", "", "lat0-16", "", "fr,us", + "", "us,fr(latin9)", "fr", "en_US", "en"], + #German + 'de_DE' => ["de_DE.UTF-8", "de-latin1", "", "lat9w-16", "", "de,us", + "", "us,de", "de", "de", "de"], + #Icelandic + 'is_IS' => ["is_IS.UTF-8", "is-latin1", "", "cp850-8x16", "8859-1_to_uni", "us,is", + "", "us,is", "is", "en_US", "en"], + #Italian + 'it_IT' => ["it_IT.UTF-8", "it", "", "default8x16", "8859-15_to_uni", "us,it", + "", "us,it", "it", "it", "it"], + #Norwegian + 'nn_NO' => ["nn_NO.UTF-8", "no-latin1", "", "lat9w-16", "", "us,no", + "", "us,no", "no", "nn", "en"], + #Polish + 'pl_PL' => ["pl_PL.UTF-8", "pl", "", "lat2-16", "8859-2_to_uni", "us,pl", + "", "us,pl", "pl", "pl", "pl"], + #Russian + 'ru_RU' => ["ru_RU.UTF-8", "-u ru4", "koi8-r", "ter-k14n", "", "us,ru(winkeys)", + "ru(winkeys):us", "us,ru(winkeys)", "ru", "ru", "en"], + #Spanish + 'es_ES' => ["es_ES.UTF-8", "es euro2", "", "lat0-16", "", "es,us", + "", "us,es", "es", "es", "es"], + #Swedish + 'sv_SE' => ["sv_SE.UTF-8", "sv-latin1", "", "lat0-16", "", "us,se", + "", "us,se", "se", "sv", "sv"], + #Ukrainian + 'uk_UA' => ["uk_UA.UTF-8", "ua-utf", "koi8-u", "ter-v14n", "", "us,ua", + "ua(winkeys):us", "us,ua(winkeys)", "ua", "uk", "uk"], + #United Kingdom/British + 'en_GB' => ["en_GB.UTF-8", "uk", "", "default8x16", "", "us,gb", + "", "us,gb", "gb", "en_US", "en_GB"], + #United State/English + 'en_US' => ["en_US.UTF-8", "us", "", "default8x16", "", "us", + "", "us", "us", "en_US", "en_US"], + ); + #поддержка языков в приложениях + #$data{linguas} = "be be_BY da de en en_GB es fr it nb nn pl pt_BR ru se sv uk"; + $data{linguas} = "en de es fr pt_BR ru uk"; + + @{$data{other}}{lang} = ["pt_BR", "de_DE", "en_US", "es_ES", "fr_FR", "ru_RU", "uk_UA"]; + + if(!$data{lang} && $data{boot}{lang}){ + $data{lang}=$data{boot}{lang}; + }elsif(!$data{lang}){ + if(!$data{builder}){ + $ENV{LANG}=~m/^([^\.]+)\./; + $data{'lang'} = $1; + }else{ + $data{'lang'} = 'en_US'; + } } + + #проверим на корректность введенного значения и на наличие поддержки + if(!$lang{$data{lang}}){$data{lang}="en_US";} + + #установим раскладку + my $changekb; + if($data{boot}{keybd}){$changekb = $data{boot}{keybd};} + else{ + #получим раскладку из файла /etc/conf.d/keymaps + if(-e '/etc/conf.d/keymaps'){ + open(F, '/etc/conf.d/keymaps'); + foreach(){ + if(m/^KEYMAP="?([^"\n]+)"?/){ + my $keymap = $1; + foreach(keys %lang) { + if( $lang{$_}[1] eq $keymap ) { + $changekb = $_; + last; + } } + last; + } } + close(F); + } + + if($data{'arg'}{'set-lang'} || $data{'arg'}{'SET-lang'} || !$changekb){ + $changekb = $data{lang}; + } + } + + #выберем язык и раскладку + ($data{'locale'}, + #$data{'keymap'}, + #$data{'dumpkeys_charset'}, + #$data{'consolefont'}, + #$data{'consoletranslation'}, + #$data{'xkblayout'}, + #$data{'kb_groups'}, + #$data{'kb_layout'}, + #$data{'country'}, + $data{'language'}, + $data{'dictionary'} + ) = @{$lang{$data{lang}}}[0,9..10]; + + (#$data{'locale'}, + $data{'keymap'}, + $data{'dumpkeys_charset'}, + $data{'consolefont'}, + $data{'consoletranslation'}, + $data{'xkblayout'}, + $data{'kb_groups'}, + $data{'kb_layout'}, + $data{'country'}, + #$data{'language'}, + #$data{'dictionary'} + ) = @{$lang{$changekb}}[1..8]; + + printmes(" ".gettext('Language')); printmes(": $data{lang}\n"); + printmes(" ".gettext('Keymap')); printmes(": $changekb\n"); + + #---------------------------------------------------------------------- + # Временная зона + #---------------------------------------------------------------------- + #Системное время в гринвиче или локальное "UTC" или "local" + if(!$data{clock} && -e "/etc/conf.d/hwclock"){ + my $clock = `$data{path} cat /etc/conf.d/hwclock | grep "CLOCK="`; + if($clock){ + $clock=~m/\"([^\"]+)\"/; + $data{clock} = $1; + } } + if(!$data{clock} && -e "/etc/conf.d/clock"){ + my $clock = `$data{path} cat /etc/conf.d/clock | grep "CLOCK="`; + if($clock){ + $clock=~m/\"([^\"]+)\"/; + $data{clock} = $1; + } } + if($data{clock}=~m/utc/i){$data{clock} = "UTC";} + else{$data{clock} = "local";} + + + if(!$data{timezone} && $data{boot}{timezone}){$data{timezone} = $data{boot}{timezone}} + else{ + if(!$data{timezone} && -e "/etc/timezone"){ + $data{timezone} = `$data{path} cat /etc/timezone`; + chomp $data{timezone}; + } + if(!$data{timezone} && -e "/etc/conf.d/clock"){ + my $timezone = `$data{path} cat /etc/conf.d/clock | grep "TIMEZONE="`; + if($timezone){ + $timezone=~m/\"([^\"]+)\"/; + $data{timezone} = $1; + } } + if(!$data{timezone} || ($data{timezone} && !-e "/usr/share/zoneinfo/$data{timezone}")){ + $data{timezone} = "UTC"; + } } + + printmes(" ".gettext('Timezone')); printmes(": $data{timezone}\n"); + + #---------------------------------------------------------------------- + # Установим значение переменной в ram, в случае если установка профиля + # производится в оперативную память (настройка сеанса CDROM), а также + # load - носитель в значение ram в случае загрузки с CD/DVD + # $data{location} + #---------------------------------------------------------------------- + $data{location} = ""; + $data{load} = ""; + if(`mount | grep "/dev/loop/0 on / type"` || + `mount | grep "/dev/loop0 on / type"` || + `mount | grep "/dev/loop0 on /newroot/mnt/livecd type"` + ){ + if(defined $data{arg}{'profile'}){ + $data{location} = "ram"; + } + $data{load} = "ram"; + } + + #---------------------------------------------------------------------- + # Сгенерируем случайное время в минутах + #---------------------------------------------------------------------- + $data{rand_min} = sprintf("%.0f", rand() * 59); + + #---------------------------------------------------------------------- + # Считаем имя компьютера + # $data{hostname} + #---------------------------------------------------------------------- + printmes(" ".gettext('Computer name')); + if(!$data{hostname}){ + $data{hostname} = `$data{path} hostname -s 2>&1`; + #упрощенный вариант, следует выполнять только если не указан домен в системе + if($data{hostname}=~m/^hostname: /){ + $data{hostname} = `$data{path} hostname 2>&1`; + } + if($data{hostname}=~m/^hostname: /){ + $data{hostname} = $data{calculate}; + printmes(": <"); printmes(gettext('undefined')); printmes(">\n"); + }else{ + chomp $data{hostname}; + if($data{hostname} eq 'livecd'){$data{hostname} = $data{calculate};} + printmes(": $data{hostname}\n"); + } + }else{ + printmes(": $data{hostname}\n"); + } + + #---------------------------------------------------------------------- + # Определим домен + # $data{domain} + #---------------------------------------------------------------------- + if(!$data{domain}){ + $data{domain} = `$data{path} hostname -d 2>&1`; + if($data{domain}=~m/^hostname: /){$data{domain} = "local";}else{chomp $data{domain};} + } + if($data{domain} ne 'local'){ + printmes(" ".gettext('Domain name')); printmes(": $data{domain}\n"); + } + + #---------------------------------------------------------------------- + # Параметры пользователя по умолчанию + #---------------------------------------------------------------------- + if(!$data{user_comment}){$data{user_comment} = "CDS User";} + if(!$data{user_groups}){$data{user_groups} = "";} + if(!$data{mail} && $data{arg}{'mailuseradd'}){ + $data{mail} = "$data{arg}{'mailuseradd'}\@$data{hostname}.$data{domain}"; + }elsif($data{mail} && $data{mail}!~m/\@/ && $data{domain}){ + $data{mail} = "$data{mail}\@$data{hostname}.$data{domain}"; + } + + #---------------------------------------------------------------------- + # Определим сетевые настройки: + # шлюз, локальные интерфейсы, локальные сети, настройки /etc/conf.d/net, + # сетевые устройства + # $data{gateway}, $data{hostsallow}, $data{networks}, $data{netconf}, + # $data{net_*} = on|off + #---------------------------------------------------------------------- + if(!$data{gateway}){ + my $route = `$data{path} route -n | grep "^0.0.0.0"`; + chomp $route; + $route=~m/^0\.0\.0\.0\s+([0-9\.]+)\s.+\s+([^\s]+)$/; + if($1){ + $data{gateway} = $1; + $data{gateway_dev} = $2; + } + } + { + printmes(" ".gettext('Network devices')); printmes(":"); + #http://krow.net/dict/subnet.html + my %net = ( + "255.255.0.0" => "/16", + "255.255.255.0" => "/24", + "255.255.255.128" => "/25", + "255.255.255.192" => "/26", + "255.255.255.252" => "/30", + "255.255.255.255" => "", + ); + + #обнулим переменные + my $sp = ""; my $dev = ""; my $dev_open = 1; my $br; my $gateway_dhcp; + $data{netconf} = ""; $data{hostsallow} = ""; $data{networks} = ""; + foreach(`ifconfig -a`){ + #девайс + if(/^([^\s]+)\s+.*Ethernet/){ + if($dev_open == 0){ + printmes("$br $dev (off)"); + $data{"net_$dev"} = "off"; + $br = ","; + } + $dev_open = 0; #девайс выключен, если не будет другой информации + $dev = $1; + } + if(/inet addr:([0-9\.]+).+Bcast:.+Mask:([0-9\.]+)/){ + my $addr = $1; my $mask = $2; + my @ip = split /\./, $addr; + if( + $ip[0] == 10 || + ($ip[0] == 172 && $ip[1] >= 16 && $ip[1] <= 31) || + ($ip[0] == 192 && $ip[1] == 168) + ){ + $data{hostsallow} .= $sp.$addr.$net{$mask}; + #определим сеть + if($mask eq "255.255.255.255"){ + $data{networks} .= $addr; + }elsif($mask eq "255.255.255.252"){ + $data{networks} .= "$ip[0].$ip[1].$ip[2].252".$net{$mask}; + }elsif($mask eq "255.255.255.192"){ + $data{networks} .= "$ip[0].$ip[1].$ip[2].192".$net{$mask}; + }elsif($mask eq "255.255.255.128"){ + $data{networks} .= "$ip[0].$ip[1].$ip[2].128".$net{$mask}; + }elsif($mask eq "255.255.255.0"){ + $data{networks} .= "$ip[0].$ip[1].$ip[2].0".$net{$mask}; + }elsif($mask eq "255.255.0.0"){ + $data{networks} .= "$ip[0].$ip[1].0.0".$net{$mask}; + } + $sp = " "; + #определим получен ли IP через DHCP + if( + !-e "/var/lib/dhcpcd/dhcpcd-$dev.info" && + !(-e "/var/lib/dhcp/dhclient.leases" && `grep $dev /var/lib/dhcp/dhclient.leases`) && + !-e "/var/lib/dhcpcd/dhcpcd-$dev.lease" + ){ + $data{netconf} .= "\nconfig_$dev=( \"$addr$net{$mask}\" )"; + printmes("$br $dev ($addr)"); + }else{ + $data{netconf} .= "\nconfig_$dev=( \"dhcp\" )"; + if($dev eq $data{gateway_dev}){ + $gateway_dhcp++; + } + printmes("$br $dev (DHCP)"); + } + $data{"net_$dev"} = "on"; + $br = ","; + }else{ + $data{netconf} .= "\nconfig_$dev=( \"$addr$net{$mask}\" )"; + } + $dev_open = 1; + $data{netconf} .= "\nmodules_eth0=( \"!plug\" )"; + } } + if($dev_open == 0){ + printmes("$br $dev (off)"); + $data{"net_$dev"} = "off"; + } + + if($data{gateway_dev} && !$gateway_dhcp){ + $data{netconf} .= "\nroutes_$data{gateway_dev}=( \"default gw $data{gateway}\" )"; + } + + printmes("\n"); + } + + if(!$data{netconf} && $data{load} eq "ram"){ + $data{netconf} = "\nconfig_eth0=( \"dhcp\" )"; + } + + #---------------------------------------------------------------------- + # Получим версию обновляемой, наличие обновлений, название + # устанавливаемой системы + # $data{os}, $data{ospatch}, $data{ospatchsplit}, $data{linuxold} + #---------------------------------------------------------------------- + $data{os} = ''; $data{ospatch} = ''; $data{ospatchsplit} = ''; + $data{linuxold} = ''; + if(!$data{builder} || defined $data{addition} || defined $data{arg}{'iso'}){ + printmes(" ".gettext('Installed system').": "); + if(getini(calculate) && getini(linuxver)){ + $data{linuxold} = $data{ver}{getini(calculate)}; + $data{os} = getini(linuxver); + printmes("$data{linuxold} $data{os}\n"); + if(getini(ospatch)){ + $data{ospatch} = getini(ospatch); + printmes(" ".gettext('Update')); printmes(": $data{ospatch}\n"); + $data{ospatchsplit} = "-"; + } + + #для совместимости со старыми инсталляциями, проверим файл /etc/issue + }elsif(-e "/etc/issue" && `$data{path} cat /etc/issue | grep "Welcome to "`=~m#Welcome to \\n.\\O \(([a-zA-Z ]+) ([^\s\)]+)#){ + $data{linuxold} = $1; + { + my ($os, $patch) = split /-/, $2; #обрежем обновления + if($os > 0){ + $data{os} = "$os"; + if($patch){$data{ospatch} = $patch;} + } } + if(!$data{linuxold}){$data{linuxold} = $data{calcname};} + printmes("$data{linuxold} $data{os}\n"); + + if($data{ospatch}){ + printmes(" ".gettext('Update')); printmes(": $data{ospatch}\n"); + $data{ospatchsplit} = "-"; + } + }elsif(-e "/etc/gentoo-release"){ + $data{linuxold} = "Gentoo Linux"; + printmes("$data{linuxold}\n"); + }else{ + $data{linuxold} = "Old Linux"; + printmes("<"); printmes(gettext('undefined')); printmes(">\n"); + } } + + printmes(gettext('Hardware')."\n"); + #---------------------------------------------------------------------- + # Получим производителя оборудования + # $data{vendor}, $data{laptop}, $data{laptop_model} + # $data{board_model}, $data{board_vendor} + #---------------------------------------------------------------------- + $data{laptop} = ""; + if(-e "/sys/class/dmi/id/chassis_vendor" + ){ + $data{vendor} = `cat /sys/class/dmi/id/chassis_vendor`; chomp($data{vendor}); + + if($data{vendor}=~m/^\s+$/ || $data{vendor}=~m/Chassis Manufacture/){ + $data{vendor} = 'Chassis Manufacture'; + } + + if(-e "/sys/class/dmi/id/board_name" && + (`cat /sys/class/dmi/id/board_name | grep "Portable PC"` || + `lshal -u /org/freedesktop/Hal/devices/computer | grep system.formfactor | grep laptop` || + `lshal -u /org/freedesktop/Hal/devices/computer | grep system.chassis.type | grep Notebook` + ) + ){ + $data{laptop} = lc($data{vendor}); + $data{laptop_model} = `cat /sys/class/dmi/id/product_name`; + chomp ($data{laptop_model}); + }elsif(-e "/sys/class/dmi/id/board_name" && -e "/sys/class/dmi/id/board_vendor"){ + $data{board_model} = `cat /sys/class/dmi/id/board_name`; + chomp ($data{board_model}); + $data{board_vendor} = `cat /sys/class/dmi/id/board_vendor`; + chomp ($data{board_vendor}); + } + } + + #---------------------------------------------------------------------- + # Получим архитектуру процессора, файл stage, маску нестабильных файлов + # $data{march}, $data{stage}, $data{unmask} + #---------------------------------------------------------------------- + { + @{$data{other}}{'march'} = ["i686", "x86_64"]; + + printmes(" ".gettext('Machine hardware name')); printmes(":"); + my $march = `$data{path} uname -m`; chomp $march; + if($data{march} && $data{march} ne $march){ + $data{dif_march} = "yes"; #флаг установки другой архитектуры + }elsif(!$data{march}){ + $data{march} = $march; + } + printmes(" $data{march}\n"); + } + if($data{march} eq 'i686'){ + if($data{builder}){ + $data{stage} = "stage3-i686"; + } + $data{unmask} = "~x86"; + } + elsif($data{march} eq 'x86_64'){ + if($data{builder}){ + $data{stage} = "stage3-amd64"; + } + $data{unmask} = "~amd64"; + } + elsif(!defined $data{arg}{'vars'}){ + printmes("\n"); + printmes(gettext('Machine hardware name')); + printmes(" $data{march} "); + printmes(gettext('not supported')); printmes(".\n"); + + printmes(gettext('Use value')); + printmes(": \"i686\", \"x86_64\""); + printmes(".\n"); + + beep(); + exit; + } + + #---------------------------------------------------------------------- + # Определим версию последнего доступного образа системы, либо версию + # собираемого образа, имя файла с образом, имя ISO-файла, который можно + # собрать + # $data{linuxver}, $data{linux}, $data{iso} + #---------------------------------------------------------------------- + #наложение профиля + if(defined $data{arg}{'profile'}){ + $data{linuxver} = $data{os}; + #сборка системы + }elsif($data{builder} && !defined $data{arg}{'iso'} && !defined $data{addition}){ + if(!$data{linuxver}){ + if(getini("linuxver", "chroot")){ + $data{linuxver} = getini("linuxver", "chroot"); + }else{ + my $time = timelocal(localtime); + my ($month, $year) = (localtime($time))[4,5]; $month += 1; $year-=100; + $data{linuxver} = "$year.$month"; + + my $point, $subver; + while (-e + "/usr/calculate/share/linux/". + lc($data{'calculate'})."-$data{linuxver}". + $point.$subver. + "-$data{march}.tar.bz2" || + -e + "/usr/calculate/share/linux/". + lc($data{'calculate'})."-$data{linuxver}". + $point.$subver. + "-$data{march}.tar.lzma" || + -e + "/usr/calculate/share/linux/". + lc($data{'calculate'})."-$data{linuxver}". + $point.$subver. + "-$data{march}.tar.7z" || + -e + "/usr/calculate/share/linux/". + lc($data{'calculate'})."-$data{linuxver}". + $point.$subver. + "-$data{march}.iso" + ){ + $point = "."; + $subver+=1; + } + $data{linuxver} = "$data{linuxver}$point$subver"; + } } + $data{linux} = lc($data{'calculate'})."-$data{linuxver}-$data{march}.tar.bz2"; + #установка системы + }elsif(-e "/usr/calculate/share/linux" && $data{load} ne "ram"){ + my $find = "\/".lc($data{'calculate'})."\-.*\-$data{march}\."; + my $ver = lc($data{'calculate'})."-\([^-]+)-$data{march}"; #шаблон сравнения + my $mask; if(!defined $data{arg}{iso}){ + $mask = "iso|tar\.7z|tar\.lzma|tar\.bz2"; + }else{ + $mask = "tar\.7z|tar\.lzma|tar\.bz2"; + } + foreach(`$data{path} find "/usr/calculate/share/linux/"`){ + if(/$find($mask)$/){ + chomp; + my $path = $_; + if(!$data{linux}){$data{linux} = $path; next;} + #выделим номера сравниваемых версий + $path=~m/$ver/; + my $change = $1; + $data{linux}=~m/$ver/; + my $cur = $1; + if(number_ver($cur) < number_ver($change)){$data{linux} = $path;} + } } + #обрежем путь + $data{linux}=~s/^.*\/([^\/]+)$/$1/; + #выделим номер версии + $data{linux}=~m/^[^\-]+\-([^\-]+)\-.+/; + $data{linuxver} = $1; + if(!$data{iso} && $data{linuxver}){ + $data{iso} = lc($data{'calculate'})."-$data{linuxver}-$data{march}.iso"; + }else{$data{iso} = "";} + }elsif($data{load} eq "ram" && + ( + -e "/mnt/livecd" || + `mount | grep "/dev/loop0 on /newroot/mnt/livecd type"` + ) + ){ + $data{linuxver} = $data{os}; + $data{linux} = "livecd"; + } + + #---------------------------------------------------------------------- + # Определим пакет тем для собираемой системы + # $data{themes} + #---------------------------------------------------------------------- + if($data{builder}){ + $data{themes} = "media-gfx/calculate-". + lc($data{calculate})."-themes-$data{linuxver}"; + $data{themes}=~s/(.+\.?[^\.]+)(\.[0-9]+)?/$1/; #обрежем подверсию + } + + #---------------------------------------------------------------------- + # Пути к архиву образа + #---------------------------------------------------------------------- + #пути к архивам систем + $data{linuxdir} = "/usr/calculate/share/linux"; + + #---------------------------------------------------------------------- + # Определим количество процессоров + # $data{cpus} + #---------------------------------------------------------------------- + { + if(!$data{cpus}){ + my (@cpus) = `$data{path} cat /proc/cpuinfo | grep processor`; + $data{cpus} = @cpus; + } + printmes(" ".gettext('Quantity processors')); printmes(": ".$data{cpus}."\n"); + } + + #---------------------------------------------------------------------- + # Определим видеоадаптер + # $data{video}, $data{video_drv} + #---------------------------------------------------------------------- + { + @{$data{other}}{video_drv} = [ + "fglrx", + "intel", + "nv", + "nvidia", + "radeon", + "vesa", + "vboxvideo", + "vmware" + ]; + + my @video = `$data{path} lspci | grep VGA`; + foreach(`$data{path} lspci | grep VGA`){ + my $video = $_; + #определим BusID + $video=~m/^(.{2}):(.{2})\.([^\s+])/; + $data{video_id} = "$1:$2:$3"; + if($video=~m/GeForce/ || $video=~m/nVidia/){ + if($video=~m/\[([^\]]+)\]/){$data{video} = $1;} + elsif($video=~m/(GeForce.+) nForce/){$data{video} = $1;} + elsif($video=~m/(GeForce.+) \(/){$data{video} = $1;} + else{$data{video} = "GeForce";} + $data{video} = "nVidia $data{video}"; + if(!$data{video_drv}){ + if(-e "/usr/lib/opengl/nvidia" && $data{load} ne "ram" && $data{calculate} eq "CLD"){ + $data{video_drv} = "nvidia"; + }else{ + $data{video_drv} = "nv"; + } + }elsif($data{video_drv} eq 'nv' || $data{video_drv} eq 'nvidia'){ + last; #завершим перебор, т.к. если есть другая видеокарта в системе, она нам явно не нужна + } + }elsif($video=~m/Intel/){ + $video =~m/Intel Corporation ?(Mobile )([^\s,]+)?( Series)[\s,]/; + if($2){$data{video} = "Intel $1$2$3";} + else{$data{video} = "Intel";} + if(!$data{video_drv}){ + $data{video_drv} = "intel"; + }elsif($data{video_drv} eq 'intel'){ + last; + } + }elsif($video=~m/ATI/){ + $video =~m/ATI Technologies Inc ([^\(]+)\s*[\(|\s]?$/; + if($1){ + my $name = $1; chomp $name; + $data{video} = "ATI $name"; + }else{ + $data{video} = "ATI"; + } + if(!$data{video_drv}){ + if($data{load} eq "ram" || + $data{pass} eq "install" && $data{calculate} eq "CLD" && number_ver($data{linuxver}) >= number_ver(9.6) || + $data{pass} eq "profile" && !-e "/usr/lib/opengl/ati" + ){ + $data{video_drv} = "radeon"; + }else{ + $data{video_drv} = "fglrx"; + } + }elsif( $data{video_drv} eq 'ati' || + $data{video_drv} eq 'radeon' || + $data{video_drv} eq 'radeonfb' || + $data{video_drv} eq 'fglrx' + ){ + last; + } + }elsif($video=~m/VMware/i){ + if(!$data{video_drv}){$data{video_drv} = "vmware";} + }elsif($video=~m/VirtualBox/i && $data{calculate} eq "CLD"){ + if(!$data{video_drv}){$data{video_drv} = "vboxvideo";} + }else{ + if(!$data{video_drv}){$data{video_drv} = "vesa";} + } + } + + if($data{video}){ + printmes(" ".gettext('Videocard')); + printmes(": $data{video}\n"); + } + + #определим opengl + if(!$data{opengl}){ + if($data{video_drv} eq "nvidia"){ + $data{opengl} = "nvidia"; + }elsif($data{video_drv} eq "fglrx"){ + $data{opengl} = "ati"; + }elsif( $data{video_drv} ne "vesa" && + $data{video_drv} ne "vboxvideo" && + $data{video_drv} ne "vmware" + ){ + $data{opengl} = "xorg-x11"; + } + } + + if($data{opengl} && !$data{run_opengl}){ + $data{run_opengl} = "/usr/bin/eselect opengl set $data{opengl}" + }else{ + $data{run_opengl} = ""; + } + } + + #---------------------------------------------------------------------- + # Определим разрешение экрана + # $data{resolution} + #---------------------------------------------------------------------- + { + my $xlog = "/var/log/Xorg.0.log"; + my $xconf = "/etc/X11/xorg.conf"; + my $def_res = "1024x768"; + + if(!$data{video_resolution} && $data{boot}{set}){ + $data{video_resolution} = $data{boot}{video_resolution}; + if($data{video_resolution}!=~m/^[0-9]+x[0-9]+$/){$data{video_resolution} = 'auto'} + }elsif(!$data{video_resolution}){ + if(-e $xlog){ + #считаем лог Xorg + open (L, $xlog); + my @xlog = ; + close (L); + my $log = join /\n/, @xlog; + + if($log=~m/Virtual screen size determined to be ([0-9]+)\s*x\s*([0-9]+)/){$data{video_resolution} = "$1x$2";} + elsif($log=~m/Setting mode "([0-9\@x]+)"/){$data{video_resolution} = "$1";} + elsif($log=~m/Output ([\S]+) using initial mode ([0-9\@x]+)/){$data{video_resolution} = "$2";} #VGA|LVDS|DFP2|DVI0 + elsif($log=~m/Virtual size is ([0-9\@x]+) /){$data{video_resolution} = "$1";} + else{$data{video_resolution} = $def_res;} + }elsif(-e $xconf){ + #считаем настройки xorg.conf + open (L, $xconf); + my @xconf = ; + close (L); + my $log = join /\n/, @xconf; + if($log=~m/Modes "([^\s"]+)[\s"]/){$data{video_resolution} = "$1";} + } + + if($data{video_resolution}){ + printmes(" ".gettext('Screen resolution')); + printmes(": $data{video_resolution}\n"); + } + } + + if(!$data{video_resolution} && $data{video_drv} eq "vesa"){ + $data{video_resolution} = "800x600" + } + + if(!$data{video_resolution}){ + $data{video_resolution} = $def_res; + } + } + + #---------------------------------------------------------------------- + # Определим наличие stage, portage + # $data{stagepath}, $data{portagepath} + #---------------------------------------------------------------------- + if($data{builder} && !defined $data{addition} && !defined $data{arg}{iso}){ + $data{stagepath} = "/usr/calculate/share/stages"; + + #определим максимальную версию stage нашей архитектуры, либо подставим маску + my $stage; + opendir(STAGE, $data{stagepath}); + foreach(readdir STAGE){ + if($_ eq "." || $_ eq ".."){next;} + if($_=~m/^$data{stage}/ && $stage lt $_){$stage = $_;} + } + closedir STAGE; + if($stage){$data{stage} = $stage}else{$data{stage} = $data{stage}."-YYYYMMDD.tar.bz2"} + + if(!-e "$data{stagepath}/$data{stage}" && !defined $data{arg}{'vars'}){ + if(!-e $data{stagepath}){ + printmes(" ".gettext('Create directory')); printmes(" stages..."); + system "$data{path} mkdir $data{stagepath}"; + printmes(" ".gettext('done')); printmes(".\n"); + } + printmes("\n"); + printmes(gettext('To continue сopy file')); + printmes(" \"$data{stage}\" "); + printmes(gettext('to directory')); printmes(" \"$data{stagepath}\".\n"); + beep(); + exit; + } + $data{portagepath} = "/usr/calculate/share/snapshots"; + + if(!-e $data{portagepath}){ + printmes(" ".gettext('Create directory')); printmes(" snapshots..."); + system "$data{path} mkdir $data{portagepath}"; + printmes(" ".gettext('done')); printmes(".\n"); + }else{ + #найдем последнюю версию портежей + my $last = 0; + opendir(DIR, $data{portagepath}); + foreach(readdir DIR){ + if($_!~/^portage-([0-9]+).tar.bz2$/){next;} + if($last < $1){$last = $1;} + } + closedir DIR; + if($last){ + $data{portage} = "portage-$last.tar.bz2"; + } + } + + if(!$data{portage} && !defined $data{arg}{'vars'}){ + printmes("\n"); + printmes(gettext('To continue сopy file')); + printmes(" \"portage-YYYYMMDD.tar.bz2\"\n"); + printmes(gettext('to directory')); printmes(" \"$data{portagepath}\".\n"); + beep(); + exit; + } + printmes(" ".gettext('Last available stage version')); printmes(": $data{stage}\n"); + printmes(" ".gettext('Last available portage version')); printmes(": $data{portage}\n"); + } + + #---------------------------------------------------------------------- + # Пути к директориям пакетов сборки + # @{$data{packages}) + #---------------------------------------------------------------------- + @{$data{packages}} = ( + "$data{dir}/install/builder/packages", + "/usr/calculate/share/builder/packages", + ); + + #---------------------------------------------------------------------- + # Получим список доступных патчей + # $data{patchdir}, %{$data{patches}}, $data{patchlast} + #---------------------------------------------------------------------- + if($data{os}){ + if(!$data{patchdir}){ + $data{patchdir} = "/usr/calculate/share/patch"; #путь к директории обновлений + } + if($data{patchlast} eq ''){ + $data{patchlast} = $data{ospatch}; + } + + opendir(DIR, $data{patchdir}); + foreach(readdir DIR){ + if($_!~/^$data{calculate}\-$data{os}\-([0-9]+)$/){next;} #файлы с патчами должны быть в формате Система-версия-номер (прим. Drage-7.12-1) + if($1 > $data{ospatch}){ + ${$data{patches}{$_}}++; + } + if(!$data{arg}{"set-patchlast"} && substr($data{patchlast},1) < $1){$data{patchlast} = $1;} + } + closedir DIR; + + if(%{$data{patches}}){ + printmes(" ".gettext('Available updates').": "); + foreach(sort keys %{$data{patches}}){ + printmes($_." "); + } + printmes("\n"); + } + } + + #---------------------------------------------------------------------- + # Прекратим собирать сведения, + # при обновлении системы, или упаковке в ISO образ + #---------------------------------------------------------------------- + if(defined $data{arg}{'updateonly'}){return '';} + + printmes(gettext('Location')."\n"); + #---------------------------------------------------------------------- + # Заголовок изменённых файлов + # $data{mestitle} + #---------------------------------------------------------------------- + if(!$data{mestitle}){ + $data{mestitle} = "# Changed by $data{calcname} "; + $data{mestitle}.=$data{calcver}; + } + if(!$data{mesline}){$data{mesline} = "#------------------------------------------------------------------------------";} + + #---------------------------------------------------------------------- + # Определим диск, с которого загружена система + # $data{load} + #---------------------------------------------------------------------- + if(`$data{path} mount | grep "[0-9] on / type"`=~m/^(\/dev\/[^\s]+)/){ + $data{rootload} = $1; + printmes(" ".gettext('Working volume')); printmes(": $data{rootload}\n"); + }else{ + $data{rootload} = ""; + printmes(" ".gettext('Working volume')); + if($data{load} eq "ram"){ + printmes(": ram\n"); + }else{ + printmes(": <"); printmes(gettext('undefined')); printmes(">\n"); + } + } + + #---------------------------------------------------------------------- + # Определим диск для установки + # $data{rootinstall} + #---------------------------------------------------------------------- + if(!$data{arg}{'profile'} && !$data{builder_chroot} && !defined $data{arg}{'update'} && !defined $data{arg}{'list'} && !defined $data{addition} && !defined $data{arg}{'iso'}){ + #выберем альтернативный диск для установки + if(!$data{rootinstall} && getini("install.from")){ + $data{rootinstall} = "/dev/".getini("install.from"); + }elsif(!$data{rootinstall} && getini("install.devfrom")){ + $data{rootinstall} = getini("install.devfrom"); + }elsif(!$data{rootinstall}){ + #проверим на схему 2-х /root разделов, предложив второй + if($data{rootload} && $data{rootload}=~m/([23])$/){ + my $install; + if($1 == 2){ + $install = 3; + }else{ + $install = 2; + } + #получим диск + $install = substr($data{rootload},0,length($data{rootload})-1).$install; + #проверим на существование и на доступность + if(-e $install && !`mount | grep '^$install '`){ + $data{rootinstall} = $install; + } } } + + #проверим на существование диска + if( + !-e "$data{rootinstall}" && + !defined $data{arg}{'vars'} && + !$data{partitions_dev} + ){ + beep(); + printmes("\n".gettext('Please specify installation volume')); + printmes(" (... --disk=/dev/sdXX).\n"); + savelog(); + exit; + } + + }elsif($data{builder_chroot}){ + #определим подмонтированный раздел в который производится установка + foreach(`$data{path} mount | grep "$data{mount} "`){ + if(m#^(/dev/[^\s]+) on $data{mount} type#){ + $data{rootinstall} = $1; + last; + } } + }else{ + $data{rootinstall} = $data{rootload}; + } + + if(!$data{builder}){ + printmes(" ".gettext('Installation volume')); + }else{ + printmes(" ".gettext('Volume for system building')); + } + + printmes(": $data{rootinstall}"); + + #---------------------------------------------------------------------- + # Определим является ли диск установки USB-HDD устройством + # определим временную задержку для корректной инициализации root-раздела + # USB устройства + # $data{'removableinstall'}, $data{grub_delay} + #---------------------------------------------------------------------- + if($data{rootinstall}){ + $data{rootinstall} =~m#/dev/(.+)#; + my $disk = $1; + if(-e "/dev/disk/by-id" && `LANG=C ls -la /dev/disk/by-id/ | grep $disk | grep ' usb-'`){ + $data{'removableinstall'} = 'on'; + printmes(" (USB-HDD)"); + if(!$data{grub_delay}){ + $data{grub_delay} = " scandelay=5"; + } + }else{ + $data{'removableinstall'} = 'off'; + if(!$data{grub_delay}){ + $data{grub_delay} = ""; + } + } + } + printmes("\n"); + + #---------------------------------------------------------------------- + # Определим является ли текущий диск USB-HDD устройством + # $data{'removableload'} + #---------------------------------------------------------------------- + $data{'removableload'} = 'off'; + if($data{load} ne 'ram' && $data{rootload}){ + $data{rootload} =~m#/dev/(.+)#; + my $disk = $1; + if(-e "/dev/disk/by-id" && `LANG=C ls -la /dev/disk/by-id/ | grep $disk | grep ' usb-'`){ + $data{'removableload'} = 'on'; + } +# else{ +# $data{'removableload'} = 'off'; +# } + } + + #---------------------------------------------------------------------- + # Укажем доступные варианты дисков для установки + #---------------------------------------------------------------------- + { + my @disks; + foreach(`$data{path} LANG=C fdisk -l 2>&1`){ + if(m/^(\/dev\/[^\s]+)\s/ && !m/Extended$/ && !m/Linux swap/){ + push (@disks, $1); + } } + + @{$data{other}}{rootinstall} = [@disks]; + } + + #---------------------------------------------------------------------- + # Флаги переноса конфигурационных файлов + #---------------------------------------------------------------------- + if( (!$data{move_fstab} || $data{move_fstab}=~m/^yes$/i || $data{move_fstab}=~m/^on$/i) + && + ($data{'removableload'} eq $data{'removableinstall'}) + && + !$data{partitions_dev} + ){ + $data{move_fstab} = "on"; + }else{ + $data{move_fstab} = "off"; + } + + #---------------------------------------------------------------------- + # Считаем uuid загрузочного диска, определим его метку + # $data{uuid_load}, $data{root_load_set} + #---------------------------------------------------------------------- + $data{uuid_load} = ""; + $data{root_load_set} = ""; + if($data{'removableload'} eq 'on' && $data{rootload}){ + $data{uuid_load} = `$data{path} vol_id --uuid $data{rootload} 2>/dev/null`; + chomp $data{uuid_load}; + $data{root_load_set} = "UUID=$data{uuid_load}"; + }else{ + $data{root_load_set} = $data{rootload}; + } + + #---------------------------------------------------------------------- + # Считаем uuid установочного диска, определим его метку + # $data{uuid_install}, $data{root_install_set} + # после форматирования, значение изменится, + # но для наложения профиля значение переменной root_install_set понадобится + #---------------------------------------------------------------------- + $data{uuid_install} = ""; + $data{root_install_set} = ""; + if($data{rootinstall}){ + $data{uuid_install} = `$data{path} vol_id --uuid $data{rootinstall} 2>/dev/null`; + chomp $data{uuid_install}; + if($data{'removableinstall'} eq 'on'){ + $data{root_install_set} = "UUID=$data{uuid_install}"; + }else{ + $data{root_install_set} = $data{rootinstall}; + } + } + + #---------------------------------------------------------------------- + # Определим параметр инф. узлов для файловой системы ext2/3 + # для переменной $data{formatrun} + #---------------------------------------------------------------------- + my $node; + { + my @i = split "/", $data{rootinstall}; + my $dev = @i[@i-1]; $dev=~m/^(.+)[0-9]+$/; + $dev = "/sys/block/$1/$dev/size"; + if(-e $dev){ + open(F, $dev); + my $size = ; + close(F); + chomp $size; + + $size*=512/1024/1024/1024; #переведем в гигабайты + #исправим кол-во нод (инф. узлов) для ext2/3 + #чтобы система успешно установилась + if($size < 8){ + $node = "-N 500000 "; + } } } + + #---------------------------------------------------------------------- + # Выберем доступную утилиту форматирования + #---------------------------------------------------------------------- + if(number_ver($data{os}) <= 90400){ + @{$data{other}}{'format'} = ["ext3", "ext2", "jfs", "reiserfs", "xfs"]; + }else{ + @{$data{other}}{'format'} = ["ext2", "ext3", "ext4", "jfs", "reiserfs", "xfs"]; + #reiser4 + } + if(!$data{'format'} && !defined $data{arg}{'list'} && !defined $data{addition}){ + my $format; + if($data{rootinstall}){ + $format = `$data{path} vol_id --type $data{rootinstall} 2>/dev/null`; + } + if($format =~m/ext2/){$data{'format'} = 'ext2';} + elsif($format =~m/ext3/){$data{'format'} = 'ext3';} + elsif($format =~m/ext4/){$data{'format'} = 'ext4';} + elsif($format =~m/jfs/){$data{'format'} = 'jfs';} + elsif($format =~m/reiserfs/){$data{'format'} = 'reiserfs';} + elsif($format =~m/reiser4/){$data{'format'} = 'reiser4';} + elsif($format =~m/xfs/){$data{'format'} = 'xfs';} + else{$data{'format'} = 'reiserfs';} + } + + #метка установочного root-диска +# $data{rootinstall} =~m/[^0-9]([0-9]+)$/; +# $data{labelinstall} = "$data{calculate}-$data{linuxver}"; +# $data{rootload} =~m/[^0-9]([0-9]+)$/; +# $data{labelload} = "root$1"; + + my %formatrun = ( + "ext2" => "/sbin/mkfs.ext2 $node-L", + "ext3" => "/sbin/mkfs.ext3 $node-L", + "ext4" => "/sbin/mkfs.ext4 $node-L", + "jfs" => "/sbin/mkfs.jfs -f -L $label", + "reiserfs" => "/sbin/mkfs.reiserfs -f -l", + "reiser4" => "/sbin/mkfs.reiser4 -y -L", + "xfs" => "/sbin/mkfs.xfs -f -L", + ); + + if($formatrun{$data{'format'}} && -e "/sbin/mkfs.$data{'format'}"){ + $data{formatrun} = $formatrun{$data{'format'}}; + }else{ + if(-e "/sbin/mkfs.ext2"){ $data{'format'} = 'ext2'; } + elsif(-e "/sbin/mkfs.ext3"){ $data{'format'} = 'ext3'; } + elsif(-e "/sbin/mkfs.ext4"){ $data{'format'} = 'ext4'; } + elsif(-e "/sbin/mkfs.jfs"){ $data{'format'} = 'jfs'; } + elsif(-e "/sbin/mkfs.reiserfs"){ $data{'format'} = 'reiserfs'; } + elsif(-e "/sbin/mkfs.reiser4"){ $data{'format'} = 'reiser4'; } + elsif(-e "/sbin/mkfs.xfs"){ $data{'format'} = 'xfs'; } + else{ $data{NOMES} = ""; printmes("\n".gettext('Error')."! ".gettext('Formatting utility not found').".\n"); return ""; } + $data{formatrun} = $formatrun{$data{'format'}}; + } + printmes(" ".gettext('File system')); printmes(": $data{'format'}\n"); + + #---------------------------------------------------------------------- + # Хэш доступных grub-у дисков, диск и загрузочный раздел grub-а + # диск для установки граба + # %{$data{grub_map}}, пример: hd0 => sda, .. + # $data{grubinstall}, $data{grubload} + #---------------------------------------------------------------------- + { + my $num = 0; + my ($grub,$dev); + foreach(`$data{path} LANG=C fdisk -l 2>&1 | grep "/dev/"`){ + if(m/^Disk (\/dev\/[^:]+)\:/){ + $grub = "hd".$num; $dev = $1; + $data{"grub_map"}{$grub} = $dev; + $num ++; + }elsif(m/^(\/dev\/[^\s]+)/ && $dev){ + my $disk = $1; + $disk =~m/^$dev(.+)/; + #для совместимости со SCSI, учтем имена дисков c0d0p1 + my $dn = $1; $dn=~m/([0-9]+)$/; #уберем если есть из номера диска букву p + my $grubdn = $1 - 1; + if($data{rootinstall}=~m/$dev$dn/){ + if($data{'removableinstall'} eq 'on'){ + $data{grubinstall} = "hd0,$grubdn"; #загрузочный диск grub + }else{ + $data{grubinstall} = "$grub,$grubdn"; #загрузочный диск grub + } + + }elsif($data{rootload}=~m/$dev$dn/){ + $data{grubload} = "$grub,$grubdn"; #диск для установки + } } } } + + #---------------------------------------------------------------------- + # Считаем меню граба grub.conf для переноса настроек + # $data{grub_another} + #---------------------------------------------------------------------- + $data{grub_another} = ""; + if($data{load} ne "ram" && $data{'removableload'} eq $data{'removableinstall'}){ + my $grub = "/boot/grub/grub.conf"; + if(-e $grub){ + open(F, $grub); + my @lines = ; + close(F); + + my $config, $record, $skip; + foreach(@lines){ + if(m/^\s*title[\s|=]+/){ + if($record && !$skip){ + $config.= $record; + } + $record = $_; + $skip = ''; + }else{ + if(m/[^\s]/ && $record){ + if($data{rootinstall} && m/^\s*kernel .*root=$data{rootinstall}/){ + $skip ++; #проскочим эту запись + } + $record.= "$_"; + } } } + if($record && !$skip){ $config.= $record;} + + $data{grub_another} = "\n".$config; + }else{ + my $oldmarch = `$data{path} uname -m`; chomp $oldmarch; + my $os; if($data{os}){ $os = " $data{os}"; } + $data{grub_another} = + "\ntitle $data{linuxold}$os $oldmarch\n". + "root ($data{grubload})\n". + "kernel /boot/vmlinuz root=$data{root_load_set}"; + } } + + #---------------------------------------------------------------------- + # Флаг установки MBR записи для загрузки системы + # $data{mbr} + #---------------------------------------------------------------------- + if(!$data{mbr} || $data{mbr}=~m/^yes$/i || $data{mbr}=~m/^on$/i){ + $data{mbr} = "on"; + }else{ + $data{mbr} = "off"; + } + + #---------------------------------------------------------------------- + # Диски файла devicemap для grub-а + # $data{DEVICEMAP} + #---------------------------------------------------------------------- + if(%{$data{grub_map}}){ + foreach(sort keys %{$data{grub_map}}){ + if($data{'removableinstall'} eq 'on'){ + if($data{rootinstall}=~m/^$data{grub_map}{$_}/){ + $data{devicemap} = "(hd0) $data{grub_map}{$_}\n"; + last; + } } + $data{devicemap} .= "($_) $data{grub_map}{$_}\n"; + } + chomp $data{devicemap}; + }else{ + $data{devicemap} = "\n"; + } + + #---------------------------------------------------------------------- + # Определим раздел свопа, сформируем строку fstab + # $data{swap}, $data{swapset} + #---------------------------------------------------------------------- + if(!$data{builder}){ + if(!$data{swap} && $data{rootinstall}){ + #поищем своп на устанавливаемом HDD + foreach(`$data{path} LANG=C fdisk -l 2>&1 | grep "Linux swap"`){ + m/^(\/dev\/[^\s]+)([0-9])/; + my $swap = $1.$2; + if($data{rootinstall}=~/^$1/){ + my $uuid_swap = `$data{path} vol_id --uuid $swap 2>/dev/null`; + if($uuid_swap eq '' && !`cat /proc/swaps | grep "^$swap"`){ + `$data{path} mkswap $swap > /dev/null`; + $uuid_swap = `$data{path} vol_id --uuid $swap 2>/dev/null`; + } + $data{swap} = $swap; + $data{uuid_swap} = $uuid_swap; + chomp $data{uuid_swap}; + last; + } } } } + + if($data{swap}){ + printmes(" ".gettext('Swap disk')); printmes(": $data{swap}\n"); + + if($data{'removableinstall'} eq 'on'){ + $data{swapset} = qq|UUID=$data{uuid_swap}\tnone\t\tswap\tsw\t\t\t0 0|; + }else{ + $data{swapset} = qq|$data{swap}\tnone\t\tswap\tsw\t\t\t0 0|; + } } + + if($data{swap}){ + $data{swap_resume} = "resume=$data{swap}"; + }else{ + $data{swap_resume} = "noresume"; + } + + #---------------------------------------------------------------------- + # С текущей системы определим дополнительные монтируемые диски + # (в том числе сетевые), пути монтирования + # @{$data{mount_dev}}, @{$data{mountdir}}, @{$data{mount_line}} + #---------------------------------------------------------------------- + my $fstab = "/etc/fstab"; + if(-e $fstab){ + open(F, $fstab); + ($data{mount_dev}, $data{mountdir}, $data{mount_line}) = getdisk_fstab(); + close(F); + if(@{$data{mount_dev}}){ + printmes(" ".gettext('Mounted disks')); printmes(": @{$data{mount_dev}}\n"); + } + } + + #---------------------------------------------------------------------- + # Определим наличие сети + #---------------------------------------------------------------------- + $data{lan} = "off"; + foreach(`$data{path} LANG=C ifconfig -s`){ + if(m/^Iface\s+/ || m/^lo\s+/){next;} + $data{lan} = "on"; + last; + } + + #---------------------------------------------------------------------- + # Определим наличие настроенных сетевых интерфейсов + # $data{netstat} + #---------------------------------------------------------------------- + $data{netstat} = 'off'; + foreach(`$data{path} route -n`){ + if(!m/^127\.0\./ && m/^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+\s+/){ + $data{netstat} = 'on'; + last; + } } + + #---------------------------------------------------------------------- + # Определим сетевые сервисы + # $data{proxy}, $data{useproxy}, $data{proxy_port}, $data{http_proxy}, + # $data{nfs}, $data{ntp} + #---------------------------------------------------------------------- + $data{useproxy} = 'off'; $data{proxy_port} = ''; + $data{http_proxy} = ''; $data{nfs} = ''; $data{ntp} = ''; + if(!$data{builder} && $data{netstat} eq 'on' && !defined $data{arg}{'initrd'} && !defined $data{arg}{'video'} && $data{lan} eq 'on' && $data{domain} ne 'local'){ + printmes(gettext('Network services')."\n"); + #определим прокси-сервер + if( + $data{proxy} || + ($data{exec_host} && $data{domain} && `$data{exec_host} proxy.$data{domain} | grep "has address"`) + ){ + my $proxy; + if($data{proxy}){$proxy = $data{proxy};}else{$proxy = "proxy.$data{domain}";} + + foreach("3128","8080"){ + if(IO::Socket::INET -> new(PeerAddr => "$proxy:$_", Proto => "tcp", Timeout => 1)){ + $data{proxy} = $proxy; + $data{proxy_port} = $_; + printmes(" PROXY: $data{proxy}:$data{proxy_port}\n"); + if(!$data{http_proxy}){$data{http_proxy} = "http://$data{proxy}:$data{proxy_port}/";} + last; + } } + if($data{proxy} && !$data{proxy_port}){$data{proxy} = "";} + } + if($data{proxy}){$data{useproxy} = 'on'}else{$data{useproxy} = 'off'} + + #определим наличие сетевой файловой системы + if( + $data{exec_host} && + !$data{nfs} && + $data{domain} && + `$data{exec_host} nfs.$data{domain} | grep "has address"` && + IO::Socket::INET -> new(PeerAddr => "nfs.$data{domain}:2049", Proto => "tcp", Timeout => 1) + ){ + $data{nfs} = "nfs.$data{domain}"; + } + if($data{nfs}){printmes(" NFS: $data{nfs}\n");} + + #определим наличие локального сервера времени + if(!$data{ntp}){ + if( + $data{exec_host} && + $data{domain} && + `$data{exec_host} ntp.$data{domain} | grep "has address"` + ){ + #определим не является ли компьютер сам источником времени + my $ip, $iplan; + $ip = `$data{exec_host} ntp.$data{domain} | grep "has address"`; + $ip=~s/.+\s+([0-9\.]+)$/$1/; + foreach(`LANG=C ifconfig | grep "inet addr:"`){ + $iplan = $_; + $iplan=~s/.+inet addr:([0-9\.]+)\s+.+/$1/; + if($iplan eq $ip){last;} + } + if($iplan ne $ip){ + $data{ntp} = "ntp.$data{domain}"; + } + } + if(!$data{ntp}){$data{ntp} = "ntp0.zenon.net";} + } + printmes(" NTP: $data{ntp}\n"); + } + if(!$data{ntp}){$data{ntp} = "ntp0.zenon.net";} + + #---------------------------------------------------------------------- + # Проверим наличие сервера CDS + # $data{server_url}, $data{server} + #---------------------------------------------------------------------- + if(!$data{server_url}){ + if(-e "/var/calculate/calculate.env"){ + #считаем переменную адреса сервера + open (F, "/var/calculate/calculate.env"); + foreach(){ + chomp; + if(m/^cl_remote_host\s?=\s?(.+)$/){ + $data{server_url} = $1; + } + } + close (F); + } + } + + + if(!$data{builder} && ($data{system} eq 'desktop') && + $data{netstat} eq 'on' && !defined $data{arg}{'initrd'} && !defined $data{arg}{'video'} && $data{lan} eq 'on' && $data{server_url} + ){ + if( + ( + number_ver($data{linuxver}) >= number_ver('9.6') && + `grep ldap /etc/nsswitch.conf` + ) + || + ( + $data{exec_nmap} && + ( + $data{server_url} =~m/^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$/i || + ($data{exec_host} && + `$data{exec_host} $data{server_url} | grep "address"`) + ) + && + `$data{exec_nmap} --system-dns -p 389 $data{server_url} | grep open` + ) + ){ + $data{server} = "CDS"; + printmes(" ".gettext('Authentification')); + printmes(": LDAP\n"); + }else{ + $data{server} = "off"; + printmes(" ".gettext('Authentification')); + printmes(": localhost\n"); + } } + + #---------------------------------------------------------------------- + # Настройки PDC + # $data{samba_domain} + #---------------------------------------------------------------------- + if($data{calculate} eq "CDS"){ + $data{samba_domain} = "CDS"; + $data{samba_netbios} = "PDC-CDS"; + } + + #---------------------------------------------------------------------- + # Определим путь к LDAP-записям пользователей + # $data{ldap_base}, $data{ldap_hash_encrypt}, $data{ldap_bindname}, $data{ldap_bind}, + # $data{ldap_bindpw}, $data{ldap_bindpw_hash}, $data{ldap_root_tmp}, $data{ldap_rootpw_tmp}, + # $data{ldap_rootname}, $data{ldap_root}, $data{ldap_rootpw}, $data{ldap_rootpw_hash} + #---------------------------------------------------------------------- + + + if(-e "/var/calculate/remote/calculate.env"){ + open (F, "/var/calculate/remote/calculate.env"); + foreach(){ + chomp; + #базовый суффикс + if(m/^ld_services_dn\s?=\s?(.+)$/){ + if(!$data{ldap_base}){$data{ldap_base} = "$1";} + } + if(m/^ld_unix_dn\s?=\s?(.+)$/){ + if(!$data{ldap_root}){$data{ldap_root} = "$1";} + } + if(m/^ld_bind_dn\s?=\s?(.+)$/){ + if(!$data{ldap_bind}){$data{ldap_bind} = "$1";} + } + if(m/^ld_bind_pw\s?=\s?(.+)$/){ + if(!$data{ldap_bindpw}){$data{ldap_bindpw} = "$1";} + } + } + close (F); + } + + #базовый суффикс + if($data{calculate} eq "CDS" || $data{server} eq "CDS"){ + if(!$data{ldap_base}){$data{ldap_base} = "dc=CDS";} + } + + #алгоритм шифрования паролей + if($data{calculate} eq "CDS"){ + $data{ldap_hash_encrypt}='{SSHA}'; + } + + #пользовательский доступ к базе с доступом только для чтения + if($data{calculate} eq "CDS" || $data{server} eq "CDS"){ + $data{ldap_bindname} = "proxyuser"; + if(!$data{ldap_bind}){ + $data{ldap_bind} = "cn=$data{ldap_bindname},".$data{ldap_base}; + } + if(!$data{ldap_bindpw}){ + $data{ldap_bindpw} = "CDS"; + } + } + + if($data{calculate} eq "CDS"){ + $data{ldap_bindpw_hash} = `$data{path} slappasswd -s $data{ldap_bindpw} -h $data{ldap_hash_encrypt}`; + chomp $data{ldap_bindpw_hash}; + } + + #временный пользователь root для инициализации базы данных + if($data{calculate} eq "CDS"){ + $data{ldap_root_tmp} = "cn=ldaproot,".$data{ldap_base}; + $data{ldap_rootpw_tmp} = password(); + $data{ldap_rootpw_tmp_hash} = `$data{path} slappasswd -s $data{ldap_rootpw_tmp} -h $data{ldap_hash_encrypt}`; + chomp $data{ldap_rootpw_tmp_hash}; + } + + #постоянный пользователь root, прописываемый в базу при первой загрузке + #с одновременным удалением временного root-а + if($data{calculate} eq "CDS" || $data{server} eq "CDS"){ + $data{ldap_rootname} = "ldapadmin"; + if(!$data{ldap_root}){ + $data{ldap_root} = "cn=$data{ldap_rootname},".$data{ldap_base}; + } + if(-e "/etc/smbldap-tools/smbldap_bind.conf"){ + $data{ldap_rootpw} = `cat /etc/smbldap-tools/smbldap_bind.conf | grep masterPw`; + chomp $data{ldap_rootpw}; + $data{ldap_rootpw}=~s/[^=]+="(.+)"/$1/; + } + #если пароля нет, сгенерируем + if(!$data{ldap_rootpw} || $data{ldap_rootpw} eq 'secret'){ + $data{ldap_rootpw} = password(); + } + } + if($data{calculate} eq "CDS"){ + $data{ldap_rootpw_hash} = `$data{path} slappasswd -s $data{ldap_rootpw} -h $data{ldap_hash_encrypt}`; + chomp $data{ldap_rootpw_hash}; + } + + #---------------------------------------------------------------------- + # Определим запущенные сервисы CDS + # $data{up-*} + #---------------------------------------------------------------------- + if(!$data{builder} && $data{calculate} eq "CDS"){ + foreach("ldap", "mail", "ftp"){ + if(getini("up.$_") eq "on"){ + $data{"up_".$_} = "on"; + }else{ + $data{"up_".$_} = "off"; + } } } + + #---------------------------------------------------------------------- + # Определим профили установки или сборки + # @{$data{profile_install}}, @{$data{profile_share}} + #---------------------------------------------------------------------- + if(!$data{builder}){ + printmes(gettext('Installation profiles')."\n"); + { + #считаем базовые профили установки + my %profiles; + opendir(PROFILES, "$data{dir}/install/profile"); + foreach(readdir PROFILES){ + if($_ eq "." || $_ eq ".."){next;} + $profiles{$_}++; + } + closedir PROFILES; + + #определим базовые профили установки + my @profile; + foreach(sort keys %profiles){ + if( + (m/^[0-9]/ || + m/^$data{calculate}$/ || m/^$data{calculate}\?.+/ || + m/^$data{system}$/ || m/^$data{system}\?.+/ + ) && + check_name($_) + ){ + push (@{$data{profile_install}}, "$data{dir}/install/profile/$_"); + my $name = $_; $name=~s/^([^\?]+)\?(.+)/$1/; + push (@profile, $name); + } } + printmes(" ".gettext('Basic')); + printmes(": ".join (", ", @profile)."\n"); + + #считаем дополнительные профили установки + my %profiles; + opendir(PROFILES, "/usr/calculate/share/profile"); + foreach(readdir PROFILES){ + if($_ eq "." || $_ eq ".."){next;} + $profiles{$_}++; + } + closedir PROFILES; + + #определим дополнительные профили установки + #пропустим, если производится установка на извлекаемый диск + #либо наоборот, с внешнего диска на ПК + my @profile; + if(!($data{pass} eq 'install' && $data{'removableload'} ne $data{'removableinstall'})){ + foreach(sort keys %profiles){ + if( + (m/^[0-9]/ || $_=~m/^$data{calculate}$/ || m/^$data{system}$/) && + check_name($_) + ){ + push (@{$data{profile_share}}, "/usr/calculate/share/profile/$_"); + my $name = $_; $name=~s/^(.+)\?(.+)/$1/; + push (@profile, $name); + } } + + #проверим профили домена + my ($i, $domain); + foreach(reverse split /\./, "$data{hostname}.$data{domain}"){ + $i++; + if($domain){$domain = "$_.$domain"}else{$domain = "$_"} + if($i > 1){ + if($profiles{$domain}){ #если профиль присутствует на диске + push (@{$data{profile_share}}, "/usr/calculate/share/profile/$domain"); + push (@profile, $domain); + } } } + + #проверим профиль компьютера + if($data{hostname} && $profiles{$data{hostname}}){ + push (@{$data{profile_share}}, "/usr/calculate/share/profile/$data{hostname}"); + push (@profile, $data{hostname}); + } + } + #покажем найденные профили + if(@profile){ + printmes(" ".gettext('Additional')); + printmes(": ".join (", ", @profile)."\n"); + } } + }else{ + #Считаем профили для различных этапов сборки + my $path = "$data{dir}/install/builder/profile"; + opendir(DIR, $path); + foreach(readdir DIR){ + if($_ eq "." || $_ eq ".."){next;} + if( + (m/^[0-9]/ && !defined $data{arg}{'pack'} && !defined $data{arg}{'iso'}) || + ($_ eq "IMG" && defined $data{arg}{'pack'}) || + ($_ eq "ISO" && defined $data{arg}{'iso'}) + ){ + push (@{$data{profile_install}}, "$path/$_"); + } } + closedir DIR; + } + + #---------------------------------------------------------------------- + # Определим путь к сборке дистрибутива в chroot окружении + # $data{builder} + #---------------------------------------------------------------------- + #директория установки + if(!$data{builderdir}){ + $data{builderdir} = "/mnt/calculate"; + } + + #---------------------------------------------------------------------- + # Определим переменные окружения emerge и команду запуска emerge + # $data{makeopts}, $data{portdir}, $data{distdir}, $data{pkgdir} + # $data{emergerun1}, $data{emergerun2} + #---------------------------------------------------------------------- + { + if(!$data{makeopts}){ + my $makecpu; + if($data{cpus} == 1){ + $makecpu = $data{cpus}; + }else{ + $makecpu = $data{cpus} + 1; + } + $data{makeopts} = "-j$makecpu"; + } + if(!$data{portdir}){ +# my $portdir; +# open (F, "/etc/make.conf"); +# foreach(`emerge --info`){ +# if(m/PORTDIR_OVERLAY="([^"]+)"/){$portdir = $1; break;} +# } +# close (F); + $data{portdir} = "/usr/local/overlays/calculate"; +# my $calcportdir = $data{portdir}; +# foreach(split / /, $portdir){ +# if($_ && $_ ne $calcportdir){$data{portdir} .= " $_";} +# } + } + if(!$data{distdir}){ + $data{distdir} = "/usr/calculate/share/distfiles"; + } + if(!$data{pkgdir}){ + $data{pkgdir} = "/usr/calculate/share/packages/$data{calculate}/$data{linuxver}/$data{march}"; + } + + $data{emergerun1} = "PORTDIR_OVERLAY='$data{portdir}' MAKEOPTS='$data{makeopts}'"; + $data{emergerun2} = ""; + if($data{builder}){ + if(!defined $data{addition}){ + $data{emergerun1} = "$data{path} chroot $data{chroot} /usr/calculate/install/calculate --chroot=\"$data{emergerun1} /usr/bin/emerge"; + $data{emergerun2} = "\""; + }else{ + $data{emergerun1} = "$data{emergerun1} /usr/bin/emerge"; + } } } + + #---------------------------------------------------------------------- + # Определим переменные настройки make.conf + # $data{use}, $data{uselist} + #---------------------------------------------------------------------- + if($data{builder}){ + #сформируем USE-флаги + #получим список USE файлов + my %usefiles = (); + #основные USE-флаги + my $path = "$data{dir}/install/builder/use"; + opendir(DIR, $path); + foreach(readdir DIR){ + if($_ eq "." || $_ eq ".."){next;} + $usefiles{"$path/$_"}++; + } + closedir DIR; + #дополнительные USE-флаги + my $path = "/usr/calculate/share/builder/use"; + opendir(DIR, $path); + foreach(readdir DIR){ + if($_ eq "." || $_ eq ".."){next;} + $usefiles{"$path/$_"}++; + } + closedir DIR; + #сформироем строки USE-флага + foreach(sort keys %usefiles){ + $data{file}{name} = $_; + my $use = ''; + my $usefile = $data{file}{name}; $usefile=~s/.+\/([^\/]+)$/$1/; + #соберем по группам USE-флаги + open (F, "$data{file}{name}"); + my @f = ; + close (F); + foreach(convert(lines => [@f], nocomment => yes)){ + chomp; + $use.=" $_"; + } + #сформируем массив USE флагов, разбитый построчно + if($use){ + $data{use} .= " $use\n"; + if($data{uselist}){$data{uselist}.=", "} + $data{uselist} .= "$usefile"; + } + } + chop $data{use}; + $data{use} = "\n$data{use}"; + } + + #---------------------------------------------------------------------- + # Определим ссылки на исходники программ + # $data{gentoo_mirrors} + #---------------------------------------------------------------------- + if($data{builder} && !$data{gentoo_mirrors}){ + $data{gentoo_mirrors} = "http://mirror.yandex.ru/gentoo-distfiles http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo"; + } + + #---------------------------------------------------------------------- + # Определим USB устройства + # $data{usb_*} + #---------------------------------------------------------------------- + { + foreach(`$data{path} lsusb 2>/dev/null`){ + m/^Bus [0-9]+ Device [0-9]+: ID [0-9a-f]+:[0-9a-f]+ (.+)$/i; + if($1=~m/Hewlett-Packard/){ + $data{"usb_hp"} = "yes"; + }elsif($1=~m/Bluetooth/){ + $data{"usb_bluetooth"} = "yes"; + } + } + } + + #---------------------------------------------------------------------- + # Команда создания учетных записей пользователей + # $data{run_user} + #---------------------------------------------------------------------- + $data{run_user} = ""; + if($data{'removableload'} eq $data{'removableinstall'}){ + open(U, "/etc/passwd") or die "Ошибка открытия файла: $!"; my @PASSWD = ; close(U); + open(G, "/etc/group") or die "Ошибка открытия файла: $!"; my @GROUP = ; close(G); + my($USER,$TMP,$IDUSER,$IDGROUP,$COMMENT,$HOMEDIR,$SHELL) = (0..6); + my($gGROUP,$gTMP,$gIDGROUP,$gUSERS) = (0..3); + my $newuser = 0; + foreach(@PASSWD){ + chomp; my @user = split /:/; + #извлечем пользователей, добавленных после установки системы + if($user[$IDUSER] >= 500 && $user[$IDUSER] < 65000 && $user[$IDUSER] != 999){ + #соберем информацию по группам, в которые пользователь входит + my @grp; + foreach(@GROUP){ + chomp; my @group = split /:/; + #определим принадлежность пользователя группе + if($group[$gUSERS] && ",$group[$gUSERS],"=~m/,$user[$USER],/){ + push (@grp, $group[$gGROUP]); + } + } + my $groups; if(@grp){$groups = join ",", @grp; $groups = "--groups $groups";} + + $data{run_user} = "\n/usr/sbin/useradd --uid $user[$IDUSER] --gid $user[$IDGROUP] --home-dir $user[$HOMEDIR] --shell $user[$SHELL] $groups $user[$USER]".$data{run_user}; + + #добавим создание групп на случай, если их не существует + my $ugroups; + my @gname = split / /, `$data{path} id -Gn $user[$USER]`; + my @gid = split / /, `$data{path} id -G $user[$USER]`; + foreach($i = 0; $i < @gid; $i ++){ + if($gid[$i] >= 500){ #пропустим системные группы + chomp $gid[$i]; chomp $gname[$i]; + $ugroups .= "\n/usr/sbin/groupadd -f -g $gid[$i] $gname[$i]"; + } } + $data{run_user} = $ugroups.$data{run_user}; + + $newuser++; + } } } + + $data{NOMES} = ""; #включим вывод сообщений + + return 1; +} + +#------------------------------------------------------------------------------ +# +# Установим патчи на текущую систему +# +#------------------------------------------------------------------------------ +sub patch{ + printmes(gettext('Apply patches')."\n"); + + foreach(sort keys %{$data{patches}}){ + printmes(" ".gettext('Run')); printmes(" $_...\n"); + if(system "$data{patchdir}/$_"){ + beep(); + printmes(gettext('error').".\n"); + return ""; + }else{ + printmes(" ".gettext('done').".\n"); + } } + + printmes(gettext('Finishing installation')."\n"); + printmes(" ".gettext('Update')); printmes(" calculate.ini..."); + putini(ospatch => $data{patchlast}); + printmes(" ".gettext('done').".\n"); + + return 1; +} + +#------------------------------------------------------------------------------ +# +# Выполним проверки перед установкой +# +#------------------------------------------------------------------------------ +sub checkready{ + if(!$data{builder}){ + printmes(gettext('Perform pre-install checkups')."\n"); + } + + #---------------------------------------------------------------------- + # Проверим, используется ли раздел для установки + #---------------------------------------------------------------------- + if(`$data{path} mount | grep $data{rootinstall}`){ + printmes("\n".gettext('Error')."! "); + printmes(gettext('Disk')); + printmes(" $data{rootinstall} "); + printmes(gettext('mounted').".\n"); + printmes(gettext('Please unmount disk or specify another volume')."!\n"); + return ""; + } + + #---------------------------------------------------------------------- + # Определим наличие обновлений + #---------------------------------------------------------------------- + if(!$data{builder}){ + printmes(" ".gettext('Update found')); + printmes(": $data{'calculatename'} $data{linuxver}"); + if($data{'calculatesubname'}){printmes(" $data{'calculatesubname'}");} + printmes("\n"); + } + + #---------------------------------------------------------------------- + # Проверим поддержку Calculate + #---------------------------------------------------------------------- + if(!$data{builder}){ + if( + (($data{calculate} eq "CLD" && + number_ver($data{linuxver}) > number_ver('9.6.9')) || + ($data{calculate} eq "CLDX" && + number_ver($data{linuxver}) > number_ver('9.6.9')) || + ($data{calculate} eq "CDS" && + number_ver($data{linuxver}) > number_ver('9.5.9')) + ) && !defined $data{arg}{'force'} + ){ + printmes("\n".gettext('For installation, you must update the program. Run "calculate --update"')); printmes(".\n"); + beep(); return ""; + } } + + + #---------------------------------------------------------------------- + # Проверим путь к архиву образа + #---------------------------------------------------------------------- + if(!$data{builder} && $data{load} ne "ram" && !-e "$data{linuxdir}/$data{linux}"){ + printmes("\n"); + printmes(gettext('To continue сopy file')); + printmes(" \"$data{linux}\" "); + printmes("\n".gettext('to directory')); printmes(" \"$data{linuxdir}\".\n"); + beep(); + return ""; + } + + #---------------------------------------------------------------------- + # Проверим на загруженное обновление + # Примонтируем новый раздел для проверки + #---------------------------------------------------------------------- + if(!defined $data{arg}{'force'} && !$data{builder}){ + if(!system "$data{path} mount $data{rootinstall} $data{mount} &>/dev/null"){ + if( getini('calculate', 'chroot') eq $data{calculate} && + getini('linuxver', 'chroot') eq $data{linuxver}) + { + #Отмонтируем новый раздел + system("$data{path} umount $data{mount}"); + + printmes("\n".gettext('Update')); + printmes(" $data{calculatename} $data{linuxver} "); + printmes(gettext('is already installed')); printmes(". "); + printmes(gettext('Please reboot')); printmes(".\n"); + beep(); return ""; + } + #Отмонтируем новый раздел + system("$data{path} umount $data{mount}"); + } + } + + #---------------------------------------------------------------------- + # Последняя проверка - + # сверим контрольную сумму файла обновления + #---------------------------------------------------------------------- + if(!$data{builder} && $data{linux}){ + + my $md5file = "$data{tmpdir}/md5sum.txt"; +# if(!-e $md5file){ +# beep(); +# printmes(" ".gettext('error').".\n"); +# printmes("\n".gettext('File not found')); +# printmes(": \"$md5file\".\n"); +# return ""; +# } + + if(-e $md5file){ + #считаем файл контрольных сумм пакетов + open (F, $md5file); + my $tmp = $/; undef $/; my $md5sum=; $/ = $tmp; + close (F); + + my $checksum; + foreach(split "\n", $md5sum){ + my ($md5, $file) = split " "; + if($file eq $data{linux}){ + $checksum = $md5; + break; + } } + if($checksum){ + printmes(" ".gettext('Check the checksum')); printmes(": $data{linux}..."); + + if(system("$data{path} md5sum $data{linuxdir}/$data{linux} | grep $checksum &>/dev/null")){ + beep(); + printmes(" ".gettext('error').".\n"); + return ""; + }else{ + printmes(" ".gettext('done').".\n"); + } } } } + + return 1; +} + +#------------------------------------------------------------------------------ +# +# Распакуем систему или stage, portage архивы +# +#------------------------------------------------------------------------------ +sub extract{ + if($data{erase} eq 'on'){ + printmes("\n".gettext('Volume formatting will start through')); + }else{ + printmes("\n".gettext('System will install over')); + } + printmes(" 10 "); printmes(gettext('seconds')); printmes(".\n"); + + printmes(gettext('Press')); printmes(" Ctrl+C "); printmes(gettext('to cancel')); printmes("... "); + if(system(q|echo -e -n "\a10"; sleep 1; for ((i=9; $i>0; i--)); do echo -e -n "\a\b\b $i"; sleep 1; done; echo -e "\b\b ";|)){ + printmes("\n"); return ""; + } + + if($data{erase} eq 'on'){ + if(!$data{builder}){ + printmes(gettext('Unpacking system')."\n"); + }else{ + printmes(gettext('Prepare installation volume')); printmes("\n"); + } + + if($data{partitions_dev}){ + printmes(" ".gettext('Perform hard disk partition')); printmes("... "); + #выполним разбиение диска + if(system("$data{path} cat /usr/calculate/install/config/fdisk.$data{calculate} | fdisk $data{partitions_dev} &>/dev/null")){ + printmes(gettext('Error')); printmes("! "); + return ""; + } + printmes(gettext('done').".\n"); + + printmes(" ".gettext('Set up a Linux swap area')); printmes("... "); + if(system("$data{path} mkswap $data{partitions_dev}1 &>/dev/null")){ + printmes(gettext('Error')); printmes("! "); + return ""; + } + printmes(gettext('done').".\n"); + + printmes(" ".gettext('Formatting a partition for the data')); printmes("... "); + if(system("$data{formatrun} Data $data{partitions_dev}5 &>/dev/null")){ + printmes(gettext('Error')); printmes("! "); + return ""; + } + printmes(gettext('done').".\n"); + + printmes(" ".gettext('Create a mount point "home" and "share"')); printmes("... "); + my $mount_tmp = "/mnt/newdata-".sprintf("%.0f", rand() * 10000); + if(system("mkdir $mount_tmp && mount $data{partitions_dev}5 $mount_tmp && mkdir -p $mount_tmp/share/linux $mount_tmp/home && umount $mount_tmp && rmdir $mount_tmp")){ + printmes("\n"); printmes(gettext('Error')); printmes("! "); + return ""; + } + printmes(gettext('done').".\n"); + + # После форматирования считаем uuid диска с данными, определим его метку + # $data{uuid_data}, $data{data_install_set} + $data{uuid_data} = `$data{path} vol_id --uuid $data{partitions_dev}5 2>/dev/null`; + chomp $data{uuid_data}; + if($data{'removableinstall'} eq 'on'){ + $data{data_install_set} = "UUID=$data{uuid_data}"; + }else{ + $data{data_install_set} = "$data{partitions_dev}5"; + } + } + + printmes(" ".gettext('Formatting new volume')); printmes("... "); + { + #отформатируем диск + if(system("$data{formatrun} $data{calculate}-$data{linuxver} $data{rootinstall} &>/dev/null")){ + printmes("\n"); printmes(gettext('Error')); printmes("! "); + printmes(gettext('Volume formatting failed')); printmes(".\n"); + return ""; + } } + printmes(gettext('done').".\n"); + } + + # После форматирования считаем uuid установочного диска, определим его метку + # $data{uuid_install}, $data{root_install_set} + $data{uuid_install} = `$data{path} vol_id --uuid $data{rootinstall} 2>/dev/null`; + chomp $data{uuid_install}; + if($data{'removableinstall'} eq 'on'){ + $data{root_install_set} = "UUID=$data{uuid_install}"; + }else{ + $data{root_install_set} = $data{rootinstall}; + } + + printmes(" ".gettext('Mounting new volume')); printmes("... "); + if(system "$data{path} mount $data{rootinstall} $data{mount}"){ + printmes("\n"); printmes(gettext('Error')); printmes("! "); + printmes(gettext('Mounting installation valume failed')); printmes(".\n"); return ""; + } + printmes(gettext('done').".\n"); + + #примонтируем iso если мы устанавливаем систему из iso образа диска + if($data{linux} =~m/iso$/){ + printmes(" ".gettext('Mounting ISO file')); printmes("... "); + if(system "$data{path} mkdir -p /mnt/cdrom && mount -o loop $data{linuxdir}/$data{linux} /mnt/cdrom"){ + printmes("\n\n".gettext('Error')."! "); + beep(); + system "$data{path} umount $data{mount}"; + return ""; + } + printmes(gettext('done').".\n"); + } + + my $unpack; + if(!$data{builder}){ + if($data{load} ne "ram" && $data{linux} !~m/iso$/){printmes(" ");} + printmes(gettext('Unpacking system image into new volume')); + if($data{load} eq "ram" || $data{linux} =~m/iso$/){print("\n");}else{printmes("... ");} + if($data{linux} =~m/7z$/){$unpack = "7za x -so $data{linuxdir}/$data{linux} 2>/dev/null | tar xf - -C $data{mount}";} + elsif($data{linux} =~m/lzma$/){$unpack = "lzma -dc $data{linuxdir}/$data{linux} | tar -xf - -C $data{mount}";} + else{$unpack = "$data{path} tar -xjpf $data{linuxdir}/$data{linux} -C $data{mount}";} + }else{ + printmes(" ".gettext('Unpack')); printmes(" $data{stage}... "); + $unpack = "$data{path} tar -xjpf $data{stagepath}/$data{stage} -C $data{mount}"; + } + + if( + (($data{load} ne "ram" && $data{linux} !~m/iso$/) && system($unpack)) || + (($data{load} eq "ram" || $data{linux} =~m/iso$/) && system("$data{path} unsquashfs -d $data{mount} -f /mnt/cdrom/livecd.squashfs")) + ){ + printmes("\n\n".gettext('Error')."! "); + printmes(gettext('Unpacking image failed')); printmes(". "); + printmes(gettext('Operation interrupted')); printmes(".\n"); + beep(); + + printmes(gettext('Abort')); printmes("...\n"); + printmes(gettext('Unmounting new volume')); printmes("..."); + system "$data{path} rm -f $data{mount}/etc/calculate/calculate.ini"; #удалим информацию об неустановленной системе + foreach( (0.2,0.5,1,2,4) ) { + if(system "($data{path} fuser -m $data{mount} 2>&1) >/dev/null") { + system "$data{path} umount $data{mount}"; + last; + } + sleep($_); + } + + if($data{linux} =~m/iso$/){system "$data{path} umount /mnt/cdrom";} + + printmes(" ".gettext('done').".\n"); + return ""; + } + if($data{load} ne "ram" && $data{linux} !~m/iso$/){ + printmes(gettext('done').".\n"); + } + + #отмонтируем /mnt/cdrom если мы устанавливали систему из файла ISO образа + if($data{linux} =~m/iso$/){system "$data{path} umount /mnt/cdrom";} + + if($data{builder}){ + printmes(" ".gettext('Unpack')); printmes(" $data{portage}..."); + if(system("$data{path} tar -xjf $data{portagepath}/$data{portage} -C $data{mount}/usr")){ + printmes("\n\n".gettext('Error')."! "); + printmes(gettext('Unpacking image failed')); printmes(". "); + printmes(gettext('Operation interrupted')); printmes(".\n"); + beep(); + + printmes(gettext('Abort')); printmes("...\n"); + printmes(gettext('Unmounting new volume')); printmes("..."); + system "$data{path} rm -f $data{mount}/etc/calculate/calculate.ini"; #удалим информацию об неустановленной системе + system "$data{path} umount $data{mount}"; + + printmes(" ".gettext('done').".\n"); + return ""; + } + printmes(" ".gettext('done').".\n"); + } + + return 1; +}; + +#------------------------------------------------------------------------------ +# +# Наложим обновления +# +#------------------------------------------------------------------------------ +sub profiles{ + printmes(gettext('Update config')."\n"); + foreach(@{$data{profile_install}}, @{$data{profile_share}}){ + profile($_); + }; + + return 1; +} + +#------------------------------------------------------------------------------ +# +# Выполним общие настройки системы +# +#------------------------------------------------------------------------------ +sub setup{ + printmes(gettext('System setup')."\n"); + + #восстановим inittab + if(-e "$data{chroot}/etc/inittab.old"){ + printmes(" ".gettext('Update')); printmes(" /etc/inittab..."); + system "$data{path} mv $data{chroot}/etc/inittab.old $data{chroot}/etc/inittab"; + printmes(" ".gettext('done').".\n"); + } + + #Создадим initrd-файл +# if(!$data{dif_march}){ + printmes(" ".gettext('Create new initrd file')); printmes("..."); + if(!initrd_clean($data{chroot})){ + beep(); + printmes(" ".gettext('error')."!\n"); + } +# } + + #Скопируем calculate в новую систему + printmes(" ".gettext('Copy')); printmes(" /usr/calculate/install..."); + if(system " + $data{path} rm -rf $data{chroot}/usr/calculate/install && + $data{path} cp -a $data{dir}/install $data{chroot}/usr/calculate/ &>/dev/null + " + ){ + beep(); + printmes(" ".gettext('error')."!\n"); + }else{ + printmes(" ".gettext('done').".\n"); + #создадим символическую ссылку на программу + `$data{path} ln -s /usr/calculate/install/calculate $data{chroot}/tmp && mv $data{chroot}/tmp/calculate $data{chroot}/usr/sbin/`; + } + + #Скопируем Calculate Overlay + if(-e "/usr/local/overlays/calculate"){ + printmes(" ".gettext('Copy')); printmes(" Calculate Overlay..."); + system " + $data{path} rm -rf $data{chroot}/usr/local/overlays && + $data{path} mkdir -p $data{chroot}/usr/local/overlays && + $data{path} cp -a /usr/local/overlays/calculate $data{chroot}/usr/local/overlays + "; + printmes(" ".gettext('done').".\n"); + } + + #Скопируем Portage + if(-e "/usr/portage/profiles" && !-e "$data{chroot}/usr/portage/profiles"){ + printmes(" ".gettext('Copy')); printmes(" Portage..."); + system " + $data{path} rm -rf $data{chroot}/usr/portage && + $data{path} cp -a /usr/portage $data{chroot}/usr/ + "; + printmes(" ".gettext('done').".\n"); + } + + #---------------------------------------------------------------------- + # Запросим пароль root-а + #---------------------------------------------------------------------- + if(`$data{path} cat /etc/shadow | grep '$data{hash_root}'`){ + `passwd`; + } + + #---------------------------------------------------------------------- + # Перенесем пароль рута + #---------------------------------------------------------------------- + system "$data{path} cat /etc/shadow | sed q > $data{'chroot'}/etc/shadow_new && + $data{path} cat $data{'chroot'}/etc/shadow | sed 1d >> $data{'chroot'}/etc/shadow_new"; + system "$data{path} cat /etc/shadow- | sed q > $data{'chroot'}/etc/shadow-_new && + $data{path} cat $data{'chroot'}/etc/shadow- | sed 1d >> $data{'chroot'}/etc/shadow-_new"; + + system "$data{path} mv $data{'chroot'}/etc/shadow_new $data{'chroot'}/etc/shadow"; + system "$data{path} mv $data{'chroot'}/etc/shadow-_new $data{'chroot'}/etc/shadow-"; + + system "$data{path} chmod 700 $data{'chroot'}/etc/shadow"; + system "$data{path} chmod 700 $data{'chroot'}/etc/shadow-"; + + #---------------------------------------------------------------------- + # Пропишем клиент в автозагрузку, если компьютер в домене + #---------------------------------------------------------------------- + if($data{server} eq "CDS" && -e "/etc/runlevels/default/client"){ + system "$data{path} cp -a /etc/runlevels/default/client $data{'chroot'}/etc/runlevels/default/client"; + } + + #---------------------------------------------------------------------- + # Скопируем оригинальные ключи ssh + #---------------------------------------------------------------------- + if($data{load} ne "ram"){ + printmes(" ".gettext('Copy original ssh keys')); printmes("..."); + system "$data{path} cp -a /etc/ssh/ssh_host_* $data{'chroot'}/etc/ssh/"; + printmes(" ".gettext('done').".\n"); + } + + #---------------------------------------------------------------------- + # Скопируем udev-правила, если в системе более одной сетевой карты + #---------------------------------------------------------------------- + { + my $rule = "/etc/udev/rules.d/70-persistent-net.rules"; + if($data{net_eth1} && -e $rule){ + printmes(" ".gettext('Copy udev net rules')); printmes("..."); + system "$data{path} cp -a $rule $data{'chroot'}$rule"; + printmes(" ".gettext('done').".\n"); + } } + + #---------------------------------------------------------------------- + # Настроим make.conf + #---------------------------------------------------------------------- + printmes(" ".gettext('Update')); printmes(" /etc/make.conf..."); + { + my $vars; + if(number_ver($data{linuxver}) >= number_ver(8.9)){ + $vars.=qq#PKGDIR="$data{pkgdir}"\n#; + } + $vars.= qq#MAKEOPTS="$data{makeopts}"\n#; + open (F,">>$data{'chroot'}/etc/make.conf"); flock(F, 2); print F $vars; close (F); + } + printmes(" ".gettext('done').".\n"); + + #---------------------------------------------------------------------- + # Пропишем название в загрузочный скрипт + #---------------------------------------------------------------------- + if(number_ver($data{linuxver}) < number_ver(9.5)){ + printmes(" ".gettext('Update')); printmes(" /sbin/rc..."); + my $rcscript; + my $rcpath = "$data{'chroot'}/sbin/rc"; + if(-e $rcpath){ + open(R, $rcpath); + foreach(){ + $_=~s/(.*)Gentoo Linux\${GENTOO_VERS}; \${BRACKET}http:\/\/www\.gentoo\.org\/(.*)/$1$data{calculatename} $data{linuxver}; http\/\/www.calculate-linux.org$2/; + $_=~s/(.+)Copyright.+Gentoo Foundation;(.+)/$1Copyright 2008 Calculate Pack;$2/; + $rcscript .= $_; + } + close(R); + open(C, ">$rcpath"); print C $rcscript; close(C); + + printmes(" ".gettext('done').".\n"); + }else{ + printmes(" ".gettext('file not found')." $rcpath.\n"); + } } + + #---------------------------------------------------------------------- + # Сохраним диск, с которого произвелась установка + # за исключением установки с CD или с ПК на USB или с USB на ПК + #---------------------------------------------------------------------- + if( $data{load} ne "ram" && + ($data{'removableload'} eq $data{'removableinstall'}) + ){ + putini("install.devfrom" => $data{rootload}, "chroot"); + } + + return 1; +} + + +#------------------------------------------------------------------------------ +# +# Подготовим систему к перезагрузке +# +#------------------------------------------------------------------------------ +sub loader{ + printmes(gettext('Prepare system for reboot')); printmes("\n"); + + #пропишем grub в автозагрузку, изменим MBR запись + if($data{mbr} eq "on"){ + printmes(" ".gettext('Change boot record')); + printmes("..."); + if(system "$data{path} chroot $data{'chroot'} /sbin/grub --device-map=/boot/grub/device.map --batch </dev/null\n". + "root ($data{grubinstall})\n". + "setup (hd0)\n". + "quit\n". + "EOF"){ + printmes(" ".gettext('error').".\n"); + }else{ + printmes(" ".gettext('done')); printmes(".\n"); + } + #printenc(" Изменим grub..."); + #system("$data{path} chroot $data{'chroot'} /sbin/grub-install /dev/$data{ide}"); + #printmes(" ".gettext('done').".\n"); + } + + #Отмонтируем устанавливаемый диск + printmes(" ".gettext('Unmount installed system volume')); printmes("..."); + if(system("$data{path} umount $data{'chroot'}")){ + printmes(" ".gettext('error').".\n"); + return ""; + }else{ + printmes(" ".gettext('done')); printmes(".\n"); + } + + return 1; +} + +#------------------------------------------------------------------------------ +# +# Перезагрузим компьютер +# +#------------------------------------------------------------------------------ +sub reboot{ + printmes(" ".gettext('Detect logged in users')); printmes("... "); printmes(gettext('done').".\n"); + if(`$data{path} w -hs` || $data{load} eq "ram"){ + printmes("\n".gettext('To apply changes you have to reboot').".\n"); + }else{ + printmes(" ".gettext('Perform reboot')); printmes("..."); + system "$data{path} shutdown -r now"; + printmes(" ".gettext('done').".\n"); + } + return 1; +} + +#------------------------------------------------------------------------------ +# +# Выведем список переменных конфигурационных файлов +# +#------------------------------------------------------------------------------ +sub printvars{ + printmes(gettext('Config files variables list').":\n"); + my ($vars,$tab); + foreach(sort keys %data){ + #пропустим внутренние переменные + if($_=~m/[A-Z]/ || $data{$_}=~m/^HASH/){next;} + my $data; + if($data{$_}=~m/^ARRAY/){$data = "@{$data{$_}}";}else{$data = $data{$_};} + + if(length(" #-$_-#") < 16){$tab = "\t";}else{$tab = "";} + my $w = "r"; if(${$data{write}}{$_}){$w = "w";} + + my $other; if(@{$data{other}}{$_}){ + my $skip = $data{$_}; + foreach(@{${$data{other}}{$_}}){ + if($_ eq $skip){next;} + if($other){$other.=", ";} + $other .= "$_"; + } + $other = " [$other]"; + } + + printmes(" #-$_-#\t${tab}[$w] \"$data\"$other\n"); + } + return 1; +} +#------------------------------------------------------------------------------ +# +# Выведем конфигурацию ПК +# +#------------------------------------------------------------------------------ +sub printhardware{ + printmes(" ".gettext('Vendor')); printmes(": "); + if($data{vendor}){ + printmes(gettext($data{vendor}."\n")); + }else{ + printmes("<"); printmes(gettext('undefined')); printmes(">\n"); + } + + if($data{laptop_model}){ + printmes(" ".gettext('Model')); printmes(": "); + printmes(gettext($data{laptop_model}."\n")); + } + if($data{board_model}){ + printmes(" ".gettext('Motherboard')); printmes(": "); + printmes("$data{board_model} ($data{board_vendor})\n"); + } + + if($data{video}){ + printmes(" ".gettext('Videocard')); + printmes(": $data{video}\n"); + } + if($data{video_resolution}){ + printmes(" ".gettext('Screen resolution')); + printmes(": $data{video_resolution}\n"); + } + + #получим информацию из hal + if(-e "/usr/bin/hal-device"){ + my (%hw, %hwlink); #параметры устройств и ссылки на идентификаторы устройств + my (%hdd, %cdrom); #хэши доступных дисков + { + my ($udi); + foreach(`/usr/bin/hal-device`){ + chomp; + if($_){ + if(m/^[0-9]+: /){ + $udi = $_; + }else{ + m/^\s*([^=]+) = ([^=]+)?(\(string\)|\(int\)|\(uint64\)|\(string list\))$/; + my $var = $1; my $val = $2; + $val =~s/^([^\s]+)\s+\(.+/$1/; #уберем значение в скобках + $val =~s/^'([^']+)'\s+.+/$1/; #уберем кавычки + $hw{$udi}{$var} = $val; #устройство-параметр - значение + + #определим устройства + if(m#block.device = '/dev/(sd[a-z])'#){ + $hwlink{$1} = $udi; #указатель на запись устройства hdd + $hdd{$1}++; + }elsif(m#block.device = '/dev/(sr[0-9])'#){ + $hwlink{$1} = $udi; #указатель на запись устройства cd-rom + $cdrom{$1}++; + }elsif(m#linux.acpi_path = '/proc/acpi/processor/(CPU0)'#){ + $hwlink{$1} = $udi; #указатель на запись устройства cd-rom + } + } } } } + + printmes(" ".gettext('Hard disks')); printmes(":\n"); + foreach(sort keys %hdd){ + my $size = sprintf("%0.0f",$hw{$hwlink{$_}}{'storage.size'}/1000000000); + printmes(" $_: $size Gb ($hw{$hwlink{$_}}{'info.product'})\n"); + } + } +} + +#------------------------------------------------------------------------------ +# +# Выведем сообщение в текущей локали +# +#------------------------------------------------------------------------------ +sub printmes{ + if($data{NOMES}){return "";} #флаг не печатать сообщения + + #определим наличие установленной программы gettext + #и очистим файл лога + if(!defined $date{gettext}){ + my $gettext = `$data{path} which gettext`; chomp $gettext; + if($gettext){ $date{gettext}++; } + else{ $date{gettext}=''; } + } + + #считаем входящее сообщение + my $mes = $_[0]; + $mes=~s/'/"/g; + + #ведем лог + $data{LOG} .= $mes; + if($date{gettext}){ + my ($from, $after); + #обрежем левые и правые отступы для перевода фразы + if($mes=~m/^(\s*)(.+)([!?:\.]\s*)$/ || $mes=~m/^(\s*)(.+)(\s*)$/){ + $from = $1; $mes = $2; $after = $3; + } + if($mes){ + my $text; + if($mes!~/^\-/){$text = "gettext -n -d calculate -s '$mes'";} + else{$text = "echo -n '$mes'";} + system "export TEXTDOMAINDIR='$data{dir}/install/i18n'; echo -n '$from'; $text; echo -n '$after'"; + } + }else{ + print $mes; + } + + return 1; +} + +#------------------------------------------------------------------------------ +# +# Локализация. Процедура нужна для извлечения переводимых строк xgettext-ом +# +#------------------------------------------------------------------------------ +sub gettext{ + return $_[0]; +} + +#------------------------------------------------------------------------------ +# +# Ведение log-файла +# +#------------------------------------------------------------------------------ +sub savelog{ + my $id = `$data{path} id -u`; chomp $id; + if(!$data{NOLOG} && $id == 0){ + if(!-e "/var/log/calculate"){ + system "$data{path} mkdir -m 755 /var/log/calculate"; + } + open (F,">/var/log/calculate/install.log"); flock(F, 2); print F $data{LOG}; close (F); + } + return 1; +} + +#------------------------------------------------------------------------------ +# +# Сообщение об ошибке неправильно введенного аргумента +# +#------------------------------------------------------------------------------ +sub errorarg{ + my $arg = $_[0]; + + printmes(gettext('Unrecognized option')); printmes(" '$arg'.\n"); + printmes(gettext('Try')); printmes(" 'calculate --help' "); printmes(gettext('for more information')); + printmes(".\n"); + beep(); + + return 1; +} + +#------------------------------------------------------------------------------ +# +# Наложим профили обновления +# +#------------------------------------------------------------------------------ +sub profile{ + my $profile = $_[0]; + my $title = $_[1]; #обозначение профиля + if(!$title){ $title = $profile; $title =~s/.+\/([^\/]+)\/[^\/]+\/([^\/]+)$/$1\/$2/; } + $title=~s/^(.+)\?(.+)/$1/; + printmes(" ".gettext('Apply profile')); printmes(" \"$title\"..."); + #Profile file + $data{title} = + $data{mesline}."\n". + $data{mestitle}."\n". + qq|# Do not edit this file. Changes to profile "$title"\n|. + $data{mesline}; + + #создадим пути и права доступа к файлам, аналогичные профилю + my @dir = `$data{path} find "$profile" -type d`; + foreach(@dir){ + chomp; + my $recpath; #по заданным маскам поменяем права на директории + foreach(split "/", substr($_, length($profile))){ + $recpath.= "$_/"; + if(!-e $data{'chroot'}.$recpath){ + system qq|$data{path} mkdir -p $data{'chroot'}$recpath|; + if($recpath=~m|/\.ssh/|){ + system qq|$data{path} chmod 700 "$data{'chroot'}$recpath"|; + } } } } + + #извлечем файлы профиля + my @conf = `$data{path} find "$profile" -type f`; + foreach(@conf){ + chomp; + my $allocation = $data{'chroot'}.substr($_, length($profile)); + + #проверим имя файла фрофиля перед переносом в систему + $allocation = check_name($allocation); if(!$allocation){next;} + #извлечем текстовый файл профиля + if(`$data{path} file "$_" | grep text`){ + $data{file}{name} = $_; + #считаем файл + open(C, $data{file}{name}); my (@conf) = ; close(C); + #преобразуем файл + @conf = convert(lines => [@conf]); + #выполним подмены настройками из старой системы + if($data{pass} ne "builder"){ + if( + $allocation eq $data{'chroot'}.'/etc/fstab' && + @{$data{mount_line}} && + $data{'move_fstab'} eq 'on' + ){ + @conf = move_fstab(@conf); + } + } + #сохраним обработанный файл в директории установки + my $fname = $allocation; $fname=~m/^(.*\/)([^\/]+)$/; + if(substr($2,0,1) eq "^"){ + #допишем в конец файла без значка + open(C, ">>".$1.substr($2,1)); print C @conf; close(C); + }elsif(substr($2,0,1) eq "~"){ + #if(-e $1.substr($2,1)){ #проверка на существование файла + #подменим переменные конфигурационного файла новыми значениями + open(C, $1.substr($2,1)); my (@original) = ; close(C); #считаем оригинальный файл + my @save = substitution([@original], [@conf]); + open(C, ">".$1.substr($2,1)); print C @save; close(C); + #} + }else{ + system "$data{path} rm -f \"$allocation\""; #удалим на случай если стоит ссылка на другой файл + open(C, ">$allocation"); print C @conf; close(C); + if($recpath=~m|/ssh/| || $recpath=~m|/etc/sudoers|){ + system "$data{path} chmod 600 $allocation"; + }elsif( $recpath=~m|/config/kdm/X| || + $recpath=~m|/etc/cron\.| || + $recpath=~m|/etc/init\.d/| || + $recpath=~m|/usr/local/bin/| || + $recpath=~m|/sbin/| + ){ + system "$data{path} chmod 755 $allocation"; + } + } + + }elsif(`$data{path} file "$_" | grep empty`){ + `$data{path} rm -f "$allocation"`; + }else{ + #перенесем без обработки бинарный файл + `$data{path} cp -a "$_" "$allocation"`; + } + } + + #создадим символическую ссылку на Zoneinfo + if(!$data{builder}){ + `$data{path} rm -rf $data{chroot}/tmp/localtime && + ln -s /usr/share/zoneinfo/$data{timezone} $data{chroot}/tmp/localtime && + mv $data{chroot}/tmp/localtime $data{chroot}/etc/ + `; + } + + #создадим символические ссылки аналогичные профилю + my @dir = `$data{path} find "$profile" -type l`; + foreach(@dir){ + chomp; + #уберем ссылки на несуществующие файлы + `$data{path} file "$_"`=~m/\`([^']+)'/; + my $dest = $1; + if( + !$data{builder} && + ( + #проверим прямую ссылку + ($dest=~m/^[\/]/ && !-e "$data{'chroot'}$dest") + || + #ссылка со смещением относительно текущей директории + (m/^[^\/]/ && "$data{'chroot'}$profile/$dest") + ) + ){ + next; + } + #выделим путь из профиля + my $allocation = $data{'chroot'}.substr($_, length($profile)); + #проверим имя файла фрофиля перед переносом в систему + $allocation = check_name($allocation); if(!$allocation){next;} + #скопируем ссылку + if(-e $allocation){`$data{path} rm $allocation`} + `$data{path} cp -a "$_" "$allocation"`; + } + if(!$data{file}{error}){ + printmes(" ".gettext('done').".\n"); + }else{ + printmes("\n"); + $data{file}{error} = ''; + } +} + +#------------------------------------------------------------------------------ +# +# Проверим на доступное обновление на сайте проекта +# +#------------------------------------------------------------------------------ +sub checkupdate{ + printmes(gettext('Checking for updates available')); printmes("\n"); + + printmes(" ".gettext('Get available packages list')); printmes("..."); + + #Создадим временную директорию, если ее нет + if(!-e "$data{tmpdir}"){ system "$data{path} mkdir -p $data{tmpdir}"; } + + if(system("$data{exec_wget} --cache=off --quiet ftp://ftp.calculate-linux.ru/pub/calculate/calculate/ -O $data{tmpdir}/index")){ + printmes(" ".gettext('error').".\n"); + return ""; + }else{ + printmes(" ".gettext('done').".\n"); + } + + #считаем файл имен пакетов Calculate + open (F,"$data{tmpdir}/index"); + my $tmp = $/; undef $/; my $index=; $/ = $tmp; + close (F); + `rm -rf "$data{tmpdir}/index"`; + + printmes(" ".gettext('Perform updates search')); printmes("..."); + + #определим имя файла пакета Calculate + my $calcname = "calculate-".$data{"calcver"}.".tar.bz2"; + #первый пробел меняем на тире, остальные убираем (для поддержки написания бета версий) + $calcname =~s/ /-/; $calcname =~s/ //g; + + my ($calculate_last); + foreach(split "\n", $index){ + if(m/\/pub\/calculate\/calculate\/(calculate\-[0-9\.\-beta]+\.tar\.bz2)/){ + if($calculate_last lt $1){ + $calculate_last = $1 + } + } + } + printmes(" ".gettext('done').".\n"); + + my $flagnew = 0; + #если найденное обновление не выше существующей версии (<=) + if($calculate_last le $calcname && !defined $data{arg}{'force'}){ +# printmes("\n".gettext('No updates available')); printmes(".\n"); +# return 1; + }else{ + printmes("\n".gettext('Update found')); printmes(": $calculate_last\n"); + + printmes("\n".gettext('Perform installation')); printmes("\n"); + printmes(" ".gettext('Downloading update package')); printmes("..."); + + `$data{path} rm -rf "$data{tmpdir}/$calculate_last*"`; #удалим, для избежания возможных ошибок + if(system("$data{exec_wget} -c --quiet ftp://ftp.calculate-linux.ru/pub/calculate/calculate/$calculate_last -O $data{tmpdir}/$calculate_last && $data{exec_wget} -c --quiet ftp://ftp.calculate-linux.ru/pub/calculate/calculate/${calculate_last}.DIGESTS -O $data{tmpdir}/${calculate_last}.DIGESTS")){ + printmes(" ".gettext('error').".\n"); + return ""; + }else{ + printmes(" ".gettext('done').".\n"); + } + + printmes(" ".gettext('Check the checksum')); printmes("..."); + if(!check_digests("$data{tmpdir}/$calculate_last")){ + printmes(" ".gettext('error').".\n"); + #удалим, т.к. контрольные суммы не совпадают + printmes(" ".gettext('Delete temporary files')); printmes("..."); + if(`rm -rf "$data{tmpdir}/$calculate_last*"`){ + printmes(" ".gettext('error').".\n"); + }else{ + printmes(" ".gettext('done')); printmes(".\n"); + } + return ""; + }else{ + printmes(" ".gettext('done').".\n"); + } + + printmes(" ".gettext('Unpack the update')); printmes("..."); + system("$data{path} mkdir install-old && cp -a install/* install-old && rm -rf install/*"); + if(system("$data{path} tar -xjf $data{tmpdir}/$calculate_last -C ..")){ + printmes(" ".gettext('error').".\n"); + system("$data{path} rm -rf install/* && cp -a install-old/* install && rm -rf install-old"); + return ""; + }else{ + system("$data{path} rm -rf install-old"); + printmes(" ".gettext('done').".\n"); + } + $flagnew ++; + } + + printmes(" ".gettext('Get')); printmes(" Calculate Overlay"); printmes("..."); + if( + system("$data{exec_wget} --quiet -r --level=6 --no-parent --reject index.html --directory-prefix=/tmp http://svn.calculate.ru/overlay/") || + system("rm -rf /usr/local/overlays/calculate") || + system("mv /tmp/svn.calculate.ru/overlay /usr/local/overlays/calculate") || + system("rmdir /tmp/svn.calculate.ru") + ){ + printmes(" ".gettext('error').".\n"); + }else{ + printmes(" ".gettext('done').".\n"); + } + + if(-e "/usr/bin/update-eix"){ + printmes(" ".gettext('Run')); printmes(" update-eix..."); + if(system("/usr/bin/update-eix &>/dev/null")){ + printmes(" ".gettext('error').".\n"); + }else{ + printmes(" ".gettext('done').".\n"); + } } + + if($flagnew){ + printmes("\n".gettext('Latest update successfully installed')); printmes("!\n"); + }else{ + printmes(gettext('All done')); printmes("!\n"); + } + + return 1; +} + +#------------------------------------------------------------------------------ +# +# Подготовим систему к сборке +# +#------------------------------------------------------------------------------ +sub configure{ + #printmes(gettext('Perform checkouts')); printmes("\n"); + #printmes(" ".gettext('New release number')); printmes("..."); + + #Подмонтируем /proc + printmes(" ".gettext('Mount')); printmes(" /proc..."); + if(system "$data{path} mount -t proc none $data{chroot}/proc &>/dev/null"){ + printmes(" ".gettext('error')."!\n"); + umountbuild(); return ''; + } + printmes(" ".gettext('done').".\n"); + + #Подмонтируем /dev + printmes(" ".gettext('Mount')); printmes(" /dev..."); + if(system "$data{path} mount -o bind /dev $data{chroot}/dev &>/dev/null"){ + printmes(" ".gettext('error')."!\n"); + umountbuild(); return ''; + } + printmes(" ".gettext('done').".\n"); + + #Наложим профили на распакованный образ + profiles(); + + #Перенесем в calculate.ini некоторые переменные + putini("linuxver" => $data{"linuxver"}, "chroot"); + putini("calculate" => $data{"calculate"}, "chroot"); + putini("system" => $data{"system"}, "chroot"); + + #Подмонтируем /usr/calculate/install + printmes(" ".gettext('Mount')); printmes(" /usr/calculate/install..."); + if(system "$data{path} mount -o bind /usr/calculate/install $data{chroot}/usr/calculate/install &>/dev/null"){ + printmes(" ".gettext('error')."!\n"); + umountbuild(); return ''; + } + printmes(" ".gettext('done').".\n"); + + #Подмонтируем /usr/calculate/share + printmes(" ".gettext('Mount')); printmes(" /usr/calculate/share..."); + if(system "$data{path} mount -o bind /usr/calculate/share $data{chroot}/usr/calculate/share &>/dev/null"){ + printmes(" ".gettext('error')."!\n"); + umountbuild(); return ''; + } + printmes(" ".gettext('done').".\n"); + + #Скопируем /etc/resolv.conf + printmes(" ".gettext('Copy')); printmes(" /etc/resolv.conf..."); + if(system "$data{path} cp /etc/resolv.conf $data{chroot}/etc/ &>/dev/null"){ + beep(); + printmes(" ".gettext('error')."!\n"); + }else{ + printmes(" ".gettext('done').".\n"); + } + + #Пропатчим /etc/login.defs + printmes(" ".gettext('Put a patch')); printmes(" /etc/login.defs..."); + system "$data{path} cp $data{chroot}/etc/login.defs $data{chroot}/etc/login.defs.old"; + if(system "$data{path} sed -i -r 's/^GID_MIN.*/GID_MIN\t\t\t 100/' $data{chroot}/etc/login.defs && + $data{path} sed -i -r 's/^UID_MIN.*/UID_MIN\t\t\t 100/' $data{chroot}/etc/login.defs" + ){ + beep(); + printmes(" ".gettext('error')."!\n"); + }else{ + printmes(" ".gettext('done').".\n"); + } + + #Выполним в chroot-окружении + printmes(gettext('Execute in chroot environment')); printmes("\n"); + #chroot emerge --metadata + printmes(" ".gettext('Execute')); printmes(" emerge --metadata..."); + if(system "$data{emergerun1} --metadata $data{emergerun2} &>/dev/null"){ + printmes(" ".gettext('error')."!\n"); + umountbuild(); return ''; + }else{ + printmes(" ".gettext('done').".\n"); + } + + #chroot emerge --sync + printmes(" ".gettext('Perform portages update')); printmes("..."); + if(system "$data{emergerun1} --sync $data{emergerun2} &>/dev/null"){ + beep(); + printmes(" ".gettext('error')."!\n"); + }else{ + printmes(" ".gettext('done').".\n"); + } + + #chroot update overlay + printmes(" ".gettext('Perform calculate overlay update')); printmes("..."); + if( + system("$data{exec_wget} --quiet -r --level=6 --no-parent --reject index.html --directory-prefix=/tmp http://svn.calculate.ru/overlay/") || + system("rm -rf $data{chroot}/usr/local/overlays/calculate") || + system("mkdir $data{chroot}/usr/local/overlays") || + system("mv /tmp/svn.calculate.ru/overlay $data{chroot}/usr/local/overlays/calculate") || + system("rmdir /tmp/svn.calculate.ru") + ){ + printmes(" ".gettext('error').".\n"); + }else{ + printmes(" ".gettext('done').".\n"); + } + + #chroot emerge sys-apps/portage + printmes(" ".gettext('Execute')); printmes(" emerge sys-apps/portage..."); + if(system "$data{emergerun1} sys-apps/portage $data{emergerun2} &>/dev/null"){ + printmes(" ".gettext('error')."!\n"); umountbuild(); + return ''; + }else{ + printmes(" ".gettext('done').".\n"); + } + + #chroot emerge sys-kernel/calculate-sources + printmes(" ".gettext('Install the kernel')); printmes("..."); + if(system "$data{emergerun1} sys-kernel/calculate-sources $data{emergerun2} &>/dev/null"){ + printmes(" ".gettext('error')."!\n"); + umountbuild(); return ''; + }else{ + printmes(" ".gettext('done').".\n"); + } + + #скопируем настройки ядра + #имя файла настроек ядра + $data{kernel_config_name} = "config?system=$data{system}&march=$data{march}"; + + #определим путь к настройкам ядра + $data{kernel_config_loadpath} = "/usr/calculate/share/builder/kernel"; + if(!-e "$data{kernel_config_loadpath}/$data{kernel_config_name}"){ + $data{kernel_config_loadpath} = "$data{dir}/install/builder/kernel"; + } + + #путь установок ядра для сохранения + $data{kernel_config_savepath} = "/usr/calculate/share/builder/kernel"; + + #путь установок ядра в собираемой системе + $data{kernel_config_build} = "$data{chroot}/usr/src/linux/.config"; + + #скопируем настройки ядра + if(-e "$data{kernel_config_loadpath}/$data{kernel_config_name}"){ + system "$data{path} cp '$data{kernel_config_loadpath}/$data{kernel_config_name}' '$data{kernel_config_build}'"; + } + + #выполним make oldconfig + printmes(" ".gettext('Execute')); printmes(" make oldconfig...\n"); + if(system qq|$data{path} chroot $data{chroot} /usr/calculate/install/calculate --chroot="cd /usr/src/linux && make oldconfig"|){ + printmes(" ".gettext('error')."!\n"); + umountbuild(); return ''; + }else{ + printmes(" ".gettext('done').".\n"); + } + + #выполним make menuconfig + if($data{menuconfig} eq 'on'){ + #chroot make menuconfig + printmes(" ".gettext('Execute')); printmes(" make menuconfig...\n"); + beep(); + if(system qq|$data{path} chroot $data{chroot} /usr/calculate/install/calculate --chroot="cd /usr/src/linux && make menuconfig"|){ + printmes(" ".gettext('error')."!\n"); + umountbuild(); return ''; + }else{ + printmes(" ".gettext('done').".\n"); + } } + + #сохраним измененные настройки ядра + if(-e "$data{kernel_config_build}"){ + printmes(" ".gettext('Save kernel config')); printmes("..."); + if(system "$data{path} mkdir -p $data{kernel_config_savepath} && cp -f '$data{kernel_config_build}' '$data{kernel_config_savepath}/$data{kernel_config_name}'"){ + printmes(" ".gettext('error')."!\n"); + umountbuild(); return ''; + }else{ + printmes(" ".gettext('done').".\n"); + } } + + #chroot emerge sys-apps/v86d + printmes(" ".gettext('Execute')); printmes(" emerge sys-apps/v86d..."); + if(system "$data{emergerun1} sys-apps/v86d $data{emergerun2} &>/dev/null"){ + printmes(" ".gettext('error')."!\n"); + umountbuild(); return ''; + }else{ + printmes(" ".gettext('done').".\n"); + } + + #chroot emerge sys-apps/openrc + printmes(" ".gettext('Execute')); printmes(" emerge sys-apps/openrc..."); + system "$data{emergerun1} -C sys-apps/baselayout $data{emergerun2} &>/dev/null"; + system "$data{path} rm $data{chroot}/etc/init.d/depscan.sh $data{chroot}/etc/init.d/functions.sh $data{chroot}/etc/init.d/net.eth0 $data{chroot}/etc/init.d/runscript.sh"; + if(system "$data{emergerun1} sys-apps/openrc sys-apps/sysvinit sys-fs/udev $data{emergerun2} &>/dev/null"){ + printmes(" ".gettext('error')."!\n"); + #umountbuild(); + return ''; + }else{ + printmes(" ".gettext('done').".\n"); + } + + #chroot make -jX && make modules_install + printmes(" ".gettext('Execute')); printmes(" make $data{makeopts} && make modules_install...\n"); + if(system qq|$data{path} chroot $data{chroot} /usr/calculate/install/calculate --chroot="cd /usr/src/linux && make $data{makeopts} && make modules_install"|){ + #выходим но не прерываем сборку + printmes("\n".gettext('error')."! "); + umountbuild(); return ''; + }else{ + printmes(" ".gettext('done').".\n"); + } + + #chroot groupadd games + printmes(" ".gettext('Execute')); printmes(" groupadd -g 35 games..."); + if(system "$data{path} chroot $data{chroot} /usr/sbin/groupadd -g 35 games &>/dev/null"){ + printmes(" ".gettext('error')."!\n"); + umountbuild(); return ''; + }else{ + printmes(" ".gettext('done').".\n"); + } + + #chroot groupadd plugdev + printmes(" ".gettext('Execute')); printmes(" groupadd -g 440 plugdev..."); + if(system "$data{path} chroot $data{chroot} /usr/sbin/groupadd -g 440 plugdev &>/dev/null"){ + printmes(" ".gettext('error')."!\n"); + umountbuild(); return ''; + }else{ + printmes(" ".gettext('done').".\n"); + } + + #chroot groupadd scanner + printmes(" ".gettext('Execute')); printmes(" groupadd -g 441 scanner..."); + if(system "$data{path} chroot $data{chroot} /usr/sbin/groupadd -g 441 scanner &>/dev/null"){ + printmes(" ".gettext('error')."!\n"); + umountbuild(); return ''; + }else{ + printmes(" ".gettext('done').".\n"); + } + + #chroot groupadd vboxusers + printmes(" ".gettext('Execute')); printmes(" groupadd -g 442 vboxusers..."); + if(system "$data{path} chroot $data{chroot} /usr/sbin/groupadd -g 442 vboxusers &>/dev/null"){ + printmes(" ".gettext('error')."!\n"); + umountbuild(); return ''; + }else{ + printmes(" ".gettext('done').".\n"); + } + + if($data{calculate} eq "CLD"){ + printmes(" ".gettext('Execute')); printmes(" useradd vboxadd..."); + if(system "$data{path} chroot $data{chroot} /usr/sbin/useradd -d /var/run/vboxadd -g 1 -c \"added by Calculate for virtualbox\" -s /bin/sh vboxadd &>/dev/null"){ + printmes(" ".gettext('error')."!\n"); + umountbuild(); return ''; + }else{ + printmes(" ".gettext('done').".\n"); + } } + + #chroot useradd p2p + if($data{calculate} eq "CDS"){ + printmes(" ".gettext('Execute')); printmes(" useradd -g 100 p2p..."); + if(system "$data{path} chroot $data{chroot} /usr/sbin/useradd -u 101 -g 100 -G wheel -c \"added by Calculate for p2p\" -s /sbin/bash p2p &>/dev/null"){ + printmes(" ".gettext('error')."!\n"); + umountbuild(); return ''; + }else{ + printmes(" ".gettext('done').".\n"); + system "$data{path} chroot $data{chroot} /bin/mkdir -m 700 /home/p2p"; + system "$data{path} chroot $data{chroot} /bin/chown p2p:root /home/p2p"; + } } + + beep(); + printmes(gettext('All done')); printmes("! "); + printmes(gettext('Ready for packages installation')); printmes(".\n"); + + return 1; +} + + +#------------------------------------------------------------------------------ +# +# Отмонтируем диски в случае прерывания сборки +# +#------------------------------------------------------------------------------ +sub umountbuild{ + printmes(gettext('Operation interrupted')); printmes(".\n"); + printmes(gettext('Abort')); printmes("...\n"); + beep(); + + #отмонтируем все директории и точку монтирования + umount_build_all(); +} + +#------------------------------------------------------------------------------ +# +# Покажем список пакетов для установки +# +#------------------------------------------------------------------------------ +sub list{ + printmes(gettext('Package list incoming in distributive file')); printmes("...\n"); + + #отобразим на экране список пакетов + my $i = 0; + foreach(packages()){ + printmes("$_\n"); + $i++; + } + + printmes("\n"); + printmes(gettext('All')); printmes(" $i "); printmes(gettext('packages')); + printmes(".\n"); + + return 1; +} + +#------------------------------------------------------------------------------ +# +# Вернем список пакетов для сборки +# либо пакетов дополнений +# +#------------------------------------------------------------------------------ +sub packages{ + #определим директории для нашей конфигурации файлов со списком пакетов + my @dir; + + if(!defined $data{addition} && !@{$data{packageslist}}){ + foreach(@{$data{packages}}){ + if(-e $_){ + my $path_packages = $_; + opendir(DIR, $path_packages); + foreach(readdir DIR){ + if($_ eq "." || $_ eq ".."){next;} + if(check_name($_)){push(@dir, "$path_packages/$_");} + } + closedir DIR; + if(!$chkdir){push(@dir, "$path_packages");} + } } + }elsif(@{$data{packageslist}}){ + return @{$data{packageslist}}; + }else{ + #---------------------------------------------------------------------- + # Пути к директориям пакетов дополнений + # @{$data{packages}) + #---------------------------------------------------------------------- + @{$data{packages}} = ( + "$data{dir}/install/builder/addition/$data{calculate}", + "/usr/calculate/share/builder/addition/$data{calculate}", + ); + + foreach(@{$data{packages}}){ + if(-e "$_/$data{addition}"){ + push(@dir, "$_/$data{addition}"); + } } } + + #считаем список файлов пакетов + my @files = (); + foreach(@dir){ + my $path = "$_"; + opendir(DIR, $path); + foreach(readdir DIR){ + if($_ eq "." || $_ eq ".."){next;} + push (@files, "$path/$_"); + } + closedir DIR; + } + + #извлечем имена пакетов из файлов + my %pack = (); + foreach(@files){ + $data{file}{name} = $_; + open(R, $data{file}{name}); + my @lines = ; + close(R); + foreach(convert(lines => [@lines], nocomment => yes)){ + chomp $_; + $pack{$_}++; + } + } + + #соберем список пакетов в массив + my @packages; + foreach(sort keys %pack){ + push (@packages, $_); + } +# print ">@packages<"; + + return @packages; +} + +#------------------------------------------------------------------------------ +# +# Проверка зависимостей устанавливаемых пакетов +# +#------------------------------------------------------------------------------ +sub dependence{ + my $hide = $_[0]; #скрыть вывод списка пакетов после проверки + printmes(gettext('Check of dependences')); printmes("...\n"); + my ($pack, $mask); + while (($pack, $mask) = emerge_pretend()){ + if($mask eq 'keywords'){ + printmes(" ".gettext('Add')); printmes(" \"$pack $data{unmask}\" >> package.keywords/dependence\n"); + my $keywords = "$data{'chroot'}/etc/portage/package.keywords/dependence"; + if(!-e $keywords){system "echo '$data{mesline}\n$data{mestitle}\n$data{mesline}' >> $keywords";} + system "echo $pack $data{unmask} >> $keywords"; + }elsif($mask eq 'unmask'){ + printmes(" ".gettext('Add')); printmes(" \"$pack\" >> package.unmask/dependence\n"); + my $unmask = "$data{'chroot'}/etc/portage/package.unmask/dependence"; + if(!-e $unmask){system "echo '$data{mesline}\n$data{mestitle}\n$data{mesline}' >> $unmask";} + system "echo $pack >> $unmask"; + }elsif($mask eq 'reverse'){ + next; #пропустим звуковое предупреждение + }else{ + last; + } + beep(); + } + if($pack){ + printmes("\n".gettext('All done')); printmes("!\n"); + } + + if(!$hide){ + my @packages = packages(); + system "$data{emergerun1} -pqvt @packages $data{emergerun2}"; + } + + if($pack){ + return 1; + }else{ + return ''; + } +} + +#------------------------------------------------------------------------------ +# +# Проверим на возможность установки пакетов +# +#------------------------------------------------------------------------------ +sub emerge_pretend{ + my @packages = packages(); + my $err; + + @packages = (@{$data{movie_pretend}}, @packages); #объединим со списком зависимых пакетов (дублируя расположим их сверху) + my $softly; if(!defined $data{addition}){$softly = "--softly";} + foreach(`$data{emergerun1} -p --color n @packages $data{emergerun2} $softly`){#2>&1 + if(m/^- ([^ ]+)-[0-9\._pb]+(_pre[0-9]+)?(_rc[0-9]{1,2})?(-r[0-9]{1,2})?(_beta[0-9]{1,2})? .+masked by: package.mask/){ + return $1, 'unmask'; + }elsif(m/^- ([^ ]+)-[0-9\._pb]+(_pre[0-9]+)?(_rc[0-9]{1,2})?(-r[0-9]{1,2})?(_beta[0-9]{1,2})? .+masked by: $data{unmask} keyword/){ + return $1, 'keywords'; + }elsif(m/'([^ ]+)-[0-9\._pb]+(_pre[0-9]+)?(_rc[0-9]{1,2})?(-r[0-9]{1,2})?(_beta[0-9]{1,2})?'.+ pulled in by/ + && !m/kde-base\/kdelibs-3.5/){ + my $movie; #отметим зависимый пакет, который должен располагаться сверху списка, чтобы избежать ошибки + foreach(@packages){ + if(m/$1/){ + push (@{$data{movie_pretend}}, $_); + } } + return $1, 'reverse'; + }elsif($_=~m/!{3}/){ + $err++; + } + } + if($err){ + printmes("\n".gettext('One of the packages not match your architecture')); + printmes(".\n"); printmes(gettext('Please revise dependences of the packages by your own  using flags concealment of packages')); + printmes(".\n"); + return ''; + } + return 1; +} + +#------------------------------------------------------------------------------ +# +# Соберем систему +# +#------------------------------------------------------------------------------ +sub make{ + printmes(gettext('Make system')."\n"); + + my $skipfirst; if($data{skipfirst} eq "on"){$skipfirst = " --skipfirst";} + + #закончим прерванное действие + if(getini("run.make", "chroot")){ + printmes(" ".gettext('Execute')); printmes(" emerge --resume".$skipfirst."...\n"); + if(system "$data{emergerun1}$skipfirst --resume $data{emergerun2}"){ + beep(); + printmes(" ".gettext('error')."!\n"); return ''; + }else{ + printmes(" ".gettext('done').".\n"); + getini("run.make", "chroot") + } + my $finish = getini("run.make", "chroot"); #считаем действие + putini("run.make" => "", "chroot"); #сбросим успешную операцию + #увеличим счётчик + my $step = getini("run.make.step.$finish", "chroot"); $step++; + putini("run.make.step.$finish" => $step, "chroot"); + }else{ + #для совместимости со Stage 2008_beta2 удалим sys-apps/mktemp входящий в пакет sys-apps/coreutils-6.10 +# system "$data{emergerun1} -C sys-apps/mktemp $data{emergerun2}"; + } + + #отобразим выполненные действия + if(getini("run.make.step.system", "chroot")){ + foreach(my $i = 0; $i < getini("run.make.step.system", "chroot"); $i ++){ + printmes(" ".gettext('Execute')); printmes(" emerge -e system..."); + printmes(" ".gettext('done')); printmes(".\n"); + } + } +# if(getini("run.make.step.world", "chroot")){ +# printmes(" ".gettext('Execute')); printmes(" emerge -e packages..."); +# printmes(" ".gettext('done')); printmes(".\n"); +# } + + #получим список пакетов world = "" + my @world = packages(); + + my $finish = ''; + while(!$finish){ + if(getini("run.make.step.system", "chroot") < 2){ + printmes(" ".gettext('Execute')); printmes(" emerge -e system...\n"); + putini("run.make" => "system", "chroot"); #сохраним выполняемое действие + if(system "$data{emergerun1} -e system $data{emergerun2} --nodie"){ + beep(); + printmes(" ".gettext('error')."!\n"); return ''; + }else{ + #сбросим успешно выполненную операцию + putini("run.make" => "", "chroot"); + #увеличим счетчик проходов + my $step = getini("run.make.step.system", "chroot"); $step ++; + putini("run.make.step.system" => $step, "chroot"); + + printmes(" ".gettext('done').".\n"); + } } +# elsif(getini("run.make.step.world", "chroot") < 1){ + else{ + printmes(" ".gettext('Execute')); printmes(" emerge --noreplace world...\n"); +# putini("run.make" => "world", "chroot"); #сохраним выполняемое действие + if(system "$data{emergerun1} --noreplace @world $data{emergerun2} --nodie"){ + beep(); + printmes(" ".gettext('error')."!\n"); return ''; + }else{ + #сбросим успешно выполненную операцию + putini("run.make" => "", "chroot"); + #увеличим счетчик проходов + my $step = getini("run.make.step.world", "chroot"); $step ++; + putini("run.make.step.world" => $step, "chroot"); + + printmes(" ".gettext('done').".\n"); + } +# } + $finish ++; + } + } + return 1; +} + +#------------------------------------------------------------------------------ +# +# Упакуем систему +# +#------------------------------------------------------------------------------ +sub packsystem{ + printmes(gettext('Packing the distribution package into the archive file').".\n"); + + #Вернем /etc/login.defs в прежнее состояние + if(-e "$data{chroot}/etc/login.defs.old"){ + printmes(" ".gettext('Restore')); printmes(" /etc/login.defs..."); + system "$data{path} mv $data{chroot}/etc/login.defs.old $data{chroot}/etc/login.defs"; + printmes(" ".gettext('done').".\n"); + } + + #Установим пароль рута + system "$data{path} chroot $data{'chroot'} sed -i -r 's/^root:.*/$data{hash_root}/' /etc/shadow"; + system "$data{path} chroot $data{'chroot'} sed -i -r 's/^root:.*/$data{hash_root}/' /etc/shadow-"; + + #Добавим пользователя guest + if($data{'system'} eq 'desktop' && !defined $data{arg}{'iso'}){ + #Добавим пользователя guest + system "$data{path} chroot $data{'chroot'} /usr/sbin/groupadd --gid 999 guest"; + system "$data{path} chroot $data{'chroot'} /usr/sbin/useradd --uid 999 --gid 999 --home-dir /home/guest --shell /bin/bash --groups audio,cdrom,plugdev,vboxusers,video,wheel guest"; + + + #Установим пароль пользователя guest + system "$data{path} chroot $data{'chroot'} sed -i -r 's/^guest:.*/$data{hash_guest}/' /etc/shadow"; + system "$data{path} chroot $data{'chroot'} sed -i -r 's/^guest:.*/$data{hash_guest}/' /etc/shadow-"; + } + + #Удалим записи сборки + putini("run.make" => "", "chroot"); + putini("run.make.step.system" => "", "chroot"); + putini("run.make.step.world" => "", "chroot"); + + #Заменим устаревшие конфигурационные файлы + printmes(" ".gettext('Replace outdated configuration files')); printmes("...\n"); + if(system(qq|$data{path} chroot $data{'chroot'} /usr/calculate/install/calculate --chroot="OVERWRITE_ALL='yes' etc-update"|)){ + printmes(" ".gettext('error').".\n"); + return ""; + }else{ + printmes(" ".gettext('done')); printmes(".\n"); + } + + #Пропишем ядро в автозагрузку + printmes(" ".gettext('Register kernel into boot loader')); printmes("..."); + if(system(qq|$data{path} chroot $data{'chroot'} /usr/calculate/install/calculate --chroot="cd /usr/src/linux && make install &>/dev/null"|)){ + printmes(" ".gettext('error').".\n"); + return ""; + }else{ + printmes(" ".gettext('done')); printmes(".\n"); + } + + #Обновим базу портежей программы eix + printmes(" ".gettext('Update portige base of eix programm')); printmes("..."); + if(-e "$data{'chroot'}/usr/bin/update-eix"){ + if(system(qq|$data{path} chroot $data{'chroot'} /usr/calculate/install/calculate --chroot="PORTDIR_OVERLAY='$data{portdir}' update-eix &>/dev/null"|)){ + printmes(" ".gettext('error').".\n"); + }else{ + printmes(" ".gettext('done')); printmes(".\n"); + } } + + #Обновим базу PCI-устройств + if(-e "$data{'chroot'}/usr/sbin/update-pciids"){ + printmes(" ".gettext('Update PCI IDs')); printmes("..."); + if(system("$data{path} chroot $data{'chroot'} update-pciids &>/dev/null")){ + printmes(" ".gettext('error').".\n"); + }else{ + printmes(" ".gettext('done')); printmes(".\n"); + } } + + #Обновим базу USB-устройств + if(-e "$data{'chroot'}/usr/sbin/update-usbids"){ + printmes(" ".gettext('Update USB IDs')); printmes("..."); + if(system("$data{path} chroot $data{'chroot'} update-usbids &>/dev/null")){ + printmes(" ".gettext('error').".\n"); + }else{ + printmes(" ".gettext('done')); printmes(".\n"); + } } + + #Обновим антивирусную базу Clamav + if(-e "$data{'chroot'}/usr/bin/freshclam"){ + printmes(" ".gettext('Update Clamav antivirus database')); printmes("..."); + if(system("$data{path} chroot $data{'chroot'} freshclam &>/dev/null")){ + printmes(" ".gettext('error').".\n"); + }else{ + printmes(" ".gettext('done')); printmes(".\n"); + } } + + #Сформируем базу module-rebuild + if(-e "$data{'chroot'}/usr/sbin/module-rebuild populate"){ + printmes(" ".gettext('Update module-rebuild database')); printmes("..."); + if(system("$data{path} chroot $data{'chroot'} module-rebuild populate &>/dev/null")){ + printmes(" ".gettext('error').".\n"); + return ""; + }else{ + printmes(" ".gettext('done')); printmes(".\n"); + } } + + #Выполним предварительное связывание пакетов + if(-e "$data{'chroot'}/usr/sbin/prelink" && -e "$data{'chroot'}/etc/prelink.conf"){ + printmes(" ".gettext('Execute prelinking packages')); printmes("..."); + if(system("$data{path} chroot $data{'chroot'} prelink -afmR &>/dev/null")){ + printmes(" ".gettext('error').".\n"); + return ""; + }else{ + printmes(" ".gettext('done')); printmes(".\n"); + } } + + #наложим профиль IMG + profiles(); + + #создадим initrd образ + if(-e "$data{chroot}/etc/splash/tty1" && -e "$data{'chroot'}/usr/share/genkernel"){ + printmes(" ".gettext('Create')); printmes(" initrd..."); + if(system "$data{path} chroot $data{'chroot'} genkernel --splash=tty1 --unionfs --all-ramdisk-modules --disklabel --slowusb ramdisk > /dev/null 2>&1"){ + printmes(" ".gettext('error').".\n"); + return ""; + }else{ + system "mv `find $data{chroot}/boot/ -name initramfs-*` $data{chroot}/boot/initrd"; + printmes(" ".gettext('done')); printmes(".\n"); + } } + + if($data{calculate} eq 'CLDX'){ + #Удалим исходники ядра + printmes(" ".gettext('Delete the kernel sources')); printmes("..."); + if( + system("$data{emergerun1} -C sys-kernel/calculate-sources $data{emergerun2} &>/dev/null" && + system("$data{path} rm -rf $data{'chroot'}/usr/src/linux*") + )){ + beep(); + printmes(" ".gettext('error')."!\n"); + }else{ + printmes(" ".gettext('done')); printmes(".\n"); + } + #Удалим портежи + printmes(" ".gettext('Delete Portages')); printmes("..."); + system("$data{path} rm -rf $data{'chroot'}/usr/portage/*"); + printmes(" ".gettext('done')); printmes(".\n"); + } + + #Отмонтируем директории в точке монтирования + printmes(" ".gettext('Umount directories')); printmes("..."); + if(!umount_build_dirs()){ + printmes(" ".gettext('error').".\n"); + return ""; + }else{ + printmes(" ".gettext('done')); printmes(".\n"); + } + + #Удалим временные файлы + printmes(" ".gettext('Delete temporary files')); printmes("..."); + system("$data{path} rm -rf $data{'chroot'}/etc/resolv.conf $data{chroot}/etc/mtab $data{chroot}/var/log/emerge* $data{chroot}/var/log/genkernel.log $data{chroot}/var/log/lastlog $data{chroot}/var/log/prelink.log $data{chroot}/var/log/wtmp $data{chroot}/var/.locks"); + foreach( + "$data{'chroot'}/var/tmp/portage", + "$data{'chroot'}/tmp", + "$data{'chroot'}/root", + "$data{'chroot'}/var/log/clamav", + "$data{'chroot'}/var/log/calculate", + "$data{'chroot'}/var/log/portage/elog", + ){ + cleardir($_); + } + printmes(" ".gettext('done')); printmes(".\n"); + + #Создадим архив системы + printmes(" ".gettext('Create system archive file')); printmes("..."); + chdir($data{'chroot'}); + `$data{path} rm -f $data{linuxdir}/".lc($data{'calculate'})."-$data{linuxver}-$data{march}.tar.7z`; + if(system("$data{path} tar cf - . 2>/dev/null | 7za a -si $data{linuxdir}/".lc($data{'calculate'})."-$data{linuxver}-$data{march}.tar.7z >/dev/null")){ + printmes(" ".gettext('error').".\n"); + return ""; + }else{ + system("$data{path} chmod 644 $data{linuxdir}/".lc($data{'calculate'})."-$data{linuxver}-$data{march}.tar.7z"); + printmes(" ".gettext('done')); printmes(".\n"); + } + chdir($ENV{PWD}); + + #Создадим list-файл со списком собранных пакетов + printmes(" ".gettext('Create')); printmes(" LIST "); printmes(gettext('file')); printmes("..."); + my $path = "$data{'chroot'}/var/db/pkg"; + my $list = "$data{linuxdir}/". + lc($data{'calculate'})."-$data{linuxver}-$data{march}.list"; + open LIST, ">$list"; + opendir(T, $path); + foreach(sort readdir T){ + if($_ eq "." || $_ eq ".."){next;} + my $type = $_; + opendir(F, "$path/$type"); + foreach(sort readdir F){ + if($_ eq "." || $_ eq ".."){next;} + print LIST "$type/$_\n"; + } + closedir F; + } + closedir T; + close LIST; + #упакуем в list.gz +# system "$data{path} gzip $list"; + printmes(" ".gettext('done')); printmes(".\n"); + + #Создадим DIGESTS-файл + printmes(" ".gettext('Create')); printmes(" DIGESTS "); printmes(gettext('file')); printmes("..."); + if(create_digests( + "$data{linuxdir}/".lc($data{'calculate'}). + "-$data{linuxver}-$data{march}.tar.7z" + )){ + printmes(" ".gettext('done')); printmes(".\n"); + }else{ + printmes(" ".gettext('error').".\n"); + } + + #Отмонтируем chroot-диск + printmes(" ".gettext('Umount chroot-disk')); printmes("..."); + if(system("$data{path} umount $data{'chroot'}")){ + printmes(" ".gettext('error').".\n"); +# return ""; + }else{ + system("rmdir $data{'chroot'}"); + printmes(" ".gettext('done')); printmes(".\n"); + } + + printmes(gettext('All done')); printmes("!\n"); + + return 1; +} + +#------------------------------------------------------------------------------ +# Создадим DIGESTS-файл +#------------------------------------------------------------------------------ +sub create_digests{ + my $file = $_[0]; + my $digests = "$file.DIGESTS"; + + `echo "# MD5 HASH" > $digests`; + my $hash = get_hash("openssl md5 $file"); + `echo $hash >> $digests`; + `echo "# SHA1 HASH" >> $digests`; + $hash = get_hash("openssl sha1 $file"); + `echo $hash >> $digests`; + + return 1; +} + +#------------------------------------------------------------------------------ +# Получим хэш из openssl +#------------------------------------------------------------------------------ +sub get_hash{ + my $exec = $_[0]; + my $hash = `$exec`; + $hash =~m/= ([0-9a-f]+)$/; + return $1; +} + +#------------------------------------------------------------------------------ +# +# Удалим все файлы из указанной директории кроме .keep +# +#------------------------------------------------------------------------------ +sub cleardir{ + my $dir = $_[0]; + opendir(DEL, $_); + foreach(readdir DEL){ + if($_ eq "." || $_ eq ".." || $_ eq ".keep"){next;} + #printmes(gettext('Delete')); printmes(" $dir/$_\n"); + system("$data{path} rm -rf $dir/$_"); + } + closedir DEL; + +} + +#------------------------------------------------------------------------------ +# +# Наложим обновления профилей на текущую систему +# +#------------------------------------------------------------------------------ +sub update_profile{ +# if($data{ospatch}){ +# $data{patch} = "-$data{ospatch}"; +# } + + #проверим на наличие профили + foreach(split /,/, $data{arg}{'profile'}){ + my $path, $profile; + if(m/^([^\/]+)\/([^\/]+)$/){ + $path = $1; $profile = $2; + }else{ + $profile = $_; + } + + if($profile=~m/[^0-9a-z\/_\-*]/i){ + printmes(gettext('Error')."! "); + printmes(gettext('Invalid profile')); printmes(" \"$_\".\n"); + return "" + } + + if(!$path && $_=~m/^all$/i){ + @{$data{setprof}} = (@{$data{profile_install}}, @{$data{profile_share}}); + next; + }elsif($profile eq "*" && ($path eq "install" || $path eq "share")){ + @{$data{setprof}} = @{$data{"profile_$path"}}; + next; + }elsif($path && -e "$data{dir}/$path/profile/$profile"){ + push (@{$data{setprof}}, "$data{dir}/$path/profile/$profile"); + }elsif(!$path && -e "$data{dir}/install/profile/$profile"){ + push (@{$data{setprof}}, "$data{dir}/install/profile/$profile"); + }elsif(!$path && -e "/usr/calculate/share/profile/$profile"){ + push (@{$data{setprof}}, "/usr/calculate/share/profile/$profile"); + }else{ + printmes(gettext('Error')."! "); + printmes(gettext('Invalid profile')); printmes(" \"$_\".\n"); + return "" + } + } + + if(!@{$data{setprof}}){ + printmes(gettext('Error')."! "); + printmes(gettext('Configuration profile is not specified')); printmes(".\n"); + return "" + } + + #наложим выбранные профили на текущую систему + $data{'chroot'} = ""; + foreach(@{$data{setprof}}){profile($_);} + +# #обновим конфигурацию +# printmes(gettext('Update modules')); printmes("\n"); +# +# printmes(" ".gettext('Run')); printmes(" env-update..."); +# if(system "/usr/sbin/env-update &>/dev/null"){ +# printmes(" ".gettext('error').".\n"); return ""; +# }else{ +# printmes(" ".gettext('done')); printmes(".\n"); +# } +# printmes(" ".gettext('Run')); printmes(" source /etc/profile..."); +# if(system "source /etc/profile &>/dev/null"){ +# printmes(" ".gettext('error').".\n"); return ""; +# }else{ +# printmes(" ".gettext('done')); printmes(".\n"); +# } +# printmes(" ".gettext('Run')); printmes(" update-modules..."); +# if(system "/sbin/update-modules &>/dev/null"){ +# printmes(" ".gettext('error').".\n"); return ""; +# }else{ +# printmes(" ".gettext('done')); printmes(".\n"); +# } +# if($ENV{TERM} eq 'linux'){ +# printmes(" ".gettext('Run')); printmes(" keymaps restart..."); +# if(system "/etc/init.d/keymaps restart &>/dev/null"){ +# printmes(" ".gettext('error').".\n"); return ""; +# }else{ +# printmes(" ".gettext('done')); printmes(".\n"); +# } +# } +# printmes(" ".gettext('Run')); printmes(" consolefont restart..."); +# if(system "/etc/init.d/consolefont restart &>/dev/null"){ +# printmes(" ".gettext('error').".\n"); return ""; +# }else{ +# printmes(" ".gettext('done')); printmes(".\n"); +# } + +# printmes(gettext('All done')); printmes("!\n"); + + + #наложим πатч + if( + $data{linuxver} eq '9.6' && + $data{load} eq 'ram' && + $data{calculate} eq 'CLD' + ){ + system "sed -i 's/kwrapper4 ksmserver \$KDEWM/ksmserver \$KDEWM/' /usr/bin/startkde"; + } + + return 1; +} + +#------------------------------------------------------------------------------ +# +# Выполним строчные преобразования конфигурационных файлов +# Хэш параметров: +# lines - строки файла +# nocomment - удалять комментарии +# +#------------------------------------------------------------------------------ +sub convert{ + my %par = ( + nocomment => '', + lines => '', + @_, + ); + + my @ext_comment; + #в метки подставим переменные + foreach(@{$par{lines}}){ + my $i = 0; + while($i==0){ + #в метки подставим переменные + if(m/#\-([^\$\@\-][^\#]+)\-#/i){ + my $var = $1; + #обработаем динамические переменные - + #переменные, инициируемые при запросе + my ($dynamic, $set) = dynamicvar($var); + if($set){$data{$var} = $dynamic;} + if(!defined $data{$var}){ + printmes("\n".gettext('Not defined variable')); printmes(" #-$var-#, file \"$data{file}{name}\"."); + $data{file}{error} ++; + } + s/#\-$var\-#/$data{$var}/g; + }else{$i++} + } + push (@ext_comment, $_); + } + + #обработаем блоки условий + my @ext_block; + my ($block, $pass); + foreach(@ext_comment){ + if($par{nocomment} && $_!~/[A-Za-z0-9#]/){next;} #пропустим пустые строки + if($par{nocomment}){ + $_=~s/^\s+(.)/$1/; #обрежем отступы от начала строки + } + + #пропустим пакеты привязанные к архитектуре + my ($block2, $pass2) = check_block($_); + if($block2){ + $block = $block2; + $pass = $pass2; + next; + } + + #проверим на конец блока + if($block && $_=~/^\s*#$block#\s*$/){$block = ''; next;} + + #пропустим если блок не соответствует условию + if($block && $pass){next;} + + if($par{nocomment} && $_=~/^#/){next;} #пропустим строки с комментариями + if($par{nocomment}){ + $_=~s/^\s*([^#]+)#.*/$1/; #обрежем комментарии пакетов + $_=~s/^(.*)([^\s]+)\s+$/$1$2/; #обрежем пробелы перед комментариями пакетов + } + push(@ext_block, $_); + } + return @ext_block; #вернем построчно +} + +#------------------------------------------------------------------------------ +# Сформируем динамические переменные - переменные, инициируемые при запросе +#------------------------------------------------------------------------------ +sub dynamicvar{ + my $var = $_[0]; + my $val = ""; + my $set = ""; + #список пакетов подлежащих размаскировке по заданной маске + if($var=~m/^keywords:(.+)$/){ + my $keywords = $1; $keywords =~s/A-Za-z0-9\-\.\_//m; + + foreach(packages()){ + if(m/$keywords/){ + $val.="$_ $data{unmask}\n"; + } + } + #список установленных пакетов: `$data{path} find /var/db/pkg/ -type f | sed 's/-[0-9][0-9]*.*//' | uniq | sort` + $set ++; + + }elsif($var=~m/^unmask:(.+)$/){ + my $unmask = $1; $unmask =~s/A-Za-z0-9\-\.\_//m; + + foreach(packages()){ + if(m/$unmask/){ + $val.="$_\n"; + } + } + $set ++; + } + return ($val, $set); +} + +#------------------------------------------------------------------------------ +# +# Выполним сравнение имени файла с условием +# Возвратим преобразованное имя файла без условия если принимается, либо ничего +# +#------------------------------------------------------------------------------ +sub check_name{ + my $filename = $_[0]; + #проверим наличие регулярного выражения в файле + if($filename=~m/^([^\?]+)\?(.+)/){ + my $realname = $1; + my $condition = $2; + #проверим условия + #разобьем условия ИЛИ + foreach(split /\?/, $condition){ + my $true = 1; + #проверим условия И + foreach(split /&/){ + #считаем сравниваемые значения + if(m/([^=>\<]+).+/$1/; + #проверим условия + #разобьем условия ИЛИ + foreach(split /\?/, $condition){ + my $true = 1; + #проверим условия И + foreach(split /&/){ + m/([^=>" && + (($type eq "num" && $a > $b) || + ($type eq "char" && $a gt $b) || + ($type eq "ver" && number_ver($a) > number_ver($b))) + ){} + elsif($chk eq "<=" && + (($type eq "num" && $a <= $b) || + ($type eq "char" && $a le $b) || + ($type eq "ver" && number_ver($a) <= number_ver($b))) + ){} + elsif($chk eq ">=" && + (($type eq "num" && $a >= $b) || + ($type eq "char" && $a ge $b) || + ($type eq "ver" && number_ver($a) >= number_ver($b))) + ){} + else{ + return ''; + } + return 1; #условие было распознано и определено как верное +} + +#------------------------------------------------------------------------------ +# +# Извлечем номер версии программы +# Необходимо для численного сравнения версий, типа 7.8.1 +# +#------------------------------------------------------------------------------ +sub number_ver{ + my $num = $_[0]; + $num=~m/([0-9]+)\.([0-9]+)\.?([0-9]+)?/; + return $1 * 10000 + $2 * 100 + $3; +} + +#------------------------------------------------------------------------------ +# +# Определим дополнительные монтируемые диски в fstab +# +#------------------------------------------------------------------------------ +sub getdisk_fstab{ + my (@mount_dev, @mount_dir, @mount_line); + foreach(@_){ + if(m/^\s*#/){next;} + #определим устройства, сетевые диски и bind-монтирования + if( + m/^\s*(\/dev\/[^\s]+)\s+([^\s]+)\s+([^\s]+)\s+([^\s]+)\s+([0-9])\s+([0-9])\s*$/ || + m/^\s*([A-Za-z0-9\.]+:[^\s]+)\s+([^\s]+)\s+([^\s]+)\s+([^\s]+)\s+([0-9])\s+([0-9])\s*$/ || + m/^\s*(\/[^\s]+)\s+(\/[^\s]+)\s+([^\s]+)\s+(bind)\s+([0-9])\s+([0-9])\s*$/ + ){ + #пропустим системный раздел и устанавливаемый раздел + if($1 eq "$data{rootload}"){next;} + if($1 eq "$data{rootinstall}"){next;} + if($1=~/:/ && $data{system} eq "desktop" && number_ver($data{linuxver}) > number_ver(9.5)){next;} + #поскольку система ставится на один диск, исключим точки монтирования системных директорий + if( + $2 eq "/bin" || + $2 eq "/boot" || + $2 eq "/dev" || + $2 eq "/etc" || + $2 eq "/lib" || + $2 eq "/opt" || + $2 eq "/sbin" || + $2 eq "/usr" || + $2 eq "/var" + ){next;} + + #пропустим своп-диск + if($3=~/swap/i){next;} + #пропустим loop-устройства + if($1=~m/^\/dev\/loop[0-9]$/i){next;} + + push(@mount_dev, $1); #диски монтирования + push(@mount_dir, $2); #пути монтирования + push(@mount_line, $_); #fstab-строки + } } + return ([@mount_dev], [@mount_dir], [@mount_line]); +} + +#------------------------------------------------------------------------------ +# +# Дополним fstab настройками старого профиля +# +#------------------------------------------------------------------------------ +sub move_fstab{ + my @lines = @_; + my @newlines; #отличительные строки предыдущего fstab + + my ($mount_dev, $mount_dir, $mount_line) = getdisk_fstab(@lines); + + #заполним хэш для сравнения + my $i = 0; + my %check_disk; foreach(@{$mount_dev}){ + $check_disk{"$_+${$mount_dir}[$i]"} = ${$mount_line}[$i]; + $i++; + } + + my $i = -1; + foreach(@{$data{mount_dev}}){ + $i++; + if(!$check_disk{"$_+${$data{mountdir}}[$i]"}){ + #если в старом профиле был примонтирован диск, + #перенесем запись и создадим директорию пути + push(@newlines, ${$data{mount_line}}[$i]); + #пропустим создание директории, если она находится + #внутри монтируемого диска + my $skip = 0; my $k; + foreach($k=0; $k<$i; $k++){ + if(${$data{mountdir}}[$i]=~m/^${$data{mountdir}}[$k]/){ + $skip++; + } } + #создадим директорию точки монтирования + if(!-e "$data{'chroot'}${$data{mountdir}}[$i]" && !$skip){ + system "$data{path} mkdir -p -m 755 $data{'chroot'}${$data{mountdir}}[$i]"; + } } } + return (@lines, @newlines); +} + +#------------------------------------------------------------------------------ +# +# Прерывание сборки системы - отмонтирование дисков и удаление +# установочной директории +# +#------------------------------------------------------------------------------ +sub breakbuild{ + printmes(gettext('Break the system building')); printmes("..."); + + #отмонтируем все директории и точку монтирования + umount_build_all(); + + printmes(" ".gettext('done').".\n"); + return 1; +} + +#------------------------------------------------------------------------------ +# +# Отмонтируем все директории и точку монтирования +# +#------------------------------------------------------------------------------ +sub umount_build_all{ + #отмонтируем все директории в точке монтирования + umount_build_dirs(); + + #отмонтируем и удалим директорию точки монтирования + system "$data{path} umount -l $data{chroot}"; + system "$data{path} rmdir $data{chroot}"; + return 1; +} + +#------------------------------------------------------------------------------ +# +# Отмонтируем все директории в точке монтирования +# +#------------------------------------------------------------------------------ +sub umount_build_dirs{ + foreach(`$data{path} mount`){ + if(/on\s+($data{chroot}\/[^\s]+)/){ + #отмонтируем с флагом -l + system "$data{path} umount -l $1"; + } } + return 1; +} + +#------------------------------------------------------------------------------ +# +# Создадим загружаемый iso-образ системы +# +#------------------------------------------------------------------------------ +sub createiso{ + if(number_ver($data{os}) <= 80100){ + printmes(gettext('Error')."! "); + printmes(gettext('The system should be not below version')); printmes(" 8.2.\n"); + return ""; + } + + if(!$data{linux} || $data{linux} =~m/iso$/){ + printmes(gettext('Error')."! "); + printmes(gettext('The archive with image of system is not found')); printmes(".\n"); + return ""; + } + + #очистим директорию временных файлов + if(-e "$data{tmpdir}/livecd"){ + printmes(" ".gettext('Delete temporary files')); printmes("..."); + if(system("rm -rf $data{tmpdir}/livecd")){ + printmes(" ".gettext('error').".\n"); + breakiso(); + return ""; + }else{ + printmes(" ".gettext('done')); printmes(".\n"); + } } + + #распакуем систему + printmes(" ".gettext('Unpacking system')); printmes("..."); + #выберем команду распаковки в зависимости от типа архива + my $unpack; + if($data{linux} =~m/7z$/){ + $unpack = "7za x -so /usr/calculate/share/linux/$data{linux} 2>/dev/null | tar xf - -C $data{tmpdir}/livecd/calculate"; + }elsif($data{linux} =~m/lzma$/){ + $unpack = "lzma -dc /usr/calculate/share/linux/$data{linux} | tar -xf - -C $data{tmpdir}/livecd/calculate"; + }else{ + $unpack = "tar -xjf /usr/calculate/share/linux/$data{linux} -C $data{tmpdir}/livecd/calculate"; + } + if(system("mkdir -p $data{tmpdir}/livecd/calculate && $unpack")){ + printmes(" ".gettext('error').".\n"); + breakiso(); + return ""; + }else{ + printmes(" ".gettext('done')); printmes(".\n"); + } + + #перенесем calculate в систему + printmes(" ".gettext('Transfer Calculate to system')); printmes("..."); + if(system(qq| + cp -a /usr/calculate/install $data{tmpdir}/livecd/calculate/usr/calculate/ + |)){ + printmes(" ".gettext('error').".\n"); + breakiso(); + return ""; + }else{ + printmes(" ".gettext('done')); printmes(".\n"); + } + + #наложим профили на распакованную систему + profiles(); + + #выполним подмены + { + my $path = "$data{tmpdir}/livecd/calculate"; + #поправим автовход в initrd + system "$data{path} cp $path/etc/inittab $path/etc/inittab.old"; + system "$data{path} sed -i -e '/^c[0-9]/ s/^/#/' $path/etc/inittab"; + system "$data{path} sed -i -e '/^s[01]/ s/^/#/' $path/etc/inittab"; + for(my $i = 1; $i<=6; $i++){ + system qq|echo "c$i:12345:respawn:/sbin/agetty -nl /bin/bashlogin 38400 tty$i linux" >> $path/etc/inittab|; + } + } + + #подготовим к упаковке + printmes(" ".gettext('Prepare system for packing')); printmes("..."); + if(system(qq| + cp -a $data{tmpdir}/livecd/calculate/boot/vmlinuz-* $data{tmpdir}/livecd/target/boot/ && + cp -a $data{tmpdir}/livecd/calculate/boot/initrd $data{tmpdir}/livecd/target/boot/ && + cp -a $data{tmpdir}/livecd/calculate/boot/memtest86plus/memtest.bin $data{tmpdir}/livecd/target/isolinux/memtest && + cp -a $data{tmpdir}/livecd/calculate/usr/share/syslinux/isolinux.bin $data{tmpdir}/livecd/target/isolinux/ && + cp -a $data{tmpdir}/livecd/calculate/usr/share/syslinux/calcmenu.c32 $data{tmpdir}/livecd/target/isolinux/ && + mv $data{tmpdir}/livecd/calculate/boot/back.jpg $data{tmpdir}/livecd/target/isolinux/ && + mv `find $data{tmpdir}/livecd/target/boot/ -name vmlinuz-*` $data{tmpdir}/livecd/target/boot/vmlinuz + |)){ + printmes(" ".gettext('error').".\n"); + breakiso(); + return ""; + }else{ + printmes(" ".gettext('done')); printmes(".\n"); + } + + #создадим livecd.squashfs + printmes(" ".gettext('Packing system into squashfs format')); printmes("..."); + if(system("/usr/bin/mksquashfs $data{tmpdir}/livecd/calculate/ $data{tmpdir}/livecd/target/livecd.squashfs &>/dev/null")){ + printmes(" ".gettext('error').".\n"); + breakiso(); + return ""; + }else{ + printmes(" ".gettext('done')); printmes(".\n"); + } + + #удалим файлы распакованной системы + printmes(" ".gettext('Delete temporary files')); printmes("..."); + if(system("rm -rf $data{tmpdir}/livecd/calculate")){ + printmes(" ".gettext('error').".\n"); + breakiso(); + return ""; + }else{ + printmes(" ".gettext('done')); printmes(".\n"); + } + + #создадим iso-образ + printmes(" ".gettext('Create iso-image')); printmes("..."); + chdir("$data{tmpdir}/livecd"); +# if(system("mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -iso-level 4 -hide boot.catalog -o /usr/calculate/share/linux/$data{iso} target/ &>/dev/null")){ + if(system("mkisofs -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -iso-level 4 -hide boot.catalog -o /usr/calculate/share/linux/$data{iso} target/ &>/dev/null")){ + printmes(" ".gettext('error').".\n"); + breakiso(); + return ""; + }else{ + printmes(" ".gettext('done')); printmes(".\n"); + } + chdir($ENV{PWD}); + + #удалим временные файлы + printmes(" ".gettext('Delete temporary files')); printmes("..."); + if(system("rm -rf $data{tmpdir}/livecd")){ + printmes(" ".gettext('error').".\n"); + breakiso(); + return ""; + }else{ + printmes(" ".gettext('done')); printmes(".\n"); + } + + #Создадим DIGESTS-файл + printmes(" ".gettext('Create')); printmes(" DIGESTS "); printmes(gettext('file')); printmes("..."); + if(create_digests("/usr/calculate/share/linux/$data{iso}")){ + printmes(" ".gettext('done')); printmes(".\n"); + }else{ + printmes(" ".gettext('error').".\n"); + } + + return 1; +} + +#------------------------------------------------------------------------------ +# +# Отмонтируем диски в случае прерывания сборки +# +#------------------------------------------------------------------------------ +sub breakiso{ + printmes(gettext('Operation interrupted')); printmes(".\n"); + printmes(gettext('Abort')); printmes("..."); + + #отмонтируем все директории и точку монтирования + system "rm -rf \"$data{tmpdir}/livecd\""; + printmes(" ".gettext('done').".\n"); +} + +#------------------------------------------------------------------------------ +# Подменим переменные конфигурационного файла новыми значениями +# Праметры: массив строк конфигурационного файла, массив переменных +# с присвоенными значениями +#------------------------------------------------------------------------------ +sub substitution{ + my ($original, $conf) = @_; + + #заполним хэш новыми значениями переменных + my %conf; + my $part = "default"; + foreach(@{$conf}){ + if(m/^\s*\[([^\]]+)\]\s*$/){$part = $1; next;} + if(m/^\s*([^#][^\s=]+)([\s=].*)$/){ + $conf{$part}{$1} = $2; + chomp $conf{$part}{$1}; + #выполним преобразования + my $var = $1; + $conf{$part}{$var}=~s/\\n/\n/g; + $conf{$part}{$var}=~s/\\t/\t/g; + } } + + #сформируем готовые строки + my @substitution; + my $part = "default"; + foreach(@{$original}){ + if(m/^\s*\[([^\]]+)\]\s*$/){ + #перенесем новые переменные обработанного блока + foreach(sort keys %{$conf{$part}}){ + push(@substitution, "$_$conf{$part}{$_}\n"); + } + delete $conf{$part}; #удалим перенесенный блок переменных + push(@substitution, "$_"); + $part = $1; next; + } + + if(m/^\s*([;]*)([^\s=]+)([\s=].*)$/ && defined $conf{$part}{$2}){ + #подменим значение + push(@substitution, "$2$conf{$part}{$2}\n"); + delete $conf{$part}{$2}; + }else{ + push(@substitution, $_); + } } + + #перенесем новые переменные последнего блока + foreach(sort keys %{$conf{$part}}){ + push(@substitution, "$_$conf{$part}{$_}\n"); + } + delete $conf{$part}; #удалим перенесенный блок переменных + + #создадим новые блоки + my $part; + my $new; + foreach(sort keys %conf){ + $part = $_; + foreach(sort keys %{$conf{$_}}){ + if($new ne $part){ + push(@substitution, "[$part]\n"); + $new = $part; + } + push(@substitution, "$_$conf{$part}{$_}\n"); + } } + + return @substitution; +} + +#------------------------------------------------------------------------------ +# Чтение хэша переменных +# Работать с хэшем следует через getini() и putini() +# Параметр: [chroot] +#------------------------------------------------------------------------------ +sub loadini{ + my $path, $system; + if($_[0] ne "chroot"){ + if(!$data{pathini}){ + $data{pathini} = "/etc/calculate/calculate.ini"; + } + $path = $data{pathini}; + $system = "ini"; + }elsif($_[0] eq "chroot"){ + if(!$data{pathini_chroot}){ + $data{pathini_chroot} = "$data{chroot}/etc/calculate/calculate.ini"; + } + $path = $data{pathini_chroot}; + $system = "ini_chroot"; + if(!$data{chroot}){print "Eroror loadini: No chroot path!\n";} + }else{print "Eroror loadini: Incorrect parameters!\n";} + if(-e $path){ + #считаем дополнительные профили установки + open(INI, $path); + foreach(){ + if(m/^\s*#/){next;} + chomp; + m/^([^=]+)=([^=]+)$/; + if($1 ne ''){ + $data{$system}{$1} = $2; + } + } + close(INI); + } +} + +#------------------------------------------------------------------------------ +# Чтение переменной хэша переменных среды +# Параметр: имя переменной, [chroot] +#------------------------------------------------------------------------------ +sub getini{ + loadini($_[1]); #загрузим параметры, если они еще не загружены + my $system; + if($_[1] ne "chroot"){$system = "ini";}else{$system = "ini_chroot";} + + return $data{$system}{$_[0]}; +} + +#------------------------------------------------------------------------------ +# Запись переменной в файл хэша переменных среды +# Параметры: переменная => значение, [chroot] +#------------------------------------------------------------------------------ +sub putini{ + loadini($_[2]); #загрузим параметры, если они еще не загружены + my $system, $path; + if($_[2] ne "chroot"){ + $system = "ini"; + $path = $data{pathini}; + }else{ + $system = "ini_chroot"; + $path = $data{pathini_chroot}; + } + + $data{$system}{$_[0]} = $_[1]; + + open INI,">$path" or die "Can't open $f : $!"; + foreach(sort keys %{$data{$system}}){ + print INI "$_=$data{$system}{$_}\n"; + } + close (INI); +} + +#------------------------------------------------------------------------------ +# Генерация пароля +#------------------------------------------------------------------------------ +sub password{ + my %data = ( + lengh => 8, + char => char, #[symbol|char] генерируемые знаки + @_, + ); + + my $passwd, $cpas; + foreach(my $i = 0; $i < 8; $i++){ + if($data{char} eq 'char'){ + while ( + $cpas < 48 || + ($cpas > 57 && $cpas < 65) || + ($cpas > 90 && $cpas < 97) + ){ + $cpas = sprintf("%0.0f", rand() * 122); + } + $passwd .= chr($cpas); $cpas = 0; + }else{ + while ($cpas < 35 && $cpas < 126){ + $cpas = sprintf("%0.0f", rand() * 126); + } + $passwd .= chr($cpas); $cpas = 0; + } + } + + return $passwd; +} + +#------------------------------------------------------------------------------ +# Выполним проверки на совместимость +# Параметр: система и номер поддерживаемой версии +#------------------------------------------------------------------------------ +sub checkos{ + my ($os,$ver) = @_; + + if($data{calculate} ne "$os"){ + printmes(gettext('Error')."! "); + printmes(gettext('Command is supported only in')); + printmes(" $data{ver}{$os}.\n"); beep(); return ""; + } + if(number_ver($data{os}) < number_ver($ver)){ + printmes(gettext('Error')."! "); + printmes(gettext('Command is supported on system not below version')); + printmes(" $ver.\n"); beep(); return ""; + } + + return 1; +} + + +#------------------------------------------------------------------------------ +# Настроим серверы CDS +#------------------------------------------------------------------------------ +sub setupservers{ + #выполним проверки на совместимость + if(!checkos("CDS", "8.3")){return "";} + + #дополнительные проверки + if($data{arg}{setup}!~m/^ldap$/i && $data{up_ldap} eq "off"){ + not_setup_server("LDAP"); return ""; + } + + if($data{arg}{setup}=~m/^ldap$/i){ + if($data{up_ldap} eq "on"){ + printmes(gettext('Error')."! "); + printmes(gettext('Server is already adjusted')); printmes(".\n"); + beep(); return ""; + } + + #проверка запущенного LDAP с остановкой + if( + -e "/var/run/samba/smbd.pid" || + -e "/var/run/samba/nmbd.pid" || + -e "/var/run/openldap/slapd.pid" + ){ + printmes(gettext('Error')."! "); + printmes(gettext('Before start stop working LDAP and SAMBA servers')); + printmes(".\n"); beep(); return ""; + } + + #установим флаг наличия сервера + $data{up_ldap} = "on"; + + #наложим профиль CDS + $data{'chroot'} = ""; #все изменения проводим загруженной системе + $data{setupldap} = "on"; + profile("/usr/calculate/install/profile/CDS"); + $data{setupldap} = ""; + + #запустим LDAP-сервер + system "/etc/init.d/slapd start"; + + #настроим базовую структуру сервера и добавим базовых пользователей + printmes(" ".gettext('Setup base structure of a LDAP server')); printmes("..."); + if(!ldapmodify(add_file => qq#/etc/calculate/ldif/ldap_base.ldif#, root_tmp => ok)){ + printmes(" ".gettext('error').".\n"); + beep(); return ""; + }else{ + printmes(" ".gettext('done')); printmes(".\n"); + } + + #настроим SAMBA-структуру в LDAP-сервере + system "/usr/sbin/smbldap-populate"; + + #добавим базовые группы в LDAP + printmes(" ".gettext('Add UNIX groups in a LDAP server')); printmes("..."); + if(!ldapmodify(add_file => qq#/etc/calculate/ldif/ldap_groups.ldif#, root_tmp => ok)){ + printmes(" ".gettext('error').".\n"); + beep(); return ""; + }else{ + printmes(" ".gettext('done')); printmes(".\n"); + } + + #настроим LDAP (без флага настроек setupldap), пропишем серверы в автозагрузку + profile("/usr/calculate/install/profile/CDS"); + + #перезапустим LDAP-сервер + system "/etc/init.d/slapd restart"; + + #пропишем в самбу пароль администратора LDAP для управления пользователями + system "/usr/bin/smbpasswd -w $data{ldap_rootpw}"; + + #запустим SAMBA-сервер + system "/etc/init.d/samba start"; + + #сохраним произведенные изменения в calculate.ini + putini("up.ldap" => "on"); + + printmes(gettext('All done')); printmes("!\n"); + + }elsif($data{arg}{setup}=~m/^mail$/i){ + if($data{up_mail} eq "on"){ + printmes(gettext('Error')."! "); + printmes(gettext('Server is already adjusted')); printmes(".\n"); + beep(); return ""; + } + + #установим флаг наличия сервера + $data{up_mail} = "on"; + #наложим выбранные профиль CDS + $data{'chroot'} = ""; profile("/usr/calculate/install/profile/CDS"); + + #перезапустим LDAP-сервер + system "/etc/init.d/slapd restart"; + + #добавим структуру почтового сервера + printmes(" ".gettext('Add email support in a LDAP server')); printmes("..."); + if(!ldapmodify(add_file => qq#/etc/calculate/ldif/mail.ldif#)){ + printmes(" ".gettext('error').".\n"); + beep(); return ""; + }else{ + printmes(" ".gettext('done')); printmes(".\n"); + } + + #создадим базу aliases + system "$data{path} newaliases"; + + #запустим MAIL-сервер + system "/etc/init.d/postfix start"; + + #запустим IMAP-сервер + system "/etc/init.d/dovecot start"; + + #сохраним произведенные изменения в calculate.ini + putini("up.mail" => "on"); + + printmes(gettext('All done')); printmes("!\n"); + + }elsif($data{arg}{setup}=~m/^ftp$/i){ + + }else{ + printmes(gettext('Error')."! "); + printmes(gettext('The name of a server is incorrectly specified')); + printmes(".\n"); + printmes(gettext('Try')); printmes(" 'calculate --help' "); printmes(gettext('for more information')); + printmes(".\n"); + beep(); return ""; + } +} + +#------------------------------------------------------------------------------ +# Выполним резервное копирование данных серверов +#------------------------------------------------------------------------------ +sub backupservers{ + #выполним проверки на совместимость + if(!checkos("CDS", "8.3")){return "";} + + printmes(" ".gettext('Backup LDAP server')); printmes("..."); + #сделаем резервную копию LDAP + if(!ldapsearch(backup_file => "/var/CDS/backup/ldap.ldif", where => "$data{'ldap_base'}")){ + printmes(" ".gettext('error').".\n"); + beep(); return ""; + }else{ + printmes(" ".gettext('done')); printmes(".\n"); + } +} + +#------------------------------------------------------------------------------ +# Управление пользователями и группами +#------------------------------------------------------------------------------ +sub user{ + #выполним проверки на совместимость + if(!checkos("CDS", "8.3")){return "";} + + #проверим на настроенный сервис + if($data{up_ldap} eq "off"){not_setup_server("LDAP"); return "";} + + if($data{arg}{'useradd'}){ + #проверим на существование учетной записи пользователя + printmes(" ".gettext('Check existing user account')); printmes("..."); + if(check_user($data{arg}{'useradd'})){ + printmes(" ".gettext('error').".\n"); + beep(); return ""; + }else{ + printmes(" ".gettext('done')); printmes(".\n"); + } + + my $groups; if($data{'user_groups'}){$groups = "-G $data{'user_groups'}";} + my $comment; if($data{'user_comment'}){$comment = "-c \"$data{'user_comment'}\"";} + + if(system "$data{path} smbldap-useradd -a $groups $comment $data{arg}{'useradd'}"){ + beep(); return ""; + } + #создадим почтовую директорию и перенесем туда базовую структуру + copyskel("mail" => "/var/CDS/mail"); + #создадим директорию UNIX-профиля + copyskel("profiles" => "/var/CDS/profiles"); + #создадим домашнюю директорию и перенесем туда базовую структуру + copyskel("home" => "/var/CDS/share"); + #создадим директорию WINNT-профиля и перенесем туда базовую структуру netlogon + copyskel("winnt/netlogon" => "/var/CDS/winnt/netlogon"); + copyskel("winnt/profiles" => "/var/CDS/winnt/profiles"); + + printmes(gettext('All done')); printmes("! "); + printmes(gettext('User is added to system')); printmes(".\n"); + + }elsif($data{arg}{'userdel'}){ + if(userdel($data{arg}{'userdel'})){ + printmes(gettext('All done')); printmes("! "); + printmes(gettext('User is removed from system')); printmes(".\n"); + } + }elsif($data{arg}{'userpasswd'}){ + if(system "$data{path} smbldap-passwd $data{arg}{'userpasswd'}"){ + beep(); return ""; + } + }elsif($data{arg}{'groupadd'}){ + #проверим на существование группы доступа + printmes(" ".gettext('Check existing group')); printmes("..."); + if(check_group($data{arg}{'groupadd'})){ + printmes(" ".gettext('error').".\n"); + beep(); return ""; + }else{ + printmes(" ".gettext('done')); printmes(".\n"); + } + + #вычислим последний доступный ID группы + my $maxgid = 999; #на 1 меньше минимального ID группы + foreach(ldapsearch(where => "ou=Groups,$data{'ldap_base'}", grep => "gidNumber:")){ + if(m/^gidNumber:\s+([0-9]+)$/){ + if($maxgid < $1){$maxgid = $1;} + } + } + $maxgid += 1; #прибавим 1 к последнему использованному номеру группы + + #создадим группу + if(!ldapmodify(add => qq# + dn: cn=$data{arg}{'groupadd'},ou=Groups,$data{'ldap_base'} + objectClass: posixGroup + objectClass: sambaGroupMapping + cn: $data{arg}{'groupadd'} + gidNumber: $maxgid + sambaSID: S-1-5-21-4205727931-4131263253-1851132050-$maxgid + sambaGroupType: 2 + displayName: $data{arg}{'groupadd'}#)){ + printmes(gettext('Error')); printmes("!\n"); + beep(); return ""; + }else{ + printmes(gettext('All done')); printmes("!\n"); + } + + }elsif($data{arg}{'groupdel'}){ + if(!ldapdelete("cn=$data{arg}{'groupdel'},ou=Groups,$data{'ldap_base'}")){ + printmes(gettext('Error')); printmes("!\n"); + beep(); return ""; + }else{ + printmes(gettext('All done')); printmes("!\n"); + } + + }elsif($data{arg}{'groupmod'}){ + if(defined $data{useradd} && $data{useradd} eq "" || + defined $data{userdel} && $data{userdel} eq "" || + !$data{useradd} && !$data{userdel} + ){ + printmes(gettext('Login of the user is not specified').".\n"); + printmes(gettext('Try')); printmes(" 'calculate --help' "); printmes(gettext('for more information')); + printmes(".\n"); + beep(); return ""; + } + + #проверим на существование группы доступа + printmes(" ".gettext('Check existing group')); printmes("..."); + if(!check_group($data{arg}{'groupmod'})){ + printmes(" ".gettext('error').".\n"); + beep(); return ""; + }else{ + printmes(" ".gettext('done')); printmes(".\n"); + } + + #проверим на существование учетной записи пользователя + { + my @users; + if($data{useradd}){push(@users,$data{useradd});} + if($data{userdel}){push(@users,$data{userdel});} + + printmes(" ".gettext('Check existing user account')); printmes("..."); + if(!check_user(@users)){ + printmes(" ".gettext('error').".\n"); + beep(); return ""; + }else{ + printmes(" ".gettext('done')); printmes(".\n"); + } + } + + #проверим на существование группы у добавляемых пользователей + if($data{useradd}){ + printmes(" ".gettext('Check up presence of the user in group')); printmes("..."); + if(check_groupuser($data{arg}{'groupmod'}, $data{useradd})){ + printmes(" ".gettext('error').".\n"); + beep(); return ""; + }else{ + printmes(" ".gettext('done')); printmes(".\n"); + } } + + #проверим на существование группы у удаляемых пользователей + if($data{userdel}){ + printmes(" ".gettext('Check up presence of the user in group')); printmes("..."); + if(!check_groupuser($data{arg}{'groupmod'}, $data{userdel})){ + printmes(" ".gettext('error').".\n"); + beep(); return ""; + }else{ + printmes(" ".gettext('done')); printmes(".\n"); + } } + + #добавим пользователя в группу + if($data{useradd}){ + ldapmodify(replace => qq#dn: "cn=$data{arg}{'groupmod'},ou=Groups,$data{'ldap_base'}" + add: memberUid + memberUid: $data{useradd}#); + } + + #удалим пользователя из группы + if($data{userdel}){ + ldapmodify(replace => qq#dn: "cn=$data{arg}{'groupmod'},ou=Groups,$data{'ldap_base'}" + delete: memberUid + memberUid: $data{userdel}#); + } + + printmes(gettext('All done')); printmes("!\n"); + + }else{ + printmes(gettext('Error')."! "); + if(defined $data{arg}{'useradd'} || defined $data{arg}{'userdel'} || defined $data{arg}{'userpasswd'}){ + printmes(gettext('Login of the user is not specified')); + }else{ + printmes(gettext('Group is not specified')); + } + printmes(".\n"); beep(); return ""; + } +} + +#------------------------------------------------------------------------------ +# Перенос skel-файлов +#------------------------------------------------------------------------------ +sub copyskel{ + my ($skel, $dir) = @_; + my $user = $data{arg}{'useradd'}; + + system "$data{path} cp -a $data{dir}/install/skel/$skel $dir/$user"; + system "$data{path} chown -R `$data{path} id -u $user`:`$data{path} id -g $user` $dir/$user"; + system "$data{path} chmod 700 $dir/$user"; +} + +#------------------------------------------------------------------------------ +# Ошибка - не настроен необходимый сервер +# параметр: имя сервера +#------------------------------------------------------------------------------ +sub not_setup_server{ + printmes(gettext('Error')."! "); + printmes(gettext('Before performance adjust a')); + printmes(" $_[0] "); + printmes(gettext('server')); printmes(".\n"); + printmes(gettext('Try')); printmes(" 'calculate --help' "); printmes(gettext('for more information')); + printmes(".\n"); + beep(); +} + +#------------------------------------------------------------------------------ +# Управление почтовыми ящиками +#------------------------------------------------------------------------------ +sub mail{ + #проверим на настроенный сервис + if($data{up_mail} eq "off"){not_setup_server("MAIL"); return "";} + + #выполним проверки на совместимость + if(!checkos("CDS", "8.3")){return "";} + + if($data{arg}{'mailuseradd'}){ + #проверим на наличие пользователя в LDAP-сервере + printmes(" ".gettext('Check existing user account')); printmes("..."); + + if(!ldapsearch(check => yes, where => "uid=$data{arg}{'mailuseradd'},ou=Users,$data{'ldap_base'}", grep => "dn:")){ + printmes(" ".gettext('error').".\n"); + beep(); return ""; + }else{ + printmes(" ".gettext('done')); printmes(".\n"); + } + + #проверим на существование почтового ящика + printmes(" ".gettext('Check existing email account')); printmes("..."); + if(check_email($data{arg}{'mailuseradd'})){ + printmes(" ".gettext('error').".\n"); + beep(); return ""; + }else{ + printmes(" ".gettext('done')); printmes(".\n"); + } + + #добавим почтовый ящик в LDAP-сервер + printmes(" ".gettext('Create a new email account')); printmes("..."); + if(!ldapmodify(add => qq# + dn: uid=$data{arg}{'mailuseradd'},ou=Users,ou=Mail,$data{'ldap_base'} + objectClass: inetOrgPerson + objectClass: qmailUser + uid: $data{arg}{'mailuseradd'} + cn: CDS Mail User + sn: CDS Mail User + accountStatus: active + mailMessageStore: $data{arg}{'mailuseradd'}/ + mail: $data{arg}{'mailuseradd'}\@$data{hostname}.$data{domain} + mailAlternateAddress: $data{'mail'} + userPassword: {crypt}x#)){ + printmes(" ".gettext('error').".\n"); + beep(); return ""; + }else{ + printmes(" ".gettext('done')); printmes(".\n"); + } + printmes(gettext('All done')); printmes("!\n"); + + }elsif($data{arg}{'mailuserdel'}){ + if(mailuserdel($data{arg}{'mailuserdel'})){ + printmes(gettext('All done')); printmes("!\n"); + } + }elsif($data{arg}{'mailuserpasswd'}){ + #проверим на существование почтового ящика + printmes(" ".gettext('Check existing email account')); printmes("..."); + if(!check_email($data{arg}{'mailuserpasswd'})){ + printmes(" ".gettext('error').".\n"); + beep(); return ""; + }else{ + printmes(" ".gettext('done')); printmes(".\n"); + } + + #введем пароль + my $passwd = inputpasswd($data{arg}{'mailuserpasswd'}); + + #изменим почтовый пароль + printmes(" ".gettext('Change a email account password')); printmes("..."); + if(!ldapmodify(replace => qq#dn: uid=$data{arg}{'mailuserpasswd'},ou=Users,ou=Mail,$data{'ldap_base'} + userPassword: #.`$data{path} slappasswd -s $passwd -h {SSHA}`)){ + printmes(" ".gettext('error').".\n"); + beep(); return ""; + }else{ + printmes(" ".gettext('done')); printmes(".\n"); + } + printmes(gettext('All done')); printmes("!\n"); + + }elsif($data{arg}{'mailgroupadd'}){ + + }elsif($data{arg}{'mailgroupdel'}){ + + }else{ + printmes(gettext('Error')."! "); + if(defined $data{arg}{'mailuseradd'} || defined $data{arg}{'mailuserdel'} || defined $data{arg}{'mailuserpasswd'}){ + printmes(gettext('Login of the email user is not specified')); + }else{ + printmes(gettext('Group is not specified')); + } + printmes(".\n"); beep(); return ""; + } + +} + +#------------------------------------------------------------------------------ +# Проверим на существование учетной записи пользователя +# Параметр: логин пользователя, [логин пользователя] +#------------------------------------------------------------------------------ +sub check_user{ + my @login = @_; + + foreach(@login){ + if(!ldapsearch(check => yes, where => "uid=$_,ou=Users,$data{'ldap_base'}", grep => "dn:")){ + return ""; #пользователя нет + } } + + return 1; #пользователь есть +} + +#------------------------------------------------------------------------------ +# Проверим на существование группы доступа +# Параметр: группа, [группа] +#------------------------------------------------------------------------------ +sub check_group{ + my @group = @_; + + foreach(@group){ + if(!ldapsearch(check => yes, where => "cn=$_,ou=Groups,$data{'ldap_base'}", grep => "dn:")){ + return ""; #пользователя нет + } + } + + return 1; #пользователь есть +} + +#------------------------------------------------------------------------------ +# Проверим на существование почтового ящика +# Параметр: логин пользователя +#------------------------------------------------------------------------------ +sub check_email{ + my $login = $_[0]; + + if(!ldapsearch(check => yes, where => "$login,ou=Users,ou=Mail,$data{'ldap_base'}", grep => "dn:")){ + return ""; #ящика нет + }else{ + return 1; #ящик есть + } +} + +#------------------------------------------------------------------------------ +# Проверим на существование группы у пользователя +# Параметр: группа, логин пользователя +#------------------------------------------------------------------------------ +sub check_groupuser{ + my ($group, $login) = @_; + + if(!ldapsearch(check => yes, where => "cn=$group,ou=Groups,$data{'ldap_base'}", grep => "memberUid:", filter => "(memberUid=$login)")){ + return ""; #группы нет + } + return 1; #группа есть +} + +#------------------------------------------------------------------------------ +# Удалим пользователя из системы +# Параметр: имя пользователя +#------------------------------------------------------------------------------ +sub userdel{ + my $login = $_[0]; + + #проверим на существование учетной записи пользователя + printmes(" ".gettext('Check existing user account')); printmes("..."); + if(!check_user($login)){ + printmes(" ".gettext('error').".\n"); + beep(); return ""; + }else{ + printmes(" ".gettext('done')); printmes(".\n"); + } + + #удалим пользователя из сервисов + mailuserdel($login, soft); #почтовый аккаунт + + #удалим пользователя со всех групп, где он есть + printmes(" ".gettext('Remove the user from groups')); printmes("..."); + #получим список групп пользователя + foreach(ldapsearch(where => "ou=Groups,$data{'ldap_base'}", grep => "cn:", filter => "(memberUid=$login)")){ + m/^cn:\s+(.+)$/; + #удалим пользователя из группы + ldapmodify(replace => qq#dn: "cn=$1,ou=Groups,$data{'ldap_base'}" + delete: memberUid + memberUid: $login#); + } + printmes(" ".gettext('done')); printmes(".\n"); + + #удалим пользователя из главной записи + if(!ldapdelete("uid=$login,ou=Users,$data{'ldap_base'}")){ + printmes(" ".gettext('error').".\n"); + beep(); return ""; + } + + #удалим файлы пользователя + system "rm -rf /var/CDS/mail/$login"; + system "rm -rf /var/CDS/profiles/$login"; + system "rm -rf /var/CDS/share/$login"; + system "rm -rf /var/CDS/winnt/netlogon/$login"; + system "rm -rf /var/CDS/winnt/profiles/$login"; + + return 1; +} + +#------------------------------------------------------------------------------ +# Удалим почтовый ящик пользователя +# Параметр: имя пользователя, [soft] - не выдавать ошибку в случае отсутствия ящика +#------------------------------------------------------------------------------ +sub mailuserdel{ + my ($login, $soft) = @_; + + #проверим на существование почтового ящика + printmes(" ".gettext('Check existing email account')); printmes("..."); + if(!check_email($login)){ + if($soft){ + printmes(" ".gettext('done')); printmes(".\n"); + return ""; + } + printmes(" ".gettext('error').".\n"); + beep(); return ""; + } + printmes(" ".gettext('done')); printmes(".\n"); + + #удалим почтовый ящик + printmes(" ".gettext('Delete a email account')); printmes("..."); + if(!ldapdelete("uid=$login,ou=Users,ou=Mail,$data{'ldap_base'}")){ + printmes(" ".gettext('error').".\n"); + beep(); return ""; + }else{ + printmes(" ".gettext('done')); printmes(".\n"); + } + + return 1; +} + +#------------------------------------------------------------------------------ +# Введем пароль пользователя +# Параметр: логин пользователя +#------------------------------------------------------------------------------ +sub inputpasswd{ + my $login = $_[0]; + my $pass,$pass2; + + if($login){ + printmes(gettext('Changing password for')); printmes(" \"$login\"\n"); + } + printmes(gettext('New password')); printmes(" :"); + system "stty -echo" if (-t STDIN); + chomp($pass=); + system "stty echo" if (-t STDIN); + print "\n"; + + printmes(gettext('Retype new password')); printmes(" :"); + system "stty -echo" if (-t STDIN); + chomp($pass2=); + system "stty echo" if (-t STDIN); + print "\n"; + + if ($pass ne $pass2) { + printmes(gettext('New passwords do not match')); printmes("!\n"); + beep(); return ""; + }elsif($pass eq '') { + printmes(gettext('Password not entered')); printmes("!\n"); + beep(); return ""; + }else{ + return $pass; + } +} + +#------------------------------------------------------------------------------ +# Изменение и добавление LDAP-записи +#------------------------------------------------------------------------------ +sub ldapmodify{ + my %ldap = ( + replace => "", + add => "", + replace_file => "", + add_file => "", + root_tmp => "", + @_, + ); + + my $ldif, $add, $file; + if($ldap{replace}){ + $ldif = qq#echo "$ldap{replace}" |#; + }elsif($ldap{add}){ + $ldif = qq#echo "$ldap{add}" |#; + $add = "-a"; + }elsif($ldap{replace_file}){ + $file = qq#-f "$ldap{replace_file}"#; + }elsif($ldap{add_file}){ + $file = qq#-f "$ldap{add_file}"#; + $add = "-a"; + } + my $auth; + if(!$ldap{root_tmp}){ + $auth = qq#-D "$data{ldap_root}" -w $data{ldap_rootpw}#; + }else{ + $auth = qq#-D "$data{ldap_root_tmp}" -w $data{ldap_rootpw_tmp}#; + } + + if(system qq#$ldif $data{path} ldapmodify $add -x $auth $file -h localhost &>/dev/null#){ + printmes(" ".gettext('error').".\n"); + beep(); return ""; + }else{ + return 1; + } +} + +#------------------------------------------------------------------------------ +# Удалим LDAP-запись +# Параметр: запись +#------------------------------------------------------------------------------ +sub ldapdelete{ + my $delete = $_[0]; + + if(system qq#$data{path} ldapdelete "$delete" -x -D $data{ldap_root} -w $data{ldap_rootpw} -h localhost >/dev/null 2>&1#){ + return ""; + }else{ + return 1; + } +} + +#------------------------------------------------------------------------------ +# Поиск LDAP-записей +# Возвращает массив строк +#------------------------------------------------------------------------------ +sub ldapsearch{ + my %ldap = ( + where => "", + filter => "", + grep => "", + check => "", + backup_file => "", + @_, + ); + + if($ldap{backup_file}){ + if(system qq#$data{path} ldapsearch -LLL -b "$ldap{where}" -LLL -x -D $data{ldap_root} -w $data{ldap_rootpw} -h localhost "(objectclass=*)" > $ldap{backup_file}#){ + return ""; + }else{ + return 1; + } + } + + my $filter; if($ldap{filter}){$filter = qq#"$ldap{filter}"#;} + my $grep; if($ldap{grep}){$grep = qq#| grep "$ldap{grep}"#;} + + my $ldif = qq#$data{path} ldapsearch $filter -b "$ldap{where}" -x -D $data{ldap_root} -w $data{ldap_rootpw} -h localhost $grep $obj#; + + if($ldap{check}){ + if(system "$ldif >/dev/null 2>&1"){ + return ""; #записи нет + }else{ + return 1; #запись есть + } + }else{ + return `$ldif`; #вернем массив найденных результатов + } +} + +#------------------------------------------------------------------------------ +# Сверим контрольные суммы исходного файла с файлом DIGEST +#------------------------------------------------------------------------------ +sub check_digests{ + my $file = $_[0]; + my $digests = "$_[0].DIGESTS"; + + #считаем контрольные суммы + open (F, $digests); + my $tmp = $/; undef $/; my $lines=; $/ = $tmp; + close (F); + + my $type; + foreach(split "\n", $lines){ + if(/^#\s+([^\s]+)\s+HASH/){$type = $1; next;} + my $hash = $_; + if($type eq "MD5"){ + if(!`openssl md5 $file | grep $hash`){return "";} + }elsif($type eq "SHA1"){ + if(!`openssl sha1 $file | grep $hash`){return "";} + } + } + return 1; +} + +#------------------------------------------------------------------------------ +# Создадим новый initrd файл +#------------------------------------------------------------------------------ +sub initrd{ + printmes(gettext('Create new initrd file')); printmes("..."); + if(!initrd_clean()){ + beep(); + printmes(" ".gettext('error')."!\n"); + } +} + +#------------------------------------------------------------------------------ +# Создадим урезанный по железу initrd файл +#------------------------------------------------------------------------------ +sub initrd_clean{ + my $chroot = $_[0]; + + if($chroot && number_ver($data{os}) <= number_ver(8.7)){ + #пропущем, выполним calculate --initrd при первой загрузке из профиля + printmes(" ".gettext('pass')); printmes(".\n"); +# printmes(gettext('It is supported in systems of versions')); printmes(" > 8.7\n"); + return 1; + } + + #найдем среди запущенных модулей не задействованные, которые можно удалить + my %mod_dep; #хэш зависимостей, ключ - модуль, значение - модули его использующие + my %mod_run; #хэш работающих модулей + my %mod_all; #все модули + foreach(`$path lsmod`){ + if(m/^Module/){next;} + if(m/^([^\s]+)\s+([^\s]+)\s+([^\s]+)\s+([^\s]+)?$/){ + my $dep = 0; + if($4){ + foreach(split /,/, $4){ + $dep ++; + if($mod_dep{$_}){$mod_dep{$_}.=","} + $mod_dep{$_}.="$1"; + } + } + if($3 > $dep){ + $mod_run{$1} ++; + } + $mod_all{$1} ++; + } + } + + #получим пути к модулям + foreach(keys %mod_all){ + my $type = `modinfo $_ | grep "filename:"`; + chomp $type; + $type=~m/^filename:\s+([^\s]+)$/; + $mod_all{$_} = $1; + } + + #уберем некоторые из работающих модулей + foreach(keys %mod_run){ + if( + $mod_all{$_}!~m#/kernel/# || + $mod_all{$_}=~m#/kernel/fs/cifs/# || + $mod_all{$_}=~m#/kernel/fs/nfs/# + ){delete $mod_run{$_};} + } + + #переведем некоторые модули в статус работающих + #для совместимости при переходе на новую версию +# foreach(keys %mod_all){ +# if( +# $mod_all{$_}=~m#/kernel/drivers/net/# +# ){$mod_run{$_}++;} +# } + + #объединим работающие модули с зависимостями + foreach(keys %mod_run){ + if($mod_dep{$_}){ + foreach(split /,/, $mod_dep{$_}){ + $mod_run{$_} ++; + } + } + } + + #распакуем initrd + my $tmpdir = "$chroot/tmp/initrd"; + `$data{path} rm -rf $tmpdir`; + `$data{path} mkdir $tmpdir`; + chdir($tmpdir); + + if(!-e "$chroot/boot/initrd-install"){ + `$data{path} cp -a $chroot/boot/initrd $chroot/boot/initrd-install`; + } + `$data{path} cp $chroot/boot/initrd-install $tmpdir/initrd-install.gz`; + `$data{path} gunzip $tmpdir/initrd-install.gz`; + `$data{path} cat $tmpdir/initrd-install | cpio -idv >/dev/null 2>&1`; + `$data{path} rm $tmpdir/initrd-install`; + + #удалим не работающие модули из initrd + foreach(`$data{path} find $tmpdir/lib/modules/ -name *.ko`){ + m/\/([^\/]+)\.ko$/; + if(!$mod_run{$1}){`rm $_`;} + } + + #соберем распакованный initrd + `$data{path} find * | cpio -o --quiet -H newc | gzip -9 > $chroot/boot/initrd`; + + chdir($ENV{PWD}); + `$data{path} rm -rf $tmpdir`; + + printmes(" ".gettext('done')); printmes(".\n"); + return 1; +} + +#------------------------------------------------------------------------------ +# Установка дополнений +#------------------------------------------------------------------------------ +sub addition{ + my $path = "/usr/calculate/share/addition/"; + my $find = lc($data{'calculate'})."\-(.*)-($data{os})\-$data{march}\.tar"; + + my $chk; + if(-e $path){ + foreach(`$data{path} find $path | sort`){ + chomp $_; + if($_=~m/\/$find$/){ + #проверим на то, что обновление уже установлено + if(!getini("addition.$1") || defined $data{arg}{'force'}){ + printmes("\n ".gettext('Addition is found')); + printmes(": ".ucfirst($1)." $2\n"); + + printmes("\n".gettext('Installation of addition will begin through')); printmes(" 10 "); printmes(gettext('seconds')); printmes(".\n"); + + printmes(gettext('Press')); printmes(" Ctrl+C "); printmes(gettext('to cancel')); printmes("... "); + if(system(q|echo -e -n "\a10"; sleep 1; for ((i=9; $i>0; i--)); do echo -e -n "\a\b\b $i"; sleep 1; done; echo -e "\b\b ";|)){ + printmes("\n"); next; + } + + #распакуем дополнение + printmes(" ".gettext('Unpack')); printmes("..."); + + my $extract; + if(number_ver($data{os}) > number_ver(8.7)){ + if(!-e $data{pkgdir}){system "$data{path} mkdir -p $data{pkgdir}";} + $extract = $data{pkgdir}; + }else{ + $extract = "/"; + } + + my $packages; #список пакетов + foreach(`$data{path} tar -xvf $_ -C $extract`){ + chomp; + if(m/\/All\// || !m/tbz2/){next;} + m/([^\/]+\/[^\/]+)\.tbz2$/; + $packages .= " =$1"; #сформируем переменную для установки + push(@{$data{packageslist}}, "=$1"); #сформируем массив для проверки зависимостей + } + printmes(" ".gettext('done')); printmes(".\n"); + + #проверим зависимости + if(!dependence('hide')){ + beep(); + exit; + } + + #проверим пакеты, которые нужно установить + my @install; + printmes(" ".gettext('Compare to the list of the established packages')); printmes("..."); + foreach(`emerge -p$packages 2>&1`){ + if( + m/\[ebuild\s+N\s+\]/ || m/\[ebuild\s+U\s+\]/ || + (defined $data{arg}{'force'} && m/\[ebuild\s+.+\]/) + ){ + m/\[ebuild[^\]]+\]\s+([^\s]+)/; #выделим пакет с версией + push (@install, $1); + } + } + printmes(" ".gettext('done')); printmes(".\n"); + + if(@install){ + #установим необходимые пакеты + printmes(gettext('Perform installation')); printmes(":\n"); + my $num = 1; + my $all = @install; + foreach(@install){ + #printmes(' '.gettext('Unpack')); + printmes(" ($num "); + printmes(gettext('of')); + printmes(" $all) $_..."); + if(system "$data{path} emerge --usepkg =$_ &>/dev/null"){ + printmes(" ".gettext('error').".\n"); + exit; + }else{ + printmes(" ".gettext('done')); printmes(".\n"); + } + $num ++; + } + } + + putini("addition.$1" => "$2"); + $chk ++; #флаг успешного обновления + } } } + }else{ + `$data{path} mkdir -p $path`; + } + + if(!$chk){ + printmes("\n".gettext('No updates available')); printmes(".\n"); + }else{ + printmes(gettext('All done')); printmes("!\n"); + } +} + +#------------------------------------------------------------------------------ +# Покажем список пакетов входящих в дополнение +#------------------------------------------------------------------------------ +sub listadd{ + if(!checkadd()){return "";} + + printmes(gettext('Package list incoming in the addition')); printmes(" \"".ucfirst($data{addition})."\"...\n"); + + #отобразим на экране список пакетов + my $i = 0; + foreach(packages()){ + printmes("$_\n"); + $i++; + } + + printmes("\n"); + printmes(gettext('All')); printmes(" $i "); printmes(gettext('packages')); + printmes(".\n"); + + return 1; +} + +#------------------------------------------------------------------------------ +# Соберем пакет дополнения +#------------------------------------------------------------------------------ +sub makeadd{ + if(number_ver($data{os}) <= number_ver(8.7)){ + printmes(gettext('It is supported in systems of versions')); + printmes(" > 8.7\n"); + return ""; + } + + if(!checkadd()){return "";} + + #проверим зависимости + if(!dependence()){ + beep(); + exit; + } + + printmes("\n".gettext('Assembly of addition will begin through')); printmes(" 10 "); printmes(gettext('seconds')); printmes(".\n"); + + printmes(gettext('Press')); printmes(" Ctrl+C "); printmes(gettext('to cancel')); printmes("... "); + if(system(q|echo -e -n "\a10"; sleep 1; for ((i=9; $i>0; i--)); do echo -e -n "\a\b\b $i"; sleep 1; done; echo -e "\b\b ";|)){ + printmes("\n"); return ""; + } + + printmes(gettext('Make addition')."\n"); + + my @packages = packages(); #получим список пакетов дополнения + + #путь к собираемым бинарным файлам пакетов дополнения + my $pathadd = "$data{tmpdir}/packages/$data{addition}/$data{calculate}/$data{linuxver}/$data{march}"; + + #путь к архиву + my $pathtar = "/usr/calculate/share/addition/". + lc($data{'calculate'})."-$data{addition}-$data{linuxver}-$data{march}.tar"; + + #путь к LIST-файлу + my $pathlist = "/usr/calculate/share/addition/". + lc($data{'calculate'})."-$data{addition}-$data{linuxver}-$data{march}.list"; + + #соберем пакеты, без записи в world файл + if(system "$data{path} PKGDIR=\"$pathadd\" emerge --buildpkg --oneshot --noreplace @packages"){ + beep(); + printmes(" ".gettext('error')."!\n"); return ''; + return ""; + }else{ + printmes(" ".gettext('done').".\n"); + } + + #упакуем в пакет дополнения скомпилированные программы + printmes(" ".gettext('Packing addition')); printmes("..."); + chdir($pathadd); + if(system("$data{path} tar -cf $pathtar .")){ + printmes(" ".gettext('error').".\n"); + return ""; + }else{ + printmes(" ".gettext('done')); printmes(".\n"); + } + chdir($ENV{PWD}); + + #удалим бинарные файлы программ + printmes(" ".gettext('Delete temporary files')); printmes("..."); + if(system "rm -rf $pathadd"){ + printmes(" ".gettext('error').".\n"); + return ""; + }else{ + printmes(" ".gettext('done')); printmes(".\n"); + } + + #деинсталлируем собранные пакеты, чтобы привести систему в первоначальный вид + printmes(" ".gettext('Uninstall packages')); printmes("..."); + my $packages, %list; #список пакетов + foreach(`$data{path} tar -tf $pathtar`){ + chomp; + if(m/\/All\// || !m/tbz2/){next;} + m/([^\/]+\/[^\/]+)\.tbz2$/; + $packages .= " =$1"; + $list{$1} ++; + } + if(system "$data{path} emerge -C $packages &>/dev/null"){ + printmes(" ".gettext('error').".\n"); + return ""; + }else{ + printmes(" ".gettext('done')); printmes(".\n"); + } + + #Создадим list-файл со списком собранных пакетов + printmes(" ".gettext('Create')); printmes(" LIST "); printmes(gettext('file')); printmes("..."); + open LIST, ">$pathlist"; + foreach(sort keys %list){ + print LIST "$_\n"; + } + close LIST; + printmes(" ".gettext('done')); printmes(".\n"); + + #Создадим DIGESTS-файл + printmes(" ".gettext('Create')); printmes(" DIGESTS "); printmes(gettext('file')); printmes("..."); + if(create_digests($pathtar)){ + printmes(" ".gettext('done')); printmes(".\n"); + }else{ + printmes(" ".gettext('error').".\n"); + } + + printmes("\n".gettext('All done')); printmes("!\n"); + + return 1; +} + +#------------------------------------------------------------------------------ +# Проверим имя пакета дополнения +#------------------------------------------------------------------------------ +sub checkadd{ + if(defined $data{addition} && packages()){ + return 1; + }elsif(!defined $data{addition}){ + printmes(gettext('Addition name is not specified')); printmes(".\n"); + }elsif(!packages()){ + printmes(gettext('Packages addition')); + printmes(" \"$data{addition}\" "); + printmes(gettext('not found')); printmes(".\n"); + } + + printmes(gettext('Try')); printmes(" 'calculate --help' "); printmes(gettext('for more information')); + printmes(".\n"); + beep(); + return ""; +} + +#------------------------------------------------------------------------------ +# Установим по необходимости видеодрайвер +#------------------------------------------------------------------------------ +sub video{ + printmes(" ".gettext('Check the video driver')); printmes("... "); + if( + $data{video_drv} eq 'nvidia' + && + -e "/usr/portage/packages/x11-drivers" + ){ + my $filemask = "/etc/portage/package.mask/nvidia-drivers"; + + #создадим директорию package.mask для версий Calculate Linux < 9.2 + if(-f "/etc/portage/package.mask"){ + system "$data{path} mv /etc/portage/package.mask /etc/portage/package.mask2"; + system "$data{path} mkdir /etc/portage/package.mask"; + system "$data{path} mv /etc/portage/package.mask2 /etc/portage/package.mask/default"; + } + + my $maskold; + if(-f $filemask){ + $maskold = `cat $filemask`; + chomp $maskold; + } + + my $mask = `bash -c "function inherit { echo -n ''; };. /usr/portage/eclass/nvidia-driver.eclass && nvidia-driver-get-mask"`; + chomp $mask; + + printmes(gettext('done').".\n"); + + #обновим драйвер + if($mask ne $maskold){ + printmes(" ".gettext('Driver Installation for')); printmes(" \"$data{video}\"... "); + system "echo '$mask' > $filemask"; + if(system "PKGDIR=\"/usr/portage/packages\" emerge -bk nvidia-drivers > /dev/null"){ + #в случае неудачи, удалим маску + system "rm $filemask"; + printmes(gettext('error').".\n"); + }else{ + printmes(gettext('done').".\n"); + } + } + }else{ + printmes(gettext('done').".\n"); + } +} +#------------------------------------------------------------------------------ +# Звуковое предупреждение +#------------------------------------------------------------------------------ +sub beep{ +# if(-e "/usr/bin/play" && -e "/usr/share/sounds/pop.wav"){ +# `/usr/bin/play /usr/share/sounds/pop.wav 2>&1 >/dev/null`; +# }else{ + system "echo -e -n \"\a\""; +# } +} + +#------------------------------------------------------------------------------ +# Соберем бинарные пакеты дополнений (nVideo драйвера) +#------------------------------------------------------------------------------ +sub makepkg{ + if($data{system} eq "server" || $data{calculate} eq "CLDX"){return 1;} + + printmes(gettext('Make nvidia drivers')."\n"); + + # echo ">x11-drivers/nvidia-drivers-72.00.00" > /etc/portage/package.mask/nvidia + # emerge -bk nvidia-drivers + + printmes(" ".gettext('nvidia-drivers-96.XX.XX')); printmes("... "); + `echo ">x11-drivers/nvidia-drivers-97.00.00" > $data{'chroot'}/etc/portage/package.mask/nvidia`; + if(system "$data{emergerun1} -bk x11-drivers/nvidia-drivers $data{emergerun2} &>/dev/null"){ + beep(); + printmes(gettext('error').".\n"); return ''; + }else{ + printmes(gettext('done').".\n"); + } + + printmes(" ".gettext('nvidia-drivers-173.XX.XX')); printmes("... "); + `echo ">x11-drivers/nvidia-drivers-174.00.00" > $data{'chroot'}/etc/portage/package.mask/nvidia`; + if(system "$data{emergerun1} -bk x11-drivers/nvidia-drivers $data{emergerun2} &>/dev/null"){ + beep(); + printmes(gettext('error').".\n"); return ''; + }else{ + printmes(gettext('done').".\n"); + } + + printmes(" ".gettext('nvidia-drivers-last')); printmes("... "); + `rm $data{'chroot'}/etc/portage/package.mask/nvidia`; + if(system "$data{emergerun1} x11-drivers/nvidia-drivers $data{emergerun2} &>/dev/null"){ + beep(); + printmes(gettext('error').".\n"); return ''; + }else{ + printmes(gettext('done').".\n"); + } + + return 1; +} diff --git a/install/config/fdisk.CDS b/install/config/fdisk.CDS new file mode 100644 index 0000000..77bdda6 --- /dev/null +++ b/install/config/fdisk.CDS @@ -0,0 +1,46 @@ +d +9 +d +8 +d +7 +d +6 +d +5 +d +4 +d +3 +d +2 +d +1 +n +p +1 + ++4096M +n +p +2 + ++20480M +n +p +3 + ++20480M +n +e + + +n + + +t +1 +82 +a +2 +w diff --git a/install/config/fdisk.CLD b/install/config/fdisk.CLD new file mode 100644 index 0000000..617fd36 --- /dev/null +++ b/install/config/fdisk.CLD @@ -0,0 +1,46 @@ +d +9 +d +8 +d +7 +d +6 +d +5 +d +4 +d +3 +d +2 +d +1 +n +p +1 + ++1024M +n +p +2 + ++10240M +n +p +3 + ++10240M +n +e + + +n + + +t +1 +82 +a +2 +w diff --git a/install/config/fdisk.CLDX b/install/config/fdisk.CLDX new file mode 100644 index 0000000..617fd36 --- /dev/null +++ b/install/config/fdisk.CLDX @@ -0,0 +1,46 @@ +d +9 +d +8 +d +7 +d +6 +d +5 +d +4 +d +3 +d +2 +d +1 +n +p +1 + ++1024M +n +p +2 + ++10240M +n +p +3 + ++10240M +n +e + + +n + + +t +1 +82 +a +2 +w diff --git a/install/i18n/ru b/install/i18n/ru new file mode 120000 index 0000000..979c0ac --- /dev/null +++ b/install/i18n/ru @@ -0,0 +1 @@ +ru_RU \ No newline at end of file diff --git a/install/i18n/ru_RU/LC_MESSAGES/calculate.mo b/install/i18n/ru_RU/LC_MESSAGES/calculate.mo new file mode 100644 index 0000000000000000000000000000000000000000..2d568ee31e21d4ca40e506205e56edd98b73ade5 GIT binary patch literal 28903 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 o5_(LEGa|GdOQLd z(QeHeM^O|qPsnYSa=UpZ9>kcWhKM;bwdzO<1nx~{;Gt5*?h{qI{=J~t%1sqv7S6m3 zwTvG%ZbR!HmLHZ(CC2;V0tc|E-2OszA%Mca(a|bWRI8fpq=`WbTNM9{jmsA8R<|X& zmFTms<&CTzeq{uu7UY=K3TH9Af&CIp&|RaDby`Ks4mxf~V&PmGacr|NL3oB2i_2ZT z6iLtZgmhL(RUCFtTF4WWCkO&7$(NfC1Q*17 zJxz9ItTgT#d0C;V+_mSvgLlv>z{`$o`oDV2qcyNjvY@`VL-pQzjFtkh}O6Sq1EZc!$C zQa+JqVu_zr5>>jmlP-@U5!GZ$#QI|92&1xJFIlX*z-VNu*q?3ndK4<=8c7l291~tV zJaML>h5sHA%ic+>@}q<#$r}Zd^v%380yWlMGt#fj9}Xz)Zfml5vs1ZnyGC)rrg^Q%Wg)$n3Qf*-S(c&BmXi ziI}&AiA%cZktvuF*9mt zmtos*STM&|?p7V5lpT0V`!uyx4?m&oEG9Ko%W@H5n}vR`xrX$h(+g(B+6rD1$WIKonOf=ZsK8&{ffT36hYF-yL?qEUlNFAo$;j2QGe}>&jM98|AMTNkHFP?w5&#am z`Va$P{vk{NBV3nU@vCc9MX?E2&bCW z3nfX#DjLlubJLlWoDxT}xYZ-ryx$5LRdktp-~0$(6#|`o(|)GD?BI2iv*_p5@^lj} zM94YQ>O&UvJmx@#U3p#c`OZYn?Hi(WD?x?ex^Ul~V3zhiSVAkZfijr2={{Aeh9Pd5s)E^ULhOE!@mR-xR}sG3xVL0}K^uM}++& zO(u-A*BG5s2QNwamrH~s-(A|-{-Jw@Fo5Wjp5*inKPKc2=DsZMRvZVYwd+-wW1k!lt z3mtBC(rXOLs5mL%<&Tjd$#lLPf!OwV0gd5Bl0pM#MuZ?`sMA zh+KTD_EFqUP8#gkw{3oTDJ3iPIzPb#cO&iY${bK6bY>EJOGP1-K)O;BB^375Mu93V zZjr%IN0yu46lN9;JmeWRU`jEzKg3*2{1d$7^zbZ-JoLoTcvrld;#^Eld~@K&~p`El!8h zvxNVUjM}?<=oNRK?|7}^g$ug3N=e*y*dEN=)Ec7%+}f6U)W(vfhc=cKgW8UwQ{xnk z;);nZty>-Npy`@36hB1t6A4pmh;0y{7al6$A#a!ARW(N_Hd5SCBM%xvQ@BB+34K8Rov*CoN_a@ zie?6@u={p|E|XMJWTYw5;;r)U%@~*lGOtY&Y**f$@X8|ss(FS5a+Rtwn(&g1Ink#= z+csNe%d|Ld+#$DI-?-I@%g7h%iGXw_ay-bgqS?0CjYptbJ7n{Wjz=+jvJLFy?`YiG z*x0y_zjxW4kHn2naIv2MHgN0i#_ci|az;$qvXOJ$4|D&P?9*G=+kMWbThA058GW}s z4^w@tar?B06(kS^ZL5oLF$8sW`d(s_Nl6JM-AriRAe-igR`l1;K0WuD|UU~t)qxu80z)KLhyKD``V*oMZmZfvO8xp3DX%!z0V*hVpce(#osyP**N7is^=Yl4q91uAhvwZs z{={Ee6u3WI%I$br%|eM^X9JnGR@w(~_dX zq~5!+_2dZBvOiF^AN!}7vQ0#$yyW$RvO>1hG)EL6^3GKJsWx#(x@Q7o1hws@fJlRK ziO;rwa;)}OLw+KvdUUr&_izjR#buhDTTxaj=PPbPo+3tY0}`22lQ~>`j_sw2#OzNB znKA6DTurT#MQ1;xEz5@b=Wg^1hnk&IYRwVs6p-157sk7k(ZpjF4BMp3jdY_;S+L8I zyW5cjG2!ok+ZOOt<@vfXs}QXizVxAE8cbeBx6*+pDH z-ZETSn^{BiCcvCR1}O{FTM5$35he4RpvwyEVws_EPi9fxQUW;jY&D z-M54ZC88C15}p9PJTEeVdWl*o&t&A4igHgtCm8ip9WWFJhEJanMrR ztj!Ol_cPklp29RL9wzw3gi)+Nwgqh~XxtXikxDP5#)(R6+uzP7X4~mgOsQ8ZNs, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: support.ru\n" +"POT-Creation-Date: 2009-06-04 18:26+0400\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "\n" +msgstr "" + +msgid " Installation" +msgstr "" + +msgid "Abort" +msgstr "Аварийное завершение" + +msgid "Access management" +msgstr "Управление доступом" + +msgid "Add" +msgstr "Добавлен" + +msgid "Add UNIX groups in a LDAP server" +msgstr "Добавим UNIX группы в LDAP-сервер" + +msgid "Add additional network devices" +msgstr "Добавим дополнительные сетевые устройства" + +msgid "Add administrators to wheel group" +msgstr "Добавим администраторов в группу wheel" + +msgid "Add email support in a LDAP server" +msgstr "Добавим поддержку электронной почты в LDAP-сервер" + +msgid "Add syncronization into" +msgstr "Добавим синхронизацию времени в" + +msgid "Addition is found" +msgstr "Найдено обновление" + +msgid "Addition name is not specified" +msgstr "Не указано имя дополнения" + +msgid "Additional" +msgstr "Дополнительные" + +msgid "Additions assemble" +msgstr "Сборка дополнений" + +msgid "All" +msgstr "Всего" + +msgid "All done" +msgstr "Готово" + +msgid "Apply patches" +msgstr "Установим патчи" + +msgid "Apply profile" +msgstr "Наложим профиль" + +msgid "Apply update" +msgstr "Наложим обновление" + +msgid "Assembly of addition will begin through" +msgstr "Сборка дополнения начнётся через" + +msgid "Authentification" +msgstr "Аутентификация" + +msgid "Available updates" +msgstr "Доступные обновления" + +msgid "Backup LDAP server" +msgstr "Резервная копия LDAP-серера" + +msgid "Basic" +msgstr "Основные" + +msgid "Before performance adjust a" +msgstr "Перед выполнением настройте" + +msgid "Before start stop working LDAP and SAMBA servers" +msgstr "Перед запуском остановите работающие LDAP и SAMBA серверы" + +msgid "Before the installation please remove directory" +msgstr "Перед установкой удалите директорию" + +msgid "Break the system building" +msgstr "Прерывание сборки системы" + +msgid "Building" +msgstr "Сборка" + +msgid "Change a email account password" +msgstr "Изменим пароль почтового ящика" + +msgid "Change boot record" +msgstr "Изменим загрузочную запись" + +msgid "Changed by installator" +msgstr "Изменено установщиком" + +msgid "Changing password for" +msgstr "Изменение пароля для" + +msgid "Chassis Manufacture" +msgstr "Самосборный компьютер" + +msgid "Check existing email account" +msgstr "Проверим существование почтового ящика" + +msgid "Check existing group" +msgstr "Проверим существование группы" + +msgid "Check existing user account" +msgstr "Проверим существование учётной записи" + +msgid "Check of dependences" +msgstr "Проверка зависимостей" + +msgid "Check the checksum" +msgstr "Сверим контрольную сумму" + +msgid "Check the video driver" +msgstr "Проверка видео драйвера" + +msgid "Check up presence of the user in group" +msgstr "Проверим на существование группы у пользователя" + +msgid "Checking for updates available" +msgstr "Проверим на наличие обновлений" + +msgid "Collecting system information" +msgstr "Соберём сведения о системе" + +msgid "Command is supported on system not below version" +msgstr "Команда поддерживается в системе не ниже версии" + +msgid "Command is supported only in" +msgstr "Команда поддерживается только в" + +msgid "Compare to the list of the established packages" +msgstr "Сравним со списком установленных пакетов" + +msgid "Computer name" +msgstr "Имя компьютера" + +msgid "Config files variables list" +msgstr "Список переменных конфигурационных файлов" + +msgid "Configuration" +msgstr "Конфигурирование" + +msgid "Configuration profile is not specified" +msgstr "Не указан конфигурационный профиль" + +msgid "Copy" +msgstr "Скопируем" + +msgid "Copy original ssh keys" +msgstr "Скопируем оригинальные ключи ssh" + +msgid "Copy udev net rules" +msgstr "Скопируем сетевые правила udev" + +msgid "Create" +msgstr "Создадим" + +msgid "Create a mount point \"home\" and \"share\"" +msgstr "Создадим точки монтирования \"home\" и \"share\"" + +msgid "Create a new email account" +msgstr "Создадим новый электронный ящик" + +msgid "Create directory" +msgstr "Создадим директорию" + +msgid "Create iso-image" +msgstr "Создадим iso-образ" + +msgid "Create new initrd file" +msgstr "Создадим новый initrd файл" + +msgid "Create system archive file" +msgstr "Создадим архив системы" + +msgid "Create users accounts" +msgstr "Создадим учётные записи пользователей" + +msgid "Delete" +msgstr "Удалим" + +msgid "Delete Portages" +msgstr "Удалим портежи" + +msgid "Delete a email account" +msgstr "Удалим электронный ящик" + +msgid "Delete temporary files" +msgstr "Удалим временные файлы" + +msgid "Delete the kernel sources" +msgstr "Удалим исходный код ядра" + +msgid "Detect logged in users" +msgstr "Определим присутствие пользователей в системе" + +msgid "Disk" +msgstr "Диск" + +msgid "Distribution image not found" +msgstr "Не найден образ дистрибутива" + +msgid "Domain name" +msgstr "Домен" + +msgid "Downloading update package" +msgstr "Загрузим пакет обновления" + +msgid "Driver Installation for" +msgstr "Установка драйвера для" + +msgid "E-Mail" +msgstr "Электронная почта" + +msgid "Enable OpenGL optinization" +msgstr "Включим OpenGL ускорение" + +msgid "Error" +msgstr "Ошибка" + +msgid "Execute" +msgstr "Выполним" + +msgid "Execute in chroot environment" +msgstr "Выполним в chroot-окружении" + +msgid "Execute prelinking packages" +msgstr "Выполним предварительное связывание пакетов" + +msgid "Execute with parameter" +msgstr "Выполните с параметром" + +msgid "File not found" +msgstr "Не найден файл" + +msgid "File system" +msgstr "Файловая система" + +msgid "Finishing installation" +msgstr "Завершение установки" + +msgid "For continuation please remove directory" +msgstr "Для продолжения удалите директорию" + +msgid "" +"For installation, you must update the program. Run \"calculate --update\"" +msgstr "" +"Для установки вы должны обновить программу. Выполните \"calculate --update\"" + +msgid "For performance of operation it is necessary to configure system" +msgstr "Для выполнения операции необходимо сконфигурировать систему" + +msgid "For update system run \"calculate\" version" +msgstr "Для обновления системы, запустите \"calculate\" версии" + +msgid "Format" +msgstr "Отформатируем" + +msgid "Formatting a partition for the data" +msgstr "Форматирование раздела для данных" + +msgid "Formatting new volume" +msgstr "Отформатируем новый раздел" + +msgid "Formatting utility not found" +msgstr "Не найдена программа форматирования диска" + +msgid "Gateway" +msgstr "Шлюз" + +msgid "Get" +msgstr "Получим" + +msgid "Get available packages list" +msgstr "Считаем список доступных пакетов" + +msgid "Group is not specified" +msgstr "Не передана группа" + +msgid "Hard disks" +msgstr "Жесткие диски" + +msgid "Hardware" +msgstr "Оборудование" + +msgid "Incorrect partition" +msgstr "Неверно указан раздел" + +msgid "Incorrect path to program" +msgstr "Некорректный путь к программе" + +msgid "Incorrect variable name" +msgstr "Неверное имя переменной" + +msgid "Informative output" +msgstr "Информационный вывод" + +msgid "Input root password again" +msgstr "Введите пароль пользователя root снова" + +msgid "Input user guest password again" +msgstr "Введите пароль пользователя guest снова" + +msgid "Input user password guest to new distributive file" +msgstr "Введите пароль пользователя guest в новом дистрибутиве" + +msgid "Input user password root to new distributive file" +msgstr "Укажите пароль пользователя root для нового дистрибутива" + +msgid "Install the kernel" +msgstr "Установим ядро" + +msgid "Installation" +msgstr "Установка" + +msgid "Installation and Update" +msgstr "Установка и обновление" + +msgid "Installation of addition will begin through" +msgstr "Установка дополнения начнётся через" + +msgid "Installation profiles" +msgstr "Профили установки" + +msgid "Installation volume" +msgstr "Раздел для установки" + +msgid "Installation, compilation and updating of system" +msgstr "Установка, сборка и обновление системы" + +msgid "Installed system" +msgstr "Установлена система" + +msgid "Invalid profile" +msgstr "Неверно указан профиль" + +msgid "It is supported in systems of versions" +msgstr "Поддерживается в системах версий" + +msgid "Keymap" +msgstr "Раскладка" + +msgid "Language" +msgstr "Язык" + +msgid "Last available portage version" +msgstr "Последняя доступная версия портежей" + +msgid "Last available stage version" +msgstr "Последняя доступная версия stage" + +msgid "Latest update successfully installed" +msgstr "Последнее обновление успешно установлено" + +msgid "Location" +msgstr "Размещение" + +msgid "Login of the email user is not specified" +msgstr "Не передан логин почтового пользователя" + +msgid "Login of the user is not specified" +msgstr "Не передан логин пользователя" + +msgid "Machine hardware name" +msgstr "Тип оборудования машины" + +msgid "Make addition" +msgstr "Соберем дополнение" + +msgid "Make nvidia drivers" +msgstr "Соберём nvidia драйвера" + +msgid "Make system" +msgstr "Сборка системы" + +msgid "Mandatory arguments to long options are mandatory for short options too" +msgstr "Аргументы, обязательные для длинных ключей, обязательны и для коротких" + +msgid "Model" +msgstr "Модель" + +msgid "Motherboard" +msgstr "Материнская плата" + +msgid "Mount" +msgstr "Подмонтируем" + +msgid "Mounted disks" +msgstr "Монтируемые диски" + +msgid "Mounting ISO file" +msgstr "Подмонтируем ISO файл" + +msgid "Mounting installation valume failed" +msgstr "Не удалось подмонтировать раздел для установки" + +msgid "Mounting new volume" +msgstr "Подмонтируем новый раздел" + +msgid "Mounting squashfs filesystem" +msgstr "Подмонтируем файловую систему squashfs" + +msgid "Network devices" +msgstr "Сетевые устройства" + +msgid "Network services" +msgstr "Сетевые службы" + +msgid "New password" +msgstr "Новый пароль" + +msgid "New passwords do not match" +msgstr "Новые пароли не соответствуют" + +msgid "New release number" +msgstr "Номер нового релиза" + +msgid "No updates available" +msgstr "Нет доступных обновлений" + +msgid "Not defined variable" +msgstr "" + +msgid "OPTION" +msgstr "КЛЮЧ" + +msgid "On the disk is to mount partitions" +msgstr "На диске есть примонтированные разделы" + +msgid "One of the packages not match your architecture" +msgstr "Oдин из пакетов не подходит для вашей архитектуры" + +msgid "Only root can perform system installation" +msgstr "Установку системы может производить только пользователь root" + +msgid "Operation interrupted" +msgstr "Операция прервана" + +msgid "Package list incoming in distributive file" +msgstr "Список пакетов входящих дистрибутив" + +msgid "Package list incoming in the addition" +msgstr "Список пакетов входящих в дополнение" + +msgid "Packages addition" +msgstr "Пакеты обновления" + +msgid "Packing addition" +msgstr "Упакуем дополнение" + +msgid "Packing system into squashfs format" +msgstr "Упакуем систему в squashfs формат" + +msgid "Packing the distribution package into the archive file" +msgstr "Упакуем дистрибутив в архив образа" + +msgid "Parameters" +msgstr "Параметры" + +msgid "Password not entered" +msgstr "Пароль не введен" + +msgid "Perform calculate overlay update" +msgstr "Выполним обновление calculate overlay" + +msgid "Perform checkouts" +msgstr "Выполним проверки" + +msgid "Perform config files update" +msgstr "Выполним обновление конфигурационных файлов" + +msgid "Perform hard disk partition" +msgstr "Выполним разбиение диска" + +msgid "Perform installation" +msgstr "Выполним установку" + +msgid "Perform portages update" +msgstr "Выполним обновление портежей" + +msgid "Perform pre-install checkups" +msgstr "Выполним проверки перед установкой" + +msgid "Perform reboot" +msgstr "Выполним перезагрузку" + +msgid "Perform updates search" +msgstr "Выполним поиск обновлений" + +msgid "Please extract calculate archive and run from created directory" +msgstr "" +"Пожалуйста распакуйте пакет calculate и выполните из созданной директории" + +msgid "Please reboot" +msgstr "Перезагрузите компьютер" + +msgid "" +"Please revise dependences of the packages by your own  using flags " +"concealment of packages" +msgstr "" +"Пожалуйста исправьте зависимости пакетов самостоятельно, используя флаги " +"маскировки пакетов" + +msgid "Please specify installation volume" +msgstr "Укажите раздел для установки" + +msgid "Please unmount disk or specify another volume" +msgstr "Перед установкой отмонтируйте диск, либо укажите другой раздел" + +msgid "Prepare installation volume" +msgstr "Подготовим раздел для установки" + +msgid "Prepare system for packing" +msgstr "Подготовим систему к упаковке" + +msgid "Prepare system for reboot" +msgstr "Подготовим систему к перезагрузке" + +msgid "Press" +msgstr "Нажмите" + +msgid "Profile file" +msgstr "Файл профиля" + +msgid "Put a patch" +msgstr "Наложим патч" + +msgid "Quantity processors" +msgstr "Количество процессоров" + +msgid "Ready for packages installation" +msgstr "Теперь можно приступить к установке пакетов" + +msgid "Register kernel into boot loader" +msgstr "Пропишем ядро в автозагрузку" + +msgid "Remove the user from groups" +msgstr "Удалим пользователя из групп" + +msgid "Replace outdated configuration files" +msgstr "Заменим устаревшие конфигурационные файлы" + +msgid "Restore" +msgstr "Восстановим" + +msgid "Retype new password" +msgstr "Перепечатайте новый пароль" + +msgid "Run" +msgstr "Запустим" + +msgid "Save kernel config" +msgstr "Сохраним настройки ядра" + +msgid "Screen resolution" +msgstr "Разрешение экрана" + +msgid "Server is already adjusted" +msgstr "Сервер уже настроен" + +msgid "Set autostarting services" +msgstr "Пропишем сервисы в автозагрузку" + +msgid "Set up a Linux swap area" +msgstr "Создадим раздел Linux swap" + +msgid "Setup base structure of a LDAP server" +msgstr "Настроим базовую структуру LDAP-сервера" + +msgid "Setup server" +msgstr "Настройка сервера" + +msgid "Similarly for optional arguments" +msgstr "То же и для необязательных аргументов" + +msgid "Swap disk" +msgstr "Диск подкачки" + +msgid "System building" +msgstr "Сборка системы" + +msgid "System setup" +msgstr "Настроим систему" + +msgid "System will install over" +msgstr "Система начнет установку через" + +msgid "The archive with image of system is not found" +msgstr "Не найден архив с образом системы" + +msgid "The name of a server is incorrectly specified" +msgstr "Неверно указано имя сервера" + +msgid "The size of the disk is not defined" +msgstr "Размер диска не определен" + +msgid "" +"The size of the disk is not sufficient to perform automatic partitioning" +msgstr "Раздел диска недостаточен для выполнения автоматического разбиения" + +msgid "The system should be not below version" +msgstr "Система должна быть не ниже версии" + +msgid "" +"This is free software; see the source for copying conditions. There is NO " +"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." +msgstr "" +"Это свободная программа; подробности об условиях распространения смотритев " +"исходном тексте. Мы НЕ предоставляем гарантий; даже гарантий КОММЕРЧЕСКОЙ " +"ЦЕННОСТИ или ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ." + +msgid "Timezone" +msgstr "Часовой пояс" + +msgid "To apply changes you have to reboot" +msgstr "Для вступления изменений в силу компьютер следует перезагрузить" + +msgid "To continue сopy file" +msgstr "Для продолжения скопируйте файл" + +msgid "To set root password press" +msgstr "Для задания пароля root нажмите" + +msgid "Transfer Calculate to system" +msgstr "Перенесем Calculate в систему" + +msgid "Try" +msgstr "Попробуйте" + +msgid "Umount chroot-disk" +msgstr "Отмонтируем chroot-диск" + +msgid "Umount directories" +msgstr "Отмонтируем директории" + +msgid "Uninstall packages" +msgstr "Деинсталлируем пакеты" + +msgid "Unmount installed system volume" +msgstr "Отмонтируем раздел с установленной системой" + +msgid "Unmounting new volume" +msgstr "Отмонтируем новый раздел" + +msgid "Unpack" +msgstr "Распакуем" + +msgid "Unpack the package" +msgstr "Распакуйте пакет" + +msgid "Unpack the update" +msgstr "Распакуем обновление" + +msgid "Unpacking image failed" +msgstr "Не удалось распаковать образ" + +msgid "Unpacking system" +msgstr "Распакуем систему" + +msgid "Unpacking system image into new volume" +msgstr "Распакуем образ системы в новый раздел" + +msgid "Unrecognized option" +msgstr "Нераспознанный ключ" + +msgid "Update" +msgstr "Обновление" + +msgid "Update Clamav antivirus database" +msgstr "Обновим антивирусную базу Clamav" + +msgid "Update PCI IDs" +msgstr "Обновим базу PCI устройств" + +msgid "Update USB IDs" +msgstr "Обновим базу USB устройств" + +msgid "Update config" +msgstr "Обновим конфигурацию" + +msgid "Update found" +msgstr "Найдено обновление" + +msgid "Update lang translation file" +msgstr "Обновим файл переводов" + +msgid "Update module-rebuild database" +msgstr "Обновим базу модулей программы module-rebuild" + +msgid "Update modules" +msgstr "Обновим модули" + +msgid "Update portige base of eix programm" +msgstr "Обновим базу портежей программы eix" + +msgid "Updating" +msgstr "Обновление" + +msgid "Usage" +msgstr "Использование" + +msgid "Use value" +msgstr "Используйте значения" + +msgid "User" +msgstr "Пользователь" + +msgid "User is added to system" +msgstr "Пользователь добавлен в систему" + +msgid "User is removed from system" +msgstr "Пользователь удален из системы" + +msgid "Vendor" +msgstr "Поставщик" + +msgid "Videocard" +msgstr "Видеоадаптер" + +msgid "Volume for system building" +msgstr "Раздел для сборки системы" + +msgid "Volume formatting failed" +msgstr "Не удалось отформатировать раздел" + +msgid "Volume formatting will start through" +msgstr "Форматирование раздела начнётся через" + +msgid "Working volume" +msgstr "Рабочий раздел" + +msgid "Write the devices to autothread" +msgstr "Пропишем устройства в автозагрузку" + +msgid "Written by" +msgstr "Автор программы --" + +msgid "apply configuration profile (all - all profiles)" +msgstr "наложить профиль настроек (all - все профили)" + +msgid "backup data of working servers" +msgstr "резервное копирование данных с серверов" + +msgid "break the system building" +msgstr "прервать сборку системы" + +msgid "change a email account password" +msgstr "изменение пароля почтового ящика" + +msgid "change user password" +msgstr "изменение пароля пользователя" + +msgid "check of dependences" +msgstr "проверка зависимостей" + +msgid "config files parameters" +msgstr "параметры конфигурационных файлов" + +msgid "create a loaded iso-image of system" +msgstr "создать загружаемый iso-образ системы" + +msgid "create a new email account" +msgstr "создание нового почтового ящика" + +msgid "create a new email group" +msgstr "создание новой почтовой группы" + +msgid "create a new group" +msgstr "создание новой группы" + +msgid "create a new user account" +msgstr "создание новой учётной записи" + +msgid "created by installer" +msgstr "созданную установщиком" + +msgid "delete a email account" +msgstr "удаление почтового ящика" + +msgid "delete a email group" +msgstr "удаление почтовой группы" + +msgid "delete a group" +msgstr "удаление группы" + +msgid "delete a user account" +msgstr "удаление учётной записи" + +msgid "destination volume" +msgstr "рабочий раздел" + +msgid "display this help and exit" +msgstr "показать эту справку и выйти" + +msgid "do not prompt before overwriting" +msgstr "переписывать существующие файлы не спрашивая" + +msgid "done" +msgstr "выполнено" + +msgid "download and install latest update available" +msgstr "загрузить и установить последнее доступное обновление" + +msgid "error" +msgstr "ошибка" + +msgid "file" +msgstr "файл" + +msgid "file not found" +msgstr "не найден файл" + +msgid "for a print of all variables" +msgstr "для вывода всех переменных" + +msgid "for more information" +msgstr "для получения более подробного описания" + +msgid "installation or building system volume" +msgstr "раздел для установки или сборки системы" + +msgid "is already installed" +msgstr "уже установлено" + +msgid "make addition" +msgstr "соберём дополнение" + +msgid "make system" +msgstr "собрать систему" + +msgid "modify a group definition on the system" +msgstr "изменение определения группы в системе" + +msgid "mounted" +msgstr "примонтирован" + +msgid "not detected" +msgstr "не определён" + +msgid "not found" +msgstr "не найдены" + +msgid "not supported" +msgstr "не поддерживается" + +msgid "nvidia-drivers-173.XX.XX" +msgstr "" + +msgid "nvidia-drivers-96.XX.XX" +msgstr "" + +msgid "nvidia-drivers-last" +msgstr "" + +msgid "of" +msgstr "из" + +msgid "or value cannot be changed" +msgstr "или значение не может быть изменено" + +msgid "output version information and exit" +msgstr "показать информацию о версии и выйти" + +msgid "pack the distribution package into the archive file" +msgstr "упаковать дистрибутив в архив образа" + +msgid "packages" +msgstr "пакетов" + +msgid "pass" +msgstr "пропущено" + +msgid "perform updates only" +msgstr "выполнить только обновления" + +msgid "prepare system for building" +msgstr "подготовить систему к сборке" + +msgid "seconds" +msgstr "секунд" + +msgid "select operation system" +msgstr "выбор операционной системы" + +msgid "server" +msgstr "сервер" + +msgid "set config files parameter" +msgstr "установить параметр конфигурационных файлов" + +msgid "set config files parameter without check" +msgstr "установить параметр конфигурационных файлов без проверки" + +msgid "setup and run servers" +msgstr "настройка и запуск серверов" + +msgid "show hardware information" +msgstr "отобразить информацию об имеющемся оборудовании" + +msgid "show the package list incoming in the addition" +msgstr "показать список пакетов входящих в дополнение" + +msgid "show the package list incoming in the distributive file" +msgstr "показать список пакетов входящих дистрибутив" + +msgid "to cancel" +msgstr "для отмены" + +msgid "to directory" +msgstr "в директорию" + +msgid "to establish additions" +msgstr "установить дополнения" + +msgid "undefined" +msgstr "не определено" diff --git a/install/profile/1default/boot/grub/device.map b/install/profile/1default/boot/grub/device.map new file mode 100644 index 0000000..a4ed672 --- /dev/null +++ b/install/profile/1default/boot/grub/device.map @@ -0,0 +1 @@ +#-devicemap-# diff --git a/install/profile/1default/boot/grub/grub.conf?pass=install b/install/profile/1default/boot/grub/grub.conf?pass=install new file mode 100644 index 0000000..65a4092 --- /dev/null +++ b/install/profile/1default/boot/grub/grub.conf?pass=install @@ -0,0 +1,40 @@ +#-title-# + +timeout 5 +default 0 +fallback 1 +splashimage=(#-grubinstall-#)/boot/grub/calculate.xpm.gz + +#?system=desktop# +title #-calculatename-# #-march-# #-linuxver-# #-calculatesubname-# +#system# +#?system=server# +title #-calculatename-# #-linuxver-# #-march-# +#system# +root (#-grubinstall-#) +#?linuxver>=8.2&linuxver<8.8.2&system=desktop# +kernel /boot/vmlinuz root=#-root_install_set-# video=uvesafb:ywrap,1024x768-32@60,mtrr:3,splash=silent,theme:tty1 CONSOLE=/dev/tty1 udev quiet noresume#-grub_delay-# +#linuxver# +#?linuxver>=8.2&linuxver<8.8.2&system=server# +kernel /boot/vmlinuz root=#-root_install_set-# video=uvesafb:ywrap,1024x768-32@60,mtrr:3,splash=silent,theme:tty1 CONSOLE=/dev/tty1 udev quiet noresume doscsi#-grub_delay-# +#linuxver# +#?linuxver>=8.8.2&linuxver<8.11.2&system=desktop# +kernel /boot/vmlinuz root=#-root_install_set-# vga=0x317,ywrap,mtrr:3,splash=silent,theme:tty1 CONSOLE=/dev/tty1 udev quiet noresume#-grub_delay-# +#linuxver# +#?linuxver>=8.8.2&linuxver<8.11.2&system=server# +kernel /boot/vmlinuz root=#-root_install_set-# vga=0x317,ywrap,mtrr:3,splash=silent,theme:tty1 CONSOLE=/dev/tty1 udev quiet noresume doscsi#-grub_delay-# +#linuxver# +#?linuxver>=8.11.2&system=desktop# +kernel /boot/vmlinuz root=#-root_install_set-# video=uvesafb:ywrap,1024x768-32@60,mtrr:3,splash=silent,theme:tty1 CONSOLE=/dev/tty1 udev quiet #-swap_resume-# doscsi#-grub_delay-# +#linuxver# +#?linuxver>=8.11.2&system=server# +kernel /boot/vmlinuz root=#-root_install_set-# video=uvesafb:ywrap,1024x768-32@60,mtrr:3,splash=silent,theme:tty1 CONSOLE=/dev/tty1 udev quiet #-swap_resume-# elevator=deadline doscsi#-grub_delay-# +#linuxver# +initrd /boot/initrd +#-grub_another-# + +# Раскомментируйте, если у вас на диске C: установлен Windows +# title Microsoft Windows +# rootnoverify (hd0,0) +# chainloader +1 + diff --git a/install/profile/1default/etc/X11/xorg.conf b/install/profile/1default/etc/X11/xorg.conf new file mode 100644 index 0000000..6644a16 --- /dev/null +++ b/install/profile/1default/etc/X11/xorg.conf @@ -0,0 +1,105 @@ +#-title-# + +Section "ServerLayout" + Identifier "Xorg Configured" + Screen "Monitor" +EndSection + +Section "Files" + FontPath "/usr/share/fonts/corefonts" + FontPath "/usr/share/fonts/misc" + FontPath "/usr/share/fonts/droid" +EndSection + +Section "Module" + #?video_drv!=nvidia&video_drv!=vesa# + Load "dri" + #video_drv# + #?video_drv=intel# + Load "i2c" + Load "bitmap" + Load "ddc" + Load "int10" + Load "vbe" + #video_drv# + #?video_drv!=intel# + Load "dbe" # Double buffer extension + #video_drv# + Load "glx" # OpenGL X protocol interface + Load "extmod" # Misc. required extension +EndSection + +Section "Monitor" + Identifier "StandardMonitor" + #?video_drv=nvidia?video_drv=vesa# + HorizSync 31.5 - 60.0 + VertRefresh 60-160 + #video_drv# + Option "DPMS" +EndSection + +Section "Device" + Identifier "#-video_drv-#VGA" + BusID "PCI:#-video_id-#" + Driver "#-video_drv-#" + #?video_drv=nvidia# + Option "RenderAccel" "True" + Option "AllowGLXWithComposite" "True" + Option "NoLogo" "True" + Option "NvAgp" "1" + Option "DPI" "96x96" + #video_drv# + #?video_drv=fglrx# + Option "XAANoOffscreenPixmaps" "True" + Option "AllowGLXWithComposite" "True" + Option "RenderAccel" "True" + Option "AddARGBGLXVisuals" "True" + Option "TripleBuffer" "True" + Option "UseFBDev" "True" + #http://ru.gentoo-wiki.com/wiki/Fglrx + Option "VideoOverlay" "on" # устраняет сбой с mplayer + Option "TexturedVideo" "on" # устраняет сбой Xv + #video_drv# + #?video_drv=intel# + Option "NoAccel" "False" + Option "DRI" "True" + #video_drv# +EndSection + +Section "Screen" + Identifier "Monitor" + Device "#-video_drv-#VGA" + Monitor "StandardMonitor" + DefaultDepth 24 + Subsection "Display" + Viewport 0 0 + Depth 24 + #?video_resolution!=auto# + Modes "#-video_resolution-#" + #video_resolution# + EndSubsection +EndSection +#?video_drv!=nvidia&video_drv!=vesa&video_drv!=vmware&video_drv!=vboxvideo# + +Section "DRI" + Group "video" + Mode 0666 +EndSection +#video_drv# + +#?video_drv!=vesa&video_drv!=vmware&video_drv!=vboxvideo# +Section "Extensions" +#video_drv# +#?video_drv=fglrx# + Option "RENDER" "On" + Option "XVideo" "On" +#video_drv# +#?composite=on&video_drv!=vesa&video_drv!=vmware&video_drv!=vboxvideo# + Option "Composite" "On" +#composite# +#?composite!=on&video_drv!=vesa&video_drv!=vmware&video_drv!=vboxvideo# + Option "Composite" "Off" +#composite# +#?video_drv!=vesa&video_drv!=vmware&video_drv!=vboxvideo# +EndSection +#video_drv# diff --git a/install/profile/1default/etc/conf.d/fbcondecor b/install/profile/1default/etc/conf.d/fbcondecor new file mode 100644 index 0000000..d78f54f --- /dev/null +++ b/install/profile/1default/etc/conf.d/fbcondecor @@ -0,0 +1,8 @@ +#-title-# +# On which TTYs should fbcondecor be enabled? Defaults to RC_TTY_NUMBER. +FBCONDECOR_TTYS="1 2 3 4 5 6" + +# Allows to set different themes on different consoles +# format: ": : (...)" +FBCONDECOR_TTY_MAP="1:tty1 2:tty2 3:tty3 4:tty4 5:tty5 6:tty6" + diff --git a/install/profile/1default/etc/conf.d/gpm b/install/profile/1default/etc/conf.d/gpm new file mode 100644 index 0000000..0669655 --- /dev/null +++ b/install/profile/1default/etc/conf.d/gpm @@ -0,0 +1,4 @@ +#-title-# + +MOUSE=imps2 +MOUSEDEV=/dev/psaux diff --git a/install/profile/1default/etc/conf.d/hdparm b/install/profile/1default/etc/conf.d/hdparm new file mode 100644 index 0000000..282620d --- /dev/null +++ b/install/profile/1default/etc/conf.d/hdparm @@ -0,0 +1,5 @@ +#-title-# + +pata_all_args="-d1 -X69 -c1" +sata_all_args="" +all_args="" diff --git a/install/profile/1default/etc/conf.d/hostname b/install/profile/1default/etc/conf.d/hostname new file mode 100644 index 0000000..07b23c0 --- /dev/null +++ b/install/profile/1default/etc/conf.d/hostname @@ -0,0 +1,4 @@ +#-title-# + +HOSTNAME="#-hostname-#" + diff --git a/install/profile/1default/etc/conf.d/net?calculate=CDS b/install/profile/1default/etc/conf.d/net?calculate=CDS new file mode 100644 index 0000000..b2a4936 --- /dev/null +++ b/install/profile/1default/etc/conf.d/net?calculate=CDS @@ -0,0 +1,3 @@ +#-title-# +#-netconf-# + diff --git a/install/profile/1default/etc/conf.d/net?system=desktop&linuxver<=9.5 b/install/profile/1default/etc/conf.d/net?system=desktop&linuxver<=9.5 new file mode 100644 index 0000000..b2a4936 --- /dev/null +++ b/install/profile/1default/etc/conf.d/net?system=desktop&linuxver<=9.5 @@ -0,0 +1,3 @@ +#-title-# +#-netconf-# + diff --git a/install/profile/1default/etc/conf.d/splash b/install/profile/1default/etc/conf.d/splash new file mode 100644 index 0000000..abee3f1 --- /dev/null +++ b/install/profile/1default/etc/conf.d/splash @@ -0,0 +1,54 @@ +#-title-# +# Boot/reboot/shutdown message overrides. +# SPLASH_BOOT_MESSAGE="Booting the system (\$progress%)" +# SPLASH_REBOOT_MESSAGE="Rebooting the system (\$progress%)" +# SPLASH_SHUTDOWN_MESSAGE="Shutting the system down (\$progress%)" + +# Should we drop to verbose mode on initscript errors? (yes/no) +SPLASH_VERBOSE_ON_ERRORS="yes" + +# Which special effects should be used? +# This should be a comma separated list. Valid items: fadein, fadeout +#SPLASH_EFFECTS="fadein,fadeout" + +######################################################################### +# The options below affect settings which are normally specified on the +# kernel command line and are probably useful only in uncommon +# configurations. Note that the corresponding kernel command line +# settings will override any options set below. +######################################################################### + +# Save splash profile information during boot? If set to 'yes', a record +# of the boot-up sequence will be kept in /lib/splash/cache/profile. The +# profile file is useful for debugging purposes and for replaying the +# boot sequence with `splash_manager -c replay`. It might slightly slow +# down the boot, so don't activate it if you don't plan to use it. +# SPLASH_PROFILE="no" + +# Which console mode to use for the silent splash. Valid values are: +# text,graphics. If 'text' is selected, the splash tty will be treated +# just like any other tty by the kernel. With the 'graphics' option, +# the kernel will not touch the tty in any way. 'graphics' could be +# useful e.g. for preventing error messages from being displayed over +# the splash screen. Normally, this shouldn't be necessary. Use only +# as a last resort. +# SPLASH_KDMODE="text" + +# Which theme to use, probably best left commented out (the theme +# specified on the kernel command line is used). +# SPLASH_THEME="gentoo" + +# Which tty to use for the silent splash. If you change it, make sure +# the tty isn't used by something else (interactive console, X, etc). +# It's safest to leave it commented and let fbsplashd use the default +# value. +# SPLASH_TTY=16 + +# Which splash mode should be activated? Valid values are: +# - silent: silent and verbose modes +# - silentonly: silent mode only +# - verbose: verbose mode only +# If commented out, the mode requested on the command line will be +# used. +# SPLASH_MODE_REQ="silent" + diff --git a/install/profile/1default/etc/cron.hourly/clocksync b/install/profile/1default/etc/cron.hourly/clocksync new file mode 100755 index 0000000..a96a271 --- /dev/null +++ b/install/profile/1default/etc/cron.hourly/clocksync @@ -0,0 +1,4 @@ +#!/bin/sh +#-title-# +/usr/sbin/ntpdate -u #-ntp-# &>/dev/null + diff --git a/install/profile/1default/etc/eix-sync.conf b/install/profile/1default/etc/eix-sync.conf new file mode 100644 index 0000000..ad11404 --- /dev/null +++ b/install/profile/1default/etc/eix-sync.conf @@ -0,0 +1 @@ +calculate diff --git a/install/profile/1default/etc/fstab?pass=install&location!=ram b/install/profile/1default/etc/fstab?pass=install&location!=ram new file mode 100644 index 0000000..3827f4e --- /dev/null +++ b/install/profile/1default/etc/fstab?pass=install&location!=ram @@ -0,0 +1,9 @@ +#-title-# + +#-root_install_set-# / #-format-# noatime 0 2 +#-swapset-# + +proc /proc proc defaults 0 0 +shm /dev/shm tmpfs nodev,nosuid,noexec 0 0 + +#-data_install_set-##-partitions_fdisk-# diff --git a/install/profile/1default/etc/hosts b/install/profile/1default/etc/hosts new file mode 100644 index 0000000..d2c8f14 --- /dev/null +++ b/install/profile/1default/etc/hosts @@ -0,0 +1,3 @@ +#-title-# + +127.0.0.1 #-hostname-#.#-domain-# #-hostname-# localhost diff --git a/install/profile/1default/etc/init.d/calculate?pass=install&removableinstall=off&location!=ram b/install/profile/1default/etc/init.d/calculate?pass=install&removableinstall=off&location!=ram new file mode 100755 index 0000000..7d4a7f0 --- /dev/null +++ b/install/profile/1default/etc/init.d/calculate?pass=install&removableinstall=off&location!=ram @@ -0,0 +1,38 @@ +#!/sbin/runscript +#-title-# + +depend() { +#?linuxver>=9.4.3# + need localmount root fsck modules keymaps consolefont +#linuxver# +#?linuxver<9.4.3# + need localmount checkroot checkfs modules keymaps consolefont +#linuxver# +} + +start() { + LANG=C /usr/calculate/install/calculate --video + /usr/sbin/env-update + source /etc/profile + /sbin/update-modules + /sbin/rc-update --update + + #?system=desktop# + #-run_opengl-# + #-run_user-# + #system# + LANG=C /usr/calculate/install/calculate --initrd + #поддержка flash для x86_64 + if [ -e /usr/lib32/nsbrowser/plugins/libflashplayer.so ] + then + /usr/bin/nspluginwrapper -v -i /usr/lib32/nsbrowser/plugins/libflashplayer.so &>/dev/null && /usr/bin/nspluginwrapper -a + fi +} + +stop() { + rc-update del calculate boot +} + +#restart() { + +#} diff --git a/install/profile/1default/etc/init.d/calculate?pass=install&removableinstall=on&location!=ram b/install/profile/1default/etc/init.d/calculate?pass=install&removableinstall=on&location!=ram new file mode 100755 index 0000000..d719a39 --- /dev/null +++ b/install/profile/1default/etc/init.d/calculate?pass=install&removableinstall=on&location!=ram @@ -0,0 +1,48 @@ +#!/sbin/runscript +#-title-# + +depend() { +#?linuxver>=9.4.3# + need localmount root fsck modules keymaps consolefont +#linuxver# +#?linuxver<9.4.3# + need localmount checkroot checkfs modules keymaps consolefont +#linuxver# +} + +start() { + /bin/rm -f /etc/udev/rules.d/70-persistent-net.rules + LANG=C /usr/calculate/install/calculate --video + LANG=C /usr/calculate/install/calculate -P 1default + + #выполним действия при первой загрузке + if [ ! -e /var/log/calculate/run ] + then + #?system=desktop# + #-run_opengl-# + #-run_user-# + #system# + LANG=C /usr/calculate/install/calculate --initrd + + #поддержка flash для x86_64 + if [ -e /usr/lib32/nsbrowser/plugins/libflashplayer.so ] + then + /usr/bin/nspluginwrapper -v -i /usr/lib32/nsbrowser/plugins/libflashplayer.so &>/dev/null && /usr/bin/nspluginwrapper -a + fi + fi + + /usr/sbin/env-update + source /etc/profile + /sbin/update-modules + /sbin/rc-update --update + + /bin/touch /var/log/calculate/run +} + +#stop() { + +#} + +#restart() { + +#} diff --git a/install/profile/1default/etc/init.d/net.ath0?net_ath0=on&linuxver<=9.5 b/install/profile/1default/etc/init.d/net.ath0?net_ath0=on&linuxver<=9.5 new file mode 120000 index 0000000..46dbbaf --- /dev/null +++ b/install/profile/1default/etc/init.d/net.ath0?net_ath0=on&linuxver<=9.5 @@ -0,0 +1 @@ +/etc/init.d/net.lo \ No newline at end of file diff --git a/install/profile/1default/etc/init.d/net.eth0?net_eth0=on&calculate=CDS b/install/profile/1default/etc/init.d/net.eth0?net_eth0=on&calculate=CDS new file mode 120000 index 0000000..46dbbaf --- /dev/null +++ b/install/profile/1default/etc/init.d/net.eth0?net_eth0=on&calculate=CDS @@ -0,0 +1 @@ +/etc/init.d/net.lo \ No newline at end of file diff --git a/install/profile/1default/etc/init.d/net.eth0?net_eth0=on&calculate=CLD&linuxver<=9.5 b/install/profile/1default/etc/init.d/net.eth0?net_eth0=on&calculate=CLD&linuxver<=9.5 new file mode 120000 index 0000000..46dbbaf --- /dev/null +++ b/install/profile/1default/etc/init.d/net.eth0?net_eth0=on&calculate=CLD&linuxver<=9.5 @@ -0,0 +1 @@ +/etc/init.d/net.lo \ No newline at end of file diff --git a/install/profile/1default/etc/init.d/net.eth1?net_eth1=on&calculate=CDS b/install/profile/1default/etc/init.d/net.eth1?net_eth1=on&calculate=CDS new file mode 120000 index 0000000..46dbbaf --- /dev/null +++ b/install/profile/1default/etc/init.d/net.eth1?net_eth1=on&calculate=CDS @@ -0,0 +1 @@ +/etc/init.d/net.lo \ No newline at end of file diff --git a/install/profile/1default/etc/init.d/net.eth1?net_eth1=on&calculate=CLD&linuxver<=9.5 b/install/profile/1default/etc/init.d/net.eth1?net_eth1=on&calculate=CLD&linuxver<=9.5 new file mode 120000 index 0000000..46dbbaf --- /dev/null +++ b/install/profile/1default/etc/init.d/net.eth1?net_eth1=on&calculate=CLD&linuxver<=9.5 @@ -0,0 +1 @@ +/etc/init.d/net.lo \ No newline at end of file diff --git a/install/profile/1default/etc/init.d/net.eth2?net_eth2=on&calculate=CDS b/install/profile/1default/etc/init.d/net.eth2?net_eth2=on&calculate=CDS new file mode 120000 index 0000000..46dbbaf --- /dev/null +++ b/install/profile/1default/etc/init.d/net.eth2?net_eth2=on&calculate=CDS @@ -0,0 +1 @@ +/etc/init.d/net.lo \ No newline at end of file diff --git a/install/profile/1default/etc/init.d/net.eth3?net_eth3=on&calculate=CDS b/install/profile/1default/etc/init.d/net.eth3?net_eth3=on&calculate=CDS new file mode 120000 index 0000000..46dbbaf --- /dev/null +++ b/install/profile/1default/etc/init.d/net.eth3?net_eth3=on&calculate=CDS @@ -0,0 +1 @@ +/etc/init.d/net.lo \ No newline at end of file diff --git a/install/profile/1default/etc/init.d/net.wlan0?net_wlan0=on&linuxver<=9.5 b/install/profile/1default/etc/init.d/net.wlan0?net_wlan0=on&linuxver<=9.5 new file mode 120000 index 0000000..46dbbaf --- /dev/null +++ b/install/profile/1default/etc/init.d/net.wlan0?net_wlan0=on&linuxver<=9.5 @@ -0,0 +1 @@ +/etc/init.d/net.lo \ No newline at end of file diff --git a/install/profile/1default/etc/issue b/install/profile/1default/etc/issue new file mode 100644 index 0000000..6f0ac80 --- /dev/null +++ b/install/profile/1default/etc/issue @@ -0,0 +1,8 @@ + +#?pass=install# +Welcome to \n.\O (#-calculatename-# #-linuxver-#) +#pass# +#?pass!=install# +Welcome to \n.\O (#-calculatename-# #-linuxver-##-ospatchsplit-##-ospatch-#) +#pass# + diff --git a/install/profile/1default/etc/layman/~layman.cfg b/install/profile/1default/etc/layman/~layman.cfg new file mode 100644 index 0000000..e74c8f1 --- /dev/null +++ b/install/profile/1default/etc/layman/~layman.cfg @@ -0,0 +1,3 @@ +[MAIN] +overlays : http://www.gentoo.org/proj/en/overlays/layman-global.txt\n\thttp://svn.calculate.ru/overlay/layman-calculate.txt + diff --git a/install/profile/1default/etc/modprobe.d/saa7134 b/install/profile/1default/etc/modprobe.d/saa7134 new file mode 120000 index 0000000..ea61ef5 --- /dev/null +++ b/install/profile/1default/etc/modprobe.d/saa7134 @@ -0,0 +1 @@ +/etc/modules.d/saa7134 \ No newline at end of file diff --git a/install/profile/1default/etc/modules.d/saa7134 b/install/profile/1default/etc/modules.d/saa7134 new file mode 100644 index 0000000..ca988a6 --- /dev/null +++ b/install/profile/1default/etc/modules.d/saa7134 @@ -0,0 +1,7 @@ +#-title-# +alias char-major-81 videodev +alias char-major-81-0 saa7134 +options saa7134 card=102 tuner=38 secam=dk i2c_scan=1 alsa=1 +options tuner secam=d +options tda9887 port2=0 port1=1 + diff --git a/install/profile/1default/etc/mtab?pass=install b/install/profile/1default/etc/mtab?pass=install new file mode 100644 index 0000000..8d1c8b6 --- /dev/null +++ b/install/profile/1default/etc/mtab?pass=install @@ -0,0 +1 @@ + diff --git a/install/profile/1default/etc/runlevels/boot/calculate?pass=install&location!=ram b/install/profile/1default/etc/runlevels/boot/calculate?pass=install&location!=ram new file mode 120000 index 0000000..beb36a5 --- /dev/null +++ b/install/profile/1default/etc/runlevels/boot/calculate?pass=install&location!=ram @@ -0,0 +1 @@ +/etc/init.d/calculate \ No newline at end of file diff --git a/install/profile/1default/etc/runlevels/boot/syslog-ng b/install/profile/1default/etc/runlevels/boot/syslog-ng new file mode 120000 index 0000000..83ec2ac --- /dev/null +++ b/install/profile/1default/etc/runlevels/boot/syslog-ng @@ -0,0 +1 @@ +/etc/init.d/syslog-ng \ No newline at end of file diff --git a/install/profile/1default/etc/runlevels/default/dbus b/install/profile/1default/etc/runlevels/default/dbus new file mode 120000 index 0000000..a9e632a --- /dev/null +++ b/install/profile/1default/etc/runlevels/default/dbus @@ -0,0 +1 @@ +/etc/init.d/dbus \ No newline at end of file diff --git a/install/profile/1default/etc/runlevels/default/hald b/install/profile/1default/etc/runlevels/default/hald new file mode 120000 index 0000000..722cc9d --- /dev/null +++ b/install/profile/1default/etc/runlevels/default/hald @@ -0,0 +1 @@ +/etc/init.d/hald \ No newline at end of file diff --git a/install/profile/1default/etc/runlevels/default/hdparm b/install/profile/1default/etc/runlevels/default/hdparm new file mode 120000 index 0000000..bb73a94 --- /dev/null +++ b/install/profile/1default/etc/runlevels/default/hdparm @@ -0,0 +1 @@ +/etc/init.d/hdparm \ No newline at end of file diff --git a/install/profile/1default/etc/runlevels/default/numlock?laptop!= b/install/profile/1default/etc/runlevels/default/numlock?laptop!= new file mode 120000 index 0000000..e292a27 --- /dev/null +++ b/install/profile/1default/etc/runlevels/default/numlock?laptop!= @@ -0,0 +1 @@ +/etc/init.d/numlock \ No newline at end of file diff --git a/install/profile/1default/etc/runlevels/default/sshd?location!=ram b/install/profile/1default/etc/runlevels/default/sshd?location!=ram new file mode 120000 index 0000000..b969430 --- /dev/null +++ b/install/profile/1default/etc/runlevels/default/sshd?location!=ram @@ -0,0 +1 @@ +/etc/init.d/sshd \ No newline at end of file diff --git a/install/profile/1default/etc/runlevels/default/vixie-cron b/install/profile/1default/etc/runlevels/default/vixie-cron new file mode 120000 index 0000000..708aa03 --- /dev/null +++ b/install/profile/1default/etc/runlevels/default/vixie-cron @@ -0,0 +1 @@ +/etc/init.d/vixie-cron \ No newline at end of file diff --git a/install/profile/1default/etc/ssh/ssh_config b/install/profile/1default/etc/ssh/ssh_config new file mode 100644 index 0000000..a4942a8 --- /dev/null +++ b/install/profile/1default/etc/ssh/ssh_config @@ -0,0 +1,4 @@ +#-title-# + +SendEnv LANG LC_* + diff --git a/install/profile/1default/etc/ssh/sshd_config b/install/profile/1default/etc/ssh/sshd_config new file mode 100644 index 0000000..9145382 --- /dev/null +++ b/install/profile/1default/etc/ssh/sshd_config @@ -0,0 +1,15 @@ +#-title-# + +Protocol 2 +PasswordAuthentication no +UsePAM yes +X11Forwarding yes +#?march=i686# +Subsystem sftp /usr/lib/misc/sftp-server +#march# +#?march=x86_64# +Subsystem sftp /usr/lib64/misc/sftp-server +#march# +AllowUsers root +AcceptEnv LANG LC_* + diff --git a/install/profile/1default/etc/sudoers?pass=install b/install/profile/1default/etc/sudoers?pass=install new file mode 100644 index 0000000..030ae0d --- /dev/null +++ b/install/profile/1default/etc/sudoers?pass=install @@ -0,0 +1,3 @@ +Defaults env_reset +root ALL=(ALL) ALL +%vboxusers ALL=NOPASSWD:/sbin/modprobe vboxdrv diff --git a/install/profile/1default/etc/wgetrc b/install/profile/1default/etc/wgetrc new file mode 100644 index 0000000..68cbe53 --- /dev/null +++ b/install/profile/1default/etc/wgetrc @@ -0,0 +1,7 @@ +#-title-# + +passive_ftp = on +waitretry = 10 +http_proxy = #-http_proxy-# +ftp_proxy = #-http_proxy-# +use_proxy = #-useproxy-# diff --git a/install/profile/1default/etc/~make.conf b/install/profile/1default/etc/~make.conf new file mode 100644 index 0000000..5dfbd62 --- /dev/null +++ b/install/profile/1default/etc/~make.conf @@ -0,0 +1,3 @@ +PORTDIR_OVERLAY= +source /usr/local/portage/layman/make.conf + diff --git a/install/profile/1default/root/.bash_profile?load=ram b/install/profile/1default/root/.bash_profile?load=ram new file mode 100644 index 0000000..389206a --- /dev/null +++ b/install/profile/1default/root/.bash_profile?load=ram @@ -0,0 +1,5 @@ +#-title-# + +alias cfdisk="LANG=C cfdisk" +HOME="/root" +LOGNAME="root" diff --git a/install/profile/1default/usr/local/bin/livecd.sh b/install/profile/1default/usr/local/bin/livecd.sh new file mode 100755 index 0000000..c7d27ca --- /dev/null +++ b/install/profile/1default/usr/local/bin/livecd.sh @@ -0,0 +1,16 @@ +#!/bin/bash +#-title-# + +#?system=desktop# +##-run_opengl-# +#system# + +# change /etc/init.d/sshd for pervent starting sshd with default root password +sed -r -i '/start\(\)/{:a N;/passwd \|\| return 1/b;/checkconfig/!ba;s/\n\t+checkconfig/\ + if grep "root:\\\$1\\\$JMvNh5xg\\\$VnV1DyJdTcwuZ0hp5YiJG0:14349:0:::::" \/etc\/shadow >\/dev\/null;\ + then\ + passwd || return 1\ + fi\ +\ + checkconfig/ +}' /etc/init.d/sshd diff --git a/install/profile/2locale/etc/conf.d/clock?linuxver<9.4.3 b/install/profile/2locale/etc/conf.d/clock?linuxver<9.4.3 new file mode 100644 index 0000000..8189e95 --- /dev/null +++ b/install/profile/2locale/etc/conf.d/clock?linuxver<9.4.3 @@ -0,0 +1,8 @@ +#-title-# + +CLOCK="#-clock-#" +TIMEZONE="#-timezone-#" +CLOCK_OPTS="" +CLOCK_SYSTOHC="yes" +SRM="no" +ARC="no" diff --git a/install/profile/2locale/etc/conf.d/consolefont b/install/profile/2locale/etc/conf.d/consolefont new file mode 100644 index 0000000..8c7e6b3 --- /dev/null +++ b/install/profile/2locale/etc/conf.d/consolefont @@ -0,0 +1,3 @@ +#-title-# + +CONSOLEFONT="#-consolefont-#" diff --git a/install/profile/2locale/etc/conf.d/hwclock b/install/profile/2locale/etc/conf.d/hwclock new file mode 100644 index 0000000..dbf533b --- /dev/null +++ b/install/profile/2locale/etc/conf.d/hwclock @@ -0,0 +1,15 @@ +#-title-# +# Set CLOCK to "UTC" if your system clock is set to UTC (also known as +# Greenwich Mean Time). If your clock is set to the local time, then +# set CLOCK to "local". Note that if you dual boot with Windows, then +# you should set it to "local". +clock="#-clock-#" + +# If you want to set the Hardware Clock to the current System Time +# during shutdown, then say "YES" here. +# You normally don't need to do this if you run a ntp daemon. +clock_systohc="YES" + +# If you wish to pass any other arguments to hwclock during bootup, +# you may do so here. Alpha users may wish to use --arc or --srm here. +clock_args="" diff --git a/install/profile/2locale/etc/conf.d/keymaps b/install/profile/2locale/etc/conf.d/keymaps new file mode 100644 index 0000000..6a48fc4 --- /dev/null +++ b/install/profile/2locale/etc/conf.d/keymaps @@ -0,0 +1,6 @@ +#-title-# + +KEYMAP="#-keymap-#" +SET_WINDOWKEYS="yes" +EXTENDED_KEYMAPS="" +DUMPKEYS_CHARSET="#-dumpkeys_charset-#" diff --git a/install/profile/2locale/etc/env.d/02locale b/install/profile/2locale/etc/env.d/02locale new file mode 100644 index 0000000..c0b3ac3 --- /dev/null +++ b/install/profile/2locale/etc/env.d/02locale @@ -0,0 +1,5 @@ +#-title-# + +LANG="#-locale-#" +LC_NUMERIC=POSIX + diff --git a/install/profile/2locale/etc/motd?pass=install b/install/profile/2locale/etc/motd?pass=install new file mode 100644 index 0000000..e69de29 diff --git a/install/profile/2locale/etc/motd?pass=profile&load=ram&language!=ru b/install/profile/2locale/etc/motd?pass=profile&load=ram&language!=ru new file mode 100644 index 0000000..4abf57c --- /dev/null +++ b/install/profile/2locale/etc/motd?pass=profile&load=ram&language!=ru @@ -0,0 +1,24 @@ +Welcome to the #-calculatename-# Installation CD! + +If any ethernet adapters were detected at boot, they should be auto-configured +if DHCP is available on your network. +#?system=server# +Type "net-setup eth0" to specify eth0 IP address settings by hand. +#system# +#?system=desktop# +Type "wicd-curses" to specify eth0 IP address settings by hand. +#system# + +The latest version of the Handbook is always available from the Calculate Linux +web site by typing "links http://www.calculate-linux.org/handbook". + +To start an ssh server on this system, type "/etc/init.d/sshd start". + +#?system=server# +For technical support, type "irc". +#system# +#?system=desktop# +Please report any bugs you find to http://irc.calculate-linux.org. +#system# + +Thank you for using Calculate Linux! diff --git a/install/profile/2locale/etc/motd?pass=profile&load=ram&language=ru b/install/profile/2locale/etc/motd?pass=profile&load=ram&language=ru new file mode 100644 index 0000000..d987464 --- /dev/null +++ b/install/profile/2locale/etc/motd?pass=profile&load=ram&language=ru @@ -0,0 +1,25 @@ +Добро πожаловать в установочный диск #-calculatename-#! + +Если какой-либо из сетевых адаπтеров был обнаружен πри загрузке, он будет +автоматически сконфигурирован, если в сети достуπен DHCP сервер. +#?system=server# +Выπолните "net-setup eth0" для указания сетевой карты и IP адреса вручную. +#system# +#?system=desktop# +Выполните "wicd-curses" для указания сетевой карты и IP адреса вручную. +#system# + +Последняя версия руководства всегда достуπна на веб-сайте Calculate Linux. +Выπолните "links http://www.calculate-linux.ru/handbook" для πросмотра. + +Для заπуска ssh сервера в системе, выπолните "/etc/init.d/sshd start". + +#?system=server# +Для πолучения технической πоддержки, выπолните "irc". +#system# +#?system=desktop# +Пожалуйста сообщайте о любых найденных ошибках на +http://irc.calculate-linux.org. +#system# + +Сπасибо за исπользование Calculate Linux! diff --git a/install/profile/2locale/etc/timezone b/install/profile/2locale/etc/timezone new file mode 100644 index 0000000..e00d4ac --- /dev/null +++ b/install/profile/2locale/etc/timezone @@ -0,0 +1 @@ +#-timezone-# \ No newline at end of file diff --git a/install/profile/2locale/usr/lib/mozilla-firefox/defaults/preferences/firefox-l10n.js?linuxver>=8.9&system=desktop b/install/profile/2locale/usr/lib/mozilla-firefox/defaults/preferences/firefox-l10n.js?linuxver>=8.9&system=desktop new file mode 100644 index 0000000..2bdca9e --- /dev/null +++ b/install/profile/2locale/usr/lib/mozilla-firefox/defaults/preferences/firefox-l10n.js?linuxver>=8.9&system=desktop @@ -0,0 +1 @@ +pref("general.useragent.locale", "#-language-#"); diff --git a/install/profile/3patch/etc/mc/^mc.menu?pass=install b/install/profile/3patch/etc/mc/^mc.menu?pass=install new file mode 100644 index 0000000..2330d31 --- /dev/null +++ b/install/profile/3patch/etc/mc/^mc.menu?pass=install @@ -0,0 +1,9 @@ + +z Compress the current subdirectory (tar.7z) + Pwd=`basename %d /` + echo -n "Name of the compressed file (without extension) [$Pwd]: " + read tar + if [ "$tar"x = x ]; then tar="$Pwd"; fi + cd .. && \ + tar cf - "$Pwd" | 7z a -si "$tar.tar.7z" && \ + echo "../$tar.tar.7z created." diff --git a/install/profile/5compatible/etc/default/grub b/install/profile/5compatible/etc/default/grub new file mode 100644 index 0000000..82ec328 --- /dev/null +++ b/install/profile/5compatible/etc/default/grub @@ -0,0 +1,3 @@ +# поддержка uuid (для установки на USB диск) +GRUB_DISABLE_LINUX_UUID=true + diff --git a/install/profile/5compatible/etc/hal/fdi/policy/ntfs-3g.fdi b/install/profile/5compatible/etc/hal/fdi/policy/ntfs-3g.fdi new file mode 100644 index 0000000..9440989 --- /dev/null +++ b/install/profile/5compatible/etc/hal/fdi/policy/ntfs-3g.fdi @@ -0,0 +1,10 @@ + + + + +ntfs-3g +ntfs-3g + + + + diff --git a/install/profile/5compatible/etc/init.d/device-mapper?linuxver>9.4.3&linuxver<=9.5 b/install/profile/5compatible/etc/init.d/device-mapper?linuxver>9.4.3&linuxver<=9.5 new file mode 100755 index 0000000..ec166b4 --- /dev/null +++ b/install/profile/5compatible/etc/init.d/device-mapper?linuxver>9.4.3&linuxver<=9.5 @@ -0,0 +1,26 @@ +#!/sbin/runscript +#-title-# +# Copyright 1999-2008 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-fs/device-mapper/files/device-mapper.rc-1.02.22-r3,v 1.8 2008/12/18 21:52:25 cardoe Exp $ + +depend() { + # necessary for services when using baselayout-2 + # but conflict for baselayout-1 + if [ -e /etc/init.d/root ] ; then + after modules + before checkfs fsck + fi +} + +start() { + if [ ! -e /etc/init.d/root ] ; then + eerror "The ${SVCNAME} init script is written for baselayout-2" + eerror "Please do not use it with baselayout-1" + return 1 + fi + + #start_addon dm + source /lib/rcscripts/addons/dm-start.sh +} + diff --git a/install/profile/5compatible/etc/man.conf?language=ru b/install/profile/5compatible/etc/man.conf?language=ru new file mode 100644 index 0000000..fbc1cf0 --- /dev/null +++ b/install/profile/5compatible/etc/man.conf?language=ru @@ -0,0 +1,149 @@ +#-title-# +# +# man.conf from man-1.6e +# +# For more information about this file, see the man pages man(1) +# and man.conf(5). +# +# This file is read by man to configure the default manpath (also used +# when MANPATH contains an empty substring), to find out where the cat +# pages corresponding to given man pages should be stored, +# and to map each PATH element to a manpath element. +# It may also record the pathname of the man binary. [This is unused.] +# The format is: +# +# MANBIN pathname +# MANPATH manpath_element [corresponding_catdir] +# MANPATH_MAP path_element manpath_element +# +# If no catdir is given, it is assumed to be equal to the mandir +# (so that this dir has both man1 etc. and cat1 etc. subdirs). +# This is the traditional Unix setup. +# Certain versions of the FSSTND recommend putting formatted versions +# of /usr/.../man/manx/page.x into /var/catman/.../catx/page.x. +# The keyword FSSTND will cause this behaviour. +# Certain versions of the FHS recommend putting formatted versions of +# /usr/.../share/man/[locale/]manx/page.x into +# /var/cache/man/.../[locale/]catx/page.x. +# The keyword FHS will cause this behaviour (and overrides FSSTND). +# Explicitly given catdirs override. +# +# FSSTND +FHS +# +# This file is also read by man in order to find how to call nroff, less, etc., +# and to determine the correspondence between extensions and decompressors. +# +# MANBIN /usr/local/bin/man +# +# Every automatically generated MANPATH includes these fields +# +MANPATH /usr/share/man +MANPATH /usr/local/share/man +MANPATH /usr/X11R6/man +MANPATH /usr/local/man +MANPATH /usr/man +# +# Uncomment if you want to include one of these by default +# +# MANPATH /opt/*/man +# MANPATH /usr/lib/*/man +# MANPATH /usr/share/*/man +# MANPATH /usr/kerberos/man +# +# Set up PATH to MANPATH mapping +# +# If people ask for "man foo" and have "/dir/bin/foo" in their PATH +# and the docs are found in "/dir/man", then no mapping is required. +# +# The below mappings are superfluous when the right hand side is +# in the mandatory manpath already, but will keep man from statting +# lots of other nearby files and directories. +# +MANPATH_MAP /bin /usr/share/man +MANPATH_MAP /sbin /usr/share/man +MANPATH_MAP /usr/bin /usr/share/man +MANPATH_MAP /usr/sbin /usr/share/man +MANPATH_MAP /usr/local/bin /usr/local/share/man +MANPATH_MAP /usr/local/sbin /usr/local/share/man +MANPATH_MAP /usr/X11R6/bin /usr/X11R6/man +MANPATH_MAP /usr/bin/X11 /usr/X11R6/man +MANPATH_MAP /usr/bin/mh /usr/share/man +# +# NOAUTOPATH keeps man from automatically adding directories that look like +# manual page directories to the path. +# +#NOAUTOPATH +# +# NOCACHE keeps man from creating cache pages ("cat pages") +# (generally one enables/disable cat page creation by creating/deleting +# the directory they would live in - man never does mkdir) +# +#NOCACHE +# +# Useful paths - note that COL should not be defined when +# NROFF is defined as "groff -Tascii" or "groff -Tlatin1"; +# not only is it superfluous, but it actually damages the output. +# For use with utf-8, NROFF should be "nroff -mandoc" without -T option. +# (Maybe - but today I need -Tlatin1 to prevent double conversion to utf8.) +# +# If you have a new troff (version 1.18.1?) and its colored output +# causes problems, add the -c option to TROFF, NROFF, JNROFF. +# +TROFF /usr/bin/groff -Tps -mandoc +#NROFF /usr/bin/nroff -Tascii -c -mandoc +#?calculate=CLD&linuxver<=9.5# +NROFF /usr/bin/nroff -mandoc -Tlatin1 -c | iconv -f koi8-r +#calculate# +#?system=desktop&linuxver>9.5# +NROFF /usr/bin/enconv -L ru -x KOI8-R | /usr/bin/nroff -mandoc -Tlatin1 -c | iconv -f koi8-r +#system# +#?calculate=CDS&linuxver>=9.5# +NROFF /usr/bin/enconv -L ru -x KOI8-R | /usr/bin/nroff -mandoc -Tlatin1 -c | iconv -f koi8-r +#calculate# +JNROFF /usr/bin/groff -Tnippon -mandocj +EQN /usr/bin/geqn -Tps +NEQN /usr/bin/geqn -Tlatin1 +JNEQN /usr/bin/geqn -Tnippon +TBL /usr/bin/gtbl +# COL /usr/bin/col +REFER /usr/bin/refer +PIC /usr/bin/pic +VGRIND +GRAP +PAGER /usr/bin/less -is +BROWSER /usr/bin/less -is +HTMLPAGER /bin/cat +CAT /bin/cat +# +# The command "man -a xyzzy" will show all man pages for xyzzy. +# When CMP is defined man will try to avoid showing the same +# text twice. (But compressed pages compare unequal.) +# +CMP /usr/bin/cmp -s +# +# Compress cat pages +# +COMPRESS /bin/bzip2 +COMPRESS_EXT .bz2 +# +# Default manual sections (and order) to search if -S is not specified +# and the MANSECT environment variable is not set. +# +MANSECT 1:1p:8:2:3:3p:4:5:6:7:9:0p:tcl:n:l:p:o:1x:2x:3x:4x:5x:6x:7x:8x +# +# Default options to use when man is invoked without options +# This is mainly for the benefit of those that think -a should be the default +# Note that some systems have /usr/man/allman, causing pages to be shown twice. +# +#MANDEFOPTIONS -a +# +# Decompress with given decompressor when input file has given extension +# The command given must act as a filter. +# +.gz /bin/gunzip -c +.bz2 /bin/bzip2 -c -d +.z +.Z /bin/zcat +.F +.Y diff --git a/install/profile/5compatible/sbin/mount.ntfs-3g b/install/profile/5compatible/sbin/mount.ntfs-3g new file mode 100755 index 0000000..3093f1b --- /dev/null +++ b/install/profile/5compatible/sbin/mount.ntfs-3g @@ -0,0 +1,5 @@ +#!/bin/bash +#-title-# + +/bin/ntfs-3g -o locale=ru_RU.UTF-8,force,rw $1 $2 + diff --git a/install/profile/6desktop/etc/conf.d/slmodem b/install/profile/6desktop/etc/conf.d/slmodem new file mode 100644 index 0000000..6e5c1ec --- /dev/null +++ b/install/profile/6desktop/etc/conf.d/slmodem @@ -0,0 +1,37 @@ +#-title-# + +DEV=/dev/ttySL0 +COUNTRY=RUSSIA +GROUP=dialout +# the group should be kept in sync with: +# /etc/devfs.d/slmodem (devfs) +# /etc/udev/rules.d/55-slmodem.rules (udev) + +# The following symlink will be created if uncommented +LN_DEV=/dev/modem + +# Raise priority to reduce modem dropouts +NICE=-6 + +# ALSA Options: + +# The following sets the ALSA (alsasound) init script to +# be a dependancy of the slmodem one. It does also provides +# ALSA support. +MODULE=alsa + +# The modem hardware slot +# use "modem:0", "modem:1", etc. +# usually modem:1 is used +HW_SLOT=modem:0 + +# Non-ALSA OPTIONS: + +# MODULE=slamr +# or +# MODULE=slusb + +# Include extra slmodemd options here: +# -r = enables ring detection (needed for Hylafax faxgetty to answer) +# -l 5 = Logging Level +SLMODEM_OPTS="" diff --git a/install/profile/6desktop/etc/env.d/99editor b/install/profile/6desktop/etc/env.d/99editor new file mode 100644 index 0000000..8e45df2 --- /dev/null +++ b/install/profile/6desktop/etc/env.d/99editor @@ -0,0 +1,2 @@ +#-title-# +EDITOR="/usr/bin/vim" diff --git a/install/profile/6desktop/etc/runlevels/boot/wicd b/install/profile/6desktop/etc/runlevels/boot/wicd new file mode 120000 index 0000000..1a7e798 --- /dev/null +++ b/install/profile/6desktop/etc/runlevels/boot/wicd @@ -0,0 +1 @@ +/etc/init.d/wicd \ No newline at end of file diff --git a/install/profile/6desktop/etc/runlevels/default/bluetooth?usb_bluetooth=yes b/install/profile/6desktop/etc/runlevels/default/bluetooth?usb_bluetooth=yes new file mode 120000 index 0000000..bc656fb --- /dev/null +++ b/install/profile/6desktop/etc/runlevels/default/bluetooth?usb_bluetooth=yes @@ -0,0 +1 @@ +/etc/init.d/bluetooth \ No newline at end of file diff --git a/install/profile/6desktop/etc/runlevels/default/cupsd b/install/profile/6desktop/etc/runlevels/default/cupsd new file mode 120000 index 0000000..73c95ca --- /dev/null +++ b/install/profile/6desktop/etc/runlevels/default/cupsd @@ -0,0 +1 @@ +/etc/init.d/cupsd \ No newline at end of file diff --git a/install/profile/6desktop/etc/runlevels/default/fbcondecor b/install/profile/6desktop/etc/runlevels/default/fbcondecor new file mode 120000 index 0000000..be9fc2b --- /dev/null +++ b/install/profile/6desktop/etc/runlevels/default/fbcondecor @@ -0,0 +1 @@ +/etc/init.d/fbcondecor \ No newline at end of file diff --git a/install/profile/6desktop/etc/runlevels/default/hotplug b/install/profile/6desktop/etc/runlevels/default/hotplug new file mode 120000 index 0000000..015d9f5 --- /dev/null +++ b/install/profile/6desktop/etc/runlevels/default/hotplug @@ -0,0 +1 @@ +/etc/init.d/hotplug \ No newline at end of file diff --git a/install/profile/6desktop/etc/runlevels/default/hplip?usb_hp=yes b/install/profile/6desktop/etc/runlevels/default/hplip?usb_hp=yes new file mode 120000 index 0000000..cea12b9 --- /dev/null +++ b/install/profile/6desktop/etc/runlevels/default/hplip?usb_hp=yes @@ -0,0 +1 @@ +/etc/init.d/hplip \ No newline at end of file diff --git a/install/profile/6desktop/etc/runlevels/default/portmap b/install/profile/6desktop/etc/runlevels/default/portmap new file mode 120000 index 0000000..e81eef2 --- /dev/null +++ b/install/profile/6desktop/etc/runlevels/default/portmap @@ -0,0 +1 @@ +/etc/init.d/portmap \ No newline at end of file diff --git a/install/profile/6desktop/etc/runlevels/default/xdm b/install/profile/6desktop/etc/runlevels/default/xdm new file mode 120000 index 0000000..af5b119 --- /dev/null +++ b/install/profile/6desktop/etc/runlevels/default/xdm @@ -0,0 +1 @@ +/etc/init.d/xdm \ No newline at end of file diff --git a/install/profile/6desktop/etc/sysctl.conf b/install/profile/6desktop/etc/sysctl.conf new file mode 100644 index 0000000..0f42708 --- /dev/null +++ b/install/profile/6desktop/etc/sysctl.conf @@ -0,0 +1,43 @@ +#-title-# + +#Передача транзитных пакетов между сетевыми интерфейсами +net.ipv4.ip_forward = 0 + +# Enables source route verification +net.ipv4.conf.default.rp_filter = 1 + +# Принятый пакет предполагает передачу ответа через тот же самый интерфейс +net.ipv4.conf.all.rp_filter = 1 + +# Разрешает/запрещает передачу так называемых syncookies вызывающему хосту +# в случае переполнения очереди SYN-пакетов для заданного сокета. +# Эта переменная используется для предотвращения syn-flood атак. +# Функция будет работать только в том случае, если ядро собрано с опцией +# CONFIG_SYN_COOKIES. (прим. перев.) +#net.ipv4.tcp_syncookies = 1 + +# Переменная разрешает/запрещает "маршрутизацию от источника". +# Маршрутизация от источника весьма небезопасна. +net.ipv4.conf.all.accept_source_route = 0 +net.ipv4.conf.default.accept_source_route = 0 + +# Переменная управляет приемом ICMP-сообщений о переадресации. В подавляющем +# большинстве случаев необходимость в переадресации отсутствует, к тому же +# опция небезопасна. +net.ipv4.conf.all.accept_redirects = 0 +net.ipv4.conf.default.accept_redirects = 0 + +# Эта переменная очень близка по смыслу к icmp_echo_ignore_all, только в +# данном случае будут игнорироваться ICMP сообщения, отправленные на +# широковещательный или групповой адрес. Вполне очевидно, почему полезно +# включить этот параметр -- защита от smurf атак. +net.ipv4.icmp_echo_ignore_broadcasts = 1 + +# Комбинация клавиш sysrq +kernel.sysrq = 1 + +# Время в секундах до перезагрузки системы при падении ядра +kernel.panic = 3 + +# Максимальное значение идентификатора процесса +#kernel.pid_max = 999999 diff --git a/install/profile/6desktop/etc/udev/rules.d/10-touchpad.rules b/install/profile/6desktop/etc/udev/rules.d/10-touchpad.rules new file mode 100644 index 0000000..1150193 --- /dev/null +++ b/install/profile/6desktop/etc/udev/rules.d/10-touchpad.rules @@ -0,0 +1,4 @@ +#-title-# +ACTION=="add", SUBSYSTEM=="input", ENV{ID_CLASS}="mouse", RUN+="/usr/bin/synclient TouchpadOff=1" +ACTION=="remove", SUBSYSTEM=="input", ENV{ID_CLASS}="mouse", RUN+="/usr/bin/synclient TouchpadOff=0" + diff --git a/install/profile/6desktop/usr/lib/gcstar/GCPlugins/GCfilms/GCKinopoisk.pm b/install/profile/6desktop/usr/lib/gcstar/GCPlugins/GCfilms/GCKinopoisk.pm new file mode 100644 index 0000000..581c6c2 --- /dev/null +++ b/install/profile/6desktop/usr/lib/gcstar/GCPlugins/GCfilms/GCKinopoisk.pm @@ -0,0 +1,343 @@ +package GCPlugins::GCfilms::GCKinopoisk; + +use strict; +use utf8; +use Encode qw(encode); + +use GCPlugins::GCfilms::GCfilmsCommon; + +{ + package GCPlugins::GCfilms::GCPluginKinopoisk; + + use base qw(GCPlugins::GCfilms::GCfilmsPluginsBase); + + sub start + { + my ($self, $tagname, $attr, $attrseq, $origtext) = @_; + $self->{inside}->{$tagname}++; + + if ($self->{parsingEnded}) + { + return; + } + + if ($self->{parsingList}) + { + if ($tagname eq "a") + { + if ($attr->{class} eq "all") + { + my $url = $attr->{href}; + if ($url =~ m/\/level\/1\/film/) + { + $self->{isMovie} = 1; + $self->{itemIdx}++; + $self->{itemsList}[$self->{itemIdx}]->{url} = $url; + } + } + if ($attr->{class} eq "orange") + { + $self->{isYear} = 1; + } + } + elsif ($tagname eq "title") + { + $self->{insideHTMLtitle} = 1; + } + } + else + { + if ($attr->{class} eq "moviename-big") + { + $self->{insideTitle} = 1; + } + elsif ($tagname eq "span" && $attr->{style} eq "font-size:13px;color:#666") + { + $self->{insideOriginal} = 1; + } + elsif ($tagname eq "a" && $attr->{class} eq "all") + { + if ($attr->{href} =~ m/\/level\/10\/m\_act\%5Byear\%5D/) + { + $self->{insideDate} = 1; + } + if ($attr->{href} =~ m/\/level\/10\/m\_act\%5Bcountry\%5D/) + { + $self->{insideCountry} = 1; + } + if ($attr->{href} =~ m/\/level\/4\/people/) + { + if ($self->{isDirector} != 0) + { + $self->{insideDirector} = 1; + $self->{isDirector} += 1; + } + } + if ($attr->{href} =~ m/\/level\/10\/m\_act\%5Bgenre\%5D/) + { + $self->{insideGenre} = 1; + $self->{isGenre} += 1; + } + } + elsif ($tagname eq "td") + { + if ($attr->{style} eq "padding:10px;padding-left:20px;") + { + $self->{insideSynopsis} = 1; + } + elsif ($attr->{style} eq "padding-right:20px;padding-top:10px") + { + $self->{curInfo}->{synopsis} = "нет описания"; + } + elsif ($attr->{width} eq "35%") + { + $self->{isDirector} = 1; + } + elsif ($attr->{class} eq "desc-title") + { + $self->{isTime} = 1; + } + elsif ($attr->{class} eq "desc-data" && $self->{isTime} == 2) + { + $self->{insideTime} = 1; + $self->{isTime} = 0; + } + elsif ($attr->{height} eq "15" && $attr->{align} eq "right") + { + $self->{isActors} += 1; + $self->{insideActors} = 1; + } + } + elsif ($tagname eq "img" && $attr->{style} eq "border-left:10px solid #f60") + { + if ($attr->{src} ne "/images/image_none.gif") + { + $self->{curInfo}->{image} = "http://www.kinopoisk.ru".$attr->{src}; + } + } + } + } + + sub text + { + my ($self, $origtext) = @_; + return if ($self->{parsingEnded}); + if ($self->{parsingList}) + { + if (($self->{insideHTMLtitle})) + { + if ($origtext =~ m/Результаты\sпоиска/) + { + # + } + else + { + $self->{parsingEnded} = 1; + $self->{itemIdx} = 0; + $self->{itemsList}[0]->{url} = $self->{loadedUrl}; + } + $self->{insideHTMLtitle} = 0; + } + if ($self->{isMovie}) + { + my ($title, $date); + $self->{itemsList}[$self->{itemIdx}]->{title} = $origtext; + $self->{isMovie} = 0; + return; + } + elsif ($self->{isYear}) + { + $self->{itemsList}[$self->{itemIdx}]->{date} = $origtext; + $self->{isYear} = 0; + return; + } + } + else + { + if ($self->{insideTitle}) + { + $origtext =~ s/\s+$//; + $self->{curInfo}->{title} = $origtext; + $self->{insideTitle} = 0; + } + elsif ($self->{insideOriginal}) + { + $origtext =~ s/^\s+//; + $self->{curInfo}->{original} = $origtext; + $self->{insideOriginal} = 0; + } + elsif ($self->{insideDate}) + { + $self->{curInfo}->{date} = $origtext; + $self->{insideDate} = 0; + } + elsif ($self->{insideCountry}) + { + $self->{curInfo}->{country} = $origtext; + $self->{insideCountry} = 0; + } + elsif ($self->{insideDirector}) + { + if ($self->{isDirector} == 2) + { + $self->{curInfo}->{director} = $origtext; + } + elsif ($self->{isDirector} > 2) + { + $self->{curInfo}->{director} = $self->{curInfo}->{director}.", ".$origtext; + } + $self->{insideDirector} = 0; + } + elsif ($self->{insideActors}) + { + if ($self->{isActors} == 1) + { + $self->{curInfo}->{actors} = $origtext; + } + elsif ($self->{isActors} > 1 && $origtext ne "...") + { + $self->{curInfo}->{actors} = $self->{curInfo}->{actors}.", ".$origtext; + } + $self->{insideActors} = 0; + } + elsif ($self->{insideSynopsis}) + { + $origtext =~ s/^\s+//; + $self->{curInfo}->{synopsis} = $origtext; + $self->{insideSynopsis} = 0; + } + elsif ($self->{isTime} == 1) + { + if ($origtext eq "время") + { + $self->{isTime} = 2; + } + else + { + $self->{isTime} = 0; + } + } + elsif ($self->{insideTime}) + { + $self->{curInfo}->{time} = $origtext; + $self->{insideTime} = 0; + } + elsif ($self->{insideGenre}) + { + if ($self->{isGenre} == 1) + { + $self->{curInfo}->{genre} = $origtext; + } + elsif ($self->{isGenre} > 1) + { + $self->{curInfo}->{genre} = $self->{curInfo}->{genre}.", ".$origtext; + } + $self->{insideGenre} = 0; + } + } + } + + sub end + { + my ($self, $tagname) = @_; + $self->{inside}->{$tagname}--; + if ($self->{parsingList}) + { + # Your code for processing search results here + } + else + { + if ($tagname eq "tr" && $self->{isDirector} != 0) + { + $self->{isDirector} = 0; + } + elsif ($tagname eq "tr" && $self->{isGenre} != 0) + { + $self->{isGenre} = 0; + } + } + } + + sub new + { + my $proto = shift; + my $class = ref($proto) || $proto; + my $self = $class->SUPER::new(); + bless ($self, $class); + + $self->{hasField} = { + title => 1, + date => 1, + director => 0, + actors => 0, + }; + + $self->{isInfo} = 0; + $self->{isMovie} = 0; + $self->{isYear} = 0; + $self->{isDirector} = 0; + $self->{isActors} = 0; + $self->{isTime} = 0; + $self->{isGenre} = 0; + $self->{curName} = undef; + $self->{curUrl} = undef; + + return $self; + } + + sub getName + { + return "Kinopoisk"; + } + + sub getAuthor + { + return 'Nazarov Pavel'; + } + + sub getLang + { + return 'RU'; + } + + sub getCharset + { + my $self = shift; + return "windows-1251"; + } + + sub getSearchUrl + { + my ($self, $word) = @_; + return "http://www.kinopoisk.ru/index.php?kp_query=$word"; + } + + sub getItemUrl + { + my ($self, $url) = @_; + return $url if $url =~ /^http:/; + return "http://www.kinopoisk.ru/" . $url; + } + + sub preProcess + { + my ($self, $html) = @_; + + $self->{parsingEnded} = 0; + + $html =~ s/\x85/\.\.\./g; + $html =~ s/\x92/'/g; + $html =~ s/\x93/“/g; + $html =~ s/\x94/”/g; + + $html =~ s/""/'"/g; + $html =~ s/""/"'/g; + $html =~ s/
/\n/gi; + #$html =~ s|
|
|; + + return $html; + } + +} + +1; diff --git a/install/profile/6desktop/usr/share/X11/app-defaults/Xmessage b/install/profile/6desktop/usr/share/X11/app-defaults/Xmessage new file mode 100644 index 0000000..394de40 --- /dev/null +++ b/install/profile/6desktop/usr/share/X11/app-defaults/Xmessage @@ -0,0 +1,19 @@ +#-title-# + +# клавиша Esc обеспечивает закрытие диалога +*baseTranslations: #override :Return: default-exit() +# отображать вертикальную полосу прокрутки +*message.scrollVertical: Always +# отображать горизонтальную полосу прокрутки +*message.scrollHorizontal: Never +# прямоугольный стиль кнопки +*Command.shapeStyle: rectangle +# толщина подсветки +*Command.highlightThickness: 1 +# шрифт для вывода сообщений +#?linuxver<=9.1# +*font: -*-verdana-medium-r-*-*-*-*-*-*-*-*-*-uni +#linuxver# +#?linuxver>9.1# +*font: -*-droid sans-medium-r-*-*-*-*-*-*-*-*-*-uni +#linuxver# diff --git a/install/profile/6desktop/usr/share/hal/fdi/policy/10osvendor/10-ntfs-3g.fdi b/install/profile/6desktop/usr/share/hal/fdi/policy/10osvendor/10-ntfs-3g.fdi new file mode 100644 index 0000000..9440989 --- /dev/null +++ b/install/profile/6desktop/usr/share/hal/fdi/policy/10osvendor/10-ntfs-3g.fdi @@ -0,0 +1,10 @@ + + + + +ntfs-3g +ntfs-3g + + + + diff --git a/install/profile/6desktop/usr/share/hal/fdi/policy/10osvendor/10-x11-input.fdi b/install/profile/6desktop/usr/share/hal/fdi/policy/10osvendor/10-x11-input.fdi new file mode 100644 index 0000000..6153981 --- /dev/null +++ b/install/profile/6desktop/usr/share/hal/fdi/policy/10osvendor/10-x11-input.fdi @@ -0,0 +1,37 @@ +#?title=Calculate# +#title# + + + + + + + keyboard + + evdev + xorg + #-xkblayout-# + pc104 + grp:caps_toggle + grp:switch + grp_led:caps + + + + + + + mouse + + evdev + 5 + auto + + 4 5 + + + + + diff --git a/install/profile/6desktop/usr/share/hal/fdi/policy/10osvendor/11-x11-synaptics.fdi b/install/profile/6desktop/usr/share/hal/fdi/policy/10osvendor/11-x11-synaptics.fdi new file mode 100644 index 0000000..0ef4c4e --- /dev/null +++ b/install/profile/6desktop/usr/share/hal/fdi/policy/10osvendor/11-x11-synaptics.fdi @@ -0,0 +1,31 @@ + + + + + synaptics + 1 + + + + + diff --git a/install/profile/6desktop/usr/share/hal/fdi/policy/10osvendor/15-x11-alps-touchpad.fdi b/install/profile/6desktop/usr/share/hal/fdi/policy/10osvendor/15-x11-alps-touchpad.fdi new file mode 100644 index 0000000..f24419a --- /dev/null +++ b/install/profile/6desktop/usr/share/hal/fdi/policy/10osvendor/15-x11-alps-touchpad.fdi @@ -0,0 +1,35 @@ + + + + + + synaptics + 130 + 840 + 130 + 640 + 25 + 30 + 180 + 220 + 75 + true + 20 + true + 20 + 0.60 + 1.10 + 0.030 + 200 + 200 + 1 + 1 + 0.1 + 2 + on + 1 + + + + + diff --git a/install/profile/6desktop/usr/share/hal/fdi/policy/10osvendor/15-x11-apple-touchpad.fdi b/install/profile/6desktop/usr/share/hal/fdi/policy/10osvendor/15-x11-apple-touchpad.fdi new file mode 100644 index 0000000..23e613a --- /dev/null +++ b/install/profile/6desktop/usr/share/hal/fdi/policy/10osvendor/15-x11-apple-touchpad.fdi @@ -0,0 +1,24 @@ + + + + + + synaptics + 0 + 1 + 2 + 0 + 90 + off + 1.10 + 1.30 + 0.08 + 2 + 3 + 1 + 0 + + + + + diff --git a/install/profile/6desktop/usr/share/hal/fdi/policy/10osvendor/15-x11-bcm5974-touchpad.fdi b/install/profile/6desktop/usr/share/hal/fdi/policy/10osvendor/15-x11-bcm5974-touchpad.fdi new file mode 100644 index 0000000..e674818 --- /dev/null +++ b/install/profile/6desktop/usr/share/hal/fdi/policy/10osvendor/15-x11-bcm5974-touchpad.fdi @@ -0,0 +1,44 @@ + + + + + + synaptics + 0 + 1280 + 0 + 800 + 1 + 3 + 2 + 1 + 0 + 1 + 1 + 0 + 40 + 10 + 16 + 80 + 256 + 0 + 10 + 200 + 0.8 + 1.2 + 0.10 + 25 + 223 + 200 + 1 + 3 + 2 + 0 + 0 + 0 + 0 + + + + + diff --git a/install/profile/6desktop/usr/share/hal/fdi/policy/10osvendor/15-x11-elantech-touchpad.fdi b/install/profile/6desktop/usr/share/hal/fdi/policy/10osvendor/15-x11-elantech-touchpad.fdi new file mode 100644 index 0000000..40e6d74 --- /dev/null +++ b/install/profile/6desktop/usr/share/hal/fdi/policy/10osvendor/15-x11-elantech-touchpad.fdi @@ -0,0 +1,27 @@ + + + + + + synaptics + on + 0.0320 + 0.72 + on + 1 + 1 + 1 + 2 + 60 + 1070 + 90 + 680 + 0.13 + 1 + 2 + 3 + + + + + diff --git a/install/profile/6desktop/usr/share/hal/fdi/policy/10osvendor/15-x11-synaptics-touchpad.fdi b/install/profile/6desktop/usr/share/hal/fdi/policy/10osvendor/15-x11-synaptics-touchpad.fdi new file mode 100644 index 0000000..0001cf3 --- /dev/null +++ b/install/profile/6desktop/usr/share/hal/fdi/policy/10osvendor/15-x11-synaptics-touchpad.fdi @@ -0,0 +1,31 @@ + + + + + + synaptics + 1700 + 5300 + 1700 + 4200 + 25 + 30 + 180 + 220 + 100 + 0.10 + 0.70 + 0.00150 + on + 1 + 1 + 1 + 1 + 1 + 2 + 3 + + + + + diff --git a/install/profile/6desktop/usr/share/hal/fdi/policy/10osvendor/999-storage-policy-fixed-drives.fdi b/install/profile/6desktop/usr/share/hal/fdi/policy/10osvendor/999-storage-policy-fixed-drives.fdi new file mode 100644 index 0000000..76fb69d --- /dev/null +++ b/install/profile/6desktop/usr/share/hal/fdi/policy/10osvendor/999-storage-policy-fixed-drives.fdi @@ -0,0 +1,11 @@ + + + + + + + false + + + + diff --git a/install/profile/7intranet?client<2.0.17&linuxver<=9.5/etc/init.d/client?linuxver>=8.11&system=desktop b/install/profile/7intranet?client<2.0.17&linuxver<=9.5/etc/init.d/client?linuxver>=8.11&system=desktop new file mode 100755 index 0000000..eb1511b --- /dev/null +++ b/install/profile/7intranet?client<2.0.17&linuxver<=9.5/etc/init.d/client?linuxver>=8.11&system=desktop @@ -0,0 +1,37 @@ +#!/sbin/runscript +#-title-# + +depend() { + use localmount + after bootmisc consolefont modules netmount + after readahead-list ypbind autofs openvpn gpm lircmd + after cupsd fbcondecor sshd cron wicd + before xdm + use acpid consolekit hald xfs +} + +start() { + # Mount remote Samba filesystems. + ebegin "Mounting domain resources" + # Identifing domen server by env file + SERVER=`cat /var/calculate/calculate.env | grep cl_remote_host | awk '{print \$3}'` + let COUNT=20 + while let "${COUNT} > 0"; + do + if ping -w2 -c1 $SERVER &>/dev/null; + then + break; + else + sleep 1; + fi + let COUNT=COUNT-1 + done + cl-client --mount + eend $? "Some samba remote resources to mount" +} +stop(){ + ebegin "Unmount domain resources" + umount /var/calculate/remote +} + +# vim:ts=4 diff --git a/install/profile/7intranet?client<2.0.17&linuxver<=9.5/etc/ldap.conf?server=CDS&system=desktop b/install/profile/7intranet?client<2.0.17&linuxver<=9.5/etc/ldap.conf?server=CDS&system=desktop new file mode 100644 index 0000000..b025ddc --- /dev/null +++ b/install/profile/7intranet?client<2.0.17&linuxver<=9.5/etc/ldap.conf?server=CDS&system=desktop @@ -0,0 +1,16 @@ +#-title-# + +HOST #-server_url-# +BASE #-ldap_base-# +ROOTBINDDN #-ldap_root-# +BINDDN #-ldap_bind-# +BINDPW #-ldap_bindpw-# +PORT 389 +ldap_version 3 +bind_policy soft + +#ускорим ограничив область поиска +nss_base_passwd ou=Users,#-ldap_root-#?one?shadowFlag=1 +nss_base_shadow ou=Users,#-ldap_root-#?one?shadowFlag=1 +nss_base_group ou=Groups,#-ldap_root-#?one + diff --git a/install/profile/7intranet?client<2.0.17&linuxver<=9.5/etc/nsswitch.conf?server!=CDS&system=desktop b/install/profile/7intranet?client<2.0.17&linuxver<=9.5/etc/nsswitch.conf?server!=CDS&system=desktop new file mode 100644 index 0000000..2142582 --- /dev/null +++ b/install/profile/7intranet?client<2.0.17&linuxver<=9.5/etc/nsswitch.conf?server!=CDS&system=desktop @@ -0,0 +1,23 @@ +#-title-# + +passwd: compat +shadow: compat +group: compat + +# passwd: db files nis +# shadow: db files nis +# group: db files nis + +hosts: files dns +networks: files dns + +services: db files +protocols: db files +rpc: db files +ethers: db files +netmasks: files +netgroup: files +bootparams: files + +automount: files +aliases: files diff --git a/install/profile/7intranet?client<2.0.17&linuxver<=9.5/etc/nsswitch.conf?server=CDS&system=desktop b/install/profile/7intranet?client<2.0.17&linuxver<=9.5/etc/nsswitch.conf?server=CDS&system=desktop new file mode 100644 index 0000000..b752e14 --- /dev/null +++ b/install/profile/7intranet?client<2.0.17&linuxver<=9.5/etc/nsswitch.conf?server=CDS&system=desktop @@ -0,0 +1,19 @@ +#-title-# + +passwd: files ldap +shadow: files ldap +group: files ldap + +hosts: files dns +networks: files dns + +services: files ldap +protocols: files ldap +rpc: db files +ethers: db files +netmasks: files +netgroup: files ldap +bootparams: files + +automount: files ldap +aliases: files diff --git a/install/profile/7intranet?client<2.0.17&linuxver<=9.5/etc/pam.d/system-auth?server!=CDS&system=desktop b/install/profile/7intranet?client<2.0.17&linuxver<=9.5/etc/pam.d/system-auth?server!=CDS&system=desktop new file mode 100644 index 0000000..d047a07 --- /dev/null +++ b/install/profile/7intranet?client<2.0.17&linuxver<=9.5/etc/pam.d/system-auth?server!=CDS&system=desktop @@ -0,0 +1,15 @@ +#-title-# + +auth required pam_env.so +auth optional pam_keystore.so +auth sufficient pam_unix.so use_first_pass +auth required pam_deny.so + +account required pam_unix.so + +password required pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3 +password sufficient pam_unix.so nullok md5 shadow use_authtok +password required pam_deny.so + +session required pam_limits.so +session required pam_unix.so diff --git a/install/profile/7intranet?client<2.0.17&linuxver<=9.5/etc/pam.d/system-auth?server=CDS&system=desktop b/install/profile/7intranet?client<2.0.17&linuxver<=9.5/etc/pam.d/system-auth?server=CDS&system=desktop new file mode 100644 index 0000000..f70bc35 --- /dev/null +++ b/install/profile/7intranet?client<2.0.17&linuxver<=9.5/etc/pam.d/system-auth?server=CDS&system=desktop @@ -0,0 +1,19 @@ +#-title-# + +auth required pam_env.so +auth optional pam_keystore.so +auth sufficient pam_unix.so use_first_pass +auth sufficient pam_ldap.so use_first_pass +auth required pam_deny.so + +account required pam_unix.so +account sufficient pam_ldap.so + +password required pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3 +password sufficient pam_unix.so nullok md5 shadow use_authtok +password sufficient pam_ldap.so +password required pam_deny.so + +session required pam_limits.so +session required pam_unix.so +session optional pam_ldap.so diff --git a/install/profile/7intranet?client<2.0.17&linuxver<=9.5/etc/runlevels/default/client?server!=CDS&system=desktop b/install/profile/7intranet?client<2.0.17&linuxver<=9.5/etc/runlevels/default/client?server!=CDS&system=desktop new file mode 100644 index 0000000..e69de29 diff --git a/install/profile/7intranet?client<2.0.17&linuxver<=9.5/etc/runlevels/default/client?server=CDS&system=desktop b/install/profile/7intranet?client<2.0.17&linuxver<=9.5/etc/runlevels/default/client?server=CDS&system=desktop new file mode 120000 index 0000000..7982c1f --- /dev/null +++ b/install/profile/7intranet?client<2.0.17&linuxver<=9.5/etc/runlevels/default/client?server=CDS&system=desktop @@ -0,0 +1 @@ +/etc/init.d/client \ No newline at end of file diff --git a/install/profile/7intranet?client<2.0.17&linuxver<=9.5/etc/ssh/ssh_config?server=CDS&system=desktop b/install/profile/7intranet?client<2.0.17&linuxver<=9.5/etc/ssh/ssh_config?server=CDS&system=desktop new file mode 100644 index 0000000..0b578c4 --- /dev/null +++ b/install/profile/7intranet?client<2.0.17&linuxver<=9.5/etc/ssh/ssh_config?server=CDS&system=desktop @@ -0,0 +1,4 @@ +#-title-# + +StrictHostKeyChecking=no + diff --git a/install/profile/CDS/etc/env.d/99editor b/install/profile/CDS/etc/env.d/99editor new file mode 100644 index 0000000..8e45df2 --- /dev/null +++ b/install/profile/CDS/etc/env.d/99editor @@ -0,0 +1,2 @@ +#-title-# +EDITOR="/usr/bin/vim" diff --git a/install/profile/CDS/etc/runlevels/default/fbcondecor b/install/profile/CDS/etc/runlevels/default/fbcondecor new file mode 120000 index 0000000..be9fc2b --- /dev/null +++ b/install/profile/CDS/etc/runlevels/default/fbcondecor @@ -0,0 +1 @@ +/etc/init.d/fbcondecor \ No newline at end of file diff --git a/install/profile/CDS/etc/runlevels/default/ntpd?location!=ram b/install/profile/CDS/etc/runlevels/default/ntpd?location!=ram new file mode 120000 index 0000000..1342392 --- /dev/null +++ b/install/profile/CDS/etc/runlevels/default/ntpd?location!=ram @@ -0,0 +1 @@ +/etc/init.d/ntpd \ No newline at end of file diff --git a/install/profile/CDS/root/.mc/ini b/install/profile/CDS/root/.mc/ini new file mode 100644 index 0000000..bb904cf --- /dev/null +++ b/install/profile/CDS/root/.mc/ini @@ -0,0 +1,122 @@ + +[Midnight-Commander] +show_backups=1 +show_dot_files=1 +verbose=1 +mark_moves_down=1 +pause_after_run=1 +shell_patterns=1 +auto_save_setup=1 +auto_menu=0 +use_internal_view=1 +use_internal_edit=1 +clear_before_exec=1 +mix_all_files=0 +fast_reload=0 +fast_reload_msg_shown=0 +confirm_delete=1 +confirm_overwrite=1 +confirm_execute=0 +confirm_exit=1 +safe_delete=0 +mouse_repeat_rate=100 +double_click_speed=250 +use_8th_bit_as_meta=0 +confirm_view_dir=0 +mouse_move_pages=1 +mouse_move_pages_viewer=1 +fast_refresh=0 +navigate_with_arrows=0 +drop_menus=0 +wrap_mode=1 +old_esc_mode=0 +cd_symlinks=1 +show_all_if_ambiguous=0 +have_fast_cpu=0 +max_dirt_limit=10 +torben_fj_mode=0 +use_file_to_guess_type=1 +alternate_plus_minus=0 +only_leading_plus_minus=1 +show_output_starts_shell=0 +panel_scroll_pages=1 +xtree_mode=0 +num_history_items_recorded=60 +file_op_compute_totals=1 +vfs_timeout=60 +ftpfs_directory_timeout=900 +use_netrc=1 +ftpfs_retry_seconds=30 +ftpfs_always_use_proxy=0 +ftpfs_use_passive_connections=1 +ftpfs_use_unix_list_options=1 +ftpfs_first_cd_then_ls=0 +editor_word_wrap_line_length=72 +editor_key_emulation=0 +editor_tab_spacing=8 +editor_fill_tabs_with_spaces=0 +editor_return_does_auto_indent=1 +editor_backspace_through_tabs=0 +editor_fake_half_tabs=1 +editor_option_save_mode=0 +editor_option_save_position=1 +editor_option_backup_ext_int=-1 +editor_option_auto_para_formatting=0 +editor_option_typewriter_wrap=0 +editor_edit_confirm_save=1 +editor_syntax_highlighting=1 +nice_rotating_dash=1 +horizontal_split=0 + +[Layout] +equal_split=1 +first_panel_size=61 +message_visible=1 +keybar_visible=1 +xterm_title=1 +output_lines=0 +command_prompt=1 +menubar_visible=1 +show_mini_info=1 +permission_mode=0 +filetype_mode=1 + +[Dirs] +other_dir=/ +current_is_left=0 + +[Misc] +ftpfs_password=anonymous@ +ftp_proxy_host=gate +display_codepage=Other_8_bit + +[New Left Panel] +display=listing +reverse=0 +case_sensitive=1 +sort_order=name +list_mode=brief +user_format=half type name | size | perm +user_status0=half type name | size | perm +user_status1=half type name | size | perm +user_status2=half type name | size | perm +user_status3=half type name | size | perm +user_mini_status=0 + +[New Right Panel] +display=listing +reverse=0 +case_sensitive=1 +sort_order=name +list_mode=brief +user_format=half type name | size | perm +user_status0=half type name | size | perm +user_status1=half type name | size | perm +user_status2=half type name | size | perm +user_status3=half type name | size | perm +user_mini_status=0 + +[Panelize] +Найти корректуры, отвергнутые командой patch=find . -name \*.rej -print +Найти оригиналы (*.orig) после команды patch=find . -name \*.orig -print +Найти программы с установленными SUID/SGID битами=find . \( \( -perm -04000 -a -perm +011 \) -o \( -perm -02000 -a -perm +01 \) \) -print diff --git a/install/profile/CDS/root/.weechat/weechat.rc b/install/profile/CDS/root/.weechat/weechat.rc new file mode 100644 index 0000000..4e56260 --- /dev/null +++ b/install/profile/CDS/root/.weechat/weechat.rc @@ -0,0 +1,22 @@ +#-title-# + +[irc] +irc_display_away = off +irc_show_away_once = on +irc_default_msg_part = "Leaving" +irc_default_msg_quit = "Leaving" + +[server] +server_name = "freenode" +server_autoconnect = on +server_autoreconnect = on +server_autoreconnect_delay = 30 +server_address = "irc.freenode.net" +server_port = 6667 +server_nick1 = "#-hostname-#_#-country-#" +server_nick2 = "#-hostname-#_#-rand_min-#_#-country-#" +server_nick3 = "#-hostname-#_#-rand_min-##-rand_min-#_#-country-#" +server_username = "#-calculate-#" +server_realname = "Calculate Directory Server, http://www.calculate-linux.org" +server_autojoin = "#calculate" +server_autorejoin = on diff --git a/install/profile/CDS/usr/bin/irc b/install/profile/CDS/usr/bin/irc new file mode 120000 index 0000000..0268679 --- /dev/null +++ b/install/profile/CDS/usr/bin/irc @@ -0,0 +1 @@ +/usr/bin/weechat-curses \ No newline at end of file diff --git a/install/profile/CLD/etc/conf.d/xdm b/install/profile/CLD/etc/conf.d/xdm new file mode 100644 index 0000000..f5148e3 --- /dev/null +++ b/install/profile/CLD/etc/conf.d/xdm @@ -0,0 +1,4 @@ +#-title-# + +CHECKVT=7 +DISPLAYMANAGER="kdm" diff --git a/install/profile/CLD/etc/dbus-1/system.d/hal.conf b/install/profile/CLD/etc/dbus-1/system.d/hal.conf new file mode 100644 index 0000000..82b890b --- /dev/null +++ b/install/profile/CLD/etc/dbus-1/system.d/hal.conf @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/install/profile/CLD/etc/env.d/90xsession b/install/profile/CLD/etc/env.d/90xsession new file mode 100644 index 0000000..ec83d0c --- /dev/null +++ b/install/profile/CLD/etc/env.d/90xsession @@ -0,0 +1,2 @@ +#-title-# +XSESSION="kde-4.2" \ No newline at end of file diff --git a/install/profile/CLD/root/.qt/qtrc b/install/profile/CLD/root/.qt/qtrc new file mode 100644 index 0000000..7ff4bb0 --- /dev/null +++ b/install/profile/CLD/root/.qt/qtrc @@ -0,0 +1,13 @@ +#------------------------------------------------------------------------------ +# Modified Calculate-client 2.0.11 +# File of a profile "client-profile/always" +#------------------------------------------------------------------------------ + +[General] +style=Windows +font=Droid Sans,10,-1,5,50,0,0,0,0,0 + +[Palette] +active=#141312^e#e0dfde^e#ffffff^e#efefee^e#70706f^e#959494^e#141312^e#ffffff^e#141312^e#ffffff^e#e0dfde^e#000000^e#000080^e#ffffff^e#0000ff^e#ff00ff^e +disabled=#7a7978^e#e0dfde^e#ffffff^e#efefee^e#70706f^e#959494^e#7a7978^e#ffffff^e#7a7978^e#ffffff^e#e0dfde^e#000000^e#000080^e#ffffff^e#0000ff^e#ff00ff^e +inactive=#141312^e#e0dfde^e#ffffff^e#efefee^e#70706f^e#959494^e#141312^e#ffffff^e#141312^e#ffffff^e#e0dfde^e#000000^e#000080^e#ffffff^e#0000ff^e#ff00ff^e diff --git a/install/profile/CLD/usr/share/config/kdm/Xreset?client<2.0.17&linuxver<=9.5 b/install/profile/CLD/usr/share/config/kdm/Xreset?client<2.0.17&linuxver<=9.5 new file mode 100755 index 0000000..cd9df0c --- /dev/null +++ b/install/profile/CLD/usr/share/config/kdm/Xreset?client<2.0.17&linuxver<=9.5 @@ -0,0 +1,16 @@ +#! /bin/sh + +#-title-# + +if [ -e '/usr/bin/cl-sync' ]; +then + /usr/bin/cl-sync --logout $USER + # при неудачном выполнении, сгенерируем ошибку + if [ "$?" -gt "0" ]; + then + echo 'ERROR' + exit 1 + fi +fi + +exit 0 \ No newline at end of file diff --git a/install/profile/CLD/usr/share/config/kdm/Xstartup?client<2.0.17&linuxver<=9.5 b/install/profile/CLD/usr/share/config/kdm/Xstartup?client<2.0.17&linuxver<=9.5 new file mode 100755 index 0000000..75e2209 --- /dev/null +++ b/install/profile/CLD/usr/share/config/kdm/Xstartup?client<2.0.17&linuxver<=9.5 @@ -0,0 +1,51 @@ +#! /bin/sh + +#-title-# + +env-update +source /etc/profile + +if [ -e '/usr/bin/cl-sync' ]; +then +#?linuxver>=9.4# + ERRORLOG=`/usr/bin/cl-sync --progress --color=never --login $USER` +#linuxver# +#?linuxver<9.4# + ERRORLOG=`/usr/bin/cl-sync --color=never --login $USER` +#linuxver# + # при неудачном выполнении, сгенерируем ошибку + if [ "$?" -gt "0" ]; + then + xmessage -buttons OK:0 -default OK "cl-sync: +$ERRORLOG" + exit 1 + fi +fi + +if [ -e '/usr/bin/cl-createhome' ]; +then +#?linuxver>=9.4# + ERRORLOG=`/usr/bin/cl-createhome --progress --color=never $USER` +#linuxver# +#?linuxver<9.4# + ERRORLOG=`/usr/bin/cl-createhome --color=never $USER` +#linuxver# + # при неудачном выполнении, сгенерируем ошибку + if [ "$?" -gt "0" ]; + then + ERRORLOG2=`/usr/bin/cl-sync --color=never --logout --nosync $USER` + if [ "$?" -gt "0" ]; + then + xmessage -buttons OK:0 -default OK "cl-sync: +$ERRORLOG2" + fi + xmessage -buttons OK:0 -default OK "cl-createhome: +$ERRORLOG" + exit 1 + fi +fi + +#очистим кэш +/bin/rm -rf /var/tmp/kdecache-$USER + +exit 0 diff --git a/install/profile/CLD/usr/share/config/kdm/backgroundrc b/install/profile/CLD/usr/share/config/kdm/backgroundrc new file mode 100644 index 0000000..fc107bc --- /dev/null +++ b/install/profile/CLD/usr/share/config/kdm/backgroundrc @@ -0,0 +1,19 @@ +#-title-# +[Desktop0] +BackgroundMode=Flat +BlendBalance=100 +BlendMode=NoBlending +ChangeInterval=60 +Color1=0,0,0 +Color2=192,192,192 +CurrentWallpaperName= +LastChange=0 +MinOptimizationDepth=1 +MultiWallpaperMode=NoMulti +Pattern=fish +Program= +ReverseBlending=false +UseSHM=false +Wallpaper=/usr/share/wallpapers/calculate-kdm.jpg +WallpaperList=Custom +WallpaperMode=Scaled diff --git a/install/profile/CLD/usr/share/config/kdm/~kdmrc b/install/profile/CLD/usr/share/config/kdm/~kdmrc new file mode 100644 index 0000000..a8b99d8 --- /dev/null +++ b/install/profile/CLD/usr/share/config/kdm/~kdmrc @@ -0,0 +1,122 @@ +#-title-# +[General] +ConfigVersion=2.4 +ConsoleTTYs=tty1,tty2,tty3,tty4,tty5,tty6 +PidFile=/var/run/kdm.pid +ReserveServers=:1,:2,:3 +ServerVTs=-7 +StaticServers=:0 + +[Shutdown] +BootManager=None +HaltCmd=/sbin/halt +RebootCmd=/sbin/reboot + +[X-*-Core] +AllowNullPasswd=false +AllowRootLogin=false +AllowShutdown=Root +#?load!=ram# +AutoReLogin=false +#load# +#?load=ram&pass=install# +AutoReLogin=false +#load# +#?load=ram&pass!=install# +AutoReLogin=true +#load# +ClientLogFile=.xsession-errors-%d +Resources=/usr/share/wallpapers/fulmine.jpg +Session=/usr/share/config/kdm/Xsession +SessionsDirs=/usr/share/xsessions +Setup=/usr/share/config/kdm/Xsetup +#?client<2.0.17&linuxver<=9.5# +Reset=/usr/share/config/kdm/Xreset +Startup=/usr/share/config/kdm/Xstartup +#client# + +[X-*-Greeter] +AntiAliasing=true +ColorScheme=Oxygen +FaceSource=AdminOnly +#?linuxver<=9.1# +FailFont=Verdana,10,-1,5,75,0,0,0,0,0 +#linuxver# +#?linuxver>9.1# +FailFont=Droid Sans,10,-1,5,75,0,0,0,0,0 +#linuxver# +ForgingSeed=1224337366 +GUIStyle=Oxygen +#?linuxver<=9.1# +GreetFont=Verdana,20,-1,5,50,0,0,0,0,0 +#linuxver# +#?linuxver>9.1# +GreetFont=Droid Sans,20,-1,5,50,0,0,0,0,0 +#linuxver# +GreetString= +GreeterPos=50,50 +HiddenUsers= +LogoArea=Logo +LogoPixmap=/usr/share/wallpapers/calculate-logo.png +MaxShowUID=65000 +MinShowUID=999 +Preloader=/usr/bin/preloadkde +SelectedUsers= +ShowUsers=NotHidden +SortUsers=true +#?linuxver<=9.1# +StdFont=Verdana,10,-1,5,50,0,0,0,0,0 +#linuxver# +#?linuxver>9.1# +StdFont=Droid Sans,10,-1,5,50,0,0,0,0,0 +#linuxver# +Theme= +UseBackground=true +UseTheme=false +UserCompletion=true +UserList=true + +[X-:*-Core] +AllowNullPasswd=true +AllowShutdown=All +NoPassEnable=false +NoPassUsers= +#?video_drv=vesa?video_drv=nv?video_drv=radeon# +ServerArgsLocal=-nolisten tcp -dpi 96 +#video_drv# +#?video_drv!=vesa?video_drv=nv?video_drv=radeon# +ServerArgsLocal=-nolisten tcp +#video_drv# +ServerCmd=/usr/bin/X -br -novtswitch +#?video_drv=fglrx# +# System freezes after logout with GDM or KDM ATI +# http://ru.gentoo-wiki.com/wiki/Fglrx +TerminateServer=true +#video_drv# + +[X-:*-Greeter] +AllowClose=false +DefaultUser=cxz +FocusPasswd=true +LoginMode=DefaultLocal +PreselectUser=Previous + +[X-:0-Core] +#?load!=ram# +AutoLoginEnable=false +AutoLoginUser= +#load# +#?load=ram&pass=install# +AutoLoginEnable=false +AutoLoginUser= +#load# +#?load=ram&pass!=install# +AutoLoginEnable=true +AutoLoginUser=guest +#load# +AutoLoginLocked=false +ClientLogFile=.xsession-errors + +[Xdmcp] +Enable=false +Willing=/usr/share/config/kdm/Xwilling diff --git a/install/profile/CLD/usr/share/config/~kdeglobals b/install/profile/CLD/usr/share/config/~kdeglobals new file mode 100644 index 0000000..e8a6854 --- /dev/null +++ b/install/profile/CLD/usr/share/config/~kdeglobals @@ -0,0 +1,14 @@ +#-title-# +[Directories][$i] +dir_apps= +dir_mime= + +[General] +#?linuxver<=9.1# +menuFont=Verdana,10,-1,5,50,0,0,0,0,0 +font=Verdana,10,-1,5,50,0,0,0,0,0 +#linuxver# +#?linuxver>9.1# +menuFont=Droid Sans,10,-1,5,50,0,0,0,0,0 +font=Droid Sans,10,-1,5,50,0,0,0,0,0 +#linuxver# diff --git a/install/profile/CLDX/etc/conf.d/xdm b/install/profile/CLDX/etc/conf.d/xdm new file mode 100644 index 0000000..a33b2a0 --- /dev/null +++ b/install/profile/CLDX/etc/conf.d/xdm @@ -0,0 +1,4 @@ +#-title-# + +CHECKVT=7 +DISPLAYMANAGER="slim" diff --git a/install/profile/CLDX/etc/env.d/90xsession b/install/profile/CLDX/etc/env.d/90xsession new file mode 100644 index 0000000..919e1ca --- /dev/null +++ b/install/profile/CLDX/etc/env.d/90xsession @@ -0,0 +1,2 @@ +#-title-# +XSESSION="Xfce4" \ No newline at end of file diff --git a/install/profile/CLDX/etc/~slim.conf b/install/profile/CLDX/etc/~slim.conf new file mode 100644 index 0000000..7b799d4 --- /dev/null +++ b/install/profile/CLDX/etc/~slim.conf @@ -0,0 +1,12 @@ +#?load=ram&pass!=install# +auto_login yes +default_user guest +#load# + +current_theme calculate +#?laptop=# +numlock on +#laptop# +#?laptop!=# +numlock off +#laptop#