Commit bbe5785fab433ca18e9e01bc91c7ecf604a9a463

Authored by Silvan Calarco
0 parents
Exists in master

Initial commit

Showing 126 changed files with 8754 additions and 0 deletions Side-by-side Diff

... ... @@ -0,0 +1,26 @@
  1 +openmamba-devel: openmamba-milestone1-devel
  2 +openmamba-milestone1-devel: rpm gcc gcc-c++ gcc-cpp make
  3 +openmamba-debug: openmamba-milestone1-debug
  4 +openmamba-milestone1-debug: strace valgrind gdb minicom openssh-server dhcp-client rpm iputils openssh-clients \
  5 + diffutils Mesa-tools kbd mc bootchart apt openmamba-release
  6 +openmamba-base: openmamba-milestone1-base
  7 +openmamba-milestone1-base: filesystem gzip texinfo ldconfig bash libreadline glibc \
  8 + libncurses initscripts setup coreutils rootfiles chkconfig splashutils \
  9 + udev suspend ttf-freefont libpython libgpm debianutils
  10 +openmamba-commontools: openmamba-milestone1-commontools
  11 +openmamba-milestone1-commontools: sysvinit util-linux-ng module-init-tools \
  12 + procps sed grep net-tools ncurses tar bzip2 unzip zip pciutils \
  13 + libcrack libcrack-dicts pam shadow-common pwdutils acpid mingetty \
  14 + net-tools syslinux prelink mc dhcp-client timezone nfs-utils \
  15 + wireless_tools wpa_supplicant apt openmamba-release grub2 openssh-clients \
  16 + dosfstools man mbr iptables cups vim iputils sudo postplug xinetd less \
  17 + reiserfsprogs ppp ipw2100-firmware ipw2200-firmware zd1211-firmware \
  18 + rt2501-firmware b43-fwcutter mdadm eciadsl \
  19 + rp-pppoe-gui ndiswrapper slmodem usbutils ftp telnet eject \
  20 + tcpdump pcmcia-utils xdg-utils iproute
  21 +openmamba-advanced: openmamba-milestone1-advanced
  22 +openmamba-milestone1-advanced: hdparm hibernate
  23 +
  24 +ifdef PLATFORM
  25 +include $(TARGETSDIR)/$(TARGET)/platforms/$(PLATFORM)/Makefile
  26 +endif
... ... @@ -0,0 +1,20 @@
  1 +# def file for the embedded target
  2 +libGL.so.1 = libGL-Mesa-dri
  3 +libGLU.so.1 = libGL-Mesa-dri
  4 +perl[bytes] = perl
  5 +#xorglibGL = libGL-Mesa-dri
  6 +xorgdrvvideo = xorg-drv-video-base xorg-drv-video-amd xorg-drv-video-nsc
  7 +xorgdrvinput = xorg-drv-input-base xorg-drv-input-synaptics
  8 +splashtheme = splash-theme-openmamba
  9 +bootloader = syslinux
  10 +alsaplayer_output = alsaplayer-output-jack alsaplayer-output-alsa
  11 +#libscanpci.so = xorg-server
  12 +libgtkpeer.so = libgcj4
  13 +libjawt.so = libgcj4
  14 +kernelsound = kernel-mamba-sound-backport
  15 +#kernelwireless = kernel-mamba-wireless
  16 +kernelwireless = kernel-mamba-wireless-backport
  17 +
  18 +ifdef PLATFORM
  19 +include $(TARGETSDIR)/$(TARGET)/platforms/$(PLATFORM)/Makefile.defs
  20 +endif
... ... @@ -0,0 +1,164 @@
  1 +# execute platform specific script
  2 +[ -e $TARGETDIR/platforms/$PLATFORM/pre.inc.sh ] && . $TARGETDIR/platforms/$PLATFORM/pre.inc.sh
  3 +
  4 +[ "$PRODUCT_NAME" ] && \
  5 + MEDIA_NAME=`PLATFORM=$PRODUCT_NAME media_name` ||
  6 + MEDIA_NAME=`media_name`
  7 +
  8 +#if [ "$FORCE" = "1" -o ! -e "$LOCALSTATEDIR/$MEDIA_NAME" ]; then
  9 +
  10 +[ $MEDIA = "raw" ] && create_raw_filesystem $LOCALSTATEDIR/$MEDIA_NAME $MEDIA_SIZE 1024k $ROOTFS
  11 +
  12 +#create_livecd
  13 +
  14 +create_rpm_database
  15 +create_devices
  16 +create_fstab "$ROOTDEV" "$ROOTFS"
  17 +
  18 +install_rpms "filesystem gzip texinfo ldconfig bash libreadline glibc libncurses initscripts setup coreutils" "--nodeps --noorder --noscripts"
  19 +
  20 +# Workaround: avoid a circular dependency with bash
  21 +INSTALLED="texinfo"
  22 +
  23 +#install_rpms_by_target \
  24 +# "Installing kernel..." mtd-base \
  25 +# "$NOARCHDIR/filesystem*"
  26 +
  27 +install_rpms_by_target "Installing base packages for ${MAKEDIST_TARGET} target" ${MAKEDIST_TARGET}-base "${RPMEXTRAARGS}"
  28 +
  29 +install_kernel ${KERNEL_EXTRAVER}${KERNEL_PLATFORM} "${KERNEL_ADDITIONAL}"
  30 +
  31 +# disable the service command
  32 +#
  33 +mv $MOUNTDIR/sbin/service $MOUNTDIR/sbin/service.preinst
  34 +ln -sf /bin/true $MOUNTDIR/sbin/service
  35 +
  36 +# change the uname command
  37 +#
  38 +mv $MOUNTDIR/bin/uname $MOUNTDIR/bin/uname.preinst
  39 +CURRKERNEL=`uname -r`
  40 +cat > $MOUNTDIR/bin/uname << _EOF
  41 +#!/bin/bash
  42 +/bin/uname.preinst \$@ | sed "s|${CURRKERNEL}|${KERNEL_MAJVER}${KERNEL_EXTRAVER}|"
  43 +_EOF
  44 +chmod +x $MOUNTDIR/bin/uname
  45 +
  46 +# set system hostname and domain
  47 +[[ "$TARGET_HOSTNAME" ]] || TARGET_HOSTNAME="$MAKEDIST_TARGET"
  48 +[[ "$TARGET_DOMAIN" ]] || TARGET_DOMAIN="localdomain"
  49 +
  50 +sed -i "s|HOSTNAME=.*|HOSTNAME=$TARGET_HOSTNAME|" $MOUNTDIR/etc/sysconfig/network
  51 +sed -i "s|\(127\.0\.0\.1\W*\)\(.*\)|\1 $TARGET_HOSTNAME.$TARGET_DOMAIN $TARGET_HOSTNAME \2|" \
  52 + $MOUNTDIR/etc/hosts
  53 +
  54 +#install_rpms_by_target "Installing tools packages for ${MAKEDIST_TARGET} target" ${MAKEDIST_TARGET}-tools ""
  55 +
  56 +install_rpms_by_target "Installing ${PLATFORM} platform packages" ${MAKEDIST_TARGET}-${PLATFORM} "${RPMEXTRAARGS}"
  57 +
  58 +[ "$LANGUAGE" ] && install_rpms_by_target "Installing ${PLATFORM} platform localization packages ($LANGUAGE)" ${MAKEDIST_TARGET}-${PLATFORM}-${LANGUAGE} "${RPMEXTRAARGS}"
  59 +
  60 +update_modules_dependencies ${KERNEL_VER}${KERNEL_EXTRAVER}
  61 +
  62 +if [ "$APPLICATION_TARGET" ]; then
  63 + install_rpms_by_target "Installing application packages." "$APPLICATION_TARGET" "${RPMEXTRAARGS}"
  64 +fi
  65 +
  66 +# erase_rpm_database
  67 +if [ ${DEBUG:-0} -gt 0 ]; then
  68 + install_rpms_by_target "Installing debugging packages." ${MAKEDIST_TARGET}-debug "${RPMEXTRAARGS}"
  69 + cat > $MOUNTDIR/etc/sysconfig/network-devices/ifconfig.eth0 << _EOF
  70 +IF=eth0
  71 +ONBOOT=yes
  72 +ZONE=local
  73 +BOOTPROTO=dhcp
  74 +_EOF
  75 +
  76 +fi
  77 +
  78 +[ "$LANGUAGE" ] && {
  79 +
  80 +[ "$LANGUAGE" = "en" ] && KEYMAP=us || KEYMAP="$LANGUAGE"
  81 +
  82 +# configure localization
  83 +cat > $MOUNTDIR/etc/sysconfig/keyboard << _EOF
  84 +KEYMAP=$KEYMAP.map
  85 +XKB_LAYOUT=$KEYMAP
  86 +XKB_MODEL=pc105
  87 +XKB_OPTIONS=
  88 +_EOF
  89 +
  90 +[ "$COUNTRY" ] && {
  91 +cat > $MOUNTDIR/etc/sysconfig/i18n << _EOF
  92 +LANG=${LANGUAGE}_${COUNTRY}.UTF-8
  93 +_EOF
  94 +}
  95 +
  96 +}
  97 +
  98 +echo "Deleting unuseful files..."
  99 +# delete unused localizations
  100 +#
  101 +find $MOUNTDIR/usr/share/locale \
  102 + -maxdepth 1 -mindepth 1 -type d \
  103 +! -name it* ! -name en* ! -name C ! -name l10n -exec rm -rf {} \;
  104 +
  105 +#$CHROOTCMD chkconfig --add acpid ||
  106 +# { echo "$mkcd_me: fatal error, aborting installation" >&2
  107 +# { (exit 1); exit 1; }; }
  108 +
  109 +# configure extlinux boot loader
  110 +#cat > $MOUNTDIR/boot/extlinux.conf << _EOF
  111 +#DEFAULT $PLATFORM
  112 +#LABEL $PLATFORM
  113 +#KERNEL /boot/vmlinuz-${KERNEL_VER}${KERNEL_EXTRAVER}
  114 +#APPEND video=vesafb:1280x1024-32 root=$ROOTDEV console=tty1
  115 +#resume2=swap:$SWAPDEV
  116 +#_EOF
  117 +
  118 +if [ "$U_BOOT" ]; then
  119 +echo "Copying u-boot Image for Kernel"
  120 +#mkimage -A ppc -O linux -T kernel -C gzip -a 0x8000 -e 0x8000 \
  121 +# -n "$DISTRONAME 2.6" -d $MOUNTDIR/boot/vmlinuz-2.6.12 $DISTRONAME-$MAKEDIST_TARGET-uImage.bin
  122 +fi
  123 +
  124 +# disable parport
  125 +#sed -i "/parport_pc/d" $MOUNTDIR/etc/modprobe.conf
  126 +
  127 +# disable multithreaded init ?
  128 +if [ ${MULTITHREAD:-0} -gt 0 ]; then
  129 + sed -i "s|multithread=1|multithread=0|" $MOUNTDIR/etc/sysconfig/rc
  130 +fi
  131 +
  132 +# blacklist buggy ehci_hcd
  133 +#echo "blacklist ehci_hcd" > $MOUNTDIR/etc/modprobe.conf.d/ehci_hcd
  134 +
  135 +
  136 +# set rootdev on extlinux
  137 +[ -e $MOUNTDIR/boot/extlinux.conf ] && sed -i "s|\([^::alpha]root=\)[^ ]*|\1$ROOTDEV|" $MOUNTDIR/boot/extlinux.conf
  138 +
  139 +# execute platform specific script
  140 +[ -e $TARGETDIR/platforms/$PLATFORM/post.inc.sh ] && . $TARGETDIR/platforms/$PLATFORM/post.inc.sh
  141 +
  142 +# restore the service command
  143 +#
  144 +rm -f $MOUNTDIR/sbin/service
  145 +mv $MOUNTDIR/sbin/service.preinst $MOUNTDIR/sbin/service
  146 +
  147 +# restore the uname command
  148 +#
  149 +rm -f $MOUNTDIR/bin/uname
  150 +mv $MOUNTDIR/bin/uname.preinst $MOUNTDIR/bin/uname
  151 +
  152 +# copy static files for target
  153 +[ -e $TARGETDIR/root ] &&
  154 + cp -a $TARGETDIR/root/* $MOUNTDIR/
  155 +
  156 +# copy static files for specific platform
  157 +[ -e $TARGETDIR/platforms/$PLATFORM/root ] &&
  158 + cp -a $TARGETDIR/platforms/$PLATFORM/root/* $MOUNTDIR/
  159 +
  160 +# copy localized static files for specific platform
  161 +[ "$LANGUAGE" -a -e $TARGETDIR/platforms/$PLATFORM/root-$LANGUAGE ] &&
  162 + cp -a $TARGETDIR/platforms/$PLATFORM/root-$LANGUAGE/* $MOUNTDIR/
  163 +
  164 +produce_media
platforms/bootcd/Makefile
... ... @@ -0,0 +1,4 @@
  1 +openmamba-milestone1-bootcd:
  2 +# Localized targets
  3 +openmamba-milestone1-bootcd-en:
  4 +openmamba-milestone1-bootcd-it:
platforms/bootcd/Makefile.defs
... ... @@ -0,0 +1,7 @@
  1 +xorglibGL = libGL-Mesa-dri libGL-nvidia-X11 libGL-fglrx-X11
  2 +kernelnvidia = kernel-mamba-nongpl-nvidia
  3 +xorglibglx = xorg-ext-libglx xorg-ext-libglx-nvidia
  4 +#xorg-ext-libglx-nvidia
  5 +libGLcore.so.1 = xorg-drv-video-nvidia
  6 +libnvidia-tls.so.1 = xorg-drv-video-nvidia
  7 +xorgdrvvideo = xorg-drv-video-base xorg-drv-video-amd xorg-drv-video-nsc xorg-drv-video-fglrx xorg-drv-video-nvidia
platforms/bootcd/post.inc.sh
... ... @@ -0,0 +1,73 @@
  1 +# bootcd post script
  2 +#
  3 +# creates a fake installation aimed at producing a kernel image and initrd
  4 +# for booting flash and disk partitions
  5 +
  6 +# make initramfs
  7 +cat >> $MOUNTDIR/etc/modprobe.conf << _EOF
  8 +alias scsi_hostadapter ehci-hcd
  9 +alias scsi_hostadapter uhci-hcd
  10 +alias scsi_hostadapter ohci-hcd
  11 +alias scsi_hostadapter usb-storage
  12 +alias scsi_hostadapter sata_via
  13 +alias scsi_hostadapter ata_piix
  14 +alias scsi_hostadapter reiserfs
  15 +_EOF
  16 +
  17 +[ -e $MOUNTDIR2/boot/isolinux ] || mkdir -p $MOUNTDIR2/boot/isolinux
  18 +
  19 +chroot $MOUNTDIR mkinitramfs \
  20 + /boot/initramfs-${KERNEL_VER}${KERNEL_EXTRAVER}.img.gz \
  21 + ${KERNEL_VER}${KERNEL_EXTRAVER}
  22 +
  23 +# Note: isolinux requires 8.3 filenames
  24 +cp $MOUNTDIR/boot/initramfs-${KERNEL_VER}${KERNEL_EXTRAVER}.img.gz \
  25 + $MOUNTDIR2/boot/initrmfs.gz
  26 +
  27 +cp $MOUNTDIR/boot/vmlinuz-${KERNEL_VER}${KERNEL_EXTRAVER} \
  28 + $MOUNTDIR2/boot/vmlinuz
  29 +
  30 +# configure isolinux boot loader
  31 +cat > $MOUNTDIR2/boot/isolinux/isolinux.cfg << _EOF
  32 +timeout 100
  33 +prompt 1
  34 +display menu.txt
  35 +F1 help.txt
  36 +F2 helpit.txt
  37 +default 1
  38 +label 1
  39 + kernel /boot/vmlinuz
  40 + append video=vesafb:1024x768-32,ywrap,mtrr root=/dev/sda1 console=tty1 initrd=/boot/initrmfs.gz splash=silent quiet
  41 +label 2
  42 + kernel /boot/vmlinuz
  43 + append video=vesafb:1024x768-32,ywrap,mtrr root=/dev/sda2 console=tty1 initrd=/boot/initrmfs.gz splash=silent quiet
  44 +label 3
  45 + kernel /boot/vmlinuz
  46 + append video=vesafb:1024x768-32,ywrap,mtrr root=/dev/sda console=tty1 initrd=/boot/initrmfs.gz splash=silent quiet
  47 +label 4
  48 + kernel /boot/vmlinuz
  49 + append video=vesafb:1024x768-32,ywrap,mtrr root=/dev/hda1 console=tty1 initrd=/boot/initrmfs.gz splash=silent quiet
  50 +label 8
  51 + kernel /boot/vmlinuz
  52 + append video=vesafb:1024x768-32,ywrap,mtrr root=/dev/sda1 console=tty1 initrd=/boot/initrmfs.gz debug=1 splash=verbose
  53 +label 9
  54 + kernel memtest
  55 +_EOF
  56 +
  57 +# install isolinux binary
  58 +[ -e /usr/lib/syslinux/isolinux.bin ] && cp /usr/lib/syslinux/isolinux.bin $MOUNTDIR2/boot/isolinux/isolinux.bin ||
  59 + { echo "Error: /boot/memtest.bin not found. Please install the memtest86 package.";
  60 + exit 1; }
  61 +
  62 +# install memtest
  63 +[ -e /boot/memtest.bin ] && cp /boot/memtest.bin $MOUNTDIR2/boot/isolinux/memtest ||
  64 + { echo "Error: /boot/memtest.bin not found. Please install the memtest86 package.";
  65 + exit 1; }
  66 +
  67 +# copy static files for specific platform
  68 +[ -e $TARGETDIR/platforms/$PLATFORM/root ] &&
  69 + cp -a $TARGETDIR/platforms/$PLATFORM/root/* $MOUNTDIR2/
  70 +
  71 +MOUNTDIR=$MOUNTDIR2 produce_media
  72 +
  73 +exit 0
platforms/bootcd/pre.inc.sh
... ... @@ -0,0 +1,31 @@
  1 +# produce bootcd ISO image
  2 +MEDIA_NAME=`media_name`
  3 +MEDIA_NAMES=()
  4 +DISTROMATIC_OPT=""
  5 +
  6 +for i in $LIVECD_TARGETS; do
  7 + . $TARGETDIR/platforms/$i/settings.inc
  8 + CURR_MEDIA_NAME=`PLATFORM=$i media_name`
  9 + MEDIA_NAMES=(${MEDIA_NAMES[*]} $CURR_MEDIA_NAME)
  10 +
  11 + [ "$FORCE" = "1" -o ! -e "$LOCALSTATEDIR/$CURR_MEDIA_NAME" ] && {
  12 + makedist $MAKEDIST_TARGET PLATFORM=$i FORCE=1 DISTROMATIC=$DISTROMATIC_OPT
  13 + DISTROMATIC_OPT="off"
  14 + }
  15 +done
  16 +
  17 +. $TARGETDIR/platforms/$PLATFORM/settings.inc
  18 +
  19 +echo "Creating bootable livecd..."
  20 +[ "$MOUNTDIR" ] && rm -rf $MOUNTDIR/*
  21 +[ "$MOUNTDIR2" ] && rm -rf $MOUNTDIR2/*
  22 +
  23 +#[ "$EXTRA_PACKAGES" ] && {
  24 +# echo "- installing repository with extra packages"
  25 +# add_packages_to_repository $MOUNTDIR/repositories/extras "$EXTRA_PACKAGES"
  26 +#}
  27 +
  28 +for i in ${MEDIA_NAMES[*]}; do
  29 + echo "- installing $i"
  30 + cp $LOCALSTATEDIR/$i $MOUNTDIR2
  31 +done
platforms/bootcd/root/boot/isolinux/help.txt
... ... @@ -0,0 +1,23 @@
  1 +
  2 + openmamba bootcd menu
  3 + =====================
  4 +
  5 + 1) mount rootfs from first USB storage (sda1)
  6 + 2) mount rootfs from second USB storage (sda2)
  7 + 3) mount rootfs from unpartitioned USB storage (sda)
  8 + 4) mount rootfs from first IDE (hda)
  9 + 8) mount rootfs from first USB storage (sda1) in debug mode
  10 + 9) Start a system memory benchmark
  11 +
  12 +Please, enter 1 or wait 10 seconds to boot automatically.
  13 +
  14 +You can also pass some extra parameters to the kernel. For example:
  15 +boot: 1 root=/dev/sdb1
  16 +
  17 +If you have trouble during boot stage please use debug=1 and vga=normal
  18 +options in order to see system startup messages.
  19 +
  20 +NOTE: In most cases the kernel will detect your hardware, and parameters are
  21 +not needed. If you don't need to enter any parameters, hit ENTER to boot
  22 +the default kernel.
  23 +
platforms/bootcd/root/boot/isolinux/helpit.txt
... ... @@ -0,0 +1,23 @@
  1 +
  2 + Menu' di avvio di openmamba
  3 + ===========================
  4 +
  5 + 1) monta il rootfs dal primo storage USB (sda1)
  6 + 2) monta il rootfs dal secondo storage USB (sda2)
  7 + 3) monta il rootfs da uno storage USB non partizionato (sda)
  8 + 4) monta il rootfs dal primo disco IDE (hda)
  9 + 8) monta il rootfs dal primo storage USB (sda1) in modalita' di debug
  10 + 9) Esegue un test della memoria di sistema
  11 +
  12 +Digitare 1 o attendere 10 secondi per l'avvio automatico.
  13 +
  14 +E' possibile passare parametri extra al kernel. Ad esempio:
  15 +boot: 1 root=/dev/sdb1
  16 +
  17 +In caso di problemi all'avvio utilizzare le opzioni debug=1 e vga=normal
  18 +per visualizzare su schermo i messaggi di avvio di sistema.
  19 +
  20 +NOTA: nella maggior parte dei casi il kernel riconoscera' automaticamente
  21 +l'hardware senza bisogno di inserire alcun parametro. Premere INVIO per
  22 +avviare il kernel in modalita' predefinita.
  23 +
platforms/bootcd/root/boot/isolinux/menu.txt
... ... @@ -0,0 +1,13 @@
  1 +
  2 + openmamba bootcd menu
  3 + =====================
  4 +
  5 + F1) Help
  6 + F2) Aiuto
  7 +
  8 + Please, make sure your storage device is connected then press ENTER or
  9 + wait 10 seconds to boot with default options.
  10 +
  11 + Assicurarsi che il dispositivo di storage sia connesso e premere INVIO o
  12 + attendere 10 secondi per l'avvio in modalita' predefinita.
  13 +
platforms/bootcd/root/openmamba-bootcd/CHANGES
... ... @@ -0,0 +1,13 @@
  1 +openmamba bootcd
  2 +
  3 +20070917
  4 +========
  5 +* removed installation of unused kernel-nongpl packages
  6 +
  7 +20070914
  8 +========
  9 +* add reiserfs, ata_piix and sta_via support
  10 +
  11 +20070728
  12 +========
  13 +* first release
platforms/bootcd/root/openmamba-bootcd/COPYING
... ... @@ -0,0 +1,280 @@
  1 + GNU GENERAL PUBLIC LICENSE
  2 + Version 2, June 1991
  3 +
  4 + Copyright (C) 1989, 1991 Free Software Foundation, Inc.
  5 + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  6 + Everyone is permitted to copy and distribute verbatim copies
  7 + of this license document, but changing it is not allowed.
  8 +
  9 + Preamble
  10 +
  11 + The licenses for most software are designed to take away your
  12 +freedom to share and change it. By contrast, the GNU General Public
  13 +License is intended to guarantee your freedom to share and change free
  14 +software--to make sure the software is free for all its users. This
  15 +General Public License applies to most of the Free Software
  16 +Foundation's software and to any other program whose authors commit to
  17 +using it. (Some other Free Software Foundation software is covered by
  18 +the GNU Library General Public License instead.) You can apply it to
  19 +your programs, too.
  20 +
  21 + When we speak of free software, we are referring to freedom, not
  22 +price. Our General Public Licenses are designed to make sure that you
  23 +have the freedom to distribute copies of free software (and charge for
  24 +this service if you wish), that you receive source code or can get it
  25 +if you want it, that you can change the software or use pieces of it
  26 +in new free programs; and that you know you can do these things.
  27 +
  28 + To protect your rights, we need to make restrictions that forbid
  29 +anyone to deny you these rights or to ask you to surrender the rights.
  30 +These restrictions translate to certain responsibilities for you if you
  31 +distribute copies of the software, or if you modify it.
  32 +
  33 + For example, if you distribute copies of such a program, whether
  34 +gratis or for a fee, you must give the recipients all the rights that
  35 +you have. You must make sure that they, too, receive or can get the
  36 +source code. And you must show them these terms so they know their
  37 +rights.
  38 +
  39 + We protect your rights with two steps: (1) copyright the software, and
  40 +(2) offer you this license which gives you legal permission to copy,
  41 +distribute and/or modify the software.
  42 +
  43 + Also, for each author's protection and ours, we want to make certain
  44 +that everyone understands that there is no warranty for this free
  45 +software. If the software is modified by someone else and passed on, we
  46 +want its recipients to know that what they have is not the original, so
  47 +that any problems introduced by others will not reflect on the original
  48 +authors' reputations.
  49 +
  50 + Finally, any free program is threatened constantly by software
  51 +patents. We wish to avoid the danger that redistributors of a free
  52 +program will individually obtain patent licenses, in effect making the
  53 +program proprietary. To prevent this, we have made it clear that any
  54 +patent must be licensed for everyone's free use or not licensed at all.
  55 +
  56 + The precise terms and conditions for copying, distribution and
  57 +modification follow.
  58 +
  59 + GNU GENERAL PUBLIC LICENSE
  60 + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
  61 +
  62 + 0. This License applies to any program or other work which contains
  63 +a notice placed by the copyright holder saying it may be distributed
  64 +under the terms of this General Public License. The "Program", below,
  65 +refers to any such program or work, and a "work based on the Program"
  66 +means either the Program or any derivative work under copyright law:
  67 +that is to say, a work containing the Program or a portion of it,
  68 +either verbatim or with modifications and/or translated into another
  69 +language. (Hereinafter, translation is included without limitation in
  70 +the term "modification".) Each licensee is addressed as "you".
  71 +
  72 +Activities other than copying, distribution and modification are not
  73 +covered by this License; they are outside its scope. The act of
  74 +running the Program is not restricted, and the output from the Program
  75 +is covered only if its contents constitute a work based on the
  76 +Program (independent of having been made by running the Program).
  77 +Whether that is true depends on what the Program does.
  78 +
  79 + 1. You may copy and distribute verbatim copies of the Program's
  80 +source code as you receive it, in any medium, provided that you
  81 +conspicuously and appropriately publish on each copy an appropriate
  82 +copyright notice and disclaimer of warranty; keep intact all the
  83 +notices that refer to this License and to the absence of any warranty;
  84 +and give any other recipients of the Program a copy of this License
  85 +along with the Program.
  86 +
  87 +You may charge a fee for the physical act of transferring a copy, and
  88 +you may at your option offer warranty protection in exchange for a fee.
  89 +
  90 + 2. You may modify your copy or copies of the Program or any portion
  91 +of it, thus forming a work based on the Program, and copy and
  92 +distribute such modifications or work under the terms of Section 1
  93 +above, provided that you also meet all of these conditions:
  94 +
  95 + a) You must cause the modified files to carry prominent notices
  96 + stating that you changed the files and the date of any change.
  97 +
  98 + b) You must cause any work that you distribute or publish, that in
  99 + whole or in part contains or is derived from the Program or any
  100 + part thereof, to be licensed as a whole at no charge to all third
  101 + parties under the terms of this License.
  102 +
  103 + c) If the modified program normally reads commands interactively
  104 + when run, you must cause it, when started running for such
  105 + interactive use in the most ordinary way, to print or display an
  106 + announcement including an appropriate copyright notice and a
  107 + notice that there is no warranty (or else, saying that you provide
  108 + a warranty) and that users may redistribute the program under
  109 + these conditions, and telling the user how to view a copy of this
  110 + License. (Exception: if the Program itself is interactive but
  111 + does not normally print such an announcement, your work based on
  112 + the Program is not required to print an announcement.)
  113 +
  114 +These requirements apply to the modified work as a whole. If
  115 +identifiable sections of that work are not derived from the Program,
  116 +and can be reasonably considered independent and separate works in
  117 +themselves, then this License, and its terms, do not apply to those
  118 +sections when you distribute them as separate works. But when you
  119 +distribute the same sections as part of a whole which is a work based
  120 +on the Program, the distribution of the whole must be on the terms of
  121 +this License, whose permissions for other licensees extend to the
  122 +entire whole, and thus to each and every part regardless of who wrote it.
  123 +
  124 +Thus, it is not the intent of this section to claim rights or contest
  125 +your rights to work written entirely by you; rather, the intent is to
  126 +exercise the right to control the distribution of derivative or
  127 +collective works based on the Program.
  128 +
  129 +In addition, mere aggregation of another work not based on the Program
  130 +with the Program (or with a work based on the Program) on a volume of
  131 +a storage or distribution medium does not bring the other work under
  132 +the scope of this License.
  133 +
  134 + 3. You may copy and distribute the Program (or a work based on it,
  135 +under Section 2) in object code or executable form under the terms of
  136 +Sections 1 and 2 above provided that you also do one of the following:
  137 +
  138 + a) Accompany it with the complete corresponding machine-readable
  139 + source code, which must be distributed under the terms of Sections
  140 + 1 and 2 above on a medium customarily used for software interchange; or,
  141 +
  142 + b) Accompany it with a written offer, valid for at least three
  143 + years, to give any third party, for a charge no more than your
  144 + cost of physically performing source distribution, a complete
  145 + machine-readable copy of the corresponding source code, to be
  146 + distributed under the terms of Sections 1 and 2 above on a medium
  147 + customarily used for software interchange; or,
  148 +
  149 + c) Accompany it with the information you received as to the offer
  150 + to distribute corresponding source code. (This alternative is
  151 + allowed only for noncommercial distribution and only if you
  152 + received the program in object code or executable form with such
  153 + an offer, in accord with Subsection b above.)
  154 +
  155 +The source code for a work means the preferred form of the work for
  156 +making modifications to it. For an executable work, complete source
  157 +code means all the source code for all modules it contains, plus any
  158 +associated interface definition files, plus the scripts used to
  159 +control compilation and installation of the executable. However, as a
  160 +special exception, the source code distributed need not include
  161 +anything that is normally distributed (in either source or binary
  162 +form) with the major components (compiler, kernel, and so on) of the
  163 +operating system on which the executable runs, unless that component
  164 +itself accompanies the executable.
  165 +
  166 +If distribution of executable or object code is made by offering
  167 +access to copy from a designated place, then offering equivalent
  168 +access to copy the source code from the same place counts as
  169 +distribution of the source code, even though third parties are not
  170 +compelled to copy the source along with the object code.
  171 +
  172 + 4. You may not copy, modify, sublicense, or distribute the Program
  173 +except as expressly provided under this License. Any attempt
  174 +otherwise to copy, modify, sublicense or distribute the Program is
  175 +void, and will automatically terminate your rights under this License.
  176 +However, parties who have received copies, or rights, from you under
  177 +this License will not have their licenses terminated so long as such
  178 +parties remain in full compliance.
  179 +
  180 + 5. You are not required to accept this License, since you have not
  181 +signed it. However, nothing else grants you permission to modify or
  182 +distribute the Program or its derivative works. These actions are
  183 +prohibited by law if you do not accept this License. Therefore, by
  184 +modifying or distributing the Program (or any work based on the
  185 +Program), you indicate your acceptance of this License to do so, and
  186 +all its terms and conditions for copying, distributing or modifying
  187 +the Program or works based on it.
  188 +
  189 + 6. Each time you redistribute the Program (or any work based on the
  190 +Program), the recipient automatically receives a license from the
  191 +original licensor to copy, distribute or modify the Program subject to
  192 +these terms and conditions. You may not impose any further
  193 +restrictions on the recipients' exercise of the rights granted herein.
  194 +You are not responsible for enforcing compliance by third parties to
  195 +this License.
  196 +
  197 + 7. If, as a consequence of a court judgment or allegation of patent
  198 +infringement or for any other reason (not limited to patent issues),
  199 +conditions are imposed on you (whether by court order, agreement or
  200 +otherwise) that contradict the conditions of this License, they do not
  201 +excuse you from the conditions of this License. If you cannot
  202 +distribute so as to satisfy simultaneously your obligations under this
  203 +License and any other pertinent obligations, then as a consequence you
  204 +may not distribute the Program at all. For example, if a patent
  205 +license would not permit royalty-free redistribution of the Program by
  206 +all those who receive copies directly or indirectly through you, then
  207 +the only way you could satisfy both it and this License would be to
  208 +refrain entirely from distribution of the Program.
  209 +
  210 +If any portion of this section is held invalid or unenforceable under
  211 +any particular circumstance, the balance of the section is intended to
  212 +apply and the section as a whole is intended to apply in other
  213 +circumstances.
  214 +
  215 +It is not the purpose of this section to induce you to infringe any
  216 +patents or other property right claims or to contest validity of any
  217 +such claims; this section has the sole purpose of protecting the
  218 +integrity of the free software distribution system, which is
  219 +implemented by public license practices. Many people have made
  220 +generous contributions to the wide range of software distributed
  221 +through that system in reliance on consistent application of that
  222 +system; it is up to the author/donor to decide if he or she is willing
  223 +to distribute software through any other system and a licensee cannot
  224 +impose that choice.
  225 +
  226 +This section is intended to make thoroughly clear what is believed to
  227 +be a consequence of the rest of this License.
  228 +
  229 + 8. If the distribution and/or use of the Program is restricted in
  230 +certain countries either by patents or by copyrighted interfaces, the
  231 +original copyright holder who places the Program under this License
  232 +may add an explicit geographical distribution limitation excluding
  233 +those countries, so that distribution is permitted only in or among
  234 +countries not thus excluded. In such case, this License incorporates
  235 +the limitation as if written in the body of this License.
  236 +
  237 + 9. The Free Software Foundation may publish revised and/or new versions
  238 +of the General Public License from time to time. Such new versions will
  239 +be similar in spirit to the present version, but may differ in detail to
  240 +address new problems or concerns.
  241 +
  242 +Each version is given a distinguishing version number. If the Program
  243 +specifies a version number of this License which applies to it and "any
  244 +later version", you have the option of following the terms and conditions
  245 +either of that version or of any later version published by the Free
  246 +Software Foundation. If the Program does not specify a version number of
  247 +this License, you may choose any version ever published by the Free Software
  248 +Foundation.
  249 +
  250 + 10. If you wish to incorporate parts of the Program into other free
  251 +programs whose distribution conditions are different, write to the author
  252 +to ask for permission. For software which is copyrighted by the Free
  253 +Software Foundation, write to the Free Software Foundation; we sometimes
  254 +make exceptions for this. Our decision will be guided by the two goals
  255 +of preserving the free status of all derivatives of our free software and
  256 +of promoting the sharing and reuse of software generally.
  257 +
  258 + NO WARRANTY
  259 +
  260 + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
  261 +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
  262 +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
  263 +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
  264 +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  265 +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
  266 +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
  267 +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
  268 +REPAIR OR CORRECTION.
  269 +
  270 + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
  271 +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
  272 +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
  273 +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
  274 +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
  275 +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
  276 +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
  277 +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
  278 +POSSIBILITY OF SUCH DAMAGES.
  279 +
  280 + END OF TERMS AND CONDITIONS
platforms/bootcd/root/openmamba-bootcd/INSTALL
... ... @@ -0,0 +1,4 @@
  1 +openmamba bootcd - instructions
  2 +===============================
  3 +
  4 +to be written
0 5 \ No newline at end of file
platforms/bootcd/root/openmamba-bootcd/README
... ... @@ -0,0 +1,5 @@
  1 +openmamba livecd
  2 +================
  3 +
  4 +This livecd is at early development stage.
  5 +
platforms/bootcd/root/openmamba-bootcd/TODO
... ... @@ -0,0 +1,2 @@
  1 +openmamba bootcd
  2 +================
platforms/bootcd/settings.inc
... ... @@ -0,0 +1,12 @@
  1 +MEDIA=iso
  2 +MULTITHREAD=1
  3 +DISTROMATIC=off
  4 +
  5 +KERNEL_EXTRAVER=mamba
  6 +KERNEL_PLATFORM=""
  7 +KERNEL_ADDITIONAL="extramodules"
  8 +LIVECD_TARGETS=""
  9 +
  10 +TARGET_HOSTNAME=openmamba-livecd
  11 +ROOTDEV=/dev/sda1
  12 +ROOTFS=ext3
platforms/bootusb/Makefile
... ... @@ -0,0 +1,4 @@
  1 +openmamba-milestone1-bootusb: udev-static klibc-extras openmamba-release syslinux
  2 +# Localization targets
  3 +openmamba-milestone1-bootusb-en:
  4 +openmamba-milestone1-bootusb-it:
platforms/bootusb/Makefile.defs
... ... @@ -0,0 +1 @@
  1 +python[abi]=python24
platforms/bootusb/initramfs-include.sh
... ... @@ -0,0 +1,78 @@
  1 +FOUND_ISO=
  2 +RAMSIZE=100000
  3 +
  4 +msg ":: Creating new root ramdisk (dinamic size=${RAMSIZE}k) on /dev/shm..."
  5 +mkdir /newroot
  6 +/bin/mount -t tmpfs -o "size=${RAMSIZE}k" /dev/shm /newroot
  7 +mkdir -p /newroot/flash /newroot/cdrom /newroot/squashfs
  8 +
  9 +#
  10 +# findiso(): looks for ISO9660 images stored in flash root
  11 +#
  12 +findiso(){
  13 + msg ":: Looking for openmamba ISO cdrom images"
  14 +
  15 + # try removable devices only
  16 + for i in /newroot/flash/openmamba-*.iso; do
  17 + /bin/losetup /dev/loop0 $i
  18 + if mount -r -t iso9660 /dev/loop0 /newroot/cdrom >/dev/null 2>&1; then
  19 + if test -r /newroot/cdrom/rootfs.compressed; then
  20 + msg ":: Valid ISO image $i found..."
  21 + FOUND_ISO="$i"
  22 + return 0
  23 + fi
  24 + umount /newroot/cdrom
  25 + fi
  26 + /bin/losetup /dev/loop0
  27 + done
  28 + return 1
  29 +}
  30 +
  31 +#/sbin/splash_util -c repaint ${splash_add} -t default --mesg="Looking for cdrom device" --progress="4444"
  32 +
  33 +while true; do
  34 + msg ":: root device is ${root}"
  35 + if ! mount -t ext3 ${root} /newroot/flash >/dev/null 2>&1; then
  36 + if ! mount -t ext2 ${root} /newroot/flash >/dev/null 2>&1; then
  37 + err ":: Unable to mount USB rootfs. Supported filesystems are ext2 and ext3."
  38 + fi
  39 + fi
  40 + findiso
  41 + if [ "$FOUND_ISO" ]; then
  42 +# /sbin/splash_util -c repaint ${splash_add} -t default --mesg="Mounting compressed filesystem" --progress="5555"
  43 + msg ":: Mounting compressed filesystem"
  44 + /bin/losetup /dev/loop1 /newroot/cdrom/rootfs.compressed
  45 + mount -r -t squashfs /dev/loop1 /newroot/squashfs
  46 +
  47 + msg ":: Creating directories and symlinks on ramdisk..."
  48 +
  49 + mkdir -p \
  50 + /newroot/tmp /newroot/proc /newroot/sys \
  51 + /newroot/initrd /newroot/mnt /newroot/media \
  52 + /newroot/oldroot
  53 +
  54 + ln -s squashfs/bin /newroot/bin
  55 + ln -s squashfs/boot /newroot/boot
  56 + ln -s squashfs/lib /newroot/lib
  57 + ln -s squashfs/opt /newroot/opt
  58 + ln -s squashfs/sbin /newroot/sbin
  59 + ln -s squashfs/srv /newroot/srv
  60 + ln -s squashfs/usr /newroot/usr
  61 +
  62 + chroot /newroot /bin/cp -a \
  63 + /squashfs/dev /squashfs/home /squashfs/var \
  64 + /squashfs/etc /squashfs/root /
  65 +
  66 + # Create empty utmp and wtmp
  67 + :> /newroot/var/run/utmp
  68 + :> /newroot/var/run/wtmp
  69 +
  70 + [ "${init}" ] || init=/sbin/init
  71 + msg ":: Running init, runlevel:${runlevel}"
  72 + exec run-init /newroot ${init} ${runlevel}
  73 + exit 0
  74 + else
  75 + msg ":: Could not find a valid ISO image; opening a command prompt."
  76 + /bin/sh.shared
  77 + fi
  78 +done
platforms/bootusb/post.inc.sh
... ... @@ -0,0 +1,63 @@
  1 +# make initramfs
  2 +cat >> $MOUNTDIR/etc/modprobe.conf << _EOF
  3 +alias scsi_hostadapter ehci-hcd
  4 +alias scsi_hostadapter uhci-hcd
  5 +alias scsi_hostadapter usb-storage
  6 +alias scsi_hostadapter isofs
  7 +alias scsi_hostadapter ext3
  8 +alias scsi_hostadapter squashfs
  9 +_EOF
  10 +
  11 +cp $TARGETDIR/platforms/$PLATFORM/initramfs-include.sh $MOUNTDIR/
  12 +
  13 +chroot $MOUNTDIR depmod -ae ${KERNEL_MAJVER}${KERNEL_EXTRAVER}
  14 +
  15 +#chroot $MOUNTDIR mkinitramfs /boot/initramfs-${KERNEL_MAJVER}${KERNEL_EXTRAVER}.img.gz ${KERNEL_MAJVER}${KERNEL_EXTRAVER}
  16 +LANG=${LANGUAGE}_${COUNTRY} chroot $MOUNTDIR mkinitramfs \
  17 + --with-udev --postrc=/initramfs-include.sh \
  18 + /boot/initramfs-${KERNEL_MAJVER}${KERNEL_EXTRAVER}.img.gz \
  19 + ${KERNEL_MAJVER}${KERNEL_EXTRAVER}
  20 +
  21 +# configure extlinux boot loader
  22 +cat > $MOUNTDIR/boot/extlinux.conf << _EOF
  23 +PROMPT 0
  24 +TIMEOUT 20
  25 +DEFAULT /boot/vesamenu.c32
  26 +
  27 +LABEL bootusb
  28 +MENU LABEL openmamba bootusb
  29 +KERNEL /boot/vmlinuz-${KERNEL_MAJVER}${KERNEL_EXTRAVER}
  30 +APPEND video=uvesafb:1024x768-32,ywrap,mtrr root=$ROOTDEV console=tty1 initrd=/boot/initramfs-${KERNEL_MAJVER}${KERNEL_EXTRAVER}.img.gz splash=silent quiet
  31 +
  32 +LABEL openmamba bootusb-single
  33 +MENU LABEL openmamba bootusb single (single mode)
  34 +KERNEL /boot/vmlinuz-${KERNEL_MAJVER}${KERNEL_EXTRAVER}
  35 +APPEND video=uvesafb:1024x768-32,ywrap,mtrr root=$ROOTDEV console=tty1 initrd=/boot/initramfs-${KERNEL_MAJVER}${KERNEL_EXTRAVER}.img.gz splash=silent quiet 1
  36 +
  37 +LABEL openmamba bootusb-debug
  38 +MENU LABEL openmamba bootusb debug (debug mode)
  39 +KERNEL /boot/vmlinuz-${KERNEL_MAJVER}${KERNEL_EXTRAVER}
  40 +APPEND video=uvesafb:1024x768-32,ywrap,mtrr root=$ROOTDEV console=tty1 initrd=/boot/initramfs-${KERNEL_MAJVER}${KERNEL_EXTRAVER}.img.gz splash=off debug debug=1
  41 +_EOF
  42 +
  43 +# copy /boot directory to final root
  44 +cp -a $MOUNTDIR/boot $MOUNTDIR2
  45 +
  46 +# copy syslinux addons to final root /boot dir
  47 +cp $MOUNTDIR/usr/lib/syslinux/vesamenu.c32 $MOUNTDIR2/boot/
  48 +
  49 +# copy static files for specific platform
  50 +[ -e $TARGETDIR/platforms/$PLATFORM/root ] &&
  51 + cp -a $TARGETDIR/platforms/$PLATFORM/root/* $MOUNTDIR2/
  52 +
  53 +# copy localized static files for specific platform
  54 +[ "$LANGUAGE" -a -e $TARGETDIR/platforms/$PLATFORM/root-$LANGUAGE ] &&
  55 + cp -a $TARGETDIR/platforms/$PLATFORM/root-$LANGUAGE/* $MOUNTDIR2/
  56 +
  57 +## add buildinfo
  58 +#buildinfo="`cat $MOUNTDIR/etc/openmamba-release` [$PRODUCT_NAME build:`date +%c`]"
  59 +#sed -i "s|%buildinfo%|$buildinfo|" $MOUNTDIR2/boot/isolinux/menu.txt
  60 +
  61 +MOUNTDIR=$MOUNTDIR2 produce_media $MEDIA_NAME
  62 +
  63 +exit 0
platforms/bootusb/root/openmamba-bootusb/CHANGES
... ... @@ -0,0 +1,22 @@
  1 +openmamba flash-1GB changelog
  2 +=============================
  3 +
  4 +20081218
  5 +* configure syslinux for VESA boot menu with debug startup choices
  6 +
  7 +20070908
  8 +* don't install documentation files from RPMS to reduce occupation
  9 +* syncronize common packages with livecd
  10 +* nvidia legacy drivers removed
  11 +
  12 +20070811
  13 +* added explicit postplug-xorg and postplug-sound installation
  14 +
  15 +20070605
  16 +* removed amarok
  17 +
  18 +20070529
  19 +* postplug: disabled modprobing of fglrx driver
  20 +* ntfs-3g, dosfstools,man: added
  21 +* kaffeine,knemo: removed (no free space)
  22 +
platforms/bootusb/root/openmamba-bootusb/COPYING
... ... @@ -0,0 +1,674 @@
  1 + GNU GENERAL PUBLIC LICENSE
  2 + Version 3, 29 June 2007
  3 +
  4 + Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
  5 + Everyone is permitted to copy and distribute verbatim copies
  6 + of this license document, but changing it is not allowed.
  7 +
  8 + Preamble
  9 +
  10 + The GNU General Public License is a free, copyleft license for
  11 +software and other kinds of works.
  12 +
  13 + The licenses for most software and other practical works are designed
  14 +to take away your freedom to share and change the works. By contrast,
  15 +the GNU General Public License is intended to guarantee your freedom to
  16 +share and change all versions of a program--to make sure it remains free
  17 +software for all its users. We, the Free Software Foundation, use the
  18 +GNU General Public License for most of our software; it applies also to
  19 +any other work released this way by its authors. You can apply it to
  20 +your programs, too.
  21 +
  22 + When we speak of free software, we are referring to freedom, not
  23 +price. Our General Public Licenses are designed to make sure that you
  24 +have the freedom to distribute copies of free software (and charge for
  25 +them if you wish), that you receive source code or can get it if you
  26 +want it, that you can change the software or use pieces of it in new
  27 +free programs, and that you know you can do these things.
  28 +
  29 + To protect your rights, we need to prevent others from denying you
  30 +these rights or asking you to surrender the rights. Therefore, you have
  31 +certain responsibilities if you distribute copies of the software, or if
  32 +you modify it: responsibilities to respect the freedom of others.
  33 +
  34 + For example, if you distribute copies of such a program, whether
  35 +gratis or for a fee, you must pass on to the recipients the same
  36 +freedoms that you received. You must make sure that they, too, receive
  37 +or can get the source code. And you must show them these terms so they
  38 +know their rights.
  39 +
  40 + Developers that use the GNU GPL protect your rights with two steps:
  41 +(1) assert copyright on the software, and (2) offer you this License
  42 +giving you legal permission to copy, distribute and/or modify it.
  43 +
  44 + For the developers' and authors' protection, the GPL clearly explains
  45 +that there is no warranty for this free software. For both users' and
  46 +authors' sake, the GPL requires that modified versions be marked as
  47 +changed, so that their problems will not be attributed erroneously to
  48 +authors of previous versions.
  49 +
  50 + Some devices are designed to deny users access to install or run
  51 +modified versions of the software inside them, although the manufacturer
  52 +can do so. This is fundamentally incompatible with the aim of
  53 +protecting users' freedom to change the software. The systematic
  54 +pattern of such abuse occurs in the area of products for individuals to
  55 +use, which is precisely where it is most unacceptable. Therefore, we
  56 +have designed this version of the GPL to prohibit the practice for those
  57 +products. If such problems arise substantially in other domains, we
  58 +stand ready to extend this provision to those domains in future versions
  59 +of the GPL, as needed to protect the freedom of users.
  60 +
  61 + Finally, every program is threatened constantly by software patents.
  62 +States should not allow patents to restrict development and use of
  63 +software on general-purpose computers, but in those that do, we wish to
  64 +avoid the special danger that patents applied to a free program could
  65 +make it effectively proprietary. To prevent this, the GPL assures that
  66 +patents cannot be used to render the program non-free.
  67 +
  68 + The precise terms and conditions for copying, distribution and
  69 +modification follow.
  70 +
  71 + TERMS AND CONDITIONS
  72 +
  73 + 0. Definitions.
  74 +
  75 + "This License" refers to version 3 of the GNU General Public License.
  76 +
  77 + "Copyright" also means copyright-like laws that apply to other kinds of
  78 +works, such as semiconductor masks.
  79 +
  80 + "The Program" refers to any copyrightable work licensed under this
  81 +License. Each licensee is addressed as "you". "Licensees" and
  82 +"recipients" may be individuals or organizations.
  83 +
  84 + To "modify" a work means to copy from or adapt all or part of the work
  85 +in a fashion requiring copyright permission, other than the making of an
  86 +exact copy. The resulting work is called a "modified version" of the
  87 +earlier work or a work "based on" the earlier work.
  88 +
  89 + A "covered work" means either the unmodified Program or a work based
  90 +on the Program.
  91 +
  92 + To "propagate" a work means to do anything with it that, without
  93 +permission, would make you directly or secondarily liable for
  94 +infringement under applicable copyright law, except executing it on a
  95 +computer or modifying a private copy. Propagation includes copying,
  96 +distribution (with or without modification), making available to the
  97 +public, and in some countries other activities as well.
  98 +
  99 + To "convey" a work means any kind of propagation that enables other
  100 +parties to make or receive copies. Mere interaction with a user through
  101 +a computer network, with no transfer of a copy, is not conveying.
  102 +
  103 + An interactive user interface displays "Appropriate Legal Notices"
  104 +to the extent that it includes a convenient and prominently visible
  105 +feature that (1) displays an appropriate copyright notice, and (2)
  106 +tells the user that there is no warranty for the work (except to the
  107 +extent that warranties are provided), that licensees may convey the
  108 +work under this License, and how to view a copy of this License. If
  109 +the interface presents a list of user commands or options, such as a
  110 +menu, a prominent item in the list meets this criterion.
  111 +
  112 + 1. Source Code.
  113 +
  114 + The "source code" for a work means the preferred form of the work
  115 +for making modifications to it. "Object code" means any non-source
  116 +form of a work.
  117 +
  118 + A "Standard Interface" means an interface that either is an official
  119 +standard defined by a recognized standards body, or, in the case of
  120 +interfaces specified for a particular programming language, one that
  121 +is widely used among developers working in that language.
  122 +
  123 + The "System Libraries" of an executable work include anything, other
  124 +than the work as a whole, that (a) is included in the normal form of
  125 +packaging a Major Component, but which is not part of that Major
  126 +Component, and (b) serves only to enable use of the work with that
  127 +Major Component, or to implement a Standard Interface for which an
  128 +implementation is available to the public in source code form. A
  129 +"Major Component", in this context, means a major essential component
  130 +(kernel, window system, and so on) of the specific operating system
  131 +(if any) on which the executable work runs, or a compiler used to
  132 +produce the work, or an object code interpreter used to run it.
  133 +
  134 + The "Corresponding Source" for a work in object code form means all
  135 +the source code needed to generate, install, and (for an executable
  136 +work) run the object code and to modify the work, including scripts to
  137 +control those activities. However, it does not include the work's
  138 +System Libraries, or general-purpose tools or generally available free
  139 +programs which are used unmodified in performing those activities but
  140 +which are not part of the work. For example, Corresponding Source
  141 +includes interface definition files associated with source files for
  142 +the work, and the source code for shared libraries and dynamically
  143 +linked subprograms that the work is specifically designed to require,
  144 +such as by intimate data communication or control flow between those
  145 +subprograms and other parts of the work.
  146 +
  147 + The Corresponding Source need not include anything that users
  148 +can regenerate automatically from other parts of the Corresponding
  149 +Source.
  150 +
  151 + The Corresponding Source for a work in source code form is that
  152 +same work.
  153 +
  154 + 2. Basic Permissions.
  155 +
  156 + All rights granted under this License are granted for the term of
  157 +copyright on the Program, and are irrevocable provided the stated
  158 +conditions are met. This License explicitly affirms your unlimited
  159 +permission to run the unmodified Program. The output from running a
  160 +covered work is covered by this License only if the output, given its