geexbox-0.98.7/0000755000175000017500000000000010335127534012265 5ustar aurelaurelgeexbox-0.98.7/AUTHORS0000644000175000017500000001046110335100766013335 0ustar aurelaurel ooooo oo o o oo o M" "Mo Mo oM" M Mo oM" M oM""Mo oM""Mo "Mo" Mo"""o oM""Mo "Mo" M """M MooooMM MooooMM oMMo M "M M M oMMo "o oM M o M o oM Mo M oM M M oM Mo "MoooM"M "MooM" "MooM" M" "M M"ooo" "MooM" M" "M | NOTE | ~~~~ Do NOT send bug reports, help and feature requests directly to the authors. | GEEXBOX TEAM (PROJECT LEADERS) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Aurelien Jacobs * author * main developer Benjamin Zores * co-developer * website | REGULAR CONTRIBUTORS | ~~~~~~~~~~~~~~~~~~~~ Amir Shalem * Hebrew subtitles support through fribidi library. * complete rewrite of installator and GRUB support. * libtheora support. * too many fixes to be listed. | PATCHES | ~~~~~~~ Ville Skytt * many cleaning and fixes Serge Gebhardt * added fbi for image viewing support. BWare * added wifi support. Serial Cleaner * setcd patch * hauppauge remote support. Herv Urbain * logitech remote support. * realmagic remote support. Plom * leadtek remote support. Alexis Saettler * CPU frequency scaling support. * Debian's generator package and repository. * Askey remote support. Mathieu Velten * enhanced win32 generator. Kevin Foss * radio card support. Andrew Calkin * digimatrix remote support. * native ide-cd driver instead of ide-scsi layer. * support for X-in-1 cards readers. Arne Graesser * sleeptimer | TRANSLATIONS | ~~~~~~~~~~~~ Kiril Jovchev * Bulgarian menu translation. Michele Schaeuble * German menu and README translations. Andrighetto Riccardo * Italian menu translation. barb3tta * Italian README translation. Yogi * Polish menu translation. Eva Mikulcikova * Czech and Slovak menu translations. ClycioC * brasilian portuguese menu translation. Nikolas Garofil * dutch menu translation. kim * Finnish and Swedish menu translations. Tommi Tauriainen and team Jynkky * Finnish menu and readme translations fixes. c0p0n * Spanish menu translation. Nicolas Forgeard * French README translation. Sass Tabakajev * Estonian menu translation Ebore Belosa * Czech menu and help translation. Excaliber * Hebrew menu and help translation. Strahinic Igor * Serbian menu and help translation. Lars Sunde * Norwegian menu and help translation. Vladimir * Czech README translation. Yhlee * Korean menu and help translation. Christos Themelis * Greek menu and help translation. MarkTsai * Simplified and Traditional Chinese menu and help translation. Denis Polevoi * Russian README translation. Siddique Vally-Adam * French and English documentation about how to setup a Win32 PXE server. Heiko Rutenbeck (bzrudi) * Complete deutsch website's translation. | DESIGNERS | ~~~~~~~~~ Mickal Beugnier for the GeeXboX logo and bootlogo design (releases 0.90-1 to 0.98). Nicolas Staszak (NICO.S) for the bootsplash and user interface design. | THANKS | ~~~~~~ Special thanks Dennis Roos and his company InTouch for offering us a webserver and full of bandwidth. Thanks for all of the generous donators who have contributed to help us with GeeXboX development by giving us hardware or money. They are too many to be listed here but each of them will recognize himself. The whole free software community, and especially the whole MPlayer team. geexbox-0.98.7/README0000644000175000017500000007210610335100766013151 0ustar aurelaurel ooooo oo o o oo o M" "Mo Mo oM" M Mo oM" M oM""Mo oM""Mo "Mo" Mo"""o oM""Mo "Mo" M """M MooooMM MooooMM oMMo M "M M M oMMo "o oM M o M o oM Mo M oM M M oM Mo "MoooM"M "MooM" "MooM" M" "M M"ooo" "MooM" M" "M | ABOUT | ~~~~~ GeeXboX is a kind of "divx box" software. In fact, it is a stand-alone boot CD which allows you to watch movies or listen to music. It supports many formats, such as avi, mpeg, divx, ogm, rm, mp3, ogg, dvd, vcd and cdda. It also supports some IR remote controllers and TV-Out for some graphic cards. This archive contains the needed scripts to rebuild an iso image of GeeXboX. | REQUIREMENTS | ~~~~~~~~~~~~ To generate a GeeXboX iso, you will need either : - a GNU/Linux system with mkisofs and mkzftree. - a MAC OS X system with mkisofs and mkzftree. - a windows system. To install the GeeXboX, you will need : - a GNU/Linux system with syslinux. To build the GeeXboX, you will need some classic tools : - a working GNU/Linux system. - the gcc C compiler. - GNU make - the patch command. - the nasm assembler. - bzip2 and gzip. - mkfs.ext2 and mkfs.vfat - the wget download tool (not needed for the full GeeXboX package). - mkisofs and mkzftree to build the iso image. - mkzftree to compress files on the iso image. - cdrecord (to burn the iso image). And also 1.2 GB of hard disk free space. | PERSONALIZATION | ~~~~~~~~~~~~~~~ When the GeeXboX is installed on a hard drive or generated, it is quite easy to personalize it. You can add some proprietary codecs such a rv9 or wmv9, simply by adding them in the GEEXBOX/codecs directory. You can find those codecs in the package on http://www.geexbox.org/releases/extra-codecs-nonfree.tar.gz You can also modify many options. This can be done simply by editing some text files. * Language : You can easily select your preferred menu language by following the procedure below : - GNU/Linux users: Edit the generator.sh script before running it and change the line near the top: "LANG=en" to your preferred language. For example: if you're French, change it to "LANG=fr". - Microsoft Windows users: When started, generator.exe gives you a combo list that allows you to choose your preferred language. NB : This has no effect on DVD language (see the MPlayer section). For the list of available languages please see the "language" directory. If your language is not available, you can translate the menu in your own language. This simply involves the creation of language/menu_LANG.conf and language/help_LANG.txt, and adding LANG to language/lang.conf. * Firmware auto-loader : GeeXboX supports many free drivers but unfortunately some of them may require an additionnal proprietary firmware (non-free and so not included in GeeXboX ISO) to work properly. The firmware is a binary file that is uploaded to the device (PCI or USB) when the driver is loaded. For each driver, the firmware has to be a specific file with a pre-determined name. If you have reluctant hardware that require additionnal firmware (in most of the cases, it only concerns WiFi and DVB cards), you'll need to check on the Internet for your Linux driver page to see how to check the firmware file. Most of the time, you'll get a direct download link. Sometimes, you'll need to extract it from your Windows drivers archive that was shipped with your hardware. Once you get the firmware file, simply put it into the /firmwares directory. You can put in as many firmwares as you want, and GeeXboX will automatically find them and use them with the right drivers if needed. The only thing you then have to take care is to have the good firmwares file and to generate a new ISO. Please note that you can also use the GeeXboX ISO generator to automatically grab firmwares for you. You can select all of the extra binary firmware files you want the generator to add for you. Simply note that this feature will require you to have an Internet access when using the GeeXboX generator. * MPlayer : This is where you can do most of the configuration and tweaking. The options take place in the file packages/MPlayer/config/mplayer.conf. You may want to modify options such as OSD font size (subfont-text-scale). You can also add lots of options such as DVD default language (eg: alang=fr,en). The best place to find them is the MPlayer manpage for Linux users (man -l build/MPlayer-*/DOCS/mplayer.1). You should also have a look at the MPlayer documentation (in build/MPlayer-*/DOCS or at http://www.mplayerhq.hu/DOCS/). Another file you may modify is the packages/i18n-texts/config/menu.conf. You can remove items you don't need, or you can translate it in your own language for example. Then the last file you can look at is the packages/MPlayer/build which contains the selection of options which are built into MPlayer. * TV-Out : Enabling the TV-Out is achieved with the help of multiple small programs dedicated to different video card brands. Currently we use atitvout for ATI cards, s3switch for S3 cards and nvtv for nVidia cards (and possibly intel i810 and 3dfx cards). The configuration of those programs is done in packages/tvout/config/tvout. There you can choose the TV standard you want (pal, ntsc...) and you can also modify specific options for nvtv. # TV Output Standard (ntsc/pal/secam) TVOUT_STANDARD=pal Please note that you can also define the output aspect (say 4:3 or 16:9 display) in this file through the line : TVOUT_ASPECT="4:3" This parameter will be used both for TVOut and regular (CRT/TFT) display. You can also specify the desired height/width values and your display's horizontal and vertical frequencies in case you have unusual screen like WideScreens or videoprojector. This can be done, editing the /etc/mplayer/mplayer.conf file. Default parameters are shown below (please uncomment lines related to frequency if you want to use them) : screenw=800 screenh=600 #monitor-hfreq=31.5k-50k #monitor-vfreq=50-90 * Lirc : You can choose one of the supported remote controller by editing the file GEEXBOX/etc/remote. Also take care to chose the corresponding ir receiver in the same configuration file. If you want to modify the key binding of your remote controler, look at the file GEEXBOX/etc/lirc/lircrc_REMOTE. * network : You can configure the network in the file GEEXBOX/etc/network. There you can chose the IP address used by the GeeXboX (default is to use DHCP and if it don't work, fall back to 192.168.0.54). You can also specify a login and a password which will be used to connect to windows shares (default will only connect to anonymous shares). You can also declare some NFS mounts in GEEXBOX/etc/nfs. * wifi : By default, GeeXboX tries to autodetect your network settings. If you have both traditionnal NIC and WiFi cards, only the latest will be setup. You may have to modify the /etc/network file in order to fit your network's settings. In this one, 4 lines are related to wireless cards : * PHY_TYPE="auto" # Network physical type (auto|ethernet|wifi) * WIFI_MODE="managed" # Wifi working mode (managed|ad-hoc) * WIFI_WEP="" # Wifi WEP key * WIFI_ESSID="any" # Wifi SSID These lines let you configure most of the settings. You can let autodetection enable or even force the use of ethernet or WiFi adapters. In the same way, this let you choose between the managed and the ad-hoc mode and let you define your WEP key and SSID. * gateway : GeeXboX supports access to the Internet. In the case you've got a connection to the Internet, you may share it with your multimedia box, using a router or a gateway. For this, simply define the gateway IP address in the /etc/network file. * GATEWAY="" # Gateway IP ("" for DHCP or no internet connection) * DNS server : If you want to access to the Internet, GeeXboX may require a DNS server IP address. If you're not using a DHCP server that will do this job, you'll have to specify it by hand in the /etc/network file. * DNS_SERVER="" # DNS Server IP ("" for DHCP or none) * tv configuration : GeeXboX supports TV inputs and tuners. The system hardly tries to autodetect the card and the tuner. You can force the settings and skip the autodetection try. Please modify the /etc/tvcard as described : #TV CARD/TUNER Model (AUTO for autodetection or look at the following urls) #http://www.linuxhq.com/kernel/v2.6/2/Documentation/video4linux/CARDLIST.bttv #http://www.linuxhq.com/kernel/v2.6/2/Documentation/video4linux/CARDLIST.tuner TV_CARD=AUTO TV_TUNER=AUTO TVIN_STANDARD=pal Please let the AUTO parameter whether you want to keep autodetection, or replace it by the number of your card and tuner types, according to the previous URL. Please be careful : in order to force the card and tuner types, you have to know the EXACT REFERENCES of your hardware. Once done, you should be able to use the TV inputs (Composite and S-VHS) of your TV card. In the same way, you can use the tuner to watch TV. For that, you will have to define the region you belongs to and the frequency of the TV channels you want to watch. Once again, simply edit the /etc/tvcard file : # TV Channels # Syntax : CHAN="Channel Frequency:Channel Title" # Example : # CHAN="26:France 2" # CHAN="K08:Canal +" # TV Channels List # Available : france, europe-east, europe-west, us-bcast, us-cable CHANLIST=france Please be careful when editing channels and simply use the same syntax as described above and TV channels should be present in the main menu. * audio configuration : GeeXboX supports both analog and digital audio output through regular JACK connectors or RCA SPDIF one. By default, output is set to analog. You can change this, by editing the /etc/audio file : # Output using SPDIF (yes/no), otherwise ANALOG output SPDIF=no Remember that you will need to set your output to SPDIF if you want to connect your soundcard to an external amplifier for decoding AC3/DTS streams (using passthrough mode). * video post-processing : Post-Processing is a software way to get a smoother and more accurate render of your videos. It however consumes a lot of CPU time to magnify pictures but, as a result, it looks far better. Using MPlayer internal filters, GeeXboX lets you make h/v deblocking, deringing and auto luminance to enhance your image. By default, post-processing is disabled to avoid lagging on small configurations. You can enable it simply by editing the /etc/mplayer/mplayer.conf file : # Set Post Processing (h deblock, v deblock, dering, auto luminance) # Consumes CPU power, disabled for low configs, uncomment to enable it. #vf=pp=hb:a/vb:a/dr:a/al:a * DXR3/Hollywood+ cards : Users with this kind of hardware decompression card does NOT even need to have a video board and sound card to use GeeXboX. On the drawbacks, only the tvout connector can be used with DXR3 cards (no CRT display). You may have to set the required image norm (PAL/NTSC) in the /etc/tvout file and the kind of audio output you want to use (Analog or SPDIF) in /etc/audio. * Radio configuration : If your TV-card has built-in FM radio tuner, GeeXboX can support playing the radio. You have to modify the GEEXBOX/etc/radio file to have "RADIO=yes" if you want to use the radio. There is no hardware auto- detection, so setting this to 'yes' without a TV-card-based FM radio will put unnecessary menu items on your GeeXboX screen. The GEEXBOX/etc/radio file also has the radio station definition. There are a number of examples in the file, which simply include the radio frequency and the name of the station. Please be careful when editing channels and simply use the same syntax as the examples and the radio stations should be present in the main menu under "LISTEN RADIO". Since the radio application itself is not part of MPlayer, there is separate access to the volume. Please note that the volume that is being increased or decreased is Master volume. Before switching back to TV or video viewing, or music playing, the volume should be re-adjusted. * UPnP File Sharing : UPnP stands for Universal Plug & Play and is a network protocol aiming at providing the autodiscovery of devices and services of your Home Network. The UPnP A/V (for Audio/Video) norms defines several profiles for devices to easily share multimedia files and lets them being played. The UPnP Media Server profiles represent all of the devices that are able to share files to devices implementing the UPnP Media Player or UPnP Media Renderer profiles. The GeeXboX embeds a UPnP Control Point software that is able to auto-discover all UPnP Media Servers from your Home network and it simply mounts their contents to a dedicated mount point (/mnt/UPnP). This way, you just have to share contents using a compliant UPnP Media Server software and they'll be automatically accessible from GeeXboX. For more info about UPnP and some media servers usage, please go to http://www.geexbox.org/wiki/index.php/Accessing_to_UPnP_Contents * DVB cards GeeXboX has a support for various types of DVB cards (Terrestrial, Cable, ATSC and Satellite) either in PCI or USB. Please note that for now, only one DVB adapter is usable at a time. Some DVB devices (especially USB ones) may require an external proprietary firmware to be loaded in the mean time as the driver to be usable. You may have a look at the LinuxTV DVB Wiki (http://linuxtv.org/wiki/index.php/Main_Page) to see if you're card requires one or not and if so, which one it is. Some firmwares can be fetched directly from the LinuxTV website (http://linuxtv.org/download/firmware/), otherwise may be included in the Windows drivers archive. See the GeeXboX firmware loader documentation to see how to get them loaded for you. For each card, the list of channels is available through the MPlayer's open menu. Nevertheless, there's no way to auto-discover these channels. Thus, adding the list of DVB channels to GeeXboX can be done in several ways : - using an existing channel list : MPlayer needs to have a working channels.conf file to use DVB. This file can be generated through the utilities provided by the dvb-apps package. Simply use a Linux box that has a DVB card configured, download the linuxtv-dvb-apps tarball from http://www.linuxtv.org/download/dvb/ , compile it and create the config file using the "scan" executable, in "zap" format (which is the default as of dvb-apps 1.1.0). For example, for a DVB-S (Satellite) card using Astra-19.2E as the provider: wget http://www.linuxtv.org/download/dvb/linuxtv-dvb-apps-1.1.0.tar.bz2 tar jxvf linuxtv-dvb-apps-1.1.0.tar.bz2 cd linuxtv-dvb-apps-1.1.0/util/scan make ./scan -x 0 dvb-s/Astra-19.2E > channels.conf The "-x 0" flag is here to restrict the scan to Free To Air channels only. Please always do so, as MPlayer do not support encrypted DVB channels. According to your type of DVB card, choose either a file from the "dvb-s" "dvb-c", "dvb-t" or "atsc" directories and ask for a scan. Then, simply copy the channels.conf file you've just created to the /etc/mplayer directory in the GeeXboX generator tree, and rebuild away. - using an existing transponder list : the procedure is highly similar to the one defined just before but with no scan. This time, the scan will be done at GeeXboX boot but this way, you do no more require another Linux system to generate the channels.conf file. To do so, you simpy have to check at : http://linuxtv.org/cgi-bin/viewcvs.cgi/dvb-apps/util/scan/ According to your DVB card type (S/T/C/ATSC), check for the good directory and grab the transponder frequency list that fit your needs. Then simply rename the file to dvb.conf and copy it to /etc. Then, rebuild a new ISO using the generator. A bootup, if GeeXboX detects a valid transponder file in /etc/dvb.conf, it will be used to scan for DVB channels and will generate the /etc/mplayer/channels.conf file itself. WARNING : Scanning can be slow according to the number of devices to be scanned and will be done each time you boot GeeXboX if using it as a LiveCD. It is highly recommended that you do it once only, then copy the generated /etc/mplayer/channels.conf file somewhere else and rebuild an ISO using generator, following the first method or to install it on disk. - using installator : this is for sure the easiest solution but requires you to install GeeXboX to disk. During the installation process, if a valid DVB device is recognized by the system, the installator script will ask you if you want to scan for DVB channels. The installator contains the complete list of transponders frequencies. That way, you just have to select your DVB device type and the transponder file you want to use for GeeXboX to scan. The channels.conf file will then be automatically generated. | GENERATION | ~~~~~~~~~~ First have a look at the personalization section just above. Then basically you can generate the iso under Linux by launching ./generator.sh or under windows by launching generator.exe | EXTRA SUBTITLE FONTS | ~~~~~~~~~~~~~~~~~~~~ First make sure you font is not included in offical GeeXboX package, by using the generator and looking up your font in the section above. Most fonts are already included in offical package, some are supported but not included because of their excessive size (Chinese fonts for example). * General support: To add support for new fonts you should extract your font into font directory and add your font name to language/lang.conf FONTS variable. * Chinese support: To include Chinese fonts in your generated geexbox iso you should get either the big5 or the gb2312 font from MPlayer contributed fonts: http://www1.mplayerhq.hu/MPlayer/contrib/fonts/chinesefonts/ and unpack and copy into generator ./font/big5 or ./font/gb2312 the directory which ends with `24` (font size 24) For example if you wish to use the 'gb2312 kai' font: - GNU/Linux users: wget http://www1.mplayerhq.hu/MPlayer/contrib/fonts/chinesefonts/gb2312-kai.tar.bz2 tar -jxf gb2312-kai.tar.bz2 mv gb2312-kai/gkai00mp24 ../path/to/generator/font/gb2312 - Windows users: Download http://www1.mplayerhq.hu/MPlayer/contrib/fonts/chinesefonts/gb2312-kai.tar.bz2 Open it up with WinZip And extract gb2312-kai\gkai00mp24 directory from the archive into ..\path\to\generator\font\gb2312 * Korean support: Similar to Chinese font support, only you can get the euc-kr font from: http://www1.mplayerhq.hu/MPlayer/contrib/fonts/korean/ A good choise will be to use dotum20.tar.gz euc-kr font, and unpack and copy into generator ./font/euc-kr in similar way mention above. | INSTALLATION | ~~~~~~~~~~~~ First you need to create a FAT16/32 or EXT2/3 partition with at least 16 MB of free space. Then you can install the GeeXboX under Linux by launching ./installator.sh And then responding to all the questions. Be carefull during this step. Read twice each question and stop installing if you don't understand one of the question. But the easiest way to install GeeXboX is still to boot it from CD and type "install" at isolinux boot prompt. | PXE BOOT | ~~~~~~~~ Yes, the GeeXboX is able to boot from the network on a diskless station ! To achieve this you will need : - a DHCP server - a TFTP server - a NFS server - a PXE capable station :-) * Using a GNU/Linux system : ------------------------ First configure your dhcp server to send PXE boot info. Here is an example with isc dhcp : allow booting; allow bootp; subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.128 192.168.0.192; option subnet-mask 255.255.255.0; option broadcast-address 192.168.0.255; next-server 192.168.0.1; filename "/tftpboot/GEEXBOX/boot/pxelinux.0"; } The next-server option is the address of the TFTP server. Then configure your TFTP server (such as atftpd) to server the /tftpboot directory and copy a full GEEXBOX tree in this directory. For example you can copy the content of a GeeXboX CD from a linux WITH THE CDROM TRANSPARENT DECOMPRESSION ENABLED !! (to verify this, look at the sbin/init file in the GeeXboX tree and verify that it do not contain garbage) If you've built the GeeXboX yourself from sources, you can also generate the GEEXBOX tree with make pxe. Then you should edit the file /tftpboot/GEEXBOX/boot/pxelinux.cfg/default to set nfsroot to the right NFS path to the GEEXBOX tree. Finaly set up your NFS to export the GEEXBOX tree with a /etc/exports containing something like this : /tftpboot/GEEXBOX (ro) and a /etc/hosts.allow containing something like : ALL: ALL That should do the trick. Boot your PXE station and see what happen. * Using a Microsoft Windows system : -------------------------------- In order to boot in PXE mode from a Windows host, you'll need the following software : * An TFTP and a DHCP Server (for example "tftpd32", available at http://tftpd32.jounin.net/) * An NFS Server (for example "Allegro NFS server", available at http://opensource.franz.com/nfs/) * A computer supporting PXE boot mode. Download and uncompress (No need to install) the tftpd32 folder somewhere on your disk. In this example, lets assume it is : C:\tftpd32 Copy the complete GEEXBOX tree in the same directory (C:\tftpd32\GEEXBOX) Start tftpd32 : - Choose the C:\tftpd32 folder for "current directory". - Choose the interface (network card) to be used in "server interface". In the example here it's 192.168.0.1 - Go in "setting" and make sure DHCP server is checked (enabled) - In the "DHCP server" tab, fill in all the box using the following example : (Please refer to some documentation about DHCP all around the net in order to understand) * IP starting pool : 192.168.0.10 * Size of pool : 10 * Boot file : ./GEEXBOX/boot/pxelinux.0 * WINS/DNS server : 192.168.0.254 * Default router : 192.168.0.254 * Mask : 255.255.255.0 * Domain name : mydomain.net - Click "save" to apply modifications. First part is done, you can now boot the client computer (the one starting GeeXboX), and will see it loading until the logo appears. After a while it'll freeze because your NFS server is not set yet. Install "Allegro NFS server" and fill in the boxes following these settings : Exports tab : * Add a "new name" : and call it "/tftpboot/GEEXBOX" * In "path" just below : choose "C:\tftp32\GEEXBOX" folder * In "allowed host list" , choose "all" * "Read write", and "read only user list", choose "root" and "everyone" (if you want some log just check all in the last tab) Apply settings. Don't forget to modify the file : C:\tftp32\GEEXBOX\boot\pxelinux.cfg\default and change the IP address "192.168.0.2" to "192.168.0.1" (or the one you've previously setup). Just start the client computer and now GeeXboX should be running fine. | BUILDING | ~~~~~~~~ First have a look at the configuration section just under (at least the global part). Then basically you can build the iso with : make Or you can directly burn this iso with : make burn When done, you can save disk space by cleaning the build tree : make clean or by doing a full cleaning, even removing downloaded sources : make distclean There's also more advanced commands if you want to hack around the GeeXboX : scripts/get package # download the package scripts/unpack package # unpack and prepare the package scripts/build package # build the package scripts/install package # install the package with the $INSTALL prefix scripts/clean package # clean the package build tree scripts/clean --full package # clean both the package build and source trees make exec # launch directly the GeeXboX in a jail # WARNING: this is a highly experimental feature # use it at your own risks. If you've made a hacked version of the GeeXboX, you can easily build a small tar.bz2 for it with : make dist or a full tar (containing all sources) with : make fulldist or a geexbox generator with : make generator or a geexbox installator with : make installator or a pxe ready tree with : make pxe | CONFIGURATION | ~~~~~~~~~~~~~ * Global options : This is the first thing you should take care of before trying to build the GeeXboX. It stands in the file config/options, and it should be self explanatory. * Linux : This is a classical Linux configuration (packages/linux/linux.conf). You can edit them by hand, or you can also do a scripts/unpack linux and then a make menuconfig -C build/linux-* (or use the method you prefer instead of menuconfig). Then you should backup your build/linux-*/.config into packages/linux/linux.conf. * Lirc : Lirc allows you to control the GeeXboX using a remote controller. First you have to choose the file describing your specific remote in build/lirc-*/remotes (after doing a scripts/unpack lirc) and add it in packages/lirc/install. Then you should choose your device (default is /dev/ttyS0 (COM1)) and the lirc driver and put them in a file called packages/lirc/config/lircd_$REMOTE. Then you can choose your key mapping in the file packages/lirc/config/lircrc_$REMOTE. For each mapping you have to select a button (pike their names in the remote definition file) and associate an action to it. The action is one of MPlayer's actions (you can find a list in the html file build/MPlayer-*/DOCS/documentation.html#commands). | HACKING | ~~~~~~~ The first thing you should look at is the initialization script. In fact there are two initialization scripts. The first one is in packages/initrd/scripts/linuxrc but you shouldn't need to modify it. The second one is in config/options and that's where you may put some customizations. There you can first choose which is the architecture (i386 or PPC) you want to build GeeXboX for. After that, you can perform finnest tuning by specifying a certain kind of sub arch (386, pentium, athlon) in order to optimize the distribution for your specific CPU and gets the best perfomances off. Then the next thing which may interest you is the creation of a new "package". A package is just a bunch of scripts which have to follow some rules. All the scripts have to take place in a directory named as the program you want to "package", itself in the packages directory. Here is a list of the scripts you may create : - url : just a list of urls where to get the program sources. - unpack : what to do after unpacking the sources. For example, you can modify some configuration files. This does not include applying patches. - need_build : called when the package as allready been built, in order to be sure that it don't need to be rebuilt. It should remove the file .stamps/"package name"/build if the package need to be rebuilt. - build : all the steps needed to build the program. - install : all the steps needed to install the program. The installation prefix should be $INSTALL. In addition, the package main directory may contain extra subdirs : - config : where all config files belong. These files may be used either by the build script to compile the package or by the install script to be put to the system's /etc directory. - scripts : this subdir may contain runtime initialization scripts related to the current package which should be installed by install script - patches : this subdir may contain patches to be applied to the sources of the package, at unpack time. - sources : if files are present here, they will be automatically copied into the package's build tree. - init.d : contains initialization scripts to be launched at runtime. You also have to remember that software which run on the GeeXboX have to be compiled with the uClibc gcc wrapper. Fortunately, the GeeXboX toolchain is smart enough to automatically build all added packages using the uClibc gcc wrapper itself. Do not forget to ask for your package's compilation and installation by explicitely asking for it in the scripts/gentree build script. Finally, the best way to make a package is to look how other packages are done. | LICENSE | ~~~~~~~ All the programs used by the GeeXboX are protected by their respective license. They all are free software and most of them are covered by the GNU General Public License. The GeeXboX itself, meaning all the scripts which are used in the building process, are covered by the GNU General Public License. geexbox-0.98.7/COPYING0000644000175000017500000004313310335100766013322 0ustar aurelaurel GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) 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 this service 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 make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. 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. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute 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 and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), 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 distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the 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 a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, 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. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE 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. 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 convey 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 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision 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, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This 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 Library General Public License instead of this License. geexbox-0.98.7/VERSION0000644000175000017500000000000610335102115013315 0ustar aurelaurel0.98.7geexbox-0.98.7/ChangeLog0000644000175000017500000003725110335102156014040 0ustar aurelaurel2005-11-11 Aurelien Jacobs * new public release (version 0.98.7) 2005-11-01 Benjamin Zores * added support for UPnP A/V Media Server browsing. * added support for DVB (Sat, Cable, Ter) cards (PCI and USB). * removed buggy RT2570 USB driver. 2005-10-28 Amir Shalem * updated linux to 2.6.14. * added support for Prism54 WiFi chipsets. * added support for Intel IPW2100/IPW2200 WiFi chipsets. 2005-08-29 Aurelien Jacobs * updated linux to 2.6.13. 2005-08-24 Benjamin Zores * added support for RT2570 USB WiFi chipsets. * added udev external firmwares auto-loader. 2005-08-15 Aurelien Jacobs * new public release (version 0.98.6) 2005-07-18 Aurelien Jacobs * integrate udev and replace our hotplug script. 2005-07-13 Benjamin Zores * compress kernel, binaries and grub archives using LZMA algorithm. 2005-07-05 Alexis Saettler * added support for CPU frequency scaling on laptops. 2005-07-03 Benjamin Zores * added support for MusePack codec (.mpc files) 2005-06-20 Andrew Calkin * use native IDE CD drivers instead of IDE-SCSI layer. * support for X-in-1 cards readers. 2005-06-07 Amir Shalem * added FLTK version of the generator. 2005-06-05 Andrew Calkin * added support for digimatrix remote. 2005-04-26 Benjamin Zores * added channels scanner for analog TV cards. 2005-04-17 Benjamin Zores * updated MPlayer to 1.0pre7. * added HTTP server with CGI support for Web Management. 2005-04-15 Kevin Foss * added radio card support. 2005-04-12 Aurelien Jacobs * powerpc architecture support. 2005-04-10 Benjamin Zores * added support for CX88 TV card chipsets. 2005-03-03 Benjamin Zores * upgrade linux to 2.6.11. 2005-01-13 Aurelien Jacobs * updated uClibc to 0.9.27. 2004-12-29 Aurelien Jacobs * new public release (version 0.98.5) 2004-12-24 Aurelien Jacobs * updated MPlayer to 1.0pre6. 2004-11-25 Amir Shalem * support for cross-compiling GeeXboX under FreeBSD. 2004-11-24 Benjamin Zores * added new official theme (graphics by Nicolas Staszak). 2004-11-17 Benjamin Zores * added TVOut support for i810/i815 based cards. 2004-11-14 Amir Shalem * complete rewrite of installator and support for GRUB as a bootloader (standalone or multiboot). 2004-10-13 Benjamin Zores * switch BusyBox to final 1.00 release. 2004-10-10 Benjamin Zores * added drivers for RT2500 i802.11 b/g chipset. 2004-09-17 Aurelien Jacobs * added a full cross-compilation toolchain. 2004-09-10 Benjamin Zores * updated VESA framebuffer driver to the new vesafb-tng. 2004-09-10 Alexis Saettler * switch BootSplash to FBSplash. 2004-09-05 Alexis Saettler * added support for Askey remote. 2004-09-03 Benjamin Zores * updated ALSA lib and utils to 1.0.6 * updated Samba to 3.0.6 * removed acx100 wireless drivers (need non free firmware to work). 2004-09-03 Aurelien Jacobs * added module-init-tools package for 2.6 modules. * switch the 2.4 LPP patch to BootSplash. * updated uClibc to current CVS for Linux 2.6 support. 2004-08-18 Benjamin Zores * ported GeeXboX to linux 2.6.8.1 kernel. * linux image and initrd now in gzip format, nor bzip2. * removed alsa-driver package (now included in kernel). * removed at76c503 package (now included in kernel). * updated em8300 drivers to CVS snapshot for 2.6 compatibility. 2004-08-17 Samuel Suárez * added Avermedia remote/receiver support. 2004-08-14 Sass Tabakajev * added estonian translation. 2004-08-12 Aurelien Jacobs * new public release (version 0.98) 2004-08-04 Benjamin Zores * added chapter selector for DVD and Matroska files. 2004-07-31 Alexis Saettler * added geexbox-generator Debian package 2004-07-26 Aurelien Jacobs * updated to busybox 1.00-rc2. 2004-07-25 Aurelien Jacobs * updated to busybox 1.00-rc1. * added dts decoding support. 2004-07-22 Aurelien Jacobs * separated remote selection from ir receiver selection. 2004-07-20 Bernardo Santos * added Gradiente D-10 remote support. 2004-07-18 Benjamin Zores * added support for SPDIF output. 2004-07-15 Aurelien Jacobs * updated to MPlayer 1.0pre5. 2004-07-14 Benjamin Zores * updated to ALSA 1.0.5a. * updated to Samba 3.0.4. * updated to nvtv 0.4.7. 2004-07-10 Benjamin Zores * added support for USB and SideWinder joysticks. 2004-06-03 Benjamin Zores * added drivers for wireless TI ACX100 chipsets. 2004-06-01 Benjamin Zores * added drivers for wireless RT2400 chipsets. 2004-05-28 bufa * added LG remote support. 2004-05-12 Benjamin Zores * added telnet server. 2004-05-09 Aurelien Jacobs * added libirman. 2004-05-08 Aurelien Jacobs * updated to syslinux-2.09. * updated to lirc-0.4.0pre4. * now use lirc to manage Ati Remote Wonder. 2004-05-02 Benjamin Zores * added vidix driver for CLE266 (VIA Unichrome) 2004-04-29 Aurelien Jacobs * updated to MPlayer-1.0pre4. * updated to linux-2.4.26. * updated to ALSA 1.0.4. * updated to BusyBox 1.0pre10 2004-03-31 Serge Gebhardt * added fbi for image viewing support. 2004-03-16 Aurelien Jacobs * really working v4l2 for bt8x8 and saa7134. 2004-03-10 Aurelien Jacobs * updated nvtv to version 0.4.6. 2004-03-05 Aurelien Jacobs * added MPEG hardware decompression for DXR3. 2004-03-02 Benjamin Zores * added Serial ATA controllers support. 2004-02-24 Benjamin Zores * added 3COM/NetGear Gigabit ethernet cards support. * switched to V4L2 API with Connexant chipsets support. 2004-02-23 barb3tta * added italian README translation. 2004-02-20 Benjamin Zores * updated to linux-2.4.25. 2004-02-06 Matt Rinsch * added Packard Bell Fast media remote and receiver support. 2004-02-05 Aurelien Jacobs * added streaming support. 2004-02-04 Benjamin Zores * added BT8x8 cards support. 2004-01-25 BWare * added wifi support. 2004-01-23 Aurelien Jacobs * updated uClibc to 0.9.26. 2004-01-15 Aurelien Jacobs * added matroska support. 2004-01-14 Madarassy Lszl * added hungarian translation. * patched s3switch to support virge gx2. 2004-01-07 Benjamin Zores * added DXR3/Hollywood+ cards support (TVOut only for now). 2003-12-17 Benjamin Zores * added new Xmas theme for 0.96 release 2003-12-16 Yogi * added polish translation. 2003-12-15 Michele Schaeuble * added german translation. 2003-12-14 Aurelien Jacobs * alsa updated ALSA to 1.0.0rc2. 2003-12-11 Aurelien Jacobs * updated to MPlayer 1.0pre3. * updated to busybox 1.00-pre4. 2003-12-11 rheve * added animax remote support. 2003-12-04 Aurelien Jacobs * updated to linux-2.4.23. * added PXE boot support. 2003-11-27 Aurelien Jacobs * added NFS support. 2003-11-23 Kiril Jovchev * added bulgarian translation. 2003-11-22 Benjamin Zores * added experimental DirectFB support. 2003-11-12 Cristi S * added romanian translation. 2003-10-19 Benjamin Zores * added new halloween theme for 0.95 release. 2003-10-16 Aurelien Jacobs * updated MPlayer to 1.0pre2. 2003-10-16 Guillaume Roche * added menu's files filter. 2003-09-28 Benjamin Zores * added the Win32 version of the generator. 2003-09-23 Aurelien Jacobs * added autoplay. 2003-09-15 laclasse * added creative PC-DVD remote support. 2003-09-15 freddy ARNAULX * added sony RM-S6 remote support. 2003-09-10 Benjamin Zores * replaced oftpd by bftpd. 2003-09-06 Aurelien Jacobs * updated to linux 2.4.22. * updated to uClibc 0.9.20. * updated to MPlayer 1.0pre1. 2003-09-02 Benjamin Zores * replace OSS sound drivers by ALSA ones. 2003-08-30 Aurelien Jacobs * added genext2fs to be able to build the GeeXboX without being root. 2003-08-29 Aurelien Jacobs * added XCD support. 2003-08-25 Benjamin Zores * upgraded Samba to 3.0rc1 with WinXP shares support. * set resolution to 800x600 to fix some TV-Out bug with DVD playback. 2003-08-24 ClycioC * added brasilian portuguese translation. 2003-08-23 Aurelien Jacobs * updated MPlayer to the CVS version. 2003-08-21 Nikolas Garofil * added dutch translation. 2003-08-21 Benjamin Zores * added ftp server. 2003-08-18 kim * added finnish translation. 2003-08-14 Benjamin Zores * added zlib library to read files with compressed headers. 2003-08-13 kim * added swedish translation. 2003-08-12 c0p0n * improved spanish translation. 2003-08-09 zarta * added spanish translation. 2003-08-02 Aurelien Jacobs * fixed a bug which prevented to play file whose name contain a quote. 2003-07-30 Aurelien Jacobs * installator is now available directly from the GeeXboX cd, by typing install at boot prompt. 2003-07-29 Aurelien Jacobs * updated busybox to 1.00-pre1. * added DHCP network auto-configuration. 2003-07-28 Eva Mikulcikova * added czech and slovak translation. 2003-07-28 Aurelien Jacobs * added lirc_serial module to support homemade receiver. 2003-07-22 Aurelien Jacobs * updated samba to 3.0.0beta3. * added autodetection of all the shares on the network. 2003-07-21 Benjamin Zores / Mickal Bugnier * added new theme: movies. 2003-07-20 Benjamin Zores * added Samba Network Shares support. 2003-07-18 Aurelien Jacobs * merged rp9codecs and dmocodecs into extralite to use the new MPlayer upstream binary codecs package. 2003-07-17 Plom * added leadtek tv2000 remote support. 2003-07-15 Benjamin Zores * replace kernel modules support by build-in drivers. * added support for Ethernet network cards. 2003-07-15 Andrighetto Riccardo * added Italian langage support for menu and help files. 2003-07-13 Aurelien Jacobs * added the installator version. 2003-07-04 Benjamin Zores * replace SysLinux by IsoLinux to avoid floppy emulation. 2003-07-02 Aurelien Jacobs * disabled many unused video filters in MPlayer. 2003-06-29 Aurelien Jacobs * added runtime subtitle file selection. 2003-06-25 Aurelien Jacobs * new public release (version 0.90-3) 2003-06-24 Aurelien Jacobs * tested and improved ATI Remote Wonder support. 2003-06-22 Herv Urbain * added support for Realmagic remote controller. 2003-06-22 Aurelien Jacobs * better playtree interface (Jump to menu). 2003-06-19 Aurelien Jacobs * added runtime DVD subtitle selection. 2003-06-18 Aurelien Jacobs * added rescan-scsi-bus to correctly handle firewire devices. 2003-06-18 Serial Cleaner * added hauppauge remote support. 2003-06-17 Aurelien Jacobs * added ATI Remote Wonder support (not tested at all). * added runtime audio channel selection. 2003-06-15 Aurelien Jacobs * MPlayer menu now respond to all commands. 2003-06-14 Aurelien Jacobs * updated linux up to version 2.4.21. 2003-06-12 Herv Urbain * added support for Logitech remote controller. 2003-06-12 Benjamin Zores/Aurelien Jacobs * more classical font for subtitles. 2003-06-11 Aurelien Jacobs * allowed on the fly aspect change. 2003-06-10 Aurelien Jacobs * added patch to remove some encoding parts of libavcodec. 2003-06-09 Aurelien Jacobs * added the generator version (win32 generator still not usable). 2003-06-08 Benjamin Zores * added Windows Media 9 codecs support. 2003-06-07 Benjamin Zores * added patch to use cyberblade's cards under vidix when using OverScan TV-Out's mode on EPIA 800. 2003-06-06 Aurelien Jacobs * reverted to an older acpi patch. * added patch for displaying I420 streams under vidix with radeon cards 2003-06-04 Serial Cleaner * added setcd to reduce CD drives speed. 2003-06-03 Aurelien Jacobs * added patch for displaying I420 streams under vidix with mga cards. 2003-06-03 Benjamin Zores * added RealVideo RV 20/30/40 codecs support. * added RealAudio Sipro/Cook/ATRAC3 codecs support. * added patch for displaying I420 streams under VESA mode. * added patch for displaying I420 streams under vidix with mach64 cards * added locales for easy langage change. 2003-06-02 Aurelien Jacobs * integreted iscd for better CD drives detection. 2003-05-29 Aurelien Jacobs * changed the stop/eject/quit scheme. 2003-05-28 Aurelien Jacobs * new public release (version 0.90-2) 2003-05-27 Benjamin Zores * added S3 Savage chipset TV-Out support. 2003-05-25 Aurelien Jacobs * changed mountpoints naming. * added support for SCSI/USB/firewire disks (no hotplug). 2003-05-22 Aurelien Jacobs * added some patches to allow compilation with gcc 3.3. * added some adaptec scsi support. 2003-05-21 Aurelien Jacobs * added firewire support. 2003-05-20 Aurelien Jacobs * merged the normal and acpi versions. 2003-05-19 Aurelien Jacobs * switched to 2.4.21-rc2 kernel (to support EPIA M9000 soundcard). * added USB keyboard support. 2003-05-18 Aurelien Jacobs * modularized kernel. * patch for audigy soundcards * more soundcards support. 2003-05-16 Aurelien Jacobs * first public release (version 0.90-1) geexbox-0.98.7/Makefile0000644000175000017500000000065710335100766013733 0ustar aurelaureliso: scripts/iso burn: iso scripts/burn dist: scripts/dist fulldist: scripts/dist full generator: scripts/generator installator: scripts/installator pxe: scripts/pxe exec: iso scripts/exec sum: iso generator dist fulldist scripts/sum md5sum scripts/sum sha1sum clean: scripts/clean distclean: rm -rf .stamps build.* sources geexbox* .PHONY: iso burn dist fulldist generator installator exec clean distclean geexbox-0.98.7/DOCS/0000755000175000017500000000000010335100766013013 5ustar aurelaurelgeexbox-0.98.7/DOCS/README_cz.txt0000644000175000017500000003537610335100766015223 0ustar aurelaurel ooooo oo o o oo o M" "Mo Mo oM" M Mo oM" M oM""Mo oM""Mo "Mo" Mo"""o oM""Mo "Mo" M """M MooooMM MooooMM oMMo M "M M M oMMo "o oM M o M o oM Mo M oM M M oM Mo "MoooM"M "MooM" "MooM" M" "M M"ooo" "MooM" M" "M | O produktu | ~~~~~ GeeXboX je druh "divx box" softwaru. Jedn se o bootovac CD umoujc sledovn film nebo poslouchn hudby. Podporuje celou adu formt jako avi, mpeg, divx, ogm, rm, mp3, ogg, dvd, vcd , cdda. Obsahuje tak podporu IR dlkovch ovlada a TV vstup na uritch typech grafickch karet. Tato distribuce obsahuje nstroje potebn k vytvoen vlastnho GeexboX iso souboru. GeeXboX is a kind of "divx box" software. In fact, it is a stand-alone boot CD which allows you to watch movies or listen to music. It supports many formats, such as avi, mpeg, divx, ogm, rm, mp3, ogg, dvd, vcd and cdda. It also supports some IR remote controllers and TV-Out for some graphic cards. This archive contain the needed scripts to rebuild an iso image of the GeeXboX. | Poadavky na systm | ~~~~~~~~~~~~ Pro vytvoen GeeXboX iso souboru potebujete jedno z nsledujcch: - GNU/Linux systm s mkisofs a mkzftree. - MAC OS X systm s mkisofs a mkzftree. - MS Windows systm. K instalaci GeeXboX potebujete: - GNU/Linux systm s syslinux. Pro vytvoen GeeXboXu jsou zapoteb nsledujc standardn nstroje: - funkn GNU/Linux systm. - gcc C compiler. - GNU make - patch command. - nasm assembler. - bzip2 a gzip. - mkfs.ext2 a mkfs.vfat - wget download tool (nen zapoteb pokud mte plnou verzi GeeXboX balku). - mkisofs a mkzftree pro vytvoen iso souboru. - mkzftree pro komprimaci soubor v iso souboru. - cdrecord (pro vyplen iso souboru). A tak piblin 500 MB volnho diskovho prosoru. | Vlastn nastaven | ~~~~~~~~~~~~~~~ Pokud je GeeXboX nainstalovn na pevn disk nebo generovn je velice jednoduch vytvoit osobn nastaven. Mete pidat dal kodeky jako napklad rv9 nebo wmv9 pouhm nakoprovnm do adrese GEEXBOX/codecs. Tyto kodeky mete nalzt v balcch na http://www.geexbox.org/releases/geexbox-extra-codecs-nonfree.tar.gz Dle upravit velk mnostv nastaven editac textovch konfiguranch soubor. * Jazyky: Mete zvolit preferovan jazyk nabdky nsledujcmi zpsoby: - uivatel GNU/Linux: Ped sputnm editujte dek "LANG=en" skriptu generator.sh na v preferovan jazyk nap "LANG=cz" - Uivatel Microsoft Windows : Pi sputn genertoru vyberte v rozbalovac nabdce poadovan jazyk. Poznmka : Toto nem vliv na volbu jazyka v DVD (vce v sekci o MPlayeru ). Pro seznam podporovanch jazyk nahldnte do adrese "language". Pokud nen V jazyk v nabdce mete jej vytvoit peloenm ji existujcch soubor menu language/menu_LANG.conf a language/help_LANG.txt, a pidnm LANG do language/lang.conf. * MPlayer : Zde mete provdt nejvce nastaven a customizac. Nastaven se provdj pomoc souboru packages/MPlayer/mplayer.conf. Pravdpodobn budete chtt zmnit hodnoty jako nap. velikost OSD fontu. Mete pidat dal parametry jako nap. vchoz jazyk pro DVD (eg: alang=cz,en). Nejlepm mstem pro zskn parametr je manul MPlayeru. Uivatel linuxu (man -l build/MPlayer-*/DOCS/mplayer.1). Mete tak nahldnout na dokumentaci ( build/MPlayer-*/DOCS nebo na http://mplayerhq.hu/DOCS/). Dalm souborem kde je dobr provdt pravy je packages/MPlayer/menu.conf. Mete odebrat volby, kter nepotebujete nebo jej peloit do vaeho jazyka. Poslednm souborem doporuenm k editaci je packages/MPlayer/build kter obsahuje vbr monost MPlayeru. * tv vstup : TV vstu je dosaen s pomoc drobnch aplikac urench pro dan typy grafickch karet V souasn dob pouvme atitvout pro karty ATI, s3switch pro karty S3 a nvtv pro karty nVidia (mon i karty intel i810 a karty 3dfx cards). Nastaven tchto pomocnch program je provedeno v config/tvout. Tam mete nastavi V TV standard (pal, ntsc...) a nastavit specieln volby pro nvtv. Zde mete tak definovat pomr stran (nap. 4:3 nebo 16:9) toho doclte parametrem: TVOUT_ASPECT="4:3" Tento parametr bude pouit pro oba (TVOut i klasick (CRT/TFT)) vstupy. V ppad e mte nestandardn monitor (Wide screen nebo videoprojektor) ete nastavit poadovanou vku/ku stejn jako obnovovac frekvenci. Parametry nastavujeme v souboru /etc/mplayer/mplayer.conf . Vchoz hodnoty jsou uvedeny ne (odkomentujte dky u frekvenc pokud je chcete pout) : screenw=800 screenh=600 #monitor-hfreq=31.5k-50k #monitor-vfreq=50-90 * Lirc : Mete vybrat jeden z podporovanch typ dlkovch ovlada editac souboru GEEXBOX/etc/remote. Dbejte na sprvn vbr pijmacho zazen v tomt souboru Pokud chcete zbnit piazen tlatek Vaeho ovladae podvejte se do souboru GEEXBOX/etc/lirc/lircrc_REMOTE. * S : Nastaven st se provd v souboru GEEXBOX/etc/network. Zde mete nastavit IP adresu pro GeeXboX (vchoz nastaven je pout DHCP a pohud proces sele, je nastavena adresa 192.168.0.54. Lze zde tak nastavit uivatelsk jmno a heslo pro pstup ke sdlenm slokm systmu windows (vchoz nastaven se pipoj pouze k anonymnm sdlenm). Parametry pro NFS se nastavuj v souboru GEEXBOX/etc/nfs. * wifi : GeeXboX se pokus automaticky zjistit sov nastaven. Pokud mte v systmu klasickou NIC a WiFi kartu pouze posledn v ad bude nastavena. Pro pesn nastaven vyhovujc Vaemu prosted muste upravit soubor /etc/network. Nsledujc dky se tkaj konfigurace WiFi : * PHY_TYPE="auto" # Network physical type (auto|ethernet|wifi) * WIFI_MODE="managed" # Wifi working mode (managed|ad-hoc) * WIFI_WEP="" # Wifi WEP key * WIFI_ESSID="any" # Wifi SSID Toto by mlo postaovat pro nastaven. Mete zvolit autodetekci nebo dokonce zvolit pouvn pouze WiFi nebo ethernetu. Stejnm zpsobem lze vybrat typ WiFi mdu mezi managed a ad-hocvetn nastaven WEP kle a SSID. * gateway : GeeXboX podporuje pstup na s internet. Pokud mte na sti dostupn internetov pipojen mete ho sdlet pro GeeXBox pouitm routeru nebo brny. Pro tuto monost editujte IP adresu brny v souboru /etc/network file. * GATEWAY="" # IP adresa brny ("" pro DHCP nebo dn pstup na internet) * nastaven TV : GeeXboX umouje pouit TV tuner. Systm se sna rozpoznat jak televizn tuner mte. Mete peskoit autodetekci vepsnm parametr Vaeho tuneru v /etc/tvcard nsledujcm zpsobem : #TV CARD/TUNER Model (AUTO pro autodetekci nebo zadejte hodnoty z nsledujcch odkaz) #http://www.linuxhq.com/kernel/v2.6/2/Documentation/video4linux/CARDLIST.bttv #http://www.linuxhq.com/kernel/v2.6/2/Documentation/video4linux/CARDLIST.tuner TV_CARD=AUTO TV_TUNER=AUTO TVIN_STANDARD=pal Nechte parametr AUTO pokud si pejete aby se systm pokusil rozpoznat Vai kartu, nebo jej nahrate slem Va karty v souladu z odkaz uvedenmi ve. Pozor v ppad e nepouijete parametr AUTO muste znt pesn typ Va karty!. Pokud mte nastaveno mli by jste bt schopni pijmat TV signls (Composite a S-VHS) na va TV kart. Stejn jako sledovat televizn vysln. Pro nalazen program muzte zadat region a frekvenci kanlu, kter chcete sledovat. To lze provst v souboru /etc/tvcard : # TV programy # Syntaxe : CHAN="Frekvence:Nzev programu" # Ukzka : # CHAN="29:France 2" # CHAN="K08:Canal +" # TV Channels List # Available : france, europe-east, europe-west, us-bcast, us-cable CHANLIST=france Jednotliv programy by se mli objevit v zkladn nabdce. * audio nastaven : GeeXboX podporuje analogov i digitln audio vstup pes klasick JACK nebo RCA SPDIF. Vchoz vstup je nastaven analogov. Tuto hodnotu mete zmnit editac souboru /etc/audio : # Output using SPDIF (yes/no), otherwise ANALOG output SPDIF=no Pamatujte, e muste nastavit SPDIF pokud chcete zvukovou kartu pipojit k externmu zesilovai pro dekdovn AC3/DTS stop. * DXR3/Hollywood+ karty : Uivatel s tmto druhem hardware ani nemus mt video a zvukovou kartu k pouvn GeeXboXu. Ve relu lze pout pouze TV out s tmito kartami. Mon bude zapoteb nastavit poadovanou normu (PAL/NTSC) v souboru /etc/tvout fstejn jako audio vstup (Analog nebo SPDIF) v /etc/audio. | Generovn | ~~~~~~~~~~ Nejprve si prosm pette sekci o nastaven viz ve. Potom jednodue vygenerujte iso soubor v Linuxu sputnm skriptu ./generator.sh nebo ve windows aplikac generator.exe | Instalace | ~~~~~~~~~~~~ K instalaci je zapoteb vytvoit diskov oddl FAT16 s alespo 16MB volnho msta. Pak je mon nainstalovat GeeXboX pod linuxem sputnm skriptu ./installator.sh S nslednm zodpovzenm vech nastavujcch dotaz. Dbejte zven opatrnosti v prbhu instalace, radji perute instalaci pokud si nejste jisti co dlte. | PXE Bootovn | ~~~~~~~~ GeeXboX je schopn bootovat ze st na bezdiskov stanici. K dosaen tohoto stavu budete potebovat: - DHCP server - TFTP server - NFS server - PXE kompatibiln stanici :-) Nejprve je nutn nakonfigurovat V DHCP server pro zasln PXE bootovacch informac Zde je ukzka s isc dhcp: allow booting; allow bootp; subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.128 192.168.0.192; option subnet-mask 255.255.255.0; option broadcast-address 192.168.0.255; next-server 192.168.0.1; filename "/tftpboot/GEEXBOX/boot/pxelinux.0"; } Dal nastaven je adresa TFTP serveru. Nakonfigurujte TFTP server na adres /tftpboot a nakoprujte vechny GeeXboX soubory do tohoto adrese. Napklad mete nakoprovat obsah GeeXboX CD z linuxu v mdu TRANSPARENT DECOMPRESSION ! pro oven nahldnte do souboru sbin/init a zkontrolujte e je struktura normln. Pokud jste vytvoili GeeXboX ze zrdrojovch soubor mete strukturu GeeXboXu vygenerovat pomoc If you've built the GeeXboX yourself from sources, you can also generate make pxe. Pot mete editovat soubor /tftpboot/GEEXBOX/boot/pxelinux.cfg/default pro nastaven nfsroot na sprvnou NFS cestu pro GEEXBOX strukturu. Nakonec nastavte NFS pro export GEEXBOX struktury v /etc/exports zhruba tmto zpsobem : /tftpboot/GEEXBOX (ro) a /etc/hosts.allow asi takhle: ALL: ALL To by mlo bt ve nyn mete zkusit nabootovat a uvidte co se stane. | Vytven ISO | ~~~~~~~~ Nejprve prosm protte st o nastaven. Potom vytvote iso pomoc: make Nebo soubor rovnou vypalte : make burn Kdy jste hotovi mete GeeXboX stukturu smazat pro sporu msta na disku: make clean Nebo smazat vechny soubory a zdroje: make distclean Existuje vce nastavujcch pkaz pokud se chcete v GeeXboXu troch vrtat: scripts/get package # sthnout balek scripts/unpack package # rozbalit a pipravit balek scripts/build package # vytvo balek scripts/install package # instalovat balek s $INSTALL prefix scripts/clean package # vymazat adresovou strukturu balku make exec # launch directly the GeeXboX in a jail # WARNING: this is a highly experimental feature # use it at your own risks. Pokud jste vytvoili upravenou verzi GeeXboXu mete vytvoit tar.bz2 pomoc : make dist nebo pln tar (se vemi zdrojovmi soubory) pomoc : make fulldist nebo geexbox genertor pomoc : make generator nebo geexbox instaltor pomoc : make installator nebo pxe strukturu pomoc : make pxe | Konfigurace | ~~~~~~~~~~~~~ * Globln nastaven : Je nejdleitjm krokem ped samotnm vytvenm GeeXboXu. Je uloeno v souboru config/options, a jeho syntaxe je srozumiteln. Mete zvolit typ Vaeho procesoru, tma, a zda chcete pouvat True Type fonty nebo ne. Tak mete upravit nastaven Va vypalovaky aby bylo mon iso rovnou vyplit. * Linux : Tohle je klasick nastaven Linuxu (packages/linux/linux.conf). Lze je editovat run nebo spustit skript scripts/unpack linux a pot make menuconfig -C build/linux-* (ppadn pout Vmi preferovanou metodu namsto menuconfig). Zazlohujte /linux-*/.config do packages/linux/linux.conf. * Lirc : Lirc umouje ovldn GeeXboXu pomoc dlkovho ovladae. Nejprve se pokuste nalzt soubor s vam typem ovladae v build/lirc-*/remotes (po proveden scripts/unpack lirc) a pidejte jej do packages/lirc/install. Potom vyberte zazen (vchoz je /dev/ttyS0 (COM1)) a ovlada lirc a ulote jej do souboru packages/lirc/lircd_$REMOTE. Pot zvolte nastaven tlatek v souboru packages/lirc/lircrc_$REMOTE. Pro kad piazen tlatka muste vybrat jeho jmno ze souboru a zasociovat ho k urit akci. Tou me bt nkter z akc MPlayeru (ty naleznete v souboru build/MPlayer-*/DOCS/documentation.html#commands). | pravy | ~~~~~~~ Jako prvn je dobr podvat se na inicializan skript. Ve skutenosti se jedn o skripty dva. Prvn je v packages/initrd/linuxrc ale ten pravdpodobn nebudete chtt upravovat. Druh je config/init a v nm se d upravit nkolik monost nastaven. Dal co by Vs mohlo zajmat je vytvoen novho balku. To nen nic jinho ne spousta skript kter sleduj urit pravidla. Vechny skripty musej bt ve stejnm adresi jako je program kter chcete "pibalit" Zde je seznam skript kter mete vytvoit : - url : seznam adres kde lze sthnout zdrojov soubory program. - unpack : co se provede po rozbalen zdroj, ete napklad upravit konfiguran soubory, netk se aplikac zplat. - need_build : pouit pokud balek ji byl sestaven, a pro ujitn e nepotebuje reebuilt. Dojde k odstrann souboru .stamps/"package name"/build v ppad e rebuild nen nutn. - build : vechny nezbytn kroky k vytvoen programu. - install : vechny nezbytn kroky k instalaci programu. Zatek instalace by ml bt $INSTALL. Kdy je soubor z url adresy pojmenovn zplata-program_name-...je automaticky zplata aplikovna na rozbalen zdrojov soubory programu. Mli by jste pamatovat e software na kterm GeeXboX b mus bt zkompilovn s uClibc gcc wrapper. Nakonec, nejlep cesta k vytvoen balku je podvat s edo ji hotovch. | Licenn podmnky | ~~~~~~~ Vechny programy pouit v GeeXboXu jsou chrnny jejich licenc. Vechny jsou voln iiteln a vtina z nich podlh GNU licencovn. GeeXboX jako takov. myleno skripty pouit pro jeho vytvoen spadaj pod GNU. geexbox-0.98.7/DOCS/README_de.txt0000644000175000017500000003767410335100766015202 0ustar aurelaurel ooooo oo o o oo o M" "Mo Mo oM" M Mo oM" M oM""Mo oM""Mo "Mo" Mo"""o oM""Mo "Mo" M """M MooooMM MooooMM oMMo M "M M M oMMo "o oM M o M o oM Mo M oM M M oM Mo "MoooM"M "MooM" "MooM" M" "M M"ooo" "MooM" M" "M | BER GEEXBOX | ~~~~~~~~~~~~ GeeXboX ist eine Art "Divx Out-Of-The-Box" Software. Genaugenommen ist es eine bootfhige CD, welche es erlaubt, Filme anzuschauen, Musik zu hren und Bilder zu betrachten. Es untersttzt viele Formate wie zum Beispiel avi, mpeg, divx, ogm, rm, mp3, ogg, dvd, vcd, jpg, bmp, cdda... GeeXboX untersttzt zudem einige Infrarot-Fernbedienungen und den TV-Ausgang einiger Grafikkarten. Dieses Archiv enthlt die ntigen Scripte um ein eigenes ISO-Image von GeeXboX zu erstellen. | VORAUSSETZUNGEN | ~~~~~~~~~~~~~~~ Um ein GeeXboX ISO zu erstellen, wird eines der folgenden Systeme bentigt: - GNU/Linux mit mkisofs und mkzftree. - MAC OS X mit mkisofs und mkzftree. - Windows. Um GeeXboX zu installieren bentigen Sie: - GNU/Linux mit syslinux. Um Ihre eigene GeeXboX zu erstellen bentigen Sie einige "klassische" Werkzeuge: - ein funktionierendes GNU/Linux System. - denn gcc C Compiler. - GNU make - patch. - den nasm Assembler. - bzip2 und gzip. - mkfs.ext2 und mkfs.vfat - wget Kommandozeilen-Downloadtool(wird nicht fr das komplette GeeXboX Paket bentigt). - mkisofs und mkzftree um das ISO-Image zu erstellen und zu komprimieren. - cdrecord (um das ISO-Image zu brennen). Zudem bentigen Sie mindestens 500 MB freien Speicher auf Ihrer Festplatte. | PERSONALISIERUNG | ~~~~~~~~~~~~~~~~ Mit dem Generator ist es sehr einfach GeeXboX seinen persnlichen Bedrfnissen anzupassen. Sie knnen zum Beispiel die Untersttzung einiger proprietre Codecs wie rv9 oder wmv9 hinzufgen, indem Sie die Codecs einfach in das Verzeichnis GEEXBOX/codecs kopieren. Diese Codecs finden Sie im Paket, welches unter http://www.geexbox.org/releases/geexbox-extra-codecs-nonfree.tar.gz erhltlich ist. Sie knnen aber auch viele andere Einstellungen verndern, indem Sie einfach einige Text-Dateien editieren: * Sprache: Sie knnen die Menu-Sprache ndern, indem Sie die Datei GEEXBOX/etc/lang editieren. Diese Einstellung hat keinen Effekt auf die Sprache der DVD (siehe Kapitel MPlayer). Falls Ihre Sprache nicht existiert, knnen Sie das Menu bersetzen, indem Sie die Dateien GEEXBOX/etc/mplayer/menu_LANG.conf und GEEXBOX/usr/share/mplayer/help_LANG.txt bearbeiten. * MPlayer: Dies ist der Ort, an dem Sie die meisten Einstellungen und Vernderungen vornehmen knnen. Die Einstellungen sind in der Datei packages/MPlayer/mplayer.conf enthalten. Dort knnen viele Optionen gendert werden, wie z.B. die Schriftgre des Onscreen-Mens (subfont-text-scale). Sie knnen aber auch viele andere Einstellungen, wie zum Beispiel die DVD Standard-Sprache verndern (zum Beispiel: alang=fr,en). Die beste bersicht ber alle Einstellung finden Linux-Benutzer in der manpage (man -l build/MPlayer-*/DOCS/mplayer.1). Weitere Informationen finden Sie auch in der MPlayer Dokumentation (in build/MPlayer-*/DOCS oder unter http://mplayerhq.hu/DOCS/). Eine andere Datei, die sie vielleicht editieren wollen, ist packages/MPlayer/menu.conf. Sie knnen z.B. einzelne Menupunkte entfernen oder das Men in eine beliebige Sprache bersetzen. Die letzte interessante Datei ist packages/MPlayer/build. Sie enthlt die Optionen, welche fr das Erstellen von MPlayer gesetzt sind. * TV-Ausgang: Das Aktivieren des TV-Ausgangs wird durch die Verwendung mehrerer kleiner Programme fr die unterschiedlichen Video Karten Hersteller erreicht. Wir verwenden im Moment atitvout fr ATI Karten, s3switch fr S3 Karten und nvtv fr nVidia Karten (untersttzt zum Teil ebenfalls Intel i810 und 3dfx Karten). Die Einstellungen dieser Programme werden in der Datei config/tvout vorgenommen. Sie knnen den TV-Standard whlen (PAL, NTSC) und einige spezifische Optionen fr nvtv vornehmen. * Lirc: Sie knnen eine der untersttzten Fernbedienungen whlen, indem Sie die Datei GEEXBOX/etc/remote editieren. Falls Sie eine ATI Remote Wonder verwenden (welche nicht von Lirc untersttzt wird), mssen Sie nichts verndern, da diese standardmssig von GeeXboX untersttzt wird. Falls Sie die Tastenbelegung ihrer Fernbedienung verndern mchten, so editieren Sie die Datei GEEXBOX/etc/lirc/lircrc_REMOTE. * Netzwerk: Die Netzwerkeinstellungen werden in der Datei GEEXBOX/etc/network vorgenommen. Hier knnen Sie beispielsweise die IP-Adresse festlegen (Standardmssig wird DHCP verwendet und falls dies nicht funktioniert, wird die IP 192.168.0.54 verwendet). Sie knnen aber auch einen Login-Name und eine Passwort festlegen, welches fr die Windows-Freigaben verwendet wird (standardmssig wird nur zu anonymen Freigaben verbunden). Ebenso knnen NFS mounts in der Datei GEEXBOX/etc/nfs eingetragen werden. * WiFi: In der Default-Einstellung versucht GeeXboX automatisch ihre Netzwerkein- stellungen zu erkennen. Wenn sie einen traditionellen NIC und eine WiFi-Karte haben, wird nur letztere eingerichtet. Unter Umstnden mssen sie die Datei /etc/network editieren, um sie an ihre Netzwerkeinstellungen anzupassen. Dort finden sie 4 Zeilen die Wireless Lan Karten betreffen: * PHY_TYPE="auto" # Physikalischer Netzwerktyp (auto|ethernet|wifi) * WIFI_MODE="managed" # Wifi Betreibsmodus (managed|ad-hoc) * WIFI_WEP="" # Wifi WEP Schlssel * WIFI_ESSID="any" # Wifi SSID Hier knnen sie die meisten der ntigen Einstellungen vornehmen. Sie knnen die Autoerkennung eingeschalten lassen oder sogar die Verwendung von Ethernet oder WiFi erzwingen. Genauso knnen sie hier zwischen den Betreibsmodi "managed" oder "ad-hoc" whlen, sowie ihren WEP Schlssel und SSID einstellen. * Internetzugang (Gateway): GeeXboX untersttzt auch einen Internetzugang. Wenn sie einen Verbindung zum Internet haben, knnen sie sich diese mit ihrer GeeXboX durch die Verwendung eines Routers oder eines Gateways teilen. Dazu mssen sie nur die IP-Adresse des Gateways in der Datei /etc/network eintragen * GATEWAY="yourIP" # Gateway IP ("" fr DHCP oder keine Internetverbindung) * TV-Konfiguration: GeeXboX untersttzt TV-Input und Tuner und versucht die Karte wie den Tuner automatisch zu erkennen. Sie knnen die Autoerkennung auch umgehen und selbst die richtigen Einstellungen in der Datei /etc/tvcard wie folgend beschrieben vornehmen: #TV CARD/TUNER Model (AUTO fr automatische Erkennung, weitere Infos in den Links) #http://www.linuxhq.com/kernel/v2.6/2/Documentation/video4linux/CARDLIST.bttv #http://www.linuxhq.com/kernel/v2.6/2/Documentation/video4linux/CARDLIST.tuner TV_CARD=AUTO TV_TUNER=AUTO Bitte lassen sie die Eintrge auf "AUTO" wenn sie die automatische Erkennung verwenden wollen. Ansonsten setzen sie die richtige Zahl fr ihre Karte und ihren Tuner-Typ (siehe obenstehende Links). VORSICHT: um selber die richtigen Einstellungen vorzunehmen. mssen sie die exakten Referenzzahlen ihrer Hardware kennen!!! Wenn das erledigt ist, sollte es ihnen mglich sein den TV-Eingang (Composite und S-VHS) ihrer Karte zu nutzen. Auf dieselbe Art und Weise knnen sie den TV-Tuner benutzen. Dafr mssen sie ihre Region und die Frequenzen der TV Kanle in der Datei /etc/tvcard eintragen: # TV Channels # Syntax : CHAN="Channel Frequency:Channel Title" # Example : # CHAN="29:France 2" # CHAN="K08:Canal +" # TV Channels List # Available : france, europe-east, europe-west, us-bcast, us-cable CHANLIST=france Bitte seien sie vorsichtig beim editieren der Kanle. Benutzen sie genau dieselbe Syntax wie oben beschrieben, dann sind ihre TV Kanle im Hauptmen verfgbar. | ERSTELLEN EINER ISO-DATEI | ~~~~~~~~~~~~~~~~~~~~~~~~~ Bitte widmen Sie einen Augenblick der oben beschriebenen Personalisierung ihrer GeeXboX bevor Sie mit der Erstellung einer ISO-Datei beginnen. Anschliessend knnen Sie unter Linux die ISO-Datei mit dem folgenden Kommando erstellen: ./generator.sh oder unter Windows mit dem Starten der Datei generator.exe | INSTALLATION | ~~~~~~~~~~~~ Als erstes bentigen Sie eine FAT16 Partition mit ungefhr 16 MB freiem Speicherplatz. Dann knnen Sie die Installation unter Linux starten, indem Sie folgendes Kommando eingeben: ./installator.sh Beantworten Sie anschliessend alle Fragen. Seien Sie bei diesem Vorgang sehr vorsichtig! Lesen Sie jede Frage zweimal und unterbrechen Sie die Installation wenn Sie eine Frage nicht verstehen. | PXE BOOT | ~~~~~~~~ Ja, GeeXboX ist fhig ber ein Netzwerk ohne Festplatte zu starten! Um dies zu erreichen bentigen Sie folgendes: - einen DHCP Server - einen TFTP Server - einen NFS Server - einen PXE fhiger Computer :-) Zuerst mssen Sie den DHCP Server konfigurieren, damit dieser die PXE Boot Informationen schickt. Im Folgenden eine Beispiel mit isc dhcp: allow booting; allow bootp; subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.128 192.168.0.192; option subnet-mask 255.255.255.0; option broadcast-address 192.168.0.255; next-server 192.168.0.1; filename "/tftpboot/GEEXBOX/boot/pxelinux.0"; } Die next-server Option ist die Adresse des TFTP Servers. Anschliessend konfigurieren Sie Ihren TFTP Server (wie zum Beispiel atftpd) so, damit er das Verzeichnis /tftpboot zur Verfgung stellt. Das Verzeichnis /tftpboot muss einen vollstndigen GEEXBOX Stammbaum enthalten. Sie knnen dazu zum Beispiel den Inhalt eine GeeXboX CD von Linux aus MIT DER AKTIVIERTEN TRANSPARENTEN DEKOMPRESSION DER CDROM! (um dies zu berprfen schauen Sie auf den Inhalt der sbin/init im GeeXboX Dateibaum und prfen, ob diese Datei keinen Mll enthlt). Falls Sie GeeXboX selber aus den Sourcen kompiliert haben, so knnen Sie einen Dateibaum ganz einfach mit make pxe erstellen. Danach sollten Sie die Datei /tftpboot/GEEXBOX/boot/pxelinux.cfg/default editieren, so dass nfsroot zum richtigen NFS Pfad des GEEXBOX Dateibaumes zeigt. Am Schluss mssen Sie noch NFS so konfigurieren, dass der GEEXBOX Dateibaum exportiert wird. Dies erreichen Sie, indem Sie der Datei /etc/exports in etwa folgendes hinzufgen: /tftpboot/GEEXBOX (ro) und der Datei /etc/hosts.allow folgendes hinzufgen: ALL: ALL Damit ist die Konfiguration abgeschlossen. Starten Sie den PXE Computer und schauen Sie was passiert. | KOMPILIEREN | ~~~~~~~~~~~ Bevor Sie beginnen, lesen Sie bitte das anschliessende Konfigurations-Kapitel (mindestens die allgemeinen Einstellungen). Anschliessen knnen Sie das ISO-Image einfach mit folgendem Kommando erstellen: make oder Sie brennen das ISO-Image sogleich: make burn Wenn Sie fertig sind, knnen Sie mehr freien Speicherplatz schaffen, indem Sie nicht mehr bentigte Dateien lschen: make clean oder alle Dateien inklusive der heruntergeladenen Dateien lschen: make distclean Es gibt noch einige Kommandos, die fr fortgeschrittene Benutzer gedacht sind: scripts/get package # ldt ein Paket herunter scripts/unpack package # entpackt und bereitet das Paket vor scripts/build package # kompliert das Paket scripts/install package # installiert das Paket nach $INSTALL scripts/clean package # reinigt den Dateibaum des Paketes make exec # startet GeeXboX in einem Kfig # WARNUNG: Dies ist eine experimentelle Funktion, # Benutzung auf eigene Gefahr. Falls Sie eine vernderte Version von GeeXboX erstellt haben, so knnen Sie sehr einfach ein tar.bz2 Archiv davon erstellen: make dist oder ein vollstndiges Archiv (inklusive allen Sourcen): make fulldist oder einen GeeXboX Generator mit: make generator oder eine GeeXboX Installationsroutine mit: make installator oder einen PXE fhigen Baum: make pxe | KONFIGURATION | ~~~~~~~~~~~~~ * Allgemeine Einstellungen: Dies ist der erste Schritt, den Sie vor dem Kompilieren von GeeXboX machen sollten. Alle Einstellungen stehen in der Datei config/options, welche sich selbsterklrend sein sollte. Dort knnen Sie die CPU-Familie und den Theme whlen und ob sie TrueType Schriften wollen oder nicht. Sie sollten zudem die Konfiguration des CD-Brenners anpassen, sofern sie die ISO-Datei direkt brennen wollen. * Linux : Dies ist die klassische Linux-Konfiguration (packages/linux/linux.conf). Sie knnen diese Datei entweder von Hand oder mit einem scripts/unpack linux und einem anschliessenden make menuconfig -C build/linux-* (oder ihrer bevorzugten Methode anstatt menuconfig) anpassen. Danach sollten Sie Ihre Konfigurationsdatei build/linux-*/.config nach packages/linux/linux.conf sichern. * Lirc : Lirc erlaubt Ihnen, GeeXboX mit einer Fernbedienung zu bedienen. Zuerst mssen Sie die zur ihrer Fernbedienung passende Datei aus build/lirc-*/remotes (nachdem Sie ein scripts/unpack lirc gemacht haben) auswhlen und diese zur Datei packages/lirc/install hinzufgen. Danach sollten Sie die Gertedatei (Standard ist /dev/ttyS0 (COM1)) und den Lirc Treiber auswhlen und dies in die Datei packages/lirc/lircd_$REMOTE hinzufgen. Danach knnen Sie die Tasten in der Datei packages/lirc/lircrc_$REMOTE belegen. Fr jede Belegung mssen Sie einen Knopf (entnehmen Sie die Namen der Knpfe der Fernbedienungs-Defintion- Datei) eine passenden Belegung zuweisen. Die "Belegung" ist eine der MPlayer Aktionen (sie finden eine Liste der mglichen Aktionen in der HTML-Datei build/MPlayer-*/DOCS/documentation.html#commands). | VERNDERUNGEN | ~~~~~~~~~~~~~ Das Erste was Sie anschauen sollten, ist das Initialisierungs-Script. Eigentlich sind es zwei Initialisierungs-Scripte. Das Erste ist packages/initrd/linuxrc welches Sie aber wahrscheinlich nicht zu verndern brauchen. Das Zweite ist config/init, wo Sie Ihre Personalisierungen einbringen knnen. Das nchste was Sie interessieren knnte, ist die Erstellung eines neuen "Paketes". Ein Paket ist nur eine Reihe von Scripten, die einigen Regeln folgen mssen. Alle Scripte mssen sich in einem Verzeichnis befinden mit dem gleichen Namen wie das Programm, das Sie "packen" wollen, dieses Verzeichnis wiederum im packages Verzeichnis. Hier ist eine Liste mit den Scripten, die Sie erstellen sollten: - url: eine Liste der URL's, wo man die Programm-Sourcen herunterladen kann. - unpack: enthlt, was nach dem Auspacken des Paketes gemacht wird. Zum Beispiel das Modifizieren von Konfigurations-Dateien. Dieses Script spielt jedoch keine Patches auf. - need_build: wird aufgerufen, falls das Paket schon kompiliert wurde, um sicherzugehen, dass es nicht noch einmal kompiliert werden muss. Es sollte die Datei .stamps/"package name"/build entfernen, falls das Paket nochmals kompiliert werden muss. - build: enthlt alle Schritte um das Programm zu kompilieren. - install: enthlt alle Schritte um das Programm installieren zu knnen. Das Prefix der Installtion sollte $INSTALL sein. Wenn die Datei url einen Dateinamen der Form patch-program_name-... enthlt, wird der Patch automatisch auf die entpackten Sourcen aufgespielt. Beachten Sie zudem, dass Software, die auf der GeeXboX laufen soll, mit dem uClibc gcc Wrapper kompiliert werden muss. Es bleibt nur noch zu sagen, dass der beste Weg ein eigenes Paket zu erstellen der ist, einen Blick auf andere Pakete zu werfen. | LIZENZ | ~~~~~~~ Alle Programme, die von GeeXboX benutzt werden, sind durch ihre eigene Lizenz geschtzt. Sie alle sind freie Software und die meisten Programme stehen unter der GNU General Public License. GeeXboX selber, gemeint sind alle Scripte die fr die Komilierung benutzt werden, stehen unter der GNU General Public License. geexbox-0.98.7/DOCS/README_en.txt0000644000175000017500000007210610335100766015201 0ustar aurelaurel ooooo oo o o oo o M" "Mo Mo oM" M Mo oM" M oM""Mo oM""Mo "Mo" Mo"""o oM""Mo "Mo" M """M MooooMM MooooMM oMMo M "M M M oMMo "o oM M o M o oM Mo M oM M M oM Mo "MoooM"M "MooM" "MooM" M" "M M"ooo" "MooM" M" "M | ABOUT | ~~~~~ GeeXboX is a kind of "divx box" software. In fact, it is a stand-alone boot CD which allows you to watch movies or listen to music. It supports many formats, such as avi, mpeg, divx, ogm, rm, mp3, ogg, dvd, vcd and cdda. It also supports some IR remote controllers and TV-Out for some graphic cards. This archive contains the needed scripts to rebuild an iso image of GeeXboX. | REQUIREMENTS | ~~~~~~~~~~~~ To generate a GeeXboX iso, you will need either : - a GNU/Linux system with mkisofs and mkzftree. - a MAC OS X system with mkisofs and mkzftree. - a windows system. To install the GeeXboX, you will need : - a GNU/Linux system with syslinux. To build the GeeXboX, you will need some classic tools : - a working GNU/Linux system. - the gcc C compiler. - GNU make - the patch command. - the nasm assembler. - bzip2 and gzip. - mkfs.ext2 and mkfs.vfat - the wget download tool (not needed for the full GeeXboX package). - mkisofs and mkzftree to build the iso image. - mkzftree to compress files on the iso image. - cdrecord (to burn the iso image). And also 1.2 GB of hard disk free space. | PERSONALIZATION | ~~~~~~~~~~~~~~~ When the GeeXboX is installed on a hard drive or generated, it is quite easy to personalize it. You can add some proprietary codecs such a rv9 or wmv9, simply by adding them in the GEEXBOX/codecs directory. You can find those codecs in the package on http://www.geexbox.org/releases/extra-codecs-nonfree.tar.gz You can also modify many options. This can be done simply by editing some text files. * Language : You can easily select your preferred menu language by following the procedure below : - GNU/Linux users: Edit the generator.sh script before running it and change the line near the top: "LANG=en" to your preferred language. For example: if you're French, change it to "LANG=fr". - Microsoft Windows users: When started, generator.exe gives you a combo list that allows you to choose your preferred language. NB : This has no effect on DVD language (see the MPlayer section). For the list of available languages please see the "language" directory. If your language is not available, you can translate the menu in your own language. This simply involves the creation of language/menu_LANG.conf and language/help_LANG.txt, and adding LANG to language/lang.conf. * Firmware auto-loader : GeeXboX supports many free drivers but unfortunately some of them may require an additionnal proprietary firmware (non-free and so not included in GeeXboX ISO) to work properly. The firmware is a binary file that is uploaded to the device (PCI or USB) when the driver is loaded. For each driver, the firmware has to be a specific file with a pre-determined name. If you have reluctant hardware that require additionnal firmware (in most of the cases, it only concerns WiFi and DVB cards), you'll need to check on the Internet for your Linux driver page to see how to check the firmware file. Most of the time, you'll get a direct download link. Sometimes, you'll need to extract it from your Windows drivers archive that was shipped with your hardware. Once you get the firmware file, simply put it into the /firmwares directory. You can put in as many firmwares as you want, and GeeXboX will automatically find them and use them with the right drivers if needed. The only thing you then have to take care is to have the good firmwares file and to generate a new ISO. Please note that you can also use the GeeXboX ISO generator to automatically grab firmwares for you. You can select all of the extra binary firmware files you want the generator to add for you. Simply note that this feature will require you to have an Internet access when using the GeeXboX generator. * MPlayer : This is where you can do most of the configuration and tweaking. The options take place in the file packages/MPlayer/config/mplayer.conf. You may want to modify options such as OSD font size (subfont-text-scale). You can also add lots of options such as DVD default language (eg: alang=fr,en). The best place to find them is the MPlayer manpage for Linux users (man -l build/MPlayer-*/DOCS/mplayer.1). You should also have a look at the MPlayer documentation (in build/MPlayer-*/DOCS or at http://www.mplayerhq.hu/DOCS/). Another file you may modify is the packages/i18n-texts/config/menu.conf. You can remove items you don't need, or you can translate it in your own language for example. Then the last file you can look at is the packages/MPlayer/build which contains the selection of options which are built into MPlayer. * TV-Out : Enabling the TV-Out is achieved with the help of multiple small programs dedicated to different video card brands. Currently we use atitvout for ATI cards, s3switch for S3 cards and nvtv for nVidia cards (and possibly intel i810 and 3dfx cards). The configuration of those programs is done in packages/tvout/config/tvout. There you can choose the TV standard you want (pal, ntsc...) and you can also modify specific options for nvtv. # TV Output Standard (ntsc/pal/secam) TVOUT_STANDARD=pal Please note that you can also define the output aspect (say 4:3 or 16:9 display) in this file through the line : TVOUT_ASPECT="4:3" This parameter will be used both for TVOut and regular (CRT/TFT) display. You can also specify the desired height/width values and your display's horizontal and vertical frequencies in case you have unusual screen like WideScreens or videoprojector. This can be done, editing the /etc/mplayer/mplayer.conf file. Default parameters are shown below (please uncomment lines related to frequency if you want to use them) : screenw=800 screenh=600 #monitor-hfreq=31.5k-50k #monitor-vfreq=50-90 * Lirc : You can choose one of the supported remote controller by editing the file GEEXBOX/etc/remote. Also take care to chose the corresponding ir receiver in the same configuration file. If you want to modify the key binding of your remote controler, look at the file GEEXBOX/etc/lirc/lircrc_REMOTE. * network : You can configure the network in the file GEEXBOX/etc/network. There you can chose the IP address used by the GeeXboX (default is to use DHCP and if it don't work, fall back to 192.168.0.54). You can also specify a login and a password which will be used to connect to windows shares (default will only connect to anonymous shares). You can also declare some NFS mounts in GEEXBOX/etc/nfs. * wifi : By default, GeeXboX tries to autodetect your network settings. If you have both traditionnal NIC and WiFi cards, only the latest will be setup. You may have to modify the /etc/network file in order to fit your network's settings. In this one, 4 lines are related to wireless cards : * PHY_TYPE="auto" # Network physical type (auto|ethernet|wifi) * WIFI_MODE="managed" # Wifi working mode (managed|ad-hoc) * WIFI_WEP="" # Wifi WEP key * WIFI_ESSID="any" # Wifi SSID These lines let you configure most of the settings. You can let autodetection enable or even force the use of ethernet or WiFi adapters. In the same way, this let you choose between the managed and the ad-hoc mode and let you define your WEP key and SSID. * gateway : GeeXboX supports access to the Internet. In the case you've got a connection to the Internet, you may share it with your multimedia box, using a router or a gateway. For this, simply define the gateway IP address in the /etc/network file. * GATEWAY="" # Gateway IP ("" for DHCP or no internet connection) * DNS server : If you want to access to the Internet, GeeXboX may require a DNS server IP address. If you're not using a DHCP server that will do this job, you'll have to specify it by hand in the /etc/network file. * DNS_SERVER="" # DNS Server IP ("" for DHCP or none) * tv configuration : GeeXboX supports TV inputs and tuners. The system hardly tries to autodetect the card and the tuner. You can force the settings and skip the autodetection try. Please modify the /etc/tvcard as described : #TV CARD/TUNER Model (AUTO for autodetection or look at the following urls) #http://www.linuxhq.com/kernel/v2.6/2/Documentation/video4linux/CARDLIST.bttv #http://www.linuxhq.com/kernel/v2.6/2/Documentation/video4linux/CARDLIST.tuner TV_CARD=AUTO TV_TUNER=AUTO TVIN_STANDARD=pal Please let the AUTO parameter whether you want to keep autodetection, or replace it by the number of your card and tuner types, according to the previous URL. Please be careful : in order to force the card and tuner types, you have to know the EXACT REFERENCES of your hardware. Once done, you should be able to use the TV inputs (Composite and S-VHS) of your TV card. In the same way, you can use the tuner to watch TV. For that, you will have to define the region you belongs to and the frequency of the TV channels you want to watch. Once again, simply edit the /etc/tvcard file : # TV Channels # Syntax : CHAN="Channel Frequency:Channel Title" # Example : # CHAN="26:France 2" # CHAN="K08:Canal +" # TV Channels List # Available : france, europe-east, europe-west, us-bcast, us-cable CHANLIST=france Please be careful when editing channels and simply use the same syntax as described above and TV channels should be present in the main menu. * audio configuration : GeeXboX supports both analog and digital audio output through regular JACK connectors or RCA SPDIF one. By default, output is set to analog. You can change this, by editing the /etc/audio file : # Output using SPDIF (yes/no), otherwise ANALOG output SPDIF=no Remember that you will need to set your output to SPDIF if you want to connect your soundcard to an external amplifier for decoding AC3/DTS streams (using passthrough mode). * video post-processing : Post-Processing is a software way to get a smoother and more accurate render of your videos. It however consumes a lot of CPU time to magnify pictures but, as a result, it looks far better. Using MPlayer internal filters, GeeXboX lets you make h/v deblocking, deringing and auto luminance to enhance your image. By default, post-processing is disabled to avoid lagging on small configurations. You can enable it simply by editing the /etc/mplayer/mplayer.conf file : # Set Post Processing (h deblock, v deblock, dering, auto luminance) # Consumes CPU power, disabled for low configs, uncomment to enable it. #vf=pp=hb:a/vb:a/dr:a/al:a * DXR3/Hollywood+ cards : Users with this kind of hardware decompression card does NOT even need to have a video board and sound card to use GeeXboX. On the drawbacks, only the tvout connector can be used with DXR3 cards (no CRT display). You may have to set the required image norm (PAL/NTSC) in the /etc/tvout file and the kind of audio output you want to use (Analog or SPDIF) in /etc/audio. * Radio configuration : If your TV-card has built-in FM radio tuner, GeeXboX can support playing the radio. You have to modify the GEEXBOX/etc/radio file to have "RADIO=yes" if you want to use the radio. There is no hardware auto- detection, so setting this to 'yes' without a TV-card-based FM radio will put unnecessary menu items on your GeeXboX screen. The GEEXBOX/etc/radio file also has the radio station definition. There are a number of examples in the file, which simply include the radio frequency and the name of the station. Please be careful when editing channels and simply use the same syntax as the examples and the radio stations should be present in the main menu under "LISTEN RADIO". Since the radio application itself is not part of MPlayer, there is separate access to the volume. Please note that the volume that is being increased or decreased is Master volume. Before switching back to TV or video viewing, or music playing, the volume should be re-adjusted. * UPnP File Sharing : UPnP stands for Universal Plug & Play and is a network protocol aiming at providing the autodiscovery of devices and services of your Home Network. The UPnP A/V (for Audio/Video) norms defines several profiles for devices to easily share multimedia files and lets them being played. The UPnP Media Server profiles represent all of the devices that are able to share files to devices implementing the UPnP Media Player or UPnP Media Renderer profiles. The GeeXboX embeds a UPnP Control Point software that is able to auto-discover all UPnP Media Servers from your Home network and it simply mounts their contents to a dedicated mount point (/mnt/UPnP). This way, you just have to share contents using a compliant UPnP Media Server software and they'll be automatically accessible from GeeXboX. For more info about UPnP and some media servers usage, please go to http://www.geexbox.org/wiki/index.php/Accessing_to_UPnP_Contents * DVB cards GeeXboX has a support for various types of DVB cards (Terrestrial, Cable, ATSC and Satellite) either in PCI or USB. Please note that for now, only one DVB adapter is usable at a time. Some DVB devices (especially USB ones) may require an external proprietary firmware to be loaded in the mean time as the driver to be usable. You may have a look at the LinuxTV DVB Wiki (http://linuxtv.org/wiki/index.php/Main_Page) to see if you're card requires one or not and if so, which one it is. Some firmwares can be fetched directly from the LinuxTV website (http://linuxtv.org/download/firmware/), otherwise may be included in the Windows drivers archive. See the GeeXboX firmware loader documentation to see how to get them loaded for you. For each card, the list of channels is available through the MPlayer's open menu. Nevertheless, there's no way to auto-discover these channels. Thus, adding the list of DVB channels to GeeXboX can be done in several ways : - using an existing channel list : MPlayer needs to have a working channels.conf file to use DVB. This file can be generated through the utilities provided by the dvb-apps package. Simply use a Linux box that has a DVB card configured, download the linuxtv-dvb-apps tarball from http://www.linuxtv.org/download/dvb/ , compile it and create the config file using the "scan" executable, in "zap" format (which is the default as of dvb-apps 1.1.0). For example, for a DVB-S (Satellite) card using Astra-19.2E as the provider: wget http://www.linuxtv.org/download/dvb/linuxtv-dvb-apps-1.1.0.tar.bz2 tar jxvf linuxtv-dvb-apps-1.1.0.tar.bz2 cd linuxtv-dvb-apps-1.1.0/util/scan make ./scan -x 0 dvb-s/Astra-19.2E > channels.conf The "-x 0" flag is here to restrict the scan to Free To Air channels only. Please always do so, as MPlayer do not support encrypted DVB channels. According to your type of DVB card, choose either a file from the "dvb-s" "dvb-c", "dvb-t" or "atsc" directories and ask for a scan. Then, simply copy the channels.conf file you've just created to the /etc/mplayer directory in the GeeXboX generator tree, and rebuild away. - using an existing transponder list : the procedure is highly similar to the one defined just before but with no scan. This time, the scan will be done at GeeXboX boot but this way, you do no more require another Linux system to generate the channels.conf file. To do so, you simpy have to check at : http://linuxtv.org/cgi-bin/viewcvs.cgi/dvb-apps/util/scan/ According to your DVB card type (S/T/C/ATSC), check for the good directory and grab the transponder frequency list that fit your needs. Then simply rename the file to dvb.conf and copy it to /etc. Then, rebuild a new ISO using the generator. A bootup, if GeeXboX detects a valid transponder file in /etc/dvb.conf, it will be used to scan for DVB channels and will generate the /etc/mplayer/channels.conf file itself. WARNING : Scanning can be slow according to the number of devices to be scanned and will be done each time you boot GeeXboX if using it as a LiveCD. It is highly recommended that you do it once only, then copy the generated /etc/mplayer/channels.conf file somewhere else and rebuild an ISO using generator, following the first method or to install it on disk. - using installator : this is for sure the easiest solution but requires you to install GeeXboX to disk. During the installation process, if a valid DVB device is recognized by the system, the installator script will ask you if you want to scan for DVB channels. The installator contains the complete list of transponders frequencies. That way, you just have to select your DVB device type and the transponder file you want to use for GeeXboX to scan. The channels.conf file will then be automatically generated. | GENERATION | ~~~~~~~~~~ First have a look at the personalization section just above. Then basically you can generate the iso under Linux by launching ./generator.sh or under windows by launching generator.exe | EXTRA SUBTITLE FONTS | ~~~~~~~~~~~~~~~~~~~~ First make sure you font is not included in offical GeeXboX package, by using the generator and looking up your font in the section above. Most fonts are already included in offical package, some are supported but not included because of their excessive size (Chinese fonts for example). * General support: To add support for new fonts you should extract your font into font directory and add your font name to language/lang.conf FONTS variable. * Chinese support: To include Chinese fonts in your generated geexbox iso you should get either the big5 or the gb2312 font from MPlayer contributed fonts: http://www1.mplayerhq.hu/MPlayer/contrib/fonts/chinesefonts/ and unpack and copy into generator ./font/big5 or ./font/gb2312 the directory which ends with `24` (font size 24) For example if you wish to use the 'gb2312 kai' font: - GNU/Linux users: wget http://www1.mplayerhq.hu/MPlayer/contrib/fonts/chinesefonts/gb2312-kai.tar.bz2 tar -jxf gb2312-kai.tar.bz2 mv gb2312-kai/gkai00mp24 ../path/to/generator/font/gb2312 - Windows users: Download http://www1.mplayerhq.hu/MPlayer/contrib/fonts/chinesefonts/gb2312-kai.tar.bz2 Open it up with WinZip And extract gb2312-kai\gkai00mp24 directory from the archive into ..\path\to\generator\font\gb2312 * Korean support: Similar to Chinese font support, only you can get the euc-kr font from: http://www1.mplayerhq.hu/MPlayer/contrib/fonts/korean/ A good choise will be to use dotum20.tar.gz euc-kr font, and unpack and copy into generator ./font/euc-kr in similar way mention above. | INSTALLATION | ~~~~~~~~~~~~ First you need to create a FAT16/32 or EXT2/3 partition with at least 16 MB of free space. Then you can install the GeeXboX under Linux by launching ./installator.sh And then responding to all the questions. Be carefull during this step. Read twice each question and stop installing if you don't understand one of the question. But the easiest way to install GeeXboX is still to boot it from CD and type "install" at isolinux boot prompt. | PXE BOOT | ~~~~~~~~ Yes, the GeeXboX is able to boot from the network on a diskless station ! To achieve this you will need : - a DHCP server - a TFTP server - a NFS server - a PXE capable station :-) * Using a GNU/Linux system : ------------------------ First configure your dhcp server to send PXE boot info. Here is an example with isc dhcp : allow booting; allow bootp; subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.128 192.168.0.192; option subnet-mask 255.255.255.0; option broadcast-address 192.168.0.255; next-server 192.168.0.1; filename "/tftpboot/GEEXBOX/boot/pxelinux.0"; } The next-server option is the address of the TFTP server. Then configure your TFTP server (such as atftpd) to server the /tftpboot directory and copy a full GEEXBOX tree in this directory. For example you can copy the content of a GeeXboX CD from a linux WITH THE CDROM TRANSPARENT DECOMPRESSION ENABLED !! (to verify this, look at the sbin/init file in the GeeXboX tree and verify that it do not contain garbage) If you've built the GeeXboX yourself from sources, you can also generate the GEEXBOX tree with make pxe. Then you should edit the file /tftpboot/GEEXBOX/boot/pxelinux.cfg/default to set nfsroot to the right NFS path to the GEEXBOX tree. Finaly set up your NFS to export the GEEXBOX tree with a /etc/exports containing something like this : /tftpboot/GEEXBOX (ro) and a /etc/hosts.allow containing something like : ALL: ALL That should do the trick. Boot your PXE station and see what happen. * Using a Microsoft Windows system : -------------------------------- In order to boot in PXE mode from a Windows host, you'll need the following software : * An TFTP and a DHCP Server (for example "tftpd32", available at http://tftpd32.jounin.net/) * An NFS Server (for example "Allegro NFS server", available at http://opensource.franz.com/nfs/) * A computer supporting PXE boot mode. Download and uncompress (No need to install) the tftpd32 folder somewhere on your disk. In this example, lets assume it is : C:\tftpd32 Copy the complete GEEXBOX tree in the same directory (C:\tftpd32\GEEXBOX) Start tftpd32 : - Choose the C:\tftpd32 folder for "current directory". - Choose the interface (network card) to be used in "server interface". In the example here it's 192.168.0.1 - Go in "setting" and make sure DHCP server is checked (enabled) - In the "DHCP server" tab, fill in all the box using the following example : (Please refer to some documentation about DHCP all around the net in order to understand) * IP starting pool : 192.168.0.10 * Size of pool : 10 * Boot file : ./GEEXBOX/boot/pxelinux.0 * WINS/DNS server : 192.168.0.254 * Default router : 192.168.0.254 * Mask : 255.255.255.0 * Domain name : mydomain.net - Click "save" to apply modifications. First part is done, you can now boot the client computer (the one starting GeeXboX), and will see it loading until the logo appears. After a while it'll freeze because your NFS server is not set yet. Install "Allegro NFS server" and fill in the boxes following these settings : Exports tab : * Add a "new name" : and call it "/tftpboot/GEEXBOX" * In "path" just below : choose "C:\tftp32\GEEXBOX" folder * In "allowed host list" , choose "all" * "Read write", and "read only user list", choose "root" and "everyone" (if you want some log just check all in the last tab) Apply settings. Don't forget to modify the file : C:\tftp32\GEEXBOX\boot\pxelinux.cfg\default and change the IP address "192.168.0.2" to "192.168.0.1" (or the one you've previously setup). Just start the client computer and now GeeXboX should be running fine. | BUILDING | ~~~~~~~~ First have a look at the configuration section just under (at least the global part). Then basically you can build the iso with : make Or you can directly burn this iso with : make burn When done, you can save disk space by cleaning the build tree : make clean or by doing a full cleaning, even removing downloaded sources : make distclean There's also more advanced commands if you want to hack around the GeeXboX : scripts/get package # download the package scripts/unpack package # unpack and prepare the package scripts/build package # build the package scripts/install package # install the package with the $INSTALL prefix scripts/clean package # clean the package build tree scripts/clean --full package # clean both the package build and source trees make exec # launch directly the GeeXboX in a jail # WARNING: this is a highly experimental feature # use it at your own risks. If you've made a hacked version of the GeeXboX, you can easily build a small tar.bz2 for it with : make dist or a full tar (containing all sources) with : make fulldist or a geexbox generator with : make generator or a geexbox installator with : make installator or a pxe ready tree with : make pxe | CONFIGURATION | ~~~~~~~~~~~~~ * Global options : This is the first thing you should take care of before trying to build the GeeXboX. It stands in the file config/options, and it should be self explanatory. * Linux : This is a classical Linux configuration (packages/linux/linux.conf). You can edit them by hand, or you can also do a scripts/unpack linux and then a make menuconfig -C build/linux-* (or use the method you prefer instead of menuconfig). Then you should backup your build/linux-*/.config into packages/linux/linux.conf. * Lirc : Lirc allows you to control the GeeXboX using a remote controller. First you have to choose the file describing your specific remote in build/lirc-*/remotes (after doing a scripts/unpack lirc) and add it in packages/lirc/install. Then you should choose your device (default is /dev/ttyS0 (COM1)) and the lirc driver and put them in a file called packages/lirc/config/lircd_$REMOTE. Then you can choose your key mapping in the file packages/lirc/config/lircrc_$REMOTE. For each mapping you have to select a button (pike their names in the remote definition file) and associate an action to it. The action is one of MPlayer's actions (you can find a list in the html file build/MPlayer-*/DOCS/documentation.html#commands). | HACKING | ~~~~~~~ The first thing you should look at is the initialization script. In fact there are two initialization scripts. The first one is in packages/initrd/scripts/linuxrc but you shouldn't need to modify it. The second one is in config/options and that's where you may put some customizations. There you can first choose which is the architecture (i386 or PPC) you want to build GeeXboX for. After that, you can perform finnest tuning by specifying a certain kind of sub arch (386, pentium, athlon) in order to optimize the distribution for your specific CPU and gets the best perfomances off. Then the next thing which may interest you is the creation of a new "package". A package is just a bunch of scripts which have to follow some rules. All the scripts have to take place in a directory named as the program you want to "package", itself in the packages directory. Here is a list of the scripts you may create : - url : just a list of urls where to get the program sources. - unpack : what to do after unpacking the sources. For example, you can modify some configuration files. This does not include applying patches. - need_build : called when the package as allready been built, in order to be sure that it don't need to be rebuilt. It should remove the file .stamps/"package name"/build if the package need to be rebuilt. - build : all the steps needed to build the program. - install : all the steps needed to install the program. The installation prefix should be $INSTALL. In addition, the package main directory may contain extra subdirs : - config : where all config files belong. These files may be used either by the build script to compile the package or by the install script to be put to the system's /etc directory. - scripts : this subdir may contain runtime initialization scripts related to the current package which should be installed by install script - patches : this subdir may contain patches to be applied to the sources of the package, at unpack time. - sources : if files are present here, they will be automatically copied into the package's build tree. - init.d : contains initialization scripts to be launched at runtime. You also have to remember that software which run on the GeeXboX have to be compiled with the uClibc gcc wrapper. Fortunately, the GeeXboX toolchain is smart enough to automatically build all added packages using the uClibc gcc wrapper itself. Do not forget to ask for your package's compilation and installation by explicitely asking for it in the scripts/gentree build script. Finally, the best way to make a package is to look how other packages are done. | LICENSE | ~~~~~~~ All the programs used by the GeeXboX are protected by their respective license. They all are free software and most of them are covered by the GNU General Public License. The GeeXboX itself, meaning all the scripts which are used in the building process, are covered by the GNU General Public License. geexbox-0.98.7/DOCS/README_es.txt0000644000175000017500000002505010335100766015202 0ustar aurelaurel ooooo oo o o oo o M" "Mo Mo oM" M Mo oM" M oM""Mo oM""Mo "Mo" Mo"""o oM""Mo "Mo" M """M MooooMM MooooMM oMMo M "M M M oMMo "o oM M o M o oM Mo M oM M M oM Mo "MoooM"M "MooM" "MooM" M" "M M"ooo" "MooM" M" "M | ACERCA DE... | ~~~~~~~~~~~~ Geexbox es un software que convierte tu ordenador en una mquina de reproducir DivX. De hecho, es un CD auto-arrancable que permite ver pelculas o escuchar msica. Soporta multitud de formatos, tales como avi, mpeg, divx, ogm, rm, mp3, ogg, dvd, vcd y cdda. Tambin soporta algunos mandos a distancia IR y las salidas de TV de ciertas tarjetas. Este archivo contiene los ficheros necesarios para generar una imagen iso personalizada de GeexBoX. | REQUISITOS | ~~~~~~~~~~ Para generar una iso GeeXboX, necesitas: - un sistema GNU/Linux con mkisofs y mkzftree. - un sistema windows. Para instalar GeeXboX, necesitars: - un sistema GNU/Linux con syslinux. Para construir GeeXboX, te harn falta algunas utilidades clsicas: - un sistema GNU/Linux funcionando. - el compilador gcc para el lenguaje C. - GNU make. - el comando patch. - el ensamblador nasm. - bzip2 y gzip. - mkfs.ext2 y mkfs.vfat. - la utilidad de descarga wget (no necesaria para todo el paquete GeeXboX). - mkisofs y mkzftree para construir la imagen iso. - mkzftree para comprimir los archivos en la imagen iso. - cdrecord (para tostar la iso). Y tambin 500 megas de espacio libre en disco. | PERSONALIZACIN | ~~~~~~~~~~~~~~~ Cuando GeeXboX est instalado en un disco duro o es generado, resulta muy fcil personalizarlo. Puedes aadir algunos cdecs propietarios como rv9 o wmv9, copindolos en el directorio iso/GEEXBOX/codecs. Puedes encontrar estos cdecs en el paquete http://www.mplayerhq.hu/MPlayer/releases/codecs/ . Ficheros tiles en el paquete de cdecs: * Cdecs de Real (usados para reroducir ficheros rv9 por ejemplo) : atrc.so.6.0, cook.so.6.0, sipr.so.6.0, drv3.so.6.0, drv4.so.6.0. * Cdecs de Windows Media (wmv9/wma9) : wma9dmod.dll y wmv9dmod.dll. Tambin puedes modificar muchas opcionesa travs de la edicin de algunos ficheros de texto. * Idioma : Puedes seleccionar fcilmente tu idioma de men favorito editando el fichero GEEXBOX/etc/lang. Esto no tiene efecto en el lenguaje del DVD (mira en la seccin de MPlayer). Si tu idioma no est disponible, puedes traducir el men a tu propio idioma, lo que conlleva la creacin de los archivos GEEXBOX/etc/mplayer/menu_LANG.conf y GEEXBOX/usr/share/mplayer/help_LANG.txt. * MPlayer : Aqu es donde puedes hacer la mayor parte de las configuraciones y ajustes. Las opciones se encuentran en el fichero packages/MPlayer/mplayer.conf. Quizs quieras modificar opciones como tamao de fuente del OSD (subfont-text-scale). Tambin puedes aadir muchas opciones como idioma por defecto para DVD (ej: alang=es,en). El mejor sitio para encontrar estas opciones es en la pagina man de MPlayer, para usuarios de linux (man -l build/MPlayer-*/DOCS/mplayer.1). Tambien deberias echar un vistazo a la documentacin de MPlayer (http://mplayerhq.hu/DOCS/). Otro archivo que quiz quieras modificar es packages/MPlayer/menu.conf. Puedes quitar elementos del men que no necesites, o, por ejemplo, traducirlos a tu propio idioma. El ultimo archivo que puedes mirar es packages/MPlayer/build, que contiene la seleccin de opciones que estn compiladas en MPlayer. * Salida de TV : La activacin de la salida de TV se consigue con la ayuda de mltiples programas dedicados a las diferentes marcas de tarjetas. Actualmente usamos atitvout para las tarjetas Ati, s3switch para las tarjetas S3 y nvtv para las tarjetas Nvidia (y posiblemente las intel i810 y las 3dfx). La configuracion de estos programas se realiza en config/tvout. Ah puedes seleccionar el estandar de TV que quieras (pal para Espaa, ntsc en Iberoamrica...) y modificar otras opciones especficas de nvtv. * Lirc : Puedes elegir uno de los controladores soportados editando el archivo GEEXBOX/etc/remote. Lirc no puede controlar ATI Rempote Wonder y est siempre activado, asi que no tienes que modificar nada para usarlo. Si quieres cambiar la asignacin de teclas para el mando a distancia, mira en el fichero GEEXBOX/etc/lirc/lircrc_REMOTE. * Red : Puedes configurar la red en el archivo GEEXBOX/etc/network. Ah puedes escoger la direccin IP usada por GeeXboX (por defecto se usa DHCP, y si no funciona, la IP cambia a 192.168.0.54.). Tambin puedes establecer un usuario y contrasea para conectarse a recursos compartidos en mquinas windows (por defecto se conecta nicamente a los recursos que permitan conexiones annimas). | GENERACIN | ~~~~~~~~~~ Primero hecha un vistazo a la seccin de personalizacin detallada ms arriba. Para generar la iso nicamente tienes que ejecutar en Linux ./generator.sh o generator.bat bajo windows. | INSTALACIN | ~~~~~~~~~~~ Lo primero que necesitas es crear una particin FAT16 con unos 16 MB libres. A partir de aqu, puedes instalar GeeXboX bajo Linux ejecutando ./installator.sh Responde a todas las preguntas y ten mucho cuidado con ellas. Lelas dos veces y, si no entiendes alguna, para la instalacin. | COMPILANDO | ~~~~~~~~~~ Lo primero es echar un vistazo a la seccin de configuracin, ms arriba (al menos, la parte general y la que se refiere al tostado en CD). A continuacin, puedes crear la iso bsicamente con: make O puedes quemarla directamente en CD con: make burn Cuando se haya terminado, puedes ahorrar espacio de disco limpiando el rbol de compilacin: make clean o haciendo una limpieza total, incluso borrando las fuentes descargadas: make distclean Existen tambin otros comandos ms avanzados si quieres enredar en las tripas de GeeXboX: scripts/get package # descargar el paquete scripts/unpack package # desempaqueta y prepara el paquete scripts/build package # construye el paquete scripts/install package # instala el paquete con el prefijo $INSTALL scripts/clean package # limpia el rbol de fuentes del paquete make exec # lanza directamente GeeXboX en una jaula # AVISO: esta caracterstica es ltamente experimental # sala a tu propio riesgo. Si has hecho una versin modificada de GeeXboX, puedes construir fcilmente un pequeo tar.bz2 con: make dist o un tar completo (conteniendo todos los fuentes) con: make fulldist o un generador geexbox con: make generator o un instalador geexbox con: make installator | CONFIGURACIN | ~~~~~~~~~~~~~ * Opciones globales: ste es el primer apartado en el que debes fijarte antes de intentar compilar GeeXboX. Se encuentra en el archivo config/options, y debera explicarse por s mismo. En este fichero puedes seleccionar la familia de tu CPU, el tema a usar, y si quieres utilizar fuentes truetype o no. Adems, deberas modificar la configuracin de la grabadora de CD para poder grabar directamente la ISO. * Linux: El archivo packages/linux/linux.conf es una configuracin clsica de Linux. Puedes editarlo a mano, o tambin puedes ejecutar scripts/unpack linux y hacer make menuconfig -C build/linux-* (o utilizar el mtodo que prefieras en vez de menuconfig). Es conveniente que hagas una copia de seguridad de build/linux-*/.config en packages/linux/linux.conf. Lo ms "difcil" que puede ocurrir es mantener tamao del kernel lo suficientemente reducido como para que quepa en una imagen de un disquete de arranque. * Lirc: Lirc te permite controlar GeeXboX a travs de un mando a distancia. Lo primero que debes hacer es escoger el archivo que describe tu mando en concreto en build/lirc-*/remotes (despues de hacer scripts/unpack lirc) y aadirlo a packages/lirc/install. A partir de aqu, escoge un dispositivo (por defecto es /dev/ttyS0, o COM1) y el driver lirc y colcalos en un archivo con el nombre packages/lirc/lircd_$REMOTE. Entonces podrs escoger la asignacin de teclas en packages/lirc/lircrc_$REMOTE. En cada asignacin tienes que seleccionar un botn (coge los nombres del archivo de definicin del mando a distancia) y asociarle una accin. Esta accin pertenece a MPlayer, y puedes encontrar un listado en build/MPlayer-*/DOCS/documentation.html#commands. | HACKING | ~~~~~~~ El primer sitio donde debes mirar es en el script de inicializacin. De hecho, existen dos scripts de inicializacin. El primero est en packages/initrd/linuxrc, aunque no deberas necesitar modificarlo. El segundo se encuentra en config/init y es donde puedes personalizar. Lo siguiente que podra interesarte es la creacin de un nuevo "paquete". Un paquete consiste en una gran cantiad de scripts que han de seguir algunas reglas. Todos los scripts deben funcionar sobre un directorio llamado como el programa que quieres empaquetar, dentro del directorio packages. Una lista de scripts que puedes crear: - url: slo una lista de urls para conseguir los fuentes del programa. - unpack: qu hacer despus de desempaquetar los fuentes. Por ejemplo, puedes modificar algunos ficheros de configuracin. sto no incluye aplicar parches. - need_build: es llamado cuando el paquete ha terminado de compilarse, con el objetivo de estar seguros de que no necesita volver a cons- truirse. Debe borrar el archivo .stamps/"nombre del paquete"/build, si el paquete debe ser recompilado. - build: todos los pasos necesarios para compilar el programa. - install: todos los pasos necesarios para instalar el programa. El prefijo de instalacin debe ser $INSTALL. Cuando un archivo de las url se llama patch-nombre_del_programa-... se aplica automticamente a los fuentes desempaquetados del programa. Adems, debes recordar que el software que corre en GeeXboX debe ser compilado con el wrapper gcc de uClibc. Finalmente, el mejor modo de hacer un paquete es observar cmo estn hechos otros paquetes. | LICENCIA | ~~~~~~~~ Todos los programas usados por GeeXbox estan protegidos por sus respectivas licencias. Todos ellos son software libre, y la mayora estn cubiertos por la Licencia Pblica General GNU (GPL). El propio GeeXboX, incluyendo todos los scripts que son utilizados en el proceso de construccin y compilacin, estn cubiertos por la Licencia Pblica General GNU (GPL). geexbox-0.98.7/DOCS/README_fr.txt0000644000175000017500000010041410335100766015200 0ustar aurelaurel ooooo oo o o oo o M" "Mo Mo oM" M Mo oM" M oM""Mo oM""Mo "Mo" Mo"""o oM""Mo "Mo" M """M MooooMM MooooMM oMMo M "M M M oMMo "o oM M o M o oM Mo M oM M M oM Mo "MoooM"M "MooM" "MooM" M" "M M"ooo" "MooM" M" "M | AVANT PROPOS | ~~~~~~~~~~~~ La GeeXboX est une sorte "divx box" logicielle. En fait, il s'agit d'un CD bootable qui vous permet de regarder des films ou d'couter de la musique. Il supporte de nombreux formats tels que avi, mpeg, divx, ogm, rm, mp3, ogg, dvd, vcd et cdda. GeeXboX supporte aussi certains types de tlcommandes infra-rouge et les sorties TV de certaines cartes graphiques. Cette archive contient tous les fichiers ncessaires pour gnrer une image iso personnalise de la GeeXboX | PREREQUIS | ~~~~~~~~~ Pour gnrer une iso GeeXboX vous devez possder l'un des sytmes suivants: - GNU/Linux avec mkisofs et mkzftree. - MAC OS X avec mkisofs et mkzftree. - Windows. Pour installer la GeeXboX, vous aurez besoin : - un systme GNU/Linux avec SysLinux. Pour construire votre propre GeeXboX, vous ncessiterez les outils classiques : - un systme GNU/Linux oprationnel. - Le compilateur C GCC. - GNU make - La commande patch. - L'assembleur nasm. - bzip2 et gzip. - mkfs.ext2 et mkfs.vfat - L'outil de tlchargement wget (non ncessaire pour le paquetage GeeXboX complet). - mkisofs et mkzftree pour construire l'image ISO. - mkzftree pour compresser les fichiers de l'image ISO. - cdrecord (pour graver l'image). Et environ 1.2 Go d'espace disque disponible. | PERSONALISATION | ~~~~~~~~~~~~~~~ Le but du gnrateur est de personnaliser facilement sa GeeXboX. La chose la plus interessante que vous puissiez faire et de gnrer une image comportant une vido complte qui sera lu automatiquement au boot. Vous avez juste copier vos vidos (ou vos fichiers sons) et vos playlists dans le repertoire iso. Vous pouvez aussi ajouter des codecs propritaires comme le rv9 ou le wmv9, en les copiant simplement dans le rpertoire iso/GEEXBOX/codecs. Ces codecs se trouvent ici : http://www.geexbox.org/releases/geexbox-extra-codecs-nonfree.tar.gz Vous pouvez modifier d'autres options en ditant simplement des fichiers textes. * Langue : Choisissez la langue de vos menus en ditant le fichier generator.sh ou generator.bat (en fonction de votre OS). Cela n'as pas d'effets sur la langue du DVD (voir section MPlayer). Si votre langue n'est pas disponible, vous pouvez toujours traduire un menu. Il suffit de re-crer les fichiers language/menu_LANG.conf and language/help_LANG.txt. * Chargement des firmwares : La GeeXboX supporte de nombreux pilotes de priphriques mais malheureusement, certains d'entre eux requierent un firmware binaire additionnel propritaire (i.e. non-libre et donc non-inclus dans la GeeXboX). Le firmware est un fichier binaire qui est envoy au priphrique (PCI ou USB) lorsque le pilote se charge. Pour chaque pilote, le firmware se doit d'tre un fichier spcifique avec un nom pr-dtermin. Si vous disposez de matriel problme qui peut ncessiter la prsence d'un firmware additionnel (dans la plupart des cas, il s'agit de cartes WiFi ou DVB), vous devrez chercher sur Internet une page concernant le support de priphrique sous Linux et l'utilisation du firmware. La plupart du temps, vous tomberez sur un lien de tlchargement direct. Des fois, il vous sera ncessaire d'extraire ce firmware depuis une archive de pilotes pour Windows qui ont t fourni par le fabricant du priphrique. Une fois que vous disposerez du fichier de firmware pour votre carte, dposez le simplement dans le rpertoire /firmwares. Vous pouvez y stocker autant de firmwares que vous voudrez, la GeeXboX essaiera d'elle mme de les charger lorsqu'un pilote en aura besoin. La seule chose dont vous ayez vous soucier et de disposer des bons fichiers de firmwares avec les bons noms avant de regnrer une nouvelle ISO. Veuillez noter que vous pouvez galement utiliser le gnrateur d'ISO de la GeeXboX qui vous permettra de rcuprer les firmwares pour vous. Vous pouvez l'utiliser pour slectionner tous les fichiers de firmware que vous souhaiter et le gnrateur les tlchargera et ajoutera pour vous. Assurez vous juste de disposer d'une connexion Internet lors de l'utilisation du gnrateur. * MPlayer : C'est ici que se font la plupart des configurations et modifications. Les options se situent dans le fichier packages/MPlayer/mplayer.conf Il est possible de changer des options comme la taille des police de l'OSD (subfont-text-scale) et beaucoup d'autres choses telles que la langue par dfaut de lecture des DVD (ex: alang=fr,en). La meilleur faon de comprendre ces options est, pour les utilisateurs de Linux, de se rfrer au MAN de MPlayer (man -l build/MPlayer-*/DOCS/mplayer.1). D'autres informations sont aussi disponibles sur la documentation officielle (http://mplayerhq.hu/DOCS/). Il peut galement tre intressant de modifier le fichier packages/MPlayer/menu.conf. Vous pouvez les menus qui vous semblent inutiles, ou les traduire dans d'autres langues par exemple. Enfin, le dernier intressant est packages/MPlayer/build, qui contient la slection d'options de compilation de MPlayer. * Sortie TV : Activer la sortie TV se fait au moyen de nombreux petits utilitaires ddis chacun une marque carte graphique. Nous utilisons actuellement atitvout pour les cartes ATI, s3switch pour les cartes S3 et nvtv pour les cartes nVidia (ce qui peut aussi marcher abec les cartes i810 et 3dfx). La configuration de ces programmes se fait dans iso/GEEXBOX/etc/tvout. Vous pouvez y choisir le standard que vous utilisez (pal, secam...) et y modifier les options spcifiques de nvtv. # TV Output Standard (ntsc/pal/secam) TVOUT_STANDARD=pal Vous pouvez galement dfinir le rapport d'image de sortie (mode 4:3 ou 16:9) via la ligne : TVOUT_ASPECT="4:3" Ce paramtre est utilis la fois pour la sortie TV et pour l'affichage classique sur moniteurs CRT ou TFT. Vous pouvez galement dfinir les valeurs de hauteur et largeur (en pixels) pour l'affichage, ainsi que les frquences de rafraichissement horizontal et vertical, dans le cas o vous utiliseriez un cran panoramique ou encore un rtro-projecteur. Ceci peut etre fait en modifiant le contenu du fichier /etc/mplayer/mplayer.conf. Les paramtres suivants sont donns par dfaut (veuillez dcommenter les lignes lies la frquence de refraichissement si vous souhaiter les utiliser ) : screenw=800 screenh=600 #monitor-hfreq=31.5k-50k #monitor-vfreq=50-90 * Lirc : Choisissez la tlcommande support en ditant le fichier generator.sh ou generator.bat (en fonction de votre OS). Faite galement attention bien choisir le rcepteur infrarouge correspondant dans le mme fichier. Si vous dsirez modifier le mappage des touches reportez vous au fichier lirc/lircrc_REMOTE. * Rseau : Le rseau est configurable au niveau du fichier iso/GEEXBOX/etc/network. Ici vous reglerez l'adresse IP de la GeeXboX (qui par dfaut cherche un serveur DCHP ou prend l'IP 192.168.0.54 si elle n'en trouve pas). Il est aussi possible de lui assigner un login est un mot de passe (par dfaut, la GeeXboX ne peut se connecter que sur des partages anonymes). Vous pouvez aussi dclarer des montages NFS dans GEEXBOX/etc/nfs. * WiFi : Par defaut, le systme tente de dtecter automatiquement votre configuration rseau. Si vous disposez la fois d'une carte rseau Ethernet classique et d'une carte WiFi, seule cette dernire sera configure. Vous pourrez avoir modifier le fichier /etc/network afin d'y configurer vos paramtres rseaux. Dans ce dernier, 4 lignes sont relatives aux cartes sans-fils : PHY_TYPE="auto" # Network physical type (auto|ethernet|wifi) WIFI_MODE="managed" # Wifi working mode (managed|ad-hoc) WIFI_WEP="" # Wifi WEP key WIFI_ESSID="any" # Wifi SSID Vous pouvez soit conserver la dtection automatique, soit forcer l'activation du controleur Ethernet ou WiFi. De la mme faon, ceci vous permettra de choisir entre le mode managed et le mode de communication dit ad-hoc et de dfinir la fois votre cl WEP et le SSID de votre rseau. * Passerelle : La GeeXboX supporte l'accs Internet. Dfinissez simplement l'adresse IP de la passerelle dans le fichier /etc/network GATEWAY="" # Gateway IP ("" for DHCP or no internet connection) * Configuration TV : La GeeXboX supporte les entres et tuners de cartes TV. Le systme essaie avec peine de dtecter automatiquement le type de carte et de tuners utiliss. Vous pouvez forcer les paramtres et ainsi viter la tentative de dtection automatique. Veuillez modifier le fichier /etc/tvcard tel qu'il suit : # TV CARD/TUNER Model (AUTO for autodetection or look at the following urls) # http://www.linuxhq.com/kernel/v2.6/2/Documentation/video4linux/CARDLIST.bttv # http://www.linuxhq.com/kernel/v2.6/2/Documentation/video4linux/CARDLIST.tuner TV_CARD=AUTO TV_TUNER=AUTO Laissez le paramtre AUTO si vous souahitez conserver la dtection automatique, ou remplacez le par le numro de la carte et du tuner, comme dcrit dans les URL prcdentes. Soyez attentifs : pour forcer les types de cartes et de tuners, vous devez connatre les REFERENCES EXACTES de votre matriel. Une fois cela fait, vous devriez tre en mesure d'utiliser les entres TV (Composite et S-VHS) de votre carte TV. De la mme manire, vous pouvez utiliser le tuner pour regarder la TV. Pour cela, vous devrez dfinir votre rgion ainsi que les frquences des chanes que vous souhaitez visionner. Editez simplement le fichier /etc/tvcard : # TV Channels # Syntax : CHAN="Channel Frequency:Channel Title" # Example : # CHAN="29:France 2" # CHAN="K08:Canal +" # TV Channels List # Available : france, europe-east, europe-west, us-bcast, us-cable CHANLIST=france Faites attention lors de l'dition des canaux TV et veillez utiliser la mme syntaxe que dcrit ci-dessus et les canaux TV devraient apparatre dans le menu principal. * Configuration Audio : La GeeXboX supporte la fois la restitution audio via la sortie analogique ou numrique, en utilisant les connecteurs classiques JACK ou RCA SPDIF. Par dfaut, la sortie est gre de manire analogique. Ceci peut etre chang en modifiant le fichier /etc/audio : # Output using SPDIF (yes/no), otherwise ANALOG output SPDIF=no Souvenez vous qu'il est ncessaire de rgler la sortie en mode numrique (SPDIF), si vous souhaitez relier votre carte son un amplificateur hifi externe pour dcoder des flux AC3/DTS (en utilisant le mode passthrough). * Post-Processing vido : Le Post-Processing est un moyen logiciel pour affiner une image, en la rendant plus nette et plus prcise. Cela a par contre l'inconvnient de consommer une partie du temps processeur afin de rendre l'image plus belle. Via l'utilisation des filtres internes MPlayer, la GeeXboX vous permet de minimiser les effets de blocs horizontaux et verticaux, les effets d'anneaux de dgrads et de corriger automatiquement la luminosit de votre film. Par dfaut, le Post-Processing est dsactiv, pour viter de saccader sur de petites configurations matrielles. Il vous est possible de l'activer trs simplement en ditant le fichier /etc/mplayer/mplayer.conf : # Set Post Processing (h deblock, v deblock, dering, auto luminance) # Consumes CPU power, disabled for low configs, uncomment to enable it. #vf=pp=hb:a/vb:a/dr:a/al:a * DXR3/Hollywood+ cards : Les utilisateurs de ce type de cartes de dcompression n'ont pas besoin d'avoir une carte vido ou une carte son dans leur ordinateur. Parmi les inconvnients, on notera nanmoins que seule la sortie TV peut etre utilise avec ce type de carte (pas d'affichage sur moniteur). Vous pouvez etre amen dfinir la norme d'image souhaite (PAL/NTSC) via le fichier /etc/tvout ainsi que le type de sortie audio utiliser (Analogique ou SPDIF) via le fichier /etc/audio. * configuration de la radio: Si vtre carte TV dispose d'un tuner radio FM intgr, la GeeXboX vous permet d'couter la radio. Pour cela, il vous faudra modifier le fichier GEEXBOX/etc/radio pour mettre l'option RADIO yes. Le fichier GEEXBOX/etc/radio contient aussi la dfinition des stations. Des exemples sont prsents dans le fichier. Il suffira de les d-commenter et de les adapter vos stations favorites. Le programme d'coute de la radio ne faisant pas partie de MPlayer, il y a des contrle de volume spars pour la radio. Notez que le volume contrl est le volume principale. Il pourra donc tre ncessaire de le rajuster avant de lancer la TV, une vido ou de la musique. * Partage de fichiers via UPnP : UPnP est l'acronyme de Universal Plug & Play et peut se dcrire comme un protocole rseau permettant l'auto-dcouverte de priphriques ainsi que des services qui leur sont associs au sein de votre rseau domestique. La norme UPnP A/V (pour Audio/Video) dfinit un certains nombre de profiles pour des priphriques permettant le partage et la lecture de fichiers multimdias au sein d'un rseau. Le profile UPnP Media Server permet regroupe tous les priphriques capables de partager des fichiers des priphriques de type UPnP Media Player ou UPnP Media Renderer, qui sont en mesure de les restituer. La GeeXboX embarque un logiciel de contrle UPnP (UPnP Control Point) qui permet l'auto-dcouverte de tous les priphriques de type Media Server de votre rseau local et qui s'occupe de monter leur contenu en toute transparence dans un point de montage ddi (/mnt/UPnP). De cette manire, il vous suffit de disposer d'un PC ou autre priphrique possdant un logiciel compatible avec le profile UPnP Media Server pour que son contenu soit accessible depuis la GeeXboX. Pour plus d'infos sur l'UPnP ainsi que l'utilsiation de quelques serveurs, veuillez vous rfrer la page suivante : http://www.geexbox.org/wiki/index.php/Accessing_to_UPnP_Contents * Cartes DVB La GeeXboX supporte un grand nombre de cartes DVB (Terrestre i.e. TNT, Cable, ATSC et Satellite) et ce, aussi bien en PCI qu'en USB. Veuillez cependant noter qu'il n'est pour l'instant possible d'utiliser qu'un unique adaptateur DVB la fois. Certains priphriques DVB (particulirement ceux en USB) peuvent ncessiter un firmware propritaire additionnel pour fonctionner correctement. Il vous sera peut tre utile de jeter un oeil au Wiki DVB de LinuxTV (http://linuxtv.org/wiki/index.php/Main_Page) pour vous assurer que votre carte ncessite un tel firmware ou non. Dans ce cas, le gnrateur d'ISO pourra le tlcharger pour vous. Certains firmwares peuvent tre rcuprs directement depuis le site Web de LinuxTV (http://linuxtv.org/download/firmware/), d'autres peuvent tre inclus dans l'archive de drivers Windows du constructeur de la carte. Veuillez vous rfrer la documentation sur le chargement des firmwares dans la GeeXboX pour de plus amples informations. Pour chaque carte, la liste des chanes disponibles est disponible au sein du menu de MPlayer. Il n'est cependant pas possible d'auto-dcouvrir ces chanes automatiquement. De ce fait, la dclaration de chanes accessibles par DVB dans la GeeXboX peut tre fait de diffrentes manires : - utiliser une liste de chane existante : MPlayer a besoin d'un fichier channels.conf valide et fonctionnel pour faire fonctionner la DVB. Ce fichier peut tre gnr l'aide d'utilitaire fournis par le paquetage dvb-apps. Utilisez simplement une distribution Linux classique o votre carte DVB a dj t configure, tlchargez l'archive linuxtv-dvb-apps depuis le site http://www.linuxtv.org/download/dvb/, compilez le tout et crez le fichier de configuration via l'utilitaire "scan", dans le format "zap" (qui est le format par dfaut). Par exemple, pour une carte DVB-S (Satellite) utilisant le fournisseur d'accs Astra-19.2E : wget http://www.linuxtv.org/download/dvb/linuxtv-dvb-apps-1.1.0.tar.bz2 tar jxvf linuxtv-dvb-apps-1.1.0.tar.bz2 cd linuxtv-dvb-apps-1.1.0/util/scan make ./scan -x 0 dvb-s/Astra-19.2E > channels.conf Le drapeau "-x 0" indique que le scan ne tentera pas de se connecter aux chanes cryptes (gnralement payantes). Veuillez tout le temps procder de la sorte, MPlayer ne grant de toutes faons pas les chanes DVB cryptes. Selon votre type de carte DVB, choisissez un fichier de transponders (fournisseur) depuis les rpertoires "dvb-s", "dvb-c", "dvb-t" ou "atsc". Ensuite, copiez simplement le fichier channels.conf que vous venez de gnrer au sein du rpertoire /etc/mplayer de l'arborescence GeeXboX du gnrateur and recompilez une ISO. - utiliser une liste de transpondeur existante : cette procdure est relativement similaire la prcdente la diffrence qu'il s'agit cette fois de la GeeXboX qui va s'occuper de scanner les chanes pour vous et ce, chaque dmarrage. Vous n'aurez ainsi plus besoin d'une autre distribution Linux pour gnrer le fichier channels.conf. Pour ce faire, rendez-vous simplement sur : http://linuxtv.org/cgi-bin/viewcvs.cgi/dvb-apps/util/scan/ Selon votre type de carte DVB (S/T/C/ATSC), slectionnez le bon rpertoire et choisissez le fichier de liste de frquences de transpondeurs qui correspond vos besoins ou votre localisation gographique. Renommez ensuite simplement ce fichier en dvb.conf et copiez le dans le rpertoire /etc. Puis, reconstruisez une ISO via le gnrateur. Au dmarrage, si la GeeXboX dtecte un fichier de transpondeur valide dans le fichier /etc/dvb.conf, elle l'utilisera pour scanner les chanes DVB disponibles et gnrera le fichier /etc/mplayer/channels.conf d'elle-mme. ATTENTION : Le scan de chanes peut tre relativement lent selon le type d'metteur et le nombre de chanes dcouvrir. Ce processus est de plus effectu chaque dmarrage de la GeeXboX si vous l'utilisez en tant que LiveCD. Il est alors hautement recommand qu'une fois le scan effectu, vous copiez manuellement le fichier /etc/mplayer/channels.conf qui aura t gnr quelque part afin de pouvoir le r-utiliser dans le gnrateur d'ISO en suivant la premire mthode, ou de faire une installation sur disque dur. - utiliser l'installator : il s'agit probablement l de la mthode la plus simple mais recquiert une installation sur disque de la GeeXboX. Au cours du processus d'installation, si un priphrique compatible DVB est reconnu sur votre systme, le script d'installation vous demandera de lui-mme si vous souhaitez rechercher les chanes disponibles pour votre carte DVB. L'installator contient la liste complte des frquences des transpondeurs du site LinuxTV. De ce fait, vous n'aurez qu' slectionner votre type de carte ainsi que le transpondeur utiliser et la GeeXboX s'occupera de scanner letout et de gnrer le fichier /etc/mplayer/channels.conf. | GENERATION DE L'ISO | ~~~~~~~~~~~~~~~~~~~ Avant tout, jetez un oeuil sur la section personalisation juste au dessus Sous Linux, l'ISO est gnre en lanant la commande suivante: ./generator.sh et sous Windows: generator.exe | POLICES DE CARACTERES ADDITIONELLES POUR LES SOUS-TITRES | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Vous pouvez tre amens vouloir rajouter un jeu de caractre diffrent de celui propos par dfaut (iso8859-1) pour les sous-titres. La premire tape est de s'assurer que la fonte n'est pas dj inclus dans l'archive officielle de la GeeXboX. Pour cela, utilisez le generator et regardez si la fonte ne s'y trouve pas dj. La plupart des jeus de caractres sont dj prsents dans l'archive officielle mais certains n'ont pas pu l'tre en raison de leur taille excessive (les polices asiatiques en particulier). * Fontes gnriques : Pour rajouter le support de nouvelles fontes, vous n'avez qu' extraire votre police dans le rpertoire font et ajouter le nom de votre fonte la variable FONT du fichier language/lang.conf. * Support du Chinois : Pour inclure les fontes Chinoise dans l'ISO, vous devez au pralable rcuprer l'archive big5 ou gb2312 utilise par MPlayer : http://www1.mplayerhq.hu/MPlayer/contrib/fonts/chinesefonts/ et la dcompresser et copier dans le rpertoire ./font/big5 ou ./font/gb2312 du generator le contenu du rpertoire se terminant par `24` (taille de fonte valant 24) Par exemple, si vous souhaitez utiliser la police 'gb2312 kai' : - Pour les utilisateurs de systmes GNU/Linux : wget http://www1.mplayerhq.hu/MPlayer/contrib/fonts/chinesefonts/gb2312-kai.tar.bz2 tar -jxf gb2312-kai.tar.bz2 mv gb2312-kai/gkai00mp24 ../path/to/generator/font/gb2312 - Pour les utilisateurs de Windows : Tlchargez le fichier l'adresse http://www1.mplayerhq.hu/MPlayer/contrib/fonts/chinesefonts/gb2312-kai.tar.bz2 Ouvrez le avec WinZip ou quivalent. Extrayez le contenu du rpertoire gb2312-kai\gkai00mp24 de l'archive vers le rpertoire ..\path\to\generator\font\gb2312 du generator. | INSTALLATION | ~~~~~~~~~~~~ Avant tout, vous devez crer une partition de type FAT16/32 ou EXT2/3 d'une taille d'environ 16 Mo minimum. Puis, vous pouvez installer la GeeXboX depuis Linux en lanant simplement ./installator.sh Rpondez ensuite toutes les questions. Lisez les questions avec attention et stoppez l'installation si vous ne comprenez pas ce que vous faites. Mais le plus simple reste encore de dmarrer la GeeXboX depuis le CD est de taper "install" au prompt de dmarrage. | BOOT PXE | ~~~~~~~~ Oui, la GeeXboX est capable de booter depuis le rseau sur une machine sans disque ! Pour obtenir cela il vous faudra : - un serveur DHCP - un serveur TFTP - un serveur NFS - une machine supportant le PXE :-) * Depuis un poste GNU/Linux : ------------------------- Il faut tout d'abord configurer le server DHCP pour qu'il envoie les info de boot PXE. Voil un exemple de configuration avec isc dhcp : allow booting; allow bootp; subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.128 192.168.0.192; option subnet-mask 255.255.255.0; option broadcast-address 192.168.0.255; next-server 192.168.0.1; filename "/tftpboot/GEEXBOX/boot/pxelinux.0"; } L'option next-server est l'adresse du server TFTP. Ensuite il faut configurer votre serveur TFTP (tel que atftpd) pour qu'il serve le rpertoire /tftpboot et copier une arborescence GEEXBOX complte dans ce rpertoire. Par exemple il est possible de copier le contenu d'un CD de GeeXboX depuis un linux AVEC L'OPTION CDROM TRANSPARENT DECOMPRESSION ACTIVE !! (pour vrifier cela, il suffit de regarder si le fichier sbin/init de l'arborescence GeeXboX ne contient pas de caractres totalement incohrents). Si vous avez compil la GeeXboX vous mme a partir des sources, il est aussi possible de gnrer l'arborescence GEEXBOX avec make pxe. Ensuite il faut diter le fichier /tftpboot/GEEXBOX/boot/pxelinux.cfg/default pour faire correspondre le nfsroot au bon chemin NFS vers l'arborescence GeeXboX. Enfin il reste a configurer NFS pour qu'il exporte l'arborescence GEEXBOX avec un fichier /etc/exports ressemblant ceci : /tftpboot/GEEXBOX (ro) et un /etc/hosts.allow ressemblant : ALL: ALL Ca devrait tre bon. Reste a booter la machine PXE et a voir ce qu'il se passe. * Depuis un poste Microsoft Windows : --------------------------------- Pour dmarrer en mode PXE depuis un systme Microsoft Windows, il vous faudra les logiciels suivants : * Un serveur TFTP et un serveur DHCP ("tftpd32" remplira cette tche, il est disponible l'adresse http://tftpd32.jounin.net/). * Un serveur NFS (comme par exemple "Allegro NFS server", disponible l'adresse http://opensource.franz.com/nfs/). * Une machine supportant le boot en mode PXE. Tlchargez et dcompressez (aucune installation n'est requise) le dossier tftpd32 quelque part sur votre disque, par exemple C:\tftpd32 Copiez y une arborescence GEEXBOX complte : C:\tftpd32\GEEXBOX Lancez tftpd32 : - Slectionnez le dossier C:\tftpd32 pour "current directory". - choisissez l'interface (carte rseau) utiliser en haut dans "server interface". Ici dans l'exemple une carte avec l'IP 192.168.0.1 - Cliquez sur "setting" et vrifiez que "DHCP server" soit bien coche. - Dans l'onglet "DHCP server", remplissez les champs, en suivant cet exemple : (se rfrer une documentation plus approfondie sur le fonctionnement d'un serveur DHCP pour plus de dtails) * IP starting pool : 192.168.0.10 * Size of pool : 10 * Boot file : ./GEEXBOX/boot/pxelinux.0 * WINS/DNS server : 192.168.0.254 * Default router : 192.168.0.254 * Mask : 255.255.255.0 * Domain name : mydomain.net - Faites "save" pour appliquer les modifications. La premire partie est termine, normalement en dmarrant la machine cliente (qui doit lancer la GeeXboX), on devrait apercevoir le chargement jusqu' l'affichage du logo. Le systme se bloquera alors, car le serveur NFS n'a pas encore t configur. Installez "Allegro NFS Server" et configurez le comme suit : - Onglet Exports : * faites un "new name" : et nommez le "/tftpboot/GEEXBOX" * dans "path", juste en dessous : selectionnez le rpertoire "C:\tftp32\GEEXBOX" * dans "allowed host list", selectionnez "all". * "Read write" , et "read only user list", selectionnez "root" et "everyone" (pour avoir un log, il suffit de tout cocher dans le dernier onglet). Faites "Appliquer". N'oubliez pas de modifier le fichier C:\tftp32\GEEXBOX\boot\pxelinux.cfg\default et d'y changer l'adresse IP "192.168.0.2" en "192.168.0.1" (ou toute adresse que vous aurez choisie). Il suffit maintenant de dmarrer la machine cliente pour amorer la GeeXboX par le rseau. | COMPILATION | ~~~~~~~~~~~ Tout d'abord, regardez la partie de configuration ci-dessous. Typiquement, la compilation s'effectue simplement au moyen de : make Ou vous pouvez directement compiler et graver l'ISO via : make burn Une fois cela fait, vous pouvez regagner de l'espace disque en effaant l'arborescence de compilation via : make clean ou en effectant un nettoyage complet, liminant mme les sources tlcharges : make distclean Il existe galement des commandes plus avances si vous dsirez effectuer des modifications en profondeur au niveau de la GeeXboX : scripts/get package # tlcharge le paquetage scripts/unpack package # prpare le paquetage scripts/build package # compile le paquetage scripts/install package # installe le paquetage dans $INSTALL scripts/clean package # nettoie l'arborescence du paquetage scripts/clean --full package # nettoie les sources du paquetage make exec # lance la GeeXboX dans une cellule # ATTENTION: ceci est une fonction # exprimentale. # Utilisez l vos propres risques. Si vous avez effectu une version modifie de la GeeXboX, vous pouvez : construire une archive rduite tar.bz2 via : make dist ou une archive complte (avec l'intgralit des sources) au moyen de : make fulldist ou construire le gnrateur d'ISO : make generator ou encore l'installateur : make installator ou enfin une arborescence PXE : make pxe | CONFIGURATION | ~~~~~~~~~~~~~ * Options Globales : C'est la premire chose dont vous aurez vous soucier avant d'essayer de compiler la GeeXboX. Elles sont contenues dans le fichier config/options, et devraient tre suffisamment explicites. * Linux : Il s'agit d'une configuration Linux classique (packages/linux/linux.conf). Vous pouvez diter le fichier la main, ou via scripts/unpack linux suivi de make menuconfig -C build/linux-* (ou utiliser votre mthode prfre en lieu et place de menuconfig). Puis, vous devrez sauvegarder votre fichier build/linux-*/.config dans packages/linux/linux.conf. * Lirc : Lirc vous permet de contrler la GeeXboX en utilisant une tlcommande. En premier lieu, vous aurez choisir le fichier correspondant votre tlcommande dans build/lirc-*/remotes (aprs avoir effectu scripts/unpack lirc) et l'ajouterez packages/lirc/install. Puis, choisissez votre priphrique (par dfaut, il s'agit de /dev/ttyS0 (COM1)) et le pilote lirc et mettez le tout dans un fichier nomm packages/lirc/lircd_$REMOTE. Vous pourrez ensuite choisir l'affectation des touches dans le fichier packages/lirc/lircrc_$REMOTE. Pour chaque affectation, vous aurez chosir un bouton (choisissez leurs noms dans le fichier de dfinitions de la tlcommande) et associez lui une action. L'action sera une de celle disponible dans MPlayer (vous pouvez trouver une liste dans le fichier html build/MPlayer-*/DOCS/documentation.html#commands). | MODIFICATION | ~~~~~~~~~~~~ La premire chose dont vous aurez vous soucier concerne le script d'initialisation. En fait, ils sont 2. Le premier est dans packages/initrd/linuxrc mais vous ne devriez pas avoir besoin de le modifier. Le second est config/init et c'est dans ce dernier que vous aurez de probables modifications effectuer. Puis, vous pourrez tre intresss par l'ajout de nouveaux paquetages. Un paquetage n'est implement qu'un ensemble de scripts qui se doivent de suivre certaines rgles. Tous les scripts se doivent d'tre placs dans un rpertoire dont le nom concide avec celui du programme que vous dsirez ajouter, lui-mme dans le rpertoire packages. Voici une liste de scripts que vous aurez crer : - url : simple liste d'URLS o sont disponibles les sources. - unpack : que faire aprs avoir dcompresser les sources. Par exemples, vous pouvez modifier les fichiers de configuration. Ceci ne concerne pas l'application de patchs. - need_build : appel lorsque le paquetage a dj t compil, afin de s'assurer qu'il n'aura plus besoin d'tre recompil. Il devrait supprimer le fichier .stamps/"package name"/build si le paquetage ncessite d'tre reconstruit. - build : l'ensemble des tapes ncessaires pour compiler le programme. - install : l'ensemble des tapes ncessaires l'installation du programme. Le prfixe d'installation devrait tre $INSTALL. De plus, le rpertoire dcrivant un paquetage peut contenir de nombreux sous-rpertoires additionnels : - config : c'est l que sont situs tous les fichiers de configuration. Ces derniers peuvent tre, soit utiliss par le script build pour compiler le paquetage, soit par le script install pour tre copis dans le rpertoire /etc de destination. - scripts : ce sous-rpertoire peut contenir des scripts d'initialisation li au paquetage courant et qui seront installs par le script install - patches : ce sous-rpertoire peut contenir des patchs destins tre appliqus aux sources du paquetage, au moment du script unpack. - sources : si des fichiers sont prsents dans ce sous-rpertoire, ils seront automatiquement copis dans l'arbre de compilation du paquetage. - init.d : contient les scripts d'initialisation qui seront xcuts au chargement du systme. Vous devez avoir l'esprit que les applications qui tournent sous le systme GeeXboX doivent avoir t compil avec la librairie uClibc. Enfin, la meilleure manire d'ajouter un paquetage est de s'inspirer de la faon dont les actuels sont faits. | LICENSE | ~~~~~~~ Tous les programmes utiliss par GeeXboX sont protgs par leurs licenses respectives. Tous ces logiciels sont libres et, pour la plupart, protgs par une licence GPL (License Publique Gnrale) La GeeXboX elle-mme, c'est dire tous les scripts utilis et le systme de compilation, est couvert par la licence GNU-GPL. geexbox-0.98.7/DOCS/README_it.txt0000644000175000017500000004147510335100766015220 0ustar aurelaurel ooooo oo o o oo o M" "Mo Mo oM" M Mo oM" M oM""Mo oM""Mo "Mo" Mo"""o oM""Mo "Mo" M """M MooooMM MooooMM oMMo M "M M M oMMo "o oM M o M o oM Mo M oM M M oM Mo "MoooM"M "MooM" "MooM" M" "M M"ooo" "MooM" M" "M | INFORMAZIONI | ~~~~~~~~~~~~ GeeXboX una sorta di software per "divx box". Infatti, un boot CD stand-alone che permette di vedere film o ascoltare musica. Supporta molti formati, come avi, mpeg, divx, ogm, rm, mp3, ogg, dvd, vcd e cdda. Supporta inoltre qualche telecomando IR e il TV-Out per qualche scheda grafica. Questo archivio contiene gli script che servono per creare un'immagine iso di GeeXboX. | REQUISITI | ~~~~~~~~~ Per creare una iso di GeeXboX, occorre una delle seguenti configurazioni : - un sistema GNU/Linux con mkisofs e mkzftree. - un sistema MAC OS X con mkisofs e mkzftree. - un sistema windows. Per installare GeeXboX, occorre : - un sistema GNU/Linux con syslinux. Per compilare GeeXboX, occorrono dei tools classici : - un sistema GNU/Linux funzionante. - il compilatore C gcc. - GNU make - il comando patch. - l'assembler nasm. - bzip2 e gzip. - mkfs.ext2 e mkfs.vfat - il tool di download wget (non occorre per il pacchetto competo di GeeXboX). - mkisofs e mkzftree per creare l'immagine iso. - mkzftree per comprimere i file nell'immagine iso. - cdrecord (per masterizzare l'immagine). E anche 500 MB di spazio libero su disco. | PERSONALIZZAZIONE | ~~~~~~~~~~~~~~~~~ Quando GeeXboX installato su disco o generato, facile da personalizzare. E' possibile aggiugnere alcuni codecs proprietari come rv9 o wmv9, semplicemente aggiugnendoli nella cartella GEEXBOX/codecs. Si possono trovare questi codecs nel pacchetto: http://www.geexbox.org/releases/geexbox-extra-codecs-nonfree.tar.gz E' possibile inoltre modificare molte opzioni. Questo possibile modificando semplicemente qualche file di testo. * Linguaggio : E' possibile selezionare il linguaggio di menu preferito seguendo la seguente procedura: - Utenti GNU/Linux: Modificare lo script generator.sh prima di eseguirlo, cambiando la linea verso l'inizio del file: "LANG=en" con il linguaggio preferito. Esempio: se sei italiano, cambia la linea in "LANG=it". - Utenti Microsoft Windows: Quando viene eseguito, generator.exe permette di selezionare la lingua preferita tramite una lista a tendina. NB : Questa modifica non ha effetti sul linguaggio del DVD (leggere la sezione MPlayer section). Per la lista dei linguaggi disponibili sfogliare la directory "language". Se la tua lingua non disponibile, puoi tradurre il men nella tua lingua. Questo comporta la creazione dei file language/menu_LANG.conf e language/help_LANG.txt. * MPlayer : In questa sezione possibile effettuare la maggior parte della configurazione e tweaking. Le opzioni sono salvate nel file packages/MPlayer/mplayer.conf. E' possibile modificare opzioni come la dimensione del font dell'OSD (subfont-text-scale). E' possibile inoltre aggiungere molte opzioni come la lingua predefinita per il DVD (es: alang=it,en). Il posto migliore per trovare tutte le opzioni, per utenti linux, la manpage di MPlayer (man -l build/MPlayer-*/DOCS/mplayer.1). Inoltre consigliato visitare la documentazione di MPlayer (in build/MPlayer-*/DOCS o al link http://mplayerhq.hu/DOCS/). un altro file che possibile modificare packages/MPlayer/menu.conf. E' possibile rimuovere gli elementi non utilizzati, oppure possibile tradurli nella propria lingua. L'ultimo file utile per la configurazione packages/MPlayer/build che contiene la selezione di opzioni che sono incluse in MPlayer. * uscita TV : L'abilitazione del TV-Out possibile con l'aiuto di alcune piccole applicazioni dedicate alle varie marche di schede video. Attualmente viene utilizzato atitvout per le schede ATI, s3switch per le schede S3 e nvtv per le schede nVidia cards (e, ove possibile, schede intel i810 e 3dfx). La configurazione di questi programmi effettuata in config/tvout. In questo file possibile scegliere lo standard TV (pal, ntsc...) ed inoltre possibile modificare le opzioni specifiche per nvtv. Si pu definire l'aspetto (4:3 o 16:9) in questo file alla linea: TVOUT_ASPECT="4:3" Questo parametro verr utilizzato sia per il TVOut che per i monitor. E' possibile specificare anche l'altezza/larghezza dello schermo e le frequenze orizzontale e verticale, in caso di schermi non standard, come WideScreens or videoproiettori. Questo pu essere fatto modificando il file /etc/mplayer/mplayer.conf. I parametri predefiniti sono indicati di seguito (decommentare le linee relative alle frequenze se si vogliono utilizzare): screenw=800 screenh=600 #monitor-hfreq=31.5k-50k #monitor-vfreq=50-90 * Lirc : E' possibile scegliere uno dei telecomandi supportati modificando il file GEEXBOX/etc/remote. Fare attenzione a scegliere anche il corrispondente ricevitore ir nello stesso file di configurazione. Se si vuole modificare la configurazione dei tasti del proprio telecomando, modificare il file GEEXBOX/etc/lirc/lircrc_TELECOMANDO. * rete : E' possibile configuare la rete nel file GEEXBOX/etc/network. Si pu scegliere l'indirizzo IP utilizzato da GeeXboX (il predefinito di utilizzare DHCP e se non funziona, utilizzare l'ip 192.168.0.54). E' possibile inoltre specificare un login e una password che sarnno usati per connettersi con le condivisioni windows (predefinito: anonimo). E' inoltre possibile dichiarare i mount NFS in GEEXBOX/etc/nfs. * wifi : Come impostazioni predefinite, GeeXboX cerca di rilevare automaticamente le impostazioni di rete. Se sulla macchina sono installate sia una scheda di rete (NIC) e una scheda WiFi, solo quest'ultima sar impostata. Per impostare correttamente la rete, pu essere necessario modificare il file /etc/network. In questo file ci sono 4 linee riguardanti le schede wireless : * PHY_TYPE="auto" # Tipo fisico di rete (auto|ethernet|wifi) * WIFI_MODE="managed" # metodo di utilizzo Wifi (managed|ad-hoc) * WIFI_WEP="" # chiave WEP Wifi * WIFI_ESSID="any" # SSID Wifi Con queste linee possibile configurare la gran parte delle impostazioni. E' possibile lasciare la rilevazione automatica oppure forzare l'uso della scheda ethernet o dell'adattatore WiFi. Allo stesso modo, possibile scegliere tra il metodo managed e ad-hoc e definire la propria chiave WEP e SSID. * gateway : GeeXboX supporta l'accesso a Internet. Nel caso in cui tu abbia una connessione Internet, possibile condividerla con il proprio multimedia box, utilizzando un router o un gateway. Per fare ci, necessario definire l'indirizzo IP del gateway nel file /etc/network. * GATEWAY="" # Gateway IP ("" per DHCP o nessuna connesione internet) * configuraqzione tv : GeeXboX supporta le entrate e i sintonizzatori TV. Il sistema cercher di rilevare automaticamente la scheda e il sintonizzatore. E' possibile forzare le impostazioni e saltare i tentativi di rilevamento. Modificare il file /etc/tvcard come descritto : #TV CARD/TUNER Model (AUTO for autodetection or look at the following urls) #http://www.linuxhq.com/kernel/v2.6/2/Documentation/video4linux/CARDLIST.bttv #http://www.linuxhq.com/kernel/v2.6/2/Documentation/video4linux/CARDLIST.tuner TV_CARD=AUTO TV_TUNER=AUTO TVIN_STANDARD=pal Lasciare il parametro AUTO se si vuole mantenere il rilevazione automatica, oppure sostiruirlo con il numero del tipo di scheda e sintonizzatore in possesso, in base alle informazioni dei precedenti URL. Prestare molta attenzione: per forzare il tipo si scheda e sintonizzatore occorre conoscere l' ESATTO MODELLO del proprio hardware. Successivamente, dovrebbe essere possibile utilizzare l'input TV (Composito e S-VHS) della propria scheda TV. Allo stesso modo, sar possibile usare il sintonizzatore per guardare la TV. Per fare ci, necessario specificare la regione di appartenenza e la frequenza dei canali TV che si vogliono visualizzare. Anche questa volta basta modificare il file /etc/tvcard : # TV Channels # Syntax : CHAN="Channel Frequency:Channel Title" # Example : # CHAN="29:France 2" # CHAN="K08:Canal +" # TV Channels List # Available : france, europe-east, europe-west, us-bcast, us-cable CHANLIST=france Prestare attenzione nell'usare la stessa sintassi descritta sopra, affinch i canali TV siano presenti nel menu principale. * configurazione audio : GeeXboX supporta sia l'ourput audio analogico che digitale attraverso i connettori jack o RCA SPDIF. L'uscia predefinita quella analogica. E' possibile cambiare tale impostaizone modificando il file /etc/audio : # Output using SPDIF (yes/no), otherwise ANALOG output SPDIF=no Ricorda che necessario impostare l'uscita su SPDIF se si vuole collegare la scheda audio ad un amplificatore esterno per decodificare gli stream AC3/DTS (utilizzando il passthrough mode). * Scheda DXR3/Hollywood+ : Gli utenti con questo tipo di scheda di decompressione hardware NON hanno bisogno di una scheda video o audio per utilizzare GeeXboX. Per contro, possibile utilizzare solo l'uscita TV con le schede DXR3 (niente monitor). E' necessario specificare il corretto stadard (PAL/NTSC) nel file /etc/tvout e il tipo di uscita audio da utilizzare (Analogica o SPDIF) in /etc/audio. | CREAZIONE | ~~~~~~~~~ Prima di tutto, leggere la sezione di personalizzaizone qui sopra. Una vota personalizzata, possibile crare la iso sotto Linux, lanciando ./generator.sh o sotto windows, lanciando generator.exe | INSTALLAZIONE | ~~~~~~~~~~~~~ Inizialmente necessario creare una partizione FAT16 con circa 16 MB di spazio libero. E' possibile installare GeeXboX sotto linux lanciando ./installator.sh E rispondendo alle domande poste dal programma. Ponete molta attenzione durante questi passaggi. Leggere due volte ogni domanda e uscire dall'installazione se non si capisce una domanda. | PXE BOOT | ~~~~~~~~ S, GeeXboX pu avviarsi dalla rete da una stazione denza disco! Per raggiungere lo scopo necessario: - un server DHCP - un server TFTP - un server NFS - una stazione che pu utilizzare PXE :-) Configurare il server dhcp affinch invii le informazioni di boot PXE. Ecco un esempio con isc dhcp : allow booting; allow bootp; subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.128 192.168.0.192; option subnet-mask 255.255.255.0; option broadcast-address 192.168.0.255; next-server 192.168.0.1; filename "/tftpboot/GEEXBOX/boot/pxelinux.0"; } L'opzione next-server l'indirizzo del server TFTP. Configurare il server TFTP (ad esempio atftpd) affich pubblichi la cartella /tftpboot e copiare l'intera direcroty GEEXBOX in questa cartella. Ad esempio, si pu copiare il contenuto di un CD GeeXboX da un sistema linux CON "CDROM TRANSPARENT DECOMPRESSION" ABILITATA !! (per verificare questo, controllare il file sbin/init nella directory GeeXboX e verificare che non contenga sporcizia) Se stato compilato GeeXboX dai sorgenti, possibile anche generare la directory GEEXBOX con make pxe. Modificare il file /tftpboot/GEEXBOX/boot/pxelinux.cfg/default per impostare nfsroot al giusto percorso NFS della directory GEEXBOX. Infine impostare NFS per esportare la directory GEEXBOX tramite /etc/exports contenente una riga simile alla seguente : /tftpboot/GEEXBOX (ro) e /etc/hosts.allow contenente qualcosa come: ALL: ALL Dovrebbe funzionare. Avviare la stazione PXE e vedere quello che accade. | COMPILAZIONE | ~~~~~~~~~~~~ Prima di tutto consigliabile controllare la sezione di configurazione subito sotto (almeno la parte generale). Dopo di ci, compilare l'immagine iso con : make Oppure possibile masterizzare direttamente l'immagine con : make burn Quando la compilazione completata, possibile liberare spazio su disco pulendo la directory di compilazione : make clean oppure facendo una pulizia completa, eliminando anche i sorgenti scaricati : make distclean Ci sono anche comandi pi avanzati, se si vuole fare un po' di hack di GeeXboX: scripts/get package # scarica il pacchetto scripts/unpack package # scompatta e prepara il pacchetto scripts/build package # compila il pacchettobuild scripts/install package # installa il pacchetto con il prefisso $INSTALL scripts/clean package # pulisce la directory dei sorgenti del pacchetto make exec # lancia direttamente GeeXboX in una [prigione] # ATTENZIONE: funzione sperimentale, # usare a proprio rischio. Se avete fatto una versione modificata di GeeXboX, possibile compilare facilmente un piccolo tar.bz2 con : make dist oppure un tar completo (contenente tutti i sorgenti) con : make fulldist oppure un geexbox generator con : make generator oppure un geexbox installator con : make installator oppure una directory per pxe con : make pxe | CONFIGURAZIONE | ~~~~~~~~~~~~~~ * Opzioni generali : Questa la prima cosa alla quale prestare attenzione prima di provare a compilare GeeXboX. Tali opzioni sono memorizzate nel file config/options, e dovrebbero spiegarsi da sole. Si pu scegliere la famiglia di CPU, il tema, e se si vogliono font truetype o no. E' possibile modificare la configurazione del masterizzatore cd per poter masterizzare direttamente l'immagine iso. * Linux : Questa una configurazione classica di linux (packages/linux/linux.conf). E' possibile modificarla a mano, oppure usare anche scripts/unpack linux e make menuconfig -C build/linux-* (o utilizzare il metodo preferito al posto di menuconfig). Infine fare un backup di build/linux-*/.config in packages/linux/linux.conf. * Lirc : Lirc permette di controllare GeeXboX usando un telecomando. Inizialmente occorre scegliere il file che descrive il proprio telecomando in build/lirc-*/remotes (dopo aver eseguito scripts/unpack lirc) e aggiungerlo in packages/lirc/install. Fatto questo, occorre scegliere la periferica (la predefinita /dev/ttyS0 (COM1)) e il driver lirc, inserendoli in un file chiamato packages/lirc/lircd_$TELECOMANDO. E' possibile definire i tasti nel file packages/lirc/lircrc_$TELECOMANDO. Per ogni definizione occorre selezionare un tasto (utilizzando i nomi nel file di descrizione del telecomando) e associare un'azione a tale tasto. L'azione una delle azioni di MPlayer's (si pu trovare una lista nel file html build/MPlayer-*/DOCS/documentation.html#commands). | HACKING | ~~~~~~~ La prima cosa da controllare sono gli script di inizializzazione. Infatti, ci sono due script di installazione. Il primo in packages/initrd/linuxrc, ma non ci dovrebbe essere bisogno di modificarlo. Il secondo in config/init ed quello in cui possibile aggiongere qualche personalizzazione. La cosa successiva che pu interessare la creazione di un nuovo "pacchetto". Un pacchetto un insieme di script che seguono alcune regole. Tutti gli script devono essere memorizzati in una directory chiamata come il programma che si vuole "impacchettare", che sta nella directory packages. Di seguito la lista degli script da cerare : - url : una lista di url dove trovare i sorgenti del programma. - unpack : cosa fare dopo aver scompattato i sorgenti. Ad esempio, possibile modificare i file di configurazione. Questo non include l'applicazione delle patch. - need_build : chiamato quando il pacchetto gi compilato, per essere sicuri che non necessita di ricompilazione. Dovrebbe eliminare il file .stamps/"nome pacchetto"/build se il pacchetto necessita di ricompilazione. - build : tutti i passaggi necessari per compilare il programma. - install : tutti i passaggi necessari per installare il programma. Il prefisso di installazione deve essere $INSTALL. Quando un file degli url chiamato patch-nome_programma-... applicato automaticamenteit ai sorgenti scompattati del programma. Ricordare inoltre che il software utilizzato in GeeXboX deve essere compilato con il gcc wrapper uClibc. Se si ancora incerti, la via migliore per creare un pacchetto guardare come sono fatti gli altri pacchetti. | LICENZA | ~~~~~~~ Tutti i programmi utilizzati da GeeXboX sono protetti dalle rispettive licenze. Sono tutti software liberi e molti di questi sono regolati dalla GNU General Public License. GeeXboX per s, intesa come tutti gli script utilizzati nel processo di compilazione, sono regolati dalla GNU General Public License. geexbox-0.98.7/DOCS/README_ru.txt0000644000175000017500000010164110335100766015222 0ustar aurelaurel ooooo oo o o oo o M" "Mo Mo oM" M Mo oM" M oM""Mo oM""Mo "Mo" Mo"""o oM""Mo "Mo" M """M MooooMM MooooMM oMMo M "M M M oMMo "o oM M o M o oM Mo M oM M M oM Mo "MoooM"M "MooM" "MooM" M" "M M"ooo" "MooM" M" "M О GeeXboX. GeeXboX - своего рода "divx коробка". Фактически, это независимый загрузочный CD, который позволяет смотреть фильмы и слушать музыку. GeeXboX поддерживает много форматов, например, такие как: avi, mpeg, divx, ogm, rm, mp3, ogg, dvd, vcd и cdda. GeeXboX также поддерживает некоторые ir-пульты дистанционного управления и tv-out для некоторых графических карт. Этот архив содержит необходимые сценарии для сборки iso образа GeeXboX. Требования. Для генерации iso образа GeeXboX необходимо одно из следующего: - GNU/Linux система с mkisofs и mkzftree - MAC OS X система с mkisofs и mkzftree - windows система Для установки GeeXboX, Вам потребуется: - GNU/Linux система с syslinux Для сборки GeeXboX, Вам будут необходимы некоторые классические инструменты: - работающая GNU/Linux система - gcc C компилятор - GNU make - patch - nasm assembler - bzip2 и gzip - mkfs.ext2 и mkfs.vfat - wget загрузчик (не требуется для полного набора GeeXboX) - mkisofs и mkzftree для сборки iso образа - mkzftree для сжатия файлов iso образа - cdrecord (для прожига iso образа) Так же необходимы 1.2 Гб свободного места на жестком диске. Персонализация Когда GeeXboX установлен на жесткий диск или сгенерирован, его довольно легко персонализировать. Вы можете добавить некоторые проприетарные кодеки, такие как rv9 или wmv9, просто, поместив их в директорию GEEXBOX/codecs. Вы можете найти эти кодеки в пакете на http://www.geexbox.org/releases/geexbox-extra-codecs-nonfree.tar.gz Также Вы можете изменить много опций. Для этого просто отредактируйте некоторые текстовые файлы. Язык - можно легко выбрать предпочитаемый Вами язык меню, следуя приведенной ниже процедуре: - GNU/Linux пользователи: Отредактируйте скрипт generator.sh перед его выполнением и измените строку в начале: "LANG=en" на предпочитаемый Вами язык. Например, если Вы француз, измените это так "LANG=fr". - Microsoft Windows пользователи: После запуска generator.exe предоставляет комбинированный список, который позволяет выбрать, предпочитаемый Вами язык. Замечание: это не влияет на язык DVD (смотрите раздел MPlayer). Пожалуйста, просмотрите директорию "language", в ней список доступных языков. Если Ваш язык не доступен, Вы можете перевести меню на Ваш язык. Выполнить это просто, создав language/menu_LANG.conf и language/help_LANG.txt, и добавив LANG в language/lang.conf. MPlayer: Здесь Вы можете установить большинство параметров конфигурации и выполнить настройки. Опции задаются в файле packages/MPlayer/mplayer.conf. Можно модифицировать такие опции, как, например, размер OSD шрифта (subfont-text-scale). Так же можно добавить много опций, таких, как предопределенный язык DVD (например, alang=fr,en). Лучшее место, где можно найти описание - это руководство MPlayer для пользователей Linux (man -l build/MPlayer-*/DOCS/mplayer.1). Вы так же должны ознакомиться с документацией MPlayer (в build/MPlayer-*/DOCS или на http://mplayerhq.hu/DOCS/). Другой файл, который Вы можете модифицировать - это packages/MPlayer/menu.conf. Можно убрать части не нужные Вам, или например, перевести, нужные части на Ваш язык. Затем, последний файл, на который следует обратить внимание это packages/MPlayer/build. Он содержит набор опций, которые будут встроены в MPlayer. tv-out: Включение tv-out достигается с помощью набора маленьких программ, предназначенных для различных видеокарт разных брэндов. В настоящее время, мы используем atitvout для ATI карт, s3switch для S3 карт и nvtv для nVidia карт (и, возможно, intel i810 и 3dfx). Эти программы конфигурируются в config/tvout. Здесь Вы можете выбрать, желаемый tv стандарт (pal, ntsc...), а так же модифицировать специальные опции для nvtv. # TV Output Standard (ntsc/pal/secam) TVOUT_STANDARD=pal Пожалуйста, заметьте, что Вы так же можете определить выходное соотношение (скажем 4:3 или 16:9 экран) в этом файле, редактируя строку: TVOUT_ASPECT="4:3" Этот параметр будет использоваться и для tv-out и для обычного (CRT/TFT) дисплеев. Вы можете так же определить желаемые значения высоты/ширины Вашего дисплея и горизонтальные и вертикальные частоты для таких случаев, как широкий экран или видеопроектор. Это может быть выполнено, редактированием /etc/mplayer/mplayer.conf файла. Параметры по-умолчанию показаны ниже (пожалуйста, раскомментируйте строки, относящиеся к частоте, если Вы хотите использовать их): screenw=800 screenh=600 #monitor-hfreq=31.5k-50k #monitor-vfreq=50-90 Lirc : Вы можете выбрать один из поддерживаемых пультов дистанционного управления, редактируя файл GEEXBOX/etc/remote. Так же позаботьтесь о выборе соответствующего ir приемника в том же конфигурационном файле. Если Вы хотите изменить привязку клавиш Вашего пульта дистанционного управления, посмотрите в файле GEEXBOX/etc/lirc/lircrc_REMOTE. Сеть: Вы можете сконфигурировать сеть в файле GEEXBOX/etc/network. Здесь Вы можете выбрать ip адрес, используемый GeeXboX (изначально используется DHCP и если это не срабатывает, возвращаемся к 192.168.0.54). Вы можете также определить логин и пароль, которые будут использоваться для соединения с доступными ресурсами windows (изначально будет только соединение с анонимно доступными ресурсами). Вы можете так же объявить монтирование некоторых NFS в GEEXBOX/etc/nfs. wifi: Изначально, GeeXboX пытается автоматически определить Ваши сетевые установки. Если Вы имеете обе традиционные NIC и WiFi карты только последняя будет задействована. Вы можете изменить /etc/network файл для задания Ваших сетевых установок. В нем 4 строки относятся к беспроводным картам : - PHY_TYPE="auto" # физический тип сети (auto|ethernet|wifi) - WIFI_MODE="managed" # wifi рабочий режим (managed|ad-hoc) - WIFI_WEP="" # wifi WEP ключ - WIFI_ESSID="any" # wifi SSID Эти строчки позволяют Вам сконфигурировать большинство установок. Вы можете разрешить включение автоопределения или явно указать использование ethernet или wifi адаптеров. Тем же путем можно выбрать между управляемым и ad-hoc режимом и определить Ваш WEP ключ и SSID. gateway: GeeXboX поддерживает доступ к Internet. В случае, когда у Вас есть соединение с Internet, Вы можете сделать его доступным с помощью Вашего мультимедиа набора, используя router или gateway. Для этого, просто задайте gateway ip адрес в файле /etc/network. - GATEWAY="" # Gateway ip ("" для DHCP или отсутствующего internet соединения) tv конфигурация: GeeXboX поддерживает tv ввод и приемники. Система усердно старается автоматически определить карту и приемник. Вы можете задать установки и отменить попытку автоопределения. Пожалуйста, измените /etc/tvcard, как показано: #TV CARD/TUNER Model (AUTO для автоопределения или посмотрите по следующим интернет адресам) #http://www.linuxhq.com/kernel/v2.6/2/Documentation/video4linux/CARDLIST.bttv #http://www.linuxhq.com/kernel/v2.6/2/Documentation/video4linux/CARDLIST.tuner TV_CARD=AUTO TV_TUNER=AUTO TVIN_STANDARD=pal Пожалуйста, оставьте AUTO параметр, если желаете задействовать автоопределение, или замените его номером Вашей карты и типом приемника, в соответствии с предыдущими интернет адресами. Пожалуйста, будьте осторожны: в случае указания карты и типов приемников, Вы должны знать ТОЧНЫЕ ХАРАКТЕРИСТИКИ Вашего аппаратного обеспечения. Выполнив это, Вы должны быть способны использовать tv входы (Composite и S-VHS) на Вашей tv карте. Тем же путем, Вы можете использовать приемник для просмотра tv. Для этого, Вы должны будете задать регион принадлежности и частоту tv каналов, которые Вы хотите смотреть. Еще раз, просто отредактируйте файл /etc/tvcard: # tv каналы # синтакс: CHAN="частота канала:название канала" # пример: # CHAN="29:France 2" # CHAN="K08:Canal +" # список tv каналов # доступные: france, europe-east, europe-west, us-bcast, us-cable CHANLIST=france Пожалуйста, будьте осторожны, когда редактируете каналы и просто используйте такой синтаксис, как указан выше, и tv каналы будут присутствовать в основном меню. аудио конфигурация: GeeXboX поддерживает оба - аналоговый и цифровой аудио выходы через стандартные JACK соединители или через RCA SPDIF. Изначально, установлен аналоговый выход. Вы можете изменить это, редактируя файл /etc/audio: # Выход, использующий SPDIF (yes/no), иначе ANALOG выход SPDIF=no Помните, что Вам потребуется установка выхода в SPDIF, если Вы захотите соединить Вашу звуковую карту с каким-нибудь внешним усилителем для декодирования AC3/DTS потоков (используя сквозной режим). видео обработка: Обработка это программный путь получения более гладкого и более точного представления Ваших видео записей. Это, тем не менее, задействует достаточно ресурсов CPU для изменения кадров но, как результат, они выглядят гораздо лучше. Используя внутренние фильтры MPlayer, GeeXboX позволяет выполнять h/v разблокирование, шумоподавление и автоподсветку для улучшения изображения. Изначально, обработка отключена для избежания запаздывания на слабых системах. Вы можете включить ее просто редактируя файл /etc/mplayer/mplayer.conf: # Установка обработки (h разблокирование, v разблокирование, шумоподавление, автоподсветка) # Поглощает CPU мощность, отключено для слабых систем, раскомментируйте для включения #vf=pp=hb:a/vb:a/dr:a/al:a DXR3/Hollywood+ карты: Пользователям с аппаратным обеспечением подобного типа разжимающих карт даже НЕ нужно иметь видео и звуковую карту для использования GeeXboX. Так, только tvout коннектор может быть использован с DXR3 картами (нет CRT дисплея). Вы можете установить требуемую нормировку образа (PAL/NTSC) в файле /etc/tvout и качество выходного аудио, которое Вы хотите использовать (Аналоговый или SPDIF) в /etc/audio. Генерация. Во-первых, ознакомьтесь с персонализационной частью приведенной выше. Затем, в основном, Вы можете сгенерировать iso под Linux, выполнив ./generator.sh или под windows, выполнив generator.exe Дополнительные подзаголовочные шрифты. Во-первых, убедитесь, что Ваш шрифт не включен в официальный GeeXboX пакет, используя генератор и определяя Ваш шрифт в вышеуказанной секции. Большинство шрифтов уже включены в официальный пакет, некоторые поддерживаются, но не включены по причине их чрезмерной величины (например, китайские шрифты). Общая поддержка: Для добавления поддержки новых шрифтов Вы должны извлечь ваш шрифт в шрифт директорию и добавить название шрифта в language/lang.conf - переменная FONTS. Поддержка китайского: Для включения китайских шрифтов в генерируемом geexbox iso Вы должны получить любой - big5 или gb2312 шрифт из распространяемых с MPlayer шрифтов: http://www1.mplayerhq.hu/MPlayer/contrib/fonts/chinesefonts/ и распаковать, и скопировать в директорию генератора ./font/big5 или ./font/gb2312, которая оканчивается на `24` (размер шрифта 24). Например, если Вы желаете использовать 'gb2312 kai' шрифт: - GNU/Linux пользователи: wget http://www1.mplayerhq.hu/MPlayer/contrib/fonts/chinesefonts/gb2312-kai.tar.bz2 tar -jxf gb2312-kai.tar.bz2 mv gb2312-kai/gkai00mp24 ../path/to/generator/font/gb2312 - Windows пользователи: Перепишите http://www1.mplayerhq.hu/MPlayer/contrib/fonts/chinesefonts/gb2312-kai.tar.bz2 Откройте его с WinZip И извлеките gb2312-kai\gkai00mp24 директорию из архива в ..\path\to\generator\font\gb2312 Поддержка корейского: Аналогично поддержке китайского шрифта, только получить euc-kr шрифт Вы можете из: http://www1.mplayerhq.hu/MPlayer/contrib/fonts/korean/ Хорошим выбором будет использование dotum20.tar.gz euc-kr шрифта и распаковка, и копирование в директорию генератора ./font/euc-kr путем, сходным с рассмотренным выше. Установка. Во-первых, Вам нужно создать FAT16/32 или EXT2/3 раздел с, по меньшей мере, 16 Мб свободного места. Затем, Вы можете установить GeeXboX под Linux, выполнив ./installator.sh Затем, ответьте на все вопросы. Будьте осторожны в течении этого шага. Прочтите дважды каждый вопрос и остановите установку, если Вы не понимаете один из вопросов. Но легчайшим путем установить GeeXboX, остается его загрузка с CD и ответ "install" на загрузочное сообщение isolinux. PXE загрузка. Да, GeeXboX может загружаться из сети на бездисковую станцию! Для достижения этого Вам потребуются: - DHCP сервер - TFTP сервер - NFS сервер - PXE совместимая станция :-) Использование GNU/Linux системы: Во-первых, сконфигурируйте Ваш dhcp сервер для передачи Вашей PXE загрузочной информации. Вот пример с isc dhcp: allow booting; allow bootp; subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.128 192.168.0.192; option subnet-mask 255.255.255.0; option broadcast-address 192.168.0.255; next-server 192.168.0.1; filename "/tftpboot/GEEXBOX/boot/pxelinux.0"; } next-server опция это адрес TFTP сервера. Затем сконфигурируйте Ваш TFTP сервер (так же, как atftpd), для сервера это /tftpboot директория, и скопируйте полностью GEEXBOX дерево в эту директорию. Например, Вы можете скопировать содержимое GeeXboX CD из linux С ВКЛЮЧЕНИЕМ ПРОЗРАЧНОЙ РАСПАКОВКИ CDROM! (для проверки этого, посмотрите в файл sbin/init в GeeXboX дереве и проверьте, что там не содержится мусора) Если Вы собираете GeeXboX самостоятельно из исходных текстов, Вы можете также сгенерировать GEEXBOX дерево с make pxe. Затем Вы должны отредактировать файл /tftpboot/GEEXBOX/boot/pxelinux.cfg/default для установки nfsroot в правильный NFS путь GEEXBOX дерева. Окончательно установите Ваш NFS для экспортирования GEEXBOX дерева с /etc/exports, содержащим, что-то вроде этого: /tftpboot/GEEXBOX (ro) и /etc/hosts.allow содержащим, что-то вроде : ALL: ALL Такая вот премудрость. Загрузите Вашу PXE станцию и смотрите, что получилось. Использование Microsoft Windows системы: В случае загрузки в PXE режиме с Windows хоста, Вам потребуется следующее программное обеспечение: - TFTP и DHCP сервер (например, "tftpd32", доступный по http://tftpd32.jounin.net/) - NFS сервер (например, "Allegro NFS server", доступный по http://opensource.franz.com/nfs/) - компьютер, поддерживающий PXE загрузочный режим Перепишите и разожмите (инсталляция не требуется) tftpd32 папку куда-нибудь на Ваш диск. В этом примере, давайте примем, что это: C:\tftpd32. Скопируйте полностью GEEXBOX дерево в ту же директорию (C:\tftpd32\GEEXBOX). Старт tftpd32: - Выберите C:\tftpd32 папку для "текущей директории" - Выберите интерфейс (сетевую карту) для использования в "сервер интерфейс" В данном примере - это 192.168.0.1 - Зайдите в "установки" и убедитесь, что DHCP сервер отмечен (включен) - В "DHCP сервер" закладке, заполните все поля, используя следующий пример: (Пожалуйста, сверьтесь с определенной документацией о DHCP в сети для лучшего понимания) - ip starting pool: 192.168.0.10 - size of pool: 10 - boot file: ./GEEXBOX/boot/pxelinux.0 - wins/dns server: 192.168.0.254 - sefault router: 192.168.0.254 - mask: 255.255.255.0 - domain name : mydomain.net - Кликните "save" для применения изменений. Первая часть выполнена, Вы можете теперь загрузить клиентский компьютер (который запускает GeeXboX) и просмотреть его загрузку до появления логотипа. Через некоторое время процесс замрет, потому что Ваш NFS сервер еще не установлен. Установите "Allegro NFS server" и заполните все поля следуя таким установкам: Экспортируемые закладки: - Добавить "новое имя": и вызвать его "/tftpboot/GEEXBOX" - В "путь" как выше: выберите "C:\tftp32\GEEXBOX" папку - В "допускаемом host списке" , выберите "все" - "Чтение запись", и "читать только список пользователей", выберите "root" и "все" (если Вы желаете проводить определенный учет, достаточно отметить все в последней закладке) Применение установок. Не забудьте изменить файл C:\tftp32\GEEXBOX\boot\pxelinux.cfg\default и изменить ip адрес "192.168.0.2" на "192.168.0.1" (или на один из предыдущих, установленных Вами). Достаточно запустить клиентский компьютер и теперь GeeXboX должен заработать прекрасно. Сборка. Во-первых, посмотрите в конфигурационную секцию сразу под, по крайней мере, главной частью. Затем, в основном, Вы можете построить iso с: make Или Вы можете непосредственно прожечь этот iso с: make burn После выполнения, Вы можете освободить дисковое пространство, путем очистки сборочного дерева: make clean или посредством выполнения полной очистки, даже убрав загруженные исходные тексты: make distclean Здесь есть также улучшенные команды, если Вы хотите подробнее разобраться с GeeXboX: scripts/get пакет # загрузить пакет scripts/unpack пакет # распаковать и подготовить пакет scripts/build пакет # собрать пакет scripts/install пакет # установить пакет с $INSTALL префиксом scripts/clean пакет # очистить дерево сборки пакета scripts/clean --полный пакет # очистить оба: сборку и деревья исходных текстов пакета make exec # запустить непосредственно GeeXboX в ограничении # ПРЕДУПРЕЖДЕНИЕ: это особо экспериментальная характеристика # используйте это на Ваш собственный риск Если Вы делаете подробную версию GeeXboX, Вы можете легко собрать маленький tar.bz2 для нее с: make dist или полный tar (содержащий все исходные тексты) с: make fulldist или geexbox генератор с: make generator или geexbox установщик с: make installator или pxe готовое дерево с: make pxe Конфигурация. Глобальные опции: Первая вещь, о которой Вы должны позаботиться, перед попыткой сборки GeeXboX, находиться в файле config/options, и должна быть сама по себе понятна. Linux: Это классическая Linux конфигурация (packages/linux/linux.conf). Вы можете отредактировать ее в ручную, или Вы можете так же выполнить scripts/unpack linux, а затем make menuconfig -C build/linux-* (или использовать метод предпочитаемый Вами в отличии от menuconfig). Затем Вы должны дублировать Ваш build/linux-*/.config в packages/linux/linux.conf. Lirc: Lirc позволяет Вам контролировать GeeXboX, используя пульт дистанционного управления. Во-первых Вы должны выбрать файл, соответствующий спецификации Вашего дистанционного управления build/lirc-*/remotes (после выполнения scripts/unpack lirc) и добавить его в packages/lirc/install. Затем Вы должны выбрать Ваше устройство (изначально это /dev/ttyS0 (COM1)) и lirc драйвер и поместить его в файл, называемый packages/lirc/lircd_$REMOTE. Затем Вы можете выбрать Вашу раскладку клавиш в файле packages/lirc/lircrc_$REMOTE. Для каждой раскладки Вы выбираете кнопку (их названия в файле определений дистанционного управления) и сопоставляете какое-либо действие для нее. Например, одно из действий Mplayer-а (Вы можете найти список в html файле build/MPlayer-*/DOCS/documentation.html#commands). Разработка. Первая вещь, на которую Вы должны обратить внимание - инициализационный скрипт. Фактически есть два инициализационных скрипта. Первый в packages/initrd/linuxrc, но Вам не нужно изменять его. Второй - в config/init и в нем Вы можете задать некоторые настройки. Следующая вещь, которая может заинтересовать Вас это создание нового "пакета". Пакет это всего лишь группа скриптов, составленных в соответствии с определенными правилами. Все скрипты, располагаются в директории, называемой так же, как и программа в директории пакета, которую Вы хотите сделать независимым "пакетом". Вот список скриптов, которые Вы можете создать: - url: всего лишь список адресов, где Вы получаете исходные тексты программы - unpack: что происходит после распаковки исходных текстов (например, Вы можете изменить определенные конфигурационные файлы; это не включает приложение патчей) - need_build: вызывается, когда необходимо убедиться, что уже собранный пакет не нуждается в пересборке; удалите файл .stamps/"package name"/build, если пакет нуждается в пересборке - build: все необходимые шаги для сборки программы - install: все необходимые шаги для установки; префикс установки должен быть $INSTALL Когда файлы, полученные с указанных адресов называются patch-program_name-... они автоматически применяются к распакованным исходным текстам программы. Помните, что программное обеспечение, которое выполняется в GeeXboX, должно быть скомпилировано в uClibc gcc системе. В завершении, лучший путь собрать пакет - это посмотреть, как собираются другие пакеты. Лицензия. Все программы, используемые в GeeXboX защищены их соответствующими лицензиями. Они все - свободное программное обеспечение и большинство из них защищено GNU General Public License. GeeXboX сам-по-себе - это все скрипты, которые используются в сборочном процессе - защищен GNU General Public License.geexbox-0.98.7/config/0000755000175000017500000000000010335100767013531 5ustar aurelaurelgeexbox-0.98.7/config/file_ext0000644000175000017500000000021410335100767015250 0ustar aurelaurelavi divx asf wmv mpeg mpg mpe vob m1v m2v m4v ts mp4 m4a ogm mkv mka rm ra ram rmvb mov qt bin mp3 mp2 ogg wav wma y4m dat iso ifo flac mpc geexbox-0.98.7/config/img_ext0000644000175000017500000000004110335100767015103 0ustar aurelaurelbmp gif jpeg jpg pcd png pnm ppm geexbox-0.98.7/config/init0000755000175000017500000000126110335100767014422 0ustar aurelaurel#!/bin/sh /bin/busybox test ! -e /proc/cpuinfo && /bin/busybox mount -t proc none /proc /bin/busybox test ! -e /sys/kernel && /bin/busybox mount -t sysfs none /sys /bin/busybox test ! -e /bin/cp && /bin/busybox --install -s progress() { if test -f /proc/splash; then echo "show $1" > /proc/splash fi } count=0 for script in /etc/init.d/*; do grep -q -e "^# runlevels:.*$1" $script && count=$(($count+1)); done pos=47000 step=$(((65535-$pos)/$count)) RET=0 for script in /etc/init.d/*; do if grep -q -e "^# runlevels:.*$1" $script; then pos=$(($pos+$step)) progress $pos /bin/sh $script S_RET=$? test $S_RET -ge $RET && RET=$S_RET fi done exit $RET geexbox-0.98.7/config/issue0000644000175000017500000000002310335100767014577 0ustar aurelaurelWelcome to GeeXboX geexbox-0.98.7/config/list_ext0000644000175000017500000000001410335100767015302 0ustar aurelaurelpls m3u asx geexbox-0.98.7/config/maps0000644000175000017500000000046710335100767014423 0ustar aurelaurel# EXTN XLate CREATOR TYPE Comment .b Raw 'UNIX' 'tbxi' "bootstrap" yaboot Raw 'UNIX' 'boot' "bootstrap" vmlinux Raw 'UNIX' 'boot' "kernel" .conf Raw 'UNIX' 'conf' "bootstrap" * Raw 'UNIX 'UNIX' "unix" geexbox-0.98.7/config/options0000644000175000017500000000610510335100767015151 0ustar aurelaurel# Target system we want to cross compile for (i386/ppc) TARGET_ARCH=i386 # The TARGET_CPU variable controls which processor should be targeted for # generated code. case $TARGET_ARCH in i386) # (AMD CPUs) opteron athlon64 athlon-fx athlon-mp athlon-xp athlon-4 # athlon-tbird athlon k8 k6-3 k6-2 k6 # (Intel CPUs) nocona prescott pentium4[m] pentium3[m] pentium-m # pentium2 pentiumpro pentium-mmx pentium # i686 i586 i486 i386 TARGET_CPU=i586 ;; ppc) # 401 403 405 405fp 440 440fp 505 601 602 603 603e ec603e 604 604e # 620 630 740 7400 7450 750 801 821 823 860 970 rios rios1 rios2 rsc rs64a # common G3 G4 G5 power power2 power3 power4 power5 powerpc powerpc64 TARGET_CPU=G3 ;; esac # Need to point to your actual cc # If you have ccache installed, take care that LOCAL_CC don't point to it LOCAL_CC=`which gcc` # Need to point to your actual g++ # If you have ccache installed, take care that LOCAL_CXX don't point to it LOCAL_CXX=`which g++` # Theme (omc/movies) THEME=omc # Menu language (bg/br/ca/cs/de/en/es/et/fi/fr/gr/he/hu/it/nl/no/pl/ro/ru/sk/sr/sv) LANG=en # Subtitle charset (bg/br/ca/cs/de/en/es/et/fi/fr/gr/he/hu/it/nl/no/pl/ro/ru/sk/sr/sv) # Can also be set to a charset code (iso-8859-{1,2,7,8,9}/windows-125{0,1}/koi8-r) # when empty it defaults to $LANG SUB_CHARSET= # Remote to Use (pctv/logitech/hauppauge/realmagic/creative/leadtek/RM-S6/ # RX-V850/animax/avermedia/packard_bell/atiusb/LG/D-10/digimatrix) REMOTE=atiusb # Remote receiver to use (animax/avermedia/atiusb/creative/hauppauge/homemade/ # irman/leadtek/logitech/pctv/realmagic/digimatrix) RECEIVER=atiusb # Use Extra Binary Codecs - RealMedia/WindowsMedia 9 (yes/no) EXTRACODECS=no # Network Support (Samba shares and FTP Server) (yes/no) NETWORK=yes # Start network services ? (Anonymous Telnet and FTP server as root) (yes/no) SERVICES=no # Wireless network support (yes/no) WIFI=yes # Auto-discovery of UPnP MediaServer devices (yes/no) UPNP=yes # Add radio tuner support (yes/no) RADIO=yes # Add DXR3/Hollywood+ support (EXPERIMENTAL) DXR3=yes # Image viewer / dia show support (yes/no) VIEW_IMG=yes # Default timeout in seconds for dia show (0 to disable) VIEW_IMG_TIMEOUT=10 # Size of the initrd file system RAMDISK_SIZE=2048 # enable debuging (build gdb...) DEBUG=no # enable devel tools (yes/no) DEVTOOLS=no # verbose compilation mode (yes/no) VERBOSE=yes # download new sources when url file is updated (yes/no/ask) AUTOUPDATE=ask # Burning options # device (ex: 0,0,0). See the output of cdrecord -scanbus. BURNER=/dev/hda # blank the CD-RW before burning (yes/no) BLANK=yes # you can also pass options to cdrecord : CDRECORD_OPTS= # PXE boot options DEFAULT_NFS_SERVER=192.168.0.2 # Concurrency make level (-j option) # Try value 1 (default) to 4 on single CPU computer, or more on # multi-processor computer (like hyperthreading SMP CPU) CONCURRENCY_MAKE_LEVEL=1 # read personal options if available test -f "$HOME/.geexbox-options" && . "$HOME/.geexbox-options" . config/path geexbox-0.98.7/config/path0000644000175000017500000000630510335100767014414 0ustar aurelaurelset -e GEEXBOX_VERSION=`cat VERSION` CONFIG=config SCRIPTS=scripts PACKAGES=packages SOURCES=sources BUILD_BASE=build BUILD=$BUILD_BASE.$TARGET_ARCH STAMPS_NOARCH=.stamps STAMPS=$BUILD/$STAMPS_NOARCH DOCS=DOCS ROOT=`pwd` TARGET_NAME=$TARGET_ARCH-pc-linux-uclibc TOOLCHAIN=$BUILD/toolchain SYSROOT_PREFIX=$ROOT/$TOOLCHAIN/$TARGET_NAME/sysroot LIB_PREFIX=$SYSROOT_PREFIX/usr/local TARGET_PREFIX=$ROOT/$TOOLCHAIN/bin/$TARGET_NAME- TARGET_CC=${TARGET_PREFIX}gcc TARGET_CXX= TARGET_LD=${TARGET_PREFIX}ld TARGET_AS=${TARGET_PREFIX}as TARGET_AR=${TARGET_PREFIX}ar TARGET_NM=${TARGET_PREFIX}nm TARGET_RANLIB=${TARGET_PREFIX}ranlib TARGET_OBJCOPY=${TARGET_PREFIX}objcopy TARGET_STRIP=${TARGET_PREFIX}strip TARGET_CPPFLAGS= TARGET_CFLAGS="-Os -Wall -pipe" TARGET_LDFLAGS= if [ "$DEBUG" = yes ]; then TARGET_CFLAGS="$TARGET_CFLAGS -g3" TARGET_STRIP=touch else TARGET_CFLAGS="$TARGET_CFLAGS -s -fomit-frame-pointer" TARGET_LDFLAGS="$TARGET_LDFLAGS -s" fi HOST_CC=$ROOT/$TOOLCHAIN/bin/host-gcc HOST_CXX=$ROOT/$TOOLCHAIN/bin/host-g++ HOST_LD=ld HOST_AS=as HOST_AR=ar HOST_NM=nm HOST_RANLIB=ranlib HOST_OBJCOPY=objcopy HOST_STRIP=strip HOST_CPPFLAGS="" HOST_CFLAGS="-O2 -Wall -pipe" HOST_LDFLAGS="" export CCACHE_DIR=$ROOT/$BUILD/.ccache export MAKEFLAGS=-j$CONCURRENCY_MAKE_LEVEL export HAVE_PKG_CONFIG=no if [ -z "$PATH" -o "$PATH" = "${PATH#$ROOT/$TOOLCHAIN/bin:}" ]; then export PATH="$ROOT/$TOOLCHAIN/bin:$PATH" fi setup_toolchain() { if [ "$1" = "--optimize" ]; then OPTIMIZE=yes shift fi if [ "$1" = target ]; then export CC=$TARGET_CC export CXX=$TARGET_CXX export LD=$TARGET_LD export AS=$TARGET_AS export AR=$TARGET_AR export NM=$TARGET_NM export RANLIB=$TARGET_RANLIB export OBJCOPY=$TARGET_OBJCOPY export STRIP=$TARGET_STRIP export CPPFLAGS="$TARGET_CPPFLAGS" export CFLAGS="$TARGET_CFLAGS" export LDFLAGS="$TARGET_LDFLAGS" if [ "$OPTIMIZE" = yes ]; then case $TARGET_ARCH in i386) CFLAGS="$CFLAGS -march=$TARGET_CPU" ;; ppc) CFLAGS="$CFLAGS -maltivec" ;; esac fi elif [ "$1" = host ]; then export CC=$HOST_CC export CXX=$HOST_CXX export LD=$HOST_LD export AS=$HOST_AS export AR=$HOST_AR export NM=$HOST_NM export RANLIB=$HOST_RANLIB export OBJCOPY=$HOST_OBJCOPY export STRIP=$HOST_STRIP export CPPFLAGS="$HOST_CPPFLAGS" export CFLAGS="$HOST_CFLAGS" export LDFLAGS="$HOST_LDFLAGS" fi } setup_toolchain target SILENT_OUT=3 VERBOSE_OUT=4 if [ "$VERBOSE" = yes ]; then exec 3>/dev/null exec 4>&2 else exec 3>&2 exec 4>/dev/null fi INDENT_SIZE=4 GEEXBOX_SRCS=http://www.geexbox.org/src/$GEEXBOX_VERSION [ "$GEEXBOX_VERSION" = devel ] && GEEXBOX_VERSION=devel-`date +%Y%m%d` ISO=geexbox-$GEEXBOX_VERSION-$LANG.$TARGET_ARCH.iso GENERATOR_NAME=geexbox-generator-$GEEXBOX_VERSION.$TARGET_ARCH INSTALLATOR_NAME=geexbox-installator-$GEEXBOX_VERSION.$TARGET_ARCH PXE_NAME=geexbox-pxe/GEEXBOX.$TARGET_ARCH HOST_NAME_CACHE=$BUILD/configtools/host_name if [ -f $HOST_NAME_CACHE ]; then HOST_NAME=`cat $HOST_NAME_CACHE` elif [ -x $BUILD/configtools/config.guess ]; then HOST_NAME=`$BUILD/configtools/config.guess` fi kernel_path() { ls -d $ROOT/$BUILD/linux* } geexbox-0.98.7/config/sort0000644000175000017500000000002310335100767014436 0ustar aurelaurelisolinux.bin 10000 geexbox-0.98.7/scripts/0000755000175000017500000000000010335100775013752 5ustar aurelaurelgeexbox-0.98.7/scripts/build0000755000175000017500000000164310335100774015002 0ustar aurelaurel#!/bin/sh . config/options if [ -z "$1" ]; then echo "usage: $0 package_name" exit 1 fi if [ -f $PACKAGES/$1/arch ]; then grep -q "$TARGET_ARCH" "$PACKAGES/$1/arch" || exit 0 fi unset INSTALL mkdir -p $STAMPS/$1 STAMP=$STAMPS/$1/build $SCRIPTS/unpack $1 if [ -f $STAMP -a -f $PACKAGES/$1/need_build ]; then $PACKAGES/$1/need_build $@ fi if [ ! -f $STAMP ]; then rm -f $STAMP printf "%${INDENT}c BUILD $1\n" >&$SILENT_OUT export INDENT=$((${INDENT:-1}+$INDENT_SIZE)) if [ -f $PACKAGES/$1/build ]; then $PACKAGES/$1/build $@ >&$VERBOSE_OUT elif [ -f $BUILD/$1*/Makefile ]; then $SCRIPTS/build toolchain make -C $BUILD/$1* >&$VERBOSE_OUT elif [ -f $BUILD/$1*/$1.c ]; then $SCRIPTS/build toolchain make -C $BUILD/$1* $1 >&$VERBOSE_OUT fi . $CONFIG/options for i in `sed -n "s/^\(.*\)=.*$/\1/p" $CONFIG/options`; do eval val=\$$i echo STAMP_$i=$val >> $STAMP done fi geexbox-0.98.7/scripts/burn0000755000175000017500000000032310335100775014644 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/checkdeps burn [ ! -f $ISO ] && $SCRIPTS/iso if [ "$BLANK" = "yes" ]; then CDRECORD_OPTS="blank=fast $CDRECORD_OPTS" fi cdrecord dev=$BURNER $CDRECORD_OPTS -eject $ISO geexbox-0.98.7/scripts/checkdeps0000755000175000017500000000517410335100775015640 0ustar aurelaurel#!/bin/sh . config/options deps= deps_pkg= files= files_pkg= case $1 in get) deps="wget" deps_pkg="wget" ;; build) deps="gcc g++ sed patch touch nasm tar bzip2 gzip perl flex cp" deps_pkg="gcc g++ sed patch fileutils nasm tar bzip2 gzip perl flex coreutils" files="/usr/include/stdio.h" files_pkg="libc6-dev" ;; burn) deps="cdrecord" deps_pkg="cdrecord" ;; iso) deps="mkisofs mkzftree" if [ -f /etc/debian_version -a -n "`which apt-get 2>/dev/null`" ]; then deps_pkg="mkisofs mkisofs" else deps_pkg="mkisofs zisofs-tools" fi ;; esac getarg() { eval echo \${$(($1+2))} } i=0 while dep=`getarg $i $deps` && [ -n "$dep" ]; do [ -z "`which $dep 2>/dev/null`" ] && need="$need $dep" && need_pkg="$need_pkg `getarg $i $deps_pkg`" i=$(($i+1)) done i=0 while file=`getarg $i $files` && [ -n "$file" ]; do [ ! -f $file ] && need="$need $file" && need_pkg="$need_pkg `getarg $i $files_pkg`" i=$(($i+1)) done if [ -n "$need" ]; then echo "**** Your system lacks the following tools needed to $1 GeeXboX ****" echo $need if [ -f /etc/debian_version -a -n "`which apt-get 2>/dev/null`" ]; then echo "**** You seem to use a debian system ****" if [ $UID -ne 0 ]; then echo "**** I could install those packages but you need to be root for this ****" exit 1 else read -p "would you like to apt-get install the needed tools ? (y/n) " ans [ "$ans" = "y" ] && apt-get install $need_pkg fi elif [ -f /etc/mandrake-release -a -n "`which urpmi 2>/dev/null`" ]; then echo "**** You seem to use a mandrake system ****" if [ $UID -ne 0 ]; then echo "**** I could install those packages but you need to be root for this ****" exit 1 else read -p "would you like to urpmi the needed tools ? (y/n) " ans [ "$ans" = "y" ] && urpmi $need_pkg fi else echo "********" exit 1 fi fi need="" need_pkg="" i=0 while dep=`getarg $i $deps` && [ -n "$dep" ]; do [ -z "`which $dep 2>/dev/null`" ] && need="$need $dep" && need_pkg="$need_pkg `getarg $i $deps_pkg`" i=$(($i+1)) done i=0 while file=`getarg $i $files` && [ -n "$file" ]; do [ ! -f $file ] && need="$need $file" && need_pkg="$need_pkg `getarg $i $files_pkg`" i=$(($i+1)) done if [ -n "$need" ]; then if [ "$need" = " mkzftree" ]; then echo "**** mkzftree was not installed correctly." echo "**** It is not included in debian woody." echo "**** You will need for example a sarge version of mkisofs." else echo "**** The following packages were not installed correctly ****" echo $need_pkg echo "********" fi exit 1 fi geexbox-0.98.7/scripts/clean0000755000175000017500000000151410335100775014763 0ustar aurelaurel#!/bin/sh . config/options clean () { echo " CLEAN $1" >&$SILENT_OUT if [ "$CLEAN_SOURCES" = true ]; then if [ -f $PACKAGES/$1/url ]; then for i in `ls $SOURCES/$1 2>/dev/null`; do grep -q $i $PACKAGES/$1/url || rm -f $SOURCES/$1/$i done fi return fi if [ "$FULL" = true ]; then rm -rf $BUILD_BASE*/$STAMPS_NOARCH/$1* rm -rf $BUILD_BASE*/$1* rm -rf $STAMPS_NOARCH/$1 rm -rf $SOURCES/$1 else rm -rf $BUILD/$1* rm -f $STAMPS/$1/unpack rm -f $STAMPS/$1/build fi } if [ "$1" = "--full" ]; then FULL=true shift elif [ "$1" = "--sources" ]; then CLEAN_SOURCES=true shift fi if [ -z "$1" ]; then for i in $PACKAGES/*; do clean ${i#$PACKAGES/}; done rm -rf $BUILD/iso rm -rf $BUILD/ziso [ "$FULL" = true ] && rm -rf $CCACHE_DIR else clean $1 fi exit 0 geexbox-0.98.7/scripts/dist0000755000175000017500000000210710335100775014643 0ustar aurelaurel#!/bin/sh . config/options NODIST="extra-codecs-nonfree gdb termcap" GEEXDIR=geexbox-$GEEXBOX_VERSION [ "$1" = full ] && $SCRIPTS/get mkdir $GEEXDIR ln -s ../AUTHORS $GEEXDIR/AUTHORS ln -s ../README $GEEXDIR/README ln -s ../COPYING $GEEXDIR/COPYING ln -s ../VERSION $GEEXDIR/VERSION ln -s ../ChangeLog $GEEXDIR/ChangeLog ln -s ../Makefile $GEEXDIR/Makefile ln -s ../DOCS $GEEXDIR/DOCS ln -s ../$CONFIG $GEEXDIR/$CONFIG ln -s ../$SCRIPTS $GEEXDIR/$SCRIPTS ln -s ../$PACKAGES $GEEXDIR/$PACKAGES ln -s ../debian $GEEXDIR/debian if [ "$1" = full ]; then $SCRIPTS/clean --sources mkdir -p $GEEXDIR/$SOURCES for i in $SOURCES/*; do DIST=yes for j in $NODIST; do [ ${i##*/} = $j ] && DIST=no break done if [ $DIST = yes ]; then ln -s ../../$i $GEEXDIR/$i mkdir -p $GEEXDIR/$STAMPS_NOARCH/${i##*/} touch $GEEXDIR/$STAMPS_NOARCH/${i##*/}/get fi done tar chf $GEEXDIR-full.tar --exclude CVS --exclude .svn --exclude .arch-ids $GEEXDIR else tar chjf $GEEXDIR.tar.bz2 --exclude CVS --exclude .svn --exclude .arch-ids $GEEXDIR fi rm -rf $GEEXDIR geexbox-0.98.7/scripts/exec0000755000175000017500000000456410335100775014635 0ustar aurelaurel#!/bin/sh . config/options ROOT=execroot mkdir -p $ROOT/dev/snd mkdir -p $ROOT/dev/input mkdir -p $ROOT/lib mkdir -p $ROOT/bin mkdir -p $ROOT/sbin mkdir -p $ROOT/proc mkdir -p $ROOT/mnt mkdir -p $ROOT/usr/sbin mkdir -p $ROOT/var/run mkdir -p $ROOT/var/log mkdir -p $ROOT/var/lock mkdir -p $ROOT/tmp lzma d $BUILD/iso/GEEXBOX/bin.tar.lzma -so | tar xf - -C $ROOT cp -r $BUILD/iso/GEEXBOX/sbin $ROOT cp -r $BUILD/iso/GEEXBOX/etc $ROOT cp -r $BUILD/iso/GEEXBOX/usr $ROOT cp -r $BUILD/iso/GEEXBOX/codecs $ROOT cp -r $BUILD/iso/GEEXBOX/firmwares $ROOT cp $BUILD/uClibc*/lib/* $ROOT/lib ln -s libc.so.0 $ROOT/lib/libc.so.6 cp $BUILD/busybox*/busybox $ROOT/bin cp config/init $ROOT/sbin ln -s busybox $ROOT/bin/sh touch $ROOT/etc/fstab touch $ROOT/EXEC cp $ROOT/etc/mplayer/menu_`cat $ROOT/etc/lang`.conf $ROOT/etc/mplayer/menu.conf sed -i 's%ok=\"quit 166\"/>%ok=\"quit 166\"/> %' $ROOT/etc/mplayer/menu.conf IFS=' ' for i in `cat ./packages/initrd/dev`; do mknod $ROOT`echo "$i" | cut -f3` `echo "$i" | cut -c1` `echo "$i" | cut -f2 | cut -f1 -d,` `echo "$i" | cut -f2 | cut -f2 -d,` done for i in `mount -l | grep -E "/dev/(hd|scd)" | cut -d' ' -f1,3,6`; do IFS=' ' i=($i) DEV=${i[0]##*/} if [ "$DEV" = "none" ]; then DEV=`echo "${i[2]}" | sed 's%.*dev=\(.*\)[,\)].*%\1%'` DEV=${DEV##*/} fi mkdir $ROOT/mnt/$DEV mount --bind ${i[1]} $ROOT/mnt/$DEV echo $DEV | grep scd >/dev/null 2>&1 if [ $? -eq 0 ]; then test ! -e $ROOT/dev/cdrom && ln -s /dev/$DEV $ROOT/dev/cdrom test ! -e $ROOT/dev/dvd && ln -s /dev/$DEV $ROOT/dev/dvd fi done for DEV in /dev/scd*; do DEV=${DEV##*/} if [ ! -d $ROOT/mnt/$DEV ]; then mkdir $ROOT/mnt/$DEV mount -t supermount -o dev=/dev/$DEV none $ROOT/mnt/$DEV >/dev/null 2>&1 if [ $? -eq 0 ]; then test ! -e $ROOT/dev/cdrom && ln -s /dev/$DEV $ROOT/dev/cdrom test ! -e $ROOT/dev/dvd && ln -s /dev/$DEV $ROOT/dev/dvd else rmdir $ROOT/mnt/$DEV fi fi done chroot $ROOT /sbin/init killall -9 mplayer >/dev/null 2>&1 killall -9 lircd >/dev/null 2>&1 [ -f $ROOT/log ] && cp $ROOT/log . for i in $ROOT/mnt/share/*; do test -d $i && umount $i >/dev/null 2>&1 rmdir $i done for i in $ROOT/mnt/*; do test -d $i && umount $i >/dev/null 2>&1 rmdir $i done for i in $ROOT/*; do if [ "$i" = "$ROOT/mnt" ]; then rmdir $i else rm -rf $i fi done rmdir $ROOT geexbox-0.98.7/scripts/extract0000755000175000017500000000172110335100775015353 0ustar aurelaurel#!/bin/sh . config/options if [ -z "$3" ]; then echo "usage: $0 package_name file_pattern target_dir" exit 1 fi [ ! -d "$SOURCES/$1" -o ! -f $PACKAGES/$1/url -o ! -d "$3" ] && exit 1 for s in `sed 's%.*/\(.*\)\$%\1%' $PACKAGES/$1/url`; do case $s in $2) f="$SOURCES/$1/$s" if [ ! -f $f ]; then echo "error: File $s doesn't exists in package $1 sources directory" echo "have you called scripts/extract before scripts/get ?" exit 1 fi case $s in *.tar) tar xf $f -C $3 ;; *.tar.bz2 | *.tbz) tar xjf $f -C $3 ;; *.tar.gz | *.tgz) tar xzf $f -C $3 ;; *.diff | *.patch) cat $f | patch -d $3 -p1 ;; *.diff.bz2 | *.patch.bz2 | patch-*.bz2) bzcat $f | patch -d $3 -p1 ;; *.diff.gz | *.patch.gz | patch-*.gz) zcat $f | patch -d $3 -p1 ;; *) cp -pPR $f $3 ;; esac ;; esac done geexbox-0.98.7/scripts/fixconfigtools0000755000175000017500000000072710335100775016743 0ustar aurelaurel#!/bin/sh . config/options # Avoid infinite loop [ "$*" = "$BUILD/configtools" ] && exit 0 $SCRIPTS/build configtools for i in $@; do [ -f "$i/config.guess" ] && cp -f $BUILD/configtools/config.guess $i [ -f "$i/config.sub" ] && cp -f $BUILD/configtools/config.sub $i [ -f "$i/configure.guess" ] && cp -f $BUILD/configtools/config.guess $i/configure.guess [ -f "$i/configure.sub" ] && cp -f $BUILD/configtools/config.sub $i/configure.sub done exit 0 geexbox-0.98.7/scripts/generator0000755000175000017500000000122310335100775015664 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/checkdeps build export INSTALL=$GENERATOR_NAME/iso/GEEXBOX rm -rf $GENERATOR_NAME $SCRIPTS/gentree generator full export INSTALL=$GENERATOR_NAME $SCRIPTS/install generator generator mkdir -p $GENERATOR_NAME/$DOCS cp -r $DOCS/* $GENERATOR_NAME/$DOCS/ rm -rf $GENERATOR_NAME/$DOCS/CVS cp $CONFIG/sort $GENERATOR_NAME/sort cp $CONFIG/maps $GENERATOR_NAME/maps cp AUTHORS $GENERATOR_NAME/AUTHORS cp COPYING $GENERATOR_NAME/COPYING echo $GEEXBOX_VERSION-custom > $GENERATOR_NAME/VERSION cat $PACKAGES/*/config/packages.ini > $GENERATOR_NAME/packages.ini tar czf $GENERATOR_NAME.tar.gz $GENERATOR_NAME rm -rf $GENERATOR_NAME geexbox-0.98.7/scripts/gentree0000755000175000017500000000270610335100775015336 0ustar aurelaurel#!/bin/sh . config/options if [ "$2" != boot ]; then mkdir -p $INSTALL/sbin mkdir -p $INSTALL/etc/init.d mkdir -p $INSTALL/codecs mkdir -p $INSTALL/firmwares cp $CONFIG/init $INSTALL/sbin cp $PACKAGES/*/init.d/* $INSTALL/etc/init.d/ cp $CONFIG/file_ext $INSTALL/etc cp $CONFIG/list_ext $INSTALL/etc $SCRIPTS/install linux modules $1 $SCRIPTS/install alsa $1 $SCRIPTS/install tvout $1 $SCRIPTS/install pciutils $1 $SCRIPTS/install MPlayer $1 $SCRIPTS/install installator $1 $SCRIPTS/install i18n $1 $SCRIPTS/install webgui $1 $SCRIPTS/install sleeptimer $1 $SCRIPTS/install theme $1 $SCRIPTS/install cpufreqd $1 [ "$NETWORK" = yes ] && $SCRIPTS/install network $1 [ "$RADIO" = yes ] && $SCRIPTS/install fmio $1 [ "$DXR3" = yes ] && $SCRIPTS/install em8300 $1 [ "$VIEW_IMG" = yes ] && $SCRIPTS/install fbi $1 [ "$DEBUG" = yes ] && $SCRIPTS/install gdb $1 [ "$EXTRACODECS" = yes ] && $SCRIPTS/install extra-codecs-nonfree $1 VER=`ls $INSTALL/lib/modules` $BUILD/module-init-tool*/depmod -b $INSTALL -v $VER > /dev/null for i in `ls $INSTALL/lib/modules/*/modules.* | grep -v modules.dep`; do rm -f $i done tar cf - -C $INSTALL lib usr/bin usr/lib | lzma e $INSTALL/bin.tar.lzma -si -a2 rm -rf $INSTALL/lib $INSTALL/usr/bin $INSTALL/usr/lib fi if [ "$2" = boot -o "$2" = full ]; then $SCRIPTS/install linux image $1 $SCRIPTS/install initrd $1 $SCRIPTS/install syslinux $1 $SCRIPTS/install yaboot $1 fi geexbox-0.98.7/scripts/get0000755000175000017500000000215210335100775014457 0ustar aurelaurel#!/bin/sh . config/options NOGET="gdb termcap" if [ -z "$1" ]; then for i in $PACKAGES/*; do GET=yes for j in $NOGET; do [ ${i##*/} = $j ] && GET=no break done if [ $GET = yes ]; then $SCRIPTS/get ${i#$PACKAGES/} fi done exit 0 fi mkdir -p $STAMPS_NOARCH/$1 STAMP=$STAMPS_NOARCH/$1/get if [ -f $PACKAGES/$1/url ]; then if [ -f $STAMP ]; then [ ! $STAMP -ot $PACKAGES/$1/url -o $AUTOUPDATE = no ] && exit 0 if [ $AUTOUPDATE = ask ]; then echo "Package $1 is not up to date." echo -n "Do you want to download an up to date version ? (y/n) " read UPDATE [ "$UPDATE" = y ] || exit 0 fi fi $SCRIPTS/checkdeps get rm -f $STAMP printf "%${INDENT}c GET $1\n" >&$SILENT_OUT export INDENT=$((${INDENT:-1}+$INDENT_SIZE)) [ "$VERBOSE" != yes ] && WGET_OPT=-q mkdir -p $SOURCES/$1 for i in `sed s%GEEXBOX_SRCS%$GEEXBOX_SRCS% $PACKAGES/$1/url`; do wget --passive-ftp -c $WGET_OPT -P $SOURCES/$1 $i done cp -p $PACKAGES/$1/url $STAMP rm -f $BUILD_BASE*/$STAMPS_NOARCH/$1/unpack rm -f $BUILD_BASE*/$STAMPS_NOARCH/$1/build fi geexbox-0.98.7/scripts/install0000755000175000017500000000070410335100775015347 0ustar aurelaurel#!/bin/sh . config/options if [ -z "$1" ]; then echo "usage: $0 package_name" exit 1 fi if [ -f $PACKAGES/$1/arch ]; then grep -q "$TARGET_ARCH" "$PACKAGES/$1/arch" || exit 0 fi $SCRIPTS/build $@ printf "%${INDENT}c INSTALL $1\n" >&$SILENT_OUT export INDENT=$((${INDENT:-1}+$INDENT_SIZE)) if [ -f $PACKAGES/$1/install ]; then $PACKAGES/$1/install $@ >&$VERBOSE_OUT else mkdir -p $INSTALL/usr/bin cp $BUILD/$1*/$1 $INSTALL/usr/bin fi geexbox-0.98.7/scripts/installator0000755000175000017500000000114210335100775016232 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/checkdeps build export INSTALL=$INSTALLATOR_NAME/disk/GEEXBOX rm -rf $INSTALLATOR_NAME $SCRIPTS/gentree installator export INSTALL=$INSTALLATOR_NAME/disk $SCRIPTS/gentree installator boot cp $PACKAGES/installator/scripts/installator.sh $INSTALLATOR_NAME mkdir -p $INSTALLATOR_NAME/$DOCS cp -r $DOCS/* $INSTALLATOR_NAME/$DOCS/ cp AUTHORS $INSTALLATOR_NAME/AUTHORS cp COPYING $INSTALLATOR_NAME/COPYING cp VERSION $INSTALLATOR_NAME/VERSION sed -i s/.*busybox.*// $INSTALLATOR_NAME/installator.sh tar czf $INSTALLATOR_NAME.tar.gz $INSTALLATOR_NAME rm -rf $INSTALLATOR_NAME geexbox-0.98.7/scripts/iso0000755000175000017500000000205310335100775014472 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/checkdeps build $SCRIPTS/checkdeps iso export INSTALL=$BUILD/iso/GEEXBOX rm -rf $BUILD/iso $SCRIPTS/gentree iso rm -rf $BUILD/ziso mkdir -p $BUILD/ziso mkzftree $INSTALL $BUILD/ziso/GEEXBOX export INSTALL=$BUILD/ziso/GEEXBOX $SCRIPTS/gentree iso boot case $TARGET_ARCH in i386) MKISOFS_ARCH="-no-emul-boot \ -boot-info-table \ -boot-load-size 4 \ -b GEEXBOX/boot/isolinux.bin \ -c GEEXBOX/boot/boot.catalog" ;; ppc) MKISOFS_ARCH="-hfs \ -part \ -no-desktop \ -map $CONFIG/maps \ -hfs-volid GEEXBOX \ -hfs-bless $BUILD/ziso/GEEXBOX/boot" ;; esac mkisofs -quiet -no-pad -V GEEXBOX -volset GEEXBOX \ -publisher "The GeeXboX team (www.geexbox.org)" \ -p "The GeeXboX team (www.geexbox.org)" \ -A "MKISOFS ISO 9660/HFS FILESYSTEM BUILDER" \ -z -D -r -J -sort $CONFIG/sort $MKISOFS_ARCH \ $BUILD/ziso > $ISO geexbox-0.98.7/scripts/pxe0000755000175000017500000000022110335100775014467 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/checkdeps build export INSTALL=$PXE_NAME rm -rf $PXE_NAME $SCRIPTS/gentree pxe full chmod -R +r $PXE_NAME geexbox-0.98.7/scripts/sum0000755000175000017500000000033710335100775014507 0ustar aurelaurel#!/bin/sh . config/options $1 geexbox-$GEEXBOX_VERSION-*.iso \ geexbox-generator-$GEEXBOX_VERSION*.tar.gz \ geexbox-$GEEXBOX_VERSION.tar.bz2 \ geexbox-$GEEXBOX_VERSION-full.tar \ > geexbox-$GEEXBOX_VERSION.$1 geexbox-0.98.7/scripts/unpack0000755000175000017500000000214310335100775015161 0ustar aurelaurel#!/bin/sh . config/options if [ -z "$1" ]; then echo "usage: $0 package_name" exit 1 fi $SCRIPTS/get $1 mkdir -p $BUILD [ ! -d $SOURCES/$1 -a ! -d $PACKAGES/$1/sources ] && exit 0 mkdir -p $STAMPS/$1 STAMP=$STAMPS/$1/unpack [ -f $STAMP -a -f $PACKAGES/$1/need_unpack ] && $PACKAGES/$1/need_unpack $@ [ -f $STAMP ] && exit 0 printf "%${INDENT}c UNPACK $1\n" >&$SILENT_OUT export INDENT=$((${INDENT:-1}+$INDENT_SIZE)) rm -rf $BUILD/$1* if [ -f $PACKAGES/$1/url ]; then $SCRIPTS/extract $1 "$1*.tar.bz2" $BUILD $SCRIPTS/extract $1 "$1*.tar.gz" $BUILD $SCRIPTS/extract $1 "$1*.tgz" $BUILD fi if [ -d $PACKAGES/$1/sources ]; then [ ! -d $BUILD/$1* ] && mkdir -p $BUILD/$1 cp -PRf $PACKAGES/$1/sources/* $BUILD/$1*/ fi for i in $PACKAGES/$1/patches/*; do if [ -f $i ]; then cat $i | patch -d $BUILD/$1* -p1 >&$VERBOSE_OUT fi done $SCRIPTS/fixconfigtools $BUILD/$1* [ -f $PACKAGES/$1/unpack ] && $PACKAGES/$1/unpack $@ >&$VERBOSE_OUT rm -f $STAMPS/$1/build . $CONFIG/options for i in `sed -n "s/^\(.*\)=.*$/\1/p" $CONFIG/options`; do eval val=\$$i echo STAMP_$i=$val >> $STAMP done geexbox-0.98.7/packages/0000755000175000017500000000000010335100774014040 5ustar aurelaurelgeexbox-0.98.7/packages/MPlayer/0000755000175000017500000000000010335100767015413 5ustar aurelaurelgeexbox-0.98.7/packages/MPlayer/build0000755000175000017500000001160110335100767016437 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain $SCRIPTS/build lirc $SCRIPTS/build libogg $SCRIPTS/build libvorbis $SCRIPTS/build libtheora $SCRIPTS/build libdts $SCRIPTS/build libmpcdec $SCRIPTS/build cdparanoia $SCRIPTS/build zlib $SCRIPTS/build alsa $SCRIPTS/build freetype $SCRIPTS/build fribidi $SCRIPTS/build iconv-base setup_toolchain --optimize target if [ "$DXR3" = "yes" ]; then $SCRIPTS/build em8300 DXR3_CONFIG="--enable-dxr3 --enable-ossaudio" else DXR3_CONFIG="--disable-dxr3 --disable-ossaudio" fi if [ "$TARGET_ARCH" = i386 ]; then ARCH_CONFIG="--enable-win32 \ --enable-dshow \ --enable-real \ --with-reallibdir=/codecs \ --with-win32libdir=/codecs \ --enable-vesa" else ARCH_CONFIG="--disable-win32 \ --disable-dshow \ --disable-real \ --disable-vesa" fi CFLAGS="$CFLAGS -ffast-math -DFIXED_POINT -D__USE_EXTERN_INLINES" cd $BUILD/$1* ./configure --prefix=/usr \ --confdir=/etc/mplayer \ --with-extralibdir="$LIB_PREFIX/lib" \ --with-extraincdir="$LIB_PREFIX/include" \ $ARCH_CONFIG \ $DXR3_CONFIG \ --disable-mencoder \ --disable-gui \ --enable-largefiles \ --disable-linux-devfs \ --disable-termcap \ --disable-langinfo \ --enable-lirc \ --disable-lircc \ --enable-joystick \ --enable-tv \ --disable-tv-v4l \ --enable-tv-v4l2 \ --disable-tv-bsdbt848 \ --disable-edl \ --enable-rtc \ --enable-network \ --disable-winsock2 \ --disable-smb \ --disable-live \ --disable-dvdread \ --enable-mpdvdkit \ --enable-cdparanoia \ --enable-freetype \ --with-freetype-config="$LIB_PREFIX/bin/freetype-config" \ --disable-fontconfig \ --enable-fribidi \ --with-fribidi-config="$LIB_PREFIX/bin/fribidi-config" \ --enable-unrarlib \ --enable-menu \ --disable-sortsub \ --disable-enca \ --disable-macosx \ --disable-inet6 \ --disable-gethostbyname2 \ --disable-ftp \ --disable-gif \ --disable-png \ --disable-jpeg \ --disable-liblzo \ --disable-qtx \ --disable-xanim \ --disable-xvid \ --disable-x264 \ --disable-divx4linux \ --disable-opendivx \ --enable-libavcodec \ --disable-libavformat \ --disable-libfame \ --enable-vorbis \ --disable-internal-tremor \ --disable-tremor-low \ --disable-external-tremor \ --enable-theora \ --enable-internal-matroska \ --disable-external-faad \ --enable-internal-faad \ --disable-ladspa \ --disable-libdv \ --disable-mad \ --disable-toolame \ --disable-xmms \ --disable-mp3lib \ --enable-liba52 \ --enable-libdts \ --disable-libmpeg2 \ --enable-musepack \ --enable-vidix \ --disable-gl \ --disable-dga \ --disable-svga \ --disable-sdl \ --disable-aa \ --disable-ggi \ --disable-directx \ --disable-dxr2 \ --disable-dvb \ --enable-dvbhead \ --disable-mga \ --disable-xmga \ --disable-xv \ --disable-xvmc \ --disable-vm \ --disable-xinerama \ --disable-x11 \ --disable-fbdev \ --disable-mlib \ --disable-3dfx \ --disable-tdfxfb \ --disable-directfb \ --disable-zr \ --disable-bl \ --disable-tdfxvid \ --disable-tga \ --disable-pnm \ --disable-md5sum \ --disable-arts \ --disable-esd \ --disable-polyp \ --disable-jack \ --enable-alsa \ --disable-sgiaudio \ --disable-sunaudio \ --disable-nas \ --disable-win32waveout \ --disable-select \ --enable-runtime-cpudetection \ --target="$TARGET_ARCH-linux" \ --as=$AS \ --cc=$CC \ --host-cc=$HOST_CC \ --language=en \ --disable-i18n \ --disable-dynamic-plugins \ --disable-additional-filters sed -i s/-lnsl// config.mak [ $DEBUG = "yes" ] && sed -i 's/.*MP_DEBUG.*/#define MP_DEBUG 1/' config.h make $STRIP libdha/libdha.so vidix/drivers/*.so geexbox-0.98.7/packages/MPlayer/config/0000755000175000017500000000000010335100767016660 5ustar aurelaurelgeexbox-0.98.7/packages/MPlayer/config/mplayer.conf0000644000175000017500000000075610335100767021210 0ustar aurelaurelvo=cvidix,vesa mixer-channel=Master framedrop=yes vsync=yes fs=yes zoom=yes menu=yes menu-startup=yes double=yes fixed-vo=yes nocolorkey=yes cache=1500 idx=yes lircconf=/etc/lircrc sub-fuzziness=1 screenw=800 screenh=600 #monitor-hfreq=31.5k-50k #monitor-vfreq=50-90 input=file=/var/mp_control menu-utf8=1 menu-flip-hebrew=1 # Set Post Processing (h deblock, v deblock, dering, auto luminance) # Consumes CPU power, disabled for low configs, uncomment to enable it. #vf=pp=hb:a/vb:a/dr:a/al:a geexbox-0.98.7/packages/MPlayer/init.d/0000755000175000017500000000000010335100767016600 5ustar aurelaurelgeexbox-0.98.7/packages/MPlayer/init.d/68_mp-fonts0000755000175000017500000000301610335100767020606 0ustar aurelaurel#!/bin/sh # # put the right font in the right place # # runlevels: geexbox, debug echo "### Setting up fonts ###" . /etc/lang.conf . /etc/lang.funcs readfirstword() { head -1 $1 | sed 's/^\([[:graph:]]*\).*$/\1/' } # set menu and help files according to language setting if test -f /etc/lang; then LANG=`readfirstword /etc/lang` cp -f /etc/mplayer/menu_$LANG.conf /etc/mplayer/menu.conf cp -f /usr/share/mplayer/help_$LANG.txt /usr/share/mplayer/help.txt MENU_CHARSET=`lang2charset $LANG` [ -z "$MENU_CHARSET" ] && exit 1 MENU_FONT=`lang2font "$LANG" menu` if [ -f /etc/theme.conf -a -f /usr/share/fonts/themefont.ttf ]; then . /etc/theme.conf [ -z "$FONT_CHARSETS" ] && FONT_CHARSETS="iso-8859-1" for i in $FONT_CHARSETS; do [ "$i" = "$MENU_CHARSET" ] && MENU_FONT="themefont.ttf" && break done fi MENU_FONT="/usr/share/fonts/$MENU_FONT" [ ! -f "$MENU_FONT" ] && exit 1 mp_set_option font "$MENU_FONT" fi # set subtitles font according to subfont setting if test -f /etc/subfont; then SUB_CHARSET=`readfirstword /etc/subfont` SUB_CHARSET=`lang2charset "$SUB_CHARSET"` [ -z "$SUB_CHARSET" ] && exit 1 SUB_FONT=`lang2font "$SUB_CHARSET" sub` SUB_FONT="/usr/share/fonts/$SUB_FONT" [ ! -f "$SUB_FONT" ] && exit 1 mp_set_option subfont "$SUB_FONT" mp_set_option subcp "$SUB_CHARSET" fribidi_mp_set_option "$SUB_CHARSET" fi # set font settings according to theme if test -f /etc/theme.conf; then . /etc/theme.conf mp_set_option subfont-text-scale "$FONT_SIZE" fi exit 0 geexbox-0.98.7/packages/MPlayer/init.d/70_mp-menu0000755000175000017500000000170610335100767020416 0ustar aurelaurel#!/bin/sh # # configure MPlayer's menu # # runlevels: geexbox, debug echo "### Configuring MPlayer's menu ###" # build a single file extensions filter cat /etc/file_ext > /etc/extensions cat /etc/list_ext >> /etc/extensions cat /etc/img_ext >> /etc/extensions # remove CD from menu if no cd drive is available test -e /dev/cdrom || sed -i 's/.*play_vcd.*//' /etc/mplayer/menu.conf test -e /dev/cdrom || sed -i 's/.*play_cdda.*//' /etc/mplayer/menu.conf # remove DVD from the menu if no dvd drive is available test -e /dev/dvd || sed -i 's/.*DVD.*//' /etc/mplayer/menu.conf # remove image viewer from the menu if fbi is not present test -x /usr/bin/fbi || sed -i 's/.*set_menu\ view_img.*//' /etc/mplayer/menu.conf # add partitions free space in menu for i in `mount | sed -n 's%/dev/\([sh]d[a-z][0-9]\).*%\1%p'`; do MENU_DF="$MENU_DF " done [ -n "$MENU_DF" ] && sed -i "s%name=\"ip\"/>%name=\"ip\"/> $MENU_DF%" /etc/mplayer/menu.conf exit 0 geexbox-0.98.7/packages/MPlayer/init.d/72_mp-audio0000755000175000017500000000274310335100767020557 0ustar aurelaurel#!/bin/sh # # configure MPlayer's audio settings # # runlevels: geexbox, debug echo "### Configuring MPlayer's audio settings ###" # include audio configuration file . /etc/audio echo $ALSA_CARD | grep -q ".." || ALSA_CARD="0$ALSA_CARD" case $SOUNDCARD_MODE in SPDIF) ALSA_REAL_MODE=IEC958 ;; analog) ALSA_REAL_MODE=DAC ;; esac ALSA_DEVICE=`sed -n "s/^$ALSA_CARD-\(..\): .*$ALSA_REAL_MODE.*/\1/p" /proc/asound/pcm | head -1` [ -z "$ALSA_DEVICE" ] && ALSA_DEVICE=`sed -n "s/^$ALSA_CARD-\(..\): .*playback.*/\1/p" /proc/asound/pcm | head -1` [ -n "$ALSA_DEVICE" ] && AO_DEVICE=":device=hw=$ALSA_CARD.$ALSA_DEVICE" # set alsa as audio output isn't forced already. mp_set_option ao "alsa$AO_DEVICE" # enable hardware AC3 output via S/PDIF if audio codec isn't forced already. if [ "$SOUNDCARD_MODE" = SPDIF -a "$AC3_DECODER" = hardware ]; then mp_set_option ac "hwac3," CHANNELS=2 fi # don't use Master mixer channel when not available if [ -z "`amixer simple | grep "'Master'"`" ]; then sed -i 's/mixer-channel=Master//' /etc/mplayer/mplayer.conf fi # set number of playback channels if isn't forced already. mp_set_option channels "$CHANNELS" # set DVD default language echo "alang=`sed 's/^\(..\).*/\1/' /etc/lang | head -1`,en" >> /etc/mplayer/mplayer.conf # Set suitable background movie when playing audio-only. for i in background-audio.avi background.avi; do if [ -f /usr/share/mplayer/$i ]; then mp_set_option bgvideo "/usr/share/mplayer/$i" break fi done exit 0 geexbox-0.98.7/packages/MPlayer/init.d/74_mp-video0000755000175000017500000000230410335100767020557 0ustar aurelaurel#!/bin/sh # # configure MPlayer's video settings # # runlevels: geexbox, debug echo "### Configuring MPlayer's video settings ###" # include tvout configuration file . /etc/tvout # set mplayer resolution when using offb if grep -q OFfb /proc/fb; then RES=`/usr/sbin/fbset | sed -n 's/mode "\(.*\)-.*"/\1/p'` RESX=`echo $RES | cut -f1 -dx` RESY=`echo $RES | cut -f2 -dx` mp_set_option screenw "$RESX" mp_set_option screenh "$RESY" fi # set double to no for nvidia, sis and Kyro cards, VMWare, and some ATI cards for i in 'Class 0300:.*10de:' 'Class 0300:.*1039:' 'Class 0300:.*104a:0010' 'Class 0300:.*15ad:' 'Class 0300:.*1002:4c59'; do if grep -q "$i" /proc/pci; then # except if we want to try nvidia vidix if [ "$i" = 'Class 0300:.*10de:' -a ! -f /etc/mplayer/no_nvidia_vidix ]; then mp_set_option vf "format=yuy2" concat else mp_set_option vo "vesa" mp_set_option double "no" mp_set_option vf "expand=-1:-1:-1:-1:1" concat fi fi done # do not use VESA Direct Graphic Access on Intel i855 cards if grep -q 'Class 0300:.*8086:3582' /proc/pci; then mp_set_option vo "vesa:nodga" fi # set the tvout aspect mp_set_option monitoraspect "$TVOUT_ASPECT" exit 0 geexbox-0.98.7/packages/MPlayer/init.d/75_mp-tvcard0000755000175000017500000000400210335100767020732 0ustar aurelaurel#!/bin/sh # # configure MPlayer's v4l2 settings # # runlevels: geexbox, debug echo "### Configuring MPlayer's v4l2 support ###" if [ -f /var/tvcard ]; then . /etc/tvcard . /var/tvcard # configure mplayer v4l2 driver if [ -n "$TV_WIDTH" -a -n "$TV_HEIGHT" ]; then TV_OPTIONS=":width=$TV_WIDTH:height=$TV_HEIGHT" fi if [ -n "$TV_BRIGHTNESS" ]; then TV_OPTIONS="$TV_OPTIONS:brightness=$TV_BRIGHTNESS" fi if [ -n "$TV_CONTRAST" ]; then TV_OPTIONS="$TV_OPTIONS:contrast=$TV_CONTRAST" fi if [ -n "$TV_HUE" ]; then TV_OPTIONS="$TV_OPTIONS:hue=$TV_HUE" fi if [ -n "$TV_SATURATION" ]; then TV_OPTIONS="$TV_OPTIONS:saturation=$TV_SATURATION" fi for CHAN in `sed -n 's/^CHAN="\(.*\):\(.*\)"/\1-\2/p' /etc/tvcard | sed 'y/ /_/' `; do mp_set_option tv=channels "$CHAN" concat done echo "tv=driver=v4l2:norm=$TVIN_STANDARD:chanlist=$CHANLIST$TV_OPTIONS" >> /etc/mplayer/mplayer.conf IFS=' ' # set mplayer TV channels list echo "\" >" >> /etc/mplayer/menu.conf for CHNAME in `sed -n 's/tv=channels=//p' /etc/mplayer/mplayer.conf | sed 's/,/\n/g' | sed 's/\(.*\)-\(.*\)/\2/'| sed 's/_/ /'`; do echo "" >> /etc/mplayer/menu.conf done echo "" >> /etc/mplayer/menu.conf else # remove tv options from menu sed -i 's/.*ok="set_menu tv_settings".*//' /etc/mplayer/menu.conf sed -i 's/.*ok="set_menu tv_norm"*//' /etc/mplayer/menu.conf fi [ -f /etc/radio ] && . /etc/radio if [ "$RADIO" = yes ]; then # set mplayer menu radio stations list echo "\" >" >> /etc/mplayer/menu.conf grep '^CHAN' /etc/radio | sed "s/^CHAN=\"\([^:]*\):\(.*\)\"//" >> /etc/mplayer/menu.conf echo "" >> /etc/mplayer/menu.conf else # no supported radio card specified sed -i 's/.*ok="set_menu radio_settings".*//' /etc/mplayer/menu.conf fi exit 0 geexbox-0.98.7/packages/MPlayer/init.d/76_mp-dvbcard0000755000175000017500000000143710335100767021066 0ustar aurelaurel#!/bin/sh # # configure MPlayer's DVB settings # # runlevels: geexbox, debug echo "### Configuring MPlayer's DVB support ###" CHANNELS_CONF=/etc/mplayer/channels.conf if [ -f /var/dvbcard ]; then . /var/dvbcard # build DVB channels configuration file if [ ! -f $CHANNELS_CONF ]; then if [ -f /etc/dvb.conf ]; then dvbscan -x 0 /etc/dvb.conf > $CHANNELS_CONF if [ -s $CHANNELS_CONF ]; then # remove non-coherent detected channels grep -v "^\[.*\]:" $CHANNELS_CONF > /tmp/channels.conf mv /tmp/channels.conf $CHANNELS_CONF fi fi fi fi # no DVB card or no configured channels if [ ! -f /var/dvbcard -o ! -s $CHANNELS_CONF ]; then # remove DVB options from menu sed -i 's/.*ok="set_menu dvb_sel".*//' /etc/mplayer/menu.conf fi exit 0 geexbox-0.98.7/packages/MPlayer/init.d/77_mp-dxr30000755000175000017500000000177210335100767020344 0ustar aurelaurel#!/bin/sh # # configure DXR3/Hollywood+ cards for MPlayer # # runlevels: geexbox, debug echo "### Configuring DXR3/Hollywood+ cards for MPlayer ###" # include audio configuration file . /etc/audio # include tvout configuration file . /etc/tvout # set ao, vo and vf for DXR3/Hollywood+ cards and upload microcode. if grep -q 'Class 0480:.*1105:8300' /proc/pci; then mp_set_option vo "dxr3:sync:norm=0" mp_set_option ao "oss:/dev/em8300_ma-0" mp_set_option vf "expand=-1:-1:-1:-1:1" concat sed -i "s%play_dvd.*%quit 167\"/>%" /etc/mplayer/menu.conf em8300setup -p -a -o -f /firmwares/em8300.uc >/dev/null 2>&1 echo '' > /var/use_dxr3 # TVOut standard (default is PAL) if [ "$TVOUT_STANDARD" = "ntsc" ]; then em8300setup -n >/dev/null 2>&1 fi # set display to WideScreen format (default is 4:3) if [ "$TVOUT_ASPECT" = "16:9" ]; then em8300setup -w >/dev/null 2>&1 fi # use SPDIF output ? if [ "$SOUNDCARD_MODE" = SPDIF ]; then em8300setup -d >/dev/null 2>&1 fi fi exit 0 geexbox-0.98.7/packages/MPlayer/init.d/78_mp-utils0000755000175000017500000000050210335100767020613 0ustar aurelaurel#!/bin/sh # # start MPlayer's utilities # # runlevels: geexbox, debug echo "### Starting MPlayer's utilities ###" # create the mplayer control pipe for external programs mkfifo /var/mp_control # start the autolaunching script /usr/bin/autoplay 8 > /var/mp_control & # start the file copy daemon /usr/bin/cpd & exit 0 geexbox-0.98.7/packages/MPlayer/init.d/82_mplayer0000755000175000017500000000230010335100767020503 0ustar aurelaurel#!/bin/sh # # configure and launch mplayer # # runlevels: geexbox, debug echo "### Starting MPlayer ###" # disable console blanking and cursor blinking for a proper MPlayer start echo -e "\033[9;0]" echo -e "\033[?25l" # disable kernel messages to avoid MPlayer screen corruption echo 0 > /proc/sys/kernel/printk # default directory echo -n /mnt/ > /var/mp_current_path # tty used for the video display and commands input TTY=4 RET=0 # start mplayer with gdb when built with debugging options if test -x /usr/bin/gdb; then echo "r /usr/share/mplayer/background.avi -loop 0" > /gdb_cmd gdb -x /gdb_cmd /usr/bin/mplayer else echo "0" > /tmp/mp_result # disable fbdev cursor echo -e "\033[?1;;c" >/dev/tty$TTY chvt $TTY ( # start mplayer or fbi and keep them launched while true; do if [ -n "`pidof lircd`" ]; then irpty /etc/lircrc -- mp_wrapper else mp_wrapper fi test `cat /tmp/mp_result` -eq 165 -a -x /usr/bin/fbi && fbi_wrapper test `cat /tmp/mp_result` -eq 166 && return 0 test `cat /tmp/mp_result` -eq 167 && mplayer dvd://1 > /dev/null 2>&1 test `cat /tmp/mp_result` -eq 168 && return 64 done ) $INSTALL/etc/mplayer/no_nvidia_vidix echo "Vidix should give you better performance especially with low-end hardware." >> $INSTALL/etc/mplayer/no_nvidia_vidix echo "This feature is not very well tested. That's why it is not enabled by" >> $INSTALL/etc/mplayer/no_nvidia_vidix echo "default. And that's also why you should help us, testing this feature" >> $INSTALL/etc/mplayer/no_nvidia_vidix echo "and reporting your results if you own nvidia hardware." >> $INSTALL/etc/mplayer/no_nvidia_vidix mkdir -p $INSTALL/codecs cp $BUILD/$1*/etc/input.conf $INSTALL/etc/mplayer cp $BUILD/$1*/etc/codecs.conf $INSTALL/etc/mplayer if [ "$2" != generator ]; then cp $BUILD/theme-$THEME/background.avi $INSTALL/usr/share/mplayer [ -f $BUILD/theme-$THEME/background-audio.avi ] && cp $BUILD/theme-$THEME/background-audio.avi $INSTALL/usr/share/mplayer fi exit 0 geexbox-0.98.7/packages/MPlayer/need_build0000755000175000017500000000016510335100767017435 0ustar aurelaurel#!/bin/sh . config/options STAMP=$STAMPS/$1/build . $STAMP [ "$DEBUG" != "$STAMP_DEBUG" ] && rm -f $STAMP exit 0 geexbox-0.98.7/packages/MPlayer/patches/0000755000175000017500000000000010335100767017042 5ustar aurelaurelgeexbox-0.98.7/packages/MPlayer/patches/10_alsa.diff0000644000175000017500000000103610335100767021114 0ustar aurelaureldiff -Naur MPlayer-1.0pre6.orig/configure MPlayer-1.0pre6/configure --- MPlayer-1.0pre6.orig/configure 2004-12-30 19:31:43.348159480 +0100 +++ MPlayer-1.0pre6/configure 2004-12-30 19:37:18.203253768 +0100 @@ -4549,7 +4549,7 @@ #include int main(void) { return (!(SND_LIB_MAJOR==1 && SND_LIB_MINOR==0)); } EOF - cc_check -lasound $_ld_dl $_ld_pthread && $TMPO && _alsaver='1.0.x-alsa' + cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-alsa' fi _def_alsa5='#undef HAVE_ALSA5' _def_alsa9='#undef HAVE_ALSA9' geexbox-0.98.7/packages/MPlayer/patches/12_alsa-chunk-size.diff0000644000175000017500000000204710335100767023177 0ustar aurelaureldiff -Naur MPlayer-1.0pre6.orig/libao2/ao_alsa.c MPlayer-1.0pre6/libao2/ao_alsa.c --- MPlayer-1.0pre6.orig/libao2/ao_alsa.c 2004-12-30 19:38:06.742874624 +0100 +++ MPlayer-1.0pre6/libao2/ao_alsa.c 2004-12-30 19:38:19.805888744 +0100 @@ -652,10 +652,14 @@ if ((err = snd_pcm_hw_params_set_period_size_near(alsa_handler, alsa_hwparams, &chunk_size, &dir)) < 0) { - mp_msg(MSGT_AO,MSGL_ERR,"alsa-init: unable to set periodsize(%d): %s\n", - chunk_size, snd_strerror(err)); + chunk_size = 512 + 1024 - chunk_size; + if ((err = snd_pcm_hw_params_set_period_size(alsa_handler, alsa_hwparams, + chunk_size, 0)) < 0) { + mp_msg(MSGT_AO,MSGL_ERR,"alsa-init: unable to set periodsize(%d): %s\n", + chunk_size, snd_strerror(err)); + } } - else { + if (err >= 0) { mp_msg(MSGT_AO,MSGL_V,"alsa-init: chunksize set to %i\n", chunk_size); } if ((err = snd_pcm_hw_params_set_periods_near(alsa_handler, alsa_hwparams, geexbox-0.98.7/packages/MPlayer/patches/20_additional-filters.diff0000644000175000017500000001336610335100767023764 0ustar aurelaureldiff -Naur MPlayer-1.0pre7.orig/configure MPlayer-1.0pre7/configure --- MPlayer-1.0pre7.orig/configure 2005-04-13 13:46:35.000000000 +0200 +++ MPlayer-1.0pre7/configure 2005-04-17 12:09:34.000000000 +0200 @@ -1410,6 +1410,7 @@ _inet6=auto _gethostbyname2=auto _ftp=yes +_additional_filters=yes _vstream=auto for ac_option do case "$ac_option" in @@ -1792,6 +1793,8 @@ --disable-win32) _win32=no _dshow=no ;; --enable-dshow) _win32=yes _dshow=yes ;; --disable-dshow) _dshow=no ;; + --enable-additional-filters) _additional_filters=yes ;; + --disable-additional-filters) _additional_filters=no ;; --with-x11incdir=*) _inc_x11=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'` @@ -6371,6 +6374,12 @@ fi echores "$_gethostbyname2" +if test "$_additional_filters" = yes ; then + _def_additional_filters='#define USE_ADDITIONAL_FILTERS 1' +else + _def_additional_filters='#undef USE_ADDITIONAL_FILTERS' +fi + # --------------- GUI specific tests begin ------------------- echocheck "GUI" echo "$_gui" @@ -6801,6 +6810,7 @@ AV_DEP = $_dep_libavcodec $_dep_libavformat AV_LIB = $_ld_libavcodec $_ld_libavformat CONFIG_LIBAVFORMAT = $_libavformat +ADDITIONAL_FILTERS = $_additional_filters ZORAN = $_zr FAME = $_fame FAME_LIB = $_ld_fame @@ -7145,6 +7155,9 @@ /* DirectShow support */ $_def_dshow +/* Additionnal filters support */ +$_def_additional_filters + /* Mac OS X specific features */ $_def_macosx $_def_macosx_finder_support diff -Naur MPlayer-1.0pre7.orig/libmpcodecs/Makefile MPlayer-1.0pre7/libmpcodecs/Makefile --- MPlayer-1.0pre7.orig/libmpcodecs/Makefile 2004-12-29 20:51:56.000000000 +0100 +++ MPlayer-1.0pre7/libmpcodecs/Makefile 2005-04-17 12:11:33.000000000 +0200 @@ -14,7 +14,7 @@ VIDEO_SRCS_OPT=vd_realvid.c vd_ffmpeg.c vd_dshow.c vd_dmo.c vd_vfw.c vd_vfwex.c vd_odivx.c vd_divx4.c vd_zrmjpeg.c vd_xanim.c vd_xvid.c vd_xvid4.c vd_libdv.c vd_qtvideo.c vd_theora.c VIDEO_SRCS=dec_video.c vd.c $(VIDEO_SRCS_NAT) $(VIDEO_SRCS_LIB) $(VIDEO_SRCS_OPT) -VFILTER_SRCS=vf.c vf_vo.c vf_crop.c vf_expand.c vf_scale.c vf_format.c vf_noformat.c vf_yuy2.c vf_flip.c vf_rgb2bgr.c vf_rotate.c vf_mirror.c vf_palette.c vf_lavc.c vf_dvbscale.c vf_cropdetect.c vf_test.c vf_noise.c vf_yvu9.c vf_rectangle.c vf_lavcdeint.c vf_eq.c vf_eq2.c vf_halfpack.c vf_dint.c vf_1bpp.c vf_bmovl.c vf_2xsai.c vf_unsharp.c vf_swapuv.c vf_il.c vf_boxblur.c vf_sab.c vf_smartblur.c vf_perspective.c vf_down3dright.c vf_field.c vf_denoise3d.c vf_hqdn3d.c vf_detc.c vf_telecine.c vf_tfields.c vf_ivtc.c vf_ilpack.c vf_dsize.c vf_decimate.c vf_softpulldown.c vf_tinterlace.c vf_pullup.c pullup.c vf_framestep.c vf_tile.c vf_delogo.c vf_fil.c vf_hue.c vf_spp.c vf_yuvcsp.c vf_filmdint.c vf_kerndeint.c vf_rgbtest.c vf_qp.c vf_phase.c vf_divtc.c vf_harddup.c vf_softskip.c +VFILTER_SRCS=vf.c vf_vo.c vf_crop.c vf_expand.c vf_scale.c vf_format.c vf_lavc.c ifeq ($(HAVE_FFPOSTPROCESS),yes) VFILTER_SRCS += vf_pp.c endif @@ -23,6 +23,10 @@ NATIVE_SRCS=native/RTjpegN.c native/minilzo.c native/nuppelvideo.c native/xa_gsm.c native/decode144.c native/decode288.c +ifeq ($(ADDITIONAL_FILTERS),yes) +VFILTER_SRCS += vf_noformat.c vf_yuy2.c vf_flip.c vf_rgb2bgr.c vf_rotate.c vf_mirror.c vf_palette.c vf_dvbscale.c vf_cropdetect.c vf_test.c vf_noise.c vf_yvu9.c vf_rectangle.c vf_lavcdeint.c vf_eq.c vf_eq2.c vf_halfpack.c vf_dint.c vf_1bpp.c vf_bmovl.c vf_2xsai.c vf_unsharp.c vf_swapuv.c vf_il.c vf_boxblur.c vf_sab.c vf_smartblur.c vf_perspective.c vf_down3dright.c vf_field.c vf_denoise3d.c vf_hqdn3d.c vf_detc.c vf_telecine.c vf_tfields.c vf_ivtc.c vf_ilpack.c vf_dsize.c vf_decimate.c vf_softpulldown.c vf_tinterlace.c vf_pullup.c pullup.c vf_framestep.c vf_tile.c vf_delogo.c vf_fil.c vf_hue.c vf_spp.c vf_yuvcsp.c vf_filmdint.c vf_kerndeint.c vf_rgbtest.c vf_qp.c vf_phase.c vf_divtc.c vf_harddup.c vf_softskip.c +endif + ifeq ($(FAME),yes) VFILTER_SRCS += vf_fame.c endif diff -Naur MPlayer-1.0pre7.orig/libmpcodecs/vf.c MPlayer-1.0pre7/libmpcodecs/vf.c --- MPlayer-1.0pre7.orig/libmpcodecs/vf.c 2005-03-08 23:11:49.000000000 +0100 +++ MPlayer-1.0pre7/libmpcodecs/vf.c 2005-04-17 12:14:48.000000000 +0200 @@ -24,16 +24,17 @@ #include "../libvo/fastmemcpy.h" extern vf_info_t vf_info_vo; -extern vf_info_t vf_info_rectangle; -#ifndef HAVE_NO_POSIX_SELECT -extern vf_info_t vf_info_bmovl; -#endif extern vf_info_t vf_info_crop; extern vf_info_t vf_info_expand; #ifdef FF_POSTPROCESS extern vf_info_t vf_info_pp; #endif extern vf_info_t vf_info_scale; +extern vf_info_t vf_info_lavc; +extern vf_info_t vf_info_rectangle; +#ifndef HAVE_NO_POSIX_SELECT +extern vf_info_t vf_info_bmovl; +#endif #ifdef USE_LIBFAME extern vf_info_t vf_info_fame; #endif @@ -45,7 +46,6 @@ extern vf_info_t vf_info_rotate; extern vf_info_t vf_info_mirror; extern vf_info_t vf_info_palette; -extern vf_info_t vf_info_lavc; extern vf_info_t vf_info_zrmjpeg; extern vf_info_t vf_info_dvbscale; extern vf_info_t vf_info_cropdetect; @@ -98,22 +98,26 @@ // list of available filters: static vf_info_t* filter_list[]={ - &vf_info_rectangle, -#ifndef HAVE_NO_POSIX_SELECT - &vf_info_bmovl, -#endif &vf_info_crop, &vf_info_expand, #ifdef FF_POSTPROCESS &vf_info_pp, #endif &vf_info_scale, +#ifdef USE_LIBAVCODEC + &vf_info_lavc, +#endif // &vf_info_osd, &vf_info_vo, + &vf_info_format, +#ifdef USE_ADDITIONAL_FILTERS + &vf_info_rectangle, +#ifndef HAVE_NO_POSIX_SELECT + &vf_info_bmovl, +#endif #ifdef USE_LIBFAME &vf_info_fame, #endif - &vf_info_format, &vf_info_noformat, &vf_info_yuy2, &vf_info_flip, @@ -122,7 +126,6 @@ &vf_info_mirror, &vf_info_palette, #ifdef USE_LIBAVCODEC - &vf_info_lavc, &vf_info_lavcdeint, #endif #ifdef HAVE_ZR @@ -179,6 +182,7 @@ &vf_info_divtc, &vf_info_harddup, &vf_info_softskip, +#endif NULL }; geexbox-0.98.7/packages/MPlayer/patches/24_disable-vo.diff0000644000175000017500000000175610335100767022237 0ustar aurelaureldiff -Naur MPlayer-1.0pre6.orig/libvo/Makefile MPlayer-1.0pre6/libvo/Makefile --- MPlayer-1.0pre6.orig/libvo/Makefile 2005-03-10 15:36:45.000000000 +0100 +++ MPlayer-1.0pre6/libvo/Makefile 2005-03-10 15:52:14.000000000 +0100 @@ -3,7 +3,7 @@ LIBNAME = libvo.a -SRCS=geometry.c aspect.c aclib.c osd.c font_load.c gtf.c spuenc.c video_out.c vo_null.c vo_mpegpes.c vo_yuv4mpeg.c $(OPTIONAL_SRCS) sub.c font_load_ft.c +SRCS=geometry.c aspect.c aclib.c osd.c font_load.c gtf.c spuenc.c video_out.c vo_null.c vo_mpegpes.c $(OPTIONAL_SRCS) sub.c font_load_ft.c OBJS=$(SRCS:.c=.o) ifeq ($(VIDIX),yes) diff -Naur MPlayer-1.0pre6.orig/libvo/video_out.c MPlayer-1.0pre6/libvo/video_out.c --- MPlayer-1.0pre6.orig/libvo/video_out.c 2005-03-10 15:36:45.000000000 +0100 +++ MPlayer-1.0pre6/libvo/video_out.c 2005-03-10 15:54:09.000000000 +0100 @@ -229,7 +229,6 @@ &video_out_null, // should not be auto-selected &video_out_mpegpes, - &video_out_yuv4mpeg, #ifdef HAVE_PNG &video_out_png, #endif geexbox-0.98.7/packages/MPlayer/patches/25_dvbin-dont-depend-glibc.diff0000644000175000017500000001053510335100767024565 0ustar aurelaurel/* patch backported from MPlayer-CVS */ =================================================================== RCS file: /cvsroot/mplayer/main/libmpdemux/dvbin.c,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- main/libmpdemux/dvbin.c 2005/04/18 19:49:40 1.14 +++ main/libmpdemux/dvbin.c 2005/09/18 19:17:23 1.15 @@ -129,15 +129,15 @@ { dvb_channels_list *list; FILE *f; - uint8_t line[CHANNEL_LINE_LEN]; + char line[CHANNEL_LINE_LEN], *colon; - int fields, cnt, pcnt; + int fields, cnt, pcnt, k; dvb_channel_t *ptr, *tmp, chn; - char *tmp_lcr, *tmp_hier, *inv, *bw, *cr, *mod, *transm, *gi, *vpid_str, *apid_str; - const char *cbl_conf = "%a[^:]:%d:%a[^:]:%d:%a[^:]:%a[^:]:%a[^:]:%a[^:]\n"; - const char *sat_conf = "%a[^:]:%d:%c:%d:%d:%a[^:]:%a[^:]\n"; - const char *ter_conf = "%a[^:]:%d:%a[^:]:%a[^:]:%a[^:]:%a[^:]:%a[^:]:%a[^:]:%a[^:]:%a[^:]:%a[^:]:%a[^:]\n"; - const char *atsc_conf = "%a[^:]:%d:%a[^:]:%a[^:]:%a[^:]\n"; + char tmp_lcr[256], tmp_hier[256], inv[256], bw[256], cr[256], mod[256], transm[256], gi[256], vpid_str[256], apid_str[256]; + const char *cbl_conf = "%d:%255[^:]:%d:%255[^:]:%255[^:]:%255[^:]:%255[^:]\n"; + const char *sat_conf = "%d:%c:%d:%d:%255[^:]:%255[^:]\n"; + const char *ter_conf = "%d:%255[^:]:%255[^:]:%255[^:]:%255[^:]:%255[^:]:%255[^:]:%255[^:]:%255[^:]:%255[^:]:%255[^:]\n"; + const char *atsc_conf = "%d:%255[^:]:%255[^:]:%255[^:]\n"; mp_msg(MSGT_DEMUX, MSGL_V, "CONFIG_READ FILE: %s, type: %d\n", filename, type); if((f=fopen(filename, "r"))==NULL) @@ -164,23 +164,38 @@ if((line[0] == '#') || (strlen(line) == 0)) continue; - - apid_str = vpid_str = NULL; + colon = index(line, ':'); + if(colon) + { + k = colon - line; + if(!k) + continue; + ptr->name = (char*) malloc(k+1); + if(! ptr->name) + continue; + strncpy(ptr->name, line, k); + ptr->name[k] = 0; + } + else + continue; + k++; + apid_str[0] = vpid_str[0] = 0; ptr->pids_cnt = 0; + ptr->freq = 0; if(type == TUNER_TER) { - fields = sscanf(line, ter_conf, - &ptr->name, &ptr->freq, &inv, &bw, &cr, &tmp_lcr, &mod, - &transm, &gi, &tmp_hier, &vpid_str, &apid_str); + fields = sscanf(&line[k], ter_conf, + &ptr->freq, inv, bw, cr, tmp_lcr, mod, + transm, gi, tmp_hier, vpid_str, apid_str); mp_msg(MSGT_DEMUX, MSGL_V, "TER, NUM: %d, NUM_FIELDS: %d, NAME: %s, FREQ: %d", list->NUM_CHANNELS, fields, ptr->name, ptr->freq); } else if(type == TUNER_CBL) { - fields = sscanf(line, cbl_conf, - &ptr->name, &ptr->freq, &inv, &ptr->srate, - &cr, &mod, &vpid_str, &apid_str); + fields = sscanf(&line[k], cbl_conf, + &ptr->freq, inv, &ptr->srate, + cr, mod, vpid_str, apid_str); mp_msg(MSGT_DEMUX, MSGL_V, "CBL, NUM: %d, NUM_FIELDS: %d, NAME: %s, FREQ: %d, SRATE: %d", list->NUM_CHANNELS, fields, ptr->name, ptr->freq, ptr->srate); @@ -188,8 +203,8 @@ #ifdef DVB_ATSC else if(type == TUNER_ATSC) { - fields = sscanf(line, atsc_conf, - &ptr->name, &ptr->freq, &mod, &vpid_str, &apid_str); + fields = sscanf(&line[k], atsc_conf, + &ptr->freq, mod, vpid_str, apid_str); mp_msg(MSGT_DEMUX, MSGL_V, "ATSC, NUM: %d, NUM_FIELDS: %d, NAME: %s, FREQ: %d\n", list->NUM_CHANNELS, fields, ptr->name, ptr->freq); @@ -197,8 +212,8 @@ #endif else //SATELLITE { - fields = sscanf(line, sat_conf, - &ptr->name, &ptr->freq, &ptr->pol, &ptr->diseqc, &ptr->srate, &vpid_str, &apid_str); + fields = sscanf(&line[k], sat_conf, + &ptr->freq, &ptr->pol, &ptr->diseqc, &ptr->srate, vpid_str, apid_str); ptr->pol = toupper(ptr->pol); ptr->freq *= 1000UL; ptr->srate *= 1000UL; @@ -214,7 +229,7 @@ list->NUM_CHANNELS, fields, ptr->name, ptr->freq, ptr->srate, ptr->pol, ptr->diseqc); } - if(vpid_str != NULL) + if(vpid_str[0]) { pcnt = sscanf(vpid_str, "%d+%d+%d+%d+%d+%d+%d", &ptr->pids[0], &ptr->pids[1], &ptr->pids[2], &ptr->pids[3], &ptr->pids[4], &ptr->pids[5], &ptr->pids[6]); @@ -225,7 +240,7 @@ } } - if(apid_str != NULL) + if(apid_str[0]) { cnt = ptr->pids_cnt; pcnt = sscanf(apid_str, "%d+%d+%d+%d+%d+%d+%d+%d", &ptr->pids[cnt], &ptr->pids[cnt+1], &ptr->pids[cnt+2], @@ -237,7 +252,7 @@ } } - if((fields < 3) || (ptr->pids_cnt <= 0) || (ptr->freq == 0) || (strlen(ptr->name) == 0)) + if((fields < 2) || (ptr->pids_cnt <= 0) || (ptr->freq == 0) || (strlen(ptr->name) == 0)) continue; geexbox-0.98.7/packages/MPlayer/patches/26_nopcidb.diff0000644000175000017500000000507210335100767021625 0ustar aurelaureldiff -Naur MPlayer-1.0pre6.orig/libdha/pci_db2c.awk MPlayer-1.0pre6/libdha/pci_db2c.awk --- MPlayer-1.0pre6.orig/libdha/pci_db2c.awk 2004-12-30 19:38:06.745874168 +0100 +++ MPlayer-1.0pre6/libdha/pci_db2c.awk 2004-12-30 19:39:40.447629336 +0100 @@ -44,9 +44,6 @@ print_name_struct(name_h_file); print "#include ">name_file print "#include \"pci_names.h\"">name_file - print "#include \"pci_dev_ids.c\"">name_file - print "">name_file - print "static struct vendor_id_s vendor_ids[] = {">name_file first_pass=1; init_name_db(); while(getline vendor_file; if(length(svend_name) < 9) printf("\t") >vendor_file; printf("0x%s /*%s*/\n",field[2], name_field) >vendor_file; - printf("{ 0x%s, \"%s\", dev_lst_%s },\n",field[2], name_field, field[2]) >name_file; printf("/* Vendor: %s: %s */\n", field[2], name_field) > ids_file if(first_pass == 1) { first_pass=0; } else { print "{ 0xFFFF, NULL }\n};" >dev_ids_file; } @@ -102,7 +98,6 @@ print "#endif/*PCI_IDS_INCLUDED*/">ids_file print "">name_h_file print "#endif/*PCI_NAMES_INCLUDED*/">name_h_file - print "};">name_file print "{ 0xFFFF, NULL }" >dev_ids_file; print "};">dev_ids_file print_func_bodies(name_file); @@ -149,30 +144,11 @@ print "">out_file print "const char *pci_vendor_name(unsigned short id)" >out_file print "{" >out_file - print " unsigned i;" >out_file - print " for(i=0;iout_file - print " {" >out_file - print "\tif(vendor_ids[i].id == id) return vendor_ids[i].name;" >out_file - print " }" >out_file print " return NULL;" >out_file print "}">out_file print "" >out_file print "const char *pci_device_name(unsigned short vendor_id, unsigned short device_id)" >out_file print "{" >out_file - print " unsigned i, j;" >out_file - print " for(i=0;iout_file - print " {" >out_file - print "\tif(vendor_ids[i].id == vendor_id)" >out_file - print "\t{" >out_file - print "\t j=0;" >out_file - print "\t while(vendor_ids[i].dev_list[j].id != 0xFFFF)" >out_file - print "\t {">out_file - print "\t\tif(vendor_ids[i].dev_list[j].id == device_id) return vendor_ids[i].dev_list[j].name;">out_file - print "\t\tj++;">out_file - print "\t };">out_file - print "\t break;" >out_file - print "\t}" >out_file - print " }" >out_file print " return NULL;">out_file print "}">out_file return geexbox-0.98.7/packages/MPlayer/patches/27_getpath.diff0000644000175000017500000000116610335100767021644 0ustar aurelaureldiff -Naur MPlayer-1.0pre7.orig/get_path.c MPlayer-1.0pre7/get_path.c --- MPlayer-1.0pre7.orig/get_path.c 2005-04-13 13:46:12.000000000 +0200 +++ MPlayer-1.0pre7/get_path.c 2005-08-20 15:12:09.000000000 +0200 @@ -24,7 +24,7 @@ #if defined(__MINGW32__) static char *config_dir = "/mplayer"; #else - static char *config_dir = "/.mplayer"; + static char *config_dir = "/mplayer"; #endif int len; #ifdef MACOSX_BUNDLE @@ -44,6 +44,7 @@ #else return NULL; #endif + homedir = "/etc"; len = strlen(homedir) + strlen(config_dir) + 1; if (filename == NULL) { if ((buff = (char *) malloc(len)) == NULL) geexbox-0.98.7/packages/MPlayer/patches/28_fix-include-pci.h.diff0000644000175000017500000000102010335100767023404 0ustar aurelaurel* fix #include for ppc target (linux 2.6). diff -Naur MPlayer-1.0pre6.orig/libdha/sysdep/pci_linux.c MPlayer-1.0pre6/libdha/sysdep/pci_linux.c --- MPlayer-1.0pre6.orig/libdha/sysdep/pci_linux.c 2005-03-10 15:36:44.000000000 +0100 +++ MPlayer-1.0pre6/libdha/sysdep/pci_linux.c 2005-03-10 15:37:02.000000000 +0100 @@ -130,6 +130,7 @@ mplayer-dev-eng@mplayerhq.hu, colin@colino.net*/ #include //#include +#define LINUX_MOD_DEVICETABLE_H #include #include "../../bswap.h" geexbox-0.98.7/packages/MPlayer/patches/30_conf.diff0000644000175000017500000000101110335100767021114 0ustar aurelaureldiff -Naur MPlayer-1.0pre6.orig/playtree.c MPlayer-1.0pre6/playtree.c --- MPlayer-1.0pre6.orig/playtree.c 2004-12-30 19:38:06.694881920 +0100 +++ MPlayer-1.0pre6/playtree.c 2004-12-30 19:42:45.717464040 +0100 @@ -707,8 +707,9 @@ iter->tree = iter->tree->parent; // Pop subtree params - if(iter->config) { + if(iter->config && iter->entry_pushed > 0) { m_config_pop(iter->config); + iter->entry_pushed = 0; if(iter->mode == PLAY_TREE_ITER_RND) iter->tree->flags |= PLAY_TREE_RND_PLAYED; } geexbox-0.98.7/packages/MPlayer/patches/31_lrintf.diff0000644000175000017500000000055410335100767021501 0ustar aurelaureldiff -Naur MPlayer-1.0pre6.orig/configure MPlayer-1.0pre6/configure --- MPlayer-1.0pre6.orig/configure 2004-12-30 19:39:34.445541792 +0100 +++ MPlayer-1.0pre6/configure 2004-12-30 19:42:51.634564504 +0100 @@ -2369,6 +2369,7 @@ echocheck "lrintf" cat > $TMPC << EOF +#define _GNU_SOURCE #include int main(void) { (void) lrintf(0.0); return 0; } EOF geexbox-0.98.7/packages/MPlayer/patches/36_lirc.diff0000644000175000017500000000061110335100767021133 0ustar aurelaureldiff -Naur MPlayer-1.0pre6.orig/input/input.c MPlayer-1.0pre6/input/input.c --- MPlayer-1.0pre6.orig/input/input.c 2004-12-30 19:43:32.220394520 +0100 +++ MPlayer-1.0pre6/input/input.c 2004-12-30 19:43:44.601512304 +0100 @@ -1092,8 +1092,6 @@ continue; mp_msg(MSGT_INPUT,MSGL_ERR,"Select error: %s\n",strerror(errno)); } - if(!got_cmd) - return NULL; } break; } geexbox-0.98.7/packages/MPlayer/patches/38_joystick.diff0000644000175000017500000000745510335100767022060 0ustar aurelaureldiff -Naur MPlayer-1.0pre6.orig/input/joystick.c MPlayer-1.0pre6/input/joystick.c --- MPlayer-1.0pre6.orig/input/joystick.c 2004-12-30 19:38:06.738875232 +0100 +++ MPlayer-1.0pre6/input/joystick.c 2004-12-30 19:44:00.216138520 +0100 @@ -30,6 +30,9 @@ int axis[10]; int btns = 0; +// Callback to allow the menu filter to grab the incoming joystick event +void (*mp_input_joy_cb)(int code) = NULL; + int mp_input_joystick_init(char* dev) { int fd,l=0; int inited = 0; @@ -122,7 +125,14 @@ btns &= ~(1 << ev.number); btns |= (ev.value << ev.number); if(ev.value == 1) - return ((JOY_BTN0+ev.number) | MP_KEY_DOWN); + { + if (mp_input_joy_cb) + { + mp_input_joy_cb (JOY_BTN0+ev.number); + return MP_INPUT_NOTHING; + } + return ((JOY_BTN0+ev.number) | MP_KEY_DOWN); + } else return (JOY_BTN0+ev.number); } else if(ev.type & JS_EVENT_AXIS) { @@ -135,6 +145,11 @@ } else if(ev.value <= JOY_AXIS_DELTA && ev.value >= -JOY_AXIS_DELTA && axis[ev.number] != 0) { int r = axis[ev.number] == 1 ? JOY_AXIS0_PLUS+(2*ev.number) : JOY_AXIS0_MINUS+(2*ev.number); axis[ev.number] = 0; + if (mp_input_joy_cb) + { + mp_input_joy_cb (r); + return MP_INPUT_NOTHING; + } return r; } else return MP_INPUT_NOTHING; diff -Naur MPlayer-1.0pre6.orig/input/joystick.h MPlayer-1.0pre6/input/joystick.h --- MPlayer-1.0pre6.orig/input/joystick.h 2004-12-30 19:38:06.738875232 +0100 +++ MPlayer-1.0pre6/input/joystick.h 2004-12-30 19:44:00.216138520 +0100 @@ -37,3 +37,5 @@ int mp_input_joystick_read(int fd); +// Set this to grab all incoming key codes +extern void (*mp_input_joy_cb)(int code); diff -Naur MPlayer-1.0pre6.orig/libmenu/menu.c MPlayer-1.0pre6/libmenu/menu.c --- MPlayer-1.0pre6.orig/libmenu/menu.c 2004-12-30 19:38:06.756872496 +0100 +++ MPlayer-1.0pre6/libmenu/menu.c 2004-12-30 19:44:00.216138520 +0100 @@ -19,6 +19,9 @@ #include "../m_struct.h" #include "menu.h" +#include "../input/input.h" +#include "../input/joystick.h" + extern menu_info_t menu_info_cmdlist; extern menu_info_t menu_info_pt; extern menu_info_t menu_info_filesel; @@ -179,17 +182,23 @@ void menu_dflt_read_key(menu_t* menu,int cmd) { switch(cmd) { case KEY_UP: + case JOY_AXIS1_MINUS: menu->read_cmd(menu,MENU_CMD_UP); break; case KEY_DOWN: + case JOY_AXIS1_PLUS: menu->read_cmd(menu,MENU_CMD_DOWN); break; case KEY_LEFT: case KEY_ESC: + case JOY_AXIS0_MINUS: + case JOY_BTN1: menu->read_cmd(menu,MENU_CMD_CANCEL); break; case KEY_RIGHT: case KEY_ENTER: + case JOY_AXIS0_PLUS: + case JOY_BTN0: menu->read_cmd(menu,MENU_CMD_OK); break; } diff -Naur MPlayer-1.0pre6.orig/libmenu/vf_menu.c MPlayer-1.0pre6/libmenu/vf_menu.c --- MPlayer-1.0pre6.orig/libmenu/vf_menu.c 2004-12-30 19:38:06.757872344 +0100 +++ MPlayer-1.0pre6/libmenu/vf_menu.c 2004-12-30 19:44:00.216138520 +0100 @@ -19,6 +19,7 @@ #include "../libvo/video_out.h" #include "../libvo/font_load.h" #include "../input/input.h" +#include "../input/joystick.h" #include "../m_struct.h" #include "menu.h" @@ -206,6 +207,14 @@ if(mp_input_key_cb && !vf->priv->current->show) mp_input_key_cb = NULL; +#ifdef HAVE_JOYSTICK + // Grab // Ungrab the joy inputs + if(!mp_input_joy_cb && vf->priv->current->show) + mp_input_joy_cb = key_cb; + if(mp_input_joy_cb && !vf->priv->current->show) + mp_input_joy_cb = NULL; +#endif + if(mpi->flags&MP_IMGFLAG_DIRECT) dmpi = mpi->priv; else { @@ -219,6 +228,10 @@ } else { if(mp_input_key_cb) mp_input_key_cb = NULL; +#ifdef HAVE_JOYSTICK + if(mp_input_joy_cb) + mp_input_joy_cb = NULL; +#endif dmpi = vf_get_image(vf->next,mpi->imgfmt, MP_IMGTYPE_EXPORT, MP_IMGFLAG_ACCEPT_STRIDE, mpi->w,mpi->h); geexbox-0.98.7/packages/MPlayer/patches/39_joystick-init.diff0000644000175000017500000000072410335100767023012 0ustar aurelaureldiff -Naur MPlayer-1.0pre7.orig/input/joystick.c MPlayer-1.0pre7/input/joystick.c --- MPlayer-1.0pre7.orig/input/joystick.c 2003-07-09 03:30:22.000000000 +0200 +++ MPlayer-1.0pre7/input/joystick.c 2005-07-26 19:14:52.000000000 +0200 @@ -65,7 +65,6 @@ printf("Joystick : we loose %d bytes of data\n",l); break; } - ev.type &= ~JS_EVENT_INIT; if(ev.type == JS_EVENT_BUTTON) btns |= (ev.value << ev.number); if(ev.type == JS_EVENT_AXIS) geexbox-0.98.7/packages/MPlayer/patches/40_bgvideo.diff0000644000175000017500000001033610335100767021621 0ustar aurelaureldiff -Naur MPlayer-1.0pre6.orig/cfg-mplayer.h MPlayer-1.0pre6/cfg-mplayer.h --- MPlayer-1.0pre6.orig/cfg-mplayer.h 2004-12-30 19:39:19.514811608 +0100 +++ MPlayer-1.0pre6/cfg-mplayer.h 2004-12-30 19:44:22.649728096 +0100 @@ -374,6 +374,8 @@ {"guiwid", &guiWinID, CONF_TYPE_INT, 0, 0, 0, NULL}, #endif + {"bgvideo", &bg_video, CONF_TYPE_STRING, 0, 0, 0, NULL}, + {"noloop", &loop_times, CONF_TYPE_FLAG, 0, 0, -1, NULL}, {"loop", &loop_times, CONF_TYPE_INT, CONF_RANGE, -1, 10000, NULL}, {"playlist", NULL, CONF_TYPE_STRING, 0, 0, 0, NULL}, diff -Naur MPlayer-1.0pre6.orig/mplayer.c MPlayer-1.0pre6/mplayer.c --- MPlayer-1.0pre6.orig/mplayer.c 2004-12-30 19:39:19.518811000 +0100 +++ MPlayer-1.0pre6/mplayer.c 2004-12-30 19:44:22.651727792 +0100 @@ -250,6 +250,9 @@ char* filename=NULL; //"MI2-Trailer.avi"; int forced_subs_only=0; +static char* bg_video = NULL; +static demuxer_t *bg_demuxer = NULL; + // cache2: int stream_cache_size=-1; #ifdef USE_STREAM_CACHE @@ -410,6 +413,13 @@ free_demuxer(demuxer); } demuxer=NULL; + current_module="free_bg_demuxer"; + if(bg_demuxer) { + stream_t* bg_s = bg_demuxer->stream; + free_demuxer(bg_demuxer); + bg_demuxer = NULL; + free_stream(bg_s); + } } // kill the cache process: @@ -1738,6 +1748,34 @@ sh_audio=d_audio->sh; sh_video=d_video->sh; +while(sh_audio && !sh_video && bg_video) { + int bg_file_format = 0; + stream_t* bg_s; + mp_msg(MSGT_CPLAYER,MSGL_INFO, "Open bgvideo: %s\n",bg_video); + bg_s = open_stream(bg_video,NULL,&bg_file_format); + if(!bg_s) { + mp_msg(MSGT_CPLAYER,MSGL_ERR, "Couldn't open the stream for back ground video: %s\n",bg_video); + break; + } + bg_demuxer = demux_open(bg_s,bg_file_format,-2,video_id,dvdsub_id,bg_video); + if(!bg_demuxer) { + mp_msg(MSGT_DEMUXER,MSGL_ERR,"Failed to open background video\n"); + free_stream(bg_s); + break; + } + if(!bg_demuxer->video && !bg_demuxer->video->sh) { + mp_msg(MSGT_DEMUXER,MSGL_ERR,"The background video don't have a video stream\n"); + free_demuxer(bg_demuxer); + bg_demuxer = NULL; + free_stream(bg_s); + break; + } + d_video = bg_demuxer->video; + sh_video = d_video->sh; + mp_msg(MSGT_DEMUXER,MSGL_INFO,"Background video should work ;)\n"); + break; +} + if(sh_video){ current_module="video_read_properties"; @@ -2197,7 +2235,15 @@ if(play_n_frames>=0){ --play_n_frames; - if(play_n_frames<0) eof = PT_NEXT_ENTRY; + if(play_n_frames<0) { + if(bg_demuxer) { + if(!demux_seek(bg_demuxer,0,1)) + eof = PT_NEXT_ENTRY; + else + play_n_frames = play_n_frames_mf; + } else + eof = PT_NEXT_ENTRY; + } } /*========================== PLAY AUDIO ============================*/ @@ -2248,6 +2294,8 @@ break; } // while(sh_audio) +if(bg_demuxer && d_audio->eof) eof=1; + if(!sh_video) { // handle audio-only case: if(!quiet) { @@ -2274,7 +2322,16 @@ // get it! current_module="video_read_frame"; in_size=video_read_frame(sh_video,&next_frame_time,&start,force_fps); - if(in_size<0){ eof=1; break; } + if(in_size<0){ + if(bg_demuxer) { + if(!demux_seek(bg_demuxer,0,1)) + eof = 1; + else + continue; + } else + eof=1; + break; + } if(in_size>max_framesize) max_framesize=in_size; // stats sh_video->timer+=frame_time; if(sh_audio) sh_audio->delay-=frame_time; @@ -2480,6 +2537,13 @@ current_module="av_sync"; if(sh_audio){ + if(bg_demuxer) { + if(!quiet) mp_msg(MSGT_AVSYNC,MSGL_STATUS,"A:%6.1f %4.1f%% %d%% \r" + ,sh_audio->delay-audio_out->get_delay() + ,(sh_audio->delay>0.5)?100.0*audio_time_usage/(double)sh_audio->delay:0 + ,cache_fill_status + ); + } else { float a_pts=0; float v_pts=0; @@ -2551,7 +2615,7 @@ if(!quiet) print_status(a_pts - audio_delay - delay, AV_delay, c_total); } - + } } else { // No audio: @@ -3840,6 +3904,7 @@ if(osd_level>=1 && sh_video){ int pts=sh_video->pts; char osd_text_tmp[64]; + if (bg_demuxer) pts=d_audio->pts+(ds_tell_pts(d_audio)-sh_audio->a_in_buffer_len)/sh_audio->i_bps; if(pts==osd_last_pts-1) ++pts; else osd_last_pts=pts; vo_osd_text=osd_text_buffer; #ifdef USE_DVDNAV geexbox-0.98.7/packages/MPlayer/patches/42_osdlevel.diff0000644000175000017500000000143310335100767022017 0ustar aurelaureldiff -Naur MPlayer-1.0pre6.orig/cfg-mplayer.h MPlayer-1.0pre6/cfg-mplayer.h --- MPlayer-1.0pre6.orig/cfg-mplayer.h 2004-12-30 19:44:26.399158096 +0100 +++ MPlayer-1.0pre6/cfg-mplayer.h 2004-12-30 19:45:19.558076712 +0100 @@ -62,10 +62,6 @@ extern int fullscreen; extern int vidmode; -#ifdef USE_OSD -extern int osd_level; -#endif - extern char *ao_outputfilename; extern int ao_pcm_waveheader; @@ -316,7 +312,6 @@ {"crash-debug", &crash_debug, CONF_TYPE_FLAG, CONF_GLOBAL, 0, 1, NULL}, {"nocrash-debug", &crash_debug, CONF_TYPE_FLAG, CONF_GLOBAL, 1, 0, NULL}, #endif - {"osdlevel", &osd_level, CONF_TYPE_INT, CONF_RANGE, 0, 3, NULL}, #ifdef HAVE_MENU {"menu", &use_menu, CONF_TYPE_FLAG, CONF_GLOBAL, 0, 1, NULL}, {"nomenu", &use_menu, CONF_TYPE_FLAG, CONF_GLOBAL, 1, 0, NULL}, geexbox-0.98.7/packages/MPlayer/patches/50_dvd-longest.diff0000644000175000017500000001674110335100767022437 0ustar aurelaureldiff -Naur MPlayer-1.0pre6.orig/help/help_mp-en.h MPlayer-1.0pre6/help/help_mp-en.h --- MPlayer-1.0pre6.orig/help/help_mp-en.h 2004-12-30 19:38:06.735875688 +0100 +++ MPlayer-1.0pre6/help/help_mp-en.h 2004-12-30 19:45:36.351523720 +0100 @@ -471,6 +471,11 @@ #define MSGTR_DVDnoIFO "Cannot open the IFO file for DVD title %d.\n" #define MSGTR_DVDnoVOBs "Cannot open title VOBS (VTS_%02d_1.VOB).\n" #define MSGTR_DVDopenOk "DVD successfully opened.\n" +#define MSGTR_DVDlookLongest "Looking for longest track ...\n" +#define MSGTR_DVDinfo001 "Title: %02d, Length: %02x:%02x:%02x (%5d seconds) " +#define MSGTR_DVDinfo002 "Chapters: %02d, Cells: %02d, " +#define MSGTR_DVDinfo003 "Audio streams: %02d, Subpictures: %02d\n" +#define MSGTR_DVDtrackSelected "Selected track %d (%d seconds) ...\n" // demuxer.c, demux_*.c: #define MSGTR_AudioStreamRedefined "WARNING: Audio stream header %d redefined.\n" diff -Naur MPlayer-1.0pre6.orig/libmpdemux/open.c MPlayer-1.0pre6/libmpdemux/open.c --- MPlayer-1.0pre6.orig/libmpdemux/open.c 2004-12-30 19:38:06.773869912 +0100 +++ MPlayer-1.0pre6/libmpdemux/open.c 2004-12-30 19:45:36.352523568 +0100 @@ -109,6 +109,106 @@ #endif +int dvd_title_info(dvd_reader_t *dvd, ifo_handle_t *ifo_zero, int mask) +{ + int nr; + int i; + ifo_handle_t **t_ifo; + int rt = 0; + int mt; + + // Print some info ... + if (mask & 0x0001) { + mp_msg(MSGT_OPEN, MSGL_INFO, MSGTR_DVDlookLongest); + // printf("Looking for longest track ...\n"); + } + + //* Alloc space for all info in the dvd + nr = ifo_zero->vts_atrt->nr_of_vtss; + t_ifo = (ifo_handle_t **)malloc((nr + 1) * sizeof(ifo_handle_t *)); + + // * Read all info + for(i = 1; i <= nr; i++) { + t_ifo[i] = ifoOpen(dvd, i); + } + + // Navigate all titles + nr = ifo_zero->tt_srpt->nr_of_srpts; + for(i = 0; i < nr; i++) { + // Load information for the title + if (t_ifo[ifo_zero->tt_srpt->title[i].title_set_nr]->vtsi_mat) { + vtsi_mat_t *vtsi_mat; + pgcit_t *vts_pgcit; + int vts_ttn; + int title_set_nr; + pgc_t *pgc; + dvd_time_t *dvd_time; + int ct; + + vtsi_mat = t_ifo[ifo_zero->tt_srpt->title[i].title_set_nr]->vtsi_mat; + vts_pgcit = t_ifo[ifo_zero->tt_srpt->title[i].title_set_nr]->vts_pgcit; + vts_ttn = ifo_zero->tt_srpt->title[i].vts_ttn; + title_set_nr = ifo_zero->tt_srpt->title[i].title_set_nr; + pgc = vts_pgcit->pgci_srp[t_ifo[title_set_nr]->vts_ptt_srpt->title[vts_ttn - 1].ptt[0].pgcn - 1].pgc; + dvd_time = &pgc->playback_time; + + ct = dvd_time->hour * 3600 + dvd_time->minute * 60 + dvd_time->second; + + if (mask & 0x0002) { + // Print required info + mp_msg(MSGT_OPEN, MSGL_INFO, MSGTR_DVDinfo001, + i+1, + dvd_time->hour, + dvd_time->minute, + dvd_time->second, + ct); + mp_msg(MSGT_OPEN, MSGL_INFO, MSGTR_DVDinfo002, + ifo_zero->tt_srpt->title[i].nr_of_ptts, + pgc->nr_of_cells); + mp_msg(MSGT_OPEN, MSGL_INFO, MSGTR_DVDinfo003, + vtsi_mat->nr_of_vts_audio_streams, + vtsi_mat->nr_of_vts_subp_streams); + } + + if (mask & 0x0001) { + // Look for the longest track + if (i == 0) { + // First pass + rt = 1; + mt = ct; + } + else { + // Check + if (ct > mt) { + rt = i + 1; + mt = ct; + } + } + } + } + } + + if (mask & 0x0001) { + // Show what happened + // printf("Selected track %d (%d seconds) ...\n", + mp_msg(MSGT_OPEN, MSGL_INFO, MSGTR_DVDtrackSelected, + rt, + mt); + } + + // Close all ifo + nr = ifo_zero->vts_atrt->nr_of_vtss; + for(i = 1; i <= nr; i++) { + ifoClose(t_ifo[i]); + } + + // Free temp memory + free(t_ifo); + + // Return track or 0 to stop + return( rt ); +} + // Open a new stream (stdin/file/vcd/url) stream_t* open_stream(char* filename,char** options, int* file_format){ @@ -236,6 +336,17 @@ return NULL; } tt_srpt = vmg_file->tt_srpt; + + if (dvd_title < 0) { + dvd_title = dvd_title_info(dvd, vmg_file, -dvd_title); + if (dvd_title <= 0) { + // Close & exit, no msg. + ifoClose( vmg_file ); + DVDClose( dvd ); + return NULL; + } + } + /** * Make sure our title number is valid. */ diff -Naur MPlayer-1.0pre6.orig/parser-mpcmd.c MPlayer-1.0pre6/parser-mpcmd.c --- MPlayer-1.0pre6.orig/parser-mpcmd.c 2004-12-30 19:38:06.694881920 +0100 +++ MPlayer-1.0pre6/parser-mpcmd.c 2004-12-30 19:45:36.352523568 +0100 @@ -56,6 +56,47 @@ *last_entryp = entry; } + + +static char *get_opt_str(char **arg, char *dst, unsigned dst_size) +{ + + char *t; + + t = *arg; + if (*t == '\0') { + return( NULL); + } + else { + char *e; + unsigned l; + + + e = strchr(t, ':'); + if (e != NULL) { + l = e - t; + } + else { + l = strlen(t); + } + if (l < dst_size) { + strncpy(dst, t, l); + dst[l] = '\0'; + t += l; + if (*t == ':') { + ++t; + } + } + else { + // Out of size -> error + strcpy(dst, "*"); + t += strlen(t); + } + *arg = t; + } + return( dst ); +} + play_tree_t* m_config_parse_mp_command_line(m_config_t *config, int argc, char **argv) { @@ -236,8 +277,37 @@ mp_msg(MSGT_CFGPARSER, MSGL_ERR,"Invalid play entry %s\n",argv[i]); } - } else { // dvd:// or dvd://x entry - play_tree_add_file(entry,argv[i]); + } else { // dvd:// or dvd://x or dvd://longest:list entry + char *pc; + + pc = argv[i]+6; + if (*pc >= 'a' && *pc <= 'z') { + // may be option (passed as -nn to open_stream(...) + + char t_opt[80 + 1]; + char *opt_str; + int op = 0; + + while ((opt_str = get_opt_str(&pc, t_opt, sizeof(t_opt))) != NULL) { + if (strcmp(opt_str, "longest") == 0) { + op |= 0x0001; + } + else if (strcmp(opt_str, "list") == 0) { + op |= 0x0002; + } + else { + // Error -> bail out + mp_msg(MSGT_CFGPARSER, MSGL_ERR, "dvd:// unknow option: [%s]\n", opt_str); + + goto err_out; + } + } + snprintf(entbuf, 9, "dvd://%d", -op); + play_tree_add_file(entry, entbuf); + } + else { + play_tree_add_file(entry,argv[i]); + } } } else { play_tree_add_file(entry,argv[i]); geexbox-0.98.7/packages/MPlayer/patches/52_vcd-dvd-cdda-play.diff0000644000175000017500000001613410335100767023372 0ustar aurelaureldiff -Naur MPlayer-1.0pre6.orig/input/input.c MPlayer-1.0pre6/input/input.c --- MPlayer-1.0pre6.orig/input/input.c 2004-12-30 19:43:46.230264696 +0100 +++ MPlayer-1.0pre6/input/input.c 2004-12-30 19:45:53.579904608 +0100 @@ -102,6 +102,15 @@ #ifdef HAS_DVBIN_SUPPORT { MP_CMD_DVB_SET_CHANNEL, "dvb_set_channel", 2, { {MP_CMD_ARG_INT,{0}}, {MP_CMD_ARG_INT,{0}}, {-1,{0}}}}, #endif +#ifdef HAVE_VCD + { MP_CMD_VCD_PLAY, "play_vcd", 0, { {MP_CMD_ARG_STRING, {0}}, {-1,{0}} } }, +#endif +#ifdef USE_DVDREAD + { MP_CMD_DVD_PLAY, "play_dvd", 0, { {MP_CMD_ARG_STRING, {0}}, {-1,{0}} } }, +#endif +#ifdef HAVE_CDDA + { MP_CMD_CDDA_PLAY, "play_cdda", 0, { {MP_CMD_ARG_STRING, {0}}, {-1,{0}} } }, +#endif { MP_CMD_SWITCH_RATIO, "switch_ratio", 0, { {MP_CMD_ARG_FLOAT,{0}}, {-1,{0}} } }, { MP_CMD_VO_FULLSCREEN, "vo_fullscreen", 0, { {-1,{0}} } }, { MP_CMD_VO_ONTOP, "vo_ontop", 0, { {-1,{0}} } }, diff -Naur MPlayer-1.0pre6.orig/input/input.h MPlayer-1.0pre6/input/input.h --- MPlayer-1.0pre6.orig/input/input.h 2004-12-30 19:38:06.737875384 +0100 +++ MPlayer-1.0pre6/input/input.h 2004-12-30 19:45:53.579904608 +0100 @@ -63,6 +63,10 @@ #define MP_CMD_SPEED_SET 59 #define MP_CMD_RUN 60 +#define MP_CMD_VCD_PLAY 70 +#define MP_CMD_DVD_PLAY 71 +#define MP_CMD_CDDA_PLAY 72 + #define MP_CMD_GUI_EVENTS 5000 #define MP_CMD_GUI_LOADFILE 5001 #define MP_CMD_GUI_LOADSUBTITLE 5002 diff -Naur MPlayer-1.0pre6.orig/libmpdemux/cdda.c MPlayer-1.0pre6/libmpdemux/cdda.c --- MPlayer-1.0pre6.orig/libmpdemux/cdda.c 2004-12-30 19:38:06.768870672 +0100 +++ MPlayer-1.0pre6/libmpdemux/cdda.c 2004-12-30 19:45:53.580904456 +0100 @@ -247,6 +247,34 @@ static void cdparanoia_callback(long inpos, int function) { } +int get_cdda_tracks_num(char* dev) { + cdrom_drive* cdd = NULL; + int nb_tracks; + +#if defined(__NetBSD__) + cdd = cdda_identify_scsi(dev,dev,0,NULL); +#else + cdd = cdda_identify(dev,0,NULL); +#endif + + if(!cdd) { + mp_msg(MSGT_OPEN,MSGL_ERR,"Can't open cdda device\n"); + return -1; + } + + if(cdda_open(cdd)) { + mp_msg(MSGT_OPEN,MSGL_ERR,"Can't open disc\n"); + cdda_close(cdd); + return -1; + } + + cdda_verbose_set(cdd, CDDA_MESSAGE_FORGETIT, CDDA_MESSAGE_FORGETIT); + + nb_tracks = cdda_tracks(cdd); + cdda_close(cdd); + return nb_tracks; +} + static int fill_buffer(stream_t* s, char* buffer, int max_len) { cdda_priv* p = (cdda_priv*)s->priv; cd_track_t *cd_track; diff -Naur MPlayer-1.0pre6.orig/libmpdemux/open.c MPlayer-1.0pre6/libmpdemux/open.c --- MPlayer-1.0pre6.orig/libmpdemux/open.c 2004-12-30 19:45:43.102497416 +0100 +++ MPlayer-1.0pre6/libmpdemux/open.c 2004-12-30 19:45:53.580904456 +0100 @@ -378,7 +378,6 @@ return NULL; } } - --dvd_chapter; // remap 1.. -> 0.. /* XXX No need to remap dvd_last_chapter */ /** * Make sure the angle number is valid for this title. @@ -547,8 +546,8 @@ * chapter number. */ ttn = tt_srpt->title[ dvd_title ].vts_ttn; // local - pgc_id = vts_file->vts_ptt_srpt->title[ttn-1].ptt[dvd_chapter].pgcn; // local - pgn = vts_file->vts_ptt_srpt->title[ttn-1].ptt[dvd_chapter].pgn; // local + pgc_id = vts_file->vts_ptt_srpt->title[ttn-1].ptt[dvd_chapter-1].pgcn; // local + pgn = vts_file->vts_ptt_srpt->title[ttn-1].ptt[dvd_chapter-1].pgn; // local d->cur_pgc = vts_file->vts_pgcit->pgci_srp[pgc_id-1].pgc; d->cur_cell = d->cur_pgc->program_map[pgn-1] - 1; // start playback here d->packs_left=-1; // for Navi stuff diff -Naur MPlayer-1.0pre6.orig/mplayer.c MPlayer-1.0pre6/mplayer.c --- MPlayer-1.0pre6.orig/mplayer.c 2004-12-30 19:44:26.401157792 +0100 +++ MPlayer-1.0pre6/mplayer.c 2004-12-30 19:45:53.582904152 +0100 @@ -2831,6 +2831,110 @@ case MP_CMD_QUIT : { exit_player_with_rc(MSGTR_Exit_quit, (cmd->nargs > 0)? cmd->args[0].v.i : 0); } +#ifdef HAVE_VCD + case MP_CMD_VCD_PLAY : { + char buf[10]; + play_tree_t *vcd, *tracks; + stream_t *s; + int i, m; + + if ((s = open_stream ("vcd://", NULL, &i)) == NULL) + break; + for (m=2; m<100; m++) + if (vcd_seek_to_track (s->priv, m) < 0) + break; + free_stream (s); + + tracks = play_tree_new(); + sprintf(buf, "vcd://%d", i = m > 2 ? 2 : 1); + play_tree_add_file(tracks, buf); + for (i++; inargs==1 && !strcmp(cmd->args[0].v.s, "hide_menu")) + mp_input_queue_cmd(mp_input_parse_cmd("menu hide")); + + while(play_tree_iter_up_step(playtree_iter, 0, 1) != PLAY_TREE_ITER_END); + play_tree_free_list(playtree->child, 1); + play_tree_set_child(playtree, tracks); + play_tree_iter_step(playtree_iter, 0, 0); + eof = PT_NEXT_SRC; + } break; +#endif +#ifdef USE_DVDREAD + case MP_CMD_DVD_PLAY : { + char buf[10]; + play_tree_t *dvd, *tracks; + stream_t *s; + int nb_tracks, i; + + if ((s = open_stream("dvd://", NULL, &i)) == NULL) + break; + + tracks = play_tree_new(); + play_tree_add_file(tracks, "dvd://1"); + + nb_tracks = ((dvd_priv_t *) s->priv)->vmg_file->tt_srpt->nr_of_srpts; + for (i=2; i<=nb_tracks; i++) + { + dvd = play_tree_new(); + sprintf(buf, "dvd://%d", i); + play_tree_add_file(dvd, buf); + play_tree_append_entry(tracks, dvd); + } + i = dvd_title_info(((dvd_priv_t *) s->priv)->dvd, + ((dvd_priv_t *) s->priv)->vmg_file, 0x0001); + free_stream (s); + + if (cmd->nargs==1 && !strcmp(cmd->args[0].v.s, "hide_menu")) + mp_input_queue_cmd(mp_input_parse_cmd("menu hide")); + + while(play_tree_iter_up_step(playtree_iter, 0, 1) != PLAY_TREE_ITER_END); + play_tree_free_list(playtree->child, 1); + play_tree_set_child(playtree, tracks); + play_tree_iter_down_step(playtree_iter, 0, 0); + play_tree_iter_step(playtree_iter, i-1, 0); + eof = PT_NEXT_SRC; + } break; +#endif +#ifdef HAVE_CDDA + case MP_CMD_CDDA_PLAY : { + int get_cdda_tracks_num(char* dev); + char buf[11]; + play_tree_t *cdda, *tracks; + int nb_tracks, i; + + nb_tracks = get_cdda_tracks_num (cdrom_device ? cdrom_device : DEFAULT_CDROM_DEVICE); + if (nb_tracks <= 0) + break; + + tracks = play_tree_new(); + play_tree_add_file(tracks, "cdda://1"); + + for (i=2; i<=nb_tracks; i++) + { + cdda = play_tree_new(); + sprintf(buf, "cdda://%d", i); + play_tree_add_file(cdda, buf); + play_tree_append_entry(tracks, cdda); + } + + if (cmd->nargs==1 && !strcmp(cmd->args[0].v.s, "hide_menu")) + mp_input_queue_cmd(mp_input_parse_cmd("menu hide")); + + while(play_tree_iter_up_step(playtree_iter, 0, 1) != PLAY_TREE_ITER_END); + play_tree_free_list(playtree->child, 1); + play_tree_set_child(playtree, tracks); + play_tree_iter_step(playtree_iter, 0, 0); + eof = PT_NEXT_SRC; + } break; +#endif + case MP_CMD_GRAB_FRAMES : { grab_frames=2; } break; geexbox-0.98.7/packages/MPlayer/patches/54_dvdvcd-trayunlock.diff0000644000175000017500000000216310335100767023651 0ustar aurelaureldiff -Naur MPlayer-1.0pre6.orig/libmpdemux/stream_vcd.c MPlayer-1.0pre6/libmpdemux/stream_vcd.c --- MPlayer-1.0pre6.orig/libmpdemux/stream_vcd.c 2004-12-30 19:38:06.774869760 +0100 +++ MPlayer-1.0pre6/libmpdemux/stream_vcd.c 2004-12-30 19:46:06.124997464 +0100 @@ -93,6 +93,9 @@ m_struct_free(&stream_opts,opts); return STREAM_ERROR; } +#ifdef __linux__ + ioctl(f, CDROM_LOCKDOOR, 0); +#endif vcd = vcd_read_toc(f); if(!vcd) { diff -Naur MPlayer-1.0pre6.orig/libmpdvdkit2/device.c MPlayer-1.0pre6/libmpdvdkit2/device.c --- MPlayer-1.0pre6.orig/libmpdvdkit2/device.c 2004-12-30 19:38:06.777869304 +0100 +++ MPlayer-1.0pre6/libmpdvdkit2/device.c 2004-12-30 19:46:06.124997464 +0100 @@ -43,6 +43,11 @@ # include /* struct iovec */ #endif +#ifdef __linux__ +#include +#include +#endif + #include "dvdcss.h" #include "common.h" @@ -250,6 +255,9 @@ _dvdcss_error( dvdcss, "failed opening device" ); return -1; } +#ifdef __linux__ + ioctl(dvdcss->i_fd, CDROM_LOCKDOOR, 0); +#endif dvdcss->i_pos = 0; geexbox-0.98.7/packages/MPlayer/patches/56_dvd-play-ifo.diff0000644000175000017500000000235110335100767022502 0ustar aurelaureldiff -Naur MPlayer-1.0pre6.orig/libmpdemux/open.c MPlayer-1.0pre6/libmpdemux/open.c --- MPlayer-1.0pre6.orig/libmpdemux/open.c 2004-12-03 15:14:29.000000000 +0100 +++ MPlayer-1.0pre6/libmpdemux/open.c 2005-01-09 22:06:45.000000000 +0100 @@ -6,6 +6,8 @@ #include #include #include +#include +#include #include "config.h" #include "mp_msg.h" @@ -126,6 +128,13 @@ return NULL; } + int i; + char *base, *filepath; + filepath = dirname (strdup (filename)); + base = basename (strdup (filename)); + for (i = 0; i < strlen (base); i++) + base[i] = tolower (base[i]); + // for opening of vcds in bincue files if(strncmp("cue://",filename,6) == 0){ int ret,ret2; @@ -180,7 +189,7 @@ } #endif #ifdef USE_DVDREAD -if(strncmp("dvd://",filename,6) == 0){ +if(strncmp("dvd://",filename,6) == 0 || strstr (base, ".ifo")){ // int ret,ret2; dvd_priv_t *d; int ttn,pgc_id,pgn; @@ -190,6 +199,13 @@ tt_srpt_t *tt_srpt; ifo_handle_t *vts_file; dvd_title = filename[6] == '\0' ? 1 : strtol(filename + 6,NULL,0); + + if (strstr (base, ".ifo")) + { + dvd_device = strdup (filepath); + dvd_title = 1; + } + /** * Open the disc. */ geexbox-0.98.7/packages/MPlayer/patches/57_vcd-cdda-separated-devices.diff0000644000175000017500000000630110335100767025242 0ustar aurelaureldiff -ur MPlayer-1.0pre7.orig/cfg-common.h MPlayer-1.0pre7/cfg-common.h --- MPlayer-1.0pre7.orig/cfg-common.h Tue Jul 26 10:47:42 2005 +++ MPlayer-1.0pre7/cfg-common.h Tue Jul 26 10:49:38 2005 @@ -22,7 +22,8 @@ #endif {"vcd", "-vcd N is deprecated, use vcd://N instead.\n", CONF_TYPE_PRINT, CONF_NOCFG ,0,0, NULL}, {"cuefile", "-cuefile is deprecated, use cue://filename:N where N is the track number.\n", CONF_TYPE_PRINT, 0, 0, 0, NULL}, - {"cdrom-device", &cdrom_device, CONF_TYPE_STRING, 0, 0, 0, NULL}, + {"vcd-device", &vcd_device, CONF_TYPE_STRING, 0, 0, 0, NULL}, + {"cdda-device", &cdda_device, CONF_TYPE_STRING, 0, 0, 0, NULL}, #ifdef USE_DVDNAV {"dvdnav", "-dvdnav is deprecated, use dvdnav:// instead.\n", CONF_TYPE_PRINT, 0, 0, 1, NULL}, {"skipopening", &dvd_nav_skip_opening, CONF_TYPE_FLAG, 0, 0, 1, NULL}, @@ -432,7 +433,7 @@ extern int vivo_param_width; extern int vivo_param_height; extern int vivo_param_vformat; -extern char *dvd_device, *cdrom_device; +extern char *dvd_device, *vcd_device, *cdda_device; m_option_t vivoopts_conf[]={ {"version", &vivo_param_version, CONF_TYPE_INT, 0, 0, 0, NULL}, diff -ur MPlayer-1.0pre7.orig/libmpdemux/cdda.c MPlayer-1.0pre7/libmpdemux/cdda.c --- MPlayer-1.0pre7.orig/libmpdemux/cdda.c Tue Jul 26 10:44:52 2005 +++ MPlayer-1.0pre7/libmpdemux/cdda.c Tue Jul 26 10:50:45 2005 @@ -13,7 +13,7 @@ #include "cdd.h" -extern char *cdrom_device; +extern char *cdda_device; static struct cdda_params { int speed; @@ -105,8 +105,8 @@ } if(!p->device) { - if (cdrom_device) - p->device = strdup(cdrom_device); + if (cdda_device) + p->device = strdup(cdda_device); else p->device = strdup(DEFAULT_CDROM_DEVICE); } diff -ur MPlayer-1.0pre7.orig/libmpdemux/open.c MPlayer-1.0pre7/libmpdemux/open.c --- MPlayer-1.0pre7.orig/libmpdemux/open.c Tue Jul 26 10:44:52 2005 +++ MPlayer-1.0pre7/libmpdemux/open.c Tue Jul 26 10:50:14 2005 @@ -42,7 +42,8 @@ int dvd_chapter_pos[99]; int dvd_angle=1; char* dvd_device=NULL; -char* cdrom_device=NULL; +char* vcd_device=NULL; +char* cdda_device=NULL; #ifdef USE_DVDNAV #include "dvdnav_stream.h" diff -ur MPlayer-1.0pre7.orig/libmpdemux/stream_vcd.c MPlayer-1.0pre7/libmpdemux/stream_vcd.c --- MPlayer-1.0pre7.orig/libmpdemux/stream_vcd.c Tue Jul 26 10:44:52 2005 +++ MPlayer-1.0pre7/libmpdemux/stream_vcd.c Tue Jul 26 10:50:31 2005 @@ -25,7 +25,7 @@ #include "vcd_read.h" #endif -extern char *cdrom_device; +extern char *vcd_device; static struct stream_priv_s { int track; @@ -80,8 +80,8 @@ } if (!p->device) { - if(cdrom_device) - p->device = strdup(cdrom_device); + if(vcd_device) + p->device = strdup(vcd_device); else p->device = strdup(DEFAULT_CDROM_DEVICE); } diff -ur MPlayer-1.0pre7.orig/mplayer.c MPlayer-1.0pre7/mplayer.c --- MPlayer-1.0pre7.orig/mplayer.c Tue Jul 26 10:44:52 2005 +++ MPlayer-1.0pre7/mplayer.c Tue Jul 26 10:48:11 2005 @@ -2959,7 +2959,7 @@ play_tree_t *cdda, *tracks; int nb_tracks, i; - nb_tracks = get_cdda_tracks_num (cdrom_device ? cdrom_device : DEFAULT_CDROM_DEVICE); + nb_tracks = get_cdda_tracks_num (cdda_device ? cdda_device : DEFAULT_CDROM_DEVICE); if (nb_tracks <= 0) break; geexbox-0.98.7/packages/MPlayer/patches/60_subtitles.diff0000644000175000017500000002504410335100767022224 0ustar aurelaureldiff -Naur MPlayer-1.0pre7.orig/cfg-common.h MPlayer-1.0pre7/cfg-common.h --- MPlayer-1.0pre7.orig/cfg-common.h 2005-04-02 20:43:18.000000000 +0200 +++ MPlayer-1.0pre7/cfg-common.h 2005-04-17 13:20:16.000000000 +0200 @@ -264,6 +264,7 @@ #endif #ifdef USE_OSD {"font", &font_name, CONF_TYPE_STRING, 0, 0, 0, NULL}, + {"subfont", &sub_font_name, CONF_TYPE_STRING, 0, 0, 0, NULL}, {"ffactor", &font_factor, CONF_TYPE_FLOAT, CONF_RANGE, 0.0, 10.0, NULL}, {"subpos", &sub_pos, CONF_TYPE_INT, CONF_RANGE, 0, 100, NULL}, {"subalign", &sub_alignment, CONF_TYPE_INT, CONF_RANGE, 0, 2, NULL}, diff -Naur MPlayer-1.0pre7.orig/libmenu/vf_menu.c MPlayer-1.0pre7/libmenu/vf_menu.c --- MPlayer-1.0pre7.orig/libmenu/vf_menu.c 2004-10-02 14:17:28.000000000 +0200 +++ MPlayer-1.0pre7/libmenu/vf_menu.c 2005-04-17 13:20:16.000000000 +0200 @@ -9,6 +9,7 @@ #include #endif +#include "../mplayer.h" #include "../mp_msg.h" #include "../libmpcodecs/img_format.h" @@ -248,7 +249,7 @@ // here is the right place to get screen dimensions if (force_load_font) { force_load_font = 0; - load_font_ft(width,height); + load_font_ft(width,height,&vo_font,font_name); } #endif return vf_next_config(vf,width,height,d_width,d_height,flags,outfmt); diff -Naur MPlayer-1.0pre7.orig/libvo/font_load_ft.c MPlayer-1.0pre7/libvo/font_load_ft.c --- MPlayer-1.0pre7.orig/libvo/font_load_ft.c 2004-10-28 03:15:52.000000000 +0200 +++ MPlayer-1.0pre7/libvo/font_load_ft.c 2005-04-17 13:20:16.000000000 +0200 @@ -938,7 +938,7 @@ { FT_Vector kern; - if (!vo_font->dynamic) return 0; + if (!desc->dynamic) return 0; if (prevc < 0 || c < 0) return 0; if (desc->font[prevc] != desc->font[c]) return 0; if (desc->font[prevc] == -1 || desc->font[c] == -1) return 0; @@ -1120,13 +1120,14 @@ return 0; } -void load_font_ft(int width, int height) +void load_font_ft(int width, int height, font_desc_t** fontp, const char *font_name) { #ifdef HAVE_FONTCONFIG FcPattern *fc_pattern; FcChar8 *s; FcBool scalable; #endif + font_desc_t *vo_font = *fontp; vo_image_width = width; vo_image_height = height; @@ -1155,12 +1156,12 @@ } // s doesn't need to be freed according to fontconfig docs FcPatternGetString(fc_pattern, FC_FILE, 0, &s); - vo_font=read_font_desc_ft(s, width, height); + *fontp=read_font_desc_ft(s, width, height); free(fc_pattern); } else #endif - vo_font=read_font_desc_ft(font_name, width, height); + *fontp=read_font_desc_ft(font_name, width, height); #endif } diff -Naur MPlayer-1.0pre7.orig/libvo/font_load.h MPlayer-1.0pre7/libvo/font_load.h --- MPlayer-1.0pre7.orig/libvo/font_load.h 2003-11-20 17:25:40.000000000 +0100 +++ MPlayer-1.0pre7/libvo/font_load.h 2005-04-17 13:20:16.000000000 +0200 @@ -62,6 +62,7 @@ } font_desc_t; extern font_desc_t* vo_font; +extern font_desc_t* sub_font; #ifdef HAVE_FREETYPE @@ -86,7 +87,7 @@ void render_one_glyph(font_desc_t *desc, int c); int kerning(font_desc_t *desc, int prevc, int c); -void load_font_ft(int width, int height); +void load_font_ft(int width, int height, font_desc_t **desc, const char *name); #else diff -Naur MPlayer-1.0pre7.orig/libvo/sub.c MPlayer-1.0pre7/libvo/sub.c --- MPlayer-1.0pre7.orig/libvo/sub.c 2005-04-10 13:54:31.000000000 +0200 +++ MPlayer-1.0pre7/libvo/sub.c 2005-04-17 13:24:36.000000000 +0200 @@ -8,6 +8,7 @@ #include #endif +#include "mplayer.h" #include "mp_msg.h" #include "video_out.h" #include "font_load.h" @@ -55,6 +56,7 @@ //static int vo_font_loaded=-1; font_desc_t* vo_font=NULL; +font_desc_t* sub_font=NULL; unsigned char* vo_osd_text=NULL; int sub_unicode=0; @@ -342,7 +344,7 @@ obj->flags|=OSDFLAG_CHANGED|OSDFLAG_VISIBLE; - if(!vo_sub || !vo_font || !sub_visibility || (vo_font->font[40]<0)){ + if(!vo_sub || !sub_font || !sub_visibility || (sub_font->font[40]<0)){ obj->flags&=~OSDFLAG_VISIBLE; return; } @@ -352,7 +354,7 @@ // too long lines divide into a smaller ones i=k=lasth=0; - h=vo_font->height; + h=sub_font->height; lastStripPosition=-1; l=vo_sub->lines; @@ -363,7 +365,7 @@ int *char_seq, char_position, xlimit = dxs * sub_width_p / 100, counter; while (l) { - xsize = -vo_font->charspace; + xsize = -sub_font->charspace; l--; t=vo_sub->text[i++]; len=strlen(t)-1; @@ -394,7 +396,7 @@ mp_msg(MSGT_OSD,MSGL_WARN,"\nMAX_UCS exceeded!\n"); } if (!c) c++; // avoid UCS 0 - render_one_glyph(vo_font, c); + render_one_glyph(sub_font, c); if (c == ' ') { struct osd_text_t *tmp_ott = (struct osd_text_t *) calloc(1, sizeof(struct osd_text_t)); @@ -405,7 +407,7 @@ tmp_ott->prev = cp_ott; cp_ott->next = tmp_ott; tmp_ott->osd_kerning = - vo_font->charspace + vo_font->width[' ']; + sub_font->charspace + sub_font->width[' ']; cp_ott = tmp_ott; } tmp_ott->osd_length = xsize; @@ -417,16 +419,16 @@ xsize = 0; prevc = c; } else { - int delta_xsize = vo_font->width[c] + vo_font->charspace + kerning(vo_font, prevc, c); + int delta_xsize = sub_font->width[c] + sub_font->charspace + kerning(sub_font, prevc, c); if (xsize + delta_xsize <= dxs) { if (!x) x = 1; prevc = c; char_seq[char_position++] = c; xsize += delta_xsize; - if ((!suboverlap_enabled) && ((font = vo_font->font[c]) >= 0)) { - if (vo_font->pic_a[font]->h > h) { - h = vo_font->pic_a[font]->h; + if ((!suboverlap_enabled) && ((font = sub_font->font[c]) >= 0)) { + if (sub_font->pic_a[font]->h > h) { + h = sub_font->pic_a[font]->h; } } } else { @@ -448,7 +450,7 @@ tmp_ott->prev = cp_ott; cp_ott->next = tmp_ott; tmp_ott->osd_kerning = - vo_font->charspace + vo_font->width[' ']; + sub_font->charspace + sub_font->width[' ']; cp_ott = tmp_ott; } tmp_ott->osd_length = xsize; @@ -457,7 +459,7 @@ for (counter = 0; counter < char_position; ++counter) tmp_ott->text[counter] = char_seq[counter]; char_position = 0; - xsize = -vo_font->charspace; + xsize = -sub_font->charspace; } if (osl != NULL) { @@ -479,7 +481,7 @@ tmp->prev = tmp_otp; tmp_otp = tmp; tmp_otp->ott = tmp_ott; - value = -2 * vo_font->charspace - vo_font->width[' ']; + value = -2 * sub_font->charspace - sub_font->width[' ']; } else { tmp_otp->value = value; exit = 1; @@ -580,7 +582,7 @@ break; if (h > obj->y) { // out of the screen so end parsing - obj->y -= lasth - vo_font->height; // correct the y position + obj->y -= lasth - sub_font->height; // correct the y position break; } xsize = tmp_otp->value; @@ -597,17 +599,17 @@ break; } c = tmp_ott->text[counter]; - render_one_glyph(vo_font, c); + render_one_glyph(sub_font, c); obj->params.subtitle.utbl[utblc++] = c; k++; } obj->params.subtitle.utbl[utblc++] = ' '; } obj->params.subtitle.utbl[utblc - 1] = 0; - obj->y -= vo_font->height; + obj->y -= sub_font->height; } if(obj->params.subtitle.lines) - obj->y = dys - ((obj->params.subtitle.lines - 1) * vo_font->height + vo_font->pic_a[vo_font->font[40]]->h); + obj->y = dys - ((obj->params.subtitle.lines - 1) * sub_font->height + sub_font->pic_a[sub_font->font[40]]->h); // free memory if (otp_sub != NULL) { @@ -646,7 +648,7 @@ obj->bbox.x1=xmin; obj->bbox.x2=xmax; obj->bbox.y1=obj->y; -// obj->bbox.y2=obj->y+obj->params.subtitle.lines*vo_font->height; +// obj->bbox.y2=obj->y+obj->params.subtitle.lines*sub_font->height; obj->flags|=OSDFLAG_BBOX; alloc_buf(obj); @@ -692,18 +694,18 @@ } prevc = -1; while ((c=obj->params.subtitle.utbl[j++])){ - x += kerning(vo_font,prevc,c); - if ((font=vo_font->font[c])>=0) + x += kerning(sub_font,prevc,c); + if ((font=sub_font->font[c])>=0) draw_alpha_buf(obj,x,y, - vo_font->width[c], - vo_font->pic_a[font]->h+ydys ? vo_font->pic_a[font]->h : obj->dys-y, - vo_font->pic_b[font]->bmp+vo_font->start[c], - vo_font->pic_a[font]->bmp+vo_font->start[c], - vo_font->pic_a[font]->w); - x+=vo_font->width[c]+vo_font->charspace; + sub_font->width[c], + sub_font->pic_a[font]->h+ydys ? sub_font->pic_a[font]->h : obj->dys-y, + sub_font->pic_b[font]->bmp+sub_font->start[c], + sub_font->pic_a[font]->bmp+sub_font->start[c], + sub_font->pic_a[font]->w); + x+=sub_font->width[c]+sub_font->charspace; prevc = c; } - y+=vo_font->height; + y+=sub_font->height; } } @@ -786,12 +788,18 @@ if (defer_counter >= FONT_LOAD_DEFER) force_load_font = 1; } - if (!vo_font || force_load_font) { + if (force_load_font) { force_load_font = 0; - load_font_ft(dxs, dys); + load_font_ft(dxs, dys, &vo_font, font_name); + load_font_ft(dxs, dys, &sub_font, sub_font_name); prev_dxs = dxs; prev_dys = dys; defer_counter = 0; + } else { + if (!vo_font) + load_font_ft(dxs, dys, &vo_font, font_name); + if (!sub_font) + load_font_ft(dxs, dys, &sub_font, sub_font_name); } #endif diff -Naur MPlayer-1.0pre7.orig/mencoder.c MPlayer-1.0pre7/mencoder.c --- MPlayer-1.0pre7.orig/mencoder.c 2005-04-06 09:58:30.000000000 +0200 +++ MPlayer-1.0pre7/mencoder.c 2005-04-17 13:20:16.000000000 +0200 @@ -193,6 +193,7 @@ // sub: char *font_name=NULL; +char *sub_font_name=NULL; #ifdef HAVE_FONTCONFIG extern int font_fontconfig; #endif diff -Naur MPlayer-1.0pre7.orig/mplayer.c MPlayer-1.0pre7/mplayer.c --- MPlayer-1.0pre7.orig/mplayer.c 2005-04-15 14:14:24.000000000 +0200 +++ MPlayer-1.0pre7/mplayer.c 2005-04-17 13:20:16.000000000 +0200 @@ -301,6 +301,7 @@ // sub: char *font_name=NULL; +char *sub_font_name=NULL; #ifdef HAVE_FONTCONFIG extern int font_fontconfig; #endif @@ -1313,6 +1314,10 @@ if(!vo_font) vo_font=read_font_desc(MPLAYER_DATADIR "/font/font.desc",font_factor,verbose>1); } + if (sub_font_name) + sub_font = read_font_desc(sub_font_name, font_factor, verbose>1); + else + sub_font = vo_font; #ifdef HAVE_FONTCONFIG } #endif diff -Naur MPlayer-1.0pre7.orig/mplayer.h MPlayer-1.0pre7/mplayer.h --- MPlayer-1.0pre7.orig/mplayer.h 2003-04-07 18:03:37.000000000 +0200 +++ MPlayer-1.0pre7/mplayer.h 2005-04-17 13:20:16.000000000 +0200 @@ -23,6 +23,7 @@ extern int osd_visible; extern char * font_name; +extern char * sub_font_name; extern float font_factor; extern float movie_aspect; extern float force_fps; geexbox-0.98.7/packages/MPlayer/patches/61_fribidi-0.10.5-define.diff0000644000175000017500000000121710335100767023562 0ustar aurelaurel* commited upstream on 20050622 diff -Naur MPlayer-1.0pre7.orig/configure MPlayer-1.0pre7/configure --- MPlayer-1.0pre7.orig/configure Tue Jun 21 00:16:14 2005 +++ MPlayer-1.0pre7/configure Tue Jun 21 00:19:52 2005 @@ -5012,9 +5012,11 @@ cat > $TMPC << EOF #include +/* workaround for fribidi 0.10.4 and below */ +#define FRIBIDI_CHARSET_UTF8 FRIBIDI_CHAR_SET_UTF8 #include int main() { - if(fribidi_parse_charset("UTF-8") != FRIBIDI_CHARSET_UTF8) { + if(fribidi_parse_charset("UTF-8") != FRIBIDI_CHAR_SET_UTF8) { printf("Fribidi headers are not consistents with the library!\n"); exit(1); } geexbox-0.98.7/packages/MPlayer/patches/62_fribidi.diff0000644000175000017500000000072110335100767021613 0ustar aurelaureldiff -Naur MPlayer-1.0pre6.orig/configure MPlayer-1.0pre6/configure --- MPlayer-1.0pre6.orig/configure 2004-12-30 19:42:53.548273576 +0100 +++ MPlayer-1.0pre6/configure 2004-12-30 19:46:30.719258568 +0100 @@ -4945,7 +4945,7 @@ } EOF _fribidi=no - cc_check `$_fribidiconfig --cflags` `$_fribidiconfig --libs` && ( $TMPO >> "$TMPLOG" ) && _fribidi=yes + cc_check `$_fribidiconfig --cflags` `$_fribidiconfig --libs` && _fribidi=yes else _fribidi=no fi geexbox-0.98.7/packages/MPlayer/patches/63_iconv-dl.diff0000644000175000017500000000064310335100767021722 0ustar aurelaureldiff -Naur MPlayer-1.0pre6.orig/configure MPlayer-1.0pre6/configure --- MPlayer-1.0pre6.orig/configure Fri Mar 4 11:44:31 2005 +++ MPlayer-1.0pre6/configure Fri Mar 4 11:44:33 2005 @@ -2223,6 +2223,9 @@ elif cc_check $_ld_lm -liconv ; then _iconv=yes _ld_iconv='-liconv' + elif cc_check $_ld_lm -liconv -ldl ; then + _iconv=yes + _ld_iconv='-liconv -ldl' fi fi if test "$_iconv" = yes ; then geexbox-0.98.7/packages/MPlayer/patches/69_loadfile-loadlist-menu-hide-parm.diff0000644000175000017500000000360410335100767026413 0ustar aurelaureldiff -Nur MPlayer-1.0pre7.orig/input/input.c MPlayer-1.0pre7/input/input.c --- MPlayer-1.0pre7.orig/input/input.c Fri Apr 15 17:52:33 2005 +++ MPlayer-1.0pre7/input/input.c Sat Nov 5 13:20:25 2005 @@ -107,8 +107,8 @@ { MP_CMD_SCREENSHOT, "screenshot", 0, { {-1,{0}} } }, { MP_CMD_PANSCAN, "panscan",1, { {MP_CMD_ARG_FLOAT,{0}}, {MP_CMD_ARG_INT,{0}}, {-1,{0}} } }, { MP_CMD_SWITCH_VSYNC, "switch_vsync", 0, { {MP_CMD_ARG_INT,{0}}, {-1,{0}} } }, - { MP_CMD_LOADFILE, "loadfile", 1, { {MP_CMD_ARG_STRING, {0}}, {-1,{0}} } }, - { MP_CMD_LOADLIST, "loadlist", 1, { {MP_CMD_ARG_STRING, {0}}, {-1,{0}} } }, + { MP_CMD_LOADFILE, "loadfile", 1, { {MP_CMD_ARG_STRING, {0}}, {MP_CMD_ARG_STRING, {0}}, {-1,{0}} } }, + { MP_CMD_LOADLIST, "loadlist", 1, { {MP_CMD_ARG_STRING, {0}}, {MP_CMD_ARG_STRING, {0}}, {-1,{0}} } }, { MP_CMD_RUN, "run", 1, { {MP_CMD_ARG_STRING,{0}}, {-1,{0}} } }, { MP_CMD_VF_CHANGE_RECTANGLE, "change_rectangle", 2, { {MP_CMD_ARG_INT,{0}}, {MP_CMD_ARG_INT,{0}}, {-1,{0}}}}, diff -Nur MPlayer-1.0pre7.orig/mplayer.c MPlayer-1.0pre7/mplayer.c --- MPlayer-1.0pre7.orig/mplayer.c Fri Apr 15 15:14:24 2005 +++ MPlayer-1.0pre7/mplayer.c Sat Nov 5 13:25:43 2005 @@ -2950,6 +2950,8 @@ play_tree_t* e = play_tree_new(); play_tree_add_file(e,cmd->args[0].v.s); + if (cmd->nargs==2 && !strcmp(cmd->args[1].v.s, "hide_menu")) + mp_input_queue_cmd(mp_input_parse_cmd("menu hide")); // Go back to the start point while(play_tree_iter_up_step(playtree_iter,0,1) != PLAY_TREE_ITER_END) /* NOP */; @@ -2964,6 +2966,8 @@ if(!e) mp_msg(MSGT_CPLAYER,MSGL_ERR,MSGTR_PlaylistLoadUnable,cmd->args[0].v.s); else { + if (cmd->nargs==2 && !strcmp(cmd->args[1].v.s, "hide_menu")) + mp_input_queue_cmd(mp_input_parse_cmd("menu hide")); // Go back to the start point while(play_tree_iter_up_step(playtree_iter,0,1) != PLAY_TREE_ITER_END) /* NOP */; geexbox-0.98.7/packages/MPlayer/patches/70_mpegpes.diff0000644000175000017500000000640010335100767021642 0ustar aurelaureldiff -Naur MPlayer-1.0pre6.orig/libmenu/vf_menu.c MPlayer-1.0pre6/libmenu/vf_menu.c --- MPlayer-1.0pre6.orig/libmenu/vf_menu.c 2004-12-30 19:44:02.407805336 +0100 +++ MPlayer-1.0pre6/libmenu/vf_menu.c 2004-12-30 19:48:03.430164368 +0100 @@ -36,6 +36,7 @@ struct vf_priv_s { menu_t* root; menu_t* current; + int passthrough; }; static int put_image(struct vf_instance_s* vf, mp_image_t *mpi); @@ -173,6 +174,13 @@ static int put_image(struct vf_instance_s* vf, mp_image_t *mpi){ mp_image_t *dmpi = NULL; + if (vf->priv->passthrough) { + dmpi=vf_get_image(vf->next, IMGFMT_MPEGPES, MP_IMGTYPE_EXPORT, + 0, mpi->w, mpi->h); + dmpi->planes[0]=mpi->planes[0]; + return vf_next_put_image(vf,dmpi); + } + if(vf->priv->current->show || (vf->priv->current->parent && vf->priv->current->parent->show)) { // Close all menu who requested it @@ -264,8 +272,15 @@ load_font_ft(width,height); } #endif + if(outfmt == IMGFMT_MPEGPES) + vf->priv->passthrough = 1; return vf_next_config(vf,width,height,d_width,d_height,flags,outfmt); } + +static int query_format(struct vf_instance_s* vf, unsigned int fmt){ + return (vf_next_query_format(vf,fmt)); +} + static int open(vf_instance_t *vf, char* args){ if(!st_priv) { st_priv = calloc(1,sizeof(struct vf_priv_s)); @@ -280,6 +295,7 @@ } vf->config = config; + vf->query_format=query_format; vf->put_image = put_image; vf->get_image = get_image; vf->uninit=uninit; diff -Naur MPlayer-1.0pre6.orig/libmpcodecs/vf_expand.c MPlayer-1.0pre6/libmpcodecs/vf_expand.c --- MPlayer-1.0pre6.orig/libmpcodecs/vf_expand.c 2004-12-30 19:38:06.762871584 +0100 +++ MPlayer-1.0pre6/libmpcodecs/vf_expand.c 2004-12-30 19:47:14.297633648 +0100 @@ -28,11 +28,13 @@ int exp_x,exp_y; int osd; unsigned char* fb_ptr; + int passthrough; } vf_priv_dflt = { -1,-1, -1,-1, 0, - NULL + NULL, + 0 }; extern int opt_screen_size_x; @@ -160,6 +162,10 @@ static int config(struct vf_instance_s* vf, int width, int height, int d_width, int d_height, unsigned int flags, unsigned int outfmt){ + if(outfmt == IMGFMT_MPEGPES) { + vf->priv->passthrough = 1; + return vf_next_config(vf,width,height,d_width,d_height,flags,outfmt); + } if (outfmt == IMGFMT_IF09) return 0; // calculate the missing parameters: #if 0 @@ -268,6 +274,13 @@ } static int put_image(struct vf_instance_s* vf, mp_image_t *mpi){ + if (vf->priv->passthrough) { + mp_image_t *dmpi = vf_get_image(vf->next, IMGFMT_MPEGPES, + MP_IMGTYPE_EXPORT, 0, mpi->w, mpi->h); + dmpi->planes[0]=mpi->planes[0]; + return vf_next_put_image(vf,dmpi); + } + if(mpi->flags&MP_IMGFLAG_DIRECT || mpi->flags&MP_IMGFLAG_DRAW_CALLBACK){ vf->dmpi=mpi->priv; if(!vf->dmpi) { printf("Why do we get NULL \n"); return 0; } @@ -325,9 +338,14 @@ return vf_next_control(vf,request,data); } +static int query_format(struct vf_instance_s* vf, unsigned int fmt){ + return (vf_next_query_format(vf,fmt)); +} + static int open(vf_instance_t *vf, char* args){ vf->config=config; vf->control=control; + vf->query_format=query_format; vf->start_slice=start_slice; vf->draw_slice=draw_slice; vf->get_image=get_image; geexbox-0.98.7/packages/MPlayer/patches/72_vesa-mpegpes.diff0000644000175000017500000000074210335100767022603 0ustar aurelaureldiff -Naur MPlayer-1.0pre6.orig/libvo/vo_vesa.c MPlayer-1.0pre6/libvo/vo_vesa.c --- MPlayer-1.0pre6.orig/libvo/vo_vesa.c 2004-12-30 19:38:06.786867936 +0100 +++ MPlayer-1.0pre6/libvo/vo_vesa.c 2004-12-30 19:50:15.167137304 +0100 @@ -468,6 +468,8 @@ #ifdef CONFIG_VIDIX if(vidix_name)return(vidix_query_fourcc(format)); #endif + if (format == IMGFMT_MPEGPES) + return 0; return 1 | VFCAP_OSD | VFCAP_SWSCALE | VFCAP_ACCEPT_STRIDE; /* due new SwScale code */ } geexbox-0.98.7/packages/MPlayer/patches/74_vesa-no-cursor.diff0000644000175000017500000000441510335100767023075 0ustar aurelaurel* commited upstream on 20050716 diff -Naur MPlayer-1.0pre7.orig/osdep/vbelib.c MPlayer-1.0pre7/osdep/vbelib.c --- MPlayer-1.0pre7.orig/osdep/vbelib.c 2005-07-15 21:36:05.000000000 +0200 +++ MPlayer-1.0pre7/osdep/vbelib.c 2005-07-16 16:47:34.000000000 +0200 @@ -24,6 +24,8 @@ #include #include #include +#include +#include static struct VesaProtModeInterface vbe_pm_info; static struct VesaModeInfoBlock curr_mode_info; @@ -94,25 +96,28 @@ #define VBE_LRMI_int(int_no,regs) (VBE_LRMI_int(int_no,regs)) #endif -static FILE *my_stdin; -static FILE *my_stdout; -static FILE *my_stderr; - -static void __set_cursor_type(FILE *stdout_fd,int cursor_on) -{ - fprintf(stdout_fd,"\033[?25%c",cursor_on?'h':'l'); -} - -/* TODO: do it only on LCD or DFP. We should extract such info from DDC */ -static void hide_terminal_output( void ) -{ - my_stdin = fopen(ttyname(fileno(stdin )),"r"); - my_stdout = fopen(ttyname(fileno(stdout)),"w"); - my_stderr = fopen(ttyname(fileno(stderr)),"w"); - __set_cursor_type(stdout,0); -/*if(isatty(fileno(stdin ))) stdin =freopen("/dev/null","r",stdin );*/ - if(isatty(fileno(stdout))) freopen("/dev/null","w",stdout); - if(isatty(fileno(stderr))) freopen("/dev/null","w",stderr); +/** + * Set console to graphics or text mode. + * This is a clean way to enable/disable console text output + * and cursor blinking. + * + * @param mode The new wanted mode. Can be either KD_GRAPHICS to switch + * to graphics mode or anything else to switch back to the + * original mode. + */ +static void kd_set_mode(int mode) +{ + static int old_mode = KD_TEXT; + int fd; + + if ((fd = open("/dev/tty0", O_RDWR)) < 0) + return; + if(mode == KD_GRAPHICS) + old_mode = ioctl(fd, KDGETMODE); + else + mode = old_mode; + ioctl(fd, KDSETMODE, mode); + close(fd); } static unsigned hh_int_10_seg; @@ -147,13 +152,13 @@ && vbe_pm_info.iopl_ports[i++] > 1023) ioperm(iopl_port,1,1); iopl(3); fd_mem = open("/dev/mem",O_RDWR); - hide_terminal_output(); + kd_set_mode(KD_GRAPHICS); return VBE_OK; } int vbeDestroy( void ) { - if (my_stdout) __set_cursor_type(my_stdout,1); + kd_set_mode(KD_TEXT); close(fd_mem); LRMI_free_real(controller_info); return VBE_OK; geexbox-0.98.7/packages/MPlayer/patches/76_dvb-channel-cycle.diff0000664000175000017500000000114510335100767023471 0ustar aurelaurel--- MPlayer-1.0pre7.orig/libmpdemux/dvbin.c 2005-04-16 20:51:09.000000000 +0800 +++ MPlayer-1.0pre7/libmpdemux/dvbin.c 2005-11-04 20:50:31.000000000 +0800 @@ -581,16 +581,16 @@ if(dir == DVB_CHANNEL_HIGHER) { if(list->current == list->NUM_CHANNELS-1) - return 0; - - new_current = list->current + 1; + new_current=0; + else + new_current = list->current + 1; } else { if(list->current == 0) - return 0; - - new_current = list->current - 1; + new_current=list->NUM_CHANNELS-1; + else + new_current = list->current - 1; } return dvb_set_channel(priv, priv->card, new_current); geexbox-0.98.7/packages/MPlayer/patches/77_rage128-detection.diff0000644000175000017500000000133110335100767023334 0ustar aurelaurel* fix detection of rage128/radeon on ppc (which seems to keep them disabled) diff -Naur MPlayer-1.0pre6.orig/vidix/drivers/radeon_vid.c MPlayer-1.0pre6/vidix/drivers/radeon_vid.c --- MPlayer-1.0pre6.orig/vidix/drivers/radeon_vid.c 2005-03-10 15:36:45.000000000 +0100 +++ MPlayer-1.0pre6/vidix/drivers/radeon_vid.c 2005-03-15 02:15:38.000000000 +0100 @@ -1002,12 +1002,14 @@ dname = pci_device_name(VENDOR_ATI,lst[i].device); dname = dname ? dname : "Unknown chip"; printf(RADEON_MSG" Found chip: %s\n",dname); +#if 0 if ((lst[i].command & PCI_COMMAND_IO) == 0) { printf("[radeon] Device is disabled, ignoring\n"); continue; } +#endif #ifndef RAGE128 if(idx != -1) #ifdef HAVE_X11 probe_fireGL_driver(); geexbox-0.98.7/packages/MPlayer/patches/78_tv-channel-cycle.diff0000664000175000017500000000302210335100767023345 0ustar aurelaureldiff -Naur MPlayer-1.0pre7/libmpdemux/tv.c MPlayerMod/libmpdemux/tv.c --- MPlayer-1.0pre7/libmpdemux/tv.c 2005-01-29 20:24:43.000000000 +0800 +++ MPlayerMod/libmpdemux/tv.c 2005-09-06 23:05:33.000000000 +0800 @@ -736,22 +736,25 @@ int tv_step_channel(tvi_handle_t *tvh, int direction) { if (tv_channel_list) { if (direction == TV_CHANNEL_HIGHER) { - if (tv_channel_current->next) { - tv_channel_last = tv_channel_current; + tv_channel_last = tv_channel_current; + if (tv_channel_current->next) tv_channel_current = tv_channel_current->next; + else + tv_channel_current = tv_channel_list; tv_set_freq(tvh, (unsigned long)(((float)tv_channel_current->freq/1000)*16)); mp_msg(MSGT_TV, MSGL_INFO, "Selected channel: %s - %s (freq: %.3f)\n", tv_channel_current->number, tv_channel_current->name, (float)tv_channel_current->freq/1000); - } } if (direction == TV_CHANNEL_LOWER) { - if (tv_channel_current->prev) { - tv_channel_last = tv_channel_current; + tv_channel_last = tv_channel_current; + if (tv_channel_current->prev) tv_channel_current = tv_channel_current->prev; + else + while (tv_channel_current->next) + tv_channel_current = tv_channel_current->next; tv_set_freq(tvh, (unsigned long)(((float)tv_channel_current->freq/1000)*16)); mp_msg(MSGT_TV, MSGL_INFO, "Selected channel: %s - %s (freq: %.3f)\n", tv_channel_current->number, tv_channel_current->name, (float)tv_channel_current->freq/1000); - } } } else tv_step_channel_real(tvh, direction); return(1); geexbox-0.98.7/packages/MPlayer/patches/79_menu-dvb-autoclose.diff0000644000175000017500000000172610335100767023732 0ustar aurelaureldiff -Naur MPlayer-1.0pre7.orig/libmenu/menu_dvbin.c MPlayer-1.0pre7/libmenu/menu_dvbin.c --- MPlayer-1.0pre7.orig/libmenu/menu_dvbin.c 2004-04-26 23:20:37.000000000 +0200 +++ MPlayer-1.0pre7/libmenu/menu_dvbin.c 2005-09-04 16:31:10.000000000 +0200 @@ -39,6 +39,7 @@ char* file; int card; int level; + int auto_close; dvb_config_t *config; }; @@ -49,6 +50,7 @@ static m_option_t cfg_fields[] = { MENU_LIST_PRIV_FIELDS, { "title", ST_OFF(title), CONF_TYPE_STRING, 0, 0, 0, NULL }, + { "auto-close", ST_OFF(auto_close), CONF_TYPE_FLAG, 0, 0, 1, NULL }, { NULL, NULL, NULL, 0,0,0,NULL }, }; @@ -59,6 +61,7 @@ "channels.conf", 0, 0, + 1, NULL, }; @@ -210,7 +213,11 @@ c = mp_input_parse_cmd(cmd_name); if(c) - mp_input_queue_cmd(c); + { + if (mpriv->auto_close) + mp_input_queue_cmd (mp_input_parse_cmd ("menu hide")); + mp_input_queue_cmd(c); + } } } break; geexbox-0.98.7/packages/MPlayer/patches/80_menu-audio-sub-chap.diff0000644000175000017500000005641310335100767023757 0ustar aurelaureldiff -Naur MPlayer-1.0pre7.orig/libmenu/Makefile MPlayer-1.0pre7/libmenu/Makefile --- MPlayer-1.0pre7.orig/libmenu/Makefile 2004-06-24 14:52:15.000000000 +0200 +++ MPlayer-1.0pre7/libmenu/Makefile 2005-04-17 13:27:52.000000000 +0200 @@ -3,7 +3,7 @@ LIBNAME = libmenu.a -SRCS= menu.c vf_menu.c menu_cmdlist.c menu_pt.c menu_list.c menu_filesel.c menu_txt.c menu_console.c menu_param.c +SRCS= menu.c vf_menu.c menu_cmdlist.c menu_pt.c menu_list.c menu_filesel.c menu_audiosel.c menu_subsel.c menu_chapsel.c menu_txt.c menu_console.c menu_param.c ifeq ($(DVBIN),yes) SRCS += menu_dvbin.c EXTRA_INC += $(DVB_INC) diff -Naur MPlayer-1.0pre7.orig/libmenu/menu_audiosel.c MPlayer-1.0pre7/libmenu/menu_audiosel.c --- MPlayer-1.0pre7.orig/libmenu/menu_audiosel.c 1970-01-01 01:00:00.000000000 +0100 +++ MPlayer-1.0pre7/libmenu/menu_audiosel.c 2005-04-17 13:27:52.000000000 +0200 @@ -0,0 +1,132 @@ + +#include +#include +#include + +#include "../config.h" + +#include "../m_struct.h" +#include "../m_option.h" +#include "../input/input.h" + +#include "../libmpdemux/stream.h" +#include "../libmpdemux/demuxer.h" + +#include "img_format.h" +#include "mp_image.h" + +#include "menu.h" +#include "menu_list.h" + + +struct list_entry_s { + struct list_entry p; + int aid; +}; + +struct menu_priv_s { + menu_list_priv_t p; + char* title; + int auto_close; +}; + +static struct menu_priv_s cfg_dflt = { + MENU_LIST_PRIV_DFLT, + "Select audio channel", + 0 +}; + +#define ST_OFF(m) M_ST_OFF(struct menu_priv_s,m) + +static m_option_t cfg_fields[] = { + MENU_LIST_PRIV_FIELDS, + { "title", ST_OFF(title), CONF_TYPE_STRING, 0, 0, 0, NULL }, + { "auto-close", ST_OFF(auto_close), CONF_TYPE_FLAG, 0, 0, 1, NULL }, + { NULL, NULL, NULL, 0,0,0,NULL } +}; + + +extern stream_t* stream; +extern demuxer_t *demuxer; +extern void resync_audio_stream(void *sh_audio); +extern char *dvd_lang_from_aid(stream_t *stream, int aid); + +static int fill_menu(menu_t* menu) { + char *str, aid_str[32]; + list_entry_t* e; + int aid; + + if (!demuxer || !demuxer->audio){ + menu_list_read_cmd(menu,MENU_CMD_CANCEL); + return 1; + } + + menu_list_init(menu); + + for (aid=0; aida_streams[aid]){ + if (stream->type == STREAMTYPE_DVD){ + if (!(str = dvd_lang_from_aid(stream, aid))) + continue; + strcpy (aid_str, str); + } else + sprintf(aid_str, "%d", aid); + if((e = calloc(1,sizeof(list_entry_t))) != NULL){ + e->p.next = NULL; + e->p.txt = strdup(aid_str); + e->aid = aid; + menu_list_add_entry(menu,e); + } + } + + return 1; +} + +static void read_cmd(menu_t* menu,int cmd) { + int aid; + + switch(cmd) { + case MENU_CMD_OK: + aid = menu->priv->p.current->aid; + if (demuxer->audio->id != aid){ + demuxer->audio->id = aid; + if(demuxer->audio->sh) + resync_audio_stream(demuxer->audio->sh); + } + if(menu->priv->auto_close) + mp_input_queue_cmd(mp_input_parse_cmd("menu hide")); + break; + default: + menu_list_read_cmd(menu,cmd); + } +} + +static void close_as(menu_t* menu) { + menu_list_uninit(menu,NULL); +} + +static int open_as(menu_t* menu, char* args) { + args = NULL; + + menu->draw = menu_list_draw; + menu->read_cmd = read_cmd; + menu->read_key = menu_dflt_read_key; + menu->close = close_as; + menu->priv->p.title = menu->priv->title; + + return fill_menu(menu); +} + +const menu_info_t menu_info_audiosel = { + "Audio seletor menu", + "audiosel", + "aurel.j", + "", + { + "audiosel_cfg", + sizeof(struct menu_priv_s), + &cfg_dflt, + cfg_fields + }, + open_as +}; diff -Naur MPlayer-1.0pre7.orig/libmenu/menu.c MPlayer-1.0pre7/libmenu/menu.c --- MPlayer-1.0pre7.orig/libmenu/menu.c 2003-08-16 11:50:45.000000000 +0200 +++ MPlayer-1.0pre7/libmenu/menu.c 2005-04-17 13:27:52.000000000 +0200 @@ -22,6 +22,9 @@ extern menu_info_t menu_info_cmdlist; extern menu_info_t menu_info_pt; extern menu_info_t menu_info_filesel; +extern menu_info_t menu_info_audiosel; +extern menu_info_t menu_info_subsel; +extern menu_info_t menu_info_chapsel; extern menu_info_t menu_info_txt; extern menu_info_t menu_info_console; extern menu_info_t menu_info_pref; @@ -34,6 +37,9 @@ &menu_info_pt, &menu_info_cmdlist, &menu_info_filesel, + &menu_info_audiosel, + &menu_info_subsel, + &menu_info_chapsel, &menu_info_txt, &menu_info_console, #ifdef HAS_DVBIN_SUPPORT diff -Naur MPlayer-1.0pre7.orig/libmenu/menu_chapsel.c MPlayer-1.0pre7/libmenu/menu_chapsel.c --- MPlayer-1.0pre7.orig/libmenu/menu_chapsel.c 1970-01-01 01:00:00.000000000 +0100 +++ MPlayer-1.0pre7/libmenu/menu_chapsel.c 2005-04-17 13:27:52.000000000 +0200 @@ -0,0 +1,166 @@ + +#include +#include +#include + +#include "../config.h" + +#include "../m_struct.h" +#include "../m_option.h" +#include "../input/input.h" + +#include "../libmpdemux/stream.h" +#include "../libmpdemux/demuxer.h" +#include "../libvo/video_out.h" +#include "../libvo/sub.h" +#include "../spudec.h" +#include "../mplayer.h" + +#include "img_format.h" +#include "mp_image.h" + +#include "menu.h" +#include "menu_list.h" + +struct list_entry_s { + struct list_entry p; + int cid; +}; + +struct menu_priv_s { + menu_list_priv_t p; + char* title; + int auto_close; +}; + +static struct menu_priv_s cfg_dflt = { + MENU_LIST_PRIV_DFLT, + "Select chapter", + 0 +}; + +#define ST_OFF(m) M_ST_OFF(struct menu_priv_s,m) + +static m_option_t cfg_fields[] = { + MENU_LIST_PRIV_FIELDS, + { "title", ST_OFF (title), CONF_TYPE_STRING, 0, 0, 0, NULL }, + { "auto-close", ST_OFF (auto_close), CONF_TYPE_FLAG, 0, 0, 1, NULL }, + { NULL, NULL, NULL, 0, 0, 0, NULL } +}; + +extern stream_t* stream; +extern demuxer_t *demuxer; + +static int +fill_menu (menu_t* menu) +{ + list_entry_t* e; + int cid; + + if ((demuxer && stream->type == STREAMTYPE_DVD) + || (demuxer && demuxer->type == DEMUXER_TYPE_MATROSKA + && mkv_chapter_num > 0)) + { + menu_list_init (menu); + + if (stream->type == STREAMTYPE_DVD) + { + for (cid = 1; cid < dvd_total_chapter + 1; cid++) + { + char *chap = malloc (3 * sizeof (char)); + if ((e = calloc (1, sizeof (list_entry_t))) != NULL) + { + sprintf (chap, "%d", cid); + e->p.next = NULL; + e->p.txt = strdup (chap); + e->cid = cid; + menu_list_add_entry (menu, e); + } + free (chap); + } + } + else if (demuxer->type == DEMUXER_TYPE_MATROSKA) + { + for (cid = 0; cid < mkv_chapter_num + 0; cid++) + { + if ((e = calloc (1, sizeof (list_entry_t))) != NULL) + { + e->p.next = NULL; + if (mkv_chapter_string[cid]) + e->p.txt = strdup (mkv_chapter_string[cid]); + else + { + e->p.txt = malloc (4); + sprintf (e->p.txt, "%-3d", cid+1); + } + e->cid = cid + 1; + menu_list_add_entry (menu, e); + } + } + } + } + else + menu_list_read_cmd (menu, MENU_CMD_CANCEL); + + return 1; +} + +static void +read_cmd (menu_t* menu, int cmd) +{ + switch (cmd) + { + case MENU_CMD_OK: + if (stream->type == STREAMTYPE_DVD) + { + stream_seek (stream, + (off_t) dvd_chapter_pos[menu->priv->p.current->cid] + * 2048); + } + else if (demuxer->type == DEMUXER_TYPE_MATROSKA) + { + demux_seek (demuxer, + mkv_chapter_start[menu->priv->p.current->cid]/1000.0, 1); + } + + if (menu->priv->auto_close) + mp_input_queue_cmd (mp_input_parse_cmd ("menu hide")); + break; + default: + menu_list_read_cmd (menu, cmd); + } +} + +static void +close_cs (menu_t* menu) +{ + menu_list_uninit (menu, NULL); +} + +static int +open_cs (menu_t* menu, char* args) +{ + args = NULL; + + menu->draw = menu_list_draw; + menu->read_cmd = read_cmd; + menu->read_key = menu_dflt_read_key; + menu->close = close_cs; + menu->priv->p.title = menu->priv->title; + + return fill_menu (menu); +} + +const menu_info_t menu_info_chapsel = { + "Chapter selector menu", + "chapsel", + "Benjamin Zores", + "", + { + "chapsel_cfg", + sizeof(struct menu_priv_s), + &cfg_dflt, + cfg_fields + }, + open_cs +}; diff -Naur MPlayer-1.0pre7.orig/libmenu/menu_subsel.c MPlayer-1.0pre7/libmenu/menu_subsel.c --- MPlayer-1.0pre7.orig/libmenu/menu_subsel.c 1970-01-01 01:00:00.000000000 +0100 +++ MPlayer-1.0pre7/libmenu/menu_subsel.c 2005-04-17 13:27:52.000000000 +0200 @@ -0,0 +1,178 @@ + +#include +#include +#include + +#include "../config.h" + +#include "../m_struct.h" +#include "../m_option.h" +#include "../input/input.h" + +#include "../libmpdemux/stream.h" +#include "../libmpdemux/demuxer.h" +#include "../libvo/video_out.h" +#include "../libvo/sub.h" +#include "../spudec.h" +#include "../mplayer.h" + +#include "img_format.h" +#include "mp_image.h" + +#include "menu.h" +#include "menu_list.h" + + +struct list_entry_s { + struct list_entry p; + int sid; +}; + +struct menu_priv_s { + menu_list_priv_t p; + char* title; + int auto_close; +}; + +static struct menu_priv_s cfg_dflt = { + MENU_LIST_PRIV_DFLT, + "Select subtitle", + 0 +}; + +#define ST_OFF(m) M_ST_OFF(struct menu_priv_s,m) + +static m_option_t cfg_fields[] = { + MENU_LIST_PRIV_FIELDS, + { "title", ST_OFF(title), CONF_TYPE_STRING, 0, 0, 0, NULL }, + { "auto-close", ST_OFF(auto_close), CONF_TYPE_FLAG, 0, 0, 1, NULL }, + { NULL, NULL, NULL, 0,0,0,NULL } +}; + + +extern stream_t* stream; +extern demuxer_t *demuxer; + +static int fill_menu(menu_t* menu) { + list_entry_t* e; + char txt[3]; + int lang, sid=0, inc; + + if ((demuxer && demuxer->sub && stream->type == STREAMTYPE_DVD) + || (demuxer && demuxer->type == DEMUXER_TYPE_OGG && ogg_subtitles_num>0) + || (demuxer&&demuxer->type == DEMUXER_TYPE_MATROSKA&&mkv_subtitles_num>0) + || set_of_sub_size > 0){ + menu_list_init(menu); + + if(stream->type == STREAMTYPE_DVD){ + while((lang = dvd_lang_from_sid(stream, sid))) + if((e = calloc(1,sizeof(list_entry_t))) != NULL){ + txt[0] = lang>>8; + txt[1] = lang; + txt[2] = 0; + e->p.txt = strdup(txt); + e->p.next = NULL; + e->sid = sid++; + menu_list_add_entry(menu,e); + } + } else { + if(demuxer->type == DEMUXER_TYPE_OGG) + for(sid=0; sidp.txt = strdup(txt); + e->p.next = NULL; + e->sid = sid; + menu_list_add_entry(menu,e); + } + } + else if(demuxer->type == DEMUXER_TYPE_MATROSKA) + for(sid=0; sidp.txt = strdup(txt); + e->p.next = NULL; + e->sid = sid; + menu_list_add_entry(menu,e); + } + } + inc = sid; + sid = 0; + while(sid < set_of_sub_size) + if((e = calloc(1,sizeof(list_entry_t))) != NULL){ + e->p.txt = strrchr(set_of_subtitles[sid]->filename, '/'); + if(e->p.txt == NULL) e->p.txt = set_of_subtitles[sid]->filename; + else e->p.txt++; + e->p.next = NULL; + e->sid = inc + sid++; + menu_list_add_entry(menu,e); + } + } + } else { + menu_list_read_cmd(menu,MENU_CMD_CANCEL); + } + + return 1; +} + +static void read_cmd(menu_t* menu,int cmd) { + int sid; + + switch(cmd) { + case MENU_CMD_OK: + sid = menu->priv->p.current->sid; + if(stream->type == STREAMTYPE_DVD && demuxer->sub->id != sid){ + demuxer->sub->id = sid; + if(vo_spudec) + spudec_reset(vo_spudec); + } else if(demuxer->type == DEMUXER_TYPE_OGG && sid < ogg_subtitles_num) { + demuxer->sub->id = ogg_subtitles[sid]; + } else if(demuxer->type==DEMUXER_TYPE_MATROSKA && sidsub->id = mkv_subtitles[sid]; + } else { + if (demuxer->type == DEMUXER_TYPE_OGG) + sid -= ogg_subtitles_num; + else if (demuxer->type == DEMUXER_TYPE_MATROSKA) + sid -= mkv_subtitles_num; + set_of_sub_pos = sid; + subdata = set_of_subtitles[set_of_sub_pos]; + vo_sub = NULL; + vo_osd_changed(OSDTYPE_SUBTITLE); + } + if(menu->priv->auto_close) + mp_input_queue_cmd(mp_input_parse_cmd("menu hide")); + break; + default: + menu_list_read_cmd(menu,cmd); + } +} + +static void close_ss(menu_t* menu) { + menu_list_uninit(menu,NULL); +} + +static int open_ss(menu_t* menu, char* args) { + args = NULL; + + menu->draw = menu_list_draw; + menu->read_cmd = read_cmd; + menu->read_key = menu_dflt_read_key; + menu->close = close_ss; + menu->priv->p.title = menu->priv->title; + + return fill_menu(menu); +} + +const menu_info_t menu_info_subsel = { + "Subtitle seletor menu", + "subsel", + "aurel.j", + "", + { + "subsel_cfg", + sizeof(struct menu_priv_s), + &cfg_dflt, + cfg_fields + }, + open_ss +}; diff -Naur MPlayer-1.0pre7.orig/libmpdemux/demuxer.h MPlayer-1.0pre7/libmpdemux/demuxer.h --- MPlayer-1.0pre7.orig/libmpdemux/demuxer.h 2005-04-03 16:08:26.000000000 +0200 +++ MPlayer-1.0pre7/libmpdemux/demuxer.h 2005-04-17 13:27:52.000000000 +0200 @@ -271,6 +271,14 @@ extern int extension_parsing; +extern int ogg_subtitles[]; +extern int ogg_subtitles_num; +extern int mkv_subtitles[]; +extern int mkv_subtitles_num; +extern int mkv_chapter_num; +extern uint64_t mkv_chapter_start[99]; +extern char* mkv_chapter_string[99]; + int demux_info_add(demuxer_t *demuxer, char *opt, char *param); char* demux_info_get(demuxer_t *demuxer, char *opt); int demux_info_print(demuxer_t *demuxer); diff -Naur MPlayer-1.0pre7.orig/libmpdemux/demux_mkv.c MPlayer-1.0pre7/libmpdemux/demux_mkv.c --- MPlayer-1.0pre7.orig/libmpdemux/demux_mkv.c 2005-04-14 00:33:19.000000000 +0200 +++ MPlayer-1.0pre7/libmpdemux/demux_mkv.c 2005-04-17 13:27:52.000000000 +0200 @@ -231,6 +231,11 @@ uint32_t fourcc3; /* fourcc */ } real_audio_v5_props_t; +int mkv_subtitles[64]; +int mkv_subtitles_num; +uint64_t mkv_chapter_start[99]; +int mkv_chapter_num; +char* mkv_chapter_string[99]; /* for e.g. "-slang ger" */ extern char *dvdsub_lang; @@ -1341,6 +1346,35 @@ end = ebml_read_uint (s, &l) / 1000000; break; + case MATROSKA_ID_CHAPTERDISPLAY: + { + uint64_t len; + int i; + + len = ebml_read_length (s, &i); + l = len + i; + + while (len > 0) + { + uint64_t l; + int il; + + switch (ebml_read_id (s, &il)) + { + case MATROSKA_ID_CHAPTERSTRING: + mkv_chapter_string[mkv_chapter_num] + = ebml_read_utf8 (s, &l); + break; + + default: + ebml_read_skip (s, &l); + break; + } + len -= l + il; + } + break; + } + default: ebml_read_skip (s, &l); break; @@ -1362,6 +1396,8 @@ (int) ((end / 60 / 1000) % 60), (int) ((end / 1000) % 60), (int) (end % 1000)); + mkv_chapter_num = mkv_d->num_chapters; + mkv_chapter_start[mkv_chapter_num] = start; break; } @@ -2323,13 +2359,23 @@ track = demux_mkv_find_track_by_num (mkv_d, demuxer->audio->id, MATROSKA_TRACK_AUDIO); - if (track && !demux_mkv_open_audio (demuxer, track)) + if (track) + { + for (i=0; i < mkv_d->num_tracks; i++) + if (mkv_d->tracks[i]->type == MATROSKA_TRACK_AUDIO) + { + int def = (mkv_d->tracks[i] == track); + if (demux_mkv_open_audio (demuxer, mkv_d->tracks[i]) && def) + demuxer->audio->id = -2; + else if (def) { mp_msg (MSGT_DEMUX, MSGL_INFO, "[mkv] Will play audio track %u\n", track->tnum); demuxer->audio->id = track->tnum; demuxer->audio->sh = demuxer->a_streams[track->tnum]; } + } + } else { mp_msg (MSGT_DEMUX, MSGL_INFO, "[mkv] No audio track found/wanted.\n"); @@ -2347,6 +2393,10 @@ track = demux_mkv_find_track_by_language (mkv_d, dvdsub_lang, MATROSKA_TRACK_SUBTITLE); + mkv_subtitles_num = 0; + for (i=0; i < mkv_d->num_tracks; i++) + if (mkv_d->tracks[i]->type == MATROSKA_TRACK_SUBTITLE) + mkv_subtitles[mkv_subtitles_num++] = mkv_d->tracks[i]->tnum; if (track && !demux_mkv_open_sub (demuxer, track)) { mp_msg (MSGT_DEMUX, MSGL_INFO, @@ -2400,6 +2450,7 @@ { mkv_demuxer_t *mkv_d = (mkv_demuxer_t *) demuxer->priv; + mkv_subtitles_num = 0; if (mkv_d) { int i; diff -Naur MPlayer-1.0pre7.orig/libmpdemux/demux_ogg.c MPlayer-1.0pre7/libmpdemux/demux_ogg.c --- MPlayer-1.0pre7.orig/libmpdemux/demux_ogg.c 2005-02-27 19:11:16.000000000 +0100 +++ MPlayer-1.0pre7/libmpdemux/demux_ogg.c 2005-04-17 13:31:22.000000000 +0200 @@ -167,6 +167,9 @@ extern subtitle* vo_sub; static float clear_sub; //FILE* subout; +int ogg_subtitles[64]; +int ogg_subtitles_num=0; + static uint16_t get_uint16 (const void *buf) @@ -755,6 +758,7 @@ clear_sub = -1; s = demuxer->stream; + ogg_subtitles_num = 0; ogg_d = (ogg_demuxer_t*)calloc(1,sizeof(ogg_demuxer_t)); sync = &ogg_d->sync; @@ -999,6 +1003,7 @@ /// Check for text (subtitles) header } else if (strncmp(st->streamtype, "text", 4) == 0) { mp_msg(MSGT_DEMUX, MSGL_INFO, "[Ogg] stream %d: subtitles (SRT-like text subtitles), -sid %d\n", ogg_d->num_sub, ogg_d->n_text); + ogg_subtitles[ogg_subtitles_num++] = ogg_d->num_sub; ogg_d->subs[ogg_d->num_sub].samplerate= get_uint64(&st->time_unit)/10; ogg_d->subs[ogg_d->num_sub].text = 1; if (identify) @@ -1464,6 +1469,8 @@ ogg_demuxer_t* ogg_d = demuxer->priv; int i; + ogg_subtitles_num = 0; + if(!ogg_d) return; diff -Naur MPlayer-1.0pre7.orig/libmpdemux/ebml.h MPlayer-1.0pre7/libmpdemux/ebml.h --- MPlayer-1.0pre7.orig/libmpdemux/ebml.h 2004-01-25 17:17:38.000000000 +0100 +++ MPlayer-1.0pre7/libmpdemux/ebml.h 2005-04-17 13:27:52.000000000 +0200 @@ -128,6 +128,8 @@ #define MATROSKA_ID_CHAPTERATOM 0xB6 #define MATROSKA_ID_CHAPTERTIMESTART 0x91 #define MATROSKA_ID_CHAPTERTIMEEND 0x92 +#define MATROSKA_ID_CHAPTERDISPLAY 0x80 +#define MATROSKA_ID_CHAPTERSTRING 0x85 /* IDs in the cluster master */ #define MATROSKA_ID_CLUSTERTIMECODE 0xE7 diff -Naur MPlayer-1.0pre7.orig/libmpdemux/open.c MPlayer-1.0pre7/libmpdemux/open.c --- MPlayer-1.0pre7.orig/libmpdemux/open.c 2005-02-27 05:25:12.000000000 +0100 +++ MPlayer-1.0pre7/libmpdemux/open.c 2005-04-17 13:27:52.000000000 +0200 @@ -36,6 +36,8 @@ int dvd_chapter=1; int dvd_last_chapter=0; +int dvd_total_chapter=0; +int dvd_chapter_pos[99]; int dvd_angle=1; char* dvd_device=NULL; char* cdrom_device=NULL; @@ -253,6 +255,7 @@ */ mp_msg(MSGT_OPEN,MSGL_INFO, MSGTR_DVDnumChapters, tt_srpt->title[dvd_title].nr_of_ptts ); + dvd_total_chapter = tt_srpt->title[dvd_title].nr_of_ptts; if( dvd_chapter<1 || dvd_chapter>tt_srpt->title[dvd_title].nr_of_ptts ) { mp_msg(MSGT_OPEN,MSGL_ERR, MSGTR_DVDinvalidChapter, dvd_chapter); ifoClose( vmg_file ); @@ -455,6 +458,10 @@ d->cell_last_pack=d->cur_pgc->cell_playback[ d->cur_cell ].last_sector; mp_msg(MSGT_DVD,MSGL_V, "DVD start cell: %d pack: 0x%X-0x%X \n",d->cur_cell,d->cur_pack,d->cell_last_pack); + int chap; + for (chap = 0; chap < dvd_total_chapter; chap++) + dvd_chapter_pos[chap+1] = d->cur_pgc->cell_playback[chap].first_sector; + // ... (unimplemented) // return NULL; stream=new_stream(-1,STREAMTYPE_DVD); @@ -667,6 +674,19 @@ return d->subtitles[id].language; } +char *dvd_lang_from_aid(stream_t *stream, int aid){ +static char desc[32]; +dvd_priv_t *d=stream->priv; +int i; + for(i=0;inr_of_channels;i++){ + if(d->audio_streams[i].id==aid){ + sprintf (desc, "%c%c - %s (%s)", (d->audio_streams[i].language>>8)&0xFF, d->audio_streams[i].language&0xFF, dvd_audio_stream_types[d->audio_streams[i].type], dvd_audio_stream_channels[d->audio_streams[i].channels]); + return desc; + } + } + return NULL; +} + int dvd_sid_from_lang(stream_t *stream, unsigned char* lang){ dvd_priv_t *d=stream->priv; int code,i; diff -Naur MPlayer-1.0pre7.orig/libmpdemux/stream.h MPlayer-1.0pre7/libmpdemux/stream.h --- MPlayer-1.0pre7.orig/libmpdemux/stream.h 2005-02-27 05:25:12.000000000 +0100 +++ MPlayer-1.0pre7/libmpdemux/stream.h 2005-04-17 13:27:52.000000000 +0200 @@ -258,6 +258,8 @@ extern int dvd_title; extern int dvd_chapter; extern int dvd_last_chapter; +extern int dvd_total_chapter; +extern int dvd_chapter_pos[99]; extern int dvd_angle; //#endif diff -Naur MPlayer-1.0pre7.orig/mplayer.c MPlayer-1.0pre7/mplayer.c --- MPlayer-1.0pre7.orig/mplayer.c 2005-04-15 14:14:24.000000000 +0200 +++ MPlayer-1.0pre7/mplayer.c 2005-04-17 13:27:52.000000000 +0200 @@ -328,8 +328,8 @@ int global_sub_indices[SUB_SOURCES]; int global_sub_quiet_osd_hack = 0; -static stream_t* stream=NULL; -static demuxer_t *demuxer=NULL; +stream_t* stream=NULL; +demuxer_t *demuxer=NULL; static sh_audio_t *sh_audio=NULL; static sh_video_t *sh_video=NULL; @@ -1845,8 +1845,7 @@ //================== Read SUBTITLES (DVD & TEXT) ========================== if(vo_spudec==NULL && sh_video && - (stream->type==STREAMTYPE_DVD || demuxer->type==DEMUXER_TYPE_MATROSKA || - d_dvdsub->id >= 0)){ + (stream->type==STREAMTYPE_DVD || demuxer->type==DEMUXER_TYPE_MATROSKA)){ if (spudec_ifo) { unsigned int palette[16], width, height; diff -Naur MPlayer-1.0pre7.orig/mplayer.h MPlayer-1.0pre7/mplayer.h --- MPlayer-1.0pre7.orig/mplayer.h 2003-04-07 18:03:37.000000000 +0200 +++ MPlayer-1.0pre7/mplayer.h 2005-04-17 13:27:52.000000000 +0200 @@ -35,6 +35,9 @@ extern int sub_unicode; extern char * sub_cp; extern sub_data* subdata; //currently used subtitles +extern sub_data* set_of_subtitles[MAX_SUBTITLE_FILES]; +extern int set_of_sub_size; +extern int set_of_sub_pos; extern subtitle* vo_sub; extern int suboverlap_enabled; geexbox-0.98.7/packages/MPlayer/patches/81_menu-actions.diff0000644000175000017500000000460710335100767022615 0ustar aurelaureldiff -Naur MPlayer-1.0pre6.orig/libmenu/menu.h MPlayer-1.0pre6/libmenu/menu.h --- MPlayer-1.0pre6.orig/libmenu/menu.h 2004-12-30 19:38:06.756872496 +0100 +++ MPlayer-1.0pre6/libmenu/menu.h 2004-12-30 19:53:04.508393520 +0100 @@ -31,6 +31,7 @@ #define MENU_CMD_DOWN 1 #define MENU_CMD_OK 2 #define MENU_CMD_CANCEL 3 +#define MENU_CMD_ACTION 4 /// Global init/uninit int menu_init(char* cfg_file); diff -Naur MPlayer-1.0pre6.orig/libmenu/menu_filesel.c MPlayer-1.0pre6/libmenu/menu_filesel.c --- MPlayer-1.0pre6.orig/libmenu/menu_filesel.c 2004-12-30 19:52:49.756636128 +0100 +++ MPlayer-1.0pre6/libmenu/menu_filesel.c 2004-12-30 19:53:04.508393520 +0100 @@ -38,6 +38,7 @@ char* file_action; char* dir_action; int auto_close; + char** actions; }; static struct menu_priv_s cfg_dflt = { @@ -48,7 +49,8 @@ "Select a file: %p", "loadfile '%p'", NULL, - 0 + 0, + NULL }; #define ST_OFF(m) M_ST_OFF(struct menu_priv_s,m) @@ -60,6 +62,7 @@ { "file-action", ST_OFF(file_action), CONF_TYPE_STRING, 0, 0, 0, NULL }, { "dir-action", ST_OFF(dir_action), CONF_TYPE_STRING, 0, 0, 0, NULL }, { "auto-close", ST_OFF(auto_close), CONF_TYPE_FLAG, 0, 0, 1, NULL }, + { "actions", ST_OFF(actions), CONF_TYPE_STRING_LIST, 0, 0, 0, NULL}, { NULL, NULL, NULL, 0,0,0,NULL } }; @@ -201,6 +204,8 @@ } +static char *action; + static void read_cmd(menu_t* menu,int cmd) { mp_cmd_t* c = NULL; switch(cmd) { @@ -253,6 +258,16 @@ menu->cl = 1; } } break; + case MENU_CMD_ACTION: { + int fname_len = strlen(mpriv->dir) + strlen(mpriv->p.current->p.txt) + 1; + char filename[fname_len]; + char *str; + sprintf(filename,"%s%s",mpriv->dir,mpriv->p.current->p.txt); + str = replace_path(action, filename); + mp_input_queue_cmd(mp_input_parse_cmd(str)); + if(str != action) + free(str); + } break; default: menu_list_read_cmd(menu,cmd); } @@ -262,8 +277,17 @@ if(c == KEY_BS) { mpriv->p.current = mpriv->p.menu; // Hack : we consider that the first entry is ../ read_cmd(menu,MENU_CMD_OK); - } else - menu_list_read_key(menu,c,1); + } else { + char **str; + for (str=mpriv->actions; str && *str; str++) + if (c == (*str)[0]) { + action = &(*str)[2]; + read_cmd(menu,MENU_CMD_ACTION); + break; + } + if (!str || !*str) + menu_list_read_key(menu,c,1); + } } static void clos(menu_t* menu) { geexbox-0.98.7/packages/MPlayer/patches/82_menu-cmd.diff0000644000175000017500000000705710335100767021723 0ustar aurelaureldiff -Naur MPlayer-1.0pre6.orig/input/input.c MPlayer-1.0pre6/input/input.c --- MPlayer-1.0pre6.orig/input/input.c 2004-12-30 19:52:49.756636128 +0100 +++ MPlayer-1.0pre6/input/input.c 2004-12-30 19:53:33.733950560 +0100 @@ -832,7 +832,7 @@ return binds[j].cmd; } -static mp_cmd_t* +mp_cmd_t* mp_input_get_cmd_from_keys(int n,int* keys, int paused) { char* cmd = NULL; mp_cmd_t* ret; diff -Naur MPlayer-1.0pre6.orig/input/input.h MPlayer-1.0pre6/input/input.h --- MPlayer-1.0pre6.orig/input/input.h 2004-12-30 19:52:49.756636128 +0100 +++ MPlayer-1.0pre6/input/input.h 2004-12-30 19:53:33.733950560 +0100 @@ -195,6 +195,10 @@ void mp_input_rm_key_fd(int fd); +// Convert a key list into a cmd +mp_cmd_t* +mp_input_get_cmd_from_keys(int n,int* keys, int paused); + // This function can be used to put a command in the system again. It's used by libmpdemux // when it performs a blocking operation to resend the command it received to the main // loop. diff -Naur MPlayer-1.0pre6.orig/libmenu/menu.c MPlayer-1.0pre6/libmenu/menu.c --- MPlayer-1.0pre6.orig/libmenu/menu.c 2004-12-30 19:52:49.756636128 +0100 +++ MPlayer-1.0pre6/libmenu/menu.c 2004-12-30 19:53:33.733950560 +0100 @@ -207,6 +207,8 @@ case JOY_BTN0: menu->read_cmd(menu,MENU_CMD_OK); break; + default: + mp_input_queue_cmd(mp_input_get_cmd_from_keys (1, &cmd, 0)); } } diff -Naur MPlayer-1.0pre6.orig/libmenu/menu_filesel.c MPlayer-1.0pre6/libmenu/menu_filesel.c --- MPlayer-1.0pre6.orig/libmenu/menu_filesel.c 2004-12-30 19:53:10.021555392 +0100 +++ MPlayer-1.0pre6/libmenu/menu_filesel.c 2004-12-30 19:53:33.734950408 +0100 @@ -253,9 +253,9 @@ free(str); } if(c) { - mp_input_queue_cmd(c); if(mpriv->auto_close) - menu->cl = 1; + mp_input_queue_cmd(mp_input_parse_cmd("menu hide")); + mp_input_queue_cmd(c); } } break; case MENU_CMD_ACTION: { diff -Naur MPlayer-1.0pre6.orig/libmenu/vf_menu.c MPlayer-1.0pre6/libmenu/vf_menu.c --- MPlayer-1.0pre6.orig/libmenu/vf_menu.c 2004-12-30 19:52:49.757635976 +0100 +++ MPlayer-1.0pre6/libmenu/vf_menu.c 2004-12-30 19:53:33.735950256 +0100 @@ -156,12 +156,12 @@ inline static void copy_mpi(mp_image_t *dmpi, mp_image_t *mpi) { if(mpi->flags&MP_IMGFLAG_PLANAR){ - memcpy_pic(dmpi->planes[0],mpi->planes[0], mpi->w, mpi->h, - dmpi->stride[0],mpi->stride[0]); - memcpy_pic(dmpi->planes[1],mpi->planes[1], mpi->chroma_width, mpi->chroma_height, - dmpi->stride[1],mpi->stride[1]); memcpy_pic(dmpi->planes[2], mpi->planes[2], mpi->chroma_width, mpi->chroma_height, dmpi->stride[2],mpi->stride[2]); + memcpy_pic(dmpi->planes[1],mpi->planes[1], mpi->chroma_width, mpi->chroma_height, + dmpi->stride[1],mpi->stride[1]); + memcpy_pic(dmpi->planes[0],mpi->planes[0], mpi->w, mpi->h, + dmpi->stride[0],mpi->stride[0]); } else { memcpy_pic(dmpi->planes[0],mpi->planes[0], mpi->w*(dmpi->bpp/8), mpi->h, @@ -181,15 +181,14 @@ return vf_next_put_image(vf,dmpi); } - if(vf->priv->current->show - || (vf->priv->current->parent && vf->priv->current->parent->show)) { // Close all menu who requested it - while(vf->priv->current->cl && vf->priv->current != vf->priv->root) { + while(vf->priv->current != vf->priv->root && vf->priv->current->cl) { menu_t* m = vf->priv->current; vf->priv->current = m->parent ? m->parent : vf->priv->root; menu_close(m); } + if(vf->priv->current->show) { // Step 1 : save the picture while(go2pause == 1) { static char delay = 0; // Hack : wait the 2 frame to be sure to show the right picture geexbox-0.98.7/packages/MPlayer/patches/83_menu-filefilter.diff0000644000175000017500000001166310335100767023304 0ustar aurelaureldiff -Naur MPlayer-1.0pre7.orig/input/input.c MPlayer-1.0pre7/input/input.c --- MPlayer-1.0pre7.orig/input/input.c 2005-04-15 16:52:33.000000000 +0200 +++ MPlayer-1.0pre7/input/input.c 2005-04-17 13:52:44.000000000 +0200 @@ -103,6 +103,7 @@ { MP_CMD_SWITCH_RATIO, "switch_ratio", 0, { {MP_CMD_ARG_FLOAT,{0}}, {-1,{0}} } }, { MP_CMD_VO_FULLSCREEN, "vo_fullscreen", 0, { {-1,{0}} } }, { MP_CMD_VO_ONTOP, "vo_ontop", 0, { {-1,{0}} } }, + { MP_CMD_FILE_FILTER, "file_filter", 1, { { MP_CMD_ARG_INT, {0}}, {-1,{0}}}}, { MP_CMD_VO_ROOTWIN, "vo_rootwin", 0, { {-1,{0}} } }, { MP_CMD_SCREENSHOT, "screenshot", 0, { {-1,{0}} } }, { MP_CMD_PANSCAN, "panscan",1, { {MP_CMD_ARG_FLOAT,{0}}, {MP_CMD_ARG_INT,{0}}, {-1,{0}} } }, diff -Naur MPlayer-1.0pre7.orig/input/input.h MPlayer-1.0pre7/input/input.h --- MPlayer-1.0pre7.orig/input/input.h 2005-04-03 16:08:26.000000000 +0200 +++ MPlayer-1.0pre7/input/input.h 2005-04-17 13:52:44.000000000 +0200 @@ -64,6 +64,7 @@ #define MP_CMD_RUN 60 #define MP_CMD_SUB_LOG 61 #define MP_CMD_SWITCH_AUDIO 62 +#define MP_CMD_FILE_FILTER 63 #define MP_CMD_GUI_EVENTS 5000 #define MP_CMD_GUI_LOADFILE 5001 diff -Naur MPlayer-1.0pre7.orig/libmenu/menu_filesel.c MPlayer-1.0pre7/libmenu/menu_filesel.c --- MPlayer-1.0pre7.orig/libmenu/menu_filesel.c 2005-04-17 13:52:33.000000000 +0200 +++ MPlayer-1.0pre7/libmenu/menu_filesel.c 2005-04-17 13:54:08.000000000 +0200 @@ -40,6 +40,7 @@ char* dir_action; int auto_close; char** actions; + char* filter; }; static struct menu_priv_s cfg_dflt = { @@ -51,6 +52,7 @@ "loadfile '%p'", NULL, 0, + NULL, NULL }; @@ -64,6 +66,7 @@ { "dir-action", ST_OFF(dir_action), CONF_TYPE_STRING, 0, 0, 0, NULL }, { "auto-close", ST_OFF(auto_close), CONF_TYPE_FLAG, 0, 0, 1, NULL }, { "actions", ST_OFF(actions), CONF_TYPE_STRING_LIST, 0, 0, 0, NULL}, + { "filter", ST_OFF(filter), CONF_TYPE_STRING, 0, 0, 0, NULL}, { NULL, NULL, NULL, 0,0,0,NULL } }; @@ -177,6 +180,58 @@ } } +char ** +get_extensions (menu_t *menu) +{ + char **extensions, ext[32]; + FILE *fp; + int n = 1; + + if (mpriv->filter == NULL) + return NULL; + + fp = fopen (mpriv->filter, "r"); + if (fp == NULL) + return NULL; + + extensions = (char **) malloc (sizeof (*extensions)); + *extensions = NULL; + + while (fgets (ext, sizeof (ext), fp)) + { + char **l, *e; + int s = strlen (ext); + + if (ext[s-1] == '\n') + { + ext[s-1] = '\0'; + s--; + } + e = (char *) malloc (s + 1); + extensions = (char **) realloc (extensions, ++n * sizeof (*extensions)); + extensions = (char **) realloc (extensions, ++n * sizeof (*extensions)); + strcpy (e, ext); + for (l=extensions; *l; l++); + *l++ = e; + *l = NULL; + } + + fclose (fp); + return extensions; +} + +void +free_extensions (char **extensions) +{ + if (extensions != NULL) + { + char **l = extensions; + while (*l) + free (*l++); + free (extensions); + } +} + static int open_dir(menu_t* menu,char* args) { char **namelist, **tp; struct dirent *dp; @@ -129,6 +184,8 @@ char* p = NULL; list_entry_t* e; DIR* dirp; + extern int file_filter; + char **extensions, **elem, *ext; menu_list_init(menu); @@ -147,11 +204,26 @@ } namelist = (char **) malloc(sizeof(char *)); + extensions = get_extensions (menu); n=0; while ((dp = readdir(dirp)) != NULL) { if(dp->d_name[0] == '.' && strcmp(dp->d_name,"..") != 0) continue; + mylstat(args,dp->d_name,&st); + if (file_filter && extensions && !S_ISDIR(st.st_mode)) { + if((ext = strrchr(dp->d_name,'.')) == NULL) + continue; + ext++; + elem = extensions; + do { + if (!strcasecmp(ext, *elem)) + break; + } while (*++elem); + if (*elem == NULL) + continue; + } + if(n%20 == 0){ // Get some more mem if((tp = (char **) realloc(namelist, (n+20) * sizeof (char *))) == NULL) { @@ -170,13 +242,13 @@ } strcpy(namelist[n], dp->d_name); - mylstat(args,namelist[n],&st); if(S_ISDIR(st.st_mode)) strcat(namelist[n], "/"); n++; } bailout: + free_extensions (extensions); qsort(namelist, n, sizeof(char *), (kill_warn)compare); if (n < 0) { diff -Naur MPlayer-1.0pre7.orig/mplayer.c MPlayer-1.0pre7/mplayer.c --- MPlayer-1.0pre7.orig/mplayer.c 2005-04-15 14:14:24.000000000 +0200 +++ MPlayer-1.0pre7/mplayer.c 2005-04-17 13:52:44.000000000 +0200 @@ -258,6 +258,7 @@ static char* spudec_ifo=NULL; char* filename=NULL; //"MI2-Trailer.avi"; int forced_subs_only=0; +int file_filter = 1; // cache2: int stream_cache_size=-1; @@ -2804,6 +2805,10 @@ cmd->pausing = 1; brk_cmd = 1; } break; + case MP_CMD_FILE_FILTER : { + file_filter = cmd->args[0].v.i; + break; + } case MP_CMD_QUIT : { exit_player_with_rc(MSGTR_Exit_quit, (cmd->nargs > 0)? cmd->args[0].v.i : 0); } geexbox-0.98.7/packages/MPlayer/patches/84_menu-info.diff0000644000175000017500000000740510335100767022112 0ustar aurelaureldiff -Naur MPlayer-1.0pre6.orig/libmenu/menu_param.c MPlayer-1.0pre6/libmenu/menu_param.c --- MPlayer-1.0pre6.orig/libmenu/menu_param.c 2004-12-30 19:38:06.757872344 +0100 +++ MPlayer-1.0pre6/libmenu/menu_param.c 2004-12-30 19:54:32.702985904 +0100 @@ -7,6 +7,12 @@ #include #include #include +#include +#include +#include +#include +#include +#include #include "../config.h" @@ -52,6 +58,43 @@ extern m_config_t* mconfig; +static int is_part(char *name) { + if(*name != 'h' && *name != 's') + return 0; + name++; + if(*name != 'd') + return 0; + name++; + if(*name < 'a' || *name > 'z') + return 0; + name++; + if(*name < '0' || *name > '9') + return 0; + return 1; +} + +static char *part_size(char *part) { + static char size[32]; + char name[] = "/dev/xdxx"; + struct mntent *mpoint; + struct statfs buf; + FILE *mtab; + + strcpy(name+5, part); + mtab = setmntent("/proc/mounts", "r"); + while((mpoint = getmntent(mtab)) != NULL) + if(!strcmp(mpoint->mnt_fsname, name)) + { + endmntent(mtab); + statfs(mpoint->mnt_dir, &buf); + sprintf(size, "%lld M", (buf.f_bsize * (long long)buf.f_bfree) >> 20); + return size; + } + endmntent(mtab); + sprintf(size, "unkown"); + return size; +} + static int parse_args(menu_t* menu,char* args) { char *element,*body, **attribs, *name, *ok, *cancel; list_entry_t* m = NULL; @@ -75,7 +118,7 @@ // Has it a name ? name = asx_get_attrib("name",attribs); opt = name ? m_config_get_option(mconfig,name) : NULL; - if(!opt) { + if(!opt && (!name || (strcmp(name, "ip") && !is_part(name)))) { printf("Pref menu entry definitions need a valid name attribut (line %d)\n",parser->line); free(element); if(name) free(name); @@ -111,6 +154,7 @@ static int openMenu(menu_t* menu, char* args) { list_entry_t* e; + char *txt; menu->draw = menu_list_draw; menu->read_cmd = menu_list_read_cmd; @@ -129,15 +173,49 @@ for(e = mpriv->p.menu ; e ; e = e->p.next) { int l; - char* val = m_option_print(e->opt,e->opt->p); + char* val = NULL; + + if (e->opt) + val = m_option_print(e->opt,e->opt->p); if((int)val == -1) { printf("Can't get value of option %s\n",e->opt->name); continue; - } else if(!val) - val = strdup("NULL"); - l = strlen(e->opt->name) + 2 + strlen(val) + 1; + } else if(!val) { + if (!strcmp(e->p.txt, "ip")) { + struct if_nameindex *ifs, *ifp; + struct ifreq ifr; + int fd, ip; + + fd = socket(AF_INET, SOCK_DGRAM, 0); + if (fd >= 0) { + for (ifp = ifs = if_nameindex (); ifp->if_index != 0; ifp++) { + if (strcmp (ifp->if_name, "lo")) { + strcpy(ifr.ifr_name, ifp->if_name); + ifr.ifr_addr.sa_family = AF_INET; + if (ioctl(fd, SIOCGIFADDR, &ifr) == 0) { + val = (char *) malloc (16); + ip = ((struct sockaddr_in *) &ifr.ifr_addr)->sin_addr.s_addr; + ip = ntohl (ip); + sprintf (val, "%d.%d.%d.%d", + (ip>>24)&0xFF, (ip>>16)&0xFF, (ip>>8)&0xFF, ip&0xFF); + } else { + val = strdup("NULL"); + } + break; + } + } + if_freenameindex (ifs); + close (fd); + } + } else if (is_part(e->p.txt)) { + val = strdup(part_size(e->p.txt)); + } else + val = strdup("NULL"); + } + l = strlen(e->p.txt) + 2 + strlen(val) + 1; + txt = e->p.txt; e->p.txt = malloc(l); - sprintf(e->p.txt,"%s: %s",e->opt->name,val); + sprintf(e->p.txt,"%s: %s",txt,val); free(val); } geexbox-0.98.7/packages/MPlayer/patches/86_menu-playtree.diff0000644000175000017500000001361610335100767023007 0ustar aurelaureldiff -Naur MPlayer-1.0pre6.orig/libmenu/menu_pt.c MPlayer-1.0pre6/libmenu/menu_pt.c --- MPlayer-1.0pre6.orig/libmenu/menu_pt.c 2004-12-30 19:38:06.757872344 +0100 +++ MPlayer-1.0pre6/libmenu/menu_pt.c 2004-12-30 19:54:46.665863224 +0100 @@ -31,11 +31,13 @@ struct menu_priv_s { menu_list_priv_t p; char* title; + int auto_close; }; static struct menu_priv_s cfg_dflt = { MENU_LIST_PRIV_DFLT, - "Jump to" + "Jump to", + 0 }; #define ST_OFF(m) M_ST_OFF(struct menu_priv_s,m) @@ -43,27 +45,77 @@ static m_option_t cfg_fields[] = { MENU_LIST_PRIV_FIELDS, { "title", ST_OFF(title), CONF_TYPE_STRING, 0, 0, 0, NULL }, + { "auto-close", ST_OFF(auto_close), CONF_TYPE_FLAG, 0, 0, 1, NULL }, { NULL, NULL, NULL, 0,0,0,NULL } }; #define mpriv (menu->priv) +static int fill_menu(menu_t* menu) { + play_tree_t* i; + list_entry_t* e; + + menu_list_init(menu); + + mpriv->p.title = mpriv->title; + + if(playtree_iter->tree->parent != playtree_iter->root) { + e = calloc(1,sizeof(list_entry_t)); + e->p.txt = ".."; + e->pt = playtree_iter->tree->parent; + menu_list_add_entry(menu,e); + } + + for(i = playtree_iter->tree ; i->prev != NULL ; i = i->prev) + /* NOP */; + for( ; i != NULL ; i = i->next ) { + e = calloc(1,sizeof(list_entry_t)); + if(i->files) { +#if defined(HAVE_VCD) || defined(HAVE_CDDA) + if (i->entry_type == PLAY_TREE_ENTRY_VCD + || !strncasecmp(i->files[0],"cdda://",7)) { + e->p.txt = (char *) malloc (10*sizeof(char)); + sprintf(e->p.txt, "Track %s", mp_basename(i->files[0])); + } + else +#endif +#ifdef USE_DVDREAD + if (i->entry_type == PLAY_TREE_ENTRY_DVD) { + e->p.txt = (char *) malloc (10*sizeof(char)); + sprintf(e->p.txt, "Title %s", mp_basename(i->files[0])); + } + else +#endif + e->p.txt = mp_basename(i->files[0]); + } + else + e->p.txt = "Group ..."; + e->pt = i; + menu_list_add_entry(menu,e); + } + + return 1; +} + static void read_cmd(menu_t* menu,int cmd) { switch(cmd) { case MENU_CMD_OK: { - int d = 1; + int d = 0; char str[15]; play_tree_t* i; mp_cmd_t* c; - if(playtree_iter->tree == mpriv->p.current->pt) - break; - - if(playtree_iter->tree->parent && mpriv->p.current->pt == playtree_iter->tree->parent) - snprintf(str,15,"pt_up_step 1"); - else { - for(i = playtree_iter->tree->next; i != NULL ; i = i->next) { + if(playtree_iter->tree->parent && mpriv->p.current->pt == playtree_iter->tree->parent){ + playtree_iter->tree = playtree_iter->tree->parent; + menu_list_uninit(menu,NULL); + fill_menu(menu); + } else if(mpriv->p.current->pt->child) { + playtree_iter->tree = mpriv->p.current->pt->child; + menu_list_uninit(menu,NULL); + fill_menu(menu); + } else { + for(i = playtree_iter->tree; i != NULL ; i = i->next) { if(i == mpriv->p.current->pt) break; d++; @@ -81,12 +133,16 @@ } } snprintf(str,15,"pt_step %d",d); + + c = mp_input_parse_cmd(str); + if(c){ + if(mpriv->auto_close) + mp_input_queue_cmd(mp_input_parse_cmd("menu hide")); + mp_input_queue_cmd(c); + } + else + printf("Failed to build command %s\n",str); } - c = mp_input_parse_cmd(str); - if(c) - mp_input_queue_cmd(c); - else - printf("Failed to build command %s\n",str); } break; default: menu_list_read_cmd(menu,cmd); @@ -102,8 +158,6 @@ } static int op(menu_t* menu, char* args) { - play_tree_t* i; - list_entry_t* e; args = NULL; // Warning kill menu->draw = menu_list_draw; @@ -111,30 +165,7 @@ menu->read_key = read_key; menu->close = close; - menu_list_init(menu); - - mpriv->p.title = mpriv->title; - - if(playtree_iter->tree->parent != playtree_iter->root) { - e = calloc(1,sizeof(list_entry_t)); - e->p.txt = ".."; - e->pt = playtree_iter->tree->parent; - menu_list_add_entry(menu,e); - } - - for(i = playtree_iter->tree ; i->prev != NULL ; i = i->prev) - /* NOP */; - for( ; i != NULL ; i = i->next ) { - e = calloc(1,sizeof(list_entry_t)); - if(i->files) - e->p.txt = mp_basename(i->files[0]); - else - e->p.txt = "Group ..."; - e->pt = i; - menu_list_add_entry(menu,e); - } - - return 1; + return fill_menu(menu); } const menu_info_t menu_info_pt = { diff -Naur MPlayer-1.0pre6.orig/mplayer.c MPlayer-1.0pre6/mplayer.c --- MPlayer-1.0pre6.orig/mplayer.c 2004-12-30 19:53:46.764969544 +0100 +++ MPlayer-1.0pre6/mplayer.c 2004-12-30 19:54:46.667862920 +0100 @@ -2948,7 +2948,7 @@ grab_frames=2; } break; case MP_CMD_PLAY_TREE_STEP : { - int n = cmd->args[0].v.i == 0 ? 1 : cmd->args[0].v.i; + int n = cmd->args[0].v.i; int force = cmd->args[1].v.i; #ifdef HAVE_NEW_GUI diff -Naur MPlayer-1.0pre6.orig/playtree.c MPlayer-1.0pre6/playtree.c --- MPlayer-1.0pre6.orig/playtree.c 2004-12-30 19:42:47.799147576 +0100 +++ MPlayer-1.0pre6/playtree.c 2004-12-30 19:54:46.667862920 +0100 @@ -249,7 +249,6 @@ #ifdef MP_DEBUG assert(pt != NULL); - assert(pt->child == NULL); assert(file != NULL); #endif @@ -659,9 +658,6 @@ #endif if(pt->entry_type != PLAY_TREE_ENTRY_NODE) { -#ifdef MP_DEBUG - assert(pt->child == NULL); -#endif return 1; } else if (pt->child != NULL) { @@ -721,7 +717,6 @@ play_tree_iter_down_step(play_tree_iter_t* iter, int d,int with_nodes) { #ifdef MP_DEBUG - assert(iter->tree->files == NULL); assert(iter->tree->child != NULL); assert(iter->tree->child->parent == iter->tree); //printf("PT : Go DOWN\n"); diff -Naur MPlayer-1.0pre6.orig/playtreeparser.c MPlayer-1.0pre6/playtreeparser.c --- MPlayer-1.0pre6.orig/playtreeparser.c 2004-12-30 19:38:06.694881920 +0100 +++ MPlayer-1.0pre6/playtreeparser.c 2004-12-30 19:54:46.668862768 +0100 @@ -681,6 +681,7 @@ free_stream(stream); play_tree_add_bpf(ret, file); + play_tree_add_file(ret,file); return ret; geexbox-0.98.7/packages/MPlayer/patches/87_menu-unicode.diff0000644000175000017500000000737710335100767022620 0ustar aurelaureldiff -Naur MPlayer-1.0pre6.orig/cfg-mplayer.h MPlayer-1.0pre6/cfg-mplayer.h --- MPlayer-1.0pre6.orig/cfg-mplayer.h 2004-12-30 19:45:21.872724832 +0100 +++ MPlayer-1.0pre6/cfg-mplayer.h 2004-12-30 19:54:54.508670936 +0100 @@ -76,6 +76,8 @@ #ifdef HAVE_MENU extern int menu_startup; +extern int menu_utf8; +extern int menu_unicode; #endif #ifdef HAVE_AA @@ -318,6 +320,8 @@ {"menu-root", &menu_root, CONF_TYPE_STRING, CONF_GLOBAL, 0, 0, NULL}, {"menu-cfg", &menu_cfg, CONF_TYPE_STRING, CONF_GLOBAL, 0, 0, NULL}, {"menu-startup", &menu_startup, CONF_TYPE_FLAG, CONF_GLOBAL, 0, 1, NULL}, + {"menu-utf8", &menu_utf8, CONF_TYPE_FLAG, 0, 0, 1, NULL}, + {"menu-unicode", &menu_unicode, CONF_TYPE_FLAG, 0, 0, 1, NULL}, #else {"menu", "OSD menu support was not compiled in.\n", CONF_TYPE_PRINT,0, 0, 0, NULL}, #endif diff -Naur MPlayer-1.0pre6.orig/libmenu/menu.c MPlayer-1.0pre6/libmenu/menu.c --- MPlayer-1.0pre6.orig/libmenu/menu.c 2004-12-30 19:53:37.774336328 +0100 +++ MPlayer-1.0pre6/libmenu/menu.c 2004-12-30 19:54:54.508670936 +0100 @@ -302,12 +302,35 @@ return h; } -#ifdef HAVE_FREETYPE -#define render_txt(t) { char* p = t; while(*p) render_one_glyph(vo_font,*p++); } -#else -#define render_txt(t) -#endif - +int menu_utf8 = 0; +int menu_unicode = 0; + +static int get_next_char(char **txt) +{ + int c; + c = (unsigned char)*(*txt)++; + if (c >= 0x80) { + if (menu_utf8){ + if ((c & 0xe0) == 0xc0) /* 2 bytes U+00080..U+0007FF*/ + c = (c & 0x1f)<<6 | ((unsigned char)*(*txt)++ & 0x3f); + else if((c & 0xf0) == 0xe0){ /* 3 bytes U+00800..U+00FFFF*/ + c = (((c & 0x0f)<<6) | ((unsigned char)*(*txt)++ & 0x3f))<<6; + c |= ((unsigned char)*(*txt)++ & 0x3f); + } + } else if (menu_unicode) + c = (c<<8) + (unsigned char)*(*txt)++; + } + if (!c) c++; // avoid UCS 0 + return c; +} + +static void render_txt(char *txt) +{ + while (*txt) { + int c = get_next_char(&txt); + render_one_glyph(vo_font, c); + } +} void menu_draw_text(mp_image_t* mpi,char* txt, int x, int y) { draw_alpha_f draw_alpha = get_draw_alpha(mpi->imgfmt); @@ -321,7 +344,7 @@ render_txt(txt); while (*txt) { - unsigned char c=*txt++; + int c=get_next_char(&txt); if ((font=vo_font->font[c])>=0 && (x + vo_font->width[c] <= mpi->w) && (y + vo_font->pic_a[font]->h <= mpi->h)) draw_alpha(vo_font->width[c], vo_font->pic_a[font]->h, vo_font->pic_b[font]->bmp+vo_font->start[c], @@ -411,7 +434,7 @@ // Jump some the beginnig text if needed while(sy < ymin && *txt) { - unsigned char c=*txt++; + int c=get_next_char(&txt); if(c == '\n' || (warp && ll + vo_font->width[c] > w)) { ll = 0; sy += vo_font->height + vspace; @@ -485,7 +508,7 @@ } while(sx < xmax && txt != line_end) { - unsigned char c = *txt++; + int c=get_next_char(&txt); font = vo_font->font[c]; if(font >= 0) { int cs = (vo_font->pic_a[font]->h - vo_font->height) / 2; @@ -513,7 +536,7 @@ int l = 0; render_txt(txt); while (*txt) { - unsigned char c=*txt++; + int c=get_next_char(&txt); l += vo_font->width[c]+vo_font->charspace; } return l - vo_font->charspace; @@ -525,7 +548,7 @@ render_txt(txt); while (*txt) { - unsigned char c=*txt++; + int c=get_next_char(&txt); if(c == '\n' || (warp && i + vo_font->width[c] >= max_width)) { if(*txt) l++; @@ -545,7 +568,7 @@ int l = 1, i = 0; render_txt(txt); while (*txt) { - unsigned char c=*txt++; + int c=get_next_char(&txt); if(c == '\n' || i + vo_font->width[c] > max_width) { l++; i = 0; @@ -560,7 +583,7 @@ int i = 0; render_txt(txt); while (*txt) { - unsigned char c=*txt; + int c=get_next_char(&txt); if(c == '\n') { txt++; break; geexbox-0.98.7/packages/MPlayer/patches/88_menu-keep-dir.diff0000644000175000017500000000376410335100767022667 0ustar aurelaureldiff -Naur MPlayer-1.0pre6.orig/libmenu/menu_filesel.c MPlayer-1.0pre6/libmenu/menu_filesel.c --- MPlayer-1.0pre6.orig/libmenu/menu_filesel.c 2003-08-15 20:45:35.000000000 +0200 +++ MPlayer-1.0pre6/libmenu/menu_filesel.c 2005-02-24 15:47:02.000000000 +0100 @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include @@ -184,6 +185,7 @@ struct dirent *dp; struct stat st; int n; + int path_fp; char* p = NULL; list_entry_t* e; DIR* dirp; @@ -206,6 +208,13 @@ return 0; } + path_fp = open ("/var/mp_current_path", O_CREAT | O_WRONLY | O_TRUNC); + if (path_fp >= 0) + { + write (path_fp, mpriv->dir, strlen (mpriv->dir)); + close (path_fp); + } + namelist = (char **) malloc(sizeof(char *)); extensions = get_extensions (menu); @@ -368,7 +377,7 @@ } static int open_fs(menu_t* menu, char* args) { - char *path = mpriv->path; + char *path = mpriv->path, *freepath = NULL; int r = 0; char wd[PATH_MAX+1]; args = NULL; // Warning kill @@ -378,6 +387,30 @@ menu->read_key = read_key; menu->close = clos; + if (!path || path[0] == '\0') { + struct stat st; + int path_fp; + + path_fp = open ("/var/mp_current_path", O_RDONLY); + if (path_fp >= 0) + { + if (!fstat(path_fp, &st) && st.st_size > 0 && (path = malloc(st.st_size+1))) + { + if (read(path_fp, path, st.st_size) == st.st_size && path[0] != '\0') + { + freepath = path; + path[st.st_size] = '\0'; + } + else + { + free(path); + path = NULL; + } + } + close (path_fp); + } + } + getcwd(wd,PATH_MAX); if(!path || path[0] == '\0') { int l = strlen(wd) + 2; @@ -395,6 +428,9 @@ r = open_dir(menu,b); } else r = open_dir(menu,path); + + if (freepath) + free(freepath); return r; } geexbox-0.98.7/packages/MPlayer/patches/89_menu-filesel-closedir.diff0000644000175000017500000000060310335100767024402 0ustar aurelaureldiff -Naur MPlayer-1.0pre7.orig/libmenu/menu_filesel.c MPlayer-1.0pre7/libmenu/menu_filesel.c --- MPlayer-1.0pre7.orig/libmenu/menu_filesel.c Thu Jul 21 13:31:56 2005 +++ MPlayer-1.0pre7/libmenu/menu_filesel.c Thu Jul 21 13:32:14 2005 @@ -260,6 +260,8 @@ } bailout: + closedir(dirp); + free_extensions (extensions); qsort(namelist, n, sizeof(char *), (kill_warn)compare); geexbox-0.98.7/packages/MPlayer/patches/89_menu-special-filename-escape.diff0000644000175000017500000000522010335100767025611 0ustar aurelaurelfixes two bugs: 1. doesn't add \ before spaces when showing dirname in interface title. 2. when replace_path() string is to be parsed by input command, I assume that the path is to be run in shell, and I do special escaping of 'into \'\\\'\' diff -Naur MPlayer-1.0pre7.orig/libmenu/menu_filesel.c MPlayer-1.0pre7/libmenu/menu_filesel.c --- MPlayer-1.0pre7.orig/libmenu/menu_filesel.c Tue Nov 1 16:46:27 2005 +++ MPlayer-1.0pre7/libmenu/menu_filesel.c Tue Nov 1 17:28:19 2005 @@ -77,7 +77,7 @@ free(entry); } -static char* replace_path(char* title , char* dir) { +static char* replace_path(char* title , char* dir , int escape) { char *p = strstr(title,"%p"); if(p) { int tl = strlen(title); @@ -87,16 +87,28 @@ char *r, *n, *d = dir; char term = *(p-1); + if (escape) { do { - if (*d == '\\' || *d == term) + if (*d == '\\') l++; + else if (*d == '\'') /* ' -> \'\\\'\' */ + l+=7; } while (*d++); + } r = malloc(l + 1); n = r + t1l; memcpy(r,title,t1l); do { - if (*dir == '\\' || *dir == term) + if (escape) { + if (*dir == '\\') + *n++ = '\\'; + else if (*dir == '\'') { /* ' -> \'\\\'\' */ + *n++ = '\\'; *n++ = '\''; + *n++ = '\\'; *n++ = '\\'; + *n++ = '\\'; *n++ = '\''; *n++ = '\\'; + } + } } while ((*n++ = *dir++)); if(tl - t1l - 2 > 0) strcpy(n-1,p+2); @@ -201,7 +213,7 @@ free(mpriv->p.title); p = strstr(mpriv->title,"%p"); - mpriv->p.title = replace_path(mpriv->title,mpriv->dir); + mpriv->p.title = replace_path(mpriv->title,mpriv->dir,0); if ((dirp = opendir (mpriv->dir)) == NULL){ printf("opendir error: %s", strerror(errno)); @@ -303,7 +315,7 @@ char filename[fname_len]; char* str; sprintf(filename,"%s%s",mpriv->dir,mpriv->p.current->p.txt); - str = replace_path(mpriv->dir_action,filename); + str = replace_path(mpriv->dir_action,filename,1); c = mp_input_parse_cmd(str); if(str != mpriv->dir_action) free(str); @@ -333,7 +345,7 @@ char filename[fname_len]; char *str; sprintf(filename,"%s%s",mpriv->dir,mpriv->p.current->p.txt); - str = replace_path(mpriv->file_action,filename); + str = replace_path(mpriv->file_action,filename,1); c = mp_input_parse_cmd(str); if(str != mpriv->file_action) free(str); @@ -349,7 +361,7 @@ char filename[fname_len]; char *str; sprintf(filename,"%s%s",mpriv->dir,mpriv->p.current->p.txt); - str = replace_path(action, filename); + str = replace_path(action, filename, 1); mp_input_queue_cmd(mp_input_parse_cmd(str)); if(str != action) free(str); geexbox-0.98.7/packages/MPlayer/patches/90_tvinput.diff0000644000175000017500000000222610335100767021717 0ustar aurelaureldiff -Naur MPlayer-1.0pre6.orig/libmpdemux/tv.c MPlayer-1.0pre6/libmpdemux/tv.c --- MPlayer-1.0pre6.orig/libmpdemux/tv.c 2004-12-30 19:38:06.774869760 +0100 +++ MPlayer-1.0pre6/libmpdemux/tv.c 2004-12-30 19:57:40.016509920 +0100 @@ -359,7 +359,11 @@ int channel = 0; if (tv_param_channel) { - if (isdigit(*tv_param_channel)) + if (*tv_param_channel == '-' && isdigit(tv_param_channel[1])) { + tv_param_input = atoi(tv_param_channel+1); + funcs->control(tvh->priv, TVI_CONTROL_SPC_SET_INPUT, &tv_param_input); + } + else if (isdigit(*tv_param_channel)) /* if tv_param_channel begins with a digit interpret it as a number */ channel = atoi(tv_param_channel); else @@ -407,6 +411,11 @@ if (tv_param_channel) { struct CHANLIST cl; + if (*tv_param_channel == '-' && isdigit(tv_param_channel[1])) { + tv_param_input = atoi(tv_param_channel+1); + funcs->control(tvh->priv, TVI_CONTROL_SPC_SET_INPUT, &tv_param_input); + } + else { mp_msg(MSGT_TV, MSGL_V, "Requested channel: %s\n", tv_param_channel); for (i = 0; i < chanlists[tvh->chanlist].count; i++) { @@ -423,6 +432,7 @@ break; } } + } } } geexbox-0.98.7/packages/MPlayer/patches/91_v4l2-video0.diff0000644000175000017500000000103510335100767022157 0ustar aurelaurel* Already fixed upstream. diff -Naur MPlayer-1.0pre7.orig/libmpdemux/tvi_v4l2.c MPlayer-1.0pre7/libmpdemux/tvi_v4l2.c --- MPlayer-1.0pre7.orig/libmpdemux/tvi_v4l2.c 2005-07-24 22:47:25.000000000 +0200 +++ MPlayer-1.0pre7/libmpdemux/tvi_v4l2.c 2005-07-24 22:47:40.000000000 +0200 @@ -776,7 +776,7 @@ } PRIV->video_fd = -1; - PRIV->video_dev = strdup(video_dev? video_dev: "/dev/video"); + PRIV->video_dev = strdup(video_dev? video_dev: "/dev/video0"); if (!PRIV->video_dev) { free_handle(tvi_handle); return NULL; geexbox-0.98.7/packages/MPlayer/patches/92_tvkeepon.diff0000644000175000017500000000073710335100767022050 0ustar aurelaureldiff -Naur MPlayer-1.0pre6.orig/mplayer.c MPlayer-1.0pre6/mplayer.c --- MPlayer-1.0pre6.orig/mplayer.c 2004-12-30 19:54:50.705249144 +0100 +++ MPlayer-1.0pre6/mplayer.c 2004-12-30 19:57:47.991297568 +0100 @@ -2011,6 +2011,7 @@ mp_msg(MSGT_CPLAYER,MSGL_FATAL,MSGTR_ErrorInitializingVODevice); goto goto_next_file; // exit_player(MSGTR_Exit_error); } +system("[ -x /usr/bin/tvkeepon ] && /usr/bin/tvkeepon"); sh_video->video_out=video_out; inited_flags|=INITED_VO; } geexbox-0.98.7/packages/MPlayer/patches/93_dvb-alang-subs.diff0000644000175000017500000000131210335100767023011 0ustar aurelaureldiff -Naur MPlayer-1.0pre7.orig/libmpdemux/demux_ts.c MPlayer-1.0pre7/libmpdemux/demux_ts.c --- MPlayer-1.0pre7.orig/libmpdemux/demux_ts.c 2005-04-09 13:30:59.000000000 +0200 +++ MPlayer-1.0pre7/libmpdemux/demux_ts.c 2005-08-28 16:18:45.000000000 +0200 @@ -885,7 +885,7 @@ params.prog = ts_prog; params.probe = ts_probe; - if(dvdsub_lang != NULL) + if(dvdsub_lang != NULL && demuxer->stream->type != STREAMTYPE_DVB) { strncpy(params.slang, dvdsub_lang, 3); params.slang[3] = 0; @@ -893,7 +893,7 @@ else memset(params.slang, 0, 4); - if(audio_lang != NULL) + if(audio_lang != NULL && demuxer->stream->type != STREAMTYPE_DVB) { strncpy(params.alang, audio_lang, 3); params.alang[3] = 0; geexbox-0.98.7/packages/MPlayer/patches/94_tvformat.diff0000644000175000017500000000325610335100767022060 0ustar aurelaureldiff -Naur MPlayer-1.0pre6.orig/libmpdemux/tv.c MPlayer-1.0pre6/libmpdemux/tv.c --- MPlayer-1.0pre6.orig/libmpdemux/tv.c 2004-11-19 14:04:24.000000000 +0100 +++ MPlayer-1.0pre6/libmpdemux/tv.c 2005-03-23 21:21:09.000000000 +0100 @@ -54,7 +54,7 @@ int tv_param_width = -1; int tv_param_height = -1; int tv_param_input = 0; /* used in v4l and bttv */ -int tv_param_outfmt = IMGFMT_YV12; +int tv_param_outfmt = -1; float tv_param_fps = -1.0; char **tv_param_channels = NULL; int tv_param_audio_id = 0; @@ -164,12 +164,33 @@ int i; tvi_functions_t *funcs = tvh->functions; + int tv_fmt_list[] = { + IMGFMT_YV12, + IMGFMT_I420, + IMGFMT_UYVY, + IMGFMT_YUY2, + IMGFMT_RGB32, + IMGFMT_RGB24, + IMGFMT_RGB16, + IMGFMT_RGB15 + }; + if (funcs->control(tvh->priv, TVI_CONTROL_IS_VIDEO, 0) != TVI_CONTROL_TRUE) { mp_msg(MSGT_TV, MSGL_ERR, "Error: No video input present!\n"); return 0; } + if (tv_param_outfmt == -1) + for (i = 0; i < sizeof (tv_fmt_list) / sizeof (*tv_fmt_list); i++) + { + tv_param_outfmt = tv_fmt_list[i]; + if (funcs->control (tvh->priv, TVI_CONTROL_VID_SET_FORMAT, + &tv_param_outfmt) == TVI_CONTROL_TRUE) + break; + } + else + { switch(tv_param_outfmt) { case IMGFMT_YV12: @@ -190,6 +211,7 @@ mp_msg(MSGT_TV, MSGL_ERR, "==================================================================\n"); } funcs->control(tvh->priv, TVI_CONTROL_VID_SET_FORMAT, &tv_param_outfmt); + } /* set some params got from cmdline */ funcs->control(tvh->priv, TVI_CONTROL_SPC_SET_INPUT, &tv_param_input); geexbox-0.98.7/packages/MPlayer/patches/95_musepack.diff0000644000175000017500000004643310335100767022033 0ustar aurelaureldiff -Naur MPlayer-1.0pre7.orig/configure MPlayer-1.0pre7/configure --- MPlayer-1.0pre7.orig/configure 2005-07-03 19:39:28.936527768 +0200 +++ MPlayer-1.0pre7/configure 2005-07-03 19:49:17.620034272 +0200 @@ -226,6 +226,7 @@ --disable-liba52 disable builtin liba52 [enabled] --enable-libdts enable libdts support [autodetect] --disable-libmpeg2 disable builtin libmpeg2 [enabled] + --disable-musepack disable musepack support [autodetect] --disable-amr_nb disable amr narrowband, floating point [autodetect] --disable-amr_nb-fixed disable amr narrowband, fixed point [autodetect] --disable-amr_wb disable amr wideband, floating point [autodetect] @@ -1410,6 +1411,7 @@ _inet6=auto _gethostbyname2=auto _ftp=yes +_musepack=auto _additional_filters=yes _vstream=auto for ac_option do @@ -1526,6 +1528,8 @@ --disable-libdts) _libdts=no ;; --enable-libmpeg2) _libmpeg2=yes ;; --disable-libmpeg2) _libmpeg2=no ;; + --enable-musepack) _musepack=yes ;; + --disable-musepack) _musepack=no ;; --enable-internal-matroska) _matroska_internal=yes ;; --disable-internal-matroska) _matroska_internal=no ;; --enable-internal-faad) _faad_internal=yes _faad_external=no ;; @@ -5315,6 +5319,29 @@ fi echores "$_libmpeg2" +echocheck "patched libmpcdec" +if test "$_musepack" = auto ; then + _musepack=no + cat > $TMPC << EOF +#include +int main(void) { + mpc_streaminfo info; + mpc_decoder decoder; + mpc_decoder_set_streaminfo(&decoder, &info); + mpc_decoder_decode_frame(&decoder, NULL, 0, NULL); +} +EOF + cc_check -lmpcdec $_ld_lm && _musepack=yes +fi +if test "$_musepack" = yes ; then + _def_musepack='#define HAVE_MUSEPACK 1' + _ld_musepack='-lmpcdec' + _codecmodules="musepack $_codecmodules" +else + _def_musepack='#undef HAVE_MUSEPACK' + _nocodecmodules="musepack $_nocodecmodules" +fi +echores "$_musepack" echocheck "Matroska support" if test "$_matroska_internal" = yes ; then @@ -6744,6 +6771,8 @@ TREMOR = $_tremor_internal TREMOR_FLAGS = $_tremor_flags +MUSEPACK = $_musepack + UNRARLIB = $_unrarlib HAVE_FFPOSTPROCESS = $_def_haveffpostprocess PNG = $_mkf_png @@ -6848,6 +6877,7 @@ LIBLZO_LIB= $_ld_liblzo MAD_LIB = $_ld_mad VORBIS_LIB = $_ld_vorbis $_ld_libdv +MUSEPACK_LIB = $_ld_musepack THEORA_LIB = $_ld_theora FAAD_LIB = $_ld_faad INTERNAL_FAAD = $_faad_internal @@ -7390,6 +7420,9 @@ /* enable Tremor as vorbis decoder */ $_def_tremor +/* enable musepack support */ +$_def_musepack + /* enable OggTheora support */ $_def_theora diff -Naur MPlayer-1.0pre7.orig/etc/codecs.conf MPlayer-1.0pre7/etc/codecs.conf --- MPlayer-1.0pre7.orig/etc/codecs.conf 2005-07-03 19:39:29.107501776 +0200 +++ MPlayer-1.0pre7/etc/codecs.conf 2005-07-03 19:50:37.282923672 +0200 @@ -2428,6 +2428,13 @@ driver ffmpeg dll "dts" +audiocodec musepack + info "MPC/MpegPlus audio codec" + status working + fourcc "MPC " + format 0x60 + driver libmusepack + audiocodec ffamrnb info "AMR Narrowband" status working diff -Naur MPlayer-1.0pre7.orig/libmpcodecs/ad.c MPlayer-1.0pre7/libmpcodecs/ad.c --- MPlayer-1.0pre7.orig/libmpcodecs/ad.c 2005-07-03 19:39:29.170492200 +0200 +++ MPlayer-1.0pre7/libmpcodecs/ad.c 2005-07-03 19:51:23.927832568 +0200 @@ -39,6 +39,7 @@ extern ad_functions_t mpcodecs_ad_qtaudio; extern ad_functions_t mpcodecs_ad_ra1428; extern ad_functions_t mpcodecs_ad_twin; +extern ad_functions_t mpcodecs_ad_libmusepack; ad_functions_t* mpcodecs_ad_drivers[] = { @@ -87,5 +88,8 @@ &mpcodecs_ad_libdv, #endif &mpcodecs_ad_ra1428, +#ifdef HAVE_MUSEPACK + &mpcodecs_ad_libmusepack, +#endif NULL }; diff -Naur MPlayer-1.0pre7.orig/libmpcodecs/ad_mpc.c MPlayer-1.0pre7/libmpcodecs/ad_mpc.c --- MPlayer-1.0pre7.orig/libmpcodecs/ad_mpc.c 1970-01-01 01:00:00.000000000 +0100 +++ MPlayer-1.0pre7/libmpcodecs/ad_mpc.c 2005-07-03 19:52:03.430827200 +0200 @@ -0,0 +1,178 @@ +/** + * Musepack audio files decoder for MPlayer + * by Reza Jelveh and + * Reimar Dffinger + * License: GPL + */ + +#include +#include +#include + +#include "config.h" +#include "ad_internal.h" +#include "../libaf/af_format.h" +#include "../libvo/fastmemcpy.h" + +static ad_info_t info = +{ + "MPC/MPEGPlus audio decoder", + "libmusepack", + "Reza Jelveh and Reimar Dffinger", + "", + "" +}; + +LIBAD_EXTERN(libmusepack) + +#include + +#define MAX_FRAMESIZE MPC_DECODER_BUFFER_LENGTH + +typedef struct context_s { + char *header; + int header_len; + sh_audio_t *sh; + uint32_t pos; + mpc_decoder decoder; +} context_t; + +/** + * \brief mpc_reader callback function for reading the header + */ +static mpc_int32_t cb_read(void *data, void *buf, mpc_int32_t size) { + context_t *d = (context_t *)data; + char *p = (char *)buf; + int s = size; + if (d->pos < d->header_len) { + if (s > d->header_len - d->pos) + s = d->header_len - d->pos; + memcpy(p, &d->header[d->pos], s); + } else + s = 0; + memset(&p[s], 0, size - s); + d->pos += size; + return size; +} + +/** + * \brief dummy mpc_reader callback function for seeking + */ +static mpc_bool_t cb_seek(void *data, mpc_int32_t offset ) { + context_t *d = (context_t *)data; + d->pos = offset; + return 1; +} + +/** + * \brief dummy mpc_reader callback function for getting stream position + */ +static mpc_int32_t cb_tell(void *data) { + context_t *d = (context_t *)data; + return d->pos; +} + +/** + * \brief dummy mpc_reader callback function for getting stream length + */ +static mpc_int32_t cb_get_size(void *data) { + return 1 << 30; +} + +/** + * \brief mpc_reader callback function, we cannot seek. + */ +static mpc_bool_t cb_canseek(void *data) { + return 0; +} + + +mpc_reader header_reader = { + .read = cb_read, .seek = cb_seek, .tell = cb_tell, + .get_size = cb_get_size, .canseek = cb_canseek +}; + +static int preinit(sh_audio_t *sh) { +// sh->audio_out_minsize = 2 * MPC_DECODER_BUFFER_LENGTH; + return 1; +} + +static void uninit(sh_audio_t *sh) { + if (sh->context) + free(sh->context); +} + +static int init(sh_audio_t *sh) { + mpc_streaminfo info; + context_t *cd = malloc(sizeof(context_t)); + + if (!sh->wf || (sh->wf->cbSize < 6 * 4)) { + mp_msg(MSGT_DECAUDIO, MSGL_FATAL, "Missing extradata!\n"); + return 0; + } + cd->header = (char *)sh->wf; + cd->header = &cd->header[sizeof(WAVEFORMATEX)]; + cd->header_len = sh->wf->cbSize; + cd->sh = sh; + cd->pos = 0; + sh->context = (char *)cd; + + /* read file's streaminfo data */ + mpc_streaminfo_init(&info); + header_reader.data = cd; + if (mpc_streaminfo_read(&info, &header_reader) != ERROR_CODE_OK) { + mp_msg(MSGT_DECAUDIO, MSGL_FATAL, "Not a valid musepack file.\n"); + return 0; + } + sh->i_bps = info.average_bitrate / 8; + sh->channels = info.channels; + sh->samplerate = info.sample_freq; + sh->samplesize = 4; + sh->sample_format = +#if MPC_SAMPLE_FORMAT == float + AF_FORMAT_FLOAT_NE; +#elif MPC_SAMPLE_FORMAT == mpc_int32_t + AF_FORMAT_S32_NE; +#else + #error musepack lib must use either float or mpc_int32_t sample format +#endif + + mpc_decoder_setup(&cd->decoder, NULL); + mpc_decoder_set_streaminfo(&cd->decoder, &info); + return 1; +} + +// FIXME: minlen is currently ignored +static int decode_audio(sh_audio_t *sh, unsigned char *buf, + int minlen, int maxlen) { + int status, len; + MPC_SAMPLE_FORMAT *sample_buffer = (MPC_SAMPLE_FORMAT *)buf; + mpc_uint32_t *packet = NULL; + + context_t *cd = (context_t *) sh->context; + if (maxlen < MPC_DECODER_BUFFER_LENGTH) { + mp_msg(MSGT_DECAUDIO, MSGL_ERR, "maxlen too small in decode_audio\n"); + return -1; + } + len = ds_get_packet(sh->ds, (unsigned char **)&packet); + if (len <= 0) return -1; + status = mpc_decoder_decode_frame(&cd->decoder, packet, len, sample_buffer); + if (status == -1) // decode error + mp_msg(MSGT_DECAUDIO, MSGL_FATAL, "Error decoding file.\n"); + if (status <= 0) // error or EOF + return -1; + + status = MPC_FRAME_LENGTH * sh->channels; // one sample per channel +#if MPC_SAMPLE_FORMAT == float || MPC_SAMPLE_FORMAT == mpc_int32_t + status *= 4; +#else + // should not happen + status *= 2; +#endif + return status; +} + +static int control(sh_audio_t *sh, int cmd, void* arg, ...) { + return CONTROL_UNKNOWN; +} + diff -Naur MPlayer-1.0pre7.orig/libmpcodecs/Makefile MPlayer-1.0pre7/libmpcodecs/Makefile --- MPlayer-1.0pre7.orig/libmpcodecs/Makefile 2005-07-03 19:39:29.170492200 +0200 +++ MPlayer-1.0pre7/libmpcodecs/Makefile 2005-07-03 19:53:20.605094928 +0200 @@ -9,6 +9,10 @@ AUDIO_SRCS_OPT=ad_acm.c ad_dshow.c ad_dmo.c ad_qtaudio.c ad_ffmpeg.c ad_faad.c ad_libvorbis.c ad_libmad.c ad_realaud.c ad_libdv.c ad_twin.c AUDIO_SRCS=dec_audio.c ad.c $(AUDIO_SRCS_LIB) $(AUDIO_SRCS_NAT) $(AUDIO_SRCS_OPT) +ifeq ($(MUSEPACK),yes) +AUDIO_SRCS += ad_mpc.c +endif + VIDEO_SRCS_LIB=vd_libmpeg2.c vd_nuv.c vd_lzo.c VIDEO_SRCS_NAT=vd_null.c vd_raw.c vd_hmblck.c vd_mpegpes.c vd_mtga.c vd_sgi.c VIDEO_SRCS_OPT=vd_realvid.c vd_ffmpeg.c vd_dshow.c vd_dmo.c vd_vfw.c vd_vfwex.c vd_odivx.c vd_divx4.c vd_zrmjpeg.c vd_xanim.c vd_xvid.c vd_xvid4.c vd_libdv.c vd_qtvideo.c vd_theora.c diff -Naur MPlayer-1.0pre7.orig/libmpdemux/demuxer.c MPlayer-1.0pre7/libmpdemux/demuxer.c --- MPlayer-1.0pre7.orig/libmpdemux/demuxer.c 2005-07-03 19:39:29.203487184 +0200 +++ MPlayer-1.0pre7/libmpdemux/demuxer.c 2005-07-03 19:55:57.362264216 +0200 @@ -209,6 +209,8 @@ #endif case DEMUXER_TYPE_AUDIO: demux_close_audio(demuxer); break; + case DEMUXER_TYPE_MPC: + demux_close_mpc(demuxer); break; #ifdef HAVE_OGGVORBIS case DEMUXER_TYPE_OGG: demux_close_ogg(demuxer); break; @@ -381,6 +383,7 @@ #endif case DEMUXER_TYPE_Y4M: return demux_y4m_fill_buffer(demux); case DEMUXER_TYPE_AUDIO: return demux_audio_fill_buffer(ds); + case DEMUXER_TYPE_MPC: return demux_mpc_fill_buffer(ds); #ifdef HAVE_XMMS case DEMUXER_TYPE_XMMS: return demux_xmms_fill_buffer(demux,ds); #endif @@ -1138,6 +1141,17 @@ demuxer = NULL; } } +//=============== Try to open as musepack file: ================= +if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_MPC){ + demuxer=new_demuxer(stream,DEMUXER_TYPE_MPC,audio_id,video_id,dvdsub_id); + if(demux_mpc_open(demuxer)){ + mp_msg(MSGT_DEMUXER,MSGL_INFO,MSGTR_Detected_XXX_FileFormat, "MPC"); + file_format=DEMUXER_TYPE_MPC; + } else { + free_demuxer(demuxer); + demuxer = NULL; + } +} #ifdef HAVE_XMMS //=============== Try to open as XMMS file: ================= if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_XMMS){ @@ -1594,6 +1608,8 @@ demux_seek_nuv(demuxer,rel_seek_secs,flags); break; case DEMUXER_TYPE_AUDIO: demux_audio_seek(demuxer,rel_seek_secs,flags); break; + case DEMUXER_TYPE_MPC: + demux_mpc_seek(demuxer,rel_seek_secs,flags); break; case DEMUXER_TYPE_DEMUXERS: demux_demuxers_seek(demuxer,rel_seek_secs,flags); break; #ifdef HAVE_OGGVORBIS @@ -1715,6 +1731,8 @@ return demux_avi_control(demuxer,cmd,arg); case DEMUXER_TYPE_AUDIO: return demux_audio_control(demuxer,cmd,arg); + case DEMUXER_TYPE_MPC: + return demux_mpc_control(demuxer,cmd,arg); #ifdef HAVE_OGGVORBIS case DEMUXER_TYPE_OGG: return demux_ogg_control(demuxer,cmd,arg); diff -Naur MPlayer-1.0pre7.orig/libmpdemux/demuxer.h MPlayer-1.0pre7/libmpdemux/demuxer.h --- MPlayer-1.0pre7.orig/libmpdemux/demuxer.h 2005-07-03 19:39:29.203487184 +0200 +++ MPlayer-1.0pre7/libmpdemux/demuxer.h 2005-07-03 19:56:35.799420880 +0200 @@ -46,11 +46,12 @@ #define DEMUXER_TYPE_NSV 36 #define DEMUXER_TYPE_VQF 37 #define DEMUXER_TYPE_AVS 38 +#define DEMUXER_TYPE_MPC 39 // This should always match the higest demuxer type number. // Unless you want to disallow users to force the demuxer to some types #define DEMUXER_TYPE_MIN 0 -#define DEMUXER_TYPE_MAX 38 +#define DEMUXER_TYPE_MAX 39 #define DEMUXER_TYPE_DEMUXERS (1<<16) // A virtual demuxer type for the network code diff -Naur MPlayer-1.0pre7.orig/libmpdemux/demux_mpc.c MPlayer-1.0pre7/libmpdemux/demux_mpc.c --- MPlayer-1.0pre7.orig/libmpdemux/demux_mpc.c 1970-01-01 01:00:00.000000000 +0100 +++ MPlayer-1.0pre7/libmpdemux/demux_mpc.c 2005-07-03 19:56:59.326844168 +0200 @@ -0,0 +1,145 @@ + +#include "config.h" + +#include +#include +#include +#include "mp_msg.h" +#include "bswap.h" +#include "stream.h" +#include "demuxer.h" +#include "stheader.h" + + +#define HDR_SIZE (6 * 4) + +typedef struct da_priv { + float last_pts; + uint32_t dword; + int pos; +} da_priv_t; + +extern void free_sh_audio(sh_audio_t* sh); + +static uint32_t get_bits(da_priv_t* priv, stream_t* s, int bits) { + uint32_t out = priv->dword; + uint32_t mask = (1 << bits) - 1; + priv->pos += bits; + if (priv->pos < 32) { + out >>= (32 - priv->pos); + } + else { + stream_read(s, (void *)&priv->dword, 4); + le2me_32(priv->dword); + priv->pos -= 32; + if (priv->pos) { + out <<= priv->pos; + out |= priv->dword >> (32 - priv->pos); + } + } + return out & mask; +} + +int demux_mpc_open(demuxer_t* demuxer) { + stream_t *s = demuxer->stream; + sh_audio_t* sh_audio; + uint8_t hdr[HDR_SIZE]; + da_priv_t* priv; + int i; + + if (stream_read(s, hdr, HDR_SIZE) != HDR_SIZE) + return 0; + for (i = 0; i < 30000 && !s->eof; i++) { + if (hdr[0] == 'M' && hdr[1] == 'P' && hdr[2] == '+') + break; + memmove(hdr, &hdr[1], HDR_SIZE - 1); + stream_read(s, &hdr[HDR_SIZE - 1], 1); + } + + if (hdr[0] != 'M' || hdr[1] != 'P' || hdr[2] != '+') + return 0; + + sh_audio = new_sh_audio(demuxer,0); + + { + char *wf = (char *)calloc(1, sizeof(WAVEFORMATEX) + HDR_SIZE); + char *header = &wf[sizeof(WAVEFORMATEX)]; + const int freqs[4] = {44100, 48000, 37800, 32000}; + sh_audio->format = mmioFOURCC('M', 'P', 'C', ' '); + memcpy(header, hdr, HDR_SIZE); + sh_audio->wf = (WAVEFORMATEX *)wf; + sh_audio->wf->wFormatTag = sh_audio->format; + sh_audio->wf->nChannels = 2; + sh_audio->wf->nSamplesPerSec = freqs[header[10] & 3]; + sh_audio->wf->nBlockAlign = 32 * 36; + sh_audio->wf->wBitsPerSample = 16; + sh_audio->wf->nAvgBytesPerSec = 128 * 1024; // dummy to make mencoder not hang + sh_audio->wf->cbSize = HDR_SIZE; + demuxer->movi_start = stream_tell(s); + demuxer->movi_end = s->end_pos; + } + + priv = (da_priv_t *)malloc(sizeof(da_priv_t)); + priv->last_pts = -1; + priv->dword = 0; + priv->pos = 0; + stream_read(s, (void *)&priv->dword, 4); + priv->pos = 8; + demuxer->priv = priv; + demuxer->audio->id = 0; + demuxer->audio->sh = sh_audio; + sh_audio->ds = demuxer->audio; + sh_audio->samplerate = sh_audio->wf->nSamplesPerSec; + sh_audio->i_bps = sh_audio->wf->nAvgBytesPerSec; + sh_audio->audio.dwSampleSize = 0; + sh_audio->audio.dwScale = 32 * 36; + sh_audio->audio.dwRate = sh_audio->samplerate; + + return 1; +} + +int demux_mpc_fill_buffer(demux_stream_t *ds) { + int l; + int bit_len; + demux_packet_t* dp; + sh_audio_t* sh_audio = ds->sh; + demuxer_t* demux = ds->demuxer; + da_priv_t* priv = demux->priv; + stream_t* s = demux->stream; + sh_audio = ds->sh; + + if (s->eof) + return 0; + + bit_len = get_bits(priv, s, 20); + dp = new_demux_packet((bit_len + 7) / 8); + for (l = 0; l < (bit_len / 8); l++) + dp->buffer[l] = get_bits(priv, s, 8); + bit_len %= 8; + if (bit_len) + dp->buffer[l] = get_bits(priv, s, bit_len) << (8 - bit_len); + if (priv->last_pts < 0) + priv->last_pts = 0; + else + priv->last_pts += (36 * 32) / (float)sh_audio->samplerate; + ds->pts = priv->last_pts - (ds_tell_pts(demux->audio) - + sh_audio->a_in_buffer_len)/(float)sh_audio->i_bps; + ds_add_packet(ds, dp); + return 1; +} + +void demux_mpc_seek(demuxer_t *demuxer,float rel_seek_secs,int flags){ +// TODO +} + +void demux_close_mpc(demuxer_t* demuxer) { + da_priv_t* priv = demuxer->priv; + + if(!priv) + return; + free(priv); +} + +int demux_mpc_control(demuxer_t *demuxer,int cmd, void *arg){ + return DEMUXER_CTRL_NOTIMPL; +} diff -Naur MPlayer-1.0pre7.orig/libmpdemux/Makefile MPlayer-1.0pre7/libmpdemux/Makefile --- MPlayer-1.0pre7.orig/libmpdemux/Makefile 2005-07-03 19:39:29.192488856 +0200 +++ MPlayer-1.0pre7/libmpdemux/Makefile 2005-07-03 19:57:25.530860552 +0200 @@ -3,7 +3,7 @@ include ../config.mak -SRCS = mp3_hdr.c video.c mpeg_hdr.c cache2.c asfheader.c aviheader.c aviprint.c muxer.c muxer_avi.c muxer_mpeg.c demux_asf.c demux_avi.c demux_mov.c parse_mp4.c demux_mpg.c demux_ty.c demux_ty_osd.c demux_pva.c demux_viv.c demuxer.c dvdnav_stream.c open.c parse_es.c stream.c stream_file.c stream_netstream.c stream_vcd.c stream_null.c stream_ftp.c stream_vstream.c tv.c tvi_dummy.c tvi_v4l.c tvi_v4l2.c tvi_bsdbt848.c frequencies.c demux_fli.c demux_real.c demux_y4m.c yuv4mpeg.c yuv4mpeg_ratio.c demux_nuv.c demux_film.c demux_roq.c mf.c demux_mf.c demux_audio.c demux_demuxers.c demux_ogg.c cdda.c demux_rawaudio.c demux_rawvideo.c cddb.c cdinfo.c demux_rawdv.c ai_alsa.c ai_alsa1x.c ai_oss.c audio_in.c demux_smjpeg.c demux_lmlm4.c cue_read.c extension.c demux_gif.c demux_ts.c demux_realaud.c url.c muxer_rawvideo.c demux_lavf.c demux_nsv.c demux_vqf.c +SRCS = mp3_hdr.c video.c mpeg_hdr.c cache2.c asfheader.c aviheader.c aviprint.c muxer.c muxer_avi.c muxer_mpeg.c demux_asf.c demux_avi.c demux_mov.c demux_mpc.c parse_mp4.c demux_mpg.c demux_ty.c demux_ty_osd.c demux_pva.c demux_viv.c demuxer.c dvdnav_stream.c open.c parse_es.c stream.c stream_file.c stream_netstream.c stream_vcd.c stream_null.c stream_ftp.c stream_vstream.c tv.c tvi_dummy.c tvi_v4l.c tvi_v4l2.c tvi_bsdbt848.c frequencies.c demux_fli.c demux_real.c demux_y4m.c yuv4mpeg.c yuv4mpeg_ratio.c demux_nuv.c demux_film.c demux_roq.c mf.c demux_mf.c demux_audio.c demux_demuxers.c demux_ogg.c cdda.c demux_rawaudio.c demux_rawvideo.c cddb.c cdinfo.c demux_rawdv.c ai_alsa.c ai_alsa1x.c ai_oss.c audio_in.c demux_smjpeg.c demux_lmlm4.c cue_read.c extension.c demux_gif.c demux_ts.c demux_realaud.c url.c muxer_rawvideo.c demux_lavf.c demux_nsv.c demux_vqf.c ifeq ($(XMMS_PLUGINS),yes) SRCS += demux_xmms.c endif diff -Naur MPlayer-1.0pre7.orig/Makefile MPlayer-1.0pre7/Makefile --- MPlayer-1.0pre7.orig/Makefile 2005-07-03 19:39:28.925529440 +0200 +++ MPlayer-1.0pre7/Makefile 2005-07-03 19:57:56.046221512 +0200 @@ -32,7 +32,7 @@ VO_LIBS = $(AA_LIB) $(X_LIB) $(SDL_LIB) $(GGI_LIB) $(MP1E_LIB) $(MLIB_LIB) $(SVGA_LIB) $(DIRECTFB_LIB) $(CACA_LIB) AO_LIBS = $(ARTS_LIB) $(ESD_LIB) $(JACK_LIB) $(NAS_LIB) $(SGIAUDIO_LIB) $(POLYP_LIB) -CODEC_LIBS = $(AV_LIB) $(FAME_LIB) $(MAD_LIB) $(VORBIS_LIB) $(THEORA_LIB) $(FAAD_LIB) $(LIBLZO_LIB) $(DECORE_LIB) $(XVID_LIB) $(DTS_LIB) $(PNG_LIB) $(Z_LIB) $(JPEG_LIB) $(ALSA_LIB) $(XMMS_LIB) $(X264_LIB) +CODEC_LIBS = $(AV_LIB) $(FAME_LIB) $(MAD_LIB) $(VORBIS_LIB) $(THEORA_LIB) $(FAAD_LIB) $(LIBLZO_LIB) $(DECORE_LIB) $(XVID_LIB) $(DTS_LIB) $(PNG_LIB) $(Z_LIB) $(JPEG_LIB) $(ALSA_LIB) $(XMMS_LIB) $(X264_LIB) $(MUSEPACK_LIB) COMMON_LIBS = libmpcodecs/libmpcodecs.a $(W32_LIB) $(DS_LIB) libaf/libaf.a libmpdemux/libmpdemux.a input/libinput.a postproc/libswscale.a osdep/libosdep.a $(DVDREAD_LIB) $(CODEC_LIBS) $(FREETYPE_LIB) $(TERMCAP_LIB) $(CDPARANOIA_LIB) $(MPLAYER_NETWORK_LIB) $(WIN32_LIB) $(GIF_LIB) $(MACOSX_FRAMEWORKS) $(SMBSUPPORT_LIB) $(FRIBIDI_LIB) $(FONTCONFIG_LIB) $(ENCA_LIB) CFLAGS = $(OPTFLAGS) -I. $(FREETYPE_INC) $(EXTRA_INC) $(CDPARANOIA_INC) $(SDL_INC) $(X11_INC) $(FRIBIDI_INC) $(DVB_INC) $(XVID_INC) $(FONTCONFIG_INC) $(CACA_INC) # -Wall geexbox-0.98.7/packages/MPlayer/patches/96_slave-set-option.diff0000644000175000017500000000365210335100767023431 0ustar aurelaureldiff -Nur MPlayer-1.0pre7.orig/input/input.c MPlayer-1.0pre7/input/input.c --- MPlayer-1.0pre7.orig/input/input.c Tue Jul 26 14:37:42 2005 +++ MPlayer-1.0pre7/input/input.c Tue Jul 26 14:39:30 2005 @@ -83,6 +83,7 @@ { MP_CMD_GET_PERCENT_POS, "get_percent_pos", 0, { {-1,{0}} } }, { MP_CMD_GET_TIME_LENGTH, "get_time_length", 0, { {-1,{0}} } }, { MP_CMD_SWITCH_AUDIO, "switch_audio", 0, { {-1,{0}} } }, + { MP_CMD_SET_OPTION, "set_option", 2, { { MP_CMD_ARG_STRING, {0}}, { MP_CMD_ARG_STRING, {0}}, { MP_CMD_ARG_STRING, {0}}, {-1,{0}} } }, #ifdef USE_TV { MP_CMD_TV_STEP_CHANNEL, "tv_step_channel", 1, { { MP_CMD_ARG_INT ,{0}}, {-1,{0}} }}, { MP_CMD_TV_STEP_NORM, "tv_step_norm",0, { {-1,{0}} } }, diff -Nur MPlayer-1.0pre7.orig/input/input.h MPlayer-1.0pre7/input/input.h --- MPlayer-1.0pre7.orig/input/input.h Tue Jul 26 14:37:42 2005 +++ MPlayer-1.0pre7/input/input.h Tue Jul 26 14:39:53 2005 @@ -70,6 +70,8 @@ #define MP_CMD_DVD_PLAY 71 #define MP_CMD_CDDA_PLAY 72 +#define MP_CMD_SET_OPTION 90 + #define MP_CMD_GUI_EVENTS 5000 #define MP_CMD_GUI_LOADFILE 5001 #define MP_CMD_GUI_LOADSUBTITLE 5002 diff -Nur MPlayer-1.0pre7.orig/mplayer.c MPlayer-1.0pre7/mplayer.c --- MPlayer-1.0pre7.orig/mplayer.c Tue Jul 26 14:37:42 2005 +++ MPlayer-1.0pre7/mplayer.c Tue Jul 26 14:41:48 2005 @@ -2985,6 +2985,21 @@ } break; #endif + case MP_CMD_SET_OPTION: { + char *option = cmd->args[0].v.s, *value = cmd->args[1].v.s; + m_config_set_option(mconfig, option, value); + if (cmd->nargs==3 && !strcmp(cmd->args[2].v.s, "save")) { + char *buf; + size_t len; + len = strlen(option) + strlen(value) + sizeof("mp_set_option '' ''"); + if ((buf = (char*)malloc(len))) { + sprintf(buf, "mp_set_option '%s' '%s'", option, value); + system(buf); + free(buf); + } + } + } break; + case MP_CMD_GRAB_FRAMES : { grab_frames=2; } break; geexbox-0.98.7/packages/MPlayer/patches/97_menu-fribidi-flip-hebrew.diff0000644000175000017500000000677010335100767025001 0ustar aurelaureldiff -Naur MPlayer-1.0pre7.orig/cfg-mplayer.h MPlayer-1.0pre7/cfg-mplayer.h --- MPlayer-1.0pre7.orig/cfg-mplayer.h Thu Jul 28 14:13:11 2005 +++ MPlayer-1.0pre7/cfg-mplayer.h Thu Jul 28 14:15:52 2005 @@ -69,6 +69,11 @@ extern int menu_startup; extern int menu_utf8; extern int menu_unicode; +#ifdef USE_FRIBIDI +extern char *menu_fribidi_charset; +extern int menu_flip_hebrew; +extern int menu_fribidi_flip_commas; +#endif #endif #ifdef HAVE_ZR @@ -309,6 +314,13 @@ {"menu-startup", &menu_startup, CONF_TYPE_FLAG, CONF_GLOBAL, 0, 1, NULL}, {"menu-utf8", &menu_utf8, CONF_TYPE_FLAG, 0, 0, 1, NULL}, {"menu-unicode", &menu_unicode, CONF_TYPE_FLAG, 0, 0, 1, NULL}, +#ifdef USE_FRIBIDI + {"menu-fribidi-charset", &menu_fribidi_charset, CONF_TYPE_STRING, 0, 0, 0, NULL}, + {"menu-flip-hebrew", &menu_flip_hebrew, CONF_TYPE_FLAG, 0, 0, 1, NULL}, + {"menu-noflip-hebrew", &menu_flip_hebrew, CONF_TYPE_FLAG, 0, 1, 0, NULL}, + {"menu-flip-hebrew-commas", &menu_fribidi_flip_commas, CONF_TYPE_FLAG, 0, 1, 0, NULL}, + {"menu-noflip-hebrew-commas", &menu_fribidi_flip_commas, CONF_TYPE_FLAG, 0, 0, 1, NULL}, +#endif #else {"menu", "OSD menu support was not compiled in.\n", CONF_TYPE_PRINT,0, 0, 0, NULL}, #endif diff -Naur MPlayer-1.0pre7.orig/libmenu/menu.c MPlayer-1.0pre7/libmenu/menu.c --- MPlayer-1.0pre7.orig/libmenu/menu.c Thu Jul 28 13:39:31 2005 +++ MPlayer-1.0pre7/libmenu/menu.c Thu Jul 28 14:10:38 2005 @@ -332,6 +332,56 @@ } } +#ifdef USE_FRIBIDI +#include +char *menu_fribidi_charset = NULL; +int menu_flip_hebrew = 0; +int menu_fribidi_flip_commas = 0; + +char *menu_fribidi(char *txt) +{ + static int char_set_num = -1; + static FriBidiChar *logical, *visual; + static size_t buffer_size = 1024; + static char *outputstr; + + FriBidiCharType base; + fribidi_boolean log2vis; + size_t len; + + if (menu_flip_hebrew) { + len = strlen(txt); + if (char_set_num == -1) { + fribidi_set_mirroring (FRIBIDI_TRUE); + fribidi_set_reorder_nsm (FRIBIDI_FALSE); + if (menu_utf8 == 0) { + char_set_num = fribidi_parse_charset(menu_fribidi_charset ? menu_fribidi_charset : "ISO8859-8"); + } else { + char_set_num = fribidi_parse_charset("UTF-8"); + } + buffer_size = 1024 > (len+1) ? 1024 : (len+1); + logical = (FriBidiChar*) malloc(buffer_size); + visual = (FriBidiChar*) malloc(buffer_size); + outputstr = (char*) malloc(buffer_size); + } else if (len+1 > buffer_size) { + buffer_size = len+1; + logical = (FriBidiChar*) realloc(logical, buffer_size); + visual = (FriBidiChar*) realloc(visual, buffer_size); + outputstr = (char*) realloc(outputstr, buffer_size); + } + len = fribidi_charset_to_unicode (char_set_num, txt, len, logical); + base = menu_fribidi_flip_commas?FRIBIDI_TYPE_ON:FRIBIDI_TYPE_L; + log2vis = fribidi_log2vis (logical, len, &base, visual, NULL, NULL, NULL); + if (log2vis) { + len = fribidi_remove_bidi_marks (visual, len, NULL, NULL, NULL); + fribidi_unicode_to_charset (char_set_num, visual, len, outputstr); + return outputstr; + } + } + return txt; +} +#endif + void menu_draw_text(mp_image_t* mpi,char* txt, int x, int y) { draw_alpha_f draw_alpha = get_draw_alpha(mpi->imgfmt); int font; @@ -341,6 +391,9 @@ return; } +#ifdef USE_FRIBIDI + txt = menu_fribidi(txt); +#endif render_txt(txt); while (*txt) { @@ -372,6 +425,9 @@ return; } +#ifdef USE_FRIBIDI + txt = menu_fribidi(txt); +#endif render_txt(txt); if(x > mpi->w || y > mpi->h) geexbox-0.98.7/packages/MPlayer/patches/98_cdda-paranoia-bail.diff0000644000175000017500000000061110335100767023602 0ustar aurelaureldiff -Naur MPlayer-1.0pre7.orig/libmpdemux/cdda.c MPlayer-1.0pre7/libmpdemux/cdda.c --- MPlayer-1.0pre7.orig/libmpdemux/cdda.c Mon Jul 25 11:47:22 2005 +++ MPlayer-1.0pre7/libmpdemux/cdda.c Mon Jul 25 12:10:55 2005 @@ -282,6 +282,8 @@ int i; buf = paranoia_read(p->cdp,cdparanoia_callback); + if (!buf) + return 0; #ifdef WORDS_BIGENDIAN for(i=0;i/dev/null while true; do read CMD FILE < $FIFO case "$CMD" in cd) DIR=$FILE [ -d "$DIR" ] || DIR=${DIR%/[^/]*} ;; cp) [ -z "$DIR" ] && continue rw "$DIR" cp "$FILE" "$DIR" ro "$DIR" ;; rm) RM=$FILE ;; rmok) if [ "$FILE" = "$RM" ]; then rw "$FILE" rm "$FILE" ro "$FILE" fi RM= ;; exit) break; ;; esac done rm $FIFO geexbox-0.98.7/packages/MPlayer/scripts/mp_loader0000755000175000017500000000331610335100767020775 0ustar aurelaurel#!/bin/sh # MPlayer file loader : determines what to do with the chosen file # usage: mp_loader file_location key_binding cp_fifo=/var/cp_fifo mp_fifo=/var/mp_control filter_file=/etc/file_ext filter_playlist=/etc/list_ext filter_image=/etc/img_ext file=$1 key=$2 if test -e "$file"; then ext=`echo "$file" | sed 's/.*\.\([^\.]*\)/\1/'` escfile=`echo "$file" | sed 's%\(\\\\\)%\1\1%g' | sed 's%"%\\\\"%g'` # File Operations if [ "$key" = "d" ]; then echo "cd $file" > $cp_fifo elif [ "$key" = "c" ]; then echo "cp $file" > $cp_fifo elif [ "$key" = "r" ]; then echo "rm $file" > $cp_fifo elif [ "$key" = "o" ]; then echo "rmok $file" > $cp_fifo elif [ -d "$file" ]; then if [ "$key" = "p" ]; then playdir "$file" || view_img -a "$file" elif [ "$key" = "l" ]; then playdir "$file" || view_img -r "$file" fi elif [ -n "$ext" ]; then # File Playback if grep -iq "^$ext\$" $filter_file; then if [ "$key" = "p" ]; then playdir "$file" else echo "loadfile \"$escfile\" hide_menu" > $mp_fifo fi elif grep -iq "^$ext\$" $filter_playlist; then echo "loadlist \"$escfile\" hide_menu" > $mp_fifo elif grep -iq "^$ext\$" $filter_image; then if [ "$key" = "p" ]; then view_img -a "$file" elif [ "$key" = "l" ]; then view_img -r "$file" else view_img "$file" fi else # Extension isn't supported in our extension file but might be # playable as well, let's MPlayer figure it out ... echo "loadfile \"$escfile\" hide_menu" > $mp_fifo fi else # File do not have extension, try to play it aswell ... echo "loadfile \"$escfile\" hide_menu" > $mp_fifo fi fi geexbox-0.98.7/packages/MPlayer/scripts/mp_set_option0000755000175000017500000000047510335100767021715 0ustar aurelaurel#!/bin/sh file=/etc/mplayer/mplayer.conf option=$1 value=$2 if grep -q "^$option=" $file; then if [ "$3" = "concat" ] && ! grep -q "^$option=\$" $file; then sed -i "s|^\($option=.*[^,]\).*|\1,$value|" $file else sed -i "s|^$option=.*|$option=$value|" $file fi else echo "$option=$value" >> $file fi geexbox-0.98.7/packages/MPlayer/scripts/mp_wrapper0000755000175000017500000000014610335100767021205 0ustar aurelaurel#!/bin/sh mplayer /usr/share/mplayer/background.avi -loop 0 >/dev/null 2>&1 echo $? > /tmp/mp_result geexbox-0.98.7/packages/MPlayer/scripts/playdir0000755000175000017500000000055410335100767020500 0ustar aurelaurel#!/bin/sh DIR=$1 [ -d "$DIR" ] || DIR=${DIR%/[^/]*} for i in `cat /etc/file_ext`; do if [ -z "$EXTS" ]; then EXTS="$i" else EXTS="$EXTS\|$i" fi done find "$1" | grep -v /GEEXBOX/ | grep -i "\.\($EXTS\)\$" | sort > /tmp/playlist.pls if [ -s /tmp/playlist.pls ]; then echo 'loadlist /tmp/playlist.pls hide_menu' > /var/mp_control else exit 1 fi geexbox-0.98.7/packages/MPlayer/unpack0000755000175000017500000000147610335100767016632 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain INPUT_CONF=`ls -d $BUILD/$1*/etc/input.conf` sed -i 's/.*vo_fullscreen.*//' $INPUT_CONF echo "" >> $INPUT_CONF echo "m menu hide" >> $INPUT_CONF echo "; menu hide" >> $INPUT_CONF echo "a quit" >> $INPUT_CONF echo "s run /usr/bin/tvswitch" >> $INPUT_CONF echo "k halt" >> $INPUT_CONF echo "y play_dvd" >> $INPUT_CONF echo "c mute" >> $INPUT_CONF echo "f pt_step -1" >> $INPUT_CONF echo "g pt_step 1" >> $INPUT_CONF sed -i 's/.*JOY_BTN.*//' $INPUT_CONF echo "" >> $INPUT_CONF echo "JOY_BTN1 menu hide" >> $INPUT_CONF echo "JOY_BTN2 pause" >> $INPUT_CONF echo "JOY_BTN3 osd" >> $INPUT_CONF echo "JOY_BTN4 mute" >> $INPUT_CONF echo "JOY_BTN5 volume -1" >> $INPUT_CONF echo "JOY_BTN6 volume 1" >> $INPUT_CONF sed -i 's/\(cc_check -lpthread\) && $TMPO/\1/' $BUILD/$1*/configure geexbox-0.98.7/packages/MPlayer/url0000644000175000017500000000010210335100767016131 0ustar aurelaurelhttp://www2.mplayerhq.hu/MPlayer/releases/MPlayer-1.0pre7.tar.bz2 geexbox-0.98.7/packages/alsa/0000755000175000017500000000000010335100767014762 5ustar aurelaurelgeexbox-0.98.7/packages/alsa/build0000755000175000017500000000011710335100767016006 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build alsa-lib $SCRIPTS/build alsa-utils geexbox-0.98.7/packages/alsa/config/0000755000175000017500000000000010335100767016227 5ustar aurelaurelgeexbox-0.98.7/packages/alsa/config/audio0000644000175000017500000000070210335100767017252 0ustar aurelaurel# Soundcard Configuration File # Soundcard's ID (0 for first card, 1 for second, ...) ALSA_CARD="0" # Output mode (SPDIF or analog) SOUNDCARD_MODE="analog" # AC3 decoder mode (hardware or software) # note: in analog mode this option is ignored and defaults to software. AC3_DECODER="hardware" # Playback channels # 2 - Stereo # 4 - Surround # 6 - Full 5.1 # note: in SPDIF and hardware AC3 decoder mode this option is ignored. CHANNELS="2" geexbox-0.98.7/packages/alsa/install0000755000175000017500000000017610335100767016362 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/install alsa-lib $SCRIPTS/install alsa-utils cp $PACKAGES/$1/config/audio $INSTALL/etc geexbox-0.98.7/packages/alsa-lib/0000755000175000017500000000000010335100767015526 5ustar aurelaurelgeexbox-0.98.7/packages/alsa-lib/build0000755000175000017500000000101510335100767016550 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain CFLAGS="$CFLAGS -fPIC -DPIC" cd $BUILD/$1* ./configure --host=$TARGET_NAME \ --build=$HOST_NAME \ --prefix=$LIB_PREFIX \ --datadir=/usr/share \ --enable-static \ --enable-shared \ --with-debug=no \ --with-versioned=no \ --disable-dependency-tracking sed -i 's/.*PKGLIBDIR.*/#define PKGLIBDIR ""/' include/config.h make make -C include install-data make -C src install-exec geexbox-0.98.7/packages/alsa-lib/config/0000755000175000017500000000000010335100767016773 5ustar aurelaurelgeexbox-0.98.7/packages/alsa-lib/config/PMac.conf0000644000175000017500000000023010335100767020455 0ustar aurelaurel# configuration for PMac PMac.pcm.front.0 { @args [ CARD ] @args.CARD { type string } type hw card $CARD device 0 } geexbox-0.98.7/packages/alsa-lib/install0000755000175000017500000000145010335100767017122 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build alsa-utils $SCRIPTS/build MPlayer SO=`ls -d $BUILD/$1*`/libasound.so.2 libstrip $SO $BUILD/$1*/src/.libs/libasound.a "$BUILD/alsa-utils*/amixer/amixer $BUILD/MPlayer*/mplayer" "" "_snd_pcm_hw_open _snd_pcm_plug_open _snd_pcm_hooks_open _snd_pcm_asym_open _snd_pcm_softvol_open" mkdir -p $INSTALL/usr/lib cp $SO $INSTALL/usr/lib mkdir -p $INSTALL/usr/share/alsa sed 's%.*~/\.asoundrc.*%%' $BUILD/$1*/src/conf/alsa.conf > $INSTALL/usr/share/alsa/alsa.conf cp -rf $BUILD/$1*/src/conf/cards $INSTALL/usr/share/alsa/ cp -rf $BUILD/$1*/src/conf/pcm $INSTALL/usr/share/alsa/ rm -f $INSTALL/usr/share/alsa/cards/Makefile* rm -f $INSTALL/usr/share/alsa/pcm/Makefile* if [ "$TARGET_ARCH" = ppc ]; then cp $PACKAGES/$1/config/PMac.conf $INSTALL/usr/share/alsa/cards fi geexbox-0.98.7/packages/alsa-lib/patches/0000755000175000017500000000000010335100767017155 5ustar aurelaurelgeexbox-0.98.7/packages/alsa-lib/patches/10_wordexp.diff0000644000175000017500000000645410335100767022010 0ustar aurelaureldiff -Nur alsa-lib-1.0.9.orig/src/alisp/alisp.c alsa-lib-1.0.9/src/alisp/alisp.c --- alsa-lib-1.0.9.orig/src/alisp/alisp.c Fri May 27 20:39:08 2005 +++ alsa-lib-1.0.9/src/alisp/alisp.c Fri May 27 20:39:27 2005 @@ -30,7 +30,6 @@ #include #include #include -#include #define alisp_seq_iterator alisp_object diff -Nur alsa-lib-1.0.9.orig/src/conf.c alsa-lib-1.0.9/src/conf.c --- alsa-lib-1.0.9.orig/src/conf.c Fri May 27 20:39:08 2005 +++ alsa-lib-1.0.9/src/conf.c Fri May 27 20:39:27 2005 @@ -415,7 +415,6 @@ #include -#include #include #include #include diff -Nur alsa-lib-1.0.9.orig/src/names.c alsa-lib-1.0.9/src/names.c --- alsa-lib-1.0.9.orig/src/names.c Fri May 27 20:39:08 2005 +++ alsa-lib-1.0.9/src/names.c Fri May 27 20:39:58 2005 @@ -31,7 +31,6 @@ */ #include -#include #include #include #include diff -Nur alsa-lib-1.0.9.orig/src/pcm/pcm_ladspa.c alsa-lib-1.0.9/src/pcm/pcm_ladspa.c --- alsa-lib-1.0.9.orig/src/pcm/pcm_ladspa.c Fri May 27 20:39:08 2005 +++ alsa-lib-1.0.9/src/pcm/pcm_ladspa.c Fri May 27 20:39:27 2005 @@ -28,7 +28,11 @@ #include #include +#ifdef HAS_WORDEXP #include +#else +#include +#endif #include "pcm_local.h" #include "pcm_plugin.h" @@ -794,13 +798,18 @@ { const char *c; size_t l; +#ifdef HAS_WORDEXP wordexp_t we; +#else + glob_t globbuf; +#endif int err; for (c = path; (l = strcspn(c, ": ")) > 0; ) { char name[l + 1]; memcpy(name, c, l); name[l] = 0; +#ifdef HAS_WORDEXP err = wordexp(name, &we, WRDE_NOCMD); switch (err) { case WRDE_NOSPACE: @@ -814,6 +823,21 @@ } err = snd_pcm_ladspa_check_dir(plugin, we.we_wordv[0], label, ladspa_id); wordfree(&we); +#else + err = glob(name, 0, NULL, &globbuf); + switch (err) { + case GLOB_NOSPACE: + return -ENOMEM; + case 0: + if (globbuf.gl_pathc == 1) + break; + /* Fall through */ + default: + return -EINVAL; + } + err = snd_pcm_ladspa_check_dir(plugin, globbuf.gl_pathv[0], label, ladspa_id); + globfree(&globbuf); +#endif if (err < 0) return err; if (err > 0) diff -Nur alsa-lib-1.0.9.orig/src/userfile.c alsa-lib-1.0.9/src/userfile.c --- alsa-lib-1.0.9.orig/src/userfile.c Fri May 27 20:39:08 2005 +++ alsa-lib-1.0.9/src/userfile.c Fri May 27 20:39:27 2005 @@ -20,7 +20,11 @@ #include #include +#ifdef HAS_WORDEXP #include +#else +#include +#endif #include /** @@ -34,10 +38,15 @@ */ int snd_user_file(const char *file, char **result) { +#ifdef HAS_WORDEXP wordexp_t we; +#else + glob_t globbuf; +#endif int err; assert(file && result); +#ifdef HAS_WORDEXP err = wordexp(file, &we, WRDE_NOCMD); switch (err) { case WRDE_NOSPACE: @@ -51,8 +60,24 @@ return -EINVAL; } *result = strdup(we.we_wordv[0]); + wordfree(&we); +#else + err = glob(file, 0, NULL, &globbuf); + switch (err) { + case GLOB_NOSPACE: + return -ENOMEM; + case 0: + if (globbuf.gl_pathc == 1) + break; + /* Fall through */ + default: + globfree(&globbuf); + return -EINVAL; + } + *result = strdup(globbuf.gl_pathv[0]); + globfree(&globbuf); +#endif if (*result == NULL) return -ENOMEM; - wordfree(&we); return 0; } geexbox-0.98.7/packages/alsa-lib/patches/20_reduce.diff0000644000175000017500000000201710335100767021557 0ustar aurelaureldiff -Naur alsa-lib-1.0.4.orig/include/error.h alsa-lib-1.0.4/include/error.h --- alsa-lib-1.0.4.orig/include/error.h 2004-04-27 00:16:40.000000000 +0200 +++ alsa-lib-1.0.4/include/error.h 2004-04-27 00:19:31.000000000 +0200 @@ -61,11 +61,11 @@ extern int snd_lib_error_set_handler(snd_lib_error_handler_t handler); #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 95) -#define SNDERR(...) snd_lib_error(__FILE__, __LINE__, __FUNCTION__, 0, __VA_ARGS__) /**< Shows a sound error message. */ -#define SYSERR(...) snd_lib_error(__FILE__, __LINE__, __FUNCTION__, errno, __VA_ARGS__) /**< Shows a system error message (related to \c errno). */ +#define SNDERR(...) +#define SYSERR(...) #else -#define SNDERR(args...) snd_lib_error(__FILE__, __LINE__, __FUNCTION__, 0, ##args) /**< Shows a sound error message. */ -#define SYSERR(args...) snd_lib_error(__FILE__, __LINE__, __FUNCTION__, errno, ##args) /**< Shows a system error message (related to \c errno). */ +#define SNDERR(args...) +#define SYSERR(args...) #endif /** \} */ geexbox-0.98.7/packages/alsa-lib/url0000644000175000017500000000007610335100767016256 0ustar aurelaurelftp://ftp.alsa-project.org/pub/lib/alsa-lib-1.0.10rc3.tar.bz2 geexbox-0.98.7/packages/alsa-utils/0000755000175000017500000000000010335100767016120 5ustar aurelaurelgeexbox-0.98.7/packages/alsa-utils/build0000755000175000017500000000037310335100767017150 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain $SCRIPTS/build alsa-lib cd $BUILD/$1* ./configure --host=$TARGET_NAME \ --build=$HOST_NAME \ --disable-dependency-tracking \ --disable-alsamixer make -C amixer geexbox-0.98.7/packages/alsa-utils/init.d/0000755000175000017500000000000010335100767017305 5ustar aurelaurelgeexbox-0.98.7/packages/alsa-utils/init.d/40_alsa0000755000175000017500000000400310335100767020453 0ustar aurelaurel#!/bin/sh # # setup alsa (especially the mixer config) # # runlevels: geexbox, debug echo "### Setting up sound card ###" # include audio configuration file . /etc/audio echo "" > /etc/asound.conf mixer() { parm=${3:-on} amixer -c $ALSA_CARD sset "$1" "$2" $parm >/dev/null 2>&1 amixer -c $ALSA_CARD sset "$1" $parm >/dev/null 2>&1 } cmixer() { amixer -c $ALSA_CARD cset "name=$1" "$2" >/dev/null 2>&1 } # set alsa channel mode (6ch, 4ch, 2ch) cmixer 'Channel Mode' "${CHANNELS}ch" # set common mixer params mixer Master 90% mixer Front 75% mixer PCM 90% mixer Synth 90% mixer CD 90% mixer Line 90% mixer Aux 90% # mute mic mixer Mic 0% mute # ESS 1969 chipset has 2 PCM channels mixer PCM,1 90% # Trident/YMFPCI/emu10k1 mixer Wave 100% mixer Music 100% mixer AC97 100% mixer Surround 90% mixer 'Surround Digital' 90% mixer 'Wave Surround' 90% if [ "$CHANNELS" = 6 ]; then mixer 'Duplicate Front' 0% off else mixer 'Duplicate Front' 90% fi mixer 'Sigmatel 4-Speaker Stereo' 90% # CS4237B chipset: mixer 'Master Digital' 90% # DRC mixer 'Dynamic Range Compression' 90% # Envy24 chips with analog outs mixer DAC 90% mixer DAC,0 90% mixer DAC,1 90% # some notebooks use headphone instead of master mixer Headphone 90% mixer 'Internal Speaker' 75% mixer Playback 100% mixer Center 90% mixer LFE 90% mixer Center/LFE 90% # set SPDIF mixer params if [ "$SOUNDCARD_MODE" = SPDIF ]; then mixer 'IEC958' 90% mixer 'IEC958 Output' 90% amixer -c $ALSA_CARD sset 'IEC958 Playback AC97-SPSA' 0 >/dev/null 2>&1 mixer 'IEC958 Coaxial' 90% mixer 'IEC958 LiveDrive' 90% mixer 'IEC958 Optical Raw' 90% mixer 'SB Live Analog/Digital Output Jack' 90% mixer 'Audigy Analog/Digital Output Jack' 90% mixer 'SPDIF Out' 90% mixer 'SPDIF Front' 90% mixer 'SPDIF Rear' 90% mixer 'SPDIF Center/LFE' 90% else mixer 'SB Live Analog/Digital Output Jack' 0% off mixer 'Audigy Analog/Digital Output Jack' 0% off mixer 'SPDIF Out' 0% off mixer 'Analog Front' 90% mixer 'Analog Rear' 90% mixer 'Analog Center/LFE' 90% fi exit 0 geexbox-0.98.7/packages/alsa-utils/install0000755000175000017500000000014410335100767017513 0ustar aurelaurel#!/bin/sh . config/options mkdir -p $INSTALL/usr/bin cp $BUILD/$1*/amixer/amixer $INSTALL/usr/bin geexbox-0.98.7/packages/alsa-utils/url0000644000175000017500000000010210335100767016636 0ustar aurelaurelftp://ftp.alsa-project.org/pub/utils/alsa-utils-1.0.10rc3.tar.bz2 geexbox-0.98.7/packages/atitvout/0000755000175000017500000000000010335100767015721 5ustar aurelaurelgeexbox-0.98.7/packages/atitvout/arch0000644000175000017500000000000510335100767016554 0ustar aurelaureli386 geexbox-0.98.7/packages/atitvout/build0000755000175000017500000000022510335100767016745 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain $SCRIPTS/build lrmi make -C $BUILD/$1* \ CFLAGS="$CFLAGS" \ $1 $STRIP $BUILD/$1*/$1 geexbox-0.98.7/packages/atitvout/patches/0000755000175000017500000000000010335100767017350 5ustar aurelaurelgeexbox-0.98.7/packages/atitvout/patches/10_use-system-lrmi-fix.diff0000644000175000017500000000153010335100767024344 0ustar aurelaureltaken from: http://amd.colony.ee/pmwiki.php?pagename=Main.Atitvout atitvout-use-system-lrmi-fix.patch --- atitvout.orig/Makefile 2004-04-10 14:05:02.000000000 +0300 +++ atitvout/Makefile 2004-04-20 08:10:29.624321736 +0300 @@ -1,5 +1,5 @@ VERSION=0.4 -CFLAGS=-Wall -O2 -g -DVERSION=\"$(VERSION)\" -I./lrmi-0.6 +CFLAGS=-Wall -O2 -g -DVERSION=\"$(VERSION)\" OBJS=atitvout.o ati.o vbeinfo.o vbecall.o mach64.o radeon.o TAR=atitvout-$(VERSION).tar.gz BINARY=atitvout @@ -8,8 +8,7 @@ all: $(BINARY) $(BINARY): $(OBJS) - make -C lrmi-0.6 - $(CC) $(OBJS) lrmi-0.6/liblrmi.a -o $(BINARY) + $(CC) $(OBJS) -o $(BINARY) -llrmi strip: $(BINARY) @du -h $(BINARY) @@ -18,7 +17,6 @@ clean: rm -f *.o $(BINARY) *~ README index.html *.tar.gz test.out - make -C lrmi-0.6 clean install: strip install -g root -o root -m 555 $(BINARY) /usr/local/sbin geexbox-0.98.7/packages/atitvout/patches/20_models.diff0000664000175000017500000000174710335100767022001 0ustar aurelaureltaken from Fedora atitvout source rpm --- atitvout.orig/atitvout.c 2002-09-16 22:37:08.000000000 +0300 +++ atitvout/atitvout.c 2004-07-23 21:43:27.426417887 +0300 @@ -118,8 +118,20 @@ } else { if (strncmp(oem, "ATI MACH64", 10) == 0) radeon = 0; + /* From http://amd.colony.ee/pmwiki.php?pagename=Main.Atitvout */ + else if (strncmp(oem, "ATI MOBILE M3", 13) == 0) + radeon = 0; + /* From Ville S */ + else if (strcmp(oem, "ATI MOBILITY RADEON") == 0) + radeon = 0; + /* From NetBSD package */ + else if (strcmp(oem, "ATI MOBILITY RADEON 9000") == 0) + radeon = 0; else if (strncmp(oem, "ATI RAGE128", 11) == 0) radeon = 1; + /* From Ville S */ + else if (strcmp(oem, "ATI RV200") == 0) + radeon = 1; /* Note: Also it's possible to have here 'RG6' for first radeons */ else if (strstr(oem, "RADEON") != 0) radeon = 1; geexbox-0.98.7/packages/atitvout/url0000644000175000017500000000012310335100767016442 0ustar aurelaurelhttp://www.stud.uni-hamburg.de/users/lennart/projects/atitvout/atitvout-0.4.tar.gz geexbox-0.98.7/packages/autoplay/0000755000175000017500000000000010335100767015700 5ustar aurelaurelgeexbox-0.98.7/packages/autoplay/sources/0000755000175000017500000000000010335100767017363 5ustar aurelaurelgeexbox-0.98.7/packages/autoplay/sources/autoplay.c0000644000175000017500000003726610335100767021403 0ustar aurelaurel/* autoplay.c v0.0.5 */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifndef MNT_DETACH #define MNT_DETACH 0x00000002 /* Just detach from the tree */ #endif static char *xcd_exts[] = {"dat", NULL}; static char **exts; static char *playlist = NULL; static int playlist_len = 0; typedef struct _cd_drive { char *dev; char *mnt; int fd; int status; }*cd_drive; static char ** get_extensions (char *filename) { char **extensions, ext[32]; FILE *fp; int n = 1; if (filename == NULL) return NULL; fp = fopen (filename, "r"); if (fp == NULL) return NULL; extensions = (char **) malloc (sizeof (*extensions)); *extensions = NULL; while (fgets (ext, sizeof (ext), fp)) { char **l, *e; int s = strlen (ext); if (ext[s-1] == '\n') { ext[s-1] = '\0'; s--; } e = (char *) malloc (s + 1); extensions = (char **) realloc (extensions, ++n * sizeof (*extensions)); extensions = (char **) realloc (extensions, ++n * sizeof (*extensions)); strcpy (e, ext); for (l=extensions; *l; l++); *l++ = e; *l = NULL; } fclose (fp); return extensions; } static void free_extensions (char **extensions) { if (extensions != NULL) { char **l = extensions; while (*l) free (*l++); free (extensions); } } static char *fullname; static int fullname_maxlen; static int fullname_len; static void escape_playlist (const char *str, int second_level) { int is_playlist_str = (str == playlist); char *new_str; int new_len, len; if (!str) return; for (new_len = 0, len = 0; *str; str++) switch (*str) { case '\'': if (second_level) new_len+=6; case '\\': new_len++; default: new_len++; len++; break; } if (new_len == len && is_playlist_str) return; if (playlist_len < new_len + 1) { playlist_len = new_len + 1; playlist = (char *) realloc (playlist, playlist_len); if (is_playlist_str) str = &playlist[len]; } new_str = &playlist[new_len]; len++; /* for null character */ while (len--) switch (*str) { case '\'': if (second_level) { /* ' -> \'\\\'\' */ *new_str-- = '\''; *new_str-- = '\\'; /* \' */ *new_str-- = '\''; *new_str-- = '\\'; /* \' */ *new_str-- = '\\'; *new_str-- = '\\'; /* \\ */ } case '\\': *new_str-- = *str--; *new_str-- = '\\'; break; default: *new_str-- = *str--; break; } } static int is_playable (const struct dirent *dir) { char **str, *ext; struct stat st; if (*dir->d_name == '.') return 0; strcpy (fullname+fullname_len, dir->d_name); stat (fullname, &st); if (S_ISDIR(st.st_mode) && strcmp (dir->d_name, "GEEXBOX")) return 1; ext = strrchr (dir->d_name, '.'); if (ext++ == NULL) return 0; for (str=exts; *str; str++) if (!strcasecmp (ext, *str)) return 1; return 0; } static int build_playlist (char *dir, int fd) { struct dirent **namelist; int i, n, len, dirlen, count=0; struct stat st; if (dir) { dirlen = strlen (dir); if (dirlen + 2 > fullname_maxlen) { fullname = (char *) realloc (fullname, dirlen + 2); fullname_maxlen = dirlen + 2; } strcpy (fullname, dir); } strcat (fullname, "/"); fullname_len = dirlen = strlen (fullname); n = scandir (fullname, &namelist, is_playable, alphasort); if (n < 0) return 0; for (i=0; i fullname_maxlen) { fullname = (char *) realloc (fullname, len + 1); fullname_maxlen = len + 1; } strcpy (fullname+dirlen, namelist[i]->d_name); stat (fullname, &st); if (S_ISDIR(st.st_mode)) count += build_playlist (NULL, fd); else { if (fd == -1) { if (playlist == NULL) { playlist_len = strlen (fullname) + 1; playlist = (char *) malloc (playlist_len); } else if (playlist_len < strlen (fullname) + 1) { playlist_len = strlen (fullname) + 1; playlist = (char *) realloc (playlist, playlist_len); } strcpy (playlist, fullname); } else { write (fd, fullname, len); write (fd, "\n", 1); } count++; } free (namelist[i]); } free (namelist); return count; } static int open_device(const char *dev) { int fd = open(dev, O_RDONLY | O_NONBLOCK); if (fd >= 0) ioctl(fd, CDROM_LOCKDOOR, 0); return fd; } static int mntlock_fd = -1; static int mntlock(void) { if (mntlock_fd != -1 || (mntlock_fd = open("/tmp/mntlock", O_RDONLY | O_CREAT)) != -1) { if (!flock(mntlock_fd, LOCK_EX)) return 1; close(mntlock_fd); /* locking failed, try to reopen file next time */ mntlock_fd = -1; } return 0; } static void mntunlock(void) { if (flock(mntlock_fd, LOCK_UN)) { /* freeing lock failed, close fd instand */ close(mntlock_fd); mntlock_fd = -1; } } static int is_cdrom_mounted(cd_drive drive) { char buf[PATH_MAX]; size_t devlen; FILE *f; devlen = strlen(drive->dev); f = fopen("/proc/mounts", "r"); if (f) { while (!feof(f)) { if (fgets(buf, sizeof(buf), f) && !strncmp(buf, drive->dev, devlen) && buf[devlen] == ' ') { fclose(f); return 1; } } fclose(f); } return 0; } static void umount_cdrom(cd_drive drive) { if (umount2(drive->mnt, MNT_DETACH) < 0 && errno == EBUSY) { do { usleep(1000000); } while (umount(drive->mnt) < 0 && errno == EBUSY); } } static char **fstype_list = NULL; static void load_proc_filesystems(void) { char buf[255], *fstype; size_t n = 0, len; FILE *f; f = fopen("/proc/filesystems", "r"); if (f) { while (!feof(f)) { if (fgets(buf, sizeof(buf), f) && buf[0] == '\t') { len = strlen(buf); if (buf[len-1] == '\n') buf[--len] = '\0'; fstype = (char*) malloc(len); strcpy(fstype, &buf[1]); // skip the first tab char fstype_list = (char **) realloc(fstype_list, ++n * sizeof(*fstype_list)); fstype_list[n-1] = fstype; } } fclose(f); if (n) { fstype_list = (char **)realloc(fstype_list, ++n * sizeof(*fstype_list)); fstype_list[n-1] = NULL; } } } static int mount_cdrom(cd_drive drive) { char **fstype; if (drive->fd != -1) { close(drive->fd); drive->fd = -1; } for (fstype = fstype_list; *fstype; fstype++) { if (!mount(drive->dev, drive->mnt, *fstype, MS_RDONLY | MS_NOSUID | MS_NODEV | MS_NOEXEC, NULL)) return 1; } return 0; } static cd_drive * load_mnts(int init) { cd_drive drive, *drives; char buf[PATH_MAX], *tmp; int n; FILE *f; if (!mntlock()) return NULL; drives = NULL; n = 0; f = fopen("/etc/mnts", "r"); if (f) { while (!feof(f)) { if (!fgets(buf, sizeof(buf), f)) continue; if ((tmp = strchr(buf, '\n'))) *tmp = '\0'; if (!(tmp = strchr(buf, '\t'))) continue; *tmp++ = '\0'; if (strncmp(buf, "/dev/cdrom", sizeof("/dev/cdrom")-1)) continue; drive = (cd_drive) malloc(sizeof(*drive)); drive->dev = malloc (strlen (buf) + 1); strcpy (drive->dev, buf); drive->mnt = malloc (strlen (tmp) + 1); strcpy(drive->mnt, tmp); drive->fd = -1; if (init) { if (is_cdrom_mounted(drive)) umount_cdrom(drive); drive->status = CDS_NO_DISC; } else { drive->status = is_cdrom_mounted(drive) ? CDS_DISC_OK : CDS_NO_DISC; } drives = (cd_drive *)realloc(drives, ++n * sizeof(*drives)); drives[n-1] = drive; } fclose(f); if (n) { drives = (cd_drive *)realloc(drives, ++n * sizeof(*drives)); drives[n-1] = NULL; } } mntunlock(); return drives; } int main (int argc, char **argv) { cd_drive drive, *drives, *ptr; char **file_exts, **playlist_exts, **img_exts; char *filename; char *play_dvd_cmd; struct stat st; int n, status, speed=0; time_t last_mtime = 0; filename = (char *) malloc (PATH_MAX + 10); fullname_maxlen = 1024; fullname = (char *) malloc (fullname_maxlen); if (!(argc&1)) speed = atoi (argv[argc-1]); load_proc_filesystems (); file_exts = get_extensions ("/etc/file_ext"); playlist_exts = get_extensions ("/etc/list_ext"); img_exts = get_extensions ("/etc/img_ext"); if (!fstype_list || !file_exts || !playlist_exts || !img_exts) return 2; if (!stat ("/var/use_dxr3", &st) && S_ISREG (st.st_mode)) play_dvd_cmd = "set_option dvd-device %s save\nquit 167\n"; else play_dvd_cmd = "set_option dvd-device %s save\nplay_dvd hide_menu\n"; drives = load_mnts(1); if (!drives) return 3; while (1) { usleep(1000000); if (!stat("/etc/mnts", &st) && st.st_mtime != last_mtime) { if (drives) { for (ptr=drives, drive=*ptr; drive; ptr++, drive=*ptr) { if (drive->fd >= 0) close(drive->fd); free(drive->dev); free(drive->mnt); free(drive); } free(drives); } drives = load_mnts(0); if (!drives) continue; last_mtime = st.st_mtime; } for (ptr=drives, drive=*ptr; drive; ptr++, drive=*ptr) { if (drive->status == CDS_NO_INFO) continue; if (drive->fd < 0 && (drive->fd = open_device(drive->dev)) < 0) continue; status = ioctl (drive->fd, CDROM_DRIVE_STATUS, CDSL_CURRENT); switch (status) { case CDS_DISC_OK: if (drive->status != status) { /* a media as been inserted */ drive->status = status; if (speed > 1 && speed < 100) ioctl (drive->fd, CDROM_SELECT_SPEED, speed); status = ioctl (drive->fd, CDROM_DISC_STATUS, CDSL_CURRENT); switch (status) { case CDS_AUDIO: /* it's an audio CD */ printf("set_option cdda-device %s save\nplay_cdda hide_menu\n", drive->dev); break; case CDS_NO_INFO: /* no information, but try to mount and detect */ case CDS_DATA_1: case CDS_DATA_2: /* it's a data CD */ if (!mount_cdrom(drive)) break; sprintf (filename, "%s/video_ts", drive->mnt); if (!stat (filename, &st) && S_ISDIR (st.st_mode)) { printf(play_dvd_cmd, drive->dev); break; } sprintf (filename, "%s/VIDEO_TS", drive->mnt); if (!stat (filename, &st) && S_ISDIR (st.st_mode)) { printf(play_dvd_cmd, drive->dev); break; } sprintf (filename, "%s/vcd", drive->mnt); if (!stat (filename, &st) && S_ISDIR (st.st_mode)) { printf("set_option vcd-device %s save\nplay_vcd hide_menu\n", drive->dev); break; } sprintf (filename, "%s/svcd", drive->mnt); if (!stat (filename, &st) && S_ISDIR (st.st_mode)) { printf("set_option vcd-device %s save\nplay_vcd hide_menu\n", drive->dev); break; } exts=playlist_exts; if (build_playlist (drive->mnt, -1) == 1) { escape_playlist(playlist, 0); printf ("loadlist '%s' hide_menu\n", playlist); } else { char *playlist = "/tmp/playlist.pls"; int fd = open (playlist, O_CREAT|O_TRUNC|O_WRONLY, S_IRUSR|S_IWUSR); if (fd < 0) return 1; exts=file_exts; n = build_playlist (drive->mnt, fd); if (n > 0) printf ("loadlist %s hide_menu\n",playlist); close (fd); if (n <= 0) { exts=img_exts; if (build_playlist (drive->mnt, -1) > 0) { escape_playlist(drive->mnt, 1); printf ("run 'view_img -r \\'%s\\''\n", playlist); } else { exts=xcd_exts; if (build_playlist (drive->mnt, -1) >= 1) printf ("set_option vcd-device %s save\nplay_vcd hide_menu\n", drive->dev); } } } break; case CDS_MIXED: printf("set_option cdda-device %s save\nplay_cdda hide_menu\n", drive->dev); case CDS_XA_2_1: case CDS_XA_2_2: /* it's a special CD */ mount_cdrom(drive); break; case CDS_NO_DISC: /* no disc, refresh the drive. */ default: drive->status = CDS_NO_DISC; close(drive->fd); drive->fd = -1; break; } fflush (stdout); } break; case -1: /* close the fd on ioctl failure, should never happen */ case CDS_NO_INFO: /* Drive do not support status request :-( */ close(drive->fd); drive->fd = -1; default: /* the media as been ejected */ if (drive->status != status) { drive->status = status; umount_cdrom(drive); } } } } free_extensions (file_exts); free_extensions (playlist_exts); return 0; } geexbox-0.98.7/packages/bftpd/0000755000175000017500000000000010335100767015141 5ustar aurelaurelgeexbox-0.98.7/packages/bftpd/build0000755000175000017500000000042110335100767016163 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain cd $BUILD/$1* ./configure --host=$TARGET_NAME \ --build=$HOST_NAME \ --without-debug \ --without-pax \ --without-libz \ --without-pam make LDFLAGS="$LDFLAGS" geexbox-0.98.7/packages/bftpd/config/0000755000175000017500000000000010335100767016406 5ustar aurelaurelgeexbox-0.98.7/packages/bftpd/config/bftpd.conf0000644000175000017500000000022110335100767020347 0ustar aurelaurelglobal { PORT="21" HELLO_STRING="Welcome to GeeXboX's FTP Server." AUTO_CHDIR="/" DO_CHROOT="no" RATIO="none" ANONYMOUS_USER="yes" } geexbox-0.98.7/packages/bftpd/init.d/0000755000175000017500000000000010335100767016326 5ustar aurelaurelgeexbox-0.98.7/packages/bftpd/init.d/54_ftp0000755000175000017500000000040510335100767017354 0ustar aurelaurel#!/bin/sh # # start ftp server # # runlevels: geexbox, debug # get options test -f /etc/network || exit 1 . /etc/network if test "$FTP_SERVER" = "yes" -a -f /etc/bftpd.conf; then echo "### Starting FTP server ###" bftpd -d -c /etc/bftpd.conf & fi exit 0 geexbox-0.98.7/packages/bftpd/install0000755000175000017500000000023310335100767016533 0ustar aurelaurel#!/bin/sh . config/options mkdir -p $INSTALL/usr/bin mkdir -p $INSTALL/etc cp $BUILD/$1*/$1 $INSTALL/usr/bin cp $PACKAGES/$1/config/$1.conf $INSTALL/etc geexbox-0.98.7/packages/bftpd/patches/0000755000175000017500000000000010335100767016570 5ustar aurelaurelgeexbox-0.98.7/packages/bftpd/patches/10_noauth.diff0000644000175000017500000000357310335100767021230 0ustar aurelaureldiff -Naur bftpd-1.0.24.orig/commands.c bftpd-1.0.24/commands.c --- bftpd-1.0.24.orig/commands.c 2003-09-17 17:39:02.000000000 +0200 +++ bftpd-1.0.24/commands.c 2003-09-17 17:40:22.000000000 +0200 @@ -164,17 +164,14 @@ void init_userinfo() { - struct passwd *temp = getpwnam(user); - if (temp) { - userinfo.pw_name = strdup(temp->pw_name); - userinfo.pw_passwd = strdup(temp->pw_passwd); - userinfo.pw_uid = temp->pw_uid; - userinfo.pw_gid = temp->pw_gid; - userinfo.pw_gecos = strdup(temp->pw_gecos); - userinfo.pw_dir = strdup(temp->pw_dir); - userinfo.pw_shell = strdup(temp->pw_shell); - userinfo_set = 1; - } + userinfo.pw_name = strdup("geexbox"); + userinfo.pw_passwd = strdup("ftp"); + userinfo.pw_uid = 0; + userinfo.pw_gid = 0; + userinfo.pw_gecos = strdup(""); + userinfo.pw_dir = strdup("/"); + userinfo.pw_shell = strdup("/bin/sh"); + userinfo_set = 1; } void command_user(char *username) diff -Naur bftpd-1.0.24.orig/login.c bftpd-1.0.24/login.c --- bftpd-1.0.24.orig/login.c 2003-09-17 17:39:02.000000000 +0200 +++ bftpd-1.0.24/login.c 2003-09-17 17:41:37.000000000 +0200 @@ -186,10 +186,6 @@ char str[256]; char *foo; int maxusers; - if (!getpwnam(user)) { - control_printf(SL_FAILURE, "421 Login incorrect."); - exit(0); - } if (strncasecmp(foo = config_getoption("DENY_LOGIN"), "no", 2)) { if (foo[0] != '\0') { if (strncasecmp(foo, "yes", 3)) @@ -210,12 +206,6 @@ control_printf(SL_FAILURE, "421 User %s is already logged in %i times.", user, maxusers); exit(0); } - if(checkuser() || checkshell()) { - control_printf(SL_FAILURE, "421 Login incorrect."); - exit(0); - } - if (checkpass(password)) - return 1; if (strcasecmp((char *) config_getoption("RATIO"), "none")) { sscanf((char *) config_getoption("RATIO"), "%i/%i", &ratio_send, &ratio_recv); geexbox-0.98.7/packages/bftpd/patches/20_rw-switch.diff0000644000175000017500000001173410335100767021660 0ustar aurelaureldiff -Naur bftpd-1.0.24.orig/commands.c bftpd-1.0.24/commands.c --- bftpd-1.0.24.orig/commands.c 2005-10-11 19:42:32.000000000 +0200 +++ bftpd-1.0.24/commands.c 2005-11-06 18:18:31.000000000 +0200 @@ -83,6 +83,57 @@ bftpd_statuslog(3, success, "%s", buffer); } +static void rw_ro(char *script, char *path) +{ + pid_t pid; + sighandler_t save_quit, save_int, save_chld; + + save_quit = signal(SIGQUIT, SIG_IGN); + save_int = signal(SIGINT, SIG_IGN); + save_chld = signal(SIGCHLD, SIG_DFL); + + if ((pid = vfork()) < 0) { + signal(SIGQUIT, save_quit); + signal(SIGINT, save_int); + signal(SIGCHLD, save_chld); + return; + } + if (pid == 0) { + char *const argv[] = { script, path }; + + signal(SIGQUIT, SIG_DFL); + signal(SIGINT, SIG_DFL); + signal(SIGCHLD, SIG_DFL); + + execv(script, argv); + _exit(127); + } + + /* Signals are not absolutly guarenteed with vfork */ + signal(SIGQUIT, SIG_IGN); + signal(SIGINT, SIG_IGN); + + do { + pid = wait4(pid, NULL, 0, NULL); + } while (pid == -1 && errno == EINTR); + + signal(SIGQUIT, save_quit); + signal(SIGINT, save_int); + signal(SIGCHLD, save_chld); + + return; +} + +static inline void rw(char *path) +{ + rw_ro("/usr/bin/rw", path); +} + +static inline void ro(char *path) +{ + rw_ro("/usr/bin/ro", path); +} + void new_umask() { int um; @@ -425,18 +476,25 @@ struct timeval tv; char *p, *pp; char *mapped = bftpd_cwd_mappath(filename); + rw(mapped); fd = open(mapped, flags, 00666); - if (mapped) - free(mapped); if (fd == -1) { bftpd_log("Error: '%s' while trying to store file '%s'.\n", strerror(errno), filename); control_printf(SL_FAILURE, "553 Error: %s.", strerror(errno)); + close(fd); + ro(mapped); + free(mapped); return; } bftpd_log("Client is storing file '%s'.\n", filename); if (dataconn()) + { + close(fd); + ro(mapped); + free(mapped); return; + } alarm(0); buffer = malloc(xfer_bufsize); lseek(fd, offset, SEEK_SET); @@ -454,6 +512,7 @@ if (!select(max, &rfds, NULL, NULL, &tv)) { close(sock); close(fd); + ro(mapped); control_printf(SL_FAILURE, "426 Kicked due to data transmission timeout."); bftpd_log("Kicked due to data transmission timeout.\n"); exit(0); @@ -462,6 +521,9 @@ test_abort(0, fd, sock); if (buffer) free(buffer); + close(fd); + ro(mapped); + free(mapped); return; } if (!((i = recv(sock, buffer, xfer_bufsize - 1, 0)))) @@ -484,6 +546,8 @@ free(buffer); close(fd); close(sock); + ro(mapped); + free(mapped); alarm(control_timeout); offset = 0; control_printf(SL_SUCCESS, "226 File transmission successful."); @@ -792,6 +856,7 @@ void command_dele(char *filename) { char *mapped = bftpd_cwd_mappath(filename); + rw(mapped); if (unlink(mapped)) { bftpd_log("Error: '%s' while trying to delete file '%s'.\n", strerror(errno), filename); @@ -800,12 +865,14 @@ bftpd_log("Deleted file '%s'.\n", filename); control_printf(SL_SUCCESS, "200 OK"); } + ro(mapped); free(mapped); } void command_mkd(char *dirname) { char *mapped = bftpd_cwd_mappath(dirname); + rw(mapped); if (mkdir(mapped, 0755)) { bftpd_log("Error: '%s' while trying to create directory '%s'.\n", strerror(errno), dirname); @@ -814,12 +881,14 @@ bftpd_log("Created directory '%s'.\n", dirname); control_printf(SL_SUCCESS, "257 \"%s\" has been created.", dirname); } + ro(mapped); free(mapped); } void command_rmd(char *dirname) { char *mapped = bftpd_cwd_mappath(dirname); + rw(mapped); if (rmdir(mapped)) { bftpd_log("Error: '%s' while trying to remove directory '%s'.\n", strerror(errno), dirname); @@ -828,6 +897,7 @@ bftpd_log("Removed directory '%s'.\n", dirname); control_printf(SL_SUCCESS, "250 OK"); } + ro(mapped); free(mapped); } @@ -856,6 +926,8 @@ void command_rnto(char *newname) { char *mapped = bftpd_cwd_mappath(newname); + rw(philename); + rw(mapped); if (rename(philename, mapped)) { bftpd_log("Error: '%s' while trying to rename '%s' to '%s'.\n", strerror(errno), philename, bftpd_cwd_mappath(newname)); @@ -867,6 +939,8 @@ } free(philename); free(mapped); + ro(mapped); + ro(philename); philename = NULL; } @@ -914,6 +988,7 @@ return; } mapped = bftpd_cwd_mappath(strdup(strchr(params, ' ') + 1)); + rw(mapped); *strchr(params, ' ') = '\0'; sscanf(params, "%o", &permissions); if (chmod(mapped, permissions)) @@ -923,6 +998,7 @@ permissions); control_printf(SL_SUCCESS, "200 CHMOD successful."); } + ro(mapped); free(mapped); } @@ -953,6 +1029,7 @@ return; } mapped = bftpd_cwd_mappath(filename); + rw(mapped); if (chown(mapped, uid, gid)) control_printf(SL_FAILURE, "550 Error: %s.", strerror(errno)); else { @@ -960,6 +1037,7 @@ gid); control_printf(SL_SUCCESS, "200 CHOWN successful."); } + ro(mapped); free(mapped); } geexbox-0.98.7/packages/bftpd/url0000644000175000017500000000007710335100770015664 0ustar aurelaurelhttp://bftpd.sourceforge.net/downloads/src/bftpd-1.0.24.tar.gz geexbox-0.98.7/packages/binutils/0000755000175000017500000000000010335100770015665 5ustar aurelaurelgeexbox-0.98.7/packages/binutils/build0000755000175000017500000000052310335100770016712 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/install ccache setup_toolchain host cd $BUILD/$1* mkdir -p objdir cd objdir ../configure --host=$HOST_NAME \ --build=$HOST_NAME \ --target=$TARGET_NAME \ --prefix=$ROOT/$TOOLCHAIN \ --with-sysroot=$SYSROOT_PREFIX \ --disable-nls make geexbox-0.98.7/packages/binutils/install0000755000175000017500000000015710335100770017264 0ustar aurelaurel#!/bin/sh . config/options make -C $BUILD/$1*/objdir install cp $PACKAGES/$1/scripts/libstrip $TOOLCHAIN/bin geexbox-0.98.7/packages/binutils/patches/0000755000175000017500000000000010335100770017314 5ustar aurelaurelgeexbox-0.98.7/packages/binutils/patches/10_uclibc-conf.diff0000644000175000017500000004773010335100770022645 0ustar aurelaureldiff -ur binutils-2.15.97.orig/bfd/config.bfd binutils-2.15.97/bfd/config.bfd --- binutils-2.15.97.orig/bfd/config.bfd 2005-04-29 20:48:14.000000000 -0400 +++ binutils-2.15.97/bfd/config.bfd 2005-04-29 20:53:50.000000000 -0400 @@ -140,7 +140,7 @@ targ_defvec=ecoffalpha_little_vec targ_selvecs=bfd_elf64_alpha_vec ;; - alpha*-*-linux-gnu* | alpha*-*-elf*) + alpha*-*-linux-* | alpha*-*-elf*) targ_defvec=bfd_elf64_alpha_vec targ_selvecs=ecoffalpha_little_vec ;; @@ -150,7 +150,7 @@ alpha*-*-*) targ_defvec=ecoffalpha_little_vec ;; - ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-gnu* | ia64*-*-elf* | ia64*-*-kfreebsd*-gnu) + ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-* | ia64*-*-elf* | ia64*-*-kfreebsd*-gnu) targ_defvec=bfd_elf64_ia64_little_vec targ_selvecs="bfd_elf64_ia64_big_vec bfd_efi_app_ia64_vec" ;; @@ -227,7 +227,7 @@ targ_defvec=bfd_elf32_littlearm_vec targ_selvecs=bfd_elf32_bigarm_vec ;; - armeb-*-elf | arm*b-*-linux-gnu*) + armeb-*-elf | arm*b-*-linux-*) targ_defvec=bfd_elf32_bigarm_vec targ_selvecs=bfd_elf32_littlearm_vec ;; @@ -235,7 +235,7 @@ targ_defvec=bfd_elf32_littlearm_vec targ_selvecs=bfd_elf32_bigarm_vec ;; - arm-*-elf | arm-*-freebsd* | arm*-*-linux-gnu* | arm*-*-conix* | \ + arm-*-elf | arm-*-freebsd* | arm*-*-linux-* | arm*-*-conix* | \ arm*-*-uclinux* | arm-*-kfreebsd*-gnu | \ arm*-*-eabi* ) targ_defvec=bfd_elf32_littlearm_vec @@ -385,7 +385,7 @@ ;; #ifdef BFD64 - hppa*64*-*-linux-gnu*) + hppa*64*-*-linux-*) targ_defvec=bfd_elf64_hppa_linux_vec targ_selvecs=bfd_elf64_hppa_vec ;; @@ -396,7 +396,7 @@ ;; #endif - hppa*-*-linux-gnu*) + hppa*-*-linux-*) targ_defvec=bfd_elf32_hppa_linux_vec targ_selvecs=bfd_elf32_hppa_vec ;; @@ -529,7 +529,7 @@ targ_selvecs=bfd_elf32_i386_vec targ_underscore=yes ;; - i[3-7]86-*-linux-gnu*) + i[3-7]86-*-linux-*) targ_defvec=bfd_elf32_i386_vec targ_selvecs="i386linux_vec bfd_efi_app_ia32_vec" targ64_selvecs=bfd_elf64_x86_64_vec @@ -543,7 +543,7 @@ targ_defvec=bfd_elf64_x86_64_vec targ_selvecs="bfd_elf32_i386_vec i386netbsd_vec i386coff_vec bfd_efi_app_ia32_vec" ;; - x86_64-*-linux-gnu*) + x86_64-*-linux-*) targ_defvec=bfd_elf64_x86_64_vec targ_selvecs="bfd_elf32_i386_vec i386linux_vec bfd_efi_app_ia32_vec" ;; @@ -719,7 +719,7 @@ targ_selvecs=bfd_elf32_m68k_vec targ_underscore=yes ;; - m68*-*-linux-gnu*) + m68*-*-linux-*) targ_defvec=bfd_elf32_m68k_vec targ_selvecs=m68klinux_vec ;; @@ -1005,7 +1005,7 @@ ;; #endif powerpc-*-*bsd* | powerpc-*-elf* | powerpc-*-sysv4* | powerpc-*-eabi* | \ - powerpc-*-solaris2* | powerpc-*-linux-gnu* | powerpc-*-rtems* | \ + powerpc-*-solaris2* | powerpc-*-linux-* | powerpc-*-rtems* | \ powerpc-*-chorus* | powerpc-*-vxworks* | powerpc-*-windiss*) targ_defvec=bfd_elf32_powerpc_vec targ_selvecs="rs6000coff_vec bfd_elf32_powerpcle_vec ppcboot_vec" @@ -1042,7 +1042,7 @@ targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec" ;; powerpcle-*-elf* | powerpcle-*-sysv4* | powerpcle-*-eabi* | \ - powerpcle-*-solaris2* | powerpcle-*-linux-gnu* | powerpcle-*-vxworks* |\ + powerpcle-*-solaris2* | powerpcle-*-linux-* | powerpcle-*-vxworks* |\ powerpcle-*-rtems*) targ_defvec=bfd_elf32_powerpcle_vec targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec" @@ -1213,7 +1213,7 @@ targ_selvecs="bfd_elf32_sparc_vec sunos_big_vec" targ_underscore=yes ;; - sparc-*-linux-gnu*) + sparc-*-linux-*) targ_defvec=bfd_elf32_sparc_vec targ_selvecs="sparclinux_vec bfd_elf64_sparc_vec sunos_big_vec" ;; @@ -1260,7 +1260,7 @@ targ_defvec=sunos_big_vec targ_underscore=yes ;; - sparc64-*-linux-gnu*) + sparc64-*-linux-*) targ_defvec=bfd_elf64_sparc_vec targ_selvecs="bfd_elf32_sparc_vec sparclinux_vec sunos_big_vec" ;; @@ -1329,7 +1329,7 @@ targ_underscore=yes ;; - vax-*-linux-gnu*) + vax-*-linux-*) targ_defvec=bfd_elf32_vax_vec ;; diff -ur binutils-2.15.97.orig/bfd/configure binutils-2.15.97/bfd/configure --- binutils-2.15.97.orig/bfd/configure 2005-04-29 20:48:14.000000000 -0400 +++ binutils-2.15.97/bfd/configure 2005-04-29 20:53:50.000000000 -0400 @@ -9918,7 +9918,7 @@ alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu) COREFILE='' ;; - alpha*-*-linux-gnu*) + alpha*-*-linux-*) COREFILE=trad-core.lo TRAD_HEADER='"hosts/alphalinux.h"' ;; @@ -9982,7 +9982,7 @@ COREFILE=trad-core.lo TRAD_HEADER='"hosts/i386mach3.h"' ;; - i[3-7]86-*-linux-gnu*) + i[3-7]86-*-linux-*) COREFILE=trad-core.lo TRAD_HEADER='"hosts/i386linux.h"' ;; @@ -10020,7 +10020,7 @@ COREFILE=trad-core.lo TRAD_HEADER='"hosts/hp300bsd.h"' ;; - m68*-*-linux-gnu*) + m68*-*-linux-*) COREFILE=trad-core.lo TRAD_HEADER='"hosts/m68klinux.h"' ;; @@ -10154,7 +10154,7 @@ COREFILE=trad-core.lo TRAD_HEADER='"hosts/vaxult2.h"' ;; - vax-*-linux-gnu*) + vax-*-linux-*) COREFILE=trad-core.lo TRAD_HEADER='"hosts/vaxlinux.h"' ;; diff -ur binutils-2.15.97.orig/bfd/configure.in binutils-2.15.97/bfd/configure.in --- binutils-2.15.97.orig/bfd/configure.in 2005-04-29 20:48:14.000000000 -0400 +++ binutils-2.15.97/bfd/configure.in 2005-04-29 20:53:50.000000000 -0400 @@ -163,7 +163,7 @@ alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu) COREFILE='' ;; - alpha*-*-linux-gnu*) + alpha*-*-linux-*) COREFILE=trad-core.lo TRAD_HEADER='"hosts/alphalinux.h"' ;; @@ -248,7 +248,7 @@ TRAD_HEADER='"hosts/i386mach3.h"' ;; changequote(,)dnl - i[3-7]86-*-linux-gnu*) + i[3-7]86-*-linux-*) changequote([,])dnl COREFILE=trad-core.lo TRAD_HEADER='"hosts/i386linux.h"' @@ -289,7 +289,7 @@ COREFILE=trad-core.lo TRAD_HEADER='"hosts/hp300bsd.h"' ;; - m68*-*-linux-gnu*) + m68*-*-linux-*) COREFILE=trad-core.lo TRAD_HEADER='"hosts/m68klinux.h"' ;; @@ -375,7 +375,7 @@ COREFILE=trad-core.lo TRAD_HEADER='"hosts/vaxult2.h"' ;; - vax-*-linux-gnu*) + vax-*-linux-*) COREFILE=trad-core.lo TRAD_HEADER='"hosts/vaxlinux.h"' ;; diff -ur binutils-2.15.97.orig/gas/configure binutils-2.15.97/gas/configure --- binutils-2.15.97.orig/gas/configure 2005-04-29 20:48:14.000000000 -0400 +++ binutils-2.15.97/gas/configure 2005-04-29 20:53:50.000000000 -0400 @@ -4462,7 +4462,7 @@ _ACEOF ;; - ppc-*-linux-gnu*) + ppc-*-linux-*) case "$endian" in big) ;; *) { { echo "$as_me:$LINENO: error: GNU/Linux must be configured big endian" >&5 diff -ur binutils-2.15.97.orig/gas/configure.in binutils-2.15.97/gas/configure.in --- binutils-2.15.97.orig/gas/configure.in 2005-04-29 20:48:14.000000000 -0400 +++ binutils-2.15.97/gas/configure.in 2005-04-29 20:53:50.000000000 -0400 @@ -161,7 +161,7 @@ AC_DEFINE(AIX_WEAK_SUPPORT, 1, [Define if using AIX 5.2 value for C_WEAKEXT.]) ;; - ppc-*-linux-gnu*) + ppc-*-linux-*) case "$endian" in big) ;; *) AC_MSG_ERROR(GNU/Linux must be configured big endian) ;; diff -ur binutils-2.15.97.orig/gas/configure.tgt binutils-2.15.97/gas/configure.tgt --- binutils-2.15.97.orig/gas/configure.tgt 2005-04-29 20:48:14.000000000 -0400 +++ binutils-2.15.97/gas/configure.tgt 2005-04-29 20:53:50.000000000 -0400 @@ -100,7 +100,7 @@ alpha-*-*vms*) fmt=evax ;; alpha-*-osf*) fmt=ecoff ;; alpha-*-linuxecoff*) fmt=ecoff ;; - alpha-*-linux-gnu*) fmt=elf em=linux ;; + alpha-*-linux-*) fmt=elf em=linux ;; alpha-*-netbsd*) fmt=elf em=nbsd ;; alpha-*-openbsd*) fmt=elf em=obsd ;; @@ -116,7 +116,7 @@ arm-*-conix*) fmt=elf ;; arm-*-linux*aout*) fmt=aout em=linux ;; arm-*-linux-gnueabi*) fmt=elf em=armlinuxeabi ;; - arm-*-linux-gnu*) fmt=elf em=linux ;; + arm-*-linux-*) fmt=elf em=linux ;; arm-*-uclinux*) fmt=elf em=linux ;; arm-*-netbsdelf*) fmt=elf em=nbsd ;; arm-*-*n*bsd*) fmt=aout em=nbsd ;; @@ -128,7 +128,7 @@ avr-*-*) fmt=elf ;; - cris-*-linux-gnu* | crisv32-*-linux-gnu*) + cris-*-linux-* | crisv32-*-linux-*) fmt=multi bfd_gas=yes em=linux ;; cris-*-* | crisv32-*-*) fmt=multi bfd_gas=yes ;; @@ -192,7 +192,7 @@ i386-*-linux*aout*) fmt=aout em=linux ;; i386-*-linux*oldld) fmt=aout em=linux ;; i386-*-linux*coff*) fmt=coff em=linux ;; - i386-*-linux-gnu*) fmt=elf em=linux ;; + i386-*-linux-*) fmt=elf em=linux ;; i386-*-lynxos*) fmt=elf em=lynx bfd_gas=yes ;; i386-*-sysv[45]*) fmt=elf ;; i386-*-solaris*) fmt=elf ;; @@ -238,7 +238,7 @@ ia64-*-elf*) fmt=elf ;; ia64-*-aix*) fmt=elf em=ia64aix ;; - ia64-*-linux-gnu*) fmt=elf em=linux ;; + ia64-*-linux-*) fmt=elf em=linux ;; ia64-*-hpux*) fmt=elf em=hpux ;; ia64-*-netbsd*) fmt=elf em=nbsd ;; @@ -265,7 +265,7 @@ m68k-*-rtems*) fmt=elf ;; m68k-*-hpux*) fmt=hp300 em=hp300 ;; m68k-*-linux*aout*) fmt=aout em=linux ;; - m68k-*-linux-gnu*) fmt=elf em=linux ;; + m68k-*-linux-*) fmt=elf em=linux ;; m68k-*-uclinux*) fmt=elf ;; m68k-*-gnu*) fmt=elf ;; m68k-*-netbsdelf*) fmt=elf em=nbsd ;; @@ -332,7 +332,7 @@ ppc-*-beos*) fmt=coff ;; ppc-*-*n*bsd* | ppc-*-elf*) fmt=elf ;; ppc-*-eabi* | ppc-*-sysv4*) fmt=elf ;; - ppc-*-linux-gnu*) fmt=elf em=linux ;; + ppc-*-linux-*) fmt=elf em=linux ;; ppc-*-solaris*) fmt=elf ;; ppc-*-rtems*) fmt=elf ;; ppc-*-macos*) fmt=coff em=macos ;; @@ -340,7 +340,7 @@ ppc-*-kaos*) fmt=elf ;; ppc-*-lynxos*) fmt=elf em=lynx bfd_gas=yes ;; - s390-*-linux-gnu*) fmt=elf em=linux ;; + s390-*-linux-*) fmt=elf em=linux ;; s390-*-tpf*) fmt=elf ;; sh*-*-linux*) fmt=elf em=linux @@ -369,7 +369,7 @@ sparc-*-aout | sparc*-*-vxworks*) fmt=aout em=sparcaout ;; sparc-*-coff) fmt=coff ;; sparc-*-linux*aout*) fmt=aout em=linux ;; - sparc-*-linux-gnu*) fmt=elf em=linux ;; + sparc-*-linux-*) fmt=elf em=linux ;; sparc-fujitsu-none) fmt=aout ;; sparc-*-elf) fmt=elf ;; sparc-*-sysv4*) fmt=elf ;; @@ -398,7 +398,7 @@ vax-*-netbsdelf*) fmt=elf em=nbsd ;; vax-*-netbsd*) fmt=aout em=nbsd ;; vax-*-bsd* | vax-*-ultrix*) fmt=aout ;; - vax-*-linux-gnu*) fmt=elf em=linux bfd_gas=yes ;; + vax-*-linux-*) fmt=elf em=linux bfd_gas=yes ;; w65-*-*) fmt=coff ;; diff -ur binutils-2.15.97.orig/ld/configure.host binutils-2.15.97/ld/configure.host --- binutils-2.15.97.orig/ld/configure.host 2005-04-29 20:48:15.000000000 -0400 +++ binutils-2.15.97/ld/configure.host 2005-04-29 20:53:50.000000000 -0400 @@ -83,7 +83,7 @@ HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,ld\[^ \]\*,ld-linux,g"` ;; -arm*-*-linux-gnu*) +arm*-*-linux-*) HOSTING_CRT0='-p '`echo "$HOSTING_CRT0" | sed -e "s,ld\[^ \]\*,ld-linux,g"` ;; @@ -141,7 +141,7 @@ HOSTING_LIBS="$HOSTING_LIBS"' -lcygwin -L/usr/lib/w32api -luser32 -lkernel32 -ladvapi32 -lshell32 `if [ -f ../gcc/libgcc.a ] ; then echo ../gcc/libgcc.a ; else ${CC} -print-libgcc-file-name; fi`' ;; -ia64-*-linux-gnu*) +ia64-*-linux-*) HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,ld\[^ \]*\*,ld-linux-ia64,g"` ;; @@ -155,11 +155,11 @@ HOSTING_LIBS='-L/usr/lib32 '"$HOSTING_LIBS"' `if [ -f ../gcc/crtend.o ]; then echo ../gcc/crtend.o ; else ${CC} -print-file-name=crtend.o; fi` /usr/lib32/crtn.o -init __do_global_ctors -fini __do_global_dtors' ;; -mips*-*-linux-gnu*) +mips*-*-linux-*) HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,\\\`specs.*\"\\\`,/lib/ld.so.1,"` ;; -m68*-*-linux-gnu*) +m68*-*-linux-*) HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,\\\`specs.*\"\\\`,/lib/ld.so.1,"` ;; @@ -183,19 +183,19 @@ HOSTING_LIBS="$HOSTING_LIBS"' `if [ -f ../gcc/crtend.o ]; then echo ../gcc/crtend.o; else ${CC} -print-file-name=crtend.o; fi`' ;; -powerpc64*-*-linux-gnu*) +powerpc64*-*-linux-*) HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,\\\`specs.*\"\\\`,/lib64/ld64.so.1,"` ;; -powerpc*-*-linux-gnu*) +powerpc*-*-linux-*) HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,\\\`specs.*\"\\\`,/lib/ld.so.1,"` ;; -s390x-*-linux-gnu*) +s390x-*-linux-*) HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,\\\`specs.*\"\\\`,/lib/ld64.so.1,"` ;; -s390-*-linux-gnu*) +s390-*-linux-*) HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,\\\`specs.*\"\\\`,/lib/ld.so.1,"` ;; @@ -209,15 +209,15 @@ HOSTING_LIBS="$HOSTING_LIBS"' `if [ -f ../gcc/crtend.o ]; then echo ../gcc/crtend.o; else ${CC} -print-file-name=crtend.o; fi` `if [ -f ../gcc/crtn.o ]; then echo ../gcc/crtn.o; else ${CC} -print-file-name=crtn.o; fi`' ;; -sparc-*-linux-gnu*) +sparc-*-linux-*) HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,\\\`specs.*\"\\\`,/lib/ld-linux.so.2,"` ;; -sparc64-*-linux-gnu*) +sparc64-*-linux-*) HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,\\\`specs.*\"\\\`,/lib64/ld-linux.so.2,"` ;; -x86_64-*-linux-gnu*) +x86_64-*-linux-*) HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,\\\`specs.*\"\\\`,/lib64/ld-linux-x86-64.so.2,"` ;; diff -ur binutils-2.15.97.orig/ld/configure.tgt binutils-2.15.97/ld/configure.tgt --- binutils-2.15.97.orig/ld/configure.tgt 2005-04-29 20:48:15.000000000 -0400 +++ binutils-2.15.97/ld/configure.tgt 2005-04-29 20:53:50.000000000 -0400 @@ -30,7 +30,7 @@ cris-*-*aout*) targ_emul=crisaout targ_extra_emuls="criself crislinux" targ_extra_libpath=$targ_extra_emuls ;; -cris-*-linux-gnu* | cris-*-linux-gnu*) +cris-*-linux-* | crisv32-*-linux-*) targ_emul=crislinux ;; cris-*-* | crisv32-*-*) targ_emul=criself targ_extra_emuls="crisaout crislinux" @@ -62,14 +62,14 @@ tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/aout//'` tdir_sun4=sparc-sun-sunos4 ;; -sparc64-*-linux-gnu*) targ_emul=elf64_sparc +sparc64-*-linux-*) targ_emul=elf64_sparc targ_extra_emuls="elf32_sparc sparclinux sun4" targ_extra_libpath=elf32_sparc tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/64//'` tdir_sparclinux=${tdir_elf32_sparc}aout tdir_sun4=sparc-sun-sunos4 ;; -sparc*-*-linux-gnu*) targ_emul=elf32_sparc +sparc*-*-linux-*) targ_emul=elf32_sparc targ_extra_emuls="sparclinux elf64_sparc sun4" targ_extra_libpath=elf64_sparc tdir_sparclinux=${targ_alias}aout @@ -119,8 +119,8 @@ ia64-*-aix*) targ_emul=elf64_aix ;; m32r*le-*-elf*) targ_emul=m32rlelf ;; m32r*-*-elf*) targ_emul=m32relf ;; -m32r*le-*-linux-gnu*) targ_emul=m32rlelf_linux ;; -m32r*-*-linux-gnu*) targ_emul=m32relf_linux ;; +m32r*le-*-linux-*) targ_emul=m32rlelf_linux ;; +m32r*-*-linux-*) targ_emul=m32relf_linux ;; m68hc11-*-*|m6811-*-*) targ_emul=m68hc11elf targ_extra_emuls="m68hc11elfb m68hc12elf m68hc12elfb" ;; m68hc12-*-*|m6812-*-*) targ_emul=m68hc12elf @@ -131,7 +131,7 @@ m68*-apple-aux*) targ_emul=m68kaux ;; maxq-*-coff) targ_emul=maxqcoff;; *-tandem-none) targ_emul=st2000 ;; -i370-*-elf* | i370-*-linux-gnu*) targ_emul=elf32i370 ;; +i370-*-elf* | i370-*-linux-*) targ_emul=elf32i370 ;; i[3-7]86-*-nto-qnx*) targ_emul=i386nto ;; i[3-7]86-*-vsta) targ_emul=vsta ;; i[3-7]86-go32-rtems*) targ_emul=i386go32 ;; @@ -155,14 +155,14 @@ tdir_elf_i386=`echo ${targ_alias} | sed -e 's/aout//'` ;; i[3-7]86-*-linux*oldld) targ_emul=i386linux; targ_extra_emuls=elf_i386 ;; -i[3-7]86-*-linux-gnu*) targ_emul=elf_i386 +i[3-7]86-*-linux-*) targ_emul=elf_i386 targ_extra_emuls=i386linux if test x${want64} = xtrue; then targ_extra_emuls="$targ_extra_emuls elf_x86_64" fi tdir_i386linux=${targ_alias}aout ;; -x86_64-*-linux-gnu*) targ_emul=elf_x86_64 +x86_64-*-linux-*) targ_emul=elf_x86_64 targ_extra_emuls="elf_i386 i386linux" targ_extra_libpath=elf_i386 tdir_i386linux=`echo ${targ_alias}aout | sed -e 's/x86_64/i386/'` @@ -262,13 +262,13 @@ arm-*-kaos*) targ_emul=armelf ;; arm9e-*-elf) targ_emul=armelf ;; arm*b-*-linux-gnueabi) targ_emul=armelfb_linux_eabi ;; -arm*b-*-linux-gnu*) targ_emul=armelfb_linux; targ_extra_emuls=armelfb ;; +arm*b-*-linux-*) targ_emul=armelfb_linux; targ_extra_emuls=armelfb ;; arm*-*-linux-gnueabi) targ_emul=armelf_linux_eabi ;; -arm*-*-linux-gnu*) targ_emul=armelf_linux; targ_extra_emuls=armelf ;; +arm*-*-linux-*) targ_emul=armelf_linux; targ_extra_emuls=armelf ;; arm*-*-uclinux*) targ_emul=armelf_linux; targ_extra_emuls=armelf ;; arm-*-vxworks) targ_emul=armelf_vxworks ;; arm*-*-conix*) targ_emul=armelf ;; -thumb-*-linux-gnu* | thumb-*-uclinux*) targ_emul=armelf_linux; targ_extra_emuls=armelf ;; +thumb-*-linux-* | thumb-*-uclinux*) targ_emul=armelf_linux; targ_extra_emuls=armelf ;; strongarm-*-coff) targ_emul=armcoff ;; strongarm-*-elf) targ_emul=armelf ;; strongarm-*-kaos*) targ_emul=armelf ;; @@ -372,7 +372,7 @@ targ_extra_emuls=m68kelf tdir_m68kelf=`echo ${targ_alias} | sed -e 's/aout//'` ;; -m68k-*-linux-gnu*) targ_emul=m68kelf +m68k-*-linux-*) targ_emul=m68kelf targ_extra_emuls=m68klinux tdir_m68klinux=`echo ${targ_alias} | sed -e 's/linux/linuxaout/'` ;; @@ -388,9 +388,9 @@ m68*-*-psos*) targ_emul=m68kpsos ;; m68*-*-rtemscoff*) targ_emul=m68kcoff ;; m68*-*-rtems*) targ_emul=m68kelf ;; -hppa*64*-*-linux-gnu*) targ_emul=hppa64linux ;; +hppa*64*-*-linux-*) targ_emul=hppa64linux ;; hppa*64*-*) targ_emul=elf64hppa ;; -hppa*-*-linux-gnu*) targ_emul=hppalinux ;; +hppa*-*-linux-*) targ_emul=hppalinux ;; hppa*-*-*elf*) targ_emul=hppaelf ;; hppa*-*-lites*) targ_emul=hppaelf ;; hppa*-*-netbsd*) targ_emul=hppanbsd ;; @@ -402,7 +402,7 @@ vax-*-netbsdaout* | vax-*-netbsd*) targ_emul=vaxnbsd targ_extra_emuls=elf32vax ;; -vax-*-linux-gnu*) targ_emul=elf32vax ;; +vax-*-linux-*) targ_emul=elf32vax ;; mips*-*-pe) targ_emul=mipspe ; targ_extra_ofiles="deffilep.o pe-dll.o" ;; mips*-dec-ultrix*) targ_emul=mipslit ;; @@ -436,18 +436,18 @@ mips*-*-vxworks*) targ_emul=elf32ebmip targ_extra_emuls="elf32elmip" ;; mips*-*-windiss) targ_emul=elf32mipswindiss ;; -mips64*el-*-linux-gnu*) targ_emul=elf32ltsmipn32 +mips64*el-*-linux-*) targ_emul=elf32ltsmipn32 targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip" targ_extra_libpath="elf32ltsmip elf64ltsmip" ;; -mips64*-*-linux-gnu*) targ_emul=elf32btsmipn32 +mips64*-*-linux-*) targ_emul=elf32btsmipn32 targ_extra_emuls="elf32ltsmipn32 elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip" targ_extra_libpath="elf32btsmip elf64btsmip" ;; -mips*el-*-linux-gnu*) targ_emul=elf32ltsmip +mips*el-*-linux-*) targ_emul=elf32ltsmip targ_extra_emuls="elf32btsmip elf32ltsmipn32 elf64ltsmip elf32btsmipn32 elf64btsmip" ;; -mips*-*-linux-gnu*) targ_emul=elf32btsmip +mips*-*-linux-*) targ_emul=elf32btsmip targ_extra_emuls="elf32ltsmip elf32btsmipn32 elf64btsmip elf32ltsmipn32 elf64ltsmip" ;; mips*-*-lnews*) targ_emul=mipslnews ;; @@ -467,7 +467,7 @@ alpha*-*-linuxecoff*) targ_emul=alpha targ_extra_emuls=elf64alpha tdir_elf64alpha=`echo ${targ_alias} | sed -e 's/ecoff//'` ;; -alpha*-*-linux-gnu*) targ_emul=elf64alpha targ_extra_emuls=alpha +alpha*-*-linux-*) targ_emul=elf64alpha targ_extra_emuls=alpha tdir_alpha=`echo ${targ_alias} | sed -e 's/linux/linuxecoff/'` ;; alpha*-*-osf*) targ_emul=alpha ;; diff -ur binutils-2.15.97.orig/ld/emultempl/elf32.em binutils-2.15.97/ld/emultempl/elf32.em --- binutils-2.15.97.orig/ld/emultempl/elf32.em 2005-04-29 20:48:15.000000000 -0400 +++ binutils-2.15.97/ld/emultempl/elf32.em 2005-04-29 20:53:50.000000000 -0400 @@ -65,7 +65,7 @@ if [ "x${USE_LIBPATH}" = xyes ] ; then case ${target} in - *-*-linux-gnu*) + *-*-linux-*) cat >>e${EMULATION_NAME}.c < @@ -350,7 +350,7 @@ EOF case ${target} in - *-*-linux-gnu*) + *-*-linux-*) cat >>e${EMULATION_NAME}.c <>e${EMULATION_NAME}.c <>e${EMULATION_NAME}.c <name, force)) break; geexbox-0.98.7/packages/binutils/patches/20_uclibc-libtool-conf.diff0000644000175000017500000002153110335100770024277 0ustar aurelaureldiff -urN binutils-2.16.90.0.2-dist/bfd/configure binutils-2.16.90.0.2/bfd/configure --- binutils-2.16.90.0.2-dist/bfd/configure 2005-04-29 12:50:24.000000000 -0500 +++ binutils-2.16.90.0.2/bfd/configure 2005-04-30 11:34:59.246377032 -0500 @@ -3584,6 +3584,11 @@ lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` ;; +linux-uclibc*) + lt_cv_deplibs_check_method=pass_all + lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` + ;; + netbsd* | knetbsd*-gnu) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' diff -urN binutils-2.16.90.0.2-dist/binutils/configure binutils-2.16.90.0.2/binutils/configure --- binutils-2.16.90.0.2-dist/binutils/configure 2005-04-29 12:50:26.000000000 -0500 +++ binutils-2.16.90.0.2/binutils/configure 2005-04-30 11:35:28.900868864 -0500 @@ -1577,6 +1577,11 @@ lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` ;; +linux-uclibc*) + lt_cv_deplibs_check_method=pass_all + lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` + ;; + netbsd* | knetbsd*-gnu) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' diff -urN binutils-2.16.90.0.2-dist/configure binutils-2.16.90.0.2/configure --- binutils-2.16.90.0.2-dist/configure 2005-04-29 12:50:23.000000000 -0500 +++ binutils-2.16.90.0.2/configure 2005-04-30 11:31:12.525843792 -0500 @@ -1111,7 +1111,7 @@ ;; "") case "${target}" in - *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu) + *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu | *-*-linux-uclibc*) # Enable libmudflap by default in GNU and friends. ;; *-*-freebsd*) diff -urN binutils-2.16.90.0.2-dist/configure.in binutils-2.16.90.0.2/configure.in --- binutils-2.16.90.0.2-dist/configure.in 2005-04-29 12:50:23.000000000 -0500 +++ binutils-2.16.90.0.2/configure.in 2005-04-30 11:29:51.643139832 -0500 @@ -328,7 +328,7 @@ ;; "") case "${target}" in - *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu) + *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu | *-*-linux-uclibc*) # Enable libmudflap by default in GNU and friends. ;; *-*-freebsd*) diff -urN binutils-2.16.90.0.2-dist/gas/configure binutils-2.16.90.0.2/gas/configure --- binutils-2.16.90.0.2-dist/gas/configure 2005-04-29 12:50:27.000000000 -0500 +++ binutils-2.16.90.0.2/gas/configure 2005-04-30 11:35:21.097055224 -0500 @@ -3421,6 +3421,11 @@ lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` ;; +linux-uclibc*) + lt_cv_deplibs_check_method=pass_all + lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` + ;; + netbsd* | knetbsd*-gnu) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' diff -urN binutils-2.16.90.0.2-dist/gas/testsuite/gas/sh/basic.exp binutils-2.16.90.0.2/gas/testsuite/gas/sh/basic.exp --- binutils-2.16.90.0.2-dist/gas/testsuite/gas/sh/basic.exp 2005-04-09 14:03:14.000000000 -0500 +++ binutils-2.16.90.0.2/gas/testsuite/gas/sh/basic.exp 2005-04-30 11:41:57.301822944 -0500 @@ -20,7 +20,7 @@ # Written by Cygnus Support. -if [istarget "sh*-*-linux-gnu"] { +if {[istarget "sh*-*-linux-gnu"] || [istarget "sh*-*-linux-uclibc"]} { global ASFLAGS set ASFLAGS "$ASFLAGS -big" } diff -urN binutils-2.16.90.0.2-dist/gprof/configure binutils-2.16.90.0.2/gprof/configure --- binutils-2.16.90.0.2-dist/gprof/configure 2005-04-29 12:50:29.000000000 -0500 +++ binutils-2.16.90.0.2/gprof/configure 2005-04-30 11:35:36.880655752 -0500 @@ -3419,6 +3419,11 @@ lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` ;; +linux-uclibc*) + lt_cv_deplibs_check_method=pass_all + lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` + ;; + netbsd* | knetbsd*-gnu) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' diff -urN binutils-2.16.90.0.2-dist/ld/configure binutils-2.16.90.0.2/ld/configure --- binutils-2.16.90.0.2-dist/ld/configure 2005-04-29 12:50:30.000000000 -0500 +++ binutils-2.16.90.0.2/ld/configure 2005-04-30 11:46:15.974498720 -0500 @@ -1581,6 +1581,11 @@ lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` ;; +linux-uclibc*) + lt_cv_deplibs_check_method=pass_all + lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` + ;; + netbsd* | knetbsd*-gnu) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' diff -urN binutils-2.16.90.0.2-dist/ld/testsuite/ld-sh/sh.exp binutils-2.16.90.0.2/ld/testsuite/ld-sh/sh.exp --- binutils-2.16.90.0.2-dist/ld/testsuite/ld-sh/sh.exp 2005-04-09 14:03:29.000000000 -0500 +++ binutils-2.16.90.0.2/ld/testsuite/ld-sh/sh.exp 2005-04-30 11:45:07.890849008 -0500 @@ -62,7 +62,7 @@ set testsrec "SH relaxing to S-records" -if [istarget sh*-linux-gnu] { +if {[istarget sh*-linux-gnu] || [istarget sh*-*-linux-uclibc]} { # This target needs the explicit entry address. catch "exec $objdump -x tmpdir/sh1 | grep start\\ address | sed s/start\\ address//" entry_addr set srec_relax_arg "-Ttext $entry_addr -relax --oformat srec tmpdir/sh1.o" @@ -117,7 +117,7 @@ return } -if [istarget sh*-linux-gnu] { +if {[istarget sh*-linux-gnu] || [istarget sh*-*-linux-uclibc]} { exec sed -e s/_main/main/ -e s/_trap/trap/ -e s/_stack/stack/ \ < $srcdir/$subdir/start.s >tmpdir/start.s } else { diff -urN binutils-2.16.90.0.2-dist/ld/testsuite/ld-srec/srec.exp binutils-2.16.90.0.2/ld/testsuite/ld-srec/srec.exp --- binutils-2.16.90.0.2-dist/ld/testsuite/ld-srec/srec.exp 2005-04-29 12:50:30.000000000 -0500 +++ binutils-2.16.90.0.2/ld/testsuite/ld-srec/srec.exp 2005-04-30 11:44:26.358162936 -0500 @@ -385,7 +385,7 @@ setup_xfail "v850*-*-elf" # The S-record linker doesn't handle Alpha Elf relaxation. -setup_xfail "alpha*-*-elf*" "alpha*-*-linux-gnu*" "alpha*-*-gnu*" +setup_xfail "alpha*-*-elf*" "alpha*-*-linux-gnu*" "alpha*-*-gnu*" "alpha*-*-linux-uclibc*" setup_xfail "alpha*-*-netbsd*" # The S-record linker hasn't any hope of coping with HPPA relocs. @@ -424,7 +424,7 @@ setup_xfail "thumb-*-*" setup_xfail "powerpc*-*-eabi*" setup_xfail "v850*-*-elf" -setup_xfail "alpha*-*-elf*" "alpha*-*-linux-gnu*" "alpha*-*-gnu*" +setup_xfail "alpha*-*-elf*" "alpha*-*-linux-gnu*" "alpha*-*-gnu*" "alpha*-*-linux-uclibc*" setup_xfail "alpha*-*-netbsd*" setup_xfail "hppa*-*-*" setup_xfail "ia64-*-*" diff -urN binutils-2.16.90.0.2-dist/libtool.m4 binutils-2.16.90.0.2/libtool.m4 --- binutils-2.16.90.0.2-dist/libtool.m4 2004-07-27 23:36:06.000000000 -0500 +++ binutils-2.16.90.0.2/libtool.m4 2005-04-30 11:35:54.062043784 -0500 @@ -645,6 +645,11 @@ lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` ;; +linux-uclibc*) + lt_cv_deplibs_check_method=pass_all + lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` + ;; + netbsd* | knetbsd*-gnu) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then [lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'] diff -urN binutils-2.16.90.0.2-dist/ltconfig binutils-2.16.90.0.2/ltconfig --- binutils-2.16.90.0.2-dist/ltconfig 2004-11-22 14:33:30.000000000 -0600 +++ binutils-2.16.90.0.2/ltconfig 2005-04-30 11:22:10.594229920 -0500 @@ -602,6 +602,7 @@ # Transform linux* to *-*-linux-gnu*, to support old configure scripts. case $host_os in +linux-uclibc*) ;; linux-gnu*) ;; linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` esac @@ -1270,6 +1271,23 @@ dynamic_linker='GNU/Linux ld.so' ;; +linux-uclibc*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' + soname_spec='${libname}${release}.so$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + # Assume using the uClibc dynamic linker. + dynamic_linker="uClibc ld.so" + ;; + netbsd*) need_lib_prefix=no need_version=no diff -urN binutils-2.16.90.0.2-dist/opcodes/configure binutils-2.16.90.0.2/opcodes/configure --- binutils-2.16.90.0.2-dist/opcodes/configure 2005-04-29 12:50:31.000000000 -0500 +++ binutils-2.16.90.0.2/opcodes/configure 2005-04-30 11:17:07.168357664 -0500 @@ -3588,6 +3588,11 @@ lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` ;; +linux-uclibc*) + lt_cv_deplibs_check_method=pass_all + lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` + ;; + netbsd* | knetbsd*-gnu) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' geexbox-0.98.7/packages/binutils/scripts/0000755000175000017500000000000010335100770017354 5ustar aurelaurelgeexbox-0.98.7/packages/binutils/scripts/libstrip0000755000175000017500000000210310335100770021126 0ustar aurelaurel#!/bin/sh . config/options LIB=$1 LIBA=$2 PROG=$3 SO=$4 PROG_SYMS=$5 LDSCRIPT=`ls $ROOT/$TOOLCHAIN/$TARGET_NAME/lib/ldscripts/elf*$TARGET_ARCH.xs` if [ ! -f $LIBA ]; then echo "ERROR $LIBA doesn't exists." exit 1 fi if [ -f $LIB -a $LIB -nt $LIBA ]; then for i in $PROG $LDSCRIPT $0; do [ $i -nt $LIB ] && NEED_TO_STRIP=yes && break done [ "$NEED_TO_STRIP" = yes ] || exit 0 fi echo -n "stripping $LIB ..." for i in $SO; do SO_SYMS="$SO_SYMS `$TARGET_NM --dynamic $i | sed -n 's/^........ [ABDGTW] \(..*\)/\1/p'`" done for i in $PROG; do if [ -f $i ]; then for j in `$TARGET_NM --dynamic $i | sed -n 's/^........ [BUV] \(..*\)/\1/p'`; do (echo "$SO_SYMS" | grep $j >/dev/null) || (echo "$PROG_SYMS" | grep $j >/dev/null) || PROG_SYMS="$PROG_SYMS $j" done fi done echo "INCLUDE $LDSCRIPT" > /tmp/ldscript for i in $PROG_SYMS; do echo "EXTERN($i)" >> /tmp/ldscript done [ "$DEBUG" != yes ] && SFLAG=-s $TARGET_CC $SFLAG -Wl,-warn-common -shared -o $LIB -Wl,-soname,`basename $LIB` -Wl,--script=/tmp/ldscript $LIBA echo " done" rm -f /tmp/ldscript geexbox-0.98.7/packages/binutils/url0000644000175000017500000000007410335100770016413 0ustar aurelaurelftp://ftp.ciril.fr/pub/gnu/binutils/binutils-2.16.1.tar.bz2 geexbox-0.98.7/packages/bootsplash/0000755000175000017500000000000010335100770016212 5ustar aurelaurelgeexbox-0.98.7/packages/bootsplash/build0000755000175000017500000000023610335100770017240 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain setup_toolchain host make -C $BUILD/$1*/Utilities \ CC=$CC \ CFLAGS="$CFLAGS" \ splash geexbox-0.98.7/packages/bootsplash/patches/0000755000175000017500000000000010335100770017641 5ustar aurelaurelgeexbox-0.98.7/packages/bootsplash/patches/10_nosilentjpeg.diff0000644000175000017500000000105410335100770023474 0ustar aurelaurel--- bootsplash-3.1.orig/Utilities/splash.c 2004-09-20 20:54:42.832461640 +0200 +++ bootsplash-3.1/Utilities/splash.c 2004-09-20 23:49:27.094611528 +0200 @@ -517,13 +517,13 @@ exit(1); } fclose(sfp); - if (sboxcount) - memmove(pic + 47 + l + boxcount * 12, - sboxes, sboxcount * 12); - silentl += sboxcount * 12; - l += silentl; } fclose(fp); + if (sboxcount) + memmove(pic + 47 + l + boxcount * 12, + sboxes, sboxcount * 12); + silentl += sboxcount * 12; + l += silentl; } else { l = 0; pic = calloc(47, 1); geexbox-0.98.7/packages/bootsplash/url0000644000175000017500000000012410335100770016734 0ustar aurelaurelftp://ftp.openbios.org/pub/bootsplash/rpm-sources/bootsplash/bootsplash-3.1.tar.bz2 geexbox-0.98.7/packages/busybox/0000755000175000017500000000000010335100770015527 5ustar aurelaurelgeexbox-0.98.7/packages/busybox/build0000755000175000017500000000011510335100770016551 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain cd $BUILD/$1* make $1 geexbox-0.98.7/packages/busybox/config/0000755000175000017500000000000010335100770016774 5ustar aurelaurelgeexbox-0.98.7/packages/busybox/config/busybox.conf0000644000175000017500000003657010335100770021351 0ustar aurelaurel# # Automatically generated make config: don't edit # HAVE_DOT_CONFIG=y # # General Configuration # # CONFIG_FEATURE_BUFFERS_USE_MALLOC is not set CONFIG_FEATURE_BUFFERS_GO_ON_STACK=y # CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set # CONFIG_FEATURE_VERBOSE_USAGE is not set CONFIG_FEATURE_INSTALLER=y # CONFIG_LOCALE_SUPPORT is not set # CONFIG_FEATURE_DEVFS is not set # CONFIG_FEATURE_DEVPTS is not set # CONFIG_FEATURE_CLEAN_UP is not set # CONFIG_FEATURE_SUID is not set # CONFIG_FEATURE_SUID_CONFIG is not set # CONFIG_FEATURE_SUID_CONFIG_QUIET is not set # CONFIG_SELINUX is not set # # Build Options # # CONFIG_STATIC is not set CONFIG_LFS=y USING_CROSS_COMPILER=y CROSS_COMPILER_PREFIX="" EXTRA_CFLAGS_OPTIONS="" # # Installation Options # # CONFIG_INSTALL_NO_USR is not set PREFIX="./_install" # # Archival Utilities # # CONFIG_AR is not set # CONFIG_FEATURE_AR_LONG_FILENAMES is not set # CONFIG_BUNZIP2 is not set # CONFIG_CPIO is not set # CONFIG_DPKG is not set # CONFIG_DPKG_DEB is not set # CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set # CONFIG_GUNZIP is not set # CONFIG_FEATURE_GUNZIP_UNCOMPRESS is not set # CONFIG_GZIP is not set CONFIG_LZMACAT=y # CONFIG_RPM2CPIO is not set # CONFIG_RPM is not set CONFIG_TAR=y # CONFIG_FEATURE_TAR_CREATE is not set # CONFIG_FEATURE_TAR_BZIP2 is not set # CONFIG_FEATURE_TAR_FROM is not set # CONFIG_FEATURE_TAR_GZIP is not set # CONFIG_FEATURE_TAR_COMPRESS is not set # CONFIG_FEATURE_TAR_OLDGNU_COMPATABILITY is not set CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y # CONFIG_FEATURE_TAR_LONG_OPTIONS is not set # CONFIG_UNCOMPRESS is not set # CONFIG_UNZIP is not set # # Common options for cpio and tar # # CONFIG_FEATURE_UNARCHIVE_TAPE is not set # CONFIG_FEATURE_DEB_TAR_GZ is not set # CONFIG_FEATURE_DEB_TAR_BZ2 is not set # # Coreutils # # CONFIG_BASENAME is not set # CONFIG_CAL is not set CONFIG_CAT=y # CONFIG_CHGRP is not set # CONFIG_CHMOD is not set # CONFIG_CHOWN is not set # CONFIG_CHROOT is not set # CONFIG_CMP is not set # CONFIG_COMM is not set CONFIG_CP=y CONFIG_CUT=y # CONFIG_DATE is not set # CONFIG_FEATURE_DATE_ISOFMT is not set CONFIG_DD=y # CONFIG_DF is not set # CONFIG_DIRNAME is not set # CONFIG_DOS2UNIX is not set # CONFIG_UNIX2DOS is not set # CONFIG_DU is not set # CONFIG_FEATURE_DU_DEFALT_BLOCKSIZE_1K is not set CONFIG_ECHO=y CONFIG_FEATURE_FANCY_ECHO=y # CONFIG_ENV is not set # CONFIG_EXPR is not set # CONFIG_FALSE is not set # CONFIG_FOLD is not set CONFIG_HEAD=y # CONFIG_FEATURE_FANCY_HEAD is not set # CONFIG_HOSTID is not set # CONFIG_ID is not set # CONFIG_INSTALL is not set # CONFIG_LENGTH is not set CONFIG_LN=y # CONFIG_LOGNAME is not set CONFIG_LS=y # CONFIG_FEATURE_LS_FILETYPES is not set # CONFIG_FEATURE_LS_FOLLOWLINKS is not set # CONFIG_FEATURE_LS_RECURSIVE is not set CONFIG_FEATURE_LS_SORTFILES=y # CONFIG_FEATURE_LS_TIMESTAMPS is not set # CONFIG_FEATURE_LS_USERNAME is not set # CONFIG_FEATURE_LS_COLOR is not set # CONFIG_FEATURE_LS_COLOR_IS_DEFAULT is not set # CONFIG_MD5SUM is not set CONFIG_MKDIR=y CONFIG_MKFIFO=y # CONFIG_MKNOD is not set CONFIG_MV=y # CONFIG_NICE is not set # CONFIG_NOHUP is not set # CONFIG_OD is not set # CONFIG_PRINTENV is not set # CONFIG_PRINTF is not set # CONFIG_PWD is not set # CONFIG_REALPATH is not set CONFIG_RM=y CONFIG_RMDIR=y # CONFIG_SEQ is not set # CONFIG_SHA1SUM is not set CONFIG_SLEEP=y # CONFIG_FEATURE_FANCY_SLEEP is not set CONFIG_SORT=y # CONFIG_FEATURE_SORT_BIG is not set # CONFIG_STAT is not set # CONFIG_FEATURE_STAT_FORMAT is not set # CONFIG_STTY is not set # CONFIG_SUM is not set # CONFIG_SYNC is not set # CONFIG_TAIL is not set # CONFIG_FEATURE_FANCY_TAIL is not set # CONFIG_TEE is not set # CONFIG_FEATURE_TEE_USE_BLOCK_IO is not set CONFIG_TEST=y # # test (forced enabled for use with shell) # # CONFIG_FEATURE_TEST_64 is not set # CONFIG_TOUCH is not set # CONFIG_TR is not set # CONFIG_FEATURE_TR_CLASSES is not set # CONFIG_FEATURE_TR_EQUIV is not set # CONFIG_TRUE is not set # CONFIG_TTY is not set # CONFIG_UNAME is not set # CONFIG_UNIQ is not set # CONFIG_USLEEP is not set # CONFIG_UUDECODE is not set # CONFIG_UUENCODE is not set # CONFIG_WATCH is not set # CONFIG_WC is not set # CONFIG_WHO is not set # CONFIG_WHOAMI is not set # CONFIG_YES is not set # # Common options for cp and mv # # CONFIG_FEATURE_PRESERVE_HARDLINKS is not set # # Common options for ls and more # # CONFIG_FEATURE_AUTOWIDTH is not set # # Common options for df, du, ls # # CONFIG_FEATURE_HUMAN_READABLE is not set # CONFIG_FEATURE_MD5_SHA1_SUM_CHECK is not set # # Console Utilities # CONFIG_CHVT=y # CONFIG_CLEAR is not set # CONFIG_DEALLOCVT is not set # CONFIG_DUMPKMAP is not set # CONFIG_LOADFONT is not set # CONFIG_LOADKMAP is not set # CONFIG_OPENVT is not set # CONFIG_RESET is not set # CONFIG_SETCONSOLE is not set # CONFIG_SETKEYCODES is not set # # Debian Utilities # # CONFIG_MKTEMP is not set # CONFIG_PIPE_PROGRESS is not set # CONFIG_READLINK is not set # CONFIG_FEATURE_READLINK_FOLLOW is not set # CONFIG_RUN_PARTS is not set # CONFIG_START_STOP_DAEMON is not set # CONFIG_WHICH is not set # # Linux Ext2 FS Progs # # CONFIG_CHATTR is not set # CONFIG_E2FSCK is not set # CONFIG_FSCK is not set # CONFIG_LSATTR is not set CONFIG_MKE2FS=y # CONFIG_TUNE2FS is not set # CONFIG_E2LABEL is not set # CONFIG_FINDFS is not set # # Editors # # CONFIG_AWK is not set # CONFIG_FEATURE_AWK_MATH is not set # CONFIG_PATCH is not set CONFIG_SED=y # CONFIG_VI is not set # CONFIG_FEATURE_VI_COLON is not set # CONFIG_FEATURE_VI_YANKMARK is not set # CONFIG_FEATURE_VI_SEARCH is not set # CONFIG_FEATURE_VI_USE_SIGNALS is not set # CONFIG_FEATURE_VI_DOT_CMD is not set # CONFIG_FEATURE_VI_READONLY is not set # CONFIG_FEATURE_VI_SETOPTS is not set # CONFIG_FEATURE_VI_SET is not set # CONFIG_FEATURE_VI_WIN_RESIZE is not set # CONFIG_FEATURE_VI_OPTIMIZE_CURSOR is not set # # Finding Utilities # CONFIG_FIND=y # CONFIG_FEATURE_FIND_MTIME is not set # CONFIG_FEATURE_FIND_PERM is not set # CONFIG_FEATURE_FIND_TYPE is not set # CONFIG_FEATURE_FIND_XDEV is not set # CONFIG_FEATURE_FIND_NEWER is not set # CONFIG_FEATURE_FIND_INUM is not set # CONFIG_FEATURE_FIND_EXEC is not set CONFIG_GREP=y # CONFIG_FEATURE_GREP_EGREP_ALIAS is not set # CONFIG_FEATURE_GREP_FGREP_ALIAS is not set # CONFIG_FEATURE_GREP_CONTEXT is not set # CONFIG_XARGS is not set # CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION is not set # CONFIG_FEATURE_XARGS_SUPPORT_QUOTES is not set # CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT is not set # CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM is not set # # Init Utilities # # CONFIG_INIT is not set # CONFIG_FEATURE_USE_INITTAB is not set # CONFIG_FEATURE_INITRD is not set # CONFIG_FEATURE_INIT_COREDUMPS is not set # CONFIG_FEATURE_INIT_SCTTY is not set # CONFIG_FEATURE_EXTRA_QUIET is not set # CONFIG_HALT is not set # CONFIG_MESG is not set CONFIG_POWEROFF=y CONFIG_REBOOT=y # # Login/Password Management Utilities # # CONFIG_USE_BB_PWD_GRP is not set # CONFIG_ADDGROUP is not set # CONFIG_DELGROUP is not set # CONFIG_ADDUSER is not set # CONFIG_DELUSER is not set # CONFIG_GETTY is not set # CONFIG_FEATURE_UTMP is not set # CONFIG_FEATURE_WTMP is not set # CONFIG_LOGIN is not set # CONFIG_FEATURE_SECURETTY is not set # CONFIG_PASSWD is not set # CONFIG_SU is not set # CONFIG_SULOGIN is not set # CONFIG_VLOCK is not set # CONFIG_FEATURE_SHADOWPASSWDS is not set # CONFIG_USE_BB_SHADOW is not set # # Miscellaneous Utilities # # CONFIG_ADJTIMEX is not set # CONFIG_BBCONFIG is not set # CONFIG_CROND is not set # CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set # CONFIG_CRONTAB is not set # CONFIG_DC is not set # CONFIG_DEVFSD is not set # CONFIG_DEVFSD_MODLOAD is not set # CONFIG_DEVFSD_FG_NP is not set # CONFIG_DEVFSD_VERBOSE is not set CONFIG_EJECT=y # CONFIG_LAST is not set # CONFIG_LESS is not set # CONFIG_FEATURE_LESS_BRACKETS is not set # CONFIG_FEATURE_LESS_FLAGS is not set # CONFIG_FEATURE_LESS_FLAGCS is not set # CONFIG_FEATURE_LESS_MARKS is not set # CONFIG_FEATURE_LESS_REGEXP is not set CONFIG_HDPARM=y # CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set # CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set # CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set # CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set # CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set # CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set # CONFIG_MAKEDEVS is not set # CONFIG_FEATURE_MAKEDEVS_LEAF is not set # CONFIG_FEATURE_MAKEDEVS_TABLE is not set # CONFIG_MOUNTPOINT is not set # CONFIG_MT is not set # BB_APPLET_RUNLEVEL is not set # CONFIG_RX is not set # CONFIG_STRINGS is not set # CONFIG_SETSID is not set # CONFIG_TIME is not set # CONFIG_WATCHDOG is not set # # Linux Module Utilities # CONFIG_INSMOD=y # CONFIG_FEATURE_2_4_MODULES is not set CONFIG_FEATURE_2_6_MODULES=y # CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set # CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set # CONFIG_FEATURE_INSMOD_LOADINKMEM is not set # CONFIG_FEATURE_INSMOD_LOAD_MAP is not set # CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set # CONFIG_LSMOD is not set # CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT is not set # CONFIG_FEATURE_QUERY_MODULE_INTERFACE is not set CONFIG_MODPROBE=y CONFIG_RMMOD=y CONFIG_FEATURE_CHECK_TAINTED_MODULE=y # # Networking Utilities # # CONFIG_FEATURE_IPV6 is not set # CONFIG_ARPING is not set # CONFIG_ETHER_WAKE is not set # CONFIG_FAKEIDENTD is not set # CONFIG_FTPGET is not set # CONFIG_FTPPUT is not set # CONFIG_HOSTNAME is not set CONFIG_HTTPD=y # CONFIG_FEATURE_HTTPD_USAGE_FROM_INETD_ONLY is not set CONFIG_FEATURE_HTTPD_BASIC_AUTH=y # CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set # CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP is not set # CONFIG_FEATURE_HTTPD_SETUID is not set # CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES is not set CONFIG_FEATURE_HTTPD_CGI=y # CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set # CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set CONFIG_IFCONFIG=y # CONFIG_FEATURE_IFCONFIG_STATUS is not set # CONFIG_FEATURE_IFCONFIG_SLIP is not set # CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set # CONFIG_FEATURE_IFCONFIG_HW is not set # CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS is not set # CONFIG_IFUPDOWN is not set # CONFIG_FEATURE_IFUPDOWN_IP is not set # CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN is not set # CONFIG_FEATURE_IFUPDOWN_IPV4 is not set # CONFIG_FEATURE_IFUPDOWN_IPV6 is not set # CONFIG_FEATURE_IFUPDOWN_IPX is not set # CONFIG_FEATURE_IFUPDOWN_MAPPING is not set # CONFIG_INETD is not set # CONFIG_FEATURE_INETD_SUPPORT_BILTIN_ECHO is not set # CONFIG_FEATURE_INETD_SUPPORT_BILTIN_DISCARD is not set # CONFIG_FEATURE_INETD_SUPPORT_BILTIN_TIME is not set # CONFIG_FEATURE_INETD_SUPPORT_BILTIN_DAYTIME is not set # CONFIG_FEATURE_INETD_SUPPORT_BILTIN_CHARGEN is not set # CONFIG_FEATURE_INETD_RPC is not set # CONFIG_IP is not set # CONFIG_FEATURE_IP_ADDRESS is not set # CONFIG_FEATURE_IP_LINK is not set # CONFIG_FEATURE_IP_ROUTE is not set # CONFIG_FEATURE_IP_TUNNEL is not set # CONFIG_IPCALC is not set # CONFIG_FEATURE_IPCALC_FANCY is not set # CONFIG_IPADDR is not set # CONFIG_IPLINK is not set # CONFIG_IPROUTE is not set # CONFIG_IPTUNNEL is not set # CONFIG_NAMEIF is not set # CONFIG_NC is not set # CONFIG_NC_GAPING_SECURITY_HOLE is not set # CONFIG_NETSTAT is not set # CONFIG_NSLOOKUP is not set # CONFIG_PING is not set # CONFIG_FEATURE_FANCY_PING is not set # CONFIG_PING6 is not set # CONFIG_FEATURE_FANCY_PING6 is not set CONFIG_ROUTE=y # CONFIG_TELNET is not set # CONFIG_FEATURE_TELNET_TTYPE is not set # CONFIG_FEATURE_TELNET_AUTOLOGIN is not set CONFIG_TELNETD=y # CONFIG_FEATURE_TELNETD_INETD is not set # CONFIG_TFTP is not set # CONFIG_FEATURE_TFTP_GET is not set # CONFIG_FEATURE_TFTP_PUT is not set # CONFIG_FEATURE_TFTP_BLOCKSIZE is not set # CONFIG_FEATURE_TFTP_DEBUG is not set # CONFIG_TRACEROUTE is not set # CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set # CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set # CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set # CONFIG_VCONFIG is not set # CONFIG_WGET is not set # CONFIG_FEATURE_WGET_STATUSBAR is not set # CONFIG_FEATURE_WGET_AUTHENTICATION is not set # CONFIG_FEATURE_WGET_IP6_LITERAL is not set # # udhcp Server/Client # # CONFIG_UDHCPD is not set CONFIG_UDHCPC=y # CONFIG_DUMPLEASES is not set # CONFIG_FEATURE_UDHCP_SYSLOG is not set # CONFIG_FEATURE_UDHCP_DEBUG is not set # CONFIG_ZCIP is not set # # Process Utilities # # CONFIG_FREE is not set # CONFIG_FUSER is not set # CONFIG_KILL is not set # CONFIG_KILLALL is not set CONFIG_PIDOF=y # CONFIG_FEATURE_PIDOF_SINGLE is not set # CONFIG_FEATURE_PIDOF_OMIT is not set # CONFIG_PS is not set # CONFIG_FEATURE_PS_WIDE is not set # CONFIG_RENICE is not set # CONFIG_BB_SYSCTL is not set # CONFIG_TOP is not set # CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE is not set # CONFIG_UPTIME is not set # # Shells # CONFIG_FEATURE_SH_IS_ASH=y # CONFIG_FEATURE_SH_IS_HUSH is not set # CONFIG_FEATURE_SH_IS_LASH is not set # CONFIG_FEATURE_SH_IS_MSH is not set # CONFIG_FEATURE_SH_IS_NONE is not set CONFIG_ASH=y # # Ash Shell Options # # CONFIG_ASH_JOB_CONTROL is not set # CONFIG_ASH_READ_NCHARS is not set # CONFIG_ASH_READ_TIMEOUT is not set # CONFIG_ASH_ALIAS is not set CONFIG_ASH_MATH_SUPPORT=y # CONFIG_ASH_MATH_SUPPORT_64 is not set # CONFIG_ASH_GETOPTS is not set # CONFIG_ASH_CMDCMD is not set # CONFIG_ASH_BUILTIN_ECHO is not set # CONFIG_ASH_MAIL is not set CONFIG_ASH_OPTIMIZE_FOR_SIZE=y # CONFIG_ASH_RANDOM_SUPPORT is not set # CONFIG_ASH_EXPAND_PRMT is not set # CONFIG_HUSH is not set # CONFIG_LASH is not set # CONFIG_MSH is not set # # Bourne Shell Options # # CONFIG_FEATURE_SH_EXTRA_QUIET is not set # CONFIG_FEATURE_SH_STANDALONE_SHELL is not set CONFIG_FEATURE_COMMAND_EDITING=y # CONFIG_FEATURE_COMMAND_EDITING_VI is not set CONFIG_FEATURE_COMMAND_HISTORY=15 # CONFIG_FEATURE_COMMAND_SAVEHISTORY is not set CONFIG_FEATURE_COMMAND_TAB_COMPLETION=y # CONFIG_FEATURE_COMMAND_USERNAME_COMPLETION is not set # CONFIG_FEATURE_SH_FANCY_PROMPT is not set # # System Logging Utilities # # CONFIG_SYSLOGD is not set # CONFIG_FEATURE_ROTATE_LOGFILE is not set # CONFIG_FEATURE_REMOTE_LOG is not set # CONFIG_FEATURE_IPC_SYSLOG is not set CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=0 # CONFIG_LOGREAD is not set # CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING is not set # CONFIG_KLOGD is not set # CONFIG_LOGGER is not set # # Linux System Utilities # CONFIG_DMESG=y CONFIG_FBSET=y # CONFIG_FEATURE_FBSET_FANCY is not set # CONFIG_FEATURE_FBSET_READMODE is not set # CONFIG_FDFLUSH is not set # CONFIG_FDFORMAT is not set # CONFIG_FDISK is not set FDISK_SUPPORT_LARGE_DISKS=y # CONFIG_FEATURE_FDISK_WRITABLE is not set # CONFIG_FEATURE_AIX_LABEL is not set # CONFIG_FEATURE_SGI_LABEL is not set # CONFIG_FEATURE_SUN_LABEL is not set # CONFIG_FEATURE_OSF_LABEL is not set # CONFIG_FEATURE_FDISK_ADVANCED is not set # CONFIG_FREERAMDISK is not set # CONFIG_FSCK_MINIX is not set # CONFIG_MKFS_MINIX is not set # CONFIG_FEATURE_MINIX2 is not set # CONFIG_GETOPT is not set # CONFIG_HEXDUMP is not set # CONFIG_HWCLOCK is not set # CONFIG_FEATURE_HWCLOCK_LONGOPTIONS is not set # CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set # CONFIG_IPCRM is not set # CONFIG_IPCS is not set # CONFIG_LOSETUP is not set # CONFIG_MKSWAP is not set # CONFIG_MORE is not set # CONFIG_FEATURE_USE_TERMIOS is not set CONFIG_PIVOT_ROOT=y # CONFIG_SWITCH_ROOT is not set # CONFIG_RDATE is not set # CONFIG_READPROFILE is not set # CONFIG_SWAPONOFF is not set CONFIG_MOUNT=y CONFIG_FEATURE_MOUNT_NFS=y CONFIG_UMOUNT=y # # Common options for mount/umount # # CONFIG_FEATURE_MOUNT_LOOP is not set # CONFIG_FEATURE_MTAB_SUPPORT is not set # # Debugging Options # # CONFIG_DEBUG is not set # CONFIG_NO_DEBUG_LIB is not set # CONFIG_DMALLOC is not set # CONFIG_EFENCE is not set geexbox-0.98.7/packages/busybox/config/busybox.devtools.conf0000644000175000017500000000042210335100770023172 0ustar aurelaurelCONFIG_CHMOD=y CONFIG_LSMOD=y CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y CONFIG_FEATURE_IFCONFIG_STATUS=y CONFIG_NETSTAT=y CONFIG_PING=y CONFIG_FEATURE_FANCY_PING=y CONFIG_KILL=y CONFIG_KILLALL=y CONFIG_PS=y CONFIG_FEATURE_PS_WIDE=y CONFIG_MORE=y CONFIG_FEATURE_USE_TERMIOS=y geexbox-0.98.7/packages/busybox/init.d/0000755000175000017500000000000010335100770016714 5ustar aurelaurelgeexbox-0.98.7/packages/busybox/init.d/10_eject0000755000175000017500000000154710335100770020243 0ustar aurelaurel#!/bin/sh # # eject CD if booted from cdrom and their is no media files on it # # runlevels: geexbox, debug if test -n "$CDROM"; then echo "### Eject CDROM ###" ( # add recognized files extension to the EXTS list for i in `cat /etc/file_ext`; do if [ -z "$EXTS" ]; then EXTS="$i" else EXTS="$EXTS\|$i" fi done # add recognized images extension to the EXTS list if [ -x /usr/bin/fbi ]; then for i in `cat /etc/img_ext`; do EXTS="$EXTS\|$i"; done fi # add recognized playlists extension to the EXTS list for i in `cat /etc/list_ext`; do EXTS="$EXTS\|$i"; done # check if their is recognized media files on the CD if [ -z "`find "$CDROM" | grep -v /GEEXBOX/ | grep -i "\.\($EXTS\)\$"`" ]; then # eject the CD (except when started with make exec) [ -e /dev/cdrom -a ! -f /EXEC ] && eject fi )& fi exit 0 geexbox-0.98.7/packages/busybox/init.d/52_telnet0000755000175000017500000000043510335100770020445 0ustar aurelaurel#!/bin/sh # # start telnet daemon # # runlevels: geexbox, debug # get options test -f /etc/network || exit 1 . /etc/network if test "$TELNET_SERVER" = "yes" -a -f /etc/issue; then echo "### Starting telnet daemon ###" /usr/sbin/telnetd -f /etc/issue >/dev/null 2>&1 & fi exit 0 geexbox-0.98.7/packages/busybox/init.d/53_httpd0000755000175000017500000000040210335100770020270 0ustar aurelaurel#!/bin/sh # # start http daemon # # runlevels: geexbox, debug # get options test -f /etc/network || exit 1 . /etc/network if test "$HTTP_SERVER" = "yes"; then echo "### Starting http daemon ###" /usr/sbin/httpd -h /var/www >/dev/null 2>&1 & fi exit 0 geexbox-0.98.7/packages/busybox/init.d/80_debug0000755000175000017500000000044110335100770020236 0ustar aurelaurel#!/bin/sh # # start a debugging shell # # runlevels: debug # give a shell to MPlayer in debug mode echo "### Starting debugging shell ###" sed -i 's%ok=\"quit 166\"/>%ok=\"quit 166\"/> %' /etc/mplayer/menu.conf # start shell /bin/sh exit 0 geexbox-0.98.7/packages/busybox/init.d/80_nodebug0000755000175000017500000000015710335100770020577 0ustar aurelaurel#!/bin/sh # # removes kernel modules from ramdisk # # runlevels: geexbox, install rm -rf /lib/modules exit 0 geexbox-0.98.7/packages/busybox/init.d/90_umount0000755000175000017500000000064410335100770020505 0ustar aurelaurel#!/bin/sh # # umount all mounted disks # # runlevels: geexbox, debug echo "### Unmounting disks and shares ###" # umount samba shares for DIR in /mnt/shares/*/*; do test -d "$DIR" && umount "$DIR" >/dev/null 2>&1 && rmdir "$DIR" done # when started with make exec, umount partitions if test -f /EXEC; then for DIR in /mnt/*; do test -d "$DIR" && umount "$DIR" >/dev/null 2>&1 done umount /proc fi exit 0 geexbox-0.98.7/packages/busybox/install0000755000175000017500000000030310335100770017117 0ustar aurelaurel#!/bin/sh . config/options mkdir -p $INSTALL/bin mkdir -p $INSTALL/usr/share/udhcpc cp $BUILD/$1*/$1 $INSTALL/bin cp $PACKAGES/$1/scripts/udhcp.script $INSTALL/usr/share/udhcpc/default.script geexbox-0.98.7/packages/busybox/need_unpack0000755000175000017500000000017210335100770017731 0ustar aurelaurel#!/bin/sh . config/options STAMP=$STAMPS/$1/unpack test $PACKAGES/$1/config/$1.conf -nt $STAMP && rm -f $STAMP exit 0 geexbox-0.98.7/packages/busybox/patches/0000755000175000017500000000000010335100770017156 5ustar aurelaurelgeexbox-0.98.7/packages/busybox/patches/30_lzma.diff0000644000175000017500000011444710335100770021270 0ustar aurelaurel* LZMA unarchiver BusyBox applet, from http://www.geocities.com/mctiew/ffw/lzma.assorted3.tgz diff -Nuar busybox-1.00.orig/archival/Config.in busybox-1.00.new/archival/Config.in --- busybox-1.00.orig/archival/Config.in 2005-06-19 20:47:08.000000000 -0600 +++ busybox-1.00.new/archival/Config.in 2005-06-19 20:54:43.000000000 -0600 @@ -121,6 +121,12 @@ gzip is used to compress files. It's probably the most widely used UNIX compression program. +config CONFIG_LZMACAT + bool "lzmacat" + default n + help + lzmacat decompresses a given file to STUOUT + config CONFIG_RPM2CPIO bool "rpm2cpio" default n diff -Nuar busybox-1.00.orig/archival/Makefile.in busybox-1.00.new/archival/Makefile.in --- busybox-1.00.orig/archival/Makefile.in 2005-06-19 20:47:10.000000000 -0600 +++ busybox-1.00.new/archival/Makefile.in 2005-06-19 20:54:43.000000000 -0600 @@ -32,6 +32,7 @@ ARCHIVAL-$(CONFIG_DPKG_DEB) += dpkg_deb.o ARCHIVAL-$(CONFIG_GUNZIP) += gunzip.o ARCHIVAL-$(CONFIG_GZIP) += gzip.o +ARCHIVAL-$(CONFIG_LZMACAT) += lzmacat.o ARCHIVAL-$(CONFIG_RPM2CPIO) += rpm2cpio.o ARCHIVAL-$(CONFIG_RPM) += rpm.o ARCHIVAL-$(CONFIG_TAR) += tar.o diff -Nuar busybox-1.00.orig/archival/libunarchive/LzmaDecode.c busybox-1.00.new/archival/libunarchive/LzmaDecode.c --- busybox-1.00.orig/archival/libunarchive/LzmaDecode.c 1969-12-31 17:00:00.000000000 -0700 +++ busybox-1.00.new/archival/libunarchive/LzmaDecode.c 2005-06-19 22:09:32.000000000 -0600 @@ -0,0 +1,588 @@ +/* + LzmaDecode.c + LZMA Decoder (optimized for Speed version) + + LZMA SDK 4.22 Copyright (c) 1999-2005 Igor Pavlov (2005-06-10) + http://www.7-zip.org/ + + LZMA SDK is licensed under two licenses: + 1) GNU Lesser General Public License (GNU LGPL) + 2) Common Public License (CPL) + It means that you can select one of these two licenses and + follow rules of that license. + + SPECIAL EXCEPTION: + Igor Pavlov, as the author of this Code, expressly permits you to + statically or dynamically link your Code (or bind by name) to the + interfaces of this file without subjecting your linked Code to the + terms of the CPL or GNU LGPL. Any modifications or additions + to this file, however, are subject to the LGPL or CPL terms. +*/ + +#include "LzmaDecode.h" + +#ifndef Byte +#define Byte unsigned char +#endif + +#define kNumTopBits 24 +#define kTopValue ((UInt32)1 << kNumTopBits) + +#define kNumBitModelTotalBits 11 +#define kBitModelTotal (1 << kNumBitModelTotalBits) +#define kNumMoveBits 5 + +#define RC_READ_BYTE (*Buffer++) + +#define RC_INIT2 Code = 0; Range = 0xFFFFFFFF; \ + { int i; for(i = 0; i < 5; i++) { RC_TEST; Code = (Code << 8) | RC_READ_BYTE; }} + +#ifdef _LZMA_IN_CB + +#define RC_TEST { if (Buffer == BufferLim) \ + { SizeT size; int result = InCallback->Read(InCallback, &Buffer, &size); if (result != LZMA_RESULT_OK) return result; \ + BufferLim = Buffer + size; if (size == 0) return LZMA_RESULT_DATA_ERROR; }} + +#define RC_INIT Buffer = BufferLim = 0; RC_INIT2 + +#else + +#define RC_TEST { if (Buffer == BufferLim) return LZMA_RESULT_DATA_ERROR; } + +#define RC_INIT(buffer, bufferSize) Buffer = buffer; BufferLim = buffer + bufferSize; RC_INIT2 + +#endif + +#define RC_NORMALIZE if (Range < kTopValue) { RC_TEST; Range <<= 8; Code = (Code << 8) | RC_READ_BYTE; } + +#define IfBit0(p) RC_NORMALIZE; bound = (Range >> kNumBitModelTotalBits) * *(p); if (Code < bound) +#define UpdateBit0(p) Range = bound; *(p) += (kBitModelTotal - *(p)) >> kNumMoveBits; +#define UpdateBit1(p) Range -= bound; Code -= bound; *(p) -= (*(p)) >> kNumMoveBits; + +#define RC_GET_BIT2(p, mi, A0, A1) IfBit0(p) \ + { UpdateBit0(p); mi <<= 1; A0; } else \ + { UpdateBit1(p); mi = (mi + mi) + 1; A1; } + +#define RC_GET_BIT(p, mi) RC_GET_BIT2(p, mi, ; , ;) + +#define RangeDecoderBitTreeDecode(probs, numLevels, res) \ + { int i = numLevels; res = 1; \ + do { CProb *p = probs + res; RC_GET_BIT(p, res) } while(--i != 0); \ + res -= (1 << numLevels); } + + +#define kNumPosBitsMax 4 +#define kNumPosStatesMax (1 << kNumPosBitsMax) + +#define kLenNumLowBits 3 +#define kLenNumLowSymbols (1 << kLenNumLowBits) +#define kLenNumMidBits 3 +#define kLenNumMidSymbols (1 << kLenNumMidBits) +#define kLenNumHighBits 8 +#define kLenNumHighSymbols (1 << kLenNumHighBits) + +#define LenChoice 0 +#define LenChoice2 (LenChoice + 1) +#define LenLow (LenChoice2 + 1) +#define LenMid (LenLow + (kNumPosStatesMax << kLenNumLowBits)) +#define LenHigh (LenMid + (kNumPosStatesMax << kLenNumMidBits)) +#define kNumLenProbs (LenHigh + kLenNumHighSymbols) + + +#define kNumStates 12 +#define kNumLitStates 7 + +#define kStartPosModelIndex 4 +#define kEndPosModelIndex 14 +#define kNumFullDistances (1 << (kEndPosModelIndex >> 1)) + +#define kNumPosSlotBits 6 +#define kNumLenToPosStates 4 + +#define kNumAlignBits 4 +#define kAlignTableSize (1 << kNumAlignBits) + +#define kMatchMinLen 2 + +#define IsMatch 0 +#define IsRep (IsMatch + (kNumStates << kNumPosBitsMax)) +#define IsRepG0 (IsRep + kNumStates) +#define IsRepG1 (IsRepG0 + kNumStates) +#define IsRepG2 (IsRepG1 + kNumStates) +#define IsRep0Long (IsRepG2 + kNumStates) +#define PosSlot (IsRep0Long + (kNumStates << kNumPosBitsMax)) +#define SpecPos (PosSlot + (kNumLenToPosStates << kNumPosSlotBits)) +#define Align (SpecPos + kNumFullDistances - kEndPosModelIndex) +#define LenCoder (Align + kAlignTableSize) +#define RepLenCoder (LenCoder + kNumLenProbs) +#define Literal (RepLenCoder + kNumLenProbs) + +#if Literal != LZMA_BASE_SIZE +StopCompilingDueBUG +#endif + +int LzmaDecodeProperties(CLzmaProperties *propsRes, const unsigned char *propsData, int size) +{ + unsigned char prop0; + if (size < LZMA_PROPERTIES_SIZE) + return LZMA_RESULT_DATA_ERROR; + prop0 = propsData[0]; + if (prop0 >= (9 * 5 * 5)) + return LZMA_RESULT_DATA_ERROR; + { + for (propsRes->pb = 0; prop0 >= (9 * 5); propsRes->pb++, prop0 -= (9 * 5)); + for (propsRes->lp = 0; prop0 >= 9; propsRes->lp++, prop0 -= 9); + propsRes->lc = prop0; + /* + unsigned char remainder = (unsigned char)(prop0 / 9); + propsRes->lc = prop0 % 9; + propsRes->pb = remainder / 5; + propsRes->lp = remainder % 5; + */ + } + + #ifdef _LZMA_OUT_READ + { + int i; + propsRes->DictionarySize = 0; + for (i = 0; i < 4; i++) + propsRes->DictionarySize += (UInt32)(propsData[1 + i]) << (i * 8); + if (propsRes->DictionarySize == 0) + propsRes->DictionarySize = 1; + } + #endif + return LZMA_RESULT_OK; +} + +#define kLzmaStreamWasFinishedId (-1) + +int LzmaDecode(CLzmaDecoderState *vs, + #ifdef _LZMA_IN_CB + ILzmaInCallback *InCallback, + #else + const unsigned char *inStream, SizeT inSize, SizeT *inSizeProcessed, + #endif + unsigned char *outStream, SizeT outSize, SizeT *outSizeProcessed) +{ + CProb *p = vs->Probs; + SizeT nowPos = 0; + Byte previousByte = 0; + UInt32 posStateMask = (1 << (vs->Properties.pb)) - 1; + UInt32 literalPosMask = (1 << (vs->Properties.lp)) - 1; + int lc = vs->Properties.lc; + + #ifdef _LZMA_OUT_READ + + UInt32 Range = vs->Range; + UInt32 Code = vs->Code; + #ifdef _LZMA_IN_CB + const Byte *Buffer = vs->Buffer; + const Byte *BufferLim = vs->BufferLim; + #else + const Byte *Buffer = inStream; + const Byte *BufferLim = inStream + inSize; + #endif + int state = vs->State; + UInt32 rep0 = vs->Reps[0], rep1 = vs->Reps[1], rep2 = vs->Reps[2], rep3 = vs->Reps[3]; + int len = vs->RemainLen; + UInt32 globalPos = vs->GlobalPos; + UInt32 distanceLimit = vs->DistanceLimit; + + Byte *dictionary = vs->Dictionary; + UInt32 dictionarySize = vs->Properties.DictionarySize; + UInt32 dictionaryPos = vs->DictionaryPos; + + Byte tempDictionary[4]; + + #ifndef _LZMA_IN_CB + *inSizeProcessed = 0; + #endif + *outSizeProcessed = 0; + if (len == kLzmaStreamWasFinishedId) + return LZMA_RESULT_OK; + + if (dictionarySize == 0) + { + dictionary = tempDictionary; + dictionarySize = 1; + tempDictionary[0] = vs->TempDictionary[0]; + } + + if (len == kLzmaNeedInitId) + { + { + UInt32 numProbs = Literal + ((UInt32)LZMA_LIT_SIZE << (lc + vs->Properties.lp)); + UInt32 i; + for (i = 0; i < numProbs; i++) + p[i] = kBitModelTotal >> 1; + rep0 = rep1 = rep2 = rep3 = 1; + state = 0; + globalPos = 0; + distanceLimit = 0; + dictionaryPos = 0; + dictionary[dictionarySize - 1] = 0; + #ifdef _LZMA_IN_CB + RC_INIT; + #else + RC_INIT(inStream, inSize); + #endif + } + len = 0; + } + while(len != 0 && nowPos < outSize) + { + UInt32 pos = dictionaryPos - rep0; + if (pos >= dictionarySize) + pos += dictionarySize; + outStream[nowPos++] = dictionary[dictionaryPos] = dictionary[pos]; + if (++dictionaryPos == dictionarySize) + dictionaryPos = 0; + len--; + } + if (dictionaryPos == 0) + previousByte = dictionary[dictionarySize - 1]; + else + previousByte = dictionary[dictionaryPos - 1]; + + #else /* if !_LZMA_OUT_READ */ + + int state = 0; + UInt32 rep0 = 1, rep1 = 1, rep2 = 1, rep3 = 1; + int len = 0; + const Byte *Buffer; + const Byte *BufferLim; + UInt32 Range; + UInt32 Code; + + #ifndef _LZMA_IN_CB + *inSizeProcessed = 0; + #endif + *outSizeProcessed = 0; + + { + UInt32 i; + UInt32 numProbs = Literal + ((UInt32)LZMA_LIT_SIZE << (lc + vs->Properties.lp)); + for (i = 0; i < numProbs; i++) + p[i] = kBitModelTotal >> 1; + } + + #ifdef _LZMA_IN_CB + RC_INIT; + #else + RC_INIT(inStream, inSize); + #endif + + #endif /* _LZMA_OUT_READ */ + + while(nowPos < outSize) + { + CProb *prob; + UInt32 bound; + int posState = (int)( + (nowPos + #ifdef _LZMA_OUT_READ + + globalPos + #endif + ) + & posStateMask); + + prob = p + IsMatch + (state << kNumPosBitsMax) + posState; + IfBit0(prob) + { + int symbol = 1; + UpdateBit0(prob) + prob = p + Literal + (LZMA_LIT_SIZE * + ((( + (nowPos + #ifdef _LZMA_OUT_READ + + globalPos + #endif + ) + & literalPosMask) << lc) + (previousByte >> (8 - lc)))); + + if (state >= kNumLitStates) + { + int matchByte; + #ifdef _LZMA_OUT_READ + UInt32 pos = dictionaryPos - rep0; + if (pos >= dictionarySize) + pos += dictionarySize; + matchByte = dictionary[pos]; + #else + matchByte = outStream[nowPos - rep0]; + #endif + do + { + int bit; + CProb *probLit; + matchByte <<= 1; + bit = (matchByte & 0x100); + probLit = prob + 0x100 + bit + symbol; + RC_GET_BIT2(probLit, symbol, if (bit != 0) break, if (bit == 0) break) + } + while (symbol < 0x100); + } + while (symbol < 0x100) + { + CProb *probLit = prob + symbol; + RC_GET_BIT(probLit, symbol) + } + previousByte = (Byte)symbol; + + outStream[nowPos++] = previousByte; + #ifdef _LZMA_OUT_READ + if (distanceLimit < dictionarySize) + distanceLimit++; + + dictionary[dictionaryPos] = previousByte; + if (++dictionaryPos == dictionarySize) + dictionaryPos = 0; + #endif + if (state < 4) state = 0; + else if (state < 10) state -= 3; + else state -= 6; + } + else + { + UpdateBit1(prob); + prob = p + IsRep + state; + IfBit0(prob) + { + UpdateBit0(prob); + rep3 = rep2; + rep2 = rep1; + rep1 = rep0; + state = state < kNumLitStates ? 0 : 3; + prob = p + LenCoder; + } + else + { + UpdateBit1(prob); + prob = p + IsRepG0 + state; + IfBit0(prob) + { + UpdateBit0(prob); + prob = p + IsRep0Long + (state << kNumPosBitsMax) + posState; + IfBit0(prob) + { + #ifdef _LZMA_OUT_READ + UInt32 pos; + #endif + UpdateBit0(prob); + + #ifdef _LZMA_OUT_READ + if (distanceLimit == 0) + #else + if (nowPos == 0) + #endif + return LZMA_RESULT_DATA_ERROR; + + state = state < kNumLitStates ? 9 : 11; + #ifdef _LZMA_OUT_READ + pos = dictionaryPos - rep0; + if (pos >= dictionarySize) + pos += dictionarySize; + previousByte = dictionary[pos]; + dictionary[dictionaryPos] = previousByte; + if (++dictionaryPos == dictionarySize) + dictionaryPos = 0; + #else + previousByte = outStream[nowPos - rep0]; + #endif + outStream[nowPos++] = previousByte; + #ifdef _LZMA_OUT_READ + if (distanceLimit < dictionarySize) + distanceLimit++; + #endif + + continue; + } + else + { + UpdateBit1(prob); + } + } + else + { + UInt32 distance; + UpdateBit1(prob); + prob = p + IsRepG1 + state; + IfBit0(prob) + { + UpdateBit0(prob); + distance = rep1; + } + else + { + UpdateBit1(prob); + prob = p + IsRepG2 + state; + IfBit0(prob) + { + UpdateBit0(prob); + distance = rep2; + } + else + { + UpdateBit1(prob); + distance = rep3; + rep3 = rep2; + } + rep2 = rep1; + } + rep1 = rep0; + rep0 = distance; + } + state = state < kNumLitStates ? 8 : 11; + prob = p + RepLenCoder; + } + { + int numBits, offset; + CProb *probLen = prob + LenChoice; + IfBit0(probLen) + { + UpdateBit0(probLen); + probLen = prob + LenLow + (posState << kLenNumLowBits); + offset = 0; + numBits = kLenNumLowBits; + } + else + { + UpdateBit1(probLen); + probLen = prob + LenChoice2; + IfBit0(probLen) + { + UpdateBit0(probLen); + probLen = prob + LenMid + (posState << kLenNumMidBits); + offset = kLenNumLowSymbols; + numBits = kLenNumMidBits; + } + else + { + UpdateBit1(probLen); + probLen = prob + LenHigh; + offset = kLenNumLowSymbols + kLenNumMidSymbols; + numBits = kLenNumHighBits; + } + } + RangeDecoderBitTreeDecode(probLen, numBits, len); + len += offset; + } + + if (state < 4) + { + int posSlot; + state += kNumLitStates; + prob = p + PosSlot + + ((len < kNumLenToPosStates ? len : kNumLenToPosStates - 1) << + kNumPosSlotBits); + RangeDecoderBitTreeDecode(prob, kNumPosSlotBits, posSlot); + if (posSlot >= kStartPosModelIndex) + { + int numDirectBits = ((posSlot >> 1) - 1); + rep0 = (2 | ((UInt32)posSlot & 1)); + if (posSlot < kEndPosModelIndex) + { + rep0 <<= numDirectBits; + prob = p + SpecPos + rep0 - posSlot - 1; + } + else + { + numDirectBits -= kNumAlignBits; + do + { + RC_NORMALIZE + Range >>= 1; + rep0 <<= 1; + if (Code >= Range) + { + Code -= Range; + rep0 |= 1; + } + } + while (--numDirectBits != 0); + prob = p + Align; + rep0 <<= kNumAlignBits; + numDirectBits = kNumAlignBits; + } + { + int i = 1; + int mi = 1; + do + { + CProb *prob3 = prob + mi; + RC_GET_BIT2(prob3, mi, ; , rep0 |= i); + i <<= 1; + } + while(--numDirectBits != 0); + } + } + else + rep0 = posSlot; + if (++rep0 == (UInt32)(0)) + { + /* it's for stream version */ + len = kLzmaStreamWasFinishedId; + break; + } + } + + len += kMatchMinLen; + #ifdef _LZMA_OUT_READ + if (rep0 > distanceLimit) + #else + if (rep0 > nowPos) + #endif + return LZMA_RESULT_DATA_ERROR; + + #ifdef _LZMA_OUT_READ + if (dictionarySize - distanceLimit > (UInt32)len) + distanceLimit += len; + else + distanceLimit = dictionarySize; + #endif + + do + { + #ifdef _LZMA_OUT_READ + UInt32 pos = dictionaryPos - rep0; + if (pos >= dictionarySize) + pos += dictionarySize; + previousByte = dictionary[pos]; + dictionary[dictionaryPos] = previousByte; + if (++dictionaryPos == dictionarySize) + dictionaryPos = 0; + #else + previousByte = outStream[nowPos - rep0]; + #endif + len--; + outStream[nowPos++] = previousByte; + } + while(len != 0 && nowPos < outSize); + } + } + RC_NORMALIZE; + + #ifdef _LZMA_OUT_READ + vs->Range = Range; + vs->Code = Code; + vs->DictionaryPos = dictionaryPos; + vs->GlobalPos = globalPos + (UInt32)nowPos; + vs->DistanceLimit = distanceLimit; + vs->Reps[0] = rep0; + vs->Reps[1] = rep1; + vs->Reps[2] = rep2; + vs->Reps[3] = rep3; + vs->State = state; + vs->RemainLen = len; + vs->TempDictionary[0] = tempDictionary[0]; + #endif + + #ifdef _LZMA_IN_CB + vs->Buffer = Buffer; + vs->BufferLim = BufferLim; + #else + *inSizeProcessed = (SizeT)(Buffer - inStream); + #endif + *outSizeProcessed = nowPos; + return LZMA_RESULT_OK; +} diff -Nuar busybox-1.00.orig/archival/libunarchive/LzmaDecode.h busybox-1.00.new/archival/libunarchive/LzmaDecode.h --- busybox-1.00.orig/archival/libunarchive/LzmaDecode.h 1969-12-31 17:00:00.000000000 -0700 +++ busybox-1.00.new/archival/libunarchive/LzmaDecode.h 2005-06-19 22:09:39.000000000 -0600 @@ -0,0 +1,131 @@ +/* + LzmaDecode.h + LZMA Decoder interface + + LZMA SDK 4.21 Copyright (c) 1999-2005 Igor Pavlov (2005-06-08) + http://www.7-zip.org/ + + LZMA SDK is licensed under two licenses: + 1) GNU Lesser General Public License (GNU LGPL) + 2) Common Public License (CPL) + It means that you can select one of these two licenses and + follow rules of that license. + + SPECIAL EXCEPTION: + Igor Pavlov, as the author of this code, expressly permits you to + statically or dynamically link your code (or bind by name) to the + interfaces of this file without subjecting your linked code to the + terms of the CPL or GNU LGPL. Any modifications or additions + to this file, however, are subject to the LGPL or CPL terms. +*/ + +#ifndef __LZMADECODE_H +#define __LZMADECODE_H + +/* #define _LZMA_IN_CB */ +/* Use callback for input data */ + +/* #define _LZMA_OUT_READ */ +/* Use read function for output data */ + +/* #define _LZMA_PROB32 */ +/* It can increase speed on some 32-bit CPUs, + but memory usage will be doubled in that case */ + +/* #define _LZMA_LOC_OPT */ +/* Enable local speed optimizations inside code */ + +/* #define _LZMA_SYSTEM_SIZE_T */ +/* Use system's size_t. You can use it to enable 64-bit sizes supporting*/ + +#ifndef UInt32 +#ifdef _LZMA_UINT32_IS_ULONG +#define UInt32 unsigned long +#else +#define UInt32 unsigned int +#endif +#endif + +#ifndef SizeT +#ifdef _LZMA_SYSTEM_SIZE_T +#include +#define SizeT size_t +#else +#define SizeT UInt32 +#endif +#endif + +#ifdef _LZMA_PROB32 +#define CProb UInt32 +#else +#define CProb unsigned short +#endif + +#define LZMA_RESULT_OK 0 +#define LZMA_RESULT_DATA_ERROR 1 + +#ifdef _LZMA_IN_CB +typedef struct _ILzmaInCallback +{ + int (*Read)(void *object, const unsigned char **buffer, SizeT *bufferSize); +} ILzmaInCallback; +#endif + +#define LZMA_BASE_SIZE 1846 +#define LZMA_LIT_SIZE 768 + +#define LZMA_PROPERTIES_SIZE 5 + +typedef struct _CLzmaProperties +{ + int lc; + int lp; + int pb; + #ifdef _LZMA_OUT_READ + UInt32 DictionarySize; + #endif +}CLzmaProperties; + +int LzmaDecodeProperties(CLzmaProperties *propsRes, const unsigned char *propsData, int size); + +#define LzmaGetNumProbs(Properties) (LZMA_BASE_SIZE + (LZMA_LIT_SIZE << ((Properties)->lc + (Properties)->lp))) + +#define kLzmaNeedInitId (-2) + +typedef struct _CLzmaDecoderState +{ + CLzmaProperties Properties; + CProb *Probs; + + #ifdef _LZMA_IN_CB + const unsigned char *Buffer; + const unsigned char *BufferLim; + #endif + + #ifdef _LZMA_OUT_READ + unsigned char *Dictionary; + UInt32 Range; + UInt32 Code; + UInt32 DictionaryPos; + UInt32 GlobalPos; + UInt32 DistanceLimit; + UInt32 Reps[4]; + int State; + int RemainLen; + unsigned char TempDictionary[4]; + #endif +} CLzmaDecoderState; + +#ifdef _LZMA_OUT_READ +#define LzmaDecoderInit(vs) { (vs)->RemainLen = kLzmaNeedInitId; } +#endif + +int LzmaDecode(CLzmaDecoderState *vs, + #ifdef _LZMA_IN_CB + ILzmaInCallback *inCallback, + #else + const unsigned char *inStream, SizeT inSize, SizeT *inSizeProcessed, + #endif + unsigned char *outStream, SizeT outSize, SizeT *outSizeProcessed); + +#endif diff -Nuar busybox-1.00.orig/archival/libunarchive/LzmaDecode2.c busybox-1.00.new/archival/libunarchive/LzmaDecode2.c --- busybox-1.00.orig/archival/libunarchive/LzmaDecode2.c 1969-12-31 17:00:00.000000000 -0700 +++ busybox-1.00.new/archival/libunarchive/LzmaDecode2.c 2005-06-19 22:09:48.000000000 -0600 @@ -0,0 +1,400 @@ +/* + LzmaDecode2.c + + LzmaDecode2.c is derived from LzmaDecode.c so that it can co-exist + with LzmaDecode.c to provide a small file decompression using small memory. + Added Api LzmaDecodeSmall(). + + LZMA SDK is licensed under two licenses: + 1) GNU Lesser General Public License (GNU LGPL) + 2) Common Public License (CPL) + It means that you can select one of these two licenses and + follow rules of that license. + + SPECIAL EXCEPTION: + Igor Pavlov, as the author of this Code, expressly permits you to + statically or dynamically link your Code (or bind by name) to the + interfaces of this file without subjecting your linked Code to the + terms of the CPL or GNU LGPL. Any modifications or additions + to this file, however, are subject to the LGPL or CPL terms. +*/ + +#include "LzmaDecode.h" + +#ifndef Byte +#define Byte unsigned char +#endif + +#define kNumTopBits 24 +#define kTopValue ((UInt32)1 << kNumTopBits) + +#define kNumBitModelTotalBits 11 +#define kBitModelTotal (1 << kNumBitModelTotalBits) +#define kNumMoveBits 5 + +#define RC_READ_BYTE (*Buffer++) + +#define RC_INIT2 Code = 0; Range = 0xFFFFFFFF; \ + { int i; for(i = 0; i < 5; i++) { RC_TEST; Code = (Code << 8) | RC_READ_BYTE; }} + +#ifdef _LZMA_IN_CB + +#define RC_TEST { if (Buffer == BufferLim) \ + { SizeT size; int result = InCallback->Read(InCallback, &Buffer, &size); if (result != LZMA_RESULT_OK) return result; \ + BufferLim = Buffer + size; if (size == 0) return LZMA_RESULT_DATA_ERROR; }} + +#define RC_INIT Buffer = BufferLim = 0; RC_INIT2 + +#else + +#define RC_TEST { if (Buffer == BufferLim) return LZMA_RESULT_DATA_ERROR; } + +#define RC_INIT(buffer, bufferSize) Buffer = buffer; BufferLim = buffer + bufferSize; RC_INIT2 + +#endif + +#define RC_NORMALIZE if (Range < kTopValue) { RC_TEST; Range <<= 8; Code = (Code << 8) | RC_READ_BYTE; } + +#define IfBit0(p) RC_NORMALIZE; bound = (Range >> kNumBitModelTotalBits) * *(p); if (Code < bound) +#define UpdateBit0(p) Range = bound; *(p) += (kBitModelTotal - *(p)) >> kNumMoveBits; +#define UpdateBit1(p) Range -= bound; Code -= bound; *(p) -= (*(p)) >> kNumMoveBits; + +#define RC_GET_BIT2(p, mi, A0, A1) IfBit0(p) \ + { UpdateBit0(p); mi <<= 1; A0; } else \ + { UpdateBit1(p); mi = (mi + mi) + 1; A1; } + +#define RC_GET_BIT(p, mi) RC_GET_BIT2(p, mi, ; , ;) + +#define RangeDecoderBitTreeDecode(probs, numLevels, res) \ + { int i = numLevels; res = 1; \ + do { CProb *p = probs + res; RC_GET_BIT(p, res) } while(--i != 0); \ + res -= (1 << numLevels); } + + +#define kNumPosBitsMax 4 +#define kNumPosStatesMax (1 << kNumPosBitsMax) + +#define kLenNumLowBits 3 +#define kLenNumLowSymbols (1 << kLenNumLowBits) +#define kLenNumMidBits 3 +#define kLenNumMidSymbols (1 << kLenNumMidBits) +#define kLenNumHighBits 8 +#define kLenNumHighSymbols (1 << kLenNumHighBits) + +#define LenChoice 0 +#define LenChoice2 (LenChoice + 1) +#define LenLow (LenChoice2 + 1) +#define LenMid (LenLow + (kNumPosStatesMax << kLenNumLowBits)) +#define LenHigh (LenMid + (kNumPosStatesMax << kLenNumMidBits)) +#define kNumLenProbs (LenHigh + kLenNumHighSymbols) + + +#define kNumStates 12 +#define kNumLitStates 7 + +#define kStartPosModelIndex 4 +#define kEndPosModelIndex 14 +#define kNumFullDistances (1 << (kEndPosModelIndex >> 1)) + +#define kNumPosSlotBits 6 +#define kNumLenToPosStates 4 + +#define kNumAlignBits 4 +#define kAlignTableSize (1 << kNumAlignBits) + +#define kMatchMinLen 2 + +#define IsMatch 0 +#define IsRep (IsMatch + (kNumStates << kNumPosBitsMax)) +#define IsRepG0 (IsRep + kNumStates) +#define IsRepG1 (IsRepG0 + kNumStates) +#define IsRepG2 (IsRepG1 + kNumStates) +#define IsRep0Long (IsRepG2 + kNumStates) +#define PosSlot (IsRep0Long + (kNumStates << kNumPosBitsMax)) +#define SpecPos (PosSlot + (kNumLenToPosStates << kNumPosSlotBits)) +#define Align (SpecPos + kNumFullDistances - kEndPosModelIndex) +#define LenCoder (Align + kAlignTableSize) +#define RepLenCoder (LenCoder + kNumLenProbs) +#define Literal (RepLenCoder + kNumLenProbs) + +#if Literal != LZMA_BASE_SIZE +StopCompilingDueBUG +#endif + +#define kLzmaStreamWasFinishedId (-1) + +int LzmaDecodeSmall(CLzmaDecoderState *vs, + #ifdef _LZMA_IN_CB + ILzmaInCallback *InCallback, + #else + const unsigned char *inStream, SizeT inSize, SizeT *inSizeProcessed, + #endif + unsigned char *outStream, SizeT outSize, SizeT *outSizeProcessed) +{ + CProb *p = vs->Probs; + SizeT nowPos = 0; + Byte previousByte = 0; + UInt32 posStateMask = (1 << (vs->Properties.pb)) - 1; + UInt32 literalPosMask = (1 << (vs->Properties.lp)) - 1; + int lc = vs->Properties.lc; + + int state = 0; + UInt32 rep0 = 1, rep1 = 1, rep2 = 1, rep3 = 1; + int len = 0; + const Byte *Buffer; + const Byte *BufferLim; + UInt32 Range; + UInt32 Code; + + #ifndef _LZMA_IN_CB + *inSizeProcessed = 0; + #endif + *outSizeProcessed = 0; + + { + UInt32 i; + UInt32 numProbs = Literal + ((UInt32)LZMA_LIT_SIZE << (lc + vs->Properties.lp)); + for (i = 0; i < numProbs; i++) + p[i] = kBitModelTotal >> 1; + } + + #ifdef _LZMA_IN_CB + RC_INIT; + #else + RC_INIT(inStream, inSize); + #endif + + while(nowPos < outSize) + { + CProb *prob; + UInt32 bound; + int posState = (int)( + (nowPos + ) + & posStateMask); + + prob = p + IsMatch + (state << kNumPosBitsMax) + posState; + IfBit0(prob) + { + int symbol = 1; + UpdateBit0(prob) + prob = p + Literal + (LZMA_LIT_SIZE * + ((( + (nowPos + ) + & literalPosMask) << lc) + (previousByte >> (8 - lc)))); + + if (state >= kNumLitStates) + { + int matchByte; + matchByte = outStream[nowPos - rep0]; + do + { + int bit; + CProb *probLit; + matchByte <<= 1; + bit = (matchByte & 0x100); + probLit = prob + 0x100 + bit + symbol; + RC_GET_BIT2(probLit, symbol, if (bit != 0) break, if (bit == 0) break) + } + while (symbol < 0x100); + } + while (symbol < 0x100) + { + CProb *probLit = prob + symbol; + RC_GET_BIT(probLit, symbol) + } + previousByte = (Byte)symbol; + + outStream[nowPos++] = previousByte; + if (state < 4) state = 0; + else if (state < 10) state -= 3; + else state -= 6; + } + else + { + UpdateBit1(prob); + prob = p + IsRep + state; + IfBit0(prob) + { + UpdateBit0(prob); + rep3 = rep2; + rep2 = rep1; + rep1 = rep0; + state = state < kNumLitStates ? 0 : 3; + prob = p + LenCoder; + } + else + { + UpdateBit1(prob); + prob = p + IsRepG0 + state; + IfBit0(prob) + { + UpdateBit0(prob); + prob = p + IsRep0Long + (state << kNumPosBitsMax) + posState; + IfBit0(prob) + { + UpdateBit0(prob); + + if (nowPos == 0) + return LZMA_RESULT_DATA_ERROR; + + state = state < kNumLitStates ? 9 : 11; + previousByte = outStream[nowPos - rep0]; + outStream[nowPos++] = previousByte; + + continue; + } + else + { + UpdateBit1(prob); + } + } + else + { + UInt32 distance; + UpdateBit1(prob); + prob = p + IsRepG1 + state; + IfBit0(prob) + { + UpdateBit0(prob); + distance = rep1; + } + else + { + UpdateBit1(prob); + prob = p + IsRepG2 + state; + IfBit0(prob) + { + UpdateBit0(prob); + distance = rep2; + } + else + { + UpdateBit1(prob); + distance = rep3; + rep3 = rep2; + } + rep2 = rep1; + } + rep1 = rep0; + rep0 = distance; + } + state = state < kNumLitStates ? 8 : 11; + prob = p + RepLenCoder; + } + { + int numBits, offset; + CProb *probLen = prob + LenChoice; + IfBit0(probLen) + { + UpdateBit0(probLen); + probLen = prob + LenLow + (posState << kLenNumLowBits); + offset = 0; + numBits = kLenNumLowBits; + } + else + { + UpdateBit1(probLen); + probLen = prob + LenChoice2; + IfBit0(probLen) + { + UpdateBit0(probLen); + probLen = prob + LenMid + (posState << kLenNumMidBits); + offset = kLenNumLowSymbols; + numBits = kLenNumMidBits; + } + else + { + UpdateBit1(probLen); + probLen = prob + LenHigh; + offset = kLenNumLowSymbols + kLenNumMidSymbols; + numBits = kLenNumHighBits; + } + } + RangeDecoderBitTreeDecode(probLen, numBits, len); + len += offset; + } + + if (state < 4) + { + int posSlot; + state += kNumLitStates; + prob = p + PosSlot + + ((len < kNumLenToPosStates ? len : kNumLenToPosStates - 1) << + kNumPosSlotBits); + RangeDecoderBitTreeDecode(prob, kNumPosSlotBits, posSlot); + if (posSlot >= kStartPosModelIndex) + { + int numDirectBits = ((posSlot >> 1) - 1); + rep0 = (2 | ((UInt32)posSlot & 1)); + if (posSlot < kEndPosModelIndex) + { + rep0 <<= numDirectBits; + prob = p + SpecPos + rep0 - posSlot - 1; + } + else + { + numDirectBits -= kNumAlignBits; + do + { + RC_NORMALIZE + Range >>= 1; + rep0 <<= 1; + if (Code >= Range) + { + Code -= Range; + rep0 |= 1; + } + } + while (--numDirectBits != 0); + prob = p + Align; + rep0 <<= kNumAlignBits; + numDirectBits = kNumAlignBits; + } + { + int i = 1; + int mi = 1; + do + { + CProb *prob3 = prob + mi; + RC_GET_BIT2(prob3, mi, ; , rep0 |= i); + i <<= 1; + } + while(--numDirectBits != 0); + } + } + else + rep0 = posSlot; + if (++rep0 == (UInt32)(0)) + { + /* it's for stream version */ + len = kLzmaStreamWasFinishedId; + break; + } + } + + len += kMatchMinLen; + if (rep0 > nowPos) + return LZMA_RESULT_DATA_ERROR; + + do + { + previousByte = outStream[nowPos - rep0]; + len--; + outStream[nowPos++] = previousByte; + } + while(len != 0 && nowPos < outSize); + } + } + RC_NORMALIZE; + + #ifdef _LZMA_IN_CB + vs->Buffer = Buffer; + vs->BufferLim = BufferLim; + #else + *inSizeProcessed = (SizeT)(Buffer - inStream); + #endif + *outSizeProcessed = nowPos; + return LZMA_RESULT_OK; +} diff -Nuar busybox-1.00.orig/archival/libunarchive/Makefile.in busybox-1.00.new/archival/libunarchive/Makefile.in --- busybox-1.00.orig/archival/libunarchive/Makefile.in 2005-06-19 20:47:15.000000000 -0600 +++ busybox-1.00.new/archival/libunarchive/Makefile.in 2005-06-19 20:54:43.000000000 -0600 @@ -64,6 +64,7 @@ LIBUNARCHIVE-$(CONFIG_FEATURE_DEB_TAR_GZ) += $(GUNZIP_FILES) get_header_tar_gz.o LIBUNARCHIVE-$(CONFIG_FEATURE_DEB_TAR_BZ2) += decompress_bunzip2.o get_header_tar_bz2.o LIBUNARCHIVE-$(CONFIG_GUNZIP) += $(GUNZIP_FILES) +LIBUNARCHIVE-$(CONFIG_LZMACAT) += LzmaDecode.o LIBUNARCHIVE-$(CONFIG_FEATURE_GUNZIP_UNCOMPRESS) += decompress_uncompress.o LIBUNARCHIVE-$(CONFIG_RPM2CPIO) += $(GUNZIP_FILES) get_header_cpio.o LIBUNARCHIVE-$(CONFIG_RPM) += $(GUNZIP_FILES) get_header_cpio.o diff -Nuar busybox-1.00.orig/archival/lzmacat.c busybox-1.00.new/archival/lzmacat.c --- busybox-1.00.orig/archival/lzmacat.c 1969-12-31 17:00:00.000000000 -0700 +++ busybox-1.00.new/archival/lzmacat.c 2005-06-19 21:06:30.000000000 -0600 @@ -0,0 +1,171 @@ +/* + lzmacat.c + + LZMA SDK 4.22 Copyright (c) 1999-2005 Igor Pavlov (2005-06-10) + + Copyright (C) 2005 Ming-Ching Tiew mctiew@yahoo.com + lzmacat with adaptive memory usage + Code derived from LzmaTest.c and LzmaStateTest.c from Igor Pavlov + + GPL Source + +*/ + +#include + +// hey guys sorry, I know include c files is strange ! +#define _LZMA_IN_CB +#define _LZMA_OUT_READ +#include "libunarchive/LzmaDecode.h" +#include "libunarchive/LzmaDecode.c" +#include "libunarchive/LzmaDecode2.c" + +#define INPUT_BUFFER_SIZE 0x10000 +#define OUTPUT_BUFFER_SIZE 0x10000 + +typedef struct _CBuffer +{ + ILzmaInCallback InCallback; + FILE *File; + unsigned char *Buffer; +} CBuffer; + +int LzmaReadCompressed(void *object, const unsigned char **buffer, SizeT *size) +{ + CBuffer *b = (CBuffer *)object; + *buffer = b->Buffer; + *size = fread(b->Buffer, 1, INPUT_BUFFER_SIZE, b->File); + return LZMA_RESULT_OK; +} + +int lzmacat_main(int argc, char **argv) +{ + FILE *infp; + unsigned int outSize, outSizeProcessed; + unsigned char *out_buffer; + int i, res, zero; + CBuffer cb; + UInt32 nowPos; + + CLzmaDecoderState state; + unsigned char properties[LZMA_PROPERTIES_SIZE]; + + if (argc != 2) { + fprintf(stderr, "Usage: lzmacat file.lzma\n"); + return 1; + } + + infp = fopen(argv[1], "rb"); + if (infp == 0) { + fprintf(stderr, "Open input file error!\n"); + return 1; + } + + if (!fread(properties, 1, sizeof(properties), infp)) { + fprintf(stderr, "Can't read lzma properties!\n"); + return 1; + } + + if( !fread(&outSize, 1, sizeof(outSize), infp)) { + fprintf(stderr, "Can't read uncompressed size!\n"); + } + + if (outSize == 0xFFFFFFFF) { + fprintf(stderr, "Stream version is not supported!\n"); + return 1; + } + + if( !fread(&zero, 1, sizeof(zero), infp)) { + fprintf(stderr, "Cannot read hi-byte uncompressed size!\n"); + return 1; + } + + if (zero != 0) { + fprintf(stderr, "File too big (bigger than 4 GB)!\n"); + return 1; + } + + if( LzmaDecodeProperties( &state.Properties, properties, LZMA_PROPERTIES_SIZE ) != LZMA_RESULT_OK ) + { + fprintf(stderr, "Lzma properties error!\n"); + return 1; + } + state.Probs = (CProb*) malloc(LzmaGetNumProbs(&state.Properties) * sizeof( CProb )); + + if( state.Probs == 0 ) + { + fprintf(stderr, "Cannot allocate memory for state.Probs!\n"); + return 1; + } + + cb.File = infp; + cb.InCallback.Read = LzmaReadCompressed; + cb.Buffer = malloc(INPUT_BUFFER_SIZE); + if (cb.Buffer == 0) + { + fprintf(stderr, "Cannot allocate memory for input buffer!\n"); + free(state.Probs); + return 1; + } + + if ( outSize < state.Properties.DictionarySize ) + { + out_buffer = malloc ( outSize ); + if ( out_buffer == 0 ) + { + fprintf(stderr, "Cannot allocated memory for output buffer!\n"); + free(state.Probs); + free(cb.Buffer); + return 1; + } + res = LzmaDecodeSmall( &state, &cb.InCallback, + out_buffer, outSize, &outSizeProcessed); + if ( res == LZMA_RESULT_OK ) + fwrite( out_buffer,1, outSizeProcessed, stdout); + } + else + { + state.Dictionary=(unsigned char *)malloc(state.Properties.DictionarySize); + if ( state.Dictionary == 0) + { + fprintf(stderr, "Cannot allocate memory for dictionary!\n"); + free(state.Probs); + free(cb.Buffer); + return 1; + } + LzmaDecoderInit( &state ); + + out_buffer = malloc (OUTPUT_BUFFER_SIZE); + if(out_buffer==0) { + fprintf(stderr, "Cannot allocate memory for output buffer!\n"); + free(state.Probs); + free(cb.Buffer); + free(state.Dictionary); + return 1; + } + for (nowPos = 0; nowPos < outSize;) { + UInt32 blockSize = outSize - nowPos; + if (blockSize > OUTPUT_BUFFER_SIZE ) + blockSize = OUTPUT_BUFFER_SIZE; + res = LzmaDecode( &state, &cb.InCallback, + out_buffer, blockSize, &outSizeProcessed); + if (res != 0) + break; + if (outSizeProcessed == 0) { + outSize = nowPos; + break; + } + nowPos += outSizeProcessed; + fwrite(out_buffer,1, outSizeProcessed, stdout); + } + free(state.Dictionary); + } + free(state.Probs); + free(cb.Buffer); + free(out_buffer); + if (res != 0) { + fprintf(stderr, "lzma decode has failed!\n"); + return 1; + } + return 0; +} diff -Nuar busybox-1.00.orig/include/applets.h busybox-1.00.new/include/applets.h --- busybox-1.00.orig/include/applets.h 2005-06-19 20:47:18.000000000 -0600 +++ busybox-1.00.new/include/applets.h 2005-06-19 20:54:43.000000000 -0600 @@ -364,6 +364,9 @@ #ifdef CONFIG_LSMOD APPLET(lsmod, lsmod_main, _BB_DIR_SBIN, _BB_SUID_NEVER) #endif +#ifdef CONFIG_LZMACAT + APPLET(lzmacat, lzmacat_main, _BB_DIR_BIN, _BB_SUID_NEVER) +#endif #ifdef CONFIG_MAKEDEVS APPLET(makedevs, makedevs_main, _BB_DIR_SBIN, _BB_SUID_NEVER) #endif diff -Nuar busybox-1.00.orig/include/usage.h busybox-1.00.new/include/usage.h --- busybox-1.00.orig/include/usage.h 2005-06-19 20:47:18.000000000 -0600 +++ busybox-1.00.new/include/usage.h 2005-06-19 20:54:43.000000000 -0600 @@ -1573,6 +1573,11 @@ #define lsmod_full_usage \ "List the currently loaded kernel modules." +#define lzmacat_trivial_usage \ + "[FILE]" +#define lzmacat_full_usage \ + "Decompresses [FILE] to STDOUT." + #ifdef CONFIG_FEATURE_MAKEDEVS_LEAF #define makedevs_trivial_usage \ "NAME TYPE MAJOR MINOR FIRST LAST [s]" geexbox-0.98.7/packages/busybox/patches/32_lzma-stream.diff0000644000175000017500000000141510335100770022551 0ustar aurelaureldiff -Naur busybox.orig/archival/lzmacat.c busybox/archival/lzmacat.c --- busybox.orig/archival/lzmacat.c 2005-07-08 21:57:47.719055664 +0200 +++ busybox/archival/lzmacat.c 2005-07-08 21:58:30.403566632 +0200 @@ -70,21 +70,11 @@ fprintf(stderr, "Can't read uncompressed size!\n"); } - if (outSize == 0xFFFFFFFF) { - fprintf(stderr, "Stream version is not supported!\n"); - return 1; - } - if( !fread(&zero, 1, sizeof(zero), infp)) { fprintf(stderr, "Cannot read hi-byte uncompressed size!\n"); return 1; } - if (zero != 0) { - fprintf(stderr, "File too big (bigger than 4 GB)!\n"); - return 1; - } - if( LzmaDecodeProperties( &state.Properties, properties, LZMA_PROPERTIES_SIZE ) != LZMA_RESULT_OK ) { fprintf(stderr, "Lzma properties error!\n"); geexbox-0.98.7/packages/busybox/patches/40_eject-dont-umount.diff0000644000175000017500000000123510335100770023675 0ustar aurelaureldiff -Nur busybox.orig/miscutils/eject.c busybox/miscutils/eject.c --- busybox.orig/miscutils/eject.c Sat Aug 27 09:20:17 2005 +++ busybox/miscutils/eject.c Sat Aug 27 13:29:12 2005 @@ -40,16 +40,10 @@ { unsigned long flags; char *device; - struct mntent *m; flags = bb_getopt_ulflags(argc, argv, "t"); device=argv[optind] ? : DEFAULT_CDROM; - if((m = find_mount_point(device, bb_path_mtab_file))) { - if(umount(m->mnt_dir)) - bb_error_msg_and_die("Can't umount"); - else if(ENABLE_FEATURE_MTAB_SUPPORT) erase_mtab(m->mnt_fsname); - } if (ioctl(bb_xopen( device, (O_RDONLY | O_NONBLOCK)), ( flags ? CDROMCLOSETRAY : CDROMEJECT))) { geexbox-0.98.7/packages/busybox/patches/50_ash-flock.diff0000644000175000017500000000261010335100770022162 0ustar aurelaureldiff -Nur busybox.orig/shell/ash.c busybox/shell/ash.c --- busybox.orig/shell/ash.c Fri Oct 14 09:20:22 2005 +++ busybox/shell/ash.c Fri Oct 14 12:21:12 2005 @@ -73,6 +73,7 @@ #include #include #include +#include #include #include @@ -1249,6 +1250,7 @@ #ifdef JOBS static int fgcmd(int, char **); #endif +static int flockcmd(int, char **); #ifdef CONFIG_ASH_GETOPTS static int getoptscmd(int, char **); #endif @@ -1348,6 +1350,7 @@ #ifdef JOBS { BUILTIN_REGULAR "fg", fgcmd }, #endif + { BUILTIN_NOSPEC "flock", flockcmd }, #ifdef CONFIG_ASH_GETOPTS { BUILTIN_REGULAR "getopts", getoptscmd }, #endif @@ -6873,6 +6876,46 @@ jp->used = 0; set_curjob(jp, CUR_DELETE); INTON; +} + + +static int +flockcmd(int argc, char **argv) +{ + static int fd = -1; + int operation = 0, c; + + while ((c = nextopt("ensu"))) + switch (c) { + case 'e': + operation |= LOCK_EX; + break; + case 'n': + operation |= LOCK_NB; + break; + case 's': + operation |= LOCK_SH; + break; + case 'u': + if (fd == -1 || flock(fd, LOCK_UN)) + return 127; + close(fd); + fd = -1; + return 0; + } + + c = 127; + if (fd == -1 && *argptr && (fd = open(*argptr, O_RDONLY | O_CREAT)) != -1) + { + if (!flock(fd, operation)) { + c = 0; + } else { + close(fd); + fd = -1; + } + } + + return c; } geexbox-0.98.7/packages/busybox/patches/60_umount-return-errno.diff0000644000175000017500000000131210335100770024301 0ustar aurelaureldiff -Nur busybox.orig/util-linux/umount.c busybox/util-linux/umount.c --- busybox.orig/util-linux/umount.c Fri Oct 14 09:21:46 2005 +++ busybox/util-linux/umount.c Fri Oct 14 12:22:28 2005 @@ -37,7 +37,7 @@ char path[2*PATH_MAX]; struct mntent me; FILE *fp; - int status=EXIT_SUCCESS; + int status=0; unsigned long opt; struct mtab_list { char *dir; @@ -124,7 +124,7 @@ * can't do simple constant propagation in local variables... */ if(ENABLE_FEATURE_MTAB_SUPPORT && !(opt & OPT_NO_MTAB) && m) erase_mtab(m->dir); - status = EXIT_FAILURE; + status = errno ? errno : 127; bb_perror_msg("Couldn't umount %s", path); } // Find next matching mtab entry for -a or umount /dev geexbox-0.98.7/packages/busybox/scripts/0000755000175000017500000000000010335100770017216 5ustar aurelaurelgeexbox-0.98.7/packages/busybox/scripts/udhcp.script0000755000175000017500000000123210335100770021550 0ustar aurelaurel#!/bin/sh case "$1" in deconfig) ifconfig $interface 0.0.0.0 ;; renew|bound) if [ -n "$dns" ]; then rm -f /etc/resolv.conf [ -n "$domain" ] && echo "search $domain" >> /etc/resolv.conf for ns in $dns; do echo "nameserver $ns" >> /etc/resolv.conf done fi [ -n "$broadcast" ] && BROADCAST="broadcast $broadcast" [ -n "$subnet" ] && NETMASK="netmask $subnet" ifconfig $interface $ip $BROADCAST $NETMASK while route del default gw 0.0.0.0 dev $interface; do : done metric=0 for i in $router; do route add default gw $i dev $interface metric $((metric++)) done ;; esac geexbox-0.98.7/packages/busybox/unpack0000755000175000017500000000061310335100770016736 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain BUSYBOX=`ls -d $BUILD/$1*` sed -i -e "s|^HOSTCC[[:space:]]*=.*$|HOSTCC = $HOST_CC|" \ -e "s|^CROSS[[:space:]]*=.*$|CROSS = $TARGET_PREFIX|" \ $BUSYBOX/Rules.mak cp $PACKAGES/$1/config/$1.conf $BUSYBOX/.config [ "$DEVTOOLS" = yes ] && cat $PACKAGES/$1/config/$1.devtools.conf >> $BUSYBOX/.config make -C $BUSYBOX oldconfig geexbox-0.98.7/packages/busybox/url0000644000175000017500000000007410335100770016255 0ustar aurelaurelhttp://www.busybox.net/downloads/busybox-1.1.0-pre1.tar.bz2 geexbox-0.98.7/packages/ccache/0000755000175000017500000000000010335100770015242 5ustar aurelaurelgeexbox-0.98.7/packages/ccache/build0000755000175000017500000000032110335100770016263 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/install make setup_toolchain host CC=$LOCAL_CC cd $BUILD/$1* ./configure --host=$HOST_NAME \ --build=$HOST_NAME \ --prefix=$ROOT/$TOOLCHAIN make geexbox-0.98.7/packages/ccache/install0000755000175000017500000000131510335100770016636 0ustar aurelaurel#!/bin/sh . config/options make -C $BUILD/$1* install if [ "$2" = toolchain ]; then GCC_VERSION=`sed -n 's/.*\/gcc-core-\([0-9\.]*\)\..*/\1/p' $PACKAGES/gcc/url` CROSS_CC=$TARGET_CC-$GCC_VERSION rm -f $TARGET_CC echo "#!/bin/sh" >$TARGET_CC echo "$ROOT/$TOOLCHAIN/bin/ccache $CROSS_CC \"\$@\"" >>$TARGET_CC chmod +x $TARGET_CC # To avoid cache trashing DATE="`echo $GCC_VERSION | sed 's/\([0-9]\)/0\1/g' | sed 's/\.//g'`0000" touch -c -t $DATE $CROSS_CC else echo "#!/bin/sh" >$HOST_CC echo "$ROOT/$TOOLCHAIN/bin/ccache $LOCAL_CC \"\$@\"" >>$HOST_CC chmod +x $HOST_CC echo "#!/bin/sh" >$HOST_CXX echo "$ROOT/$TOOLCHAIN/bin/ccache $LOCAL_CXX \"\$@\"" >>$HOST_CXX chmod +x $HOST_CXX fi geexbox-0.98.7/packages/ccache/stats0000755000175000017500000000006610335100770016330 0ustar aurelaurel#!/bin/sh . config/options $TOOLCHAIN/bin/ccache -s geexbox-0.98.7/packages/ccache/url0000644000175000017500000000006510335100770015770 0ustar aurelaurelhttp://ccache.samba.org/ftp/ccache/ccache-2.4.tar.gz geexbox-0.98.7/packages/cdparanoia/0000755000175000017500000000000010335100770016135 5ustar aurelaurelgeexbox-0.98.7/packages/cdparanoia/build0000755000175000017500000000074010335100770017163 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain export ac_cv_sizeof_short=2 export ac_cv_sizeof_int=4 export ac_cv_sizeof_long=4 export ac_cv_sizeof_long_long=8 cd $BUILD/$1* ./configure --host=$TARGET_NAME \ --build=$HOST_NAME make lib OPT="$CFLAGS -ffast-math" mkdir -p $LIB_PREFIX/lib $LIB_PREFIX/include cp interface/cdda_interface.h paranoia/cdda_paranoia.h $LIB_PREFIX/include cp interface/libcdda_interface.a paranoia/libcdda_paranoia.a $LIB_PREFIX/lib geexbox-0.98.7/packages/cdparanoia/patches/0000755000175000017500000000000010335100770017564 5ustar aurelaurelgeexbox-0.98.7/packages/cdparanoia/patches/10_gcc_fix.diff0000644000175000017500000000137110335100770022322 0ustar aurelaureldiff -Naur cdparanoia-III-alpha9.8.orig/interface/utils.h cdparanoia-III-alpha9.8/interface/utils.h --- cdparanoia-III-alpha9.8.orig/interface/utils.h 2000-04-20 00:41:04.000000000 +0200 +++ cdparanoia-III-alpha9.8/interface/utils.h 2005-01-14 18:25:16.000000000 +0100 @@ -112,6 +112,7 @@ break; case CDDA_MESSAGE_FORGETIT: default: + break; } } } @@ -127,6 +128,7 @@ break; case CDDA_MESSAGE_FORGETIT: default: + break; } } } @@ -169,6 +171,7 @@ break; case CDDA_MESSAGE_FORGETIT: default: + break; } } if(malloced)free(buffer); @@ -205,6 +208,7 @@ break; case CDDA_MESSAGE_FORGETIT: default: + break; } } if(malloced)free(buffer); geexbox-0.98.7/packages/cdparanoia/patches/20_paranoia-read-bail.diff0000644000175000017500000000473710335100770024342 0ustar aurelaureldiff -ur cdparanoia-III-alpha9.8.orig/paranoia/p_block.h cdparanoia-III-alpha9.8/paranoia/p_block.h --- cdparanoia-III-alpha9.8.orig/paranoia/p_block.h Mon Mar 26 07:44:02 2001 +++ cdparanoia-III-alpha9.8/paranoia/p_block.h Mon Jul 25 11:40:11 2005 @@ -159,6 +159,7 @@ /* statistics for verification */ + int readerrors; } cdrom_paranoia; extern c_block *c_alloc(int16_t *vector,long begin,long size); diff -ur cdparanoia-III-alpha9.8.orig/paranoia/paranoia.c cdparanoia-III-alpha9.8/paranoia/paranoia.c --- cdparanoia-III-alpha9.8.orig/paranoia/paranoia.c Mon Mar 26 07:44:02 2001 +++ cdparanoia-III-alpha9.8/paranoia/paranoia.c Mon Jul 25 11:40:11 2005 @@ -58,6 +58,8 @@ #include "overlap.h" #include "gap.h" #include "isort.h" +#include +#include static inline long re(root_block *root){ if(!root)return(-1); @@ -1045,7 +1047,7 @@ /* returns last block read, -1 on error */ c_block *i_read_c_block(cdrom_paranoia *p,long beginword,long endword, - void(*callback)(long,int)){ + void(*callback)(long,int), int *bail){ /* why do it this way? We need to read lots of sectors to kludge around stupid read ahead buffers on cheap drives, as well as avoid @@ -1065,6 +1067,7 @@ long dynoverlap=(p->dynoverlap+CD_FRAMEWORDS-1)/CD_FRAMEWORDS; long anyflag=0; + *bail = 0; /* What is the first sector to read? want some pre-buffer if we're not at the extreme beginning of the disc */ @@ -1140,6 +1143,14 @@ backward! */ if(callback)(*callback)((adjread+thisread)*CD_FRAMEWORDS,PARANOIA_CB_READERR); + if(++p->readerrors == 20) { + if (ioctl(p->d->ioctl_fd, CDROM_DRIVE_STATUS, CDSL_CURRENT) != CDS_DISC_OK) { + *bail = 1; + anyflag = 0; + break; + } + p->readerrors = 0; + } memset(buffer+(sofar+thisread)*CD_FRAMEWORDS,0, CD_FRAMESIZE_RAW*(secread-thisread)); if(flags)memset(flags+(sofar+thisread)*CD_FRAMEWORDS,2, @@ -1203,6 +1214,8 @@ long retry_count=0,lastend=-2; root_block *root=&p->root; + p->readerrors=0; + if(beginword>p->root.returnedlimit)p->root.returnedlimit=beginword; lastend=re(root); @@ -1236,7 +1249,10 @@ /* Hmm, need more. Read another block */ { - c_block *new=i_read_c_block(p,beginword,endword,callback); + int bail; + c_block *new=i_read_c_block(p,beginword,endword,callback, &bail); + if (bail) + return NULL; if(new){ if(p->enable&(PARANOIA_MODE_OVERLAP|PARANOIA_MODE_VERIFY)){ geexbox-0.98.7/packages/cdparanoia/patches/30_null-pointer-check.diff0000644000175000017500000000106510335100770024425 0ustar aurelaureldebian bug #168683 diff -Nur cdparanoia-III-alpha9.8.orig/interface/scan_devices.c cdparanoia-III-alpha9.8/interface/scan_devices.c --- cdparanoia-III-alpha9.8.orig/interface/scan_devices.c Mon Mar 26 07:44:01 2001 +++ cdparanoia-III-alpha9.8/interface/scan_devices.c Tue Jul 26 12:55:30 2005 @@ -617,7 +617,8 @@ /* It would seem some TOSHIBA CDROMs gets things wrong */ - if (!strncmp (p + 8, "TOSHIBA", 7) && + if (p && + !strncmp (p + 8, "TOSHIBA", 7) && !strncmp (p + 16, "CD-ROM", 6) && p[0] == TYPE_DISK) { p[0] = TYPE_ROM; geexbox-0.98.7/packages/cdparanoia/url0000644000175000017500000000010610335100770016657 0ustar aurelaurelhttp://www.xiph.org/paranoia/download/cdparanoia-III-alpha9.8.src.tgz geexbox-0.98.7/packages/configtools/0000755000175000017500000000000010335100770016362 5ustar aurelaurelgeexbox-0.98.7/packages/configtools/build0000755000175000017500000000010710335100770017405 0ustar aurelaurel#!/bin/sh . config/options $BUILD/$1/config.guess > $HOST_NAME_CACHE geexbox-0.98.7/packages/configtools/url0000644000175000017500000000004110335100770017102 0ustar aurelaurelGEEXBOX_SRCS/configtools.tar.bz2 geexbox-0.98.7/packages/cpufreqd/0000755000175000017500000000000010335100770015645 5ustar aurelaurelgeexbox-0.98.7/packages/cpufreqd/build0000755000175000017500000000035410335100770016674 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain export ac_cv_func_malloc_0_nonnull=yes cd $BUILD/$1* ./configure --host=$TARGET_NAME \ --build=$HOST_NAME \ --prefix= \ --exec-prefix=/usr make geexbox-0.98.7/packages/cpufreqd/config/0000755000175000017500000000000010335100770017112 5ustar aurelaurelgeexbox-0.98.7/packages/cpufreqd/config/cpufreqd.conf0000644000175000017500000000056410335100770021577 0ustar aurelaurel[General] pidfile=/var/run/cpufreqd.pid poll_interval=2 pm_type=acpi acpi_workaround=1 verbosity=4 [Profile] name=hi_boost minfreq=66% maxfreq=100% policy=performance [Profile] name=lo_power minfreq=0% maxfreq=66% policy=conservative [Rule] name=conservative ac=off battery_interval=0-100 cpu_interval=0-40 profile=lo_power [Rule] name=AC_on ac=on profile=hi_boost geexbox-0.98.7/packages/cpufreqd/init.d/0000755000175000017500000000000010335100770017032 5ustar aurelaurelgeexbox-0.98.7/packages/cpufreqd/init.d/78_cpufreq0000755000175000017500000000026310335100770020744 0ustar aurelaurel#!/bin/sh # # cpufreq deamon if [ -x /usr/bin/cpufreqd -a -r /etc/cpufreqd.conf ]; then echo "### Starting CpuFreq daemon ###" cpufreqd --file=/etc/cpufreqd.conf fi exit 0 geexbox-0.98.7/packages/cpufreqd/install0000755000175000017500000000056510335100770017247 0ustar aurelaurel#!/bin/sh . config/options case $TARGET_ARCH in i386) pm_type=acpi ;; ppc) pm_type=pmu ;; esac mkdir -p $INSTALL/usr/lib cp $BUILD/$1*/.libs/libsys_$pm_type.so $INSTALL/usr/lib mkdir -p $INSTALL/usr/bin cp $BUILD/$1*/$1 $INSTALL/usr/bin mkdir -p $INSTALL/etc sed "s%pm_type=.*%pm_type=$pm_type%" $PACKAGES/$1*/config/$1.conf > $INSTALL/etc/$1.conf geexbox-0.98.7/packages/cpufreqd/url0000644000175000017500000000011110335100770016363 0ustar aurelaurelhttp://ovh.dl.sourceforge.net/sourceforge/cpufreqd/cpufreqd-1.2.3.tar.gz geexbox-0.98.7/packages/dialog/0000755000175000017500000000000010335100770015273 5ustar aurelaurelgeexbox-0.98.7/packages/dialog/build0000755000175000017500000000066710335100770016331 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain $SCRIPTS/build ncurses cd $BUILD/$1* ./configure --host=$TARGET_NAME \ --build=$HOST_NAME \ --disable-nls \ --without-dbmalloc \ --without-dmalloc \ --with-ncurses \ --disable-widec \ --disable-rc-file \ --disable-Xdialog \ --disable-form \ --disable-tailbox make geexbox-0.98.7/packages/dialog/patches/0000755000175000017500000000000010335100770016722 5ustar aurelaurelgeexbox-0.98.7/packages/dialog/patches/10_reduce.diff0000644000175000017500000000160610335100770021326 0ustar aurelaurelenable only: yesno, msgbox, menu, inputbox diff -Naur dialog-1.0-20051030.orig/dialog.c dialog-1.0-20051030/dialog.c --- dialog-1.0-20051030.orig/dialog.c 2005-10-30 22:16:52.000000000 +0200 +++ dialog-1.0-20051030/dialog.c 2005-10-31 17:50:12.000000000 +0200 @@ -853,15 +853,21 @@ { {o_yesno, 4, 4, call_yesno}, {o_msgbox, 4, 4, call_msgbox}, +#if 0 {o_infobox, 4, 4, call_infobox}, {o_textbox, 4, 4, call_textbox}, +#endif {o_menu, 7, 0, call_menu}, +#if 0 {o_inputmenu, 7, 0, call_inputmenu}, {o_checklist, 8, 0, call_checklist}, {o_radiolist, 8, 0, call_radiolist}, +#endif {o_inputbox, 4, 5, call_inputbox}, +#if 0 {o_passwordbox, 4, 5, call_passwordbox}, {o_pause, 5, 5, call_pause}, +#endif #ifdef HAVE_XDIALOG {o_calendar, 4, 7, call_calendar}, {o_fselect, 4, 5, call_fselect}, geexbox-0.98.7/packages/dialog/url0000644000175000017500000000007210335100770016017 0ustar aurelaurelftp://invisible-island.net/dialog/dialog-1.0-20051030.tgz geexbox-0.98.7/packages/djmount/0000755000175000017500000000000010335100770015514 5ustar aurelaurelgeexbox-0.98.7/packages/djmount/build0000755000175000017500000000047210335100770016544 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain $SCRIPTS/build fuse $SCRIPTS/build talloc make -C $BUILD/$1*/libupnp/upnp \ DEBUG=0 \ CLIENT=1 \ DEVICE=0 \ STATIC=1 \ TARGET=$TARGET_NAME LIBS="-L../libupnp/upnp/bin/$TARGET_NAME" \ make -C $BUILD/$1*/djmount \ DEBUG=0 \ djmount geexbox-0.98.7/packages/djmount/init.d/0000755000175000017500000000000010335100770016701 5ustar aurelaurelgeexbox-0.98.7/packages/djmount/init.d/59_upnp0000755000175000017500000000054110335100770020126 0ustar aurelaurel#!/bin/sh # # mount UPnP VFS # # runlevels: geexbox, debug # get options test -f /etc/network || exit 1 . /etc/network if test "$UPNP" = "yes" -a -f /usr/bin/djmount; then echo "### Mounting UPnP VFS ###" # Build UPnP VFS directory mkdir -p /tmp/UPnP # Mount UPnP VFS djmount -o iocharset='UTF-8' /tmp/UPnP -f >/dev/null 2>&1 & fi exit 0 geexbox-0.98.7/packages/djmount/install0000755000175000017500000000017510335100770017113 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/install fuse mkdir -p $INSTALL/usr/bin cp $BUILD/$1*/djmount/djmount $INSTALL/usr/bin geexbox-0.98.7/packages/djmount/patches/0000755000175000017500000000000010335100770017143 5ustar aurelaurelgeexbox-0.98.7/packages/djmount/patches/10_mount.diff0000644000175000017500000000126410335100770021442 0ustar aurelaureldiff -Naur djmount-0.30.orig/djmount/device_list.c djmount-0.30/djmount/device_list.c --- djmount-0.30.orig/djmount/device_list.c 2005-09-06 22:46:36.000000000 +0200 +++ djmount-0.30/djmount/device_list.c 2005-10-09 16:51:23.000000000 +0200 @@ -35,7 +35,7 @@ #include #include #include - +#include static UpnpClient_Handle g_ctrlpt_handle = -1; @@ -456,6 +456,7 @@ AddDevice (d_event->DeviceId, d_event->Location, d_event->Expires); Log_Print (LOG_DEBUG, "Discovery: DeviceList after AddDevice ="); DeviceList_PrintStatus (LOG_DEBUG); + symlink ("/tmp/UPnP", "/mnt/UPnP"); } break; geexbox-0.98.7/packages/djmount/patches/20_browse-folder.diff0000644000175000017500000000140610335100770023051 0ustar aurelaureldiff -Naur djmount-0.31.orig/djmount/djfs.c djmount-0.31/djmount/djfs.c --- djmount-0.31.orig/djmount/djfs.c 2005-10-16 10:37:08.000000000 +0200 +++ djmount-0.31/djmount/djfs.c 2005-10-28 18:14:43.000000000 +0200 @@ -374,11 +374,6 @@ for (i = 0; i < names->nb; i++) { const char* const devName = names->str[i]; DIR_BEGIN(devName) { - FILE_BEGIN("status") { - talloc_string = DeviceList_GetDeviceStatusString (talloc_context, - devName, true); - } FILE_END; - DIR_BEGIN("browse") { size_t nb_matched = 0; const ContentDir_BrowseResult* const res = _DJFS_BrowseCDS (tmp_ctx, devName, ptr, &nb_matched); @@ -418,7 +413,6 @@ } } DIR_END; } - } DIR_END; // "browse" } DIR_END; // devName } } geexbox-0.98.7/packages/djmount/patches/30_no-xml-file.diff0000644000175000017500000000116110335100770022425 0ustar aurelaureldiff -Naur djmount-0.30.orig/djmount/djfs.c djmount-0.30/djmount/djfs.c --- djmount-0.30.orig/djmount/djfs.c 2005-10-09 22:41:11.000000000 +0200 +++ djmount-0.30/djmount/djfs.c 2005-10-09 22:42:25.000000000 +0200 @@ -398,15 +398,6 @@ GET_CONTENT); } FILE_END; } - char* name = talloc_asprintf (tmp_ctx, "%s.xml", o->title); - FILE_BEGIN (name) { - talloc_string = - talloc_asprintf - (talloc_context, - "\n%s", - XMLUtil_GetNodeString (tmp_ctx, - (IXML_Node*) o->element)); - } FILE_END; } o = o->next; } geexbox-0.98.7/packages/djmount/patches/50_remove-iconv-readline-detection.diff0000644000175000017500000000112610335100770026447 0ustar aurelaureldiff -Nur djmount-0.31.orig/djmount/Makefile djmount-0.31/djmount/Makefile --- djmount-0.31.orig/djmount/Makefile Sun Sep 4 18:22:14 2005 +++ djmount-0.31/djmount/Makefile Wed Nov 2 18:59:36 2005 @@ -49,20 +49,7 @@ endif -ifneq ($(wildcard /usr/include/readline/readline.h),) -CPPFLAGS += -DHAVE_READLINE=1 -test_upnp: LIBS += -lreadline -lhistory -ltermcap -endif - - -ifneq ($(wildcard /usr/include/iconv.h),) -HAVE_ICONV = 1 -endif -ifeq ($(HAVE_ICONV),1) -CPPFLAGS += -DHAVE_ICONV=1 -else OBJS += charset_internal.o -endif CFLAGS += -Wall $(OPT) $(CPPFLAGS) $(FUSEFLAGS) -pthread geexbox-0.98.7/packages/djmount/patches/51_use-system-talloc.diff0000644000175000017500000000064210335100770023676 0ustar aurelaureldiff -Nur djmount-0.31.orig/djmount/Makefile djmount-0.31/djmount/Makefile --- djmount-0.31.orig/djmount/Makefile Wed Nov 2 19:23:14 2005 +++ djmount-0.31/djmount/Makefile Wed Nov 2 19:23:25 2005 @@ -33,8 +33,8 @@ LIBUPNP=../libupnp/upnp -CPPFLAGS += -I../talloc -I../sglib -I. -LIBS += -L../talloc -ltalloc +CPPFLAGS += -I../sglib -I. +LIBS += -ltalloc ifeq ($(DEBUG),1) OPT = -g -O2 CPPFLAGS += -DDEBUG=1 geexbox-0.98.7/packages/djmount/url0000644000175000017500000000010610335100770016236 0ustar aurelaurelhttp://ovh.dl.sourceforge.net/sourceforge/djmount/djmount-0.31.tar.gz geexbox-0.98.7/packages/dosfstools/0000755000175000017500000000000010335100770016233 5ustar aurelaurelgeexbox-0.98.7/packages/dosfstools/build0000755000175000017500000000014110335100770017254 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain make -C $BUILD/$1*/mkdosfs \ mkdosfs geexbox-0.98.7/packages/dosfstools/install0000755000175000017500000000014610335100770017630 0ustar aurelaurel#!/bin/sh . config/options mkdir -p $INSTALL/usr/bin cp $BUILD/$1*/mkdosfs/mkdosfs $INSTALL/usr/bin geexbox-0.98.7/packages/dosfstools/url0000644000175000017500000000012010335100770016751 0ustar aurelaurelftp://ftp.uni-erlangen.de/pub/Linux/LOCAL/dosfstools/dosfstools-2.11.src.tar.gz geexbox-0.98.7/packages/dvb-apps/0000755000175000017500000000000010335100770015550 5ustar aurelaurelgeexbox-0.98.7/packages/dvb-apps/build0000755000175000017500000000021610335100770016574 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain cd $BUILD/$1*/util/scan make CC="$CC" \ CFLAGS="$CFLAGS" \ LFLAGS="$LDFLAGS" geexbox-0.98.7/packages/dvb-apps/install0000755000175000017500000000035410335100770017146 0ustar aurelaurel#!/bin/sh . config/options mkdir -p $INSTALL/usr/bin cp $BUILD/$1*/util/scan/dvbscan $INSTALL/usr/bin # Build DVB transponders frequencies archive tar cf - -C $BUILD/$1/util/scan/ dvb | lzma e $INSTALL/usr/share/dvb.tar.lzma -si -a2 geexbox-0.98.7/packages/dvb-apps/unpack0000755000175000017500000000216110335100770016757 0ustar aurelaurel#!/bin/sh . config/options DVBFREQ="`ls -d $BUILD/$1*/util/scan`/dvb" # Build DVB Transponders Frequencies list mkdir -p $DVBFREQ # Add DVB Terrestrial transponders frequencies for i in `ls $BUILD/$1*/util/scan/dvb-t/ | grep -v CVS | sed 's/\([a-z][a-z]\)-.*/\1/'`; do mkdir -p "$DVBFREQ/dvb-t/$i" done for i in `ls $BUILD/$1*/util/scan/dvb-t/*-*`; do tmpdir=`echo $i | sed "s%.*/dvb-t/\([a-z][a-z]\)-.*%\1%"` file=`echo $i | sed "s%.*/dvb-t/[a-z][a-z]-\(.*\)%\1%"` cp $i "$DVBFREQ/dvb-t/$tmpdir/$file" done # Add DVB Satellite transponders frequencies mkdir -p "$DVBFREQ/dvb-s" cp $BUILD/$1*/util/scan/dvb-s/*-* $DVBFREQ/dvb-s/ # Add DVB Cable transponders frequencies for i in `ls $BUILD/$1*/util/scan/dvb-c/ | grep -v CVS | sed 's/\([a-z][a-z]\)-.*/\1/'`; do mkdir -p "$DVBFREQ/dvb-c/$i" done for i in `ls $BUILD/$1*/util/scan/dvb-c/*-*`; do tmpdir=`echo $i | sed "s%.*/dvb-c/\([a-z][a-z]\)-.*%\1%"` file=`echo $i | sed "s%.*/dvb-c/[a-z][a-z]-\(.*\)%\1%"` cp $i "$DVBFREQ/dvb-c/$tmpdir/$file" done # Add US ATSC transponders frequencies mkdir -p "$DVBFREQ/atsc" cp $BUILD/$1*/util/scan/atsc/*-* $DVBFREQ/atsc/ geexbox-0.98.7/packages/dvb-apps/url0000644000175000017500000000004710335100770016276 0ustar aurelaurelGEEXBOX_SRCS/dvb-apps-10282005.tar.bz2 geexbox-0.98.7/packages/em8300/0000755000175000017500000000000010335100770014750 5ustar aurelaurelgeexbox-0.98.7/packages/em8300/build0000755000175000017500000000070410335100770015776 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain $SCRIPTS/build linux cd $BUILD/$1* make -C modules PWD=`ls -d $ROOT/$BUILD/$1*/modules` KERNEL_LOCATION=$(kernel_path) ./configure --host=$TARGET_NAME \ --build=$HOST_NAME \ --prefix=$LIB_PREFIX \ --enable-static \ --disable-shared \ --disable-gtktest make -C em8300setup make -C include install em8300incdir="$LIB_PREFIX/include/linux" geexbox-0.98.7/packages/em8300/config/0000755000175000017500000000000010335100770016215 5ustar aurelaurelgeexbox-0.98.7/packages/em8300/config/packages.ini0000644000175000017500000000040710335100770020475 0ustar aurelaurel[Firmwares/EM8300] name=Firmware for the EM8300 card. desc=Firmware for the RealMagic EM8300 Hollywood+ desc=(a.k.a. Creative Labs DXR3) MPEG-2 hardware decompression card. file=http://dxr3.sourceforge.net/download/em8300.uc md5=1af7a2241e17d17684289f39168eb6b9 geexbox-0.98.7/packages/em8300/install0000755000175000017500000000074010335100770016345 0ustar aurelaurel#!/bin/sh . config/options mkdir -p $INSTALL/usr/lib mkdir -p $INSTALL/usr/bin mkdir -p `ls -d $INSTALL/lib/modules/*`/kernel/drivers/video cp $BUILD/$1*/modules/adv717x.ko $INSTALL/lib/modules/*/kernel/drivers/video/ cp $BUILD/$1*/modules/bt865.ko $INSTALL/lib/modules/*/kernel/drivers/video/ cp $BUILD/$1*/modules/em8300.ko $INSTALL/lib/modules/*/kernel/drivers/video/ cp $BUILD/$1*/modules/em8300.uc $INSTALL/firmwares cp $BUILD/$1*/em8300setup/em8300setup $INSTALL/usr/bin geexbox-0.98.7/packages/em8300/patches/0000755000175000017500000000000010335100770016377 5ustar aurelaurelgeexbox-0.98.7/packages/em8300/patches/10_remove-i2c-isa.diff0000644000175000017500000000377710335100770022271 0ustar aurelaurelbackported from cvs diff -Nur em8300-0.15.1.orig/modules/adv717x.c em8300-0.15.1/modules/adv717x.c --- em8300-0.15.1.orig/modules/adv717x.c Sat Apr 9 23:23:54 2005 +++ em8300-0.15.1/modules/adv717x.c Fri Oct 28 12:18:19 2005 @@ -85,12 +85,6 @@ MODULE_PARM(color_bars, "1-" __MODULE_STRING(EM8300_MAX) "i"); MODULE_PARM_DESC(color_bars, "If you set this to 1 a set of color bars will be displayed on your screen (used for testing if the chip is working). Defaults to 0."); -#define i2c_is_isa_client(clientptr) \ - ((clientptr)->adapter->algo->id == I2C_ALGO_ISA) -#define i2c_is_isa_adapter(adapptr) \ - ((adapptr)->algo->id == I2C_ALGO_ISA) - - #define ADV7175_REG_MR0 0 #define ADV7175_REG_MR1 1 #define ADV7175_REG_TTXRQ_CTRL 0x24 @@ -454,10 +448,6 @@ struct i2c_client *new_client; int mr0, mr1; int err; - - if (i2c_is_isa_adapter(adapter)) { - return 0; - } if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_READ_BYTE | I2C_FUNC_SMBUS_WRITE_BYTE_DATA)) { return 0; diff -Nur em8300-0.15.1.orig/modules/bt865.c em8300-0.15.1/modules/bt865.c --- em8300-0.15.1.orig/modules/bt865.c Sat Apr 9 23:23:54 2005 +++ em8300-0.15.1/modules/bt865.c Fri Oct 28 12:18:51 2005 @@ -65,12 +65,6 @@ MODULE_PARM(rgb_mode, "1-" __MODULE_STRING(EM8300_MAX) "i"); MODULE_PARM_DESC(rgb_mode, "If you set this to 1, RGB output is enabled. You will need to hack the DXR3 hardware. Defaults to 0."); -#define i2c_is_isa_client(clientptr) \ - ((clientptr)->adapter->algo->id == I2C_ALGO_ISA) -#define i2c_is_isa_adapter(adapptr) \ - ((adapptr)->algo->id == I2C_ALGO_ISA) - - static int bt865_attach_adapter(struct i2c_adapter *adapter); int bt865_detach_client(struct i2c_client *client); int bt865_command(struct i2c_client *client, unsigned int cmd, void *arg); @@ -870,10 +864,6 @@ struct bt865_data_s *data; struct i2c_client *new_client; int err, chk = 0; - - if (i2c_is_isa_adapter(adapter)) { - return 0; - } chk = i2c_check_functionality(adapter, I2C_FUNC_SMBUS_READ_BYTE | I2C_FUNC_SMBUS_WRITE_BYTE_DATA); geexbox-0.98.7/packages/em8300/patches/20_remove-asm-segment-include.diff0000644000175000017500000000303510335100770024667 0ustar aurelaurelbackported from cvs diff -Nur em8300-0.15.1.orig/modules/adv717x.c em8300-0.15.1/modules/adv717x.c --- em8300-0.15.1.orig/modules/adv717x.c Sat Apr 9 23:23:54 2005 +++ em8300-0.15.1/modules/adv717x.c Fri Nov 4 11:43:01 2005 @@ -33,7 +33,6 @@ #include #include #include -#include #include #include diff -Nur em8300-0.15.1.orig/modules/bt865.c em8300-0.15.1/modules/bt865.c --- em8300-0.15.1.orig/modules/bt865.c Sat Apr 9 23:23:54 2005 +++ em8300-0.15.1/modules/bt865.c Fri Nov 4 11:43:06 2005 @@ -37,7 +37,6 @@ #include #include #include -#include #include #include diff -Nur em8300-0.15.1.orig/modules/em8300_fifo.c em8300-0.15.1/modules/em8300_fifo.c --- em8300-0.15.1.orig/modules/em8300_fifo.c Tue May 24 02:44:12 2005 +++ em8300-0.15.1/modules/em8300_fifo.c Fri Nov 4 11:43:24 2005 @@ -37,7 +37,6 @@ #include #include #include -#include #include #include diff -Nur em8300-0.15.1.orig/modules/em8300_main.c em8300-0.15.1/modules/em8300_main.c --- em8300-0.15.1.orig/modules/em8300_main.c Tue Sep 6 01:17:39 2005 +++ em8300-0.15.1/modules/em8300_main.c Fri Nov 4 11:43:29 2005 @@ -40,7 +40,6 @@ #include #include #include -#include #ifdef CONFIG_MTRR #include #endif geexbox-0.98.7/packages/em8300/unpack0000755000175000017500000000011210335100770016151 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/fixconfigtools $BUILD/$1*/autotools geexbox-0.98.7/packages/em8300/url0000644000175000017500000000010410335100770015470 0ustar aurelaurelhttp://ovh.dl.sourceforge.net/sourceforge/dxr3/em8300-0.15.1.tar.gz geexbox-0.98.7/packages/extra-codecs-nonfree/0000755000175000017500000000000010335100770020047 5ustar aurelaurelgeexbox-0.98.7/packages/extra-codecs-nonfree/arch0000644000175000017500000000000510335100770020702 0ustar aurelaureli386 geexbox-0.98.7/packages/extra-codecs-nonfree/config/0000755000175000017500000000000010335100770021314 5ustar aurelaurelgeexbox-0.98.7/packages/extra-codecs-nonfree/config/packages.ini0000644000175000017500000000432710335100770023601 0ustar aurelaurel[Codecs/] name=Codecs file=http://www.geexbox.org/codecs/ dir=iso/GEEXBOX/codecs/ target=i386 [Codecs/On2/] name=On2 Codecs file=On2/ target=i386 [Codecs/On2/On2 VP4 Personal] name=On2 VP4 Personal Codec license=LICENSE file=vp4vfw.dll.bz2 md5=4fa1470b0744c8fded709494cc01dcdd target=i386 [Codecs/On2/On2 VP5 Personal] name=On2 VP5 Personal Codec license=LICENSE file=vp5vfw.dll.bz2 md5=8f58c6bfe31a9bb1c193aa1d4831989c target=i386 [Codecs/On2/On2 VP6 Personal] name=On2 VP6 Personal Codec license=LICENSE file=vp6vfw.dll.bz2 md5=5bcef75c281d57241cd0f6a51d2afeed target=i386 [Codecs/Real/] name=Win32 Real Player + Audio decoders file=Real/Win32/ target=i386 [Codecs/Real/RealPlayer 8 RV20] name=Win32 RealPlayer 8 RV20 decoder license=LICENSE file=drv23260.dll.bz2 md5=5d5d0ab21dfa9872433a378403f37f20 target=i386 [Codecs/Real/RealPlayer 8 RV30] name=Win32 RealPlayer 8 RV30 decoder license=LICENSE file=drv33260.dll.bz2 md5=2be675800d03234aa8ab6a800a61fae2 target=i386 [Codecs/Real/RealPlayer 9 RV40] name=Win32 RealPlayer 9 RV40 decoder license=LICENSE file=drv43260.dll.bz2 md5=73f4dad3532961c0e1268c6002204d22 target=i386 [Codecs/Real/RealAudio] name=Win32 RealAudio decoders desc=Win32 RealAudio decoders for: desc= COOK, Sipro, ATRAC3 license=LICENSE file=atrc3260.dll.bz2 md5=c6dbfd36e02c91ff95c5411329f6fd07 file=cook3260.dll.bz2 md5=123724f7cf4bbe868f6c101f5e680adb file=sipr3260.dll.bz2 md5=f0695d686550c324d77fac7ae49c19d8 file=tokr3260.dll.bz2 md5=eedfa7261cbc1e1c6e99b34e7ecf3301 target=i386 [Codecs/QuickTime] name=QuickTime decoder desc=Win32 QuickTime Video decoder for: desc= H.263, RLE/RPZA, Cinepak, Indeo, MJPEG, MPEG-4, desc= SVQ1, SVQ3, QDMC/QDM2 desc= desc=Win32 QuickTime Audio decoder for: desc= QCLP, MACE3, MACE6 license=QuickTime/LICENSE file=QuickTime/QuickTime.qts.bz2 md5=10ade79f871f5e40fa6e7a884f1c170e file=QuickTime/QuickTimeEssentials.qtx.bz2 md5=a2ce84bd02ec8f85589b2af649904fc8 target=i386 [Codecs/Windows Media/] name=Windows Media Codecs file=WindowsMedia/ target=i386 [Codecs/Windows Media/Windows Media 9] name=Windows Media 9 Video + Audio codecs license=LICENSE file=wma9dmod.dll.bz2 md5=83a0636382c83cb5892b03a88b434781 file=wmv9dmod.dll.bz2 md5=b98208455f1e4de7b7445f4f6219f179 target=i386 geexbox-0.98.7/packages/extra-codecs-nonfree/install0000755000175000017500000000012610335100770021442 0ustar aurelaurel#!/bin/sh . config/options mkdir -p $INSTALL/codecs cp $BUILD/$1*/* $INSTALL/codecs geexbox-0.98.7/packages/extra-codecs-nonfree/url0000644000175000017500000000007410335100770020575 0ustar aurelaurelhttp://www.geexbox.org/releases/extra-codecs-nonfree.tar.gz geexbox-0.98.7/packages/fbi/0000755000175000017500000000000010335100770014574 5ustar aurelaurelgeexbox-0.98.7/packages/fbi/build0000755000175000017500000000043510335100770015623 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain $SCRIPTS/build libpcd $SCRIPTS/build jpeg $SCRIPTS/build libpng $SCRIPTS/build zlib $SCRIPTS/build libungif $SCRIPTS/build libexif $SCRIPTS/build lirc CFLAGS="$CFLAGS -ffast-math" make -C $BUILD/$1* \ verbose=yes \ fbi geexbox-0.98.7/packages/fbi/install0000755000175000017500000000063010335100770016167 0ustar aurelaurel#!/bin/sh . config/options mkdir -p $INSTALL/usr/bin cp $BUILD/$1*/$1 $INSTALL/usr/bin cp $PACKAGES/$1/scripts/fbi_wrapper $INSTALL/usr/bin cp $PACKAGES/$1/scripts/view_img $INSTALL/usr/bin mkdir -p $INSTALL/usr/lib/kbd/consolefonts $SCRIPTS/extract $1 "*.psf" $INSTALL/usr/lib/kbd/consolefonts mkdir -p $INSTALL/etc cp $CONFIG/img_ext $INSTALL/etc echo $VIEW_IMG_TIMEOUT > $INSTALL/etc/view_img_timeout geexbox-0.98.7/packages/fbi/patches/0000755000175000017500000000000010335100770016223 5ustar aurelaurelgeexbox-0.98.7/packages/fbi/patches/10_lirc.diff0000644000175000017500000000165010335100770020310 0ustar aurelaureldiff -Naur fbi-1.31.orig/fbi.c fbi-1.31/fbi.c --- fbi-1.31.orig/fbi.c 2004-04-03 00:20:19.000000000 +0200 +++ fbi-1.31/fbi.c 2004-04-03 00:55:02.000000000 +0200 @@ -942,7 +942,9 @@ redraw = 1; left += steps; - } else if (0 == strcmp(key, "\x1b[5~")) { + } else if (0 == strcmp(key, "\x1b[5~") || + 0 == strcmp(key, "b") || + 0 == strcmp(key, "B")) { return KEY_PGUP; } else if (0 == strcmp(key, "\x1b[6~") || 0 == strcmp(key, "n") || diff -Naur fbi-1.31.orig/lirc.c fbi-1.31/lirc.c --- fbi-1.31.orig/lirc.c 2004-04-03 00:20:19.000000000 +0200 +++ fbi-1.31/lirc.c 2004-04-03 00:20:31.000000000 +0200 @@ -22,7 +22,7 @@ fprintf(stderr,"lirc: no infrared remote support available\n"); return -1; } - if (0 != lirc_readconfig(NULL,&config,NULL)) { + if (0 != lirc_readconfig("/etc/lircrc",&config,NULL)) { config = NULL; } if (debug) geexbox-0.98.7/packages/fbi/patches/20_nofork.diff0000644000175000017500000000070410335100770020655 0ustar aurelaureldiff -Naur fbi-1.31.orig/fbtools.c fbi-1.31/fbtools.c --- fbi-1.31.orig/fbtools.c 2004-12-30 01:56:26.767298760 +0100 +++ fbi-1.31/fbtools.c 2004-12-30 01:56:36.956749728 +0100 @@ -265,6 +265,8 @@ fprintf(stderr,"access %s: %s\n",vtname,strerror(errno)); exit(1); } + + /* do not fork! switch (fork()) { case 0: break; @@ -274,6 +276,8 @@ default: exit(0); } + */ + close(tty); close(0); close(1); geexbox-0.98.7/packages/fbi/patches/30_crosscompile.diff0000644000175000017500000000077310335100770022070 0ustar aurelaurel--- fbi-1.31.orig/mk/Variables.mk Wed Nov 17 14:54:13 2004 +++ fbi-1.31/mk/Variables.mk Wed Nov 17 14:54:29 2004 @@ -33,12 +33,6 @@ CFLAGS += -Wall -Wmissing-prototypes -Wstrict-prototypes \ -Wpointer-arith -Wunused -# add /usr/local to the search path if something is in there ... -ifneq ($(wildcard /usr/local/include/*.h),) - CFLAGS += -I/usr/local/include - LDFLAGS += -L/usr/local/$(LIB) -endif - # fixup include path for $(srcdir) != "." ifneq ($(srcdir),.) CFLAGS += -I. -I$(srcdir) geexbox-0.98.7/packages/fbi/patches/40_no-sys_siglist.diff0000644000175000017500000000044010335100770022344 0ustar aurelaureldiff -Nur fbi-1.31.orig/fbtools.c fbi-1.31/fbtools.c --- fbi-1.31.orig/fbtools.c Sun Feb 22 14:27:40 2004 +++ fbi-1.31/fbtools.c Fri Sep 16 13:03:24 2005 @@ -518,6 +518,5 @@ /* cleanup */ fb_cleanup(); - fprintf(stderr,"Oops: %s\n",sys_siglist[termsig]); exit(42); } geexbox-0.98.7/packages/fbi/scripts/0000755000175000017500000000000010335100770016263 5ustar aurelaurelgeexbox-0.98.7/packages/fbi/scripts/fbi_wrapper0000755000175000017500000000053710335100770020516 0ustar aurelaurel#!/bin/sh if [ -f /var/view_img_timeout ]; then VIEW_IMG_TIMEOUT=`cat /var/view_img_timeout` else VIEW_IMG_TIMEOUT=`cat /etc/view_img_timeout` fi if [ $VIEW_IMG_TIMEOUT -eq 0 ] ; then VIEW_IMG_TIMEOUT="" else VIEW_IMG_TIMEOUT="--timeout $VIEW_IMG_TIMEOUT" fi fbi --autodown $VIEW_IMG_TIMEOUT --once --list /tmp/view_img_files >/dev/null 2>&1 geexbox-0.98.7/packages/fbi/scripts/view_img0000755000175000017500000000127610335100770020025 0ustar aurelaurel#!/bin/sh for i in `cat /etc/img_ext`; do if [ -z "$EXTS" ]; then EXTS="$i" else EXTS="$EXTS\|$i" fi done if test "$1" = "-a"; then # display all images in the selected folder DIR=$2 [ -d "$DIR" ] || DIR=${DIR%/[^/]*}/ ls -1 "$DIR" | grep -i "\.\($EXTS\)\$" | sed "s%\(.*\)%$DIR\1%" > /tmp/view_img_files elif test "$1" = "-r"; then # display all images in the selected folder and its subfolders (recursive) DIR=$2 [ -d "$DIR" ] || DIR=${DIR%/[^/]*}/ find "$DIR" | grep -i "\.\($EXTS\)\$" > /tmp/view_img_files else # display a single image echo "$1" > /tmp/view_img_files fi if [ -s /tmp/view_img_files ]; then echo 'quit 165' > /var/mp_control else exit 1 fi geexbox-0.98.7/packages/fbi/unpack0000755000175000017500000000133310335100770016003 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain sed -i 's/\$(call ac_header,X11\/X.h)/no/' $BUILD/$1*/GNUmakefile sed -i 's/\$(call ac_lib,pcd_open,pcd)/yes/' $BUILD/$1*/GNUmakefile sed -i 's/\$(call ac_lib,jpeg_start_compress,jpeg)/yes/' $BUILD/$1*/GNUmakefile sed -i 's/\$(call ac_lib,DGifOpenFileName,ungif)/yes/' $BUILD/$1*/GNUmakefile sed -i 's/\$(call ac_lib,png_read_info,png,-lz)/yes/' $BUILD/$1*/GNUmakefile sed -i 's/\$(call ac_lib,TIFFOpen,tiff)/no/' $BUILD/$1*/GNUmakefile sed -i 's/\$(call ac_lib,exif_data_new_from_file,exif,-lm)/yes/' $BUILD/$1*/GNUmakefile sed -i 's/\$(call ac_lib,curl_easy_init,curl)/no/' $BUILD/$1*/GNUmakefile sed -i 's/\$(call ac_lib,lirc_init,lirc_client)/yes/' $BUILD/$1*/GNUmakefile geexbox-0.98.7/packages/fbi/url0000644000175000017500000000011610335100770015317 0ustar aurelaurelhttp://dl.bytesex.org/releases/fbida/fbi_1.31.tar.gz GEEXBOX_SRCS/lat1-16.psf geexbox-0.98.7/packages/fmio/0000755000175000017500000000000010335100770014766 5ustar aurelaurelgeexbox-0.98.7/packages/fmio/arch0000644000175000017500000000000510335100770015621 0ustar aurelaureli386 geexbox-0.98.7/packages/fmio/build0000755000175000017500000000011710335100770016012 0ustar aurelaurel#!/bin/sh . config/options make -C $BUILD/$1*/src $STRIP $BUILD/$1*/src/fmio geexbox-0.98.7/packages/fmio/config/0000755000175000017500000000000010335100770016233 5ustar aurelaurelgeexbox-0.98.7/packages/fmio/config/radio0000644000175000017500000000027010335100770017253 0ustar aurelaurel# # Radio Options RADIO=no # # Radio Channels # Syntax : CHAN="Channel Frequency:Channel Title" # Example: #CHAN="91.5:CBC Radio 1" #CHAN="106.1:CHEZ" #CHAN="94.9:CIMF Rock Detente" geexbox-0.98.7/packages/fmio/install0000755000175000017500000000024010335100770016356 0ustar aurelaurel#!/bin/sh . config/options mkdir -p $INSTALL/etc mkdir -p $INSTALL/usr/bin cp $PACKAGES/$1/config/radio $INSTALL/etc cp $BUILD/$1*/src/fmio $INSTALL/usr/bin geexbox-0.98.7/packages/fmio/patches/0000755000175000017500000000000010335100770016415 5ustar aurelaurelgeexbox-0.98.7/packages/fmio/patches/10_crosscompile.diff0000644000175000017500000000106410335100770022252 0ustar aurelaureldiff -Nur fmio-2.0.8.orig/src/Makefile fmio-2.0.8/src/Makefile --- fmio-2.0.8.orig/src/Makefile Fri Apr 15 23:34:32 2005 +++ fmio-2.0.8/src/Makefile Fri Apr 15 23:35:12 2005 @@ -6,6 +6,8 @@ # Makefile for fmio -- small utility to manipulate FM radio card # CC?=cc +AR?=ar +RANLIB?=ranlib CFLAGS?=-O2 -Wall # don't use mixer stuff @@ -97,8 +99,8 @@ libradio.a: $(ALLHDRS) $(OBJS) $(DRVS) rm -f $@ - ar cru $@ $(OBJS) $(DRVS) - ranlib $@ + $(AR) cru $@ $(OBJS) $(DRVS) + $(RANLIB) $@ fmio.0: $(MANPAGE) @echo "groff -Tascii -mandoc $(MANPAGE) > $@" geexbox-0.98.7/packages/fmio/url0000644000175000017500000000003710335100770015513 0ustar aurelaurelGEEXBOX_SRCS/fmio-2.0.8.tar.gz geexbox-0.98.7/packages/freetype/0000755000175000017500000000000010335100770015657 5ustar aurelaurelgeexbox-0.98.7/packages/freetype/build0000755000175000017500000000042610335100770016706 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain $SCRIPTS/build zlib cd $BUILD/$1* ./configure \ --host=$TARGET_NAME \ --build=$HOST_NAME \ --prefix=$LIB_PREFIX \ --disable-shared \ --with-zlib make make install geexbox-0.98.7/packages/freetype/url0000644000175000017500000000011310335100770016377 0ustar aurelaurelhttp://ovh.dl.sourceforge.net/sourceforge/freetype/freetype-2.1.10.tar.bz2 geexbox-0.98.7/packages/fribidi/0000755000175000017500000000000010335100770015444 5ustar aurelaurelgeexbox-0.98.7/packages/fribidi/build0000755000175000017500000000033210335100770016467 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain cd $BUILD/$1* ./configure --host=$TARGET_NAME \ --build=$HOST_NAME \ --prefix=$LIB_PREFIX \ --disable-shared make make install geexbox-0.98.7/packages/fribidi/url0000644000175000017500000000007610335100771016175 0ustar aurelaurelhttp://fribidi.freedesktop.org/download/fribidi-0.10.7.tar.gz geexbox-0.98.7/packages/fuse/0000755000175000017500000000000010335100771014777 5ustar aurelaurelgeexbox-0.98.7/packages/fuse/build0000755000175000017500000000060310335100771016023 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain cd $BUILD/$1* ./configure --host=$TARGET_NAME \ --build=$HOST_NAME \ --prefix=$LIB_PREFIX \ --disable-shared \ --enable-static \ --disable-kernel-module \ --enable-lib \ --with-kernel=$(kernel_path) make make -C include install make -C lib install geexbox-0.98.7/packages/fuse/install0000755000175000017500000000014610335100771016374 0ustar aurelaurel#!/bin/sh . config/options mkdir -p $INSTALL/usr/bin cp $BUILD/$1*/util/fusermount $INSTALL/usr/bin geexbox-0.98.7/packages/fuse/url0000644000175000017500000000010110335100771015514 0ustar aurelaurelhttp://ovh.dl.sourceforge.net/sourceforge/fuse/fuse-2.4.1.tar.gz geexbox-0.98.7/packages/gcc/0000755000175000017500000000000010335105061014566 5ustar aurelaurelgeexbox-0.98.7/packages/gcc/build0000755000175000017500000000101110335100771015607 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/install ccache $SCRIPTS/install binutils $SCRIPTS/unpack uClibc setup_toolchain host cd $BUILD/$1* mkdir -p objdir cd objdir ../configure --host=$HOST_NAME \ --build=$HOST_NAME \ --target=$TARGET_NAME \ --prefix=$ROOT/$TOOLCHAIN \ --with-sysroot=$SYSROOT_PREFIX \ --with-local-prefix=${LIB_PREFIX#$SYSROOT_PREFIX} \ --enable-languages=c \ --disable-shared \ --disable-nls make geexbox-0.98.7/packages/gcc/install0000755000175000017500000000014210335100771016162 0ustar aurelaurel#!/bin/sh . config/options make -C $BUILD/$1*/objdir install $SCRIPTS/install ccache toolchain geexbox-0.98.7/packages/gcc/patches/0000755000175000017500000000000010335100771016220 5ustar aurelaurelgeexbox-0.98.7/packages/gcc/patches/10_uclibc-conf.diff0000644000175000017500000003447410335100771021552 0ustar aurelaureldiff -urN gcc-3.4.1-dist/gcc/config/arm/linux-elf.h gcc-3.4.1/gcc/config/arm/linux-elf.h --- gcc-3.4.1-dist/gcc/config/arm/linux-elf.h 2004-01-31 00:18:11.000000000 -0600 +++ gcc-3.4.1/gcc/config/arm/linux-elf.h 2004-08-12 15:54:42.000000000 -0500 @@ -81,6 +81,18 @@ "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s" #undef LINK_SPEC +#ifdef USE_UCLIBC +#define LINK_SPEC "%{h*} %{version:-v} \ + %{b} %{Wl,*:%*} \ + %{static:-Bstatic} \ + %{shared:-shared} \ + %{symbolic:-Bsymbolic} \ + %{rdynamic:-export-dynamic} \ + %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0} \ + -X \ + %{mbig-endian:-EB}" \ + SUBTARGET_EXTRA_LINK_SPEC +#else #define LINK_SPEC "%{h*} %{version:-v} \ %{b} %{Wl,*:%*} \ %{static:-Bstatic} \ @@ -91,6 +103,7 @@ -X \ %{mbig-endian:-EB}" \ SUBTARGET_EXTRA_LINK_SPEC +#endif #define TARGET_OS_CPP_BUILTINS() LINUX_TARGET_OS_CPP_BUILTINS() diff -urN gcc-3.4.1-dist/gcc/config/cris/linux.h gcc-3.4.1/gcc/config/cris/linux.h --- gcc-3.4.1-dist/gcc/config/cris/linux.h 2003-11-28 21:08:09.000000000 -0600 +++ gcc-3.4.1/gcc/config/cris/linux.h 2004-08-12 15:54:43.000000000 -0500 @@ -79,6 +79,25 @@ #undef CRIS_DEFAULT_CPU_VERSION #define CRIS_DEFAULT_CPU_VERSION CRIS_CPU_NG +#ifdef USE_UCLIBC + +#undef CRIS_SUBTARGET_VERSION +#define CRIS_SUBTARGET_VERSION " - cris-axis-linux-uclibc" + +#undef CRIS_LINK_SUBTARGET_SPEC +#define CRIS_LINK_SUBTARGET_SPEC \ + "-mcrislinux\ + -rpath-link include/asm/../..%s\ + %{shared} %{static}\ + %{symbolic:-Bdynamic} %{shlib:-Bdynamic} %{static:-Bstatic}\ + %{!shared: \ + %{!static: \ + %{rdynamic:-export-dynamic} \ + %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}}} \ + %{!r:%{O2|O3: --gc-sections}}" + +#else /* USE_UCLIBC */ + #undef CRIS_SUBTARGET_VERSION #define CRIS_SUBTARGET_VERSION " - cris-axis-linux-gnu" @@ -93,6 +112,8 @@ %{!shared:%{!static:%{rdynamic:-export-dynamic}}}\ %{!r:%{O2|O3: --gc-sections}}" +#endif /* USE_UCLIBC */ + /* Node: Run-time Target */ diff -urN gcc-3.4.1-dist/gcc/config/cris/t-linux-uclibc gcc-3.4.1/gcc/config/cris/t-linux-uclibc --- gcc-3.4.1-dist/gcc/config/cris/t-linux-uclibc 1969-12-31 18:00:00.000000000 -0600 +++ gcc-3.4.1/gcc/config/cris/t-linux-uclibc 2004-08-12 15:54:43.000000000 -0500 @@ -0,0 +1,3 @@ +T_CFLAGS = -DUSE_UCLIBC +TARGET_LIBGCC2_CFLAGS += -fPIC +CRTSTUFF_T_CFLAGS_S = $(TARGET_LIBGCC2_CFLAGS) diff -urN gcc-3.4.1-dist/gcc/config/i386/linux.h gcc-3.4.1/gcc/config/i386/linux.h --- gcc-3.4.1-dist/gcc/config/i386/linux.h 2003-11-28 21:08:10.000000000 -0600 +++ gcc-3.4.1/gcc/config/i386/linux.h 2004-08-12 15:54:43.000000000 -0500 @@ -118,6 +118,15 @@ %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.1}} \ %{static:-static}}}" #else +#if defined USE_UCLIBC +#define LINK_SPEC "-m elf_i386 %{shared:-shared} \ + %{!shared: \ + %{!ibcs: \ + %{!static: \ + %{rdynamic:-export-dynamic} \ + %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}} \ + %{static:-static}}}" +#else #define LINK_SPEC "-m elf_i386 %{shared:-shared} \ %{!shared: \ %{!ibcs: \ @@ -126,6 +135,7 @@ %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ %{static:-static}}}" #endif +#endif /* A C statement (sans semicolon) to output to the stdio stream FILE the assembler definition of uninitialized global DECL named diff -urN gcc-3.4.1-dist/gcc/config/mips/linux.h gcc-3.4.1/gcc/config/mips/linux.h --- gcc-3.4.1-dist/gcc/config/mips/linux.h 2004-06-15 20:42:24.000000000 -0500 +++ gcc-3.4.1/gcc/config/mips/linux.h 2004-08-12 15:54:43.000000000 -0500 @@ -109,6 +109,17 @@ /* Borrowed from sparc/linux.h */ #undef LINK_SPEC +#ifdef USE_UCLIBC +#define LINK_SPEC \ + "%(endian_spec) \ + %{shared:-shared} \ + %{!shared: \ + %{!ibcs: \ + %{!static: \ + %{rdynamic:-export-dynamic} \ + %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}} \ + %{static:-static}}}" +#else #define LINK_SPEC \ "%(endian_spec) \ %{shared:-shared} \ @@ -118,6 +129,7 @@ %{rdynamic:-export-dynamic} \ %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \ %{static:-static}}}" +#endif #undef SUBTARGET_ASM_SPEC #define SUBTARGET_ASM_SPEC "\ diff -urN gcc-3.4.1-dist/gcc/config/rs6000/linux.h gcc-3.4.1/gcc/config/rs6000/linux.h --- gcc-3.4.1-dist/gcc/config/rs6000/linux.h 2004-02-25 09:11:19.000000000 -0600 +++ gcc-3.4.1/gcc/config/rs6000/linux.h 2004-08-12 15:54:43.000000000 -0500 @@ -61,7 +61,11 @@ #define LINK_START_DEFAULT_SPEC "%(link_start_linux)" #undef LINK_OS_DEFAULT_SPEC +#ifdef USE_UCLIBC +#define LINK_OS_DEFAULT_SPEC "%(link_os_linux_uclibc)" +#else #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)" +#endif #define LINK_GCC_C_SEQUENCE_SPEC \ "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}" diff -urN gcc-3.4.1-dist/gcc/config/rs6000/sysv4.h gcc-3.4.1/gcc/config/rs6000/sysv4.h --- gcc-3.4.1-dist/gcc/config/rs6000/sysv4.h 2004-06-10 01:39:50.000000000 -0500 +++ gcc-3.4.1/gcc/config/rs6000/sysv4.h 2004-08-12 15:54:43.000000000 -0500 @@ -947,6 +947,7 @@ mcall-linux : %(link_os_linux) ; \ mcall-gnu : %(link_os_gnu) ; \ mcall-netbsd : %(link_os_netbsd) ; \ + mcall-linux-uclibc : %(link_os_linux_uclibc); \ mcall-openbsd: %(link_os_openbsd) ; \ : %(link_os_default) }" @@ -1124,6 +1125,10 @@ %{rdynamic:-export-dynamic} \ %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}" +#define LINK_OS_LINUX_UCLIBC_SPEC "-m elf32ppclinux %{!shared: %{!static: \ + %{rdynamic:-export-dynamic} \ + %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}}}" + #if defined(HAVE_LD_EH_FRAME_HDR) # define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " #endif @@ -1290,6 +1295,7 @@ { "link_os_sim", LINK_OS_SIM_SPEC }, \ { "link_os_freebsd", LINK_OS_FREEBSD_SPEC }, \ { "link_os_linux", LINK_OS_LINUX_SPEC }, \ + { "link_os_linux_uclibc", LINK_OS_LINUX_UCLIBC_SPEC }, \ { "link_os_gnu", LINK_OS_GNU_SPEC }, \ { "link_os_netbsd", LINK_OS_NETBSD_SPEC }, \ { "link_os_openbsd", LINK_OS_OPENBSD_SPEC }, \ diff -urN gcc-3.4.1-dist/gcc/config/sh/linux.h gcc-3.4.1/gcc/config/sh/linux.h --- gcc-3.4.1-dist/gcc/config/sh/linux.h 2004-01-11 20:29:13.000000000 -0600 +++ gcc-3.4.1/gcc/config/sh/linux.h 2004-08-12 15:54:43.000000000 -0500 @@ -73,12 +73,21 @@ #undef SUBTARGET_LINK_EMUL_SUFFIX #define SUBTARGET_LINK_EMUL_SUFFIX "_linux" #undef SUBTARGET_LINK_SPEC +#ifdef USE_UCLIBC +#define SUBTARGET_LINK_SPEC \ + "%{shared:-shared} \ + %{!static: \ + %{rdynamic:-export-dynamic} \ + %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}} \ + %{static:-static}" +#else #define SUBTARGET_LINK_SPEC \ "%{shared:-shared} \ %{!static: \ %{rdynamic:-export-dynamic} \ %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ %{static:-static}" +#endif #undef LIB_SPEC #define LIB_SPEC \ diff -urN gcc-3.4.1-dist/gcc/config/sh/t-linux-uclibc gcc-3.4.1/gcc/config/sh/t-linux-uclibc --- gcc-3.4.1-dist/gcc/config/sh/t-linux-uclibc 1969-12-31 18:00:00.000000000 -0600 +++ gcc-3.4.1/gcc/config/sh/t-linux-uclibc 2004-08-12 15:54:43.000000000 -0500 @@ -0,0 +1,13 @@ +T_CFLAGS = -DUSE_UCLIBC + +TARGET_LIBGCC2_CFLAGS = -fpic -DNO_FPSCR_VALUES +LIB1ASMFUNCS_CACHE = _ic_invalidate + +LIB2FUNCS_EXTRA= + +MULTILIB_OPTIONS= $(MULTILIB_ENDIAN) m3e/m4 +MULTILIB_DIRNAMES= +MULTILIB_MATCHES = +MULTILIB_EXCEPTIONS= + +EXTRA_MULTILIB_PARTS= crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o diff -urN gcc-3.4.1-dist/gcc/config/sh/t-sh64-uclibc gcc-3.4.1/gcc/config/sh/t-sh64-uclibc --- gcc-3.4.1-dist/gcc/config/sh/t-sh64-uclibc 1969-12-31 18:00:00.000000000 -0600 +++ gcc-3.4.1/gcc/config/sh/t-sh64-uclibc 2004-08-12 15:54:43.000000000 -0500 @@ -0,0 +1,13 @@ +EXTRA_MULTILIB_PARTS= crt1.o crti.o crtn.o crtbegin.o crtend.o + +LIB1ASMFUNCS = \ + _sdivsi3 _sdivsi3_i4 _udivsi3 _udivsi3_i4 _set_fpscr \ + _shcompact_call_trampoline _shcompact_return_trampoline \ + _shcompact_incoming_args _ic_invalidate _nested_trampoline \ + _push_pop_shmedia_regs \ + _udivdi3 _divdi3 _umoddi3 _moddi3 + +MULTILIB_OPTIONS = $(MULTILIB_ENDIAN) m5-32media-nofpu/m5-compact/m5-compact-nofpu/m5-64media/m5-64media-nofpu +MULTILIB_DIRNAMES= $(MULTILIB_ENDIAN) nofpu compact nofpu/compact media64 nofpu/media64 +MULTILIB_MATCHES= +MULTILIB_EXCEPTIONS= diff -urN gcc-3.4.1-dist/gcc/config/t-linux-uclibc gcc-3.4.1/gcc/config/t-linux-uclibc --- gcc-3.4.1-dist/gcc/config/t-linux-uclibc 1969-12-31 18:00:00.000000000 -0600 +++ gcc-3.4.1/gcc/config/t-linux-uclibc 2004-08-12 15:54:43.000000000 -0500 @@ -0,0 +1,15 @@ +T_CFLAGS = -DUSE_UCLIBC + +# Compile crtbeginS.o and crtendS.o with pic. +CRTSTUFF_T_CFLAGS_S = $(CRTSTUFF_T_CFLAGS) -fPIC +# Compile libgcc2.a with pic. +TARGET_LIBGCC2_CFLAGS = -fPIC + +# Override t-slibgcc-elf-ver to export some libgcc symbols with +# the symbol versions that glibc used. +#SHLIB_MAPFILES += $(srcdir)/config/libgcc-glibc.ver + +# Use unwind-dw2-fde +LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde.c \ + $(srcdir)/unwind-sjlj.c $(srcdir)/gthr-gnat.c $(srcdir)/unwind-c.c +LIB2ADDEHDEP = unwind.inc unwind-dw2-fde.h diff -urN gcc-3.4.1-dist/gcc/config.gcc gcc-3.4.1/gcc/config.gcc --- gcc-3.4.1-dist/gcc/config.gcc 2004-04-21 10:12:35.000000000 -0500 +++ gcc-3.4.1/gcc/config.gcc 2004-08-12 15:59:46.000000000 -0500 @@ -664,6 +664,12 @@ extra_parts="" use_collect2=yes ;; +arm*-*-linux-uclibc*) # ARM GNU/Linux with ELF - uClibc + tm_file="dbxelf.h elfos.h linux.h arm/elf.h arm/linux-gas.h arm/linux-elf.h arm/aout.h arm/arm.h" + tmake_file="t-slibgcc-elf-ver t-linux-uclibc arm/t-linux" + extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" + gnu_ld=yes + ;; arm*-*-linux*) # ARM GNU/Linux with ELF tm_file="dbxelf.h elfos.h linux.h arm/elf.h arm/linux-gas.h arm/linux-elf.h arm/aout.h arm/arm.h" tmake_file="t-slibgcc-elf-ver t-linux arm/t-linux" @@ -725,6 +731,10 @@ tmake_file="cris/t-cris cris/t-elfmulti" gas=yes ;; +cris-*-linux-uclibc*) + tm_file="dbxelf.h elfos.h svr4.h ${tm_file} linux.h cris/linux.h" + tmake_file="cris/t-cris t-slibgcc-elf-ver cris/t-linux-uclibc" + ;; cris-*-linux*) tm_file="dbxelf.h elfos.h svr4.h ${tm_file} linux.h cris/linux.h" tmake_file="cris/t-cris t-slibgcc-elf-ver cris/t-linux" @@ -988,6 +998,11 @@ thread_file='single' fi ;; +i[34567]86-*-linux*uclibc*) # Intel 80386's running GNU/Linux + # with ELF format using uClibc + tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h linux.h i386/linux.h" + tmake_file="t-slibgcc-elf-ver t-linux-uclibc i386/t-crtstuff" + ;; i[34567]86-*-linux*) # Intel 80386's running GNU/Linux # with ELF format using glibc 2 # aka GNU/Linux C library 6 @@ -1547,6 +1562,16 @@ gnu_ld=yes gas=yes ;; +mips*-*-linux-uclibc*) # Linux MIPS, either endian. uClibc + tm_file="dbxelf.h elfos.h svr4.h linux.h ${tm_file} mips/linux.h" + case ${target} in + mipsisa32*-*) + target_cpu_default="MASK_SOFT_FLOAT" + tm_defines="MIPS_ISA_DEFAULT=32" + ;; + esac + tmake_file="t-slibgcc-elf-ver t-linux-uclibc" + ;; mips*-*-linux*) # Linux MIPS, either endian. tm_file="dbxelf.h elfos.h svr4.h linux.h ${tm_file} mips/linux.h" case ${target} in @@ -1764,6 +1789,10 @@ tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux.h rs6000/linuxspe.h" tmake_file="rs6000/t-fprules rs6000/t-ppcos t-slibgcc-elf-ver t-linux rs6000/t-ppccomm" ;; +powerpc-*-linux-uclibc*) + tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux.h" + tmake_file="rs6000/t-fprules rs6000/t-ppcos t-slibgcc-elf-ver t-linux-uclibc rs6000/t-ppccomm" + ;; powerpc-*-linux*) tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux.h" tmake_file="rs6000/t-fprules rs6000/t-ppcos t-slibgcc-elf-ver t-linux rs6000/t-ppccomm" @@ -1916,7 +1945,7 @@ tm_file="${tm_file} dbxelf.h elfos.h svr4.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h" ;; sh-*-linux* | sh[2346lbe]*-*-linux*) - tmake_file="sh/t-sh sh/t-elf t-slibgcc-elf-ver t-linux" + tmake_file="sh/t-sh sh/t-elf t-slibgcc-elf-ver" case ${target} in sh*be-*-* | sh*eb-*-*) ;; *) @@ -1924,9 +1953,17 @@ tmake_file="${tmake_file} sh/t-le" ;; esac - tmake_file="${tmake_file} sh/t-linux" + case ${target} in + *-*-linux-uclibc*) tmake_file="${tmake_file} t-linux-uclibc sh/t-linux-uclibc" ;; + *) tmake_file="${tmake_file} t-linux sh/t-linux" ;; + esac tm_file="${tm_file} dbxelf.h elfos.h svr4.h sh/elf.h sh/linux.h" case ${target} in + sh64*-*-linux-uclibc*) + tmake_file="${tmake_file} sh/t-sh64-uclibc" + tm_file="${tm_file} sh/sh64.h" + extra_headers="shmedia.h ushmedia.h sshmedia.h" + ;; sh64*) tmake_file="${tmake_file} sh/t-sh64" tm_file="${tm_file} sh/sh64.h" diff -urN gcc-3.4.1-dist/libtool.m4 gcc-3.4.1/libtool.m4 --- gcc-3.4.1-dist/libtool.m4 2004-05-18 04:08:37.000000000 -0500 +++ gcc-3.4.1/libtool.m4 2004-08-12 15:54:43.000000000 -0500 @@ -689,6 +689,11 @@ lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` ;; +linux-uclibc*) + lt_cv_deplibs_check_method=pass_all + lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` + ;; + netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then [lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'] diff -urN gcc-3.4.1-dist/ltconfig gcc-3.4.1/ltconfig --- gcc-3.4.1-dist/ltconfig 2004-03-05 15:05:41.000000000 -0600 +++ gcc-3.4.1/ltconfig 2004-08-12 15:55:48.000000000 -0500 @@ -602,6 +602,7 @@ # Transform linux* to *-*-linux-gnu*, to support old configure scripts. case $host_os in +linux-uclibc*) ;; linux-gnu*) ;; linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` esac @@ -1262,6 +1263,24 @@ dynamic_linker='GNU/Linux ld.so' ;; +linux-uclibc*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' + soname_spec='${libname}${release}.so$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + # Note: copied from linux-gnu, and may not be appropriate. + hardcode_into_libs=yes + # Assume using the uClibc dynamic linker. + dynamic_linker="uClibc ld.so" + ;; + netbsd*) need_lib_prefix=no need_version=no geexbox-0.98.7/packages/gcc/unpack0000755000175000017500000000010410335100771015773 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/fixconfigtools $BUILD/$1*/gcc geexbox-0.98.7/packages/gcc/url0000644000175000017500000000012410335105061015310 0ustar aurelaurelftp://ftp.fu-berlin.de/unix/languages/gcc/releases/gcc-3.4.4/gcc-core-3.4.4.tar.bz2 geexbox-0.98.7/packages/gdb/0000755000175000017500000000000010335100771014571 5ustar aurelaurelgeexbox-0.98.7/packages/gdb/build0000755000175000017500000000100710335100771015614 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain $SCRIPTS/build ncurses export bash_cv_have_mbstate_t=set export CC_FOR_BUILD="$HOST_CC" export CFLAGS_FOR_BUILD="$HOST_CFLAGS" cd $BUILD/$1* mkdir -p objdir cd objdir ../configure --host=$TARGET_NAME \ --build=$HOST_NAME \ --with-sysroot=$SYSROOT_PREFIX \ --disable-nls \ --disable-sim \ --without-x \ --disable-gdbmi \ --disable-tui \ --disable-libada make geexbox-0.98.7/packages/gdb/install0000755000175000017500000000011110335100771016156 0ustar aurelaurel#!/bin/sh . config/options cp $BUILD/$1*/objdir/$1/$1 $INSTALL/usr/bin geexbox-0.98.7/packages/gdb/patches/0000755000175000017500000000000010335100771016220 5ustar aurelaurelgeexbox-0.98.7/packages/gdb/patches/10_uclibc-conf.diff0000644000175000017500000002003510335100771021536 0ustar aurelaurel--- gdb-6.3/bfd/config.bfd.orig Fri Oct 15 07:47:11 2004 +++ gdb-6.3/bfd/config.bfd Mon Feb 28 00:04:43 2005 @@ -129,7 +129,7 @@ targ_defvec=ecoffalpha_little_vec targ_selvecs=bfd_elf64_alpha_vec ;; - alpha*-*-linux-gnu* | alpha*-*-elf*) + alpha*-*-linux-* | alpha*-*-elf*) targ_defvec=bfd_elf64_alpha_vec targ_selvecs=ecoffalpha_little_vec ;; @@ -139,7 +139,7 @@ alpha*-*-*) targ_defvec=ecoffalpha_little_vec ;; - ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-gnu* | ia64*-*-elf* | ia64*-*-kfreebsd*-gnu) + ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-* | ia64*-*-elf* | ia64*-*-kfreebsd*-gnu) targ_defvec=bfd_elf64_ia64_little_vec targ_selvecs="bfd_elf64_ia64_big_vec bfd_efi_app_ia64_vec" ;; @@ -216,7 +216,7 @@ targ_defvec=bfd_elf32_littlearm_vec targ_selvecs=bfd_elf32_bigarm_vec ;; - armeb-*-elf | arm*b-*-linux-gnu*) + armeb-*-elf | arm*b-*-linux-*) targ_defvec=bfd_elf32_bigarm_vec targ_selvecs=bfd_elf32_littlearm_vec ;; @@ -224,7 +224,7 @@ targ_defvec=bfd_elf32_littlearm_vec targ_selvecs=bfd_elf32_bigarm_vec ;; - arm-*-elf | arm-*-freebsd* | arm*-*-linux-gnu* | arm*-*-conix* | \ + arm-*-elf | arm-*-freebsd* | arm*-*-linux-* | arm*-*-conix* | \ arm*-*-uclinux* | arm-*-kfreebsd*-gnu | arm-*-vxworks | \ arm*-*-eabi* ) targ_defvec=bfd_elf32_littlearm_vec @@ -378,7 +378,7 @@ ;; #ifdef BFD64 - hppa*64*-*-linux-gnu*) + hppa*64*-*-linux-*) targ_defvec=bfd_elf64_hppa_linux_vec targ_selvecs=bfd_elf64_hppa_vec ;; @@ -389,7 +389,7 @@ ;; #endif - hppa*-*-linux-gnu*) + hppa*-*-linux-*) targ_defvec=bfd_elf32_hppa_linux_vec targ_selvecs=bfd_elf32_hppa_vec ;; @@ -522,7 +522,7 @@ targ_selvecs=bfd_elf32_i386_vec targ_underscore=yes ;; - i[3-7]86-*-linux-gnu*) + i[3-7]86-*-linux-*) targ_defvec=bfd_elf32_i386_vec targ_selvecs="i386linux_vec bfd_efi_app_ia32_vec" targ64_selvecs=bfd_elf64_x86_64_vec @@ -536,7 +536,7 @@ targ_defvec=bfd_elf64_x86_64_vec targ_selvecs="bfd_elf32_i386_vec i386netbsd_vec i386coff_vec bfd_efi_app_ia32_vec" ;; - x86_64-*-linux-gnu*) + x86_64-*-linux-*) targ_defvec=bfd_elf64_x86_64_vec targ_selvecs="bfd_elf32_i386_vec i386linux_vec bfd_efi_app_ia32_vec" ;; @@ -706,7 +706,7 @@ targ_defvec=hp300hpux_vec targ_underscore=yes ;; - m68*-*-linux*aout*) + m68*-*-linux*aout* | m68*-*-linux-uclibc*) targ_defvec=m68klinux_vec targ_selvecs=bfd_elf32_m68k_vec targ_underscore=yes @@ -987,7 +987,7 @@ ;; #endif powerpc-*-*bsd* | powerpc-*-elf* | powerpc-*-sysv4* | powerpc-*-eabi* | \ - powerpc-*-solaris2* | powerpc-*-linux-gnu* | powerpc-*-rtems* | \ + powerpc-*-solaris2* | powerpc-*-linux-* | powerpc-*-rtems* | \ powerpc-*-chorus* | powerpc-*-vxworks* | powerpc-*-windiss*) targ_defvec=bfd_elf32_powerpc_vec targ_selvecs="rs6000coff_vec bfd_elf32_powerpcle_vec ppcboot_vec" @@ -1024,7 +1024,7 @@ targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec" ;; powerpcle-*-elf* | powerpcle-*-sysv4* | powerpcle-*-eabi* | \ - powerpcle-*-solaris2* | powerpcle-*-linux-gnu* | powerpcle-*-vxworks* |\ + powerpcle-*-solaris2* | powerpcle-*-linux-* | powerpcle-*-vxworks* |\ powerpcle-*-rtems*) targ_defvec=bfd_elf32_powerpcle_vec targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec" @@ -1192,7 +1192,7 @@ targ_selvecs="bfd_elf32_sparc_vec sunos_big_vec" targ_underscore=yes ;; - sparc-*-linux-gnu*) + sparc-*-linux-*) targ_defvec=bfd_elf32_sparc_vec targ_selvecs="sparclinux_vec bfd_elf64_sparc_vec sunos_big_vec" ;; @@ -1239,7 +1239,7 @@ targ_defvec=sunos_big_vec targ_underscore=yes ;; - sparc64-*-linux-gnu*) + sparc64-*-linux-*) targ_defvec=bfd_elf64_sparc_vec targ_selvecs="bfd_elf32_sparc_vec sparclinux_vec sunos_big_vec" ;; @@ -1308,7 +1308,7 @@ targ_underscore=yes ;; - vax-*-linux-gnu*) + vax-*-linux-*) targ_defvec=bfd_elf32_vax_vec ;; --- gdb-6.3/bfd/configure.orig Fri Oct 8 16:53:56 2004 +++ gdb-6.3/bfd/configure Sun Feb 27 18:32:58 2005 @@ -3583,6 +3583,11 @@ lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` ;; +linux-uclibc*) + lt_cv_deplibs_check_method=pass_all + lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` + ;; + netbsd* | knetbsd*-gnu) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' @@ -9914,7 +9919,7 @@ alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu) COREFILE='' ;; - alpha*-*-linux-gnu*) + alpha*-*-linux-*) COREFILE=trad-core.lo TRAD_HEADER='"hosts/alphalinux.h"' ;; @@ -9978,7 +9983,7 @@ COREFILE=trad-core.lo TRAD_HEADER='"hosts/i386mach3.h"' ;; - i[3-7]86-*-linux-gnu*) + i[3-7]86-*-linux-*) COREFILE=trad-core.lo TRAD_HEADER='"hosts/i386linux.h"' ;; @@ -10016,7 +10021,7 @@ COREFILE=trad-core.lo TRAD_HEADER='"hosts/hp300bsd.h"' ;; - m68*-*-linux-gnu*) + m68*-*-linux-*) COREFILE=trad-core.lo TRAD_HEADER='"hosts/m68klinux.h"' ;; @@ -10150,7 +10155,7 @@ COREFILE=trad-core.lo TRAD_HEADER='"hosts/vaxult2.h"' ;; - vax-*-linux-gnu*) + vax-*-linux-*) COREFILE=trad-core.lo TRAD_HEADER='"hosts/vaxlinux.h"' ;; --- gdb-6.3/bfd/configure.in.orig Fri Oct 8 16:53:59 2004 +++ gdb-6.3/bfd/configure.in Sun Feb 27 18:14:41 2005 @@ -163,7 +163,7 @@ alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu) COREFILE='' ;; - alpha*-*-linux-gnu*) + alpha*-*-linux-*) COREFILE=trad-core.lo TRAD_HEADER='"hosts/alphalinux.h"' ;; @@ -248,7 +248,7 @@ TRAD_HEADER='"hosts/i386mach3.h"' ;; changequote(,)dnl - i[3-7]86-*-linux-gnu*) + i[3-7]86-*-linux-*) changequote([,])dnl COREFILE=trad-core.lo TRAD_HEADER='"hosts/i386linux.h"' @@ -289,7 +289,7 @@ COREFILE=trad-core.lo TRAD_HEADER='"hosts/hp300bsd.h"' ;; - m68*-*-linux-gnu*) + m68*-*-linux-*) COREFILE=trad-core.lo TRAD_HEADER='"hosts/m68klinux.h"' ;; @@ -375,7 +375,7 @@ COREFILE=trad-core.lo TRAD_HEADER='"hosts/vaxult2.h"' ;; - vax-*-linux-gnu*) + vax-*-linux-*) COREFILE=trad-core.lo TRAD_HEADER='"hosts/vaxlinux.h"' ;; --- gdb-6.3/libtool.m4.orig Wed Jul 21 21:21:41 2004 +++ gdb-6.3/libtool.m4 Mon Feb 28 00:08:11 2005 @@ -653,6 +653,11 @@ fi ;; +linux-uclibc*) + lt_cv_deplibs_check_method=pass_all + lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` + ;; + newsos6) [lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'] lt_cv_file_magic_cmd=/usr/bin/file --- gdb-6.3/ltconfig.orig Tue Oct 5 15:34:42 2004 +++ gdb-6.3/ltconfig Sun Feb 27 18:14:41 2005 @@ -602,7 +602,7 @@ # Transform linux* to *-*-linux-gnu*, to support old configure scripts. case $host_os in -linux-gnu*) ;; +linux-gnu*|linux-uclibc*) ;; linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` esac @@ -1270,6 +1270,24 @@ dynamic_linker='GNU/Linux ld.so' ;; +linux-uclibc*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' + soname_spec='${libname}${release}.so$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + # Note: copied from linux-gnu, and may not be appropriate. + hardcode_into_libs=yes + # Assume using the uClibc dynamic linker. + dynamic_linker="uClibc ld.so" + ;; + netbsd*) need_lib_prefix=no need_version=no --- gdb-6.3/opcodes/configure.orig Fri Sep 17 08:13:38 2004 +++ gdb-6.3/opcodes/configure Mon Feb 28 00:09:42 2005 @@ -3595,6 +3595,11 @@ fi ;; +linux-uclibc*) + lt_cv_deplibs_check_method=pass_all + lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` + ;; + newsos6) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file geexbox-0.98.7/packages/gdb/url0000644000175000017500000000006110335100771015313 0ustar aurelaurelftp://sunsite.dk/mirrors/gnu/gdb/gdb-6.3.tar.bz2 geexbox-0.98.7/packages/generator/0000755000175000017500000000000010335100771016023 5ustar aurelaurelgeexbox-0.98.7/packages/generator/build0000755000175000017500000000002210335100771017042 0ustar aurelaurel#!/bin/sh exit 0 geexbox-0.98.7/packages/generator/install0000755000175000017500000000035210335100771017417 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/install tools-generator cp $BUILD/$1*/generator.exe $INSTALL cp $BUILD/$1*/linux-i386-generator $INSTALL cp $BUILD/$1*/macosx-generator.dmg $INSTALL cp $PACKAGES/$1/scripts/generator.sh $INSTALL geexbox-0.98.7/packages/generator/scripts/0000755000175000017500000000000010335100771017512 5ustar aurelaurelgeexbox-0.98.7/packages/generator/scripts/generator.sh0000755000175000017500000001752710335100771022053 0ustar aurelaurel#!/bin/sh # Menu language (bg/br/ca/cs/de/en/es/et/fi/fr/gr/he/hu/it/ko/nl/no/pl/ro/ru/sk/sr/sv/zh_CN/zh_TW) # This have no effect on DVD language. See iso/GEEXBOX/etc/mplayer/mplayer.conf LANG=en # Subtitle charset (bg/br/ca/cs/de/en/es/et/fi/fr/gr/he/hu/it/ko/nl/no/pl/ro/ru/sk/sr/sv/zh_CN/zh_TW) # Can also be set to a charset code (iso-8859-{1,2,7,8,9}/windows-125{0,1}/koi8-r/gb2312/big5/euc-kr) # when empty default is to LANG SUB_CHARSET= # Remote to Use (pctv/logitech/hauppauge/realmagic/creative/leadtek/RM-S6/ # RX-V850/animax/askey/avermedia/packard_bell/atiusb/LG/D-10) REMOTE=atiusb # Remote receiver to use (animax/askey/avermedia/atiusb/creative/hauppauge/ # homemade/irman/leadtek/logitech/pctv/realmagic) RECEIVER=atiusb # Theme THEME= # You should not have to modify the rest of this file if [ -z "`which mkisofs`" -o -z "`which mkzftree`" ]; then echo "" echo "**** You need to have mkisofs and mkzftree installed ****" echo "" exit 1 fi if [ -d ./iso -a -d ./lirc -a -d ./i18n ]; then TMPDIR="." GEEXBOX_DIR="." elif [ -d /usr/share/geexbox-generator ]; then TMPDIR="/tmp/geexbox-generator" GEEXBOX_DIR="/usr/share/geexbox-generator" else echo "" echo "**** GeeXboX files not found ****" echo "" exit 1 fi if [ -e /etc/geexbox-generator.conf ]; then . /etc/geexbox-generator.conf; fi if [ -e ~/.geexbox-generator ]; then . ~/.geexbox-generator.conf; fi case `uname -ms` in Linux\ i[3456]86) path=linux/i386 ext= ;; "Darwin Power Macintosh") path=macosx ext= ;; MINGW* | CYGWIN*) path=win32 ext=.exe ;; *) path= ;; esac if [ -n "$path" ]; then path="$GEEXBOX_DIR/tools/$path" [ -z "$MKISOFS" -a -x "$path/mkisofs$ext" ] && MKISOFS="$path/mkisofs$ext" [ -z "$MKZFTREE" -a -x "$path/mkzftree$ext" ] && MKZFTREE="$path/mkzftree$ext" fi [ -z "$MKISOFS" ] && MKISOFS=`which mkisofs` [ -z "$MKZFTREE" ] && MKZFTREE=`which mkzftree` if [ -z "$MKISOFS" -o -z "$MKZFTREE" ]; then echo "" echo "**** You need to have mkisofs and mkzftree installed ****" echo "" exit 1 fi if [ -f "$GEEXBOX_DIR/iso/GEEXBOX/boot/isolinux.bin" ]; then TARGET_ARCH=i386 elif [ -f "$GEEXBOX_DIR/iso/GEEXBOX/boot/yaboot" ]; then TARGET_ARCH=ppc else echo "Failed to detect iso target arch" exit 1 fi OUTPUT=geexbox-`cat $GEEXBOX_DIR/VERSION`-$LANG.$TARGET_ARCH.iso W32CODECS_DIR=/usr/lib/win32 . $GEEXBOX_DIR/i18n/lang.conf . $GEEXBOX_DIR/i18n/lang.funcs [ -d $W32CODECS_DIR ] && W32CODECS_USAGE=" [-w|--with-w32codecs]" usage() { cat << EOF Usage: $0 [-h|--help]$W32CODECS_USAGE [-o file.iso] EOF exit 1 } while [ $# -ne 0 ]; do case $1 in --help|-h) usage ;; --with-w32codecs|-w) [ -d /usr/lib/win32 ] && W32CODECS=1 ;; -o) OUTPUT=$2 shift ;; *) echo "Invalid option: $1" >&2 exit 1 ;; esac shift || true done [ -z "$THEME" ] && THEME=`cat $GEEXBOX_DIR/themes/default` if [ ! -f "$GEEXBOX_DIR/themes/$THEME/config" ]; then OTHEME=$THEME THEME="theme-$THEME" if [ ! -f "$GEEXBOX_DIR/themes/$THEME/config" ]; then echo "" echo "**** GeeXboX theme '$OTHEME' not found. ****" echo "" exit 1 fi fi . $GEEXBOX_DIR/themes/$THEME/config [ -z "$FONT_CHARSETS" ] && FONT_CHARSETS="iso-8859-1" MENU_CHARSET=`lang2charset "$LANG"` MENU_FONT=`lang2font "$LANG" menu` SUB_CHARSET=`lang2charset "$SUB_CHARSET"` SUB_FONT=`lang2font "$SUB_CHARSET" sub` for i in $FONT_CHARSETS; do if [ "$i" = "$MENU_CHARSET" ]; then MENU_FONT="themefont.ttf" break fi done [ -z "$SUB_FONT" -o -z "$MENU_FONT" ] && exit 1 for font in $MENU_FONT $SUB_FONT; do if [ "$font" != "themefont.ttf" -a ! -f $GEEXBOX_DIR/i18n/fonts/$font ]; then echo "" echo "**** $font font is missing ****" echo "**** Please visit the README - EXTRA SUBTITLE FONTS section ****" echo "" exit 1 fi done for file in menu_$LANG.conf help_$LANG.txt; do if [ ! -f $GEEXBOX_DIR/i18n/texts/$file ]; then echo "" echo "**** $file language file is missing ****" echo "" exit 1 fi done if [ $TMPDIR = "." ]; then rm -rf $TMPDIR/ziso else rm -rf $TMPDIR fi mkdir -p $TMPDIR/ziso [ ! -d $TMPDIR/iso ] && cp -r $GEEXBOX_DIR/iso $TMPDIR/iso echo $LANG > $TMPDIR/iso/GEEXBOX/etc/lang cp $GEEXBOX_DIR/i18n/texts/help_$LANG.txt $TMPDIR/iso/GEEXBOX/usr/share/mplayer/ cp $GEEXBOX_DIR/i18n/texts/menu_$LANG.conf $TMPDIR/iso/GEEXBOX/etc/mplayer/ cp $GEEXBOX_DIR/i18n/lang.conf $TMPDIR/iso/GEEXBOX/etc/ echo $SUB_CHARSET > $TMPDIR/iso/GEEXBOX/etc/subfont cp -r $GEEXBOX_DIR/i18n/fonts/$SUB_FONT $TMPDIR/iso/GEEXBOX/usr/share/fonts/ if [ "$MENU_FONT" = "themefont.ttf" ]; then cp $GEEXBOX_DIR/themes/$THEME/*.ttf $TMPDIR/iso/GEEXBOX/usr/share/fonts/themefont.ttf elif [ "$MENU_FONT" != "$SUB_FONT" ]; then cp -r $GEEXBOX_DIR/i18n/fonts/$MENU_FONT $TMPDIR/iso/GEEXBOX/usr/share/fonts/ fi for i in $SUB_CHARSET $MENU_CHARSET; do grep "^$i " $GEEXBOX_DIR/i18n/iconv/charset.db | cut -d ' ' -f 2 | while read f; do cp -f $GEEXBOX_DIR/i18n/iconv/$f $TMPDIR/iso/GEEXBOX/usr/share/iconv/ done done cp $GEEXBOX_DIR/themes/$THEME/config $TMPDIR/iso/GEEXBOX/etc/theme.conf cp $GEEXBOX_DIR/themes/$THEME/*.ttf $TMPDIR/iso/GEEXBOX/usr/share/fonts/themefont.ttf cp $GEEXBOX_DIR/themes/$THEME/background.avi $TMPDIR/iso/GEEXBOX/usr/share/mplayer/ [ -f $GEEXBOX_DIR/themes/$THEME/background-audio.avi ] && cp $GEEXBOX_DIR/themes/$THEME/background-audio.avi $TMPDIR/iso/GEEXBOX/usr/share/mplayer/ [ $TARGET_ARCH = i386 -a -f $GEEXBOX_DIR/themes/$THEME/grub-splash.xpm.gz ] && cp $GEEXBOX_DIR/themes/$THEME/grub-splash.xpm.gz $TMPDIR/iso/GEEXBOX/usr/share/ cp $GEEXBOX_DIR/lirc/lircrc_$REMOTE $TMPDIR/iso/GEEXBOX/etc/lircrc cp $GEEXBOX_DIR/lirc/lircd_$RECEIVER $TMPDIR/iso/GEEXBOX/etc/lircd cp $GEEXBOX_DIR/lirc/lircd_$REMOTE.conf $TMPDIR/iso/GEEXBOX/etc/lircd.conf [ -n "$W32CODECS" ] && ln -s $W32CODECS_DIR/* $TMPDIR/iso/GEEXBOX/codecs/ "$MKZFTREE" $TMPDIR/iso/GEEXBOX $TMPDIR/ziso/GEEXBOX rm -f $TMPDIR/iso/GEEXBOX/usr/share/mplayer/help_$LANG.txt rm -f $TMPDIR/iso/GEEXBOX/etc/mplayer/menu_$LANG.conf rm -f $TMPDIR/iso/GEEXBOX/etc/lang.conf rm -f $TMPDIR/iso/GEEXBOX/etc/lang rm -f $TMPDIR/iso/GEEXBOX/etc/subfont rm -f $TMPDIR/iso/GEEXBOX/etc/theme.conf rm -rf $TMPDIR/iso/GEEXBOX/usr/share/iconv/* rm -rf $TMPDIR/iso/GEEXBOX/usr/share/fonts/* rm -f $TMPDIR/iso/GEEXBOX/usr/share/mplayer/background.avi rm -f $TMPDIR/iso/GEEXBOX/usr/share/mplayer/background-audio.avi rm -f $TMPDIR/iso/GEEXBOX/usr/share/grub-splash.xpm.gz rm -f $TMPDIR/iso/GEEXBOX/etc/lirc* cp -rf $TMPDIR/iso/GEEXBOX/boot/* $TMPDIR/ziso/GEEXBOX/boot [ -f $GEEXBOX_DIR/themes/$THEME/bootsplash.dat ] && cat $GEEXBOX_DIR/themes/$THEME/bootsplash.dat >> $TMPDIR/ziso/GEEXBOX/boot/initrd.gz [ $TARGET_ARCH = i386 -a -f $GEEXBOX_DIR/themes/$THEME/splash-isolinux.rle ] && cp $GEEXBOX_DIR/themes/$THEME/splash-isolinux.rle $TMPDIR/ziso/GEEXBOX/boot/splash.rle for i in $TMPDIR/iso/*; do [ "$i" != $TMPDIR/iso/GEEXBOX ] && ln -s "../$i" $TMPDIR/ziso done case $TARGET_ARCH in i386) MKISOFS_ARCH="-no-emul-boot \ -boot-info-table \ -boot-load-size 4 \ -b GEEXBOX/boot/isolinux.bin \ -c GEEXBOX/boot/boot.catalog" ;; ppc) MKISOFS_ARCH="-hfs \ -part \ -no-desktop \ -map $GEEXBOX_DIR/maps \ -hfs-volid GEEXBOX \ -hfs-bless $TMPDIR/ziso/GEEXBOX/boot" ;; esac "$MKISOFS" -quiet -no-pad -V GEEXBOX -volset GEEXBOX \ -publisher "The GeeXboX team (www.geexbox.org)" \ -p "The GeeXboX team (www.geexbox.org)" \ -A "MKISOFS ISO 9660/HFS FILESYSTEM BUILDER" \ -z -f -D -r -J -sort $GEEXBOX_DIR/sort $MKISOFS_ARCH \ $TMPDIR/ziso > $OUTPUT if [ $TMPDIR = "." ]; then rm -rf $TMPDIR/ziso else rm -rf $TMPDIR fi echo "" echo "**** Your customized GeeXboX iso is ready ****" echo "" geexbox-0.98.7/packages/generator/url0000644000175000017500000000006210335100771016546 0ustar aurelaurelGEEXBOX_SRCS/generator--fltk--0--patch-107.tar.gz geexbox-0.98.7/packages/genext2fs/0000755000175000017500000000000010335100771015742 5ustar aurelaurelgeexbox-0.98.7/packages/genext2fs/build0000755000175000017500000000016110335100771016765 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain setup_toolchain host make -C $BUILD/$1* \ genext2fs geexbox-0.98.7/packages/genext2fs/patches/0000755000175000017500000000000010335100771017371 5ustar aurelaurelgeexbox-0.98.7/packages/genext2fs/patches/10_glibc.diff0000644000175000017500000000052510335100771021605 0ustar aurelaurel--- genext2fs-1.3.orig.orig/genext2fs.c Mon Jun 18 11:11:32 2001 +++ genext2fs-1.3.orig/genext2fs.c Wed Nov 17 22:02:07 2004 @@ -168,7 +168,7 @@ // which of course is not the same on Solaris, old glibc and new // glibc ... -#ifdef __GNUC__ +#ifdef __GLIBC__ #define SCANF_PREFIX "a" #define SCANF_STRING(s) (&s) #define GETCWD_SIZE 0 geexbox-0.98.7/packages/genext2fs/url0000644000175000017500000000012010335100771016460 0ustar aurelaurelhttp://ftp.de.debian.org/debian/pool/main/g/genext2fs/genext2fs_1.3.orig.tar.gz geexbox-0.98.7/packages/grub/0000755000175000017500000000000010335100771014774 5ustar aurelaurelgeexbox-0.98.7/packages/grub/arch0000644000175000017500000000000510335100771015627 0ustar aurelaureli386 geexbox-0.98.7/packages/grub/build0000755000175000017500000000045610335100771016026 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain cd $BUILD/$1* ./configure --host=$TARGET_NAME \ --build=$HOST_NAME \ --prefix="`ls -d $ROOT/$BUILD/$1*`/build" \ --disable-shared \ --without-curses \ --enable-graphics make make install geexbox-0.98.7/packages/grub/install0000755000175000017500000000101610335100771016366 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain FILES="e2fs_stage1_5 fat_stage1_5 stage1 stage2" mkdir -p $INSTALL/usr/share tar cf - -C $BUILD/$1*/build/lib/grub/i386-pc $FILES | lzma e $INSTALL/usr/share/grub-i386-pc.tar.lzma -si -a2 mkdir -p $INSTALL/usr/bin cp $BUILD/$1*/build/sbin/grub $INSTALL/usr/bin if [ "$2" != generator ]; then $SCRIPTS/unpack theme-$THEME [ -f "$BUILD/theme-$THEME/grub-splash.xpm.gz" ] && cp $BUILD/theme-$THEME/grub-splash.xpm.gz $INSTALL/usr/share/grub-splash.xpm.gz fi exit 0 geexbox-0.98.7/packages/grub/patches/0000755000175000017500000000000010335100771016423 5ustar aurelaurelgeexbox-0.98.7/packages/grub/patches/10_2gb_limit.diff0000644000175000017500000000266410335100771021435 0ustar aurelaurel Author: Goswin Brederlow Status: pending diff -Nurd grub-0.95+cvs20040624/stage2/char_io.c grub-0.95+cvs20040624-mrvn/stage2/char_io.c --- grub-0.95+cvs20040624/stage2/char_io.c 2004-05-23 18:45:44.000000000 +0200 +++ grub-0.95+cvs20040624-mrvn/stage2/char_io.c 2004-08-10 11:58:16.000000000 +0200 @@ -1175,13 +1175,13 @@ #endif /* ! STAGE1_5 */ int -memcheck (int addr, int len) +memcheck (unsigned long addr, unsigned long len) { #ifdef GRUB_UTIL - auto int start_addr (void); - auto int end_addr (void); + auto unsigned long start_addr (void); + auto unsigned long end_addr (void); - auto int start_addr (void) + auto unsigned long start_addr (void) { int ret; # if defined(HAVE_START_SYMBOL) @@ -1192,7 +1192,7 @@ return ret; } - auto int end_addr (void) + auto unsigned long end_addr (void) { int ret; # if defined(HAVE_END_SYMBOL) diff -Nurd grub-0.95+cvs20040624/stage2/shared.h grub-0.95+cvs20040624-mrvn/stage2/shared.h --- grub-0.95+cvs20040624/stage2/shared.h 2004-06-20 15:48:47.000000000 +0200 +++ grub-0.95+cvs20040624-mrvn/stage2/shared.h 2004-08-10 11:58:16.000000000 +0200 @@ -911,7 +911,7 @@ int nul_terminate (char *str); int get_based_digit (int c, int base); int safe_parse_maxint (char **str_ptr, int *myint_ptr); -int memcheck (int start, int len); +int memcheck (unsigned long start, unsigned long len); void grub_putstr (const char *str); #ifndef NO_DECOMPRESSION geexbox-0.98.7/packages/grub/patches/20_graphics.diff0000644000175000017500000010376710335100771021374 0ustar aurelaureldiff -Nur grub-0.95+cvs20040624.old/configure.ac grub-0.95+cvs20040624/configure.ac --- grub-0.95+cvs20040624.old/configure.ac 2004-06-20 15:48:46.000000000 +0200 +++ grub-0.95+cvs20040624/configure.ac 2004-06-24 08:32:19.000000000 +0200 @@ -595,6 +595,11 @@ [ --enable-diskless enable diskless support]) AM_CONDITIONAL(DISKLESS_SUPPORT, test "x$enable_diskless" = xyes) +dnl Graphical splashscreen support +AC_ARG_ENABLE(graphics, + [ --disable-graphics disable graphics terminal support]) +AM_CONDITIONAL(GRAPHICS_SUPPORT, test "x$enable_graphics" != xno) + dnl Hercules terminal AC_ARG_ENABLE(hercules, [ --disable-hercules disable hercules terminal support]) diff -Nur grub-0.95+cvs20040624.old/stage2/Makefile.am grub-0.95+cvs20040624/stage2/Makefile.am --- grub-0.95+cvs20040624.old/stage2/Makefile.am 2004-06-13 21:15:55.000000000 +0200 +++ grub-0.95+cvs20040624/stage2/Makefile.am 2004-06-24 08:32:19.000000000 +0200 @@ -7,7 +7,7 @@ fat.h filesys.h freebsd.h fs.h hercules.h i386-elf.h \ imgact_aout.h iso9660.h jfs.h mb_header.h mb_info.h md5.h \ nbi.h pc_slice.h serial.h shared.h smp-imps.h term.h \ - terminfo.h tparm.h nbi.h ufs2.h vstafs.h xfs.h + terminfo.h tparm.h nbi.h ufs2.h vstafs.h xfs.h graphics.h EXTRA_DIST = setjmp.S apm.S $(noinst_SCRIPTS) # For . @@ -19,7 +19,7 @@ disk_io.c fsys_ext2fs.c fsys_fat.c fsys_ffs.c fsys_iso9660.c \ fsys_jfs.c fsys_minix.c fsys_reiserfs.c fsys_ufs2.c \ fsys_vstafs.c fsys_xfs.c gunzip.c md5.c serial.c stage2.c \ - terminfo.c tparm.c + terminfo.c tparm.c graphics.c libgrub_a_CFLAGS = $(GRUB_CFLAGS) -I$(top_srcdir)/lib \ -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \ -DFSYS_ISO9660=1 -DFSYS_JFS=1 -DFSYS_MINIX=1 -DFSYS_REISERFS=1 \ @@ -80,8 +80,14 @@ HERCULES_FLAGS = endif +if GRAPHICS_SUPPORT +GRAPHICS_FLAGS = -DSUPPORT_GRAPHICS=1 +else +GRAPHICS_FLAGS = +endif + STAGE2_COMPILE = $(STAGE2_CFLAGS) -fno-builtin -nostdinc \ - $(NETBOOT_FLAGS) $(SERIAL_FLAGS) $(HERCULES_FLAGS) + $(NETBOOT_FLAGS) $(SERIAL_FLAGS) $(HERCULES_FLAGS) $(GRAPHICS_FLAGS) STAGE1_5_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,2000 STAGE1_5_COMPILE = $(STAGE2_COMPILE) -DNO_DECOMPRESSION=1 -DSTAGE1_5=1 @@ -91,7 +97,8 @@ cmdline.c common.c console.c disk_io.c fsys_ext2fs.c \ fsys_fat.c fsys_ffs.c fsys_iso9660.c fsys_jfs.c fsys_minix.c \ fsys_reiserfs.c fsys_ufs2.c fsys_vstafs.c fsys_xfs.c gunzip.c \ - hercules.c md5.c serial.c smp-imps.c stage2.c terminfo.c tparm.c + hercules.c md5.c serial.c smp-imps.c stage2.c terminfo.c tparm.c \ + graphics.c pre_stage2_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) pre_stage2_exec_CCASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) pre_stage2_exec_LDFLAGS = $(PRE_STAGE2_LINK) diff -Nur grub-0.95+cvs20040624.old/stage2/asm.S grub-0.95+cvs20040624/stage2/asm.S --- grub-0.95+cvs20040624.old/stage2/asm.S 2004-06-20 15:48:46.000000000 +0200 +++ grub-0.95+cvs20040624/stage2/asm.S 2004-06-24 08:32:19.000000000 +0200 @@ -2216,6 +2216,156 @@ pop %ebx pop %ebp ret + +/* graphics mode functions */ +#ifdef SUPPORT_GRAPHICS +VARIABLE(cursorX) +.word 0 +VARIABLE(cursorY) +.word 0 +VARIABLE(cursorCount) +.word 0 +VARIABLE(cursorBuf) +.byte 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + + +/* + * int set_videomode(mode) + * BIOS call "INT 10H Function 0h" to set video mode + * Call with %ah = 0x0 + * %al = video mode + * Returns old videomode. + */ +ENTRY(set_videomode) + push %ebp + push %ebx + push %ecx + + movb 0x10(%esp), %cl + + call EXT_C(prot_to_real) + .code16 + + xorw %bx, %bx + movb $0xf, %ah + int $0x10 /* Get Current Video mode */ + movb %al, %ch + xorb %ah, %ah + movb %cl, %al + int $0x10 /* Set Video mode */ + + DATA32 call EXT_C(real_to_prot) + .code32 + + xorb %ah, %ah + movb %ch, %al + + pop %ecx + pop %ebx + pop %ebp + ret + + +/* + * unsigned char * graphics_get_font() + * BIOS call "INT 10H Function 11h" to set font + * Call with %ah = 0x11 + */ +ENTRY(graphics_get_font) + push %ebp + push %ebx + push %ecx + push %edx + + call EXT_C(prot_to_real) + .code16 + + movw $0x1130, %ax + movb $6, %bh /* font 8x16 */ + int $0x10 + movw %bp, %dx + movw %es, %cx + + DATA32 call EXT_C(real_to_prot) + .code32 + + xorl %eax, %eax + movw %cx, %ax + shll $4, %eax + movw %dx, %ax + + pop %edx + pop %ecx + pop %ebx + pop %ebp + ret + + + +/* + * graphics_set_palette(index, red, green, blue) + * BIOS call "INT 10H Function 10h" to set individual dac register + * Call with %ah = 0x10 + * %bx = register number + * %ch = new value for green (0-63) + * %cl = new value for blue (0-63) + * %dh = new value for red (0-63) + */ + +ENTRY(graphics_set_palette) + push %ebp + push %eax + push %ebx + push %ecx + push %edx + + movw $0x3c8, %bx /* address write mode register */ + + /* wait vertical retrace */ + + movw $0x3da, %dx +l1b: inb %dx, %al /* wait vertical active display */ + test $8, %al + jnz l1b + +l2b: inb %dx, %al /* wait vertical retrace */ + test $8, %al + jnz l2b + + mov %bx, %dx + movb 0x18(%esp), %al /* index */ + outb %al, %dx + inc %dx + + movb 0x1c(%esp), %al /* red */ + outb %al, %dx + + movb 0x20(%esp), %al /* green */ + outb %al, %dx + + movb 0x24(%esp), %al /* blue */ + outb %al, %dx + + movw 0x18(%esp), %bx + + call EXT_C(prot_to_real) + .code16 + + movb %bl, %bh + movw $0x1000, %ax + int $0x10 + + DATA32 call EXT_C(real_to_prot) + .code32 + + pop %edx + pop %ecx + pop %ebx + pop %eax + pop %ebp + ret + +#endif /* SUPPORT_GRAPHICS */ /* * getrtsecs() diff -Nur grub-0.95+cvs20040624.old/stage2/builtins.c grub-0.95+cvs20040624/stage2/builtins.c --- grub-0.95+cvs20040624.old/stage2/builtins.c 2004-06-20 15:48:46.000000000 +0200 +++ grub-0.95+cvs20040624/stage2/builtins.c 2004-06-24 08:32:19.000000000 +0200 @@ -848,6 +848,138 @@ }; #endif /* SUPPORT_NETBOOT */ +static int terminal_func (char *arg, int flags); + +#ifdef SUPPORT_GRAPHICS + +static int splashimage_func(char *arg, int flags) { + char splashimage[64]; + int i; + + /* filename can only be 64 characters due to our buffer size */ + if (strlen(arg) > 63) + return 1; + if (flags == BUILTIN_CMDLINE) { + if (!grub_open(arg)) + return 1; + grub_close(); + } + + strcpy(splashimage, arg); + + /* get rid of TERM_NEED_INIT from the graphics terminal. */ + for (i = 0; term_table[i].name; i++) { + if (grub_strcmp (term_table[i].name, "graphics") == 0) { + term_table[i].flags &= ~TERM_NEED_INIT; + break; + } + } + + graphics_set_splash(splashimage); + + if (flags == BUILTIN_CMDLINE && graphics_inited) { + graphics_end(); + graphics_init(); + graphics_cls(); + } + + /* FIXME: should we be explicitly switching the terminal as a + * side effect here? */ + terminal_func("graphics", flags); + + return 0; +} + +static struct builtin builtin_splashimage = +{ + "splashimage", + splashimage_func, + BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST, + "splashimage FILE", + "Load FILE as the background image when in graphics mode." +}; + + +/* foreground */ +static int +foreground_func(char *arg, int flags) +{ + if (grub_strlen(arg) == 6) { + int r = ((hex(arg[0]) << 4) | hex(arg[1])) >> 2; + int g = ((hex(arg[2]) << 4) | hex(arg[3])) >> 2; + int b = ((hex(arg[4]) << 4) | hex(arg[5])) >> 2; + + foreground = (r << 16) | (g << 8) | b; + if (graphics_inited) + graphics_set_palette(15, r, g, b); + + return (0); + } + + return (1); +} + +static struct builtin builtin_foreground = +{ + "foreground", + foreground_func, + BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST, + "foreground RRGGBB", + "Sets the foreground color when in graphics mode." + "RR is red, GG is green, and BB blue. Numbers must be in hexadecimal." +}; + + +/* background */ +static int +background_func(char *arg, int flags) +{ + if (grub_strlen(arg) == 6) { + int r = ((hex(arg[0]) << 4) | hex(arg[1])) >> 2; + int g = ((hex(arg[2]) << 4) | hex(arg[3])) >> 2; + int b = ((hex(arg[4]) << 4) | hex(arg[5])) >> 2; + + background = (r << 16) | (g << 8) | b; + if (graphics_inited) + graphics_set_palette(0, r, g, b); + return (0); + } + + return (1); +} + +static struct builtin builtin_background = +{ + "background", + background_func, + BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST, + "background RRGGBB", + "Sets the background color when in graphics mode." + "RR is red, GG is green, and BB blue. Numbers must be in hexadecimal." +}; + +#endif /* SUPPORT_GRAPHICS */ + + +/* clear */ +static int +clear_func() +{ + if (current_term->cls) + current_term->cls(); + + return 0; +} + +static struct builtin builtin_clear = +{ + "clear", + clear_func, + BUILTIN_CMDLINE | BUILTIN_HELP_LIST, + "clear", + "Clear the screen" +}; + /* displayapm */ static int @@ -4073,7 +4205,7 @@ }; -#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) +#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) || defined(SUPPORT_GRAPHICS) /* terminal */ static int terminal_func (char *arg, int flags) @@ -4232,17 +4364,21 @@ end: current_term = term_table + default_term; current_term->flags = term_flags; - + if (lines) max_lines = lines; else - /* 24 would be a good default value. */ - max_lines = 24; - + max_lines = current_term->max_lines; + /* If the interface is currently the command-line, restart it to repaint the screen. */ - if (current_term != prev_term && (flags & BUILTIN_CMDLINE)) + if ((current_term != prev_term) && (flags & BUILTIN_CMDLINE)){ + if (prev_term->shutdown) + prev_term->shutdown(); + if (current_term->startup) + current_term->startup(); grub_longjmp (restart_cmdline_env, 0); + } return 0; } @@ -4252,7 +4388,7 @@ "terminal", terminal_func, BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_HELP_LIST, - "terminal [--dumb] [--no-echo] [--no-edit] [--timeout=SECS] [--lines=LINES] [--silent] [console] [serial] [hercules]", + "terminal [--dumb] [--no-echo] [--no-edit] [--timeout=SECS] [--lines=LINES] [--silent] [console] [serial] [hercules] [graphics]", "Select a terminal. When multiple terminals are specified, wait until" " you push any key to continue. If both console and serial are specified," " the terminal to which you input a key first will be selected. If no" @@ -4264,7 +4400,7 @@ " seconds. The option --lines specifies the maximum number of lines." " The option --silent is used to suppress messages." }; -#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES */ +#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES || SUPPORT_GRAPHICS */ #ifdef SUPPORT_SERIAL @@ -4783,6 +4919,9 @@ /* The table of builtin commands. Sorted in dictionary order. */ struct builtin *builtin_table[] = { +#ifdef SUPPORT_GRAPHICS + &builtin_background, +#endif &builtin_blocklist, &builtin_boot, #ifdef SUPPORT_NETBOOT @@ -4790,6 +4929,7 @@ #endif /* SUPPORT_NETBOOT */ &builtin_cat, &builtin_chainloader, + &builtin_clear, &builtin_cmp, &builtin_color, &builtin_configfile, @@ -4809,6 +4949,9 @@ &builtin_embed, &builtin_fallback, &builtin_find, +#ifdef SUPPORT_GRAPHICS + &builtin_foreground, +#endif &builtin_fstest, &builtin_geometry, &builtin_halt, @@ -4852,9 +4995,12 @@ #endif /* SUPPORT_SERIAL */ &builtin_setkey, &builtin_setup, -#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) +#ifdef SUPPORT_GRAPHICS + &builtin_splashimage, +#endif /* SUPPORT_GRAPHICS */ +#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) || defined(SUPPORT_GRAPHICS) &builtin_terminal, -#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES */ +#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES || SUPPORT_GRAPHICS */ #ifdef SUPPORT_SERIAL &builtin_terminfo, #endif /* SUPPORT_SERIAL */ diff -Nur grub-0.95+cvs20040624.old/stage2/char_io.c grub-0.95+cvs20040624/stage2/char_io.c --- grub-0.95+cvs20040624.old/stage2/char_io.c 2004-05-23 18:45:44.000000000 +0200 +++ grub-0.95+cvs20040624/stage2/char_io.c 2004-06-24 08:32:19.000000000 +0200 @@ -35,6 +35,7 @@ { "console", 0, + 24, console_putchar, console_checkkey, console_getkey, @@ -43,13 +44,16 @@ console_cls, console_setcolorstate, console_setcolor, - console_setcursor + console_setcursor, + 0, + 0 }, #ifdef SUPPORT_SERIAL { "serial", /* A serial device must be initialized. */ TERM_NEED_INIT, + 24, serial_putchar, serial_checkkey, serial_getkey, @@ -58,6 +62,8 @@ serial_cls, serial_setcolorstate, 0, + 0, + 0, 0 }, #endif /* SUPPORT_SERIAL */ @@ -65,6 +71,7 @@ { "hercules", 0, + 24, hercules_putchar, console_checkkey, console_getkey, @@ -73,9 +80,28 @@ hercules_cls, hercules_setcolorstate, hercules_setcolor, - hercules_setcursor + hercules_setcursor, + 0, + 0 }, #endif /* SUPPORT_HERCULES */ +#ifdef SUPPORT_GRAPHICS + { "graphics", + TERM_NEED_INIT, /* flags */ + 30, /* number of lines */ + graphics_putchar, /* putchar */ + console_checkkey, /* checkkey */ + console_getkey, /* getkey */ + graphics_getxy, /* getxy */ + graphics_gotoxy, /* gotoxy */ + graphics_cls, /* cls */ + graphics_setcolorstate, /* setcolorstate */ + graphics_setcolor, /* setcolor */ + graphics_setcursor, /* nocursor */ + graphics_init, /* initialize */ + graphics_end /* shutdown */ + }, +#endif /* SUPPORT_GRAPHICS */ /* This must be the last entry. */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }; @@ -1046,13 +1072,15 @@ the following grub_printf call will print newlines. */ count_lines = -1; + grub_printf("\n"); if (current_term->setcolorstate) current_term->setcolorstate (COLOR_STATE_HIGHLIGHT); - grub_printf ("\n[Hit return to continue]"); + grub_printf ("[Hit return to continue]"); if (current_term->setcolorstate) current_term->setcolorstate (COLOR_STATE_NORMAL); + do { @@ -1090,7 +1118,7 @@ cls (void) { /* If the terminal is dumb, there is no way to clean the terminal. */ - if (current_term->flags & TERM_DUMB) + if (current_term->flags & TERM_DUMB) grub_putchar ('\n'); else current_term->cls (); @@ -1214,6 +1242,16 @@ return ! errnum; } +void +grub_memcpy(void *dest, const void *src, int len) +{ + int i; + register char *d = (char*)dest, *s = (char*)src; + + for (i = 0; i < len; i++) + d[i] = s[i]; +} + void * grub_memmove (void *to, const void *from, int len) { diff -Nur grub-0.95+cvs20040624.old/stage2/graphics.c grub-0.95+cvs20040624/stage2/graphics.c --- grub-0.95+cvs20040624.old/stage2/graphics.c 1970-01-01 01:00:00.000000000 +0100 +++ grub-0.95+cvs20040624/stage2/graphics.c 2004-06-24 08:31:35.000000000 +0200 @@ -0,0 +1,552 @@ +/* graphics.c - graphics mode support for GRUB */ +/* Implemented as a terminal type by Jeremy Katz based + * on a patch by Paulo Csar Pereira de Andrade + */ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 2001,2002 Red Hat, Inc. + * Portions copyright (C) 2000 Conectiva, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + + + +#ifdef SUPPORT_GRAPHICS + +#include +#include +#include + +int saved_videomode; +unsigned char *font8x16; + +int graphics_inited = 0; +static char splashimage[64]; + +#define VSHADOW VSHADOW1 +unsigned char VSHADOW1[38400]; +unsigned char VSHADOW2[38400]; +unsigned char VSHADOW4[38400]; +unsigned char VSHADOW8[38400]; + +/* constants to define the viewable area */ +const int x0 = 0; +const int x1 = 80; +const int y0 = 0; +const int y1 = 30; + +/* text buffer has to be kept around so that we can write things as we + * scroll and the like */ +unsigned short text[80 * 30]; + +/* why do these have to be kept here? */ +int foreground = (63 << 16) | (63 << 8) | (63), background = 0, border = 0; + +/* current position */ +static int fontx = 0; +static int fonty = 0; + +/* global state so that we don't try to recursively scroll or cursor */ +static int no_scroll = 0; + +/* color state */ +static int graphics_standard_color = A_NORMAL; +static int graphics_normal_color = A_NORMAL; +static int graphics_highlight_color = A_REVERSE; +static int graphics_current_color = A_NORMAL; +static color_state graphics_color_state = COLOR_STATE_STANDARD; + + +/* graphics local functions */ +static void graphics_setxy(int col, int row); +static void graphics_scroll(); + +/* FIXME: where do these really belong? */ +static inline void outb(unsigned short port, unsigned char val) +{ + __asm __volatile ("outb %0,%1"::"a" (val), "d" (port)); +} + +static void MapMask(int value) { + outb(0x3c4, 2); + outb(0x3c5, value); +} + +/* bit mask register */ +static void BitMask(int value) { + outb(0x3ce, 8); + outb(0x3cf, value); +} + + + +/* Set the splash image */ +void graphics_set_splash(char *splashfile) { + grub_strcpy(splashimage, splashfile); +} + +/* Get the current splash image */ +char *graphics_get_splash(void) { + return splashimage; +} + +/* Initialize a vga16 graphics display with the palette based off of + * the image in splashimage. If the image doesn't exist, leave graphics + * mode. */ +int graphics_init() +{ + if (!graphics_inited) { + saved_videomode = set_videomode(0x12); + } + + if (!read_image(splashimage)) { + set_videomode(saved_videomode); + grub_printf("failed to read image\n"); + return 0; + } + + font8x16 = (unsigned char*)graphics_get_font(); + + graphics_inited = 1; + + /* make sure that the highlight color is set correctly */ + graphics_highlight_color = ((graphics_normal_color >> 4) | + ((graphics_normal_color & 0xf) << 4)); + + return 1; +} + +/* Leave graphics mode */ +void graphics_end(void) +{ + if (graphics_inited) { + set_videomode(saved_videomode); + graphics_inited = 0; + } +} + +/* Print ch on the screen. Handle any needed scrolling or the like */ +void graphics_putchar(int ch) { + ch &= 0xff; + + graphics_cursor(0); + + if (ch == '\n') { + if (fonty + 1 < y1) + graphics_setxy(fontx, fonty + 1); + else + graphics_scroll(); + graphics_cursor(1); + return; + } else if (ch == '\r') { + graphics_setxy(x0, fonty); + graphics_cursor(1); + return; + } + + graphics_cursor(0); + + text[fonty * 80 + fontx] = ch; + text[fonty * 80 + fontx] &= 0x00ff; + if (graphics_current_color & 0xf0) + text[fonty * 80 + fontx] |= 0x100; + + graphics_cursor(0); + + if ((fontx + 1) >= x1) { + graphics_setxy(x0, fonty); + if (fonty + 1 < y1) + graphics_setxy(x0, fonty + 1); + else + graphics_scroll(); + } else { + graphics_setxy(fontx + 1, fonty); + } + + graphics_cursor(1); +} + +/* get the current location of the cursor */ +int graphics_getxy(void) { + return (fontx << 8) | fonty; +} + +void graphics_gotoxy(int x, int y) { + graphics_cursor(0); + + graphics_setxy(x, y); + + graphics_cursor(1); +} + +void graphics_cls(void) { + int i; + unsigned char *mem, *s1, *s2, *s4, *s8; + + graphics_cursor(0); + graphics_gotoxy(x0, y0); + + mem = (unsigned char*)VIDEOMEM; + s1 = (unsigned char*)VSHADOW1; + s2 = (unsigned char*)VSHADOW2; + s4 = (unsigned char*)VSHADOW4; + s8 = (unsigned char*)VSHADOW8; + + for (i = 0; i < 80 * 30; i++) + text[i] = ' '; + graphics_cursor(1); + + BitMask(0xff); + + /* plano 1 */ + MapMask(1); + grub_memcpy(mem, s1, 38400); + + /* plano 2 */ + MapMask(2); + grub_memcpy(mem, s2, 38400); + + /* plano 3 */ + MapMask(4); + grub_memcpy(mem, s4, 38400); + + /* plano 4 */ + MapMask(8); + grub_memcpy(mem, s8, 38400); + + MapMask(15); + +} + +void graphics_setcolorstate (color_state state) { + switch (state) { + case COLOR_STATE_STANDARD: + graphics_current_color = graphics_standard_color; + break; + case COLOR_STATE_NORMAL: + graphics_current_color = graphics_normal_color; + break; + case COLOR_STATE_HIGHLIGHT: + graphics_current_color = graphics_highlight_color; + break; + default: + graphics_current_color = graphics_standard_color; + break; + } + + graphics_color_state = state; +} + +void graphics_setcolor (int normal_color, int highlight_color) { + graphics_normal_color = normal_color; + graphics_highlight_color = highlight_color; + + graphics_setcolorstate (graphics_color_state); +} + +void graphics_setcursor (int on) { + /* FIXME: we don't have a cursor in graphics */ + return; +} + +/* Read in the splashscreen image and set the palette up appropriately. + * Format of splashscreen is an xpm (can be gzipped) with 16 colors and + * 640x480. */ +int read_image(char *s) +{ + char buf[32], pal[16]; + unsigned char c, base, mask, *s1, *s2, *s4, *s8; + unsigned i, len, idx, colors, x, y, width, height; + + if (!grub_open(s)) + return 0; + + /* read header */ + if (!grub_read((char*)&buf, 10) || grub_memcmp(buf, "/* XPM */\n", 10)) { + grub_close(); + return 0; + } + + /* parse info */ + while (grub_read(&c, 1)) { + if (c == '"') + break; + } + + while (grub_read(&c, 1) && (c == ' ' || c == '\t')) + ; + + i = 0; + width = c - '0'; + while (grub_read(&c, 1)) { + if (c >= '0' && c <= '9') + width = width * 10 + c - '0'; + else + break; + } + while (grub_read(&c, 1) && (c == ' ' || c == '\t')) + ; + + height = c - '0'; + while (grub_read(&c, 1)) { + if (c >= '0' && c <= '9') + height = height * 10 + c - '0'; + else + break; + } + while (grub_read(&c, 1) && (c == ' ' || c == '\t')) + ; + + colors = c - '0'; + while (grub_read(&c, 1)) { + if (c >= '0' && c <= '9') + colors = colors * 10 + c - '0'; + else + break; + } + + base = 0; + while (grub_read(&c, 1) && c != '"') + ; + + /* palette */ + for (i = 0, idx = 1; i < colors; i++) { + len = 0; + + while (grub_read(&c, 1) && c != '"') + ; + grub_read(&c, 1); /* char */ + base = c; + grub_read(buf, 4); /* \t c # */ + + while (grub_read(&c, 1) && c != '"') { + if (len < sizeof(buf)) + buf[len++] = c; + } + + if (len == 6 && idx < 15) { + int r = ((hex(buf[0]) << 4) | hex(buf[1])) >> 2; + int g = ((hex(buf[2]) << 4) | hex(buf[3])) >> 2; + int b = ((hex(buf[4]) << 4) | hex(buf[5])) >> 2; + + pal[idx] = base; + graphics_set_palette(idx, r, g, b); + ++idx; + } + } + + x = y = len = 0; + + s1 = (unsigned char*)VSHADOW1; + s2 = (unsigned char*)VSHADOW2; + s4 = (unsigned char*)VSHADOW4; + s8 = (unsigned char*)VSHADOW8; + + for (i = 0; i < 38400; i++) + s1[i] = s2[i] = s4[i] = s8[i] = 0; + + /* parse xpm data */ + while (y < height) { + while (1) { + if (!grub_read(&c, 1)) { + grub_close(); + return 0; + } + if (c == '"') + break; + } + + while (grub_read(&c, 1) && c != '"') { + for (i = 1; i < 15; i++) + if (pal[i] == c) { + c = i; + break; + } + + mask = 0x80 >> (x & 7); + if (c & 1) + s1[len + (x >> 3)] |= mask; + if (c & 2) + s2[len + (x >> 3)] |= mask; + if (c & 4) + s4[len + (x >> 3)] |= mask; + if (c & 8) + s8[len + (x >> 3)] |= mask; + + if (++x >= 640) { + x = 0; + + if (y < 480) + len += 80; + ++y; + } + } + } + + grub_close(); + + graphics_set_palette(0, (background >> 16), (background >> 8) & 63, + background & 63); + graphics_set_palette(15, (foreground >> 16), (foreground >> 8) & 63, + foreground & 63); + graphics_set_palette(0x11, (border >> 16), (border >> 8) & 63, + border & 63); + + return 1; +} + + +/* Convert a character which is a hex digit to the appropriate integer */ +int hex(int v) +{ + if (v >= 'A' && v <= 'F') + return (v - 'A' + 10); + if (v >= 'a' && v <= 'f') + return (v - 'a' + 10); + return (v - '0'); +} + + +/* move the graphics cursor location to col, row */ +static void graphics_setxy(int col, int row) { + if (col >= x0 && col < x1) { + fontx = col; + cursorX = col << 3; + } + if (row >= y0 && row < y1) { + fonty = row; + cursorY = row << 4; + } +} + +/* scroll the screen */ +static void graphics_scroll() { + int i, j; + + /* we don't want to scroll recursively... that would be bad */ + if (no_scroll) + return; + no_scroll = 1; + + /* move everything up a line */ + for (j = y0 + 1; j < y1; j++) { + graphics_gotoxy(x0, j - 1); + for (i = x0; i < x1; i++) { + graphics_putchar(text[j * 80 + i]); + } + } + + /* last line should be blank */ + graphics_gotoxy(x0, y1 - 1); + for (i = x0; i < x1; i++) + graphics_putchar(' '); + graphics_setxy(x0, y1 - 1); + + no_scroll = 0; +} + + +void graphics_cursor(int set) { + unsigned char *pat, *mem, *ptr, chr[16 << 2]; + int i, ch, invert, offset; + + if (set && no_scroll) + return; + + offset = cursorY * 80 + fontx; + ch = text[fonty * 80 + fontx] & 0xff; + invert = (text[fonty * 80 + fontx] & 0xff00) != 0; + pat = font8x16 + (ch << 4); + + mem = (unsigned char*)VIDEOMEM + offset; + + if (!set) { + for (i = 0; i < 16; i++) { + unsigned char mask = pat[i]; + + if (!invert) { + chr[i ] = ((unsigned char*)VSHADOW1)[offset]; + chr[16 + i] = ((unsigned char*)VSHADOW2)[offset]; + chr[32 + i] = ((unsigned char*)VSHADOW4)[offset]; + chr[48 + i] = ((unsigned char*)VSHADOW8)[offset]; + + /* FIXME: if (shade) */ + if (1) { + if (ch == DISP_VERT || ch == DISP_LL || + ch == DISP_UR || ch == DISP_LR) { + unsigned char pmask = ~(pat[i] >> 1); + + chr[i ] &= pmask; + chr[16 + i] &= pmask; + chr[32 + i] &= pmask; + chr[48 + i] &= pmask; + } + if (i > 0 && ch != DISP_VERT) { + unsigned char pmask = ~(pat[i - 1] >> 1); + + chr[i ] &= pmask; + chr[16 + i] &= pmask; + chr[32 + i] &= pmask; + chr[48 + i] &= pmask; + if (ch == DISP_HORIZ || ch == DISP_UR || ch == DISP_LR) { + pmask = ~pat[i - 1]; + + chr[i ] &= pmask; + chr[16 + i] &= pmask; + chr[32 + i] &= pmask; + chr[48 + i] &= pmask; + } + } + } + chr[i ] |= mask; + chr[16 + i] |= mask; + chr[32 + i] |= mask; + chr[48 + i] |= mask; + + offset += 80; + } + else { + chr[i ] = mask; + chr[16 + i] = mask; + chr[32 + i] = mask; + chr[48 + i] = mask; + } + } + } + else { + MapMask(15); + ptr = mem; + for (i = 0; i < 16; i++, ptr += 80) { + cursorBuf[i] = pat[i]; + *ptr = ~pat[i]; + } + return; + } + + offset = 0; + for (i = 1; i < 16; i <<= 1, offset += 16) { + int j; + + MapMask(i); + ptr = mem; + for (j = 0; j < 16; j++, ptr += 80) + *ptr = chr[j + offset]; + } + + MapMask(15); +} + +#endif /* SUPPORT_GRAPHICS */ diff -Nur grub-0.95+cvs20040624.old/stage2/graphics.h grub-0.95+cvs20040624/stage2/graphics.h --- grub-0.95+cvs20040624.old/stage2/graphics.h 1970-01-01 01:00:00.000000000 +0100 +++ grub-0.95+cvs20040624/stage2/graphics.h 2004-06-24 08:31:35.000000000 +0200 @@ -0,0 +1,42 @@ +/* graphics.h - graphics console interface */ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 2002 Free Software Foundation, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#ifndef GRAPHICS_H +#define GRAPHICS_H + +/* magic constant */ +#define VIDEOMEM 0xA0000 + +/* function prototypes */ +char *graphics_get_splash(void); + +int read_image(char *s); +void graphics_cursor(int set); + +/* function prototypes for asm functions */ +void * graphics_get_font(); +void graphics_set_palette(int idx, int red, int green, int blue); +void set_int1c_handler(); +void unset_int1c_handler(); + +extern short cursorX, cursorY; +extern char cursorBuf[16]; + +#endif /* GRAPHICS_H */ diff -Nur grub-0.95+cvs20040624.old/stage2/shared.h grub-0.95+cvs20040624/stage2/shared.h --- grub-0.95+cvs20040624.old/stage2/shared.h 2004-06-20 15:48:47.000000000 +0200 +++ grub-0.95+cvs20040624/stage2/shared.h 2004-06-24 08:32:19.000000000 +0200 @@ -871,6 +871,7 @@ int grub_tolower (int c); int grub_isspace (int c); int grub_strncat (char *s1, const char *s2, int n); +void grub_memcpy(void *dest, const void *src, int len); void *grub_memmove (void *to, const void *from, int len); void *grub_memset (void *start, int c, int len); int grub_strncat (char *s1, const char *s2, int n); diff -Nur grub-0.95+cvs20040624.old/stage2/stage2.c grub-0.95+cvs20040624/stage2/stage2.c --- grub-0.95+cvs20040624.old/stage2/stage2.c 2004-06-20 15:48:47.000000000 +0200 +++ grub-0.95+cvs20040624/stage2/stage2.c 2004-06-24 08:32:19.000000000 +0200 @@ -233,6 +233,7 @@ { int c, time1, time2 = -1, first_entry = 0; char *cur_entry = 0; + struct term_entry *prev_term = NULL; /* * Main loop for menu UI. @@ -714,6 +715,15 @@ cls (); setcursor (1); + /* if our terminal needed initialization, we should shut it down + * before booting the kernel, but we want to save what it was so + * we can come back if needed */ + prev_term = current_term; + if (current_term->shutdown) + { + (*current_term->shutdown)(); + current_term = term_table; /* assumption: console is first */ + } while (1) { @@ -748,6 +758,13 @@ break; } + /* if we get back here, we should go back to what our term was before */ + current_term = prev_term; + if (current_term->startup) + /* if our terminal fails to initialize, fall back to console since + * it should always work */ + if ((*current_term->startup)() == 0) + current_term = term_table; /* we know that console is first */ show_menu = 1; goto restart; } @@ -1048,6 +1065,10 @@ while (is_preset); } + /* go ahead and make sure the terminal is setup */ + if (current_term->startup) + (*current_term->startup)(); + if (! num_entries) { /* If no acceptable config file, goto command-line, starting diff -Nur grub-0.95+cvs20040624.old/stage2/term.h grub-0.95+cvs20040624/stage2/term.h --- grub-0.95+cvs20040624.old/stage2/term.h 2002-12-03 01:02:53.000000000 +0100 +++ grub-0.95+cvs20040624/stage2/term.h 2004-06-24 08:32:19.000000000 +0200 @@ -60,6 +60,8 @@ const char *name; /* The feature flags defined above. */ unsigned long flags; + /* Default for maximum number of lines if not specified */ + unsigned short max_lines; /* Put a character. */ void (*putchar) (int c); /* Check if any input character is available. */ @@ -79,6 +81,11 @@ void (*setcolor) (int normal_color, int highlight_color); /* Turn on/off the cursor. */ int (*setcursor) (int on); + + /* function to start a terminal */ + int (*startup) (void); + /* function to use to shutdown a terminal */ + void (*shutdown) (void); }; /* This lists up available terminals. */ @@ -124,4 +131,23 @@ int hercules_setcursor (int on); #endif +#ifdef SUPPORT_GRAPHICS +extern int foreground, background, border, graphics_inited; + +void graphics_set_splash(char *splashfile); +int set_videomode (int mode); +void graphics_putchar (int c); +int graphics_getxy(void); +void graphics_gotoxy(int x, int y); +void graphics_cls(void); +void graphics_setcolorstate (color_state state); +void graphics_setcolor (int normal_color, int highlight_color); +void graphics_setcursor (int on); +int graphics_init(void); +void graphics_end(void); + +int hex(int v); +void graphics_set_palette(int idx, int red, int green, int blue); +#endif /* SUPPORT_GRAPHICS */ + #endif /* ! GRUB_TERM_HEADER */ geexbox-0.98.7/packages/grub/patches/22_graphics-makefiles.diff0000644000175000017500000014505410335100771023327 0ustar aurelaureldiff -Nur grub-0.97.orig/Makefile.in grub-0.97/Makefile.in --- grub-0.97.orig/Makefile.in Wed May 25 23:19:08 2005 +++ grub-0.97/Makefile.in Wed May 25 23:21:21 2005 @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.9.4 from Makefile.am. +# Makefile.in generated by automake 1.9.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004 Free Software Foundation, Inc. +# 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -101,6 +101,8 @@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FSYS_CFLAGS = @FSYS_CFLAGS@ +GRAPHICS_SUPPORT_FALSE = @GRAPHICS_SUPPORT_FALSE@ +GRAPHICS_SUPPORT_TRUE = @GRAPHICS_SUPPORT_TRUE@ GRUB_CFLAGS = @GRUB_CFLAGS@ GRUB_LIBS = @GRUB_LIBS@ HERCULES_SUPPORT_FALSE = @HERCULES_SUPPORT_FALSE@ @@ -250,7 +252,13 @@ # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): - @set fnord $$MAKEFLAGS; amf=$$2; \ + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ @@ -262,7 +270,7 @@ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ @@ -270,7 +278,13 @@ mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: - @set fnord $$MAKEFLAGS; amf=$$2; \ + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ @@ -291,7 +305,7 @@ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ diff -Nur grub-0.97.orig/aclocal.m4 grub-0.97/aclocal.m4 --- grub-0.97.orig/aclocal.m4 Wed May 25 23:19:08 2005 +++ grub-0.97/aclocal.m4 Wed May 25 23:21:07 2005 @@ -1,7 +1,7 @@ -# generated automatically by aclocal 1.9.4 -*- Autoconf -*- +# generated automatically by aclocal 1.9.5 -*- Autoconf -*- -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 -# Free Software Foundation, Inc. +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -11,23 +11,11 @@ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. -# -*- Autoconf -*- -# Copyright (C) 2002, 2003 Free Software Foundation, Inc. -# Generated from amversion.in; do not edit by hand. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- @@ -40,26 +28,15 @@ # Call AM_AUTOMAKE_VERSION so it can be traced. # This function is AC_REQUIREd by AC_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], - [AM_AUTOMAKE_VERSION([1.9.4])]) - -# AM_AUX_DIR_EXPAND - -# Copyright (C) 2001, 2003 Free Software Foundation, Inc. + [AM_AUTOMAKE_VERSION([1.9.5])]) -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. +# AM_AUX_DIR_EXPAND -*- Autoconf -*- -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to @@ -106,26 +83,16 @@ am_aux_dir=`cd $ac_aux_dir && pwd` ]) -# AM_CONDITIONAL -*- Autoconf -*- +# AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997, 2000, 2001, 2003, 2004 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. +# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. -# serial 6 +# serial 7 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- @@ -149,26 +116,15 @@ Usually this means the macro was only invoked conditionally.]]) fi])]) -# serial 7 -*- Autoconf -*- -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 # Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - +# serial 8 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, @@ -177,7 +133,6 @@ # CC etc. in the Makefile, will ask for an AC_PROG_CC use... - # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. @@ -317,27 +272,16 @@ AC_SUBST([AMDEPBACKSLASH]) ]) -# Generate code to set up dependency tracking. -*- Autoconf -*- - -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 -# Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. +# Generate code to set up dependency tracking. -*- Autoconf -*- -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. -#serial 2 +#serial 3 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ @@ -396,30 +340,19 @@ [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) -# Do all the work for Automake. -*- Autoconf -*- +# Do all the work for Automake. -*- Autoconf -*- -# This macro actually does too much some checks are only needed if -# your package does certain things. But this isn't really a big deal. - -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 # Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. +# serial 12 -# serial 11 +# This macro actually does too much. Some checks are only needed if +# your package does certain things. But this isn't really a big deal. # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) @@ -521,51 +454,27 @@ done echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count]) +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. - -# Copyright (C) 2001, 2003 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl install_sh=${install_sh-"$am_aux_dir/install-sh"} AC_SUBST(install_sh)]) -# -*- Autoconf -*- -# Copyright (C) 2003 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. +# Copyright (C) 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. -# serial 1 +# serial 2 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. @@ -580,28 +489,17 @@ rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) -# Add --enable-maintainer-mode option to configure. +# Add --enable-maintainer-mode option to configure. -*- Autoconf -*- # From Jim Meyering -# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004 +# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005 # Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# serial 3 +# serial 4 AC_DEFUN([AM_MAINTAINER_MODE], [AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) @@ -620,26 +518,15 @@ AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) -# Check to see how 'make' treats includes. -*- Autoconf -*- - -# Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. +# Check to see how 'make' treats includes. -*- Autoconf -*- -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. +# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. -# serial 2 +# serial 3 # AM_MAKE_INCLUDE() # ----------------- @@ -683,27 +570,16 @@ rm -f confinc confmf ]) -# -*- Autoconf -*- - - -# Copyright (C) 1997, 1999, 2000, 2001, 2003 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. +# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. +# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. -# serial 3 +# serial 4 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ @@ -729,27 +605,16 @@ fi ]) +# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + # AM_PROG_MKDIR_P # --------------- # Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise. - -# Copyright (C) 2003, 2004 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - +# # Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories # created by `make install' are always world readable, even if the # installer happens to have an overly restrictive umask (e.g. 077). @@ -803,26 +668,15 @@ fi AC_SUBST([mkdir_p])]) -# Helper functions for option handling. -*- Autoconf -*- +# Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. +# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. -# serial 2 +# serial 3 # _AM_MANGLE_OPTION(NAME) # ----------------------- @@ -847,28 +701,16 @@ AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) -# -# Check to make sure that the build environment is sane. -# - -# Copyright (C) 1996, 1997, 2000, 2001, 2003 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. +# Check to make sure that the build environment is sane. -*- Autoconf -*- -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. +# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. -# serial 3 +# serial 4 # AM_SANITY_CHECK # --------------- @@ -911,25 +753,14 @@ fi AC_MSG_RESULT(yes)]) -# AM_PROG_INSTALL_STRIP - -# Copyright (C) 2001, 2003 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. +# AM_PROG_INSTALL_STRIP +# --------------------- # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip @@ -952,25 +783,13 @@ # Check how to create a tarball. -*- Autoconf -*- -# Copyright (C) 2004 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# serial 1 +# Copyright (C) 2004, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. +# serial 2 # _AM_PROG_TAR(FORMAT) # -------------------- diff -Nur grub-0.97.orig/configure grub-0.97/configure --- grub-0.97.orig/configure Wed May 25 23:19:08 2005 +++ grub-0.97/configure Wed May 25 23:21:26 2005 @@ -311,7 +311,7 @@ # include #endif" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar build build_cpu build_vendor build_os host host_cpu host_vendor host_os MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT PERL CC ac_ct_CC CFLAGS LDFLAGS CPPFLAGS EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CCAS RANLIB ac_ct_RANLIB STAGE1_CFLAGS STAGE2_CFLAGS GRUB_CFLAGS OBJCOPY ac_ct_OBJCOPY GRUB_LIBS CPP EGREP NETBOOT_SUPPORT_TRUE NETBOOT_SUPPORT_FALSE DISKLESS_SUPPORT_TRUE DISKLESS_SUPPORT_FALSE HERCULES_SUPPORT_TRUE HERCULES_SUPPORT_FALSE SERIAL_SUPPORT_TRUE SERIAL_SUPPORT_FALSE SERIAL_SPEED_SIMULATION_TRUE SERIAL_SPEED_SIMULATION_FALSE BUILD_EXAMPLE_KERNEL_TRUE BUILD_EXAMPLE_KERNEL_FALSE FSYS_CFLAGS NET_CFLAGS NET_EXTRAFLAGS NETBOOT_DRIVERS CCASFLAGS LIBOBJS LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar build build_cpu build_vendor build_os host host_cpu host_vendor host_os MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT PERL CC ac_ct_CC CFLAGS LDFLAGS CPPFLAGS EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CCAS RANLIB ac_ct_RANLIB STAGE1_CFLAGS STAGE2_CFLAGS GRUB_CFLAGS OBJCOPY ac_ct_OBJCOPY GRUB_LIBS CPP EGREP NETBOOT_SUPPORT_TRUE NETBOOT_SUPPORT_FALSE DISKLESS_SUPPORT_TRUE DISKLESS_SUPPORT_FALSE GRAPHICS_SUPPORT_TRUE GRAPHICS_SUPPORT_FALSE HERCULES_SUPPORT_TRUE HERCULES_SUPPORT_FALSE SERIAL_SUPPORT_TRUE SERIAL_SUPPORT_FALSE SERIAL_SPEED_SIMULATION_TRUE SERIAL_SPEED_SIMULATION_FALSE BUILD_EXAMPLE_KERNEL_TRUE BUILD_EXAMPLE_KERNEL_FALSE FSYS_CFLAGS NET_CFLAGS NET_EXTRAFLAGS NETBOOT_DRIVERS CCASFLAGS LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. @@ -914,6 +914,7 @@ set the default memory location for WD/SMC --enable-cs-scan=LIST probe for CS89x0 base address using LIST --enable-diskless enable diskless support + --disable-graphics disable graphics terminal support --disable-hercules disable hercules terminal support --disable-serial disable serial terminal support --enable-serial-speed-simulation @@ -5966,6 +5967,22 @@ fi +# Check whether --enable-graphics or --disable-graphics was given. +if test "${enable_graphics+set}" = set; then + enableval="$enable_graphics" + +fi; + + +if test "x$enable_graphics" != xno; then + GRAPHICS_SUPPORT_TRUE= + GRAPHICS_SUPPORT_FALSE='#' +else + GRAPHICS_SUPPORT_TRUE='#' + GRAPHICS_SUPPORT_FALSE= +fi + + # Check whether --enable-hercules or --disable-hercules was given. if test "${enable_hercules+set}" = set; then enableval="$enable_hercules" @@ -6270,6 +6287,13 @@ Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi +if test -z "${GRAPHICS_SUPPORT_TRUE}" && test -z "${GRAPHICS_SUPPORT_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"GRAPHICS_SUPPORT\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"GRAPHICS_SUPPORT\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi if test -z "${HERCULES_SUPPORT_TRUE}" && test -z "${HERCULES_SUPPORT_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"HERCULES_SUPPORT\" was never defined. Usually this means the macro was only invoked conditionally." >&5 @@ -6907,6 +6931,8 @@ s,@NETBOOT_SUPPORT_FALSE@,$NETBOOT_SUPPORT_FALSE,;t t s,@DISKLESS_SUPPORT_TRUE@,$DISKLESS_SUPPORT_TRUE,;t t s,@DISKLESS_SUPPORT_FALSE@,$DISKLESS_SUPPORT_FALSE,;t t +s,@GRAPHICS_SUPPORT_TRUE@,$GRAPHICS_SUPPORT_TRUE,;t t +s,@GRAPHICS_SUPPORT_FALSE@,$GRAPHICS_SUPPORT_FALSE,;t t s,@HERCULES_SUPPORT_TRUE@,$HERCULES_SUPPORT_TRUE,;t t s,@HERCULES_SUPPORT_FALSE@,$HERCULES_SUPPORT_FALSE,;t t s,@SERIAL_SUPPORT_TRUE@,$SERIAL_SUPPORT_TRUE,;t t diff -Nur grub-0.97.orig/docs/Makefile.in grub-0.97/docs/Makefile.in --- grub-0.97.orig/docs/Makefile.in Wed May 25 23:19:08 2005 +++ grub-0.97/docs/Makefile.in Wed May 25 23:21:14 2005 @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.9.4 from Makefile.am. +# Makefile.in generated by automake 1.9.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004 Free Software Foundation, Inc. +# 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -120,6 +120,8 @@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FSYS_CFLAGS = @FSYS_CFLAGS@ +GRAPHICS_SUPPORT_FALSE = @GRAPHICS_SUPPORT_FALSE@ +GRAPHICS_SUPPORT_TRUE = @GRAPHICS_SUPPORT_TRUE@ GRUB_CFLAGS = @GRUB_CFLAGS@ GRUB_LIBS = @GRUB_LIBS@ HERCULES_SUPPORT_FALSE = @HERCULES_SUPPORT_FALSE@ @@ -374,7 +376,7 @@ $(DVIPS) -o $@ $< uninstall-info-am: - $(PRE_UNINSTALL) + @$(PRE_UNINSTALL) @if (install-info --version && \ install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \ list='$(INFO_DEPS)'; \ @@ -390,7 +392,7 @@ relfile=`echo "$$file" | sed 's|^.*/||'`; \ relfile_i=`echo "$$relfile" | sed 's|\.info$$||;s|$$|.i|'`; \ (if cd "$(DESTDIR)$(infodir)"; then \ - echo " rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9])"; \ + echo " cd '$(DESTDIR)$(infodir)' && rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]"; \ rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]; \ else :; fi); \ done diff -Nur grub-0.97.orig/grub/Makefile.in grub-0.97/grub/Makefile.in --- grub-0.97.orig/grub/Makefile.in Wed May 25 23:19:08 2005 +++ grub-0.97/grub/Makefile.in Wed May 25 23:21:14 2005 @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.9.4 from Makefile.am. +# Makefile.in generated by automake 1.9.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004 Free Software Foundation, Inc. +# 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -97,6 +97,8 @@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FSYS_CFLAGS = @FSYS_CFLAGS@ +GRAPHICS_SUPPORT_FALSE = @GRAPHICS_SUPPORT_FALSE@ +GRAPHICS_SUPPORT_TRUE = @GRAPHICS_SUPPORT_TRUE@ GRUB_CFLAGS = @GRUB_CFLAGS@ GRUB_LIBS = @GRUB_LIBS@ HERCULES_SUPPORT_FALSE = @HERCULES_SUPPORT_FALSE@ diff -Nur grub-0.97.orig/lib/Makefile.in grub-0.97/lib/Makefile.in --- grub-0.97.orig/lib/Makefile.in Wed May 25 23:19:08 2005 +++ grub-0.97/lib/Makefile.in Wed May 25 23:21:15 2005 @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.9.4 from Makefile.am. +# Makefile.in generated by automake 1.9.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004 Free Software Foundation, Inc. +# 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -96,6 +96,8 @@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FSYS_CFLAGS = @FSYS_CFLAGS@ +GRAPHICS_SUPPORT_FALSE = @GRAPHICS_SUPPORT_FALSE@ +GRAPHICS_SUPPORT_TRUE = @GRAPHICS_SUPPORT_TRUE@ GRUB_CFLAGS = @GRUB_CFLAGS@ GRUB_LIBS = @GRUB_LIBS@ HERCULES_SUPPORT_FALSE = @HERCULES_SUPPORT_FALSE@ diff -Nur grub-0.97.orig/netboot/Makefile.in grub-0.97/netboot/Makefile.in --- grub-0.97.orig/netboot/Makefile.in Wed May 25 23:19:08 2005 +++ grub-0.97/netboot/Makefile.in Wed May 25 23:21:16 2005 @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.9.4 from Makefile.am. +# Makefile.in generated by automake 1.9.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004 Free Software Foundation, Inc. +# 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -97,6 +97,8 @@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FSYS_CFLAGS = @FSYS_CFLAGS@ +GRAPHICS_SUPPORT_FALSE = @GRAPHICS_SUPPORT_FALSE@ +GRAPHICS_SUPPORT_TRUE = @GRAPHICS_SUPPORT_TRUE@ GRUB_CFLAGS = @GRUB_CFLAGS@ GRUB_LIBS = @GRUB_LIBS@ HERCULES_SUPPORT_FALSE = @HERCULES_SUPPORT_FALSE@ diff -Nur grub-0.97.orig/stage1/Makefile.in grub-0.97/stage1/Makefile.in --- grub-0.97.orig/stage1/Makefile.in Wed May 25 23:19:08 2005 +++ grub-0.97/stage1/Makefile.in Wed May 25 23:21:16 2005 @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.9.4 from Makefile.am. +# Makefile.in generated by automake 1.9.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004 Free Software Foundation, Inc. +# 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -102,6 +102,8 @@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FSYS_CFLAGS = @FSYS_CFLAGS@ +GRAPHICS_SUPPORT_FALSE = @GRAPHICS_SUPPORT_FALSE@ +GRAPHICS_SUPPORT_TRUE = @GRAPHICS_SUPPORT_TRUE@ GRUB_CFLAGS = @GRUB_CFLAGS@ GRUB_LIBS = @GRUB_LIBS@ HERCULES_SUPPORT_FALSE = @HERCULES_SUPPORT_FALSE@ diff -Nur grub-0.97.orig/stage2/Makefile.in grub-0.97/stage2/Makefile.in --- grub-0.97.orig/stage2/Makefile.in Wed May 25 23:19:08 2005 +++ grub-0.97/stage2/Makefile.in Wed May 25 23:21:20 2005 @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.9.4 from Makefile.am. +# Makefile.in generated by automake 1.9.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004 Free Software Foundation, Inc. +# 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -100,7 +100,7 @@ libgrub_a-fsys_xfs.$(OBJEXT) libgrub_a-gunzip.$(OBJEXT) \ libgrub_a-md5.$(OBJEXT) libgrub_a-serial.$(OBJEXT) \ libgrub_a-stage2.$(OBJEXT) libgrub_a-terminfo.$(OBJEXT) \ - libgrub_a-tparm.$(OBJEXT) + libgrub_a-tparm.$(OBJEXT) libgrub_a-graphics.$(OBJEXT) libgrub_a_OBJECTS = $(am_libgrub_a_OBJECTS) PROGRAMS = $(noinst_PROGRAMS) am__objects_1 = diskless_exec-asm.$(OBJEXT) \ @@ -125,7 +125,8 @@ diskless_exec-serial.$(OBJEXT) \ diskless_exec-smp-imps.$(OBJEXT) \ diskless_exec-stage2.$(OBJEXT) \ - diskless_exec-terminfo.$(OBJEXT) diskless_exec-tparm.$(OBJEXT) + diskless_exec-terminfo.$(OBJEXT) diskless_exec-tparm.$(OBJEXT) \ + diskless_exec-graphics.$(OBJEXT) am_diskless_exec_OBJECTS = $(am__objects_1) diskless_exec_OBJECTS = $(am_diskless_exec_OBJECTS) diskless_exec_DEPENDENCIES = ../netboot/libdrivers.a @@ -217,7 +218,8 @@ pre_stage2_exec-smp-imps.$(OBJEXT) \ pre_stage2_exec-stage2.$(OBJEXT) \ pre_stage2_exec-terminfo.$(OBJEXT) \ - pre_stage2_exec-tparm.$(OBJEXT) + pre_stage2_exec-tparm.$(OBJEXT) \ + pre_stage2_exec-graphics.$(OBJEXT) pre_stage2_exec_OBJECTS = $(am_pre_stage2_exec_OBJECTS) @NETBOOT_SUPPORT_TRUE@pre_stage2_exec_DEPENDENCIES = \ @NETBOOT_SUPPORT_TRUE@ ../netboot/libdrivers.a @@ -344,6 +346,8 @@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FSYS_CFLAGS = @FSYS_CFLAGS@ +GRAPHICS_SUPPORT_FALSE = @GRAPHICS_SUPPORT_FALSE@ +GRAPHICS_SUPPORT_TRUE = @GRAPHICS_SUPPORT_TRUE@ GRUB_CFLAGS = @GRUB_CFLAGS@ GRUB_LIBS = @GRUB_LIBS@ HERCULES_SUPPORT_FALSE = @HERCULES_SUPPORT_FALSE@ @@ -435,7 +439,7 @@ fat.h filesys.h freebsd.h fs.h hercules.h i386-elf.h \ imgact_aout.h iso9660.h jfs.h mb_header.h mb_info.h md5.h \ nbi.h pc_slice.h serial.h shared.h smp-imps.h term.h \ - terminfo.h tparm.h nbi.h ufs2.h vstafs.h xfs.h + terminfo.h tparm.h nbi.h ufs2.h vstafs.h xfs.h graphics.h EXTRA_DIST = setjmp.S apm.S $(noinst_SCRIPTS) @@ -448,7 +452,7 @@ disk_io.c fsys_ext2fs.c fsys_fat.c fsys_ffs.c fsys_iso9660.c \ fsys_jfs.c fsys_minix.c fsys_reiserfs.c fsys_ufs2.c \ fsys_vstafs.c fsys_xfs.c gunzip.c md5.c serial.c stage2.c \ - terminfo.c tparm.c + terminfo.c tparm.c graphics.c libgrub_a_CFLAGS = $(GRUB_CFLAGS) -I$(top_srcdir)/lib \ -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \ @@ -479,8 +483,10 @@ @SERIAL_SUPPORT_TRUE@SERIAL_FLAGS = -DSUPPORT_SERIAL=1 @HERCULES_SUPPORT_FALSE@HERCULES_FLAGS = @HERCULES_SUPPORT_TRUE@HERCULES_FLAGS = -DSUPPORT_HERCULES=1 +@GRAPHICS_SUPPORT_FALSE@GRAPHICS_FLAGS = +@GRAPHICS_SUPPORT_TRUE@GRAPHICS_FLAGS = -DSUPPORT_GRAPHICS=1 STAGE2_COMPILE = $(STAGE2_CFLAGS) -fno-builtin -nostdinc \ - $(NETBOOT_FLAGS) $(SERIAL_FLAGS) $(HERCULES_FLAGS) + $(NETBOOT_FLAGS) $(SERIAL_FLAGS) $(HERCULES_FLAGS) $(GRAPHICS_FLAGS) STAGE1_5_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,2000 STAGE1_5_COMPILE = $(STAGE2_COMPILE) -DNO_DECOMPRESSION=1 -DSTAGE1_5=1 @@ -490,7 +496,8 @@ cmdline.c common.c console.c disk_io.c fsys_ext2fs.c \ fsys_fat.c fsys_ffs.c fsys_iso9660.c fsys_jfs.c fsys_minix.c \ fsys_reiserfs.c fsys_ufs2.c fsys_vstafs.c fsys_xfs.c gunzip.c \ - hercules.c md5.c serial.c smp-imps.c stage2.c terminfo.c tparm.c + hercules.c md5.c serial.c smp-imps.c stage2.c terminfo.c tparm.c \ + graphics.c pre_stage2_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) pre_stage2_exec_CCASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) @@ -766,6 +773,7 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-fsys_ufs2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-fsys_vstafs.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-fsys_xfs.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-graphics.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-gunzip.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-hercules.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-md5.Po@am__quote@ @@ -820,6 +828,7 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-fsys_ufs2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-fsys_vstafs.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-fsys_xfs.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-graphics.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-gunzip.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-md5.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-serial.Po@am__quote@ @@ -850,6 +859,7 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-fsys_ufs2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-fsys_vstafs.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-fsys_xfs.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-graphics.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-gunzip.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-hercules.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-md5.Po@am__quote@ @@ -1367,6 +1377,20 @@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-tparm.obj `if test -f 'tparm.c'; then $(CYGPATH_W) 'tparm.c'; else $(CYGPATH_W) '$(srcdir)/tparm.c'; fi` +libgrub_a-graphics.o: graphics.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-graphics.o -MD -MP -MF "$(DEPDIR)/libgrub_a-graphics.Tpo" -c -o libgrub_a-graphics.o `test -f 'graphics.c' || echo '$(srcdir)/'`graphics.c; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libgrub_a-graphics.Tpo" "$(DEPDIR)/libgrub_a-graphics.Po"; else rm -f "$(DEPDIR)/libgrub_a-graphics.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='graphics.c' object='libgrub_a-graphics.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-graphics.o `test -f 'graphics.c' || echo '$(srcdir)/'`graphics.c + +libgrub_a-graphics.obj: graphics.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-graphics.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-graphics.Tpo" -c -o libgrub_a-graphics.obj `if test -f 'graphics.c'; then $(CYGPATH_W) 'graphics.c'; else $(CYGPATH_W) '$(srcdir)/graphics.c'; fi`; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libgrub_a-graphics.Tpo" "$(DEPDIR)/libgrub_a-graphics.Po"; else rm -f "$(DEPDIR)/libgrub_a-graphics.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='graphics.c' object='libgrub_a-graphics.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-graphics.obj `if test -f 'graphics.c'; then $(CYGPATH_W) 'graphics.c'; else $(CYGPATH_W) '$(srcdir)/graphics.c'; fi` + diskless_exec-bios.o: bios.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-bios.o -MD -MP -MF "$(DEPDIR)/diskless_exec-bios.Tpo" -c -o diskless_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-bios.Tpo" "$(DEPDIR)/diskless_exec-bios.Po"; else rm -f "$(DEPDIR)/diskless_exec-bios.Tpo"; exit 1; fi @@ -1731,6 +1755,20 @@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-tparm.obj `if test -f 'tparm.c'; then $(CYGPATH_W) 'tparm.c'; else $(CYGPATH_W) '$(srcdir)/tparm.c'; fi` +diskless_exec-graphics.o: graphics.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-graphics.o -MD -MP -MF "$(DEPDIR)/diskless_exec-graphics.Tpo" -c -o diskless_exec-graphics.o `test -f 'graphics.c' || echo '$(srcdir)/'`graphics.c; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-graphics.Tpo" "$(DEPDIR)/diskless_exec-graphics.Po"; else rm -f "$(DEPDIR)/diskless_exec-graphics.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='graphics.c' object='diskless_exec-graphics.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-graphics.o `test -f 'graphics.c' || echo '$(srcdir)/'`graphics.c + +diskless_exec-graphics.obj: graphics.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-graphics.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-graphics.Tpo" -c -o diskless_exec-graphics.obj `if test -f 'graphics.c'; then $(CYGPATH_W) 'graphics.c'; else $(CYGPATH_W) '$(srcdir)/graphics.c'; fi`; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-graphics.Tpo" "$(DEPDIR)/diskless_exec-graphics.Po"; else rm -f "$(DEPDIR)/diskless_exec-graphics.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='graphics.c' object='diskless_exec-graphics.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-graphics.obj `if test -f 'graphics.c'; then $(CYGPATH_W) 'graphics.c'; else $(CYGPATH_W) '$(srcdir)/graphics.c'; fi` + e2fs_stage1_5_exec-common.o: common.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-common.o -MD -MP -MF "$(DEPDIR)/e2fs_stage1_5_exec-common.Tpo" -c -o e2fs_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/e2fs_stage1_5_exec-common.Tpo" "$(DEPDIR)/e2fs_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/e2fs_stage1_5_exec-common.Tpo"; exit 1; fi @@ -2598,6 +2636,20 @@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tparm.c' object='pre_stage2_exec-tparm.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-tparm.obj `if test -f 'tparm.c'; then $(CYGPATH_W) 'tparm.c'; else $(CYGPATH_W) '$(srcdir)/tparm.c'; fi` + +pre_stage2_exec-graphics.o: graphics.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-graphics.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-graphics.Tpo" -c -o pre_stage2_exec-graphics.o `test -f 'graphics.c' || echo '$(srcdir)/'`graphics.c; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-graphics.Tpo" "$(DEPDIR)/pre_stage2_exec-graphics.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-graphics.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='graphics.c' object='pre_stage2_exec-graphics.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-graphics.o `test -f 'graphics.c' || echo '$(srcdir)/'`graphics.c + +pre_stage2_exec-graphics.obj: graphics.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-graphics.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-graphics.Tpo" -c -o pre_stage2_exec-graphics.obj `if test -f 'graphics.c'; then $(CYGPATH_W) 'graphics.c'; else $(CYGPATH_W) '$(srcdir)/graphics.c'; fi`; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-graphics.Tpo" "$(DEPDIR)/pre_stage2_exec-graphics.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-graphics.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='graphics.c' object='pre_stage2_exec-graphics.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-graphics.obj `if test -f 'graphics.c'; then $(CYGPATH_W) 'graphics.c'; else $(CYGPATH_W) '$(srcdir)/graphics.c'; fi` reiserfs_stage1_5_exec-common.o: common.c @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-common.o -MD -MP -MF "$(DEPDIR)/reiserfs_stage1_5_exec-common.Tpo" -c -o reiserfs_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c; \ diff -Nur grub-0.97.orig/util/Makefile.in grub-0.97/util/Makefile.in --- grub-0.97.orig/util/Makefile.in Wed May 25 23:19:08 2005 +++ grub-0.97/util/Makefile.in Wed May 25 23:21:21 2005 @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.9.4 from Makefile.am. +# Makefile.in generated by automake 1.9.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004 Free Software Foundation, Inc. +# 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -102,6 +102,8 @@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FSYS_CFLAGS = @FSYS_CFLAGS@ +GRAPHICS_SUPPORT_FALSE = @GRAPHICS_SUPPORT_FALSE@ +GRAPHICS_SUPPORT_TRUE = @GRAPHICS_SUPPORT_TRUE@ GRUB_CFLAGS = @GRUB_CFLAGS@ GRUB_LIBS = @GRUB_LIBS@ HERCULES_SUPPORT_FALSE = @HERCULES_SUPPORT_FALSE@ geexbox-0.98.7/packages/grub/url0000644000175000017500000000005610335100771015522 0ustar aurelaurelftp://alpha.gnu.org/gnu/grub/grub-0.97.tar.gz geexbox-0.98.7/packages/i18n/0000755000175000017500000000000010335100771014614 5ustar aurelaurelgeexbox-0.98.7/packages/i18n/build0000755000175000017500000000012110335100771015633 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build i18n-fonts $SCRIPTS/build i18n-iconv geexbox-0.98.7/packages/i18n/config/0000755000175000017500000000000010335100771016061 5ustar aurelaurelgeexbox-0.98.7/packages/i18n/config/lang.conf0000644000175000017500000000351210335100771017652 0ustar aurelaurel#!/bin/sh CHARSETS="iso-8859-1 iso-8859-2 iso-8859-7 iso-8859-8 iso-8859-9 windows-1250 windows-1251 koi8-r gb2312 big5 euc-kr" LANGUAGES="bg br ca cs de en es et fi fr gr he hu it ko nl no pl ro ru sk sr sv zh_CN zh_TW" DEFAULT_LANGUAGE=en DEFAULT_FONT=FreeSans.ttf # ISO-8859-1 Languages: br_name="Brazilian Portuguese" br_charset=iso-8859-1 ca_name=Catalan ca_charset=iso-8859-1 de_name=German de_charset=iso-8859-1 en_name=English en_charset=iso-8859-1 es_name=Spanish es_charset=iso-8859-1 et_name=Estonian et_charset=iso-8859-1 fi_name=Finnish fi_charset=iso-8859-1 fr_name=French fr_charset=iso-8859-1 it_name=Italian it_charset=iso-8859-1 nl_name=Dutch nl_charset=iso-8859-1 no_name=Norwegian no_charset=iso-8859-1 sv_name=Swedish sv_charset=iso-8859-1 ####################### # ISO-8859-2 Languages: cs_name=Czech cs_charset=iso-8859-2 hu_name=Hungarian hu_charset=iso-8859-2 pl_name=Polish pl_charset=iso-8859-2 ro_name=Romanian ro_charset=iso-8859-2 sk_name=Slovak sk_charset=iso-8859-2 ####################### # ISO-8859-7 Languages: gr_name=Greek gr_charset=iso-8859-7 ####################### # ISO-8859-8 Languages: he_name=Hebrew he_charset=iso-8859-8 ####################### # WINDOWS-1250 Languages: sr_name=Serbian sr_charset=windows-1250 ####################### # WINDOWS-1251 Languages: bg_name=Bulgarian bg_charset=windows-1251 ####################### # KOI8-R Languages: ru_name=Russian ru_charset=koi8-r ####################### # EUC-KR Languages: ko_name=Korean ko_charset=euc-kr ####################### # GB2312 Languages: zh_CN_name="Chinese - Simplified" zh_CN_charset=gb2312 ####################### # BIG5 Languages: zh_TW_name="Chinese - Traditional" zh_TW_charset=big5 ####################### # Fonts settings gb2312_font=gkai00mp.ttf big5_font=bkai00mp.ttf euc_kr_font=dotum.ttf iso_8859_8_fribidi=ISO8859-8 geexbox-0.98.7/packages/i18n/config/packages.ini0000644000175000017500000000131110335100771020334 0ustar aurelaurel[Fonts/] name=Extra fonts desc=This section contains fonts which were too big to be included desc=in the offical release. file=http://www.geexbox.org/fonts/ dir=i18n/fonts/ [Fonts/Asian/] name=Asian fonts [Fonts/Asian/Chinese Simplified (GB2312)] name=Chinese Simplified - GB2312 file=asian/arphic/gkai00mp.ttf.bz2 md5=a80284408ea4eafae8d1c7893c08eec7 license=asian/arphic/LICENSE [Fonts/Asian/Chinese Traditional (BIG5)] name=Chinese Traditional - BIG5 file=asian/arphic/bkai00mp.ttf.bz2 md5=a491ac3098f7c6500e48ab4c8e1c15a5 license=asian/arphic/LICENSE [Fonts/Asian/Korean (EUC-KR)] name=Korean - EUC-KR file=asian/baekmuk/dotum.ttf.bz2 md5=cba7b2660bf489790b06d9a513fe43c9 license=asian/baekmuk/COPYRIGHT geexbox-0.98.7/packages/i18n/install0000755000175000017500000000067710335100771016222 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/install i18n-fonts $2 $SCRIPTS/install i18n-iconv $2 $SCRIPTS/install i18n-texts $2 mkdir -p $INSTALL/etc cp $PACKAGES/$1/scripts/lang.funcs $INSTALL/etc case "$2" in generator) mkdir -p $GENERATOR_NAME/i18n cp $PACKAGES/$1/config/lang.conf $GENERATOR_NAME/i18n cp $PACKAGES/$1/scripts/lang.funcs $GENERATOR_NAME/i18n ;; *) cp $PACKAGES/$1/config/lang.conf $INSTALL/etc ;; esac geexbox-0.98.7/packages/i18n/scripts/0000755000175000017500000000000010335100771016303 5ustar aurelaurelgeexbox-0.98.7/packages/i18n/scripts/lang.funcs0000644000175000017500000000221510335100771020264 0ustar aurelaurel#!/bin/sh simplifylang() { local i tmp for i in $LANGUAGES; do eval tmp=\$${i}_name if [ "$1" = "$i" -o "$1" = "$tmp" ]; then echo $i return fi done } lang2charset() { local i lang charset=$1 if [ -z "$charset" ]; then if [ -n "$LANG" ]; then charset="$LANG" else charset="$DEFAULT_LANGUAGE" fi fi lang=`simplifylang $charset` if [ -n "$lang" ]; then eval charset=\$${lang}_charset fi for i in $CHARSETS; do if [ "$charset" = "$i" ]; then echo $charset return fi done echo "ERROR: Couldn't find a matching charset for '$1'." 1>&2 } lang2font() { local i tmp charset charset=`lang2charset $1` charset=`echo "$charset" | sed s%-%_%g` for i in ${charset}_${2}font ${charset}_font DEFAULT_FONT; do eval tmp=\$$i if [ -n "$tmp" ]; then echo $tmp return fi done } fribidi_mp_set_option() { local tmp name name=`echo $1 | sed s%-%_%g` eval tmp=\$${name}_fribidi if [ -n "$tmp" ]; then mp_set_option "${2}flip-hebrew" 1 mp_set_option "${2}fribidi-charset" "$tmp" else mp_set_option "${2}flip-hebrew" 0 fi } geexbox-0.98.7/packages/i18n-fonts/0000755000175000017500000000000010335100771015743 5ustar aurelaurelgeexbox-0.98.7/packages/i18n-fonts/install0000755000175000017500000000235610335100771017345 0ustar aurelaurel#!/bin/sh . config/options . $PACKAGES/i18n/config/lang.conf . $PACKAGES/i18n/scripts/lang.funcs $SCRIPTS/unpack theme-$THEME mkdir -p $INSTALL/etc mkdir -p $INSTALL/usr/share/fonts SUB_CHARSET=`lang2charset "$SUB_CHARSET"` MENU_CHARSET=`lang2charset "$LANG"` MENU_FONT=`lang2font "$LANG" menu` SUB_FONT=`lang2font "$SUB_CHARSET" sub` echo $LANG > $INSTALL/etc/lang echo $SUB_CHARSET > $INSTALL/etc/subfont case "$2" in generator) mkdir -p $GENERATOR_NAME/i18n/fonts cp -r $BUILD/$1/* $GENERATOR_NAME/i18n/fonts/ ;; installator) cp $BUILD/theme-$THEME/*.ttf $INSTALL/usr/share/fonts/themefont.ttf cp -r $BUILD/$1/* $INSTALL/usr/share/fonts/ ;; *) . $BUILD/theme-$THEME/config [ -z "$FONT_CHARSETS" ] && FONT_CHARSETS="iso-8859-1" for i in $FONT_CHARSETS; do if [ "$i" = "$MENU_CHARSET" ]; then cp $BUILD/theme-$THEME/*.ttf $INSTALL/usr/share/fonts/themefont.ttf MENU_FONT="themefont.ttf" break fi done [ -z "$SUB_FONT" -o -z "$MENU_FONT" ] && exit 1 cp -r $BUILD/$1/$SUB_FONT $INSTALL/usr/share/fonts/ if [ "$MENU_FONT" != "themefont.ttf" -a "$MENU_FONT" != "$SUB_FONT" ]; then cp -r $BUILD/$1/$MENU_FONT $INSTALL/usr/share/fonts/ fi ;; esac geexbox-0.98.7/packages/i18n-fonts/unpack0000755000175000017500000000034610335100771017155 0ustar aurelaurel#!/bin/sh . config/options FONTS_DIR=$BUILD/$1 mkdir -p $FONTS_DIR/freefont-ttf $SCRIPTS/extract $1 "freefont-ttf*" $FONTS_DIR/freefont-ttf mv $FONTS_DIR/freefont-ttf/sfd/FreeSans.ttf $FONTS_DIR rm -rf $FONTS_DIR/freefont-ttf geexbox-0.98.7/packages/i18n-fonts/url0000644000175000017500000000010110335100771016460 0ustar aurelaurelhttp://savannah.nongnu.org/download/freefont/freefont-ttf.tar.gz geexbox-0.98.7/packages/i18n-iconv/0000755000175000017500000000000010335100771015730 5ustar aurelaurelgeexbox-0.98.7/packages/i18n-iconv/build0000755000175000017500000000107510335100771016760 0ustar aurelaurel#!/bin/sh . config/options . $PACKAGES/i18n/config/lang.conf ICONV_DIR=$BUILD/$1 ICONV_PORTS="iconv-base iconv-extra" for j in $ICONV_PORTS; do $SCRIPTS/build $j done rm -rf $ICONV_DIR mkdir -p $ICONV_DIR for i in $CHARSETS; do for j in $ICONV_PORTS; do grep "^$i " $BUILD/$j*/charset.db | cut -d ' ' -f 2 | while read f; do echo "$i $f" >> $ICONV_DIR/charset.db case $f in *.cct) cp $BUILD/$j*/ccs/$f $ICONV_DIR/ ;; *.so) cp $BUILD/$j*/ces/$f $ICONV_DIR/ ;; esac done done done geexbox-0.98.7/packages/i18n-iconv/install0000755000175000017500000000135410335100771017327 0ustar aurelaurel#!/bin/sh . config/options . $PACKAGES/i18n/config/lang.conf . $PACKAGES/i18n/scripts/lang.funcs $SCRIPTS/install iconv-base MENU_CHARSET=`lang2charset "$LANG"` SUB_CHARSET=`lang2charset "$SUB_CHARSET"` [ -z "$SUB_CHARSET" -o -z "$MENU_CHARSET" ] && exit 1 mkdir -p $INSTALL/usr/share/iconv case "$2" in generator) mkdir -p $GENERATOR_NAME/i18n/iconv cp $BUILD/$1/* $GENERATOR_NAME/i18n/iconv/ ;; installator) cp $BUILD/$1/*.cct $INSTALL/usr/share/iconv/ cp $BUILD/$1/*.so $INSTALL/usr/share/iconv/ ;; *) for i in $SUB_CHARSET $MENU_CHARSET; do grep "^$i " $BUILD/$1/charset.db | cut -d ' ' -f 2 | while read f; do cp -f $BUILD/$1/$f $INSTALL/usr/share/iconv/ done done ;; esac geexbox-0.98.7/packages/i18n-iconv/need_build0000755000175000017500000000042010335100771017744 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build iconv-base $SCRIPTS/build iconv-extra STAMP=$STAMPS/$1/build for p in iconv-base iconv-extra; do test $STAMPS/$p/build -nt $STAMP && rm -f $STAMP done test $PACKAGES/i18n/config/lang.conf -nt $STAMP && rm -f $STAMP exit 0 geexbox-0.98.7/packages/i18n-texts/0000755000175000017500000000000010335100771015761 5ustar aurelaurelgeexbox-0.98.7/packages/i18n-texts/config/0000755000175000017500000000000010335100771017226 5ustar aurelaurelgeexbox-0.98.7/packages/i18n-texts/config/help_bg.txt0000644000175000017500000000127310335100771021372 0ustar aurelaurelПолезни команди m : Покажи/Скрий Менюто o : Покажи OSD Таймер s : Включи ТВ-Изход v : Покажи/Скрий Субтитри Ляво : Откажи / Върни се Дясно : ОК / Напред Долу : Назад 1 minute Горе : Напред 1 minute +/- : Забави звука +/- 100ms O/9 : Усилване +/- 1 Команди при избиране на файлове d : избери целева директория c : копирай в целта r : питай да премахнеш файл o : потвърди премахване на файл p : пусни цялата директория geexbox-0.98.7/packages/i18n-texts/config/help_br.txt0000644000175000017500000000104210335100771021377 0ustar aurelaurelCOMANDOS UTEIS m : Mostrar/Esconder o menu o : Mostrar o tempo de reproducao s : Ativar saida para TV v : Mostrar/Esconder legenda Esquerda : Cancela / Retorna Direita : Ok / Avancar Para Cima : Rebobinar 1 minute Para Baixo : Avancar 1 minute +/- : Atraso do audio +/- 100ms O/9 : Volume +/- 1 COMANDOS DE SELECAO DE ARQUIVOS d : configura diretorio de destino c : copiar para o destino r : pedir para remover arquivo o : confirmar remocao de arquivo p : reproduzir todo diretorio l : reproduzir todo o diretorio e os subdiretorios geexbox-0.98.7/packages/i18n-texts/config/help_ca.txt0000644000175000017500000000100310335100771021354 0ustar aurelaurelTECLES UTILS m : Mostrar/Ocultar el Menu o : Mostrar temporitzador OSD s : Conmutar sortida a TV v : Mostrar/Ocultar Subtituls Esquerra : Cancel.lar / Endarrere Dreta : Aceptar / Endavant Avall : Endarrere 1 minute Amunt : Endavant 1 minute +/- : Retard del so +/- 100ms O/9 : Volum +/- 1 TECLES EN SELECCIO D'ARXIUS d : establir directori desti c : copiar a desti r : eliminar arxiu o : confirmar eliminacio d'arxius p : reproduir directori complet l : recursively view the entire directory geexbox-0.98.7/packages/i18n-texts/config/help_cs.txt0000644000175000017500000000071010335100771021402 0ustar aurelaurelUZITECNE PRIKAZY m : Zobraz/Skryj menu o : Zobraz OSD casovac s : Prepni TV vystup Left : Zrusit / Vzad Right : OK / Vpred Down : Posun vpred 1 minute Up : Posun vzad 1 minute +/- : Zpozdeni zvuku +/- 100ms O/9 : Hlasitost +/- 1 PRIKAZY v NABIDCE VYBER SOUBORU d : nastavit cilovy adresar c : kopirovat do ciloveho adrersare r : odstranit soubor o : potvrzeni odstraneni souboru p : prehrat(zobrazit) cely adresar l : Prohlednout cely adresar geexbox-0.98.7/packages/i18n-texts/config/help_de.txt0000644000175000017500000000110310335100771021362 0ustar aurelaurelNUETZLICHE KOMMANDOS m : Zeigt/Verbirgt das Menu o : Zeigt den OSD Timer s : Aktiviert den TV-Ausgang v : Zeigt/Verbirgt Untertitel Links : Abbrechen / Gehe zurueck Rechts : Ok / Gehe vorwaerts Runter : Gehe Zurueck 1 minute Hoch : Gehe vorwaerts 1 minute +/- : Audio Verzoegerung +/- 100ms O/9 : Lautstaerke +/- 1 KOMMANDOS WAEHREND DATEIAUSWAHL d : setzt das Ziel-Verzeichnis c : kopiert ins Ziel-Verzeichnis r : loescht die Datei o : bestaetigt den Loeschvorgang p : spielt/zeigt das gesamte Verzeichnis l : spielt/zeigt das gesamte Verzeichnis inkl. Unterordner geexbox-0.98.7/packages/i18n-texts/config/help_en.txt0000644000175000017500000000073110335100771021402 0ustar aurelaurelUSEFUL COMMANDS m : Show/Hide the Menu o : Dislay OSD Timer s : Switch TV-Out v : Hide/Show Subtitles Left : Cancel / Go Backward Right : Ok / Go Forward Down : Go Backward 1 minute Up : Go Forward 1 minute +/- : Audio Delay +/- 100ms O/9 : Volume +/- 1 COMMANDS IN FILE SELECTION d : set destination directory c : copy to destination r : ask to remove file o : confirm file removal p : play/view the entire directory l : recursively view the entire directory geexbox-0.98.7/packages/i18n-texts/config/help_es.txt0000644000175000017500000000101210335100771021400 0ustar aurelaurelTECLAS UTILES m : Mostrar/Ocultar el Menu o : Mostrar temporizador OSD s : Conmutar salida a TV/CRT v : Mostrar/Ocultar Subtitulos Izquierda : Cancelar / Atras Derecha : Aceptar / Adelante Abajo : Atras 1 minute Arriba : Adelante 1 minute +/- : Retardo del sonido +/- 100ms O/9 : Volumen +/- 1 TECLAS EN SELECCION DE ARCHIVOS d : establecer directorio destino c : copiar a destino r : borrar archivo o : confirmar borrado de archivos p : reproducir directorio entero l : recursively view the entire directory geexbox-0.98.7/packages/i18n-texts/config/help_et.txt0000644000175000017500000000074010335100771021410 0ustar aurelaurelKasulikud käsud m : Näita/Peida Menüü o : Näita OSD Timerit s : Vaheta TV-Väljundit v : Näita/Peida Subtiitreid Left : Katkesta / Mine tagasi Right : Ok / Mine edasi Down : Mine tagasi 1 minute Up : Mine edasi 1 minute +/- : Audio Delay +/- 100ms O/9 : Volume +/- 1 Käsud failisektsioonis d : määra sihtpunkt c : kopeeri sihtpunkti r : kustuta fail o : kinnita faili kustutamine p : mängi/vaata tervet kataloogi sisu l : rekrusiivselt vaata kataloogi sisu geexbox-0.98.7/packages/i18n-texts/config/help_fi.txt0000644000175000017500000000103010335100771021367 0ustar aurelaurelHYÖDYLLISIÄ KOMENTOJA m : Näytä/piilota valikko o : Näytä OSD-ajastin s : Vaihda TV-ulostulo päälle/pois v : Näytä/piilota tekstitykset Vasen : Peru / mene takaisin Oikea : Ok / mene eteenpäin Alas : 1 minute takaisinpäin Ylös : 1 minute eteenpäin +/- : Äänen viive +/- 100ms O/9 : Äänenvoimakkuus +/- 1 KOMENNOT TIEDOSTOVALIKOIMASSA d : aseta kohdehakemisto c : kopioi kohteeseen r : kysy tiedoston poisto o : vahvista tiedoston poisto p : toista/katso koko hakemisto l : katso hakemisto rekursiivisesti geexbox-0.98.7/packages/i18n-texts/config/help_fr.txt0000644000175000017500000000103010335100771021400 0ustar aurelaurelCOMMANDES UTILES m : Affiche/Cache le Menu o : Affiche le Compteur OSD s : Active la Sortie TV v : Cache/Affiche les Sous-Titres Gauche : Annuler / Retour Arriere Droite : Ok / Avancer Bas : Retour Arriere 1 minute Haut : Avancer 1 minute +/- : Decalage Audio +/- 100ms O/9 : Volume +/- 1 COMMANDES DE SELECTION DE FICHIER d : repertoire de destination c : copie vers la destination r : demande de suppression o : confirmation de suppression p : lire/afficher le repertoire complet l : afficher recursivement le repertoire geexbox-0.98.7/packages/i18n-texts/config/help_gr.txt0000644000175000017500000000163210335100771021411 0ustar aurelaurelΧρήσιμες εντολές m : Εμφάνιση/Απόκρυψη του μενού o : Εμφάνιση μετρητή OSD s : Αλλαγή σε TV-Out v : Εμφάνιση/Απόκρυψη υπότιτλων Αριστερά : Ακύρωση / Πίσω Δεξιά : Ok / Μπροστά Κάτω : Πήγαινε πίσω με 1 minute Επάνω : Πήγαινε μπροστά με 1 minute +/- : Καθυστέρηση ήχου +/- 100ms O/9 : Ένταση ήχου +/- 1 Εντολές στην επιλογή αρχείου d : Καθορισμός καταλόγου προορισμού c : αντιγραφή στον προορισμό r : Ερώτηση σε μετακίνηση αρχείου o : Επιβεβαίωση σε μετακίνηση αρχείου p : Παίξε/προβολή όλου του καταλόγου l : Περιοδική εμφάνιση του καταλόγου geexbox-0.98.7/packages/i18n-texts/config/help_he.txt0000644000175000017500000000117610335100771021400 0ustar aurelaurelפקודות שימושיות m : הצג\הסתר תפריט o : טיימר OSD הצג s : החלף ליציאת TV-Out v : הצג\הסתר כתוביות Left : ביטול / חזור אחורה Right : אישור / לך קדימה Down : 1 חזור אחורה minute Up : 1 לך קדימה minute +/- : 100 -/+ עיקוב שמעms 0/9 : 1 -/+ עוצמת קול פקודות בבחירת קובץ d : הגדר תיקיית יעד c : העתק ליעד r : שאל מחיקת קובץ o : אשר מחיקת קובץ p : הצג\הראה את כל התיקייה l : הצג את כל התייקיה באופן רקרוסיבי geexbox-0.98.7/packages/i18n-texts/config/help_hu.txt0000644000175000017500000000106410335100771021414 0ustar aurelaurelHASZNOS PARANCSOK m : Menü ki/be o : Eltelt idõ OSD-n ki/be s : TV kimenet ki/be v : Felirat ki/be balra nyíl : Mégsem / Vissza jobbra nyíl : Ok / Tovább lefele nyíl : Visszatekerés 1 minute felfele nyíl : Elõretekerés 1 minute +/- : Hang késleltetés/siettetés 100ms-mal O/9 : Hangerõ +/- 1 PARANCSOK FÁJL KIVÁLASZTÁSNÁL d : cél könyvtár beállítása c : cél könyvtárba másolás r : Fájl eltávolítása o : Fájl eltávolítasa megerõsítés p : A teljes könyvtár lejátszása l : recursively view the entire directory geexbox-0.98.7/packages/i18n-texts/config/help_it.txt0000644000175000017500000000075610335100771021423 0ustar aurelaurelCOMANDI m : Mostra/Nascondi Menu o : Vedi Tempo s : Abilita/Disablita TV-Out Freccia Sinistra : Annulla / Indietro Freccia Destra : Ok / Avanti Freccia Giu : Avanti 1 minute Freccia Su : Indietro 1 minute +/- : Audio Delay +/- 100ms O/9 : Volume +/- 1 COMANDI NELLA SEZIONE FILES d : imposta la directory di destinazione c : copia nella destinazione r : rimuovi il file o : conferma la rimozione del file p : visualizza l'intera directory l : visualizza la directory ricorsivamente geexbox-0.98.7/packages/i18n-texts/config/help_ko.txt0000644000175000017500000000076010335100771021413 0ustar aurelaurel유용한 명령어 m : 메뉴 보기/숨기기 o : OSD 시간 표시 s : TV-Out 스위치 v : 하위메뉴 숨기기/보기 Left : 취소 / 뒤로 Right : 확인 / 앞으로 Down : 1 minute 뒤로 Up : 1 minute 앞으로 +/- : +/- 100ms 오디오 딜레이 O/9 : 볼륨 +/- 1 COMMANDS IN FILE SELECTION d : set destination directory c : copy to destination r : ask to remove file o : confirm file removal p : play/view the entire directory l : recursively view the entire directory geexbox-0.98.7/packages/i18n-texts/config/help_nl.txt0000644000175000017500000000074610335100771021417 0ustar aurelaurelHANDIGE COMMANDOS m : Toon/Verberg het Menu o : Toon OSD Timer s : Activeer TV-Out v : Toon/Verberg Ondertitels Links : Annuleer / Spoel terug Rechts : Ok / Spoel door Onder : Spoel terug 1 minute Boven : Spoel door 1 minute +/- : Audio Delay +/- 100ms O/9 : Volume +/- 1 COMMANDS IN FILE SELECTION d : set destination directory c : copy to destination r : ask to remove file o : confirm file removal p : play the entire directory l : recursively view the entire directory geexbox-0.98.7/packages/i18n-texts/config/help_no.txt0000644000175000017500000000100010335100771021402 0ustar aurelaurelViktige kommandoer m : Vis/Skjul meny o : Vis OSD tidsmåleren s : Bytt TV-Out v : Vis/Skjul undertekst Venstre: Avbryt / Spol Tilbake Høyre : Ok / Spol frem Ned : Spol tilbake 1 minute Opp : Spol frem 1 minute +/- : Lyd forsinkelse +/- 100ms O/9 : Volum +/- 1 Kommandoer i forbindelse med filvalg d : set destinasjon katalog c : kopier til destinasjons katalog r : be om en bekreftelse ved sletting o : bekreft ved sletting p : spill/vis hele katalogen l : rekursivt se gjennom hele katalogen geexbox-0.98.7/packages/i18n-texts/config/help_pl.txt0000644000175000017500000000104110335100771021406 0ustar aurelaurelUŻYTECZNE KOMENDY m : Pokaż/Ukryj Menu o : Wyświetl Menu OSD s : Przełącz TV-Out v : Ukryj/Pokaż Napisy Left : Anuluj / Wróć Right : Ok / Do Przodu Down : Do Tylu 1 minutę Up : Do Przodu 1 minutę +/- : Opóźnienie Dzwięku +/- 100ms O/9 : Głośność +/- 1 POLECENIA W MENU WYBORU PLIKÓW Polecenia Menedżera Plików d : ustaw katalog przeznaczenia c : kopiuj w miejsce r : zapytaj o usunięcie pliku o : potwierdź usunięcie pliku p : odtwarzaj zawartość całego katalogu l : przeglądaj rekursywnie cały katalog geexbox-0.98.7/packages/i18n-texts/config/help_ro.txt0000644000175000017500000000100010335100771021406 0ustar aurelaurelCOMENZI FOLOSITOARE m : Arata/Ascunde meniul o : Afiseaza Timpul OSD s : Schimba TV-Out v : Ascunde/Arata Subtitrare Left : Anulare / Inapoi Right : Ok / Inainte Down : Inapoi 1 minute Up : Inainte 1 minute +/- : Intarziere Audio +/- 100ms O/9 : Volum +/- 1 COMENZI PENTRU SELECTAREA FISIERELOR d : seteaza directorul destinatie c : copiaza la destinatie r : intreaba inainte sa stergi fisier o : confirma stergerea fisierului p : ruleaza intregul director l : recursively view the entire directory geexbox-0.98.7/packages/i18n-texts/config/help_ru.txt0000644000175000017500000000116510335100771021430 0ustar aurelaurelПОЛЕЗНЫЕ КОМАНДЫ m : Показать/Скрыть меню o : Показать таймер s : Включить TV-выход Left : Отмена / Прокрутить назад Right : Ok / Прокрутить вперед Down : Прокрутить назад 1 minute Up : Прокрутить вперед 1 minute +/- : Аудио-задержка +/- 100ms O/9 : Громкость +/- 1 COMMANDS IN FILE SELECTION d : set destination directory c : copy to destination r : ask to remove file o : confirm file removal p : play the entire directory l : recursively view the entire directory geexbox-0.98.7/packages/i18n-texts/config/help_sk.txt0000644000175000017500000000067610335100771021425 0ustar aurelaurelUZITOCNE PRIKAZY m : Zobraz/Skry menu o : Zobraz OSD casovac s : Prepni TV vystup Left : Zrusit / Spat Right : OK / Dopredu Down : Posun vpred 1 minute Up : Posun vzad 1 minute +/- : Audio oneskorenie +/- 100ms O/9 : Hlasitost +/- 1 COMMANDS IN FILE SELECTION d : set destination directory c : copy to destination r : ask to remove file o : confirm file removal p : play the entire directory l : recursively view the entire directory geexbox-0.98.7/packages/i18n-texts/config/help_sr.txt0000644000175000017500000000076610335100771021434 0ustar aurelaurelKORISNE KOMANDE m : Prikaži/Sakrij meni o : Prikaži OSD Timer s : Prebaci na TV-Out v : Prikaži/Sakrij titlove Levo : Otkaži / Idi nazad Desno : Ok / Idi napred Dole : Idi nazad 1 minute Gore : Idi napred 1 minute +/- : Audio Delay +/- 100ms O/9 : Jačina zvuka +/- 1 KOMANDE U SELEKCIJI FAJLOVA d : podesi odredišni direktorijum c : kopiraj u odredište r : pitaj da obrišeš fajl o : potvrdi brisanje fajla p : reprodukuj/vidi ceo direktorijum l : rekurzivno vidi ceo direktorijum geexbox-0.98.7/packages/i18n-texts/config/help_sv.txt0000644000175000017500000000071010335100771021425 0ustar aurelaurelNYTTIGA KOMMANDON m : Dolj/Visa Menyn o : Visa OSD Timern s : Byt TV-ut v : Dolj/Visa Undertextning Left : Avbryt / Ga Bakat Right : Ok / Ga Framat Down : Ga Bakat 1 minute Up :Ga Framat 1 minute +/- : Ljud Korrigering +/- 100ms O/9 : Volym +/- 1 COMMANDS IN FILE SELECTION d : set destination directory c : copy to destination r : ask to remove file o : confirm file removal p : play the entire directory l : recursively view the entire directory geexbox-0.98.7/packages/i18n-texts/config/help_zh_CN.txt0000644000175000017500000000102010335100771021771 0ustar aurelaurel播放控制键 (USEFUL COMMANDS) m : 显示/隐藏菜单 o : 在屏时间显示 s : 开/闭 TV-Out v : 显示/隐藏字幕 Left : 快退/取消快退 Right : 快进/取消快进 Down : 快退 1 minute Up : 快进 1 minute +/- : 延迟声音 +/-100ms O/9 : 音量调节 +/-1 文件选择相关命令 (COMMANDS IN FILE SELECTION) d : 设定目标目录 c : 复制到... r : 移动文件... (ask to remove file) o : 确认文件移动 (confirm file removal) p : 播放/查看整个目录 l : 重复播放整个目录 geexbox-0.98.7/packages/i18n-texts/config/help_zh_TW.txt0000644000175000017500000000072210335100771022033 0ustar aurelaurelUSEFUL COMMANDS m : 顯示/隱藏 選單 o : 顯示 OSD Timer s : 切換至 TV-Out v : 顯示/隱藏 字幕 Left : 取消 / 向後快轉 Right : 確定 / 向前快轉 Down : 向後快轉 1 minute Up : 向前快轉 1 minute +/- : 聲音 延遲 +/- 100ms O/9 : 音量 +/- 1 COMMANDS IN FILE SELECTION d : 設定目的地目錄 c : 拷貝至目的地 r : 詢問移除檔案 o : 確認檔案移除 p : 播放/觀看整個目錄 l : 重復觀看整個目錄 geexbox-0.98.7/packages/i18n-texts/config/menu_bg.conf0000644000175000017500000001253510335100771021517 0ustar aurelaurel Welcome to MPlayer geexbox-0.98.7/packages/i18n-texts/config/menu_br.conf0000644000175000017500000001210710335100771021525 0ustar aurelaurel Bem vindo ao MPlayer geexbox-0.98.7/packages/i18n-texts/config/menu_ca.conf0000644000175000017500000001202310335100771021502 0ustar aurelaurel Welcome to MPlayer geexbox-0.98.7/packages/i18n-texts/config/menu_cs.conf0000644000175000017500000001201210335100771021522 0ustar aurelaurel Welcome to MPlayer i geexbox-0.98.7/packages/i18n-texts/config/menu_de.conf0000644000175000017500000001211310335100771021507 0ustar aurelaurel Willkommen geexbox-0.98.7/packages/i18n-texts/config/menu_en.conf0000644000175000017500000001165710335100771021535 0ustar aurelaurel Welcome to MPlayer geexbox-0.98.7/packages/i18n-texts/config/menu_es.conf0000644000175000017500000001206610335100771021535 0ustar aurelaurel Welcome to MPlayer geexbox-0.98.7/packages/i18n-texts/config/menu_et.conf0000644000175000017500000001172110335100771021533 0ustar aurelaurel Welcome to MPlayer geexbox-0.98.7/packages/i18n-texts/config/menu_fi.conf0000644000175000017500000001206710335100771021525 0ustar aurelaurel Tervetuloa MPlayeriin geexbox-0.98.7/packages/i18n-texts/config/menu_fr.conf0000644000175000017500000001210710335100771021531 0ustar aurelaurel Welcome to MPlayer geexbox-0.98.7/packages/i18n-texts/config/menu_gr.conf0000644000175000017500000001341510335100771021535 0ustar aurelaurel Καλώς ήρθατε στον MPlayer geexbox-0.98.7/packages/i18n-texts/config/menu_he.conf0000644000175000017500000001237710335100771021527 0ustar aurelaurel Welcome to MPlayer geexbox-0.98.7/packages/i18n-texts/config/menu_hu.conf0000644000175000017500000001217710335100771021545 0ustar aurelaurel Üdvözöllek az MPlayer-ben geexbox-0.98.7/packages/i18n-texts/config/menu_it.conf0000644000175000017500000001204410335100771021536 0ustar aurelaurel Benvenuti in GeeXboX geexbox-0.98.7/packages/i18n-texts/config/menu_ko.conf0000644000175000017500000001201210335100771021526 0ustar aurelaurel Welcome to MPlayer geexbox-0.98.7/packages/i18n-texts/config/menu_nl.conf0000644000175000017500000001171410335100771021536 0ustar aurelaurel Welcome to MPlayer geexbox-0.98.7/packages/i18n-texts/config/menu_no.conf0000644000175000017500000001167210335100771021544 0ustar aurelaurel Welcome to MPlayer geexbox-0.98.7/packages/i18n-texts/config/menu_pl.conf0000644000175000017500000001206410335100771021537 0ustar aurelaurel Witaj w MPlayer geexbox-0.98.7/packages/i18n-texts/config/menu_ro.conf0000644000175000017500000001206010335100771021540 0ustar aurelaurel Bine ati venit la MPlayer geexbox-0.98.7/packages/i18n-texts/config/menu_ru.conf0000644000175000017500000001244510335100771021555 0ustar aurelaurel Welcome to MPlayer geexbox-0.98.7/packages/i18n-texts/config/menu_sk.conf0000644000175000017500000001175610335100771021550 0ustar aurelaurel Welcome to MPlayer geexbox-0.98.7/packages/i18n-texts/config/menu_sr.conf0000644000175000017500000001172210335100771021550 0ustar aurelaurel Welcome to MPlayer geexbox-0.98.7/packages/i18n-texts/config/menu_sv.conf0000644000175000017500000001172310335100771021555 0ustar aurelaurel Välkommen till MPlayer geexbox-0.98.7/packages/i18n-texts/config/menu_zh_CN.conf0000644000175000017500000001316710335100771022132 0ustar aurelaurel Welcome to MPlayer geexbox-0.98.7/packages/i18n-texts/config/menu_zh_TW.conf0000644000175000017500000001270510335100771022161 0ustar aurelaurel Welcome to MPlayer geexbox-0.98.7/packages/i18n-texts/install0000755000175000017500000000113310335100771017353 0ustar aurelaurel#!/bin/sh . config/options mkdir -p $INSTALL/etc/mplayer mkdir -p $INSTALL/usr/share/mplayer case "$2" in generator) mkdir -p $GENERATOR_NAME/i18n/texts cp $PACKAGES/$1/config/help_*.txt $GENERATOR_NAME/i18n/texts/ cp $PACKAGES/$1/config/menu_*.conf $GENERATOR_NAME/i18n/texts/ ;; installator) cp $PACKAGES/$1/config/help_*.txt $INSTALL/usr/share/mplayer cp $PACKAGES/$1/config/menu_*.conf $INSTALL/etc/mplayer ;; *) cp $PACKAGES/$1/config/help_$LANG.txt $INSTALL/usr/share/mplayer/ cp $PACKAGES/$1/config/menu_$LANG.conf $INSTALL/etc/mplayer/ ;; esac geexbox-0.98.7/packages/i810tvout/0000755000175000017500000000000010335100771015620 5ustar aurelaurelgeexbox-0.98.7/packages/i810tvout/arch0000644000175000017500000000000510335100771016453 0ustar aurelaureli386 geexbox-0.98.7/packages/i810tvout/build0000755000175000017500000000026010335100771016643 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain $SCRIPTS/build pciutils make -C $BUILD/$1* \ CC=$CC \ CFLAGS="$CFLAGS" \ LIBS="$LDFLAGS" \ i810tvout geexbox-0.98.7/packages/i810tvout/url0000644000175000017500000000007610335100771016350 0ustar aurelaurelhttp://i810tvout.geexbox.org/download/i810tvout-0.9.1.tar.bz2 geexbox-0.98.7/packages/iconv-base/0000755000175000017500000000000010335100771016063 5ustar aurelaurelgeexbox-0.98.7/packages/iconv-base/build0000755000175000017500000000126110335100771017110 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain export MODULEDIR="/usr/share/iconv" export TABLEDIR="/usr/share/iconv" export ICONV_BUILTIN_CHARSETS="utf-8" cd $BUILD/$1* make all cp lib/libiconv.* $LIB_PREFIX/lib cp lib/iconv.h $LIB_PREFIX/include cp ccs/iconv_mktbl $ROOT/$TOOLCHAIN/bin grep -v '#' ccs/charset.aliases | ./iconv_builtin -n $ICONV_BUILTIN_CHARSETS | cut -f 1 | while read i; do echo "$i $i.cct" >> charset.db done grep -v '#' ces/charset.aliases | ./iconv_builtin -n $ICONV_BUILTIN_CHARSETS | cut -f 1 | while read i; do echo "$i $i.so" >> charset.db grep '{"' ces/$i.c | cut -d '"' -f 2 | while read j; do echo "$i $j.cct" >> charset.db done done geexbox-0.98.7/packages/iconv-base/install0000755000175000017500000000015010335100771017453 0ustar aurelaurel#!/bin/sh . config/options mkdir -p $INSTALL/usr/lib cp $BUILD/$1*/lib/libiconv.so.2 $INSTALL/usr/lib geexbox-0.98.7/packages/iconv-base/patches/0000755000175000017500000000000010335100771017512 5ustar aurelaurelgeexbox-0.98.7/packages/iconv-base/patches/10_GNUmakefiles.diff0000644000175000017500000001307610335100771023165 0ustar aurelaureldiff -Nur iconv-base-2.0.orig/GNUmakefile iconv-base-2.0/GNUmakefile --- iconv-base-2.0.orig/GNUmakefile Thu Jan 1 02:00:00 1970 +++ iconv-base-2.0/GNUmakefile Fri Mar 4 21:31:24 2005 @@ -0,0 +1,11 @@ +all: + $(MAKE) -C lib all + $(MAKE) -C ccs all + $(MAKE) -C ces all + $(MAKE) -C util all + +clean: + $(MAKE) -C lib clean + $(MAKE) -C ccs clean + $(MAKE) -C ces clean + $(MAKE) -C util clean diff -Nur iconv-base-2.0.orig/GNUmakefile.inc iconv-base-2.0/GNUmakefile.inc --- iconv-base-2.0.orig/GNUmakefile.inc Thu Jan 1 02:00:00 1970 +++ iconv-base-2.0/GNUmakefile.inc Fri Mar 4 21:31:24 2005 @@ -0,0 +1,8 @@ +ICONV_BUILTIN_CHARSETS ?= us-ascii utf-8 ucs-4-internal + +PREFIX ?= /usr + +MODULEDIR ?= ${PREFIX}/libexec/iconv +TABLEDIR ?= ${PREFIX}/share/iconv + +CFLAGS += -I../lib diff -Nur iconv-base-2.0.orig/ccs/GNUmakefile iconv-base-2.0/ccs/GNUmakefile --- iconv-base-2.0.orig/ccs/GNUmakefile Thu Jan 1 02:00:00 1970 +++ iconv-base-2.0/ccs/GNUmakefile Fri Mar 4 21:31:24 2005 @@ -0,0 +1,63 @@ +include ../GNUmakefile.inc + +CHARSETS_C = $(shell ../iconv_builtin -s .c $(ICONV_BUILTIN_CHARSETS) < charset.aliases) +CHARSETS_TBL = $(shell ../iconv_builtin -ns .cct $(ICONV_BUILTIN_CHARSETS) < charset.aliases) + +LIB = ccs +SRCS = ccs_builtin.c ${CHARSETS_C} + +SOBJS = ${SRCS:.c=.So} + +all: ${CHARSETS_TBL} + +lib: lib${LIB}.a ${SOBJS} + +lib${LIB}.a: ${SRCS:.c=.o} + @${AR} cq ${@} ${^} + +ccs_builtin.c: ${CHARSETS_C} + ../iconv_builtin -o ${@} ${<} + +.txt.cct: + ./iconv_mktbl -o ${@} ${<} + +.txt.c: + ./iconv_mktbl -Co ${@} ${<} + +us-ascii.cct: iso-8859-1.txt + ./iconv_mktbl -ao ${@} ${<} + +us-ascii.c: iso-8859-1.txt + ./iconv_mktbl -Cao ${@} ${<} + +jis_x0208-1983.cct: jis_x0208-1983.txt + ./iconv_mktbl -c 1 -u 2 -o ${@} ${<} + +jis_x0208-1983.c: jis_x0208-1983.txt + ./iconv_mktbl -C -c 1 -u 2 -o ${@} ${<} + +cns11643-plane1.cct: cns11643.txt + ./iconv_mktbl -p 0x1 -o ${@} ${<} + +cns11643-plane1.c: cns11643.txt + ./iconv_mktbl -C -p 0x1 -o ${@} ${<} + +cns11643-plane2.cct: cns11643.txt + ./iconv_mktbl -p 0x2 -o ${@} ${<} + +cns11643-plane2.c: cns11643.txt + ./iconv_mktbl -C -p 0x2 -o ${@} ${<} + +cns11643-plane14.cct: cns11643.txt + ./iconv_mktbl -p 0xE -o ${@} ${<} + +cns11643-plane14.c: cns11643.txt + ./iconv_mktbl -C -p 0xE -o ${@} ${<} + +.c.So: + ${CC} -fPIC -DPIC ${CFLAGS} -c ${^} -o ${@} + +clean: + rm -f *.o *.So *.so *.c + +.SUFFIXES: .cct .txt .So diff -Nur iconv-base-2.0.orig/ces/GNUmakefile iconv-base-2.0/ces/GNUmakefile --- iconv-base-2.0.orig/ces/GNUmakefile Thu Jan 1 02:00:00 1970 +++ iconv-base-2.0/ces/GNUmakefile Fri Mar 4 21:31:24 2005 @@ -0,0 +1,35 @@ +include ../GNUmakefile.inc + +CHARSETS_C = $(shell ../iconv_builtin -s .c $(ICONV_BUILTIN_CHARSETS) < charset.aliases) +CHARSETS_SO= $(shell ../iconv_builtin -ns .so $(ICONV_BUILTIN_CHARSETS) < charset.aliases) +CHARSETS_O = $(shell ../iconv_builtin -ns .o $(ICONV_BUILTIN_CHARSETS) < charset.aliases) + +LIB= ces +SRCS= ces_builtin.c ${CHARSETS_C} + +LDADD = -L../lib -liconv + +all: ${CHARSETS_SO} ${SRCS:.c=.So} + +lib: lib${LIB}.a + +lib${LIB}.a: ${SRCS:.c=.o} + @${AR} cq ${@} ${^} + +lib${LIB}_static.a: ${CHARSETS_O} + @${AR} cq ${@} ${^} + +ces_builtin.c: ${CHARSETS_C} ${CHARSETS_O} + ../iconv_builtin -mo ${@} \ + ${CHARSETS_C} PIC ${CHARSETS_O} + +.c.So: + ${CC} -fPIC -DPIC ${CFLAGS} -c ${^} -o ${@} + +.So.so: + ${CC} -shared -Wl,-x -o ${@} -Wl,-soname,${@} ${^} + +clean: + rm -f *.o *.So *.so *.lst ces_builtin.c + +.SUFFIXES: .So .so diff -Nur iconv-base-2.0.orig/lib/GNUmakefile iconv-base-2.0/lib/GNUmakefile --- iconv-base-2.0.orig/lib/GNUmakefile Thu Jan 1 02:00:00 1970 +++ iconv-base-2.0/lib/GNUmakefile Fri Mar 4 21:31:24 2005 @@ -0,0 +1,56 @@ +include ../GNUmakefile.inc + +LIB = iconv +SHLIB_MAJOR = 2 +SHLIB_MINOR = 0 + +SRCS = aliases.c ccs.c ces.c ces_euc.c ces_iso2022.c ces_table.c \ + converter.c iconv.c utils.c + +BUILTIN_CCS = $(shell cd ../ccs/ && $(MAKE) lib >/dev/null && ${AR} t libccs.a) +BUILTIN_CES = $(shell cd ../ces/ && $(MAKE) lib >/dev/null && ${AR} t libces.a) +BUILTIN_CES_STATIC = $(shell cd ../ces && $(MAKE) libces_static.a >/dev/null && ${AR} t libces_static.a) + +OBJS = $(patsubst %,../ccs/%,$(BUILTIN_CCS)) $(patsubst %,../ces/%,$(BUILTIN_CES)) $(SRCS:.c=.o) +STATICOBJS = $(patsubst %,../ces/%,$(BUILTIN_CES_STATIC)) + +SOBJS = ${OBJS:.o=.So} + +LIBDIR = ${PREFIX}/lib + +INCDIR = ${PREFIX}/include +INCS = iconv.h + +CFLAGS += -DICONV_MODULE_PATH=\"${MODULEDIR}\" \ + -DICONV_TABLE_PATH=\"${TABLEDIR}\" + +MAN3 = iconv.3 iconv_open.3 iconv_close.3 + +ALIASES = ../ccs/charset.aliases \ + ../ces/charset.aliases + +all: lib${LIB}.a lib${LIB}.so + +lib${LIB}.a: ${OBJS} ${STATICOBJS} + ${AR} cq ${@} ${^} + +lib${LIB}.so.${SHLIB_MAJOR}: ${SOBJS} + ${CC} ${LDFLAGS} -shared -Wl,-x -o ${@} -Wl,-soname,${@} ${^} + +lib${LIB}.so: lib${LIB}.so.${SHLIB_MAJOR} + ln -s lib${LIB}.so.${SHLIB_MAJOR} lib${LIB}.so + +aliases.c: aliases.h + +aliases.h: ${ALIASES} + cat ${^} | ../iconv_builtin ${BUILTIN_CCS} \ + ${BUILTIN_CES} PIC ${BUILTIN_CES_STATIC} > ${@} + +.c.So: + ${CC} -fPIC -DPIC ${CFLAGS} -c ${^} -o ${@} + +clean: + rm -f ../ccs/libccs.a ../ces/libces*.a *.o *.So + rm -f lib${LIB}.a lib${LIB}.so.${SHLIB_MAJOR} lib${LIB}.so + +.SUFFIXES: .So diff -Nur iconv-base-2.0.orig/util/GNUmakefile iconv-base-2.0/util/GNUmakefile --- iconv-base-2.0.orig/util/GNUmakefile Thu Jan 1 02:00:00 1970 +++ iconv-base-2.0/util/GNUmakefile Fri Mar 4 21:31:24 2005 @@ -0,0 +1,14 @@ +include ../GNUmakefile.inc + +PROG= iconv +SRCS= iconv.c iconv_stream.c + +LDADD= -L../lib/ -liconv -ldl + +all: $(PROG) + +$(PROG): $(SRCS:.c=.o) + $(CC) $(CFLAGS) $(LDFLAGS) -o $(@) $(^) $(LDADD) + +clean: + rm -f *.o iconv geexbox-0.98.7/packages/iconv-base/patches/20_linux.diff0000644000175000017500000000373710335100771022016 0ustar aurelaureldiff -Nur iconv-base-2.0.orig/ccs/endian.h iconv-base-2.0/ccs/endian.h --- iconv-base-2.0.orig/ccs/endian.h Sun Oct 29 15:45:37 2000 +++ iconv-base-2.0/ccs/endian.h Fri Mar 4 21:31:24 2005 @@ -30,7 +30,11 @@ * iconv (Charset Conversion Library) v2.0 */ +#ifdef __linux__ +#include +#else #include +#endif #if BYTE_ORDER == LITTLE_ENDIAN diff -Nur iconv-base-2.0.orig/lib/ccs.c iconv-base-2.0/lib/ccs.c --- iconv-base-2.0.orig/lib/ccs.c Sun Nov 26 17:16:20 2000 +++ iconv-base-2.0/lib/ccs.c Fri Mar 4 21:31:24 2005 @@ -30,12 +30,20 @@ * iconv (Charset Conversion Library) v2.0 */ +#include +#ifdef __linux__ +#include +#endif #include /* errno */ #include /* PATH_MAX */ #include /* snprintf */ #include /* free, malloc */ #include /* strncmp */ -#include /* ntohl, ntohs */ +#ifdef __linux__ +#include /* ntohl, ntohs */ +#else +#include +#endif #define ICONV_INTERNAL #include /* iconv_ccs */ diff -Nur iconv-base-2.0.orig/lib/ces.c iconv-base-2.0/lib/ces.c --- iconv-base-2.0.orig/lib/ces.c Sun Nov 26 17:16:52 2000 +++ iconv-base-2.0/lib/ces.c Fri Mar 4 21:33:27 2005 @@ -116,7 +116,7 @@ int res; char *pathlist; - if (issetugid() || !(pathlist = getenv("ICONV_MODULE_PATH"))) + if (/*issetugid() || */ !(pathlist = getenv("ICONV_MODULE_PATH"))) pathlist = ICONV_MODULE_PATH; snprintf(file, sizeof(file), "%s.so", name); if (iconv_filesize(pathlist, file, buffer) <= 0) diff -Nur iconv-base-2.0.orig/lib/utils.c iconv-base-2.0/lib/utils.c --- iconv-base-2.0.orig/lib/utils.c Wed Mar 9 15:21:54 2005 +++ iconv-base-2.0/lib/utils.c Wed Mar 9 15:22:02 2005 @@ -84,7 +84,7 @@ if (fd < 0) return NULL; - ptr = (const void *)mmap(NULL, size, PROT_READ, 0, fd, 0); + ptr = (const void *)mmap(NULL, size, PROT_READ, MAP_SHARED, fd, 0); close(fd); if (ptr == MAP_FAILED) return NULL; geexbox-0.98.7/packages/iconv-base/patches/30_oldperl.diff0000644000175000017500000000067610335100771022320 0ustar aurelaureldiff -Nur iconv-base-2.0.orig/iconv_builtin iconv-base-2.0/iconv_builtin --- iconv-base-2.0.orig/iconv_builtin 2000/12/01 10:15:21 1.1 +++ iconv-base-2.0/iconv_builtin 2000/12/01 10:15:46 @@ -83,7 +83,7 @@ %builtins = map { $pic = 1 if $_ eq 'PIC'; $_ => $pic } @ARGV; while () { - unless (/^([^[:space:]#]+)/) { + unless (/^([^\s#]+)/) { # line continuation or comment print $_ unless $opt_s || !$opt_n || /^#WARNING/; next; geexbox-0.98.7/packages/iconv-base/patches/40_converter.diff0000644000175000017500000000261310335100771022660 0ustar aurelaureldiff -Nur iconv-base-2.0.orig/lib/converter.c iconv-base-2.0/lib/converter.c --- iconv-base-2.0.orig/lib/converter.c.orig Sun Nov 26 22:10:22 2000 +++ iconv-base-2.0/lib/converter.c Mon Mar 18 19:49:56 2002 @@ -92,14 +92,14 @@ if (ch == UCS_CHAR_NONE) { /* Incomplete character in input buffer */ errno = EINVAL; - return res; + return (size_t)(-1); } if (ch == UCS_CHAR_INVALID) { /* Invalid character in source buffer */ *inbytesleft += *inbuf - ptr; *inbuf = ptr; errno = EILSEQ; - return res; + return (size_t)(-1); } size = ICONV_CES_CONVERT_FROM_UCS(&(uc->to), ch, outbuf, outbytesleft); @@ -116,7 +116,7 @@ *inbytesleft += *inbuf - ptr; *inbuf = ptr; errno = E2BIG; - return res; + return (size_t)(-1); } } return res; @@ -156,14 +156,24 @@ { if (inbuf && *inbuf && inbytesleft && *inbytesleft > 0 && outbuf && *outbuf && outbytesleft && *outbytesleft > 0) { - size_t len = *inbytesleft < *outbytesleft ? *inbytesleft - : *outbytesleft; + size_t result, len; + if (*inbytesleft < *outbytesleft) { + result = 0; + len = *inbytesleft; + } else { + result = (size_t)(-1); + errno = E2BIG; + len = *outbytesleft; + } bcopy(*inbuf, *outbuf, len); *inbuf += len; *inbytesleft -= len; *outbuf += len; *outbytesleft -= len; + + return result; } + return 0; } geexbox-0.98.7/packages/iconv-base/patches/50_disable-iso2022.diff0000644000175000017500000000075410335100771023357 0ustar aurelaureldiff -Nur iconv-base-2.0.orig/lib/GNUmakefile iconv-base-2.0/lib/GNUmakefile --- iconv-base-2.0.orig/lib/GNUmakefile Sat Mar 12 13:59:11 2005 +++ iconv-base-2.0/lib/GNUmakefile Sat Mar 12 13:59:23 2005 @@ -4,7 +4,7 @@ SHLIB_MAJOR = 2 SHLIB_MINOR = 0 -SRCS = aliases.c ccs.c ces.c ces_euc.c ces_iso2022.c ces_table.c \ +SRCS = aliases.c ccs.c ces.c ces_euc.c ces_table.c \ converter.c iconv.c utils.c BUILTIN_CCS = $(shell cd ../ccs/ && $(MAKE) lib >/dev/null && ${AR} t libccs.a) geexbox-0.98.7/packages/iconv-base/url0000644000175000017500000000004410335100771016606 0ustar aurelaurelGEEXBOX_SRCS/iconv-base-2.0.tar.bz2 geexbox-0.98.7/packages/iconv-extra/0000755000175000017500000000000010335100771016274 5ustar aurelaurelgeexbox-0.98.7/packages/iconv-extra/build0000755000175000017500000000062510335100771017324 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain $SCRIPTS/build iconv-base cd $BUILD/$1* make all grep -v '#' ccs/charset.aliases | cut -f 1 | while read i; do echo "$i $i.cct" >> charset.db done grep -v '#' ces/charset.aliases | cut -f 1 | while read i; do echo "$i $i.so" >> charset.db grep '{"' ces/$i.c | cut -d '"' -f 2 | while read j; do echo "$i $j.cct" >> charset.db done done geexbox-0.98.7/packages/iconv-extra/patches/0000755000175000017500000000000010335100771017723 5ustar aurelaurelgeexbox-0.98.7/packages/iconv-extra/patches/10_GNUmakefiles.diff0000644000175000017500000000567710335100771023406 0ustar aurelaureldiff -Nur iconv-extra-2.0.orig/GNUmakefile iconv-extra-2.0/GNUmakefile --- iconv-extra-2.0.orig/GNUmakefile Thu Jan 1 02:00:00 1970 +++ iconv-extra-2.0/GNUmakefile Fri Mar 4 22:49:27 2005 @@ -0,0 +1,7 @@ +all: + $(MAKE) -C ccs all + $(MAKE) -C ces all + +clean: + $(MAKE) -C ccs clean + $(MAKE) -C ces clean diff -Nur iconv-extra-2.0.orig/ccs/GNUmakefile iconv-extra-2.0/ccs/GNUmakefile --- iconv-extra-2.0.orig/ccs/GNUmakefile Thu Jan 1 02:00:00 1970 +++ iconv-extra-2.0/ccs/GNUmakefile Fri Mar 4 22:51:32 2005 @@ -0,0 +1,64 @@ +CHARSETS_TBL = iso-8859-3.cct iso-8859-6.cct iso-8859-7.cct iso-8859-8.cct \ + iso-8859-9.cct iso-8859-10.cct iso-8859-13.cct iso-8859-14.cct \ + koi8-ru.cct gb12345.cct johab.cct adobe-stdenc.cct \ + adobe-symbol.cct adobe-zdingbats.cct mac-ce.cct \ + mac-croatian.cct mac-cyrillic.cct mac-dingbats.cct \ + mac-greek.cct mac-iceland.cct mac-japan.cct mac-roman.cct \ + mac-romania.cct mac-thai.cct mac-turkish.cct mac-ukraine.cct \ + cp424.cct cp500.cct cp856.cct cp1006.cct cp437.cct cp737.cct \ + cp857.cct cp860.cct cp861.cct cp862.cct cp863.cct cp864.cct \ + cp865.cct cp869.cct cp874.cct cp932.cct cp936.cct cp949.cct \ + cp950.cct windows-1250.cct windows-1251.cct windows-1252.cct \ + windows-1253.cct windows-1254.cct windows-1255.cct \ + windows-1256.cct windows-1257.cct windows-1258.cct cp037.cct \ + cp875.cct cp1026.cct cp10000.cct cp10006.cct cp10007.cct \ + cp10029.cct cp10079.cct cp10081.cct + +all: ${CHARSETS_TBL} + +.txt.cct: + iconv_mktbl -o ${@} ${<} + +adobe-stdenc.cct: adobe-stdenc.txt + iconv_mktbl -p '' -c 1 -u 0 -o ${@} ${<} + +adobe-symbol.cct: adobe-symbol.txt + iconv_mktbl -p '' -c 1 -u 0 -o ${@} ${<} + +adobe-zdingbats.cct: adobe-zdingbats.txt + iconv_mktbl -p '' -c 1 -u 0 -o ${@} ${<} + +mac-ce.cct: mac-ce.txt + iconv_mktbl -Mo ${@} ${<} + +mac-croatian.cct: mac-croatian.txt + iconv_mktbl -Mo ${@} ${<} + +mac-cyrillic.cct: mac-cyrillic.txt + iconv_mktbl -Mo ${@} ${<} + +mac-dingbats.cct: mac-dingbats.txt + iconv_mktbl -Mo ${@} ${<} + +mac-greek.cct: mac-greek.txt + iconv_mktbl -Mo ${@} ${<} + +mac-iceland.cct: mac-iceland.txt + iconv_mktbl -Mo ${@} ${<} + +mac-roman.cct: mac-roman.txt + iconv_mktbl -Mo ${@} ${<} + +mac-romania.cct: mac-romania.txt + iconv_mktbl -Mo ${@} ${<} + +mac-thai.cct: mac-thai.txt + iconv_mktbl -Mo ${@} ${<} + +mac-turkish.cct: mac-turkish.txt + iconv_mktbl -Mo ${@} ${<} + +mac-ukraine.cct: mac-ukraine.txt + iconv_mktbl -Mo ${@} ${<} + +.SUFFIXES: .cct .txt diff -Nur iconv-extra-2.0.orig/ces/GNUmakefile iconv-extra-2.0/ces/GNUmakefile --- iconv-extra-2.0.orig/ces/GNUmakefile Thu Jan 1 02:00:00 1970 +++ iconv-extra-2.0/ces/GNUmakefile Fri Mar 4 22:51:06 2005 @@ -0,0 +1,15 @@ +CHARSETS_SO = unicode-1-1-utf-7.so iso-2022-cn.so iso-2022-jp.so \ + iso-2022-jp-2.so iso-2022-kr.so + +all: ${CHARSETS_SO} + +.c.So: + ${CC} -fPIC -DPIC ${CFLAGS} -c ${^} -o ${@} + +.So.so: + @${CC} -shared -Wl,-x -o ${@} -Wl,-soname,${@} ${^} + +clean: + rm -f *.So *.so + +.SUFFIXES: .so .So geexbox-0.98.7/packages/iconv-extra/url0000644000175000017500000000004510335100771017020 0ustar aurelaurelGEEXBOX_SRCS/iconv-extra-2.0.tar.bz2 geexbox-0.98.7/packages/initrd/0000755000175000017500000000000010335100771015326 5ustar aurelaurelgeexbox-0.98.7/packages/initrd/build0000755000175000017500000000126010335100771016352 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build genext2fs export INSTALL=$BUILD/$1/mnt rm -rf $INSTALL mkdir -p $INSTALL rm -f $BUILD/$1/$1 $BUILD/$1/$1.gz mkdir $INSTALL/bin mkdir $INSTALL/etc mkdir $INSTALL/ramfs mkdir $INSTALL/sbin mkdir $INSTALL/usr mkdir $INSTALL/usr/bin $SCRIPTS/install uClibc $SCRIPTS/install busybox $SCRIPTS/install udev $SCRIPTS/install iscd cp $PACKAGES/$1/scripts/linuxrc $INSTALL cp $PACKAGES/$1/scripts/console $INSTALL/sbin cp $PACKAGES/$1/scripts/nosystem $INSTALL/sbin cp $PACKAGES/$1/scripts/r[ow] $INSTALL/usr/bin ln -s /bin/busybox $INSTALL/bin/sh $BUILD/genext2fs*/genext2fs -d $INSTALL -b $RAMDISK_SIZE -i 512 $BUILD/$1/$1 gzip -9 $BUILD/$1/$1 geexbox-0.98.7/packages/initrd/config/0000755000175000017500000000000010335100771016573 5ustar aurelaurelgeexbox-0.98.7/packages/initrd/install0000755000175000017500000000054010335100771016721 0ustar aurelaurel#!/bin/sh . config/options test "$2" != installator && INSTALL="$INSTALL/boot" mkdir -p $INSTALL cp $BUILD/$1/$1.gz $INSTALL if [ "$2" != generator ]; then $SCRIPTS/build bootsplash $SCRIPTS/unpack theme-$THEME cd $BUILD/theme-$THEME $ROOT/$BUILD/bootsplash*/Utilities/splash -s -f bootsplash-800x600.cfg >> $ROOT/$INSTALL/$1.gz fi exit 0 geexbox-0.98.7/packages/initrd/need_build0000755000175000017500000000063610335100771017353 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build uClibc $SCRIPTS/build busybox $SCRIPTS/build udev $SCRIPTS/build iscd STAMP=$STAMPS/$1/build for p in uClibc busybox udev iscd; do test $STAMPS/$p/build -nt $STAMP && rm -f $STAMP done test $PACKAGES/initrd/config/dev -nt $STAMP && rm -f $STAMP for f in console linuxrc nosystem ro rw; do test $PACKAGES/initrd/scripts/$f -nt $STAMP && rm -f $STAMP done exit 0 geexbox-0.98.7/packages/initrd/scripts/0000755000175000017500000000000010335100771017015 5ustar aurelaurelgeexbox-0.98.7/packages/initrd/scripts/console0000755000175000017500000000026410335100771020407 0ustar aurelaurel#!/bin/sh /bin/busybox test ! -e /proc/cpuinfo && /bin/busybox mount -t proc none /proc /bin/busybox test ! -e /bin/cp && /bin/busybox --install -s while true; do /bin/sh done geexbox-0.98.7/packages/initrd/scripts/linuxrc0000755000175000017500000000732510335100771020436 0ustar aurelaurel#!/bin/sh busybox mount -t ramfs none /ramfs IFS=' ' for i in `busybox find /`; do if busybox test -d $i; then busybox mkdir -p /ramfs$i else busybox ln -s /initrd$i /ramfs$i fi done busybox mkdir /ramfs/initrd busybox pivot_root /ramfs /ramfs/initrd busybox mkdir -p /proc /sys /usr/bin /usr/sbin busybox mount -t proc none /proc busybox mount -t sysfs none /sys busybox --install -s echo geexbox > /proc/sys/kernel/hostname echo 0 > /proc/sys/dev/cdrom/autoclose echo 0 > /proc/sys/dev/cdrom/lock export PATH=/bin:/sbin:/usr/bin:/usr/sbin progress() { if test -f /proc/splash; then echo "show $1" > /proc/splash fi echo "### $2 ###" } progress 8000 "setting up ramfs tree" mkdir -p /dev mkdir -p /mnt mkdir -p /tmp mkdir -p /var/run mkdir -p /var/log mkdir -p /var/lock echo -n "" > /etc/mtab echo -n "" > /etc/fstab echo -n "" > /etc/mnts UDEVD_EXPECTED_SEQNUM=$(($(cat /sys/kernel/hotplug_seqnum) + 1)) \ udevd --daemon udevstart echo /sbin/udevsend > /proc/sys/kernel/hotplug grep -q installator /proc/cmdline && INSTALLATOR=yes grep -q debugging /proc/cmdline && DEBUG=yes BOOT=`sed 's/.*boot=\([^\ ]*\).*/\1/' /proc/cmdline` if test "$BOOT" = nfs; then progress 11000 "getting nfs tree" NFS=`sed 's/.*nfsroot=\([^\ ]*\).*/\1/' /proc/cmdline` GEEXBOX=/nfs mkdir -p $GEEXBOX udhcpc -q -H geexbox -n && mount -t nfs -o ro,nolock,nfsvers=2 $NFS $GEEXBOX if [ ! -f "$GEEXBOX/bin.tar.lzma" ]; then umount $GEEXBOX rmdir $GEEXBOX GEEXBOX= fi fi progress 12000 "searching cdrom drives" if [ "$BOOT" = cdrom ]; then for i in 0 1 2 3 4; do for DEV in `grep '^/dev/cdrom' /etc/mnts | cut -f1`; do CDROM=`grep "^$DEV " /etc/mnts | cut -f2-` if [ -d "$CDROM/GEEXBOX" ]; then GEEXBOX="$CDROM/GEEXBOX" ln -s "$DEV" /dev/cdrom break fi done [ -n "$GEEXBOX" ] && break sleep 1 done fi [ ! -e /dev/cdrom -a -b /dev/cdrom1 ] && ln -s /dev/cdrom1 /dev/cdrom if [ "$BOOT" != cdrom -a "$BOOT" != nfs ]; then if [ "$INSTALLATOR" != yes ]; then progress 17000 "boot device detection" for i in 0 1 2 3 4 5 6 7 8 9; do [ -z "$BOOTDISK" ] && BOOTDISK=`cd /dev; ls -l $BOOT | sed 's/.* \([^ ]*\)$/\1/'` [ -n "$BOOTDISK" ] && grep -q "^/dev/$BOOTDISK " /proc/mounts && break sleep 1 done for DEV in `grep '^/dev/disk' /etc/mnts | cut -f1`; do DIR=`grep "^$DEV " /etc/mnts | cut -f2-` if [ -d "$DIR/GEEXBOX" ]; then GEEXBOX="$DIR/GEEXBOX" [ "/dev/$BOOTDISK" = "$DEV" ] && break fi done fi fi if test -n "$GEEXBOX" ; then progress 25000 "copying system into ram" cp -a "$GEEXBOX/sbin" / progress 27000 "copying system into ram" cp -a "$GEEXBOX/etc" / progress 29000 "copying system into ram" cp -a "$GEEXBOX/usr" / progress 30500 "copying system into ram" cp -a "$GEEXBOX/var" / progress 31000 "copying system into ram" lzmacat "$GEEXBOX/bin.tar.lzma" | tar xf - -C / progress 42000 "copying system into ram" cp -a "$GEEXBOX/codecs" / progress 45000 "copying system into ram" cp -a "$GEEXBOX/firmwares" / progress 46000 "copying system into ram" INIT=/sbin/init else INIT=/sbin/nosystem progress 65535 "cleaning ram disk" fi if test "$BOOT" = nfs; then if test "$INSTALLATOR" = yes; then export NFS="$GEEXBOX" elif test -n "$GEEXBOX"; then umount "$GEEXBOX" fi fi if test "$BOOT" = cdrom; then export CDROM="${GEEXBOX%/GEEXBOX}" fi RUNLEVEL="geexbox" if test "$INSTALLATOR" = yes; then RUNLEVEL="install" elif test "$DEBUG" = yes; then RUNLEVEL="debug" fi if test "$DEBUG" = yes; then /sbin/console /dev/tty2 2>&1 & fi /bin/sh $INIT $RUNLEVEL /dev/tty1 2>&1 if test "$INSTALLATOR" = yes -o $? = 64; then reboot else poweroff fi geexbox-0.98.7/packages/initrd/scripts/nosystem0000755000175000017500000000050510335100771020624 0ustar aurelaurel#!/bin/sh /bin/busybox test ! -e /proc/cpuinfo && /bin/busybox mount -t proc none /proc /bin/busybox test ! -e /bin/cp && /bin/busybox --install -s echo "****" echo "**** ERROR: can't access GeeXboX second stage system !" echo "**** If booting from CD your CD drive is probably not recognized" echo "****" /bin/sh exit 1 geexbox-0.98.7/packages/initrd/scripts/ro0000755000175000017500000000003710335100771017363 0ustar aurelaurel#!/bin/sh /usr/bin/rw "$1" ro geexbox-0.98.7/packages/initrd/scripts/rw0000755000175000017500000000145610335100771017401 0ustar aurelaurel#!/bin/sh if [ "${1#/mnt/}" != "$1" ]; then DEV= for TMPDEV in `cut -f1 /etc/mnts`; do MNT=`grep "^$TMPDEV " /etc/mnts | cut -f2-` if [ "${1#$MNT}" != "$1" ]; then DEV=$TMPDEV break fi done [ -z "$DEV" ] && exit 1 if [ "$2" = ro ]; then COUNT=`sed -n "s%\([0-9]*\)\ $DEV%\1%p" /var/rw` [ "$COUNT" -lt "1" ] && exit 1 [ "$COUNT" -eq "1" ] && mount -o remount,ro "$DEV" "$MNT" COUNT=$(($COUNT-1)) sed -i "s%[0-9]*\ $DEV%$COUNT $DEV%" /var/rw else [ -f /var/rw ] && COUNT=`sed -n "s%\([0-9]*\)\ $DEV%\1%p" /var/rw` [ -z "$COUNT" -o "$COUNT" -le "0" ] && mount -o remount,rw "$DEV" "$MNT" if [ -z "$COUNT" ]; then echo "1 $DEV" >> /var/rw else COUNT=$(($COUNT+1)) sed -i "s%[0-9]*\ $DEV%$COUNT $DEV%" /var/rw fi fi fi geexbox-0.98.7/packages/installator/0000755000175000017500000000000010335100771016371 5ustar aurelaurelgeexbox-0.98.7/packages/installator/init.d/0000755000175000017500000000000010335100771017556 5ustar aurelaurelgeexbox-0.98.7/packages/installator/init.d/82_install0000755000175000017500000000017710335100771021470 0ustar aurelaurel#!/bin/sh # # start GeeXboX installator # # runlevels: install export UID=0 sleep 3 /bin/sh /sbin/installator geexbox exit 0 geexbox-0.98.7/packages/installator/install0000755000175000017500000000050710335100771017767 0ustar aurelaurel#!/bin/sh . config/options mkdir -p $INSTALL/sbin cp $PACKAGES/$1/scripts/$1.sh $INSTALL/sbin/$1 sed -i "s/VERSION=.*/VERSION=$GEEXBOX_VERSION/" $INSTALL/sbin/$1 $SCRIPTS/install ncurses $SCRIPTS/install dialog $SCRIPTS/install util-linux $SCRIPTS/install dosfstools $SCRIPTS/install grub $2 $SCRIPTS/install syslinux binary geexbox-0.98.7/packages/installator/scripts/0000755000175000017500000000000010335100771020060 5ustar aurelaurelgeexbox-0.98.7/packages/installator/scripts/installator.sh0000755000175000017500000006637310335100771022772 0ustar aurelaurel#!/bin/sh # Detect whether partition ($1) mounted at ($2) with type ($3) is microsoft. detect_os_microsoft () { local longname if [ "$3" != ntfs -a "$3" != vfat -a "$3" != msdos ]; then return fi if [ -e "$2/ntldr" -a -e "$2/NTDETECT.COM" ]; then longname="Windows NT/2000/XP" elif [ -e "$2/windows/win.com" ]; then longname="Windows 95/98/Me" elif [ -d "$2/dos" ]; then longname="MS-DOS 5.x/6.x/Win3.1" else return fi echo "$1:$longname:chain" } detect_os () { local partname partition type mpoint mkdir -p tmpmnt for partname in `sed -n "s/\ *[0-9][0-9]*\ *[0-9][0-9]*\ *[0-9][0-9][0-9]*\ \([a-z]*[0-9][0-9]*\)/\1/p" /proc/partitions`; do partition="/dev/$partname" if ! grep -q "^$partition " /proc/mounts; then if mount -o ro $partition tmpmnt >/dev/null 2>&1; then type=$(grep "^$partition " /proc/mounts | cut -d " " -f 3) detect_os_microsoft $partition tmpmnt $type umount tmpmnt >/dev/null || return fi else mpoint=$(grep "^$partition " /proc/mounts | cut -d " " -f 2) type=$(grep "^$partition " /proc/mounts | cut -d " " -f 3) detect_os_microsoft $partition $mpoint $type fi done rmdir tmpmnt } # Usage: convert os_device # Convert an OS device to the corresponding GRUB drive. # This part is OS-specific. # -- taken from `grub-install` convert () { local tmp_drive tmp_disk tmp_part if test ! -e "$1"; then echo "$1: Not found or not a block device." 1>&2 exit 1 fi tmp_disk=`echo "$1" | sed -e 's%\([sh]d[a-z]\)[0-9]*$%\1%'` tmp_part=`echo "$1" | sed -e 's%.*/[sh]d[a-z]\([0-9]*\)$%\1%'` tmp_drive=`grep -v '^#' $device_map | grep "$tmp_disk *$" \ | sed 's%.*\(([hf]d[0-9][a-g0-9,]*)\).*%\1%'` if [ -z "$tmp_drive" ]; then echo "$1 does not have any corresponding BIOS drive." 1>&2 exit 1 fi if [ -n "$tmp_part" ]; then # If a partition is specified, we need to translate it into the # GRUB's syntax. echo "$tmp_drive" | sed "s%)$%,$(($tmp_part-1)))%" else # If no partition is specified, just print the drive name. echo "$tmp_drive" fi } # Configure network interface and parameters before installing GeeXboX to disk. setup_network () { local title phy_type wifi_mode wep essid host_ip subnet gw_ip dns_ip smb_user smb_pwd val f title="$BACKTITLE : Network Configuration" f="$1/etc/network" # Get type of physical interface phy_type=`$DIALOG --no-cancel --aspect 15 --stdout --backtitle "$title" --title "Network Physical Interface" --menu "\nGeeXboX can only use one network physical interface at a time. If you have more than one NIC, GeeXboX will use the first one. If you have both a traditional Ethernet adapter and a Wireless card, GeeXboX will use the wireless card by default. It is recommended to keep physical interface auto-detection but you may also want to force the use of one kind of interface.\n" 0 0 0 auto "Auto detection (recommanded)" ethernet "Force using Ethernet card" wifi "Force using Wireless card"` || exit 1 # Get wireless settings only if required if [ $phy_type = "auto" -o $phy_type = "wifi" ]; then wifi_mode=`$DIALOG --no-cancel --aspect 15 --stdout --backtitle "$title" --title "Configuring WiFi Mode" --menu "\nAs you seem to be using your wireless adapter to connect this computer to your network, you will have to setup the networking mode.\n Are you connected to an access point (recommanded) or directly to another computer ?\n" 0 0 0 managed "Connected to an access point (recommanded)" ad-hoc "Direct Connection"` || exit 1 val=`grep WIFI_WEP $f | cut -d'"' -f2` wep=`$DIALOG --no-cancel --aspect 15 --stdout --backtitle "$title" --title "Configuring WEP key" --inputbox "\nAs you seem to be using your wireless adapter to connect this computer to your network, you may be using a WEP key. If so, please fill in the following input box with your access point WEP key or let it blank if you do not have one (open network).\n" 0 0 "$val"` || exit 1 val=`grep WIFI_ESSID $f | cut -d'"' -f2` essid=`$DIALOG --no-cancel --aspect 15 --stdout --backtitle "$title" --title "Configuring WiFi ESSID" --inputbox "\nAs you seem to be using your wireless adapter to connect this computer to your network, you probably are using an SSID. If so, please fill in the following input box with your SSID indentifier or let it blank if you do not have one (open network).\n" 0 0 "$val"` || exit 1 fi # get GeeXboX IP address val=`grep HOST $f | cut -d'"' -f2` host_ip=`$DIALOG --no-cancel --aspect 15 --stdout --backtitle "$title" --title "GeeXboX IP" --inputbox "\nGeeXboX needs to be allocated an IP address to be present on your network. Please fill in the following input box or leave it as it for using DHCP autoconfiguration\n" 0 0 "$val"` || exit 1 # do not get more settings if DHCP if [ ! -z $host_ip ]; then val=`grep SUBNET $f | cut -d'"' -f2` subnet=`$DIALOG --no-cancel --aspect 15 --stdout --backtitle "$title" --title "GeeXboX Subnet" --inputbox "\nYou may want to connect GeeXboX to the Internet. Please fill in the following input box with your network Subnet mask or let it blank if you do not want to set a subnet mask for this computer.\n" 0 0 "$val"` || exit 1 val=`grep GATEWAY $f | cut -d'"' -f2` gw_ip=`$DIALOG --no-cancel --aspect 15 --stdout --backtitle "$title" --title "GeeXboX GateWay" --inputbox "\nYou may want to connect GeeXboX to the Internet. Please fill in the following input box with your gateway IP address or let it blank if you do not want to set a gateway for this computer.\n" 0 0 "$val"` || exit 1 val=`grep DNS_SERVER $f | cut -d'"' -f2` dns_ip=`$DIALOG --no-cancel --aspect 15 --stdout --backtitle "$title" --title "GeeXboX DNS Server" --inputbox "\nYou may want to connect GeeXboX to the Internet. Please fill in the following input box with your DNS Server IP address used for name resolving or let it blank if you do not want to resolve names with this computer.\n" 0 0 "$val"` || exit 1 fi # get samba user name val=`grep SMB_USER $f | cut -d'"' -f2` smb_user=`$DIALOG --no-cancel --stdout --backtitle "$title" --title "Set Samba User name" --inputbox "\nWhen accessing to remote Samba shares, you may need to be authenticated. Most of Microsoft Windows computers let you anonymously access to remote shares using the guest account (SHARE). Please fill in the following input box with your user name for accesing to remote Samba shares or leave it blank if you do not have one.\n" 0 0 "$val"` || exit 1 # get samba password val=`grep SMB_PWD $f | cut -d'"' -f2` smb_pwd=`$DIALOG --no-cancel --stdout --backtitle "$title" --title "Set Samba Password" --inputbox "\nIf user needs to be authenticated through a password, please fill in the following input box with it or leave it blank if you do not have one.\n" 0 0 "$val"` || exit 1 sed -i "s%^PHY_TYPE=\".*\"\(.*\)%PHY_TYPE=\"$phy_type\"\1%" $f sed -i "s%^WIFI_MODE=\".*\"\(.*\)%WIFI_MODE=\"$wifi_mode\"\1%" $f sed -i "s%^WIFI_WEP=\".*\"\(.*\)%WIFI_WEP=\"$wep\"\1%" $f sed -i "s%^WIFI_ESSID=\".*\"\(.*\)%WIFI_ESSID=\"$essid\"\1%" $f sed -i "s%^HOST=.*%HOST=\"$host_ip\"%" $f sed -i "s%^SUBNET=.*%SUBNET=\"$subnet\"%" $f sed -i "s%^GATEWAY=.*%GATEWAY=\"$gw_ip\"%" $f sed -i "s%^DNS_SERVER=.*%DNS_SERVER=\"$gw_ip\"%" $f sed -i "s%^SMB_USER=.*%SMB_USER=\"$smb_user\"%" $f sed -i "s%^SMB_PWD=.*%SMB_PWD=\"$smb_pwd\"%" $f } # Configure TV card and scan for channels. setup_tvscan () { MPTVSCAN=/usr/bin/mptvscan title="$BACKTITLE : Analog TV Channels Scanner" MPLAYER_CONF="$1/etc/mplayer/mplayer.conf" for i in `$MPTVSCAN -i`; do INPUTS="$INPUTS $i ''" done for i in `$MPTVSCAN -s`; do NORMS="$NORMS $i ''" done for i in `$MPTVSCAN -c`; do CHANLISTS="$CHANLISTS $i ''" done while [ -z "$DONE" ]; do INPUT=`$DIALOG --no-cancel --aspect 15 --stdout --backtitle "$title" --title "TV Input Selection" --menu "\nBelow is the list of your TV card's available inputs. Please select the one you want to use for channels scan (should be Television)." 0 0 0 $INPUTS` NORM=`$DIALOG --no-cancel --aspect 15 --stdout --backtitle "$title" --title "TV Norm Selection" --menu "\nBelow is the list of your TV card's supported video standards. Please select the one you want to use, according to your localization." 0 0 0 $NORMS` CHANLIST=`$DIALOG --no-cancel --aspect 15 --stdout --backtitle "$title" --title "TV Chanlist Selection" --menu "\nBelow is the list of pre-configured chanlists for scan. Select the one corresponding to your location or choose 'all' for a deep scan (scanning all existing frequencies)." 0 0 0 $CHANLISTS` $MPTVSCAN "-i$INPUT" "-s$NORM" "-c$CHANLIST" -p 2>/tmp/chans | $DIALOG --no-cancel --aspect 15 --stdout --backtitle "$title" --title "Scanning Channels" --gauge "\nGeeXboX is currently scanning your channels. This operation may take a while. Please wait while processing ..." 0 0 CHANNELS=`sed 's/channels=//' /tmp/chans | sed 's/-/ - /g' | sed 's/,/\\\\n/g'` $DIALOG --aspect 12 --stdout --yes-label "Accept" --no-label "Retry" --backtitle "$title" --title "Scan Done ..." --yesno "\nCongratulations, the TV channels scan is done. The following channels has been discoverd (if no channel has been found, you can then try again with new card/tuner/norm/chanlist settings).\n\n$CHANNELS" 0 0 && DONE=true done if [ -s /tmp/chans ]; then echo -n "tv=" | cat - /tmp/chans >> $MPLAYER_CONF fi rm -f /tmp/chans sed -i "s/^TVIN_STANDARD=.*/TVIN_STANDARD=$NORM/" $1/etc/tvcard sed -i "s/^CHANLIST=.*/CHANLIST=$CHANLIST/" $1/etc/tvcard } # Configure DVB card and scan for channels. setup_dvbscan () { DVB_LIST=/usr/share/dvb DVB_FILE=/usr/share/dvb.tar.lzma DVBSCAN=/usr/bin/dvbscan SCAN_ARGS="-x 0" # Scan FreeToAir channels only TITLE="$BACKTITLE : Digital TV Channels Scanner" CHANNELS_CONF="$1/etc/mplayer/channels.conf" if [ -f $DVB_FILE -a ! -d $DVB_LIST ]; then lzmacat $DVB_FILE | tar xf - -C /usr/share fi DVB_TYPE=`$DIALOG --no-cancel --aspect 15 --stdout --backtitle "$TITLE" --title "DVB Card Type Selection" --menu "\nBelow is the list of available DVB cards type. Please select the one you want to use for channels scan." 0 0 0 dvb-s "DVB Sattelite" dvb-t "DVB Terrestrial" dvb-c "DVB Cable" atsc "ATSC (US)"` # DVB Terrestrial cards if [ $DVB_TYPE = "dvb-t" ]; then for i in `ls $DVB_LIST/$DVB_TYPE`; do COUNTRIES="$COUNTRIES $i ''" done COUNTRY=`$DIALOG --no-cancel --aspect 15 --stdout --backtitle "$TITLE" --title "Country Selection" --menu "\nBelow is the list of countries with known DVB-T transponders frequencies. Please select the one where you live." 0 0 0 $COUNTRIES` for i in `ls $DVB_LIST/$DVB_TYPE/$COUNTRY`; do CITIES="$CITIES $i ''" done CITY=`$DIALOG --no-cancel --aspect 15 --stdout --backtitle "$TITLE" --title "City Selection" --menu "\nBelow is the list of locations from your country with known DVB-T transponders frequencies. If you live in place not present in this list, please contact your DVB provider, asking him for your local transponders frequencies and send this information to the LinuxTV (http://www.linuxtv.org/) team. Otherwise, simply choose the nearest town from the place you live." 0 0 0 $CITIES` $DVBSCAN $SCAN_ARGS $DVB_LIST/$DVB_TYPE/$COUNTRY/$CITY > $CHANNELS_CONF elif [ $DVB_TYPE = "dvb-s" ]; then for i in `ls $DVB_LIST/$DVB_TYPE`; do SATS="$SATS $i ''" done SAT=`$DIALOG --no-cancel --aspect 15 --stdout --backtitle "$TITLE" --title "Satellite Selection" --menu "\nBelow is the list of known DVB-S satellite transponders you may be able to be connected to. If you are using another transponder which is not present in this list, please contact your DVB provider, asking him for your transponder frequencies and send this information to the LinuxTV (http://www.linuxtv.org/) team. Otherwise, simply choose the one that fit your needs." 0 0 0 $SATS` $DVBSCAN $SCAN_ARGS $DVB_LIST/$DVB_TYPE/$SAT > $CHANNELS_CONF elif [ $DVB_TYPE = "dvb-c" ]; then for i in `ls $DVB_LIST/$DVB_TYPE`; do COUNTRIES="$COUNTRIES $i ''" done COUNTRY=`$DIALOG --no-cancel --aspect 15 --stdout --backtitle "$TITLE" --title "Country Selection" --menu "\nBelow is the list of countries with known DVB-C transponders frequencies. Please select the one where you live." 0 0 0 $COUNTRIES` for i in `ls $DVB_LIST/$DVB_TYPE/$COUNTRY`; do CITIES="$CITIES $i ''" done CITY=`$DIALOG --no-cancel --aspect 15 --stdout --backtitle "$TITLE" --title "City Selection" --menu "\nBelow is the list of locations from your country with known DVB-C transponders frequencies. If you live in place not present in this list, please contact your DVB provider, asking him for your local transponders frequencies and send this information to the LinuxTV (http://www.linuxtv.org/) team. Otherwise, simply choose the nearest town from the place you live." 0 0 0 $CITIES` $DVBSCAN $SCAN_ARGS $DVB_LIST/$DVB_TYPE/$COUNTRY/$CITY > $CHANNELS_CONF elif [ $DVB_TYPE = "atsc" ]; then for i in `ls $DVB_LIST/$DVB_TYPE`; do ATSC="$ATSC $i ''" done FREQ=`$DIALOG --no-cancel --aspect 15 --stdout --backtitle "$TITLE" --title "ATSC Transponder Selection" --menu "\nBelow is the list of known ATSC transponders you may be able to be connected to. If you are using another transponder which is not present in this list, please contact your ATSC provider, asking him for your transponder frequencies and send this information to the LinuxTV (http://www.linuxtv.org/) team. Otherwise, simply choose the one that fit your needs." 0 0 0 $ATSC` $DVBSCAN $SCAN_ARGS $DVB_LIST/$DVB_TYPE/$FREQ > $CHANNELS_CONF fi if [ -s $CHANNELS_CONF ]; then # remove non-coherent detected channels grep -v "^\[.*\]:" $CHANNELS_CONF > /tmp/channels.conf mv /tmp/channels.conf $CHANNELS_CONF fi } /bin/busybox mount -t proc none /proc /bin/busybox mount -t sysfs none /sys /bin/busybox --install -s if [ "$1" = geexbox ]; then DIALOG=/usr/bin/dialog CFDISK=/usr/bin/cfdisk SFDISK=/usr/bin/sfdisk MKDOSFS=/usr/bin/mkdosfs MKE2FS=/sbin/mke2fs GRUB=/usr/bin/grub SYSLINUX=/usr/bin/syslinux else DIALOG=`which dialog` CFDISK=`which cfdisk` SFDISK=`which sfdisk` MKDOSFS=`which mkdosfs` MKE2FS=`which mke2fs` GRUB=`which grub` SYSLINUX=`which syslinux` fi VERSION=`cat VERSION` BACKTITLE="GeeXboX $VERSION installator" if [ "$UID" != "0" ]; then echo "" echo "**** You need to be root to install GeeXboX ****" echo "" exit 1 fi if [ -z "$SFDISK" -o -z "$GRUB" -o -z "$DIALOG" ]; then echo "" echo "**** You need to have sfdisk, grub and dialog installed to install GeeXboX ****" echo "" exit 1 fi if [ ! -d "/sys/block" ]; then echo "" echo "**** You need to have a mounted sysfs at /sys. try executing: mount -t sysfs none /sys ****" echo "" exit 1 fi # disable kernel messages to avoid screen corruption echo 0 > /proc/sys/kernel/printk while true; do if [ -e /dev/.devfsd ]; then DISKS=`cat /proc/partitions | sed -n "s/\ *[0-9][0-9]*\ *[0-9][0-9]*\ *\([0-9][0-9]*\)\ \([a-z0-9/]*disc\).*$/\2 (\1_blocks)/p"` else DISKS=`cat /proc/partitions | sed -n "s/\ *[0-9][0-9]*\ *[0-9][0-9]*\ *\([0-9][0-9]*\)\ \([a-z]*\)$/\2 (\1_blocks)/p"` fi if [ -z "$DISKS" ]; then $DIALOG --aspect 15 --backtitle "$BACKTITLE" --title "ERROR" --yesno "\nNo disks found on this system.\nCheck again?" 0 0 || exit 1 else DISKS="$DISKS refresh list" DISK=`$DIALOG --stdout --backtitle "$BACKTITLE" --title "Installation device" --menu "\nYou are going to install GeeXboX. For this you will need an empty partition with about 8 MB of free space.\nBe careful to choose the right disk! We won't take responsibility for any data loss." 0 0 0 $DISKS` || exit 1 [ $DISK != refresh ] && break fi done if [ "`cat /sys/block/$DISK/removable`" = 1 ]; then BOOTLOADER=`$DIALOG --stdout --aspect 15 --backtitle "$BACKTITLE" --title "Linux partition type" --menu "Which type of boot loader you want ? " 0 0 0 grub "GNU GRUB - Doesn't work with oldest BIOS" syslinux "Syslinux - For oldest BIOS compatbility"` || exit 1 TYPE=REMOVABLE else BOOTLOADER=grub TYPE=HDD fi if [ $BOOTLOADER = syslinux ]; then PART_MSG="FAT partition (type=06)" elif [ $BOOTLOADER = grub ]; then PART_MSG="FAT partition (type=0B) or Linux ext2/3 partition (type=83)" fi if [ -z "$CFDISK" ]; then CFDISK_MSG="As you don't have cfdisk installed, the installator won't be able to create the partition for you. You'll have to create it yourself before installing." else CFDISK_MSG="Please edit your partition table to create a $PART_MSG with about 8 MB of free space.\nRemember to write the changes when done. We won't take responsibility for any data loss." fi $DIALOG --stdout --backtitle "$BACKTITLE" --title "Installation device" --msgbox "$CFDISK_MSG" 0 0 || exit 1 if [ -n "$CFDISK" ]; then $CFDISK /dev/$DISK || exit 1 fi while [ ! -b "$DEV" ]; do DISKS="" for i in `$SFDISK -l /dev/$DISK | grep ${DISK%disc} | cut -f1 -d' '`; do case `$SFDISK --print-id ${i%%[0-9]*} ${i#${i%%[0-9]*}}` in 1|11|6|e|16|1e|b|c|1b|1c) #FAT12/16/32 are supported both in syslinux and grub. S=`$SFDISK -s "$i" | sed 's/\([0-9]*\)[0-9]\{3\}/\1/'` DISKS="$DISKS $i ${S}MB" ;; 83) #Linux is supported only in grub. if [ $BOOTLOADER = grub ]; then S=`$SFDISK -s "$i" | sed 's/\([0-9]*\)[0-9]\{3\}/\1/'` DISKS="$DISKS $i ${S}MB" fi ;; esac done if [ -z "$DISKS" ]; then $DIALOG --aspect 15 --backtitle "$BACKTITLE" --title "ERROR" --msgbox "\nYou don't have any $PART_MSG partition on your system. Please create a partition first using for example cfdisk.\n" 0 0 exit 1 else DEV=`$DIALOG --stdout --aspect 15 --backtitle "$BACKTITLE" --title "Installation device" --menu "Where do you want to install GeeXboX?" 0 0 0 $DISKS` || exit 1 fi if [ ! -b "$DEV" ]; then $DIALOG --aspect 15 --backtitle "$BACKTITLE" --title "ERROR" --msgbox "\n'$DEV' is not a valid block device.\n" 0 0 fi done DEVNAME="${DEV#/dev/}" case `$SFDISK --print-id ${DEV%%[0-9]*} ${DEV#${DEV%%[0-9]*}}` in 1|11|6|e|16|1e|14|b|c|1b|1c) SUPPORTED_TYPES="vfat" PART_TYPE="FAT" ;; 83) # Linux SUPPORTED_TYPES="ext3 ext2" PART_TYPE="Linux" ;; esac mkdir di # Try to guess current partition type. MKFS_TYPE= for type in vfat ext3 ext2 auto; do if mount -o ro -t $type "$DEV" di; then MKFS_TYPE=`grep "^$DEV " /proc/mounts | cut -d " " -f 3` umount di break fi done NEED_FORMAT=yes if [ -z "$MKFS_TYPE" ]; then FORMAT_MSG="Partition is not formated. " else for type in $SUPPORTED_TYPES; do [ $type = $MKFS_TYPE ] && NEED_FORMAT=no done if [ "$NEED_FORMAT" = yes ]; then FORMAT_MSG="Partition format type ($MKFS_TYPE) is not supported in your partition type ($PART_TYPE). " else FORMAT_MSG="Partition is already formated. " fi fi $DIALOG --aspect 15 --backtitle "$BACKTITLE" --title "Formatting" --defaultno --yesno "$FORMAT_MSG\nDo you want to format '$DEV' ?\n" 0 0 && FORMAT=yes if [ "$FORMAT" = yes ]; then case `$SFDISK --print-id ${DEV%%[0-9]*} ${DEV#${DEV%%[0-9]*}}` in 1|11|6|e|16|1e|14) # FAT12 and FAT16 MKFS=$MKDOSFS MKFS_OPT="-n GEEXBOX" MKFS_TYPE=vfat MKFS_TYPENAME="FAT" ;; b|c|1b|1c) # FAT32 MKFS=$MKDOSFS MKFS_OPT="-n GEEXBOX -F 32" MKFS_TYPE=vfat MKFS_TYPENAME="FAT" ;; 83) # Linux MKFS_TYPE=`$DIALOG --stdout --aspect 15 --backtitle "$BACKTITLE" --title "Linux partition type" --menu "Which type of Linux partition you want ?" 0 0 0 ext2 "Linux ext2" ext3 "Linux ext3"` || exit 1 case $MKFS_TYPE in ext2) MKFS=$MKE2FS MKFS_OPT="-L GEEXBOX" MKFS_TYPENAME="Linux ext2" ;; ext3) MKFS=$MKE2FS MKFS_OPT="-L GEEXBOX -j" MKFS_TYPENAME="Linux ext3" ;; esac ;; esac if [ -z "$MKFS" -o ! -x $MKFS ]; then if [ "$NEED_FORMAT" = yes ]; then $DIALOG --aspect 15 --backtitle "$BACKTITLE" --title "ERROR" --msgbox "\n'$DEV' must be formated. As you don't have formatting tool installed, I won't be able to format the partition.\n" 0 0 rmdir di exit 1 else $DIALOG --aspect 15 --backtitle "$BACKTITLE" --title "Warning" --msgbox "\n'$DEV' needs to be a $MKFS_TYPENAME partition. As you don't have formatting tool installed, I won't be able to format the partition. Hopefully it is already formatted.\n" 0 0 fi else $MKFS $MKFS_OPT "$DEV" fi elif [ "$NEED_FORMAT" = yes ]; then $DIALOG --aspect 15 --backtitle "$BACKTITLE" --title "ERROR" --msgbox "\n'$DEV' needs to be a formated.\n" 0 0 rmdir di exit 1 fi mount -t $MKFS_TYPE "$DEV" di if [ $? -ne 0 ]; then $DIALOG --aspect 15 --backtitle "$BACKTITLE" --title "ERROR" --msgbox "\nFailed to mount '$DEV' as $MKFS_TYPENAME partition.\n" 0 0 rmdir di exit 1 fi if [ -d disk ]; then cp -a disk/* di 2>/dev/null else if [ -n "$NFS" ]; then GEEXBOX="$NFS" else GEEXBOX="$CDROM/GEEXBOX" fi cp -a "$GEEXBOX" di/GEEXBOX 2>/dev/null cd di/GEEXBOX/boot mv vmlinuz initrd.gz isolinux.cfg boot.msg help.msg splash.rle ../../ cd ../../../ rm -rf di/GEEXBOX/boot fi # Setup network is only available when booting from GeeXboX. if [ "$1" = geexbox ]; then $DIALOG --aspect 15 --backtitle "$BACKTITLE" --title "Configure Network ?" --yesno "\nDo you want to configure your network parameters before installing GeeXboX to disk ?\n" 0 0 && setup_network "di/GEEXBOX" fi # Configure TV card and scan for channels. # (only available when booting from GeeXboX). if [ "$1" = geexbox ]; then if grep -q 'Class 0400:.*109e:' /proc/pci || grep -q 'Class 0480:.*1131:' /proc/pci || grep -q 'Class 0480:.*14f1:88' /proc/pci; then # Only scan if a TV card is detected /usr/bin/mptvscan -i >/dev/null 2>&1 if [ `echo $?` = 0 ]; then $DIALOG --aspect 15 --backtitle "$BACKTITLE" --title "Scan for Analog TV Channels ?" --yesno "\nDo you want to configure your analog tv card and scan for channels before installing GeeXboX to disk ?\n" 0 0 && setup_tvscan "di/GEEXBOX" fi fi fi # Configure DVB card and scan for channels. # (only available when booting from GeeXboX). if [ "$1" = geexbox ]; then # Only scan if a DVB card is detected if [ -f /var/dvbcard ]; then $DIALOG --aspect 15 --backtitle "$BACKTITLE" --title "Scan for Digital (DVB) TV Channels ?" --yesno "\nDo you want to configure your digital (DVB) tv card and scan for channels before installing GeeXboX to disk ?\n" 0 0 && setup_dvbscan "di/GEEXBOX" fi fi grubprefix=/boot/grub grubdir=di$grubprefix device_map=$grubdir/device.map rm -rf $grubdir mkdir -p $grubdir lzmacat "di/GEEXBOX/usr/share/grub-i386-pc.tar.lzma" | tar xf - -C $grubdir if [ -f "di/GEEXBOX/usr/share/grub-splash.xpm.gz" ]; then cp -f "di/GEEXBOX/usr/share/grub-splash.xpm.gz" $grubdir || exit 1 disable_splashimage= else disable_splashimage="#" fi splashimage="$grubprefix/grub-splash.xpm.gz" if [ $BOOTLOADER = syslinux ]; then cp "di/GEEXBOX/usr/share/ldlinux.sys" di sed "s/boot=cdrom/boot=${DEV#/dev/}/" di/isolinux.cfg > di/syslinux.cfg rm di/isolinux.cfg elif [ $BOOTLOADER = grub ]; then cp $grubdir/stage2 $grubdir/stage2_single rm di/isolinux.cfg di/boot.msg di/help.msg di/splash.rle fi if [ $TYPE = HDD ]; then echo "quit" | $GRUB --batch --no-floppy --device-map=$device_map elif [ $TYPE = REMOVABLE ]; then echo "(hd0) ${DEV%%[0-9]*}" > $device_map fi rootdev=$(convert $DEV) if [ -z "$rootdev" ]; then $DIALOG --aspect 15 --backtitle "$BACKTITLE" --title "ERROR" --msgbox "\nCouldn't find my GRUB partition representation\n" 0 0 umount di rmdir di exit 1 fi if [ $BOOTLOADER = syslinux ]; then umount di $SYSLINUX "$DEV" mount -t $MKFS_TYPE "$DEV" di elif [ $BOOTLOADER = grub ]; then if [ $TYPE = HDD ]; then rootdev_single=$rootdev fake_device= elif [ $TYPE = REMOVABLE ]; then rootdev_single="(fd0)" fake_device="device $rootdev_single $DEV" fi $GRUB --batch --no-floppy --device-map=$device_map < $grubdir/single.lst < $grubdir/menu.lst <> $grubdir/menu.lst <> $grubdir/menu.lst <> $grubdir/menu.lst <> $grubdir/menu.lst < #include #include #include #include #include int main (int argc, char **argv) { int fd, capabilites; if (argc != 2) { fprintf (stderr, "usage: %s device\n", argv[0]); return 1; } fd = open (argv[1], O_RDONLY | O_NONBLOCK); if (fd < 0) { perror ("Can't open device"); return 2; } if ((capabilites=ioctl (fd, CDROM_GET_CAPABILITY)) < 0) { perror ("Can't get capabilities"); return 3; } if (capabilites & CDC_DVD) printf ("DVD\n"); else printf ("CD\n"); close (fd); return 0; } geexbox-0.98.7/packages/jpeg/0000755000175000017500000000000010335100771014762 5ustar aurelaurelgeexbox-0.98.7/packages/jpeg/build0000755000175000017500000000031110335100771016002 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain cd $BUILD/$1* ./configure --host=$TARGET_NAME \ --build=$HOST_NAME \ --prefix=$LIB_PREFIX make libjpeg.a make install-lib geexbox-0.98.7/packages/jpeg/url0000644000175000017500000000006210335100771015505 0ustar aurelaurelftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz geexbox-0.98.7/packages/libdts/0000755000175000017500000000000010335100771015316 5ustar aurelaurelgeexbox-0.98.7/packages/libdts/build0000755000175000017500000000027310335100771016345 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain cd $BUILD/$1* ./configure --host=$TARGET_NAME \ --build=$HOST_NAME \ --prefix=$LIB_PREFIX make make install geexbox-0.98.7/packages/libdts/url0000644000175000017500000000004110335100771016036 0ustar aurelaurelGEEXBOX_SRCS/libdts-0.0.2.tar.gz geexbox-0.98.7/packages/libexif/0000755000175000017500000000000010335100771015457 5ustar aurelaurelgeexbox-0.98.7/packages/libexif/build0000755000175000017500000000035510335100771016507 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain cd $BUILD/$1* ./configure --host=$TARGET_NAME \ --build=$HOST_NAME \ --prefix=$LIB_PREFIX \ --disable-nls make -C libexif make -C libexif install geexbox-0.98.7/packages/libexif/url0000644000175000017500000000011010335100771016174 0ustar aurelaurelhttp://ovh.dl.sourceforge.net/sourceforge/libexif/libexif-0.5.12.tar.gz geexbox-0.98.7/packages/libirman/0000755000175000017500000000000010335100771015632 5ustar aurelaurelgeexbox-0.98.7/packages/libirman/build0000755000175000017500000000050110335100771016653 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain cd $BUILD/$1* ./configure --host=$TARGET_NAME \ --build=$HOST_NAME \ --prefix=$LIB_PREFIX \ --sysconfdir=/etc make libirman mkdir -p $LIB_PREFIX/lib $LIB_PREFIX/include cp irman.h $LIB_PREFIX/include cp libirman.a $LIB_PREFIX/lib geexbox-0.98.7/packages/libirman/url0000644000175000017500000000010510335100771016353 0ustar aurelaurelhttp://lirc.sourceforge.net/software/snapshots/libirman-0.4.3.tar.gz geexbox-0.98.7/packages/libmpcdec/0000755000175000017500000000000010335100771015757 5ustar aurelaurelgeexbox-0.98.7/packages/libmpcdec/build0000755000175000017500000000033210335100771017002 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain cd $BUILD/$1* ./configure --host=$TARGET_NAME \ --build=$HOST_NAME \ --prefix=$LIB_PREFIX \ --disable-shared make make install geexbox-0.98.7/packages/libmpcdec/unpack0000755000175000017500000000025610335100771017171 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain $SCRIPTS/fixconfigtools $BUILD/$1*/config sed -i 's/^noinst_PROGRAMS.*/noinst_PROGRAMS = /' $BUILD/$1*/src/Makefile.in geexbox-0.98.7/packages/libmpcdec/url0000644000175000017500000000007110335100771016502 0ustar aurelaurelhttp://files.musepack.net/source/libmpcdec-1.2.2.tar.bz2 geexbox-0.98.7/packages/libogg/0000755000175000017500000000000010335100771015300 5ustar aurelaurelgeexbox-0.98.7/packages/libogg/build0000755000175000017500000000033210335100771016323 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain cd $BUILD/$1* ./configure --host=$TARGET_NAME \ --build=$HOST_NAME \ --prefix=$LIB_PREFIX \ --disable-shared make make install geexbox-0.98.7/packages/libogg/url0000644000175000017500000000007310335100771016025 0ustar aurelaurelhttp://downloads.xiph.org/releases/ogg/libogg-1.1.2.tar.gz geexbox-0.98.7/packages/libpcd/0000755000175000017500000000000010335100771015272 5ustar aurelaurelgeexbox-0.98.7/packages/libpcd/build0000755000175000017500000000041010335100771016312 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain make -C $BUILD/$1* \ CC=$CC \ AR=$AR \ RANLIB=$RANLIB \ libpcd.a mkdir -p $LIB_PREFIX/lib $LIB_PREFIX/include cp $BUILD/$1*/pcd.h $LIB_PREFIX/include cp $BUILD/$1*/libpcd.a $LIB_PREFIX/lib geexbox-0.98.7/packages/libpcd/patches/0000755000175000017500000000000010335100771016721 5ustar aurelaurelgeexbox-0.98.7/packages/libpcd/patches/10_crosscompile.diff0000644000175000017500000000077010335100771022561 0ustar aurelaurel--- libpcd-1.0.1.orig/GNUmakefile 2003-07-22 12:52:46.000000000 +0300 +++ libpcd-1.0.1/GNUmakefile 2004-12-03 12:17:32.000000000 +0200 @@ -6,6 +6,8 @@ libdir := $(DESTDIR)$(prefix)/lib CC := gcc +AR := ar +RANLIB := ranlib WARN := -Wall -Wmissing-prototypes -Wstrict-prototypes -Wpointer-arith CFLAGS ?= -g -O2 CFLAGS += $(WARN) @@ -30,8 +32,8 @@ libpcd.a: $(STATIC) rm -f $@ - ar rc $@ $(STATIC) - ranlib $@ + $(AR) rc $@ $(STATIC) + $(RANLIB) $@ libpcd.so.$(MINOR): $(SHARED) rm -f $@ geexbox-0.98.7/packages/libpcd/url0000644000175000017500000000007210335100771016016 0ustar aurelaurelhttp://dl.bytesex.org/releases/libpcd/libpcd_1.0.1.tar.gz geexbox-0.98.7/packages/libpng/0000755000175000017500000000000010335100771015310 5ustar aurelaurelgeexbox-0.98.7/packages/libpng/build0000755000175000017500000000035110335100771016334 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain $SCRIPTS/build zlib cd $BUILD/$1* ./configure --host=$TARGET_NAME \ --build=$HOST_NAME \ --prefix=$LIB_PREFIX \ --without-x make make install geexbox-0.98.7/packages/libpng/url0000644000175000017500000000011410335100771016031 0ustar aurelaurelhttp://ovh.dl.sourceforge.net/sourceforge/libpng/libpng-1.2.8-config.tar.gz geexbox-0.98.7/packages/libtheora/0000755000175000017500000000000010335100771016006 5ustar aurelaurelgeexbox-0.98.7/packages/libtheora/build0000755000175000017500000000042010335100771017027 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain $SCRIPTS/build libogg cd $BUILD/$1* ./configure --host=$TARGET_NAME \ --build=$HOST_NAME \ --prefix=$LIB_PREFIX \ --disable-shared \ --disable-oggtest make make install geexbox-0.98.7/packages/libtheora/unpack0000755000175000017500000000014410335100771017214 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain sed -i "s/examples//" $BUILD/$1*/Makefile.in geexbox-0.98.7/packages/libtheora/url0000644000175000017500000000010610335100772016531 0ustar aurelaurelhttp://downloads.xiph.org/releases/theora/libtheora-1.0alpha5.tar.bz2 geexbox-0.98.7/packages/libungif/0000755000175000017500000000000010335100772015635 5ustar aurelaurelgeexbox-0.98.7/packages/libungif/build0000755000175000017500000000040210335100772016656 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain cd $BUILD/$1* ./configure --host=$TARGET_NAME \ --build=$HOST_NAME \ --prefix=$LIB_PREFIX \ --disable-shared \ --without-x make -C lib make -C lib install geexbox-0.98.7/packages/libungif/url0000644000175000017500000000011210335100772016354 0ustar aurelaurelhttp://ovh.dl.sourceforge.net/sourceforge/libungif/libungif-4.1.4.tar.bz2 geexbox-0.98.7/packages/libvorbis/0000755000175000017500000000000010335100772016031 5ustar aurelaurelgeexbox-0.98.7/packages/libvorbis/build0000755000175000017500000000045610335100772017063 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain $SCRIPTS/build libogg CFLAGS="$CFLAGS -ffast-math" cd $BUILD/$1* ./configure --host=$TARGET_NAME \ --build=$HOST_NAME \ --prefix=$LIB_PREFIX \ --disable-shared \ --disable-oggtest make make install geexbox-0.98.7/packages/libvorbis/url0000644000175000017500000000010110335100772016546 0ustar aurelaurelhttp://downloads.xiph.org/releases/vorbis/libvorbis-1.1.1.tar.gz geexbox-0.98.7/packages/linux/0000755000175000017500000000000010335100772015175 5ustar aurelaurelgeexbox-0.98.7/packages/linux/build0000755000175000017500000000100410335100772016215 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain $SCRIPTS/build module-init-tools DEPMOD=`ls -d $ROOT/$BUILD/module-init-tool*/depmod` LINUX=$(kernel_path) MODDIR=$LINUX/modules rm -rf $MODDIR mkdir -p $MODDIR case $TARGET_ARCH in i386) make bzImage -C "$LINUX" ;; ppc) unset LDFLAGS make vmlinux -C "$LINUX" ;; esac make modules -C "$LINUX" make INSTALL_MOD_PATH=$MODDIR DEPMOD=$DEPMOD modules_install -C "$LINUX" rm -f $MODDIR/lib/modules/*/build rm -f $MODDIR/lib/modules/*/source geexbox-0.98.7/packages/linux/config/0000755000175000017500000000000010335100772016442 5ustar aurelaurelgeexbox-0.98.7/packages/linux/config/linux.i386.conf0000644000175000017500000011271610335100772021150 0ustar aurelaurel# # Automatically generated make config: don't edit # Linux kernel version: 2.6.14 # CONFIG_X86=y CONFIG_SEMAPHORE_SLEEPERS=y CONFIG_MMU=y CONFIG_UID16=y CONFIG_GENERIC_ISA_DMA=y CONFIG_GENERIC_IOMAP=y CONFIG_ARCH_MAY_HAVE_PC_FDC=y # # Code maturity level options # CONFIG_EXPERIMENTAL=y CONFIG_CLEAN_COMPILE=y CONFIG_BROKEN_ON_SMP=y CONFIG_INIT_ENV_ARG_LIMIT=32 # # General setup # CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set # CONFIG_SWAP is not set # CONFIG_SYSVIPC is not set # CONFIG_POSIX_MQUEUE is not set # CONFIG_BSD_PROCESS_ACCT is not set CONFIG_SYSCTL=y # CONFIG_AUDIT is not set CONFIG_HOTPLUG=y # CONFIG_KOBJECT_UEVENT is not set # CONFIG_IKCONFIG is not set CONFIG_INITRAMFS_SOURCE="" CONFIG_EMBEDDED=y # CONFIG_KALLSYMS is not set CONFIG_PRINTK=y CONFIG_BUG=y CONFIG_BASE_FULL=y # CONFIG_FUTEX is not set # CONFIG_EPOLL is not set CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_SHMEM=y CONFIG_CC_ALIGN_FUNCTIONS=0 CONFIG_CC_ALIGN_LABELS=0 CONFIG_CC_ALIGN_LOOPS=0 CONFIG_CC_ALIGN_JUMPS=0 # CONFIG_TINY_SHMEM is not set CONFIG_BASE_SMALL=0 # # Loadable module support # CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y # CONFIG_MODULE_FORCE_UNLOAD is not set CONFIG_OBSOLETE_MODPARM=y # CONFIG_MODVERSIONS is not set # CONFIG_MODULE_SRCVERSION_ALL is not set # CONFIG_KMOD is not set # # Processor type and features # CONFIG_X86_PC=y # CONFIG_X86_ELAN is not set # CONFIG_X86_VOYAGER is not set # CONFIG_X86_NUMAQ is not set # CONFIG_X86_SUMMIT is not set # CONFIG_X86_BIGSMP is not set # CONFIG_X86_VISWS is not set # CONFIG_X86_GENERICARCH is not set # CONFIG_X86_ES7000 is not set # CONFIG_M386 is not set # CONFIG_M486 is not set CONFIG_M586=y # 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_MWINCHIP2 is not set # CONFIG_MWINCHIP3D is not set # CONFIG_MGEODEGX1 is not set # CONFIG_MCYRIXIII is not set # CONFIG_MVIAC3_2 is not set CONFIG_X86_GENERIC=y CONFIG_X86_CMPXCHG=y CONFIG_X86_XADD=y CONFIG_X86_L1_CACHE_SHIFT=7 CONFIG_RWSEM_XCHGADD_ALGORITHM=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_X86_PPRO_FENCE=y CONFIG_X86_F00F_BUG=y CONFIG_X86_WP_WORKS_OK=y CONFIG_X86_INVLPG=y CONFIG_X86_BSWAP=y CONFIG_X86_POPAD_OK=y CONFIG_X86_ALIGNMENT_16=y CONFIG_X86_INTEL_USERCOPY=y # CONFIG_HPET_TIMER is not set # CONFIG_SMP is not set CONFIG_PREEMPT_NONE=y # CONFIG_PREEMPT_VOLUNTARY is not set # CONFIG_PREEMPT is not set CONFIG_X86_UP_APIC=y CONFIG_X86_UP_IOAPIC=y CONFIG_X86_LOCAL_APIC=y CONFIG_X86_IO_APIC=y # CONFIG_X86_MCE is not set # CONFIG_TOSHIBA is not set # CONFIG_I8K is not set # CONFIG_X86_REBOOTFIXUPS is not set # CONFIG_MICROCODE is not set # CONFIG_X86_MSR is not set # CONFIG_X86_CPUID is not set # # Firmware Drivers # # CONFIG_EDD is not set # CONFIG_DELL_RBU is not set # CONFIG_DCDBAS is not set CONFIG_NOHIGHMEM=y # CONFIG_HIGHMEM4G is not set # CONFIG_HIGHMEM64G is not set 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 is not set # CONFIG_MATH_EMULATION is not set CONFIG_MTRR=y # CONFIG_EFI is not set # CONFIG_REGPARM is not set # CONFIG_SECCOMP is not set # CONFIG_HZ_100 is not set # CONFIG_HZ_250 is not set CONFIG_HZ_1000=y CONFIG_HZ=1000 CONFIG_PHYSICAL_START=0x100000 # CONFIG_KEXEC is not set # # Power management options (ACPI, APM) # CONFIG_PM=y # CONFIG_PM_DEBUG is not set # # ACPI (Advanced Configuration and Power Interface) Support # CONFIG_ACPI=y CONFIG_ACPI_SLEEP=y CONFIG_ACPI_SLEEP_PROC_FS=y # CONFIG_ACPI_SLEEP_PROC_SLEEP is not set CONFIG_ACPI_AC=y CONFIG_ACPI_BATTERY=y CONFIG_ACPI_BUTTON=y # CONFIG_ACPI_VIDEO is not set # CONFIG_ACPI_HOTKEY is not set CONFIG_ACPI_FAN=y CONFIG_ACPI_PROCESSOR=y CONFIG_ACPI_THERMAL=y # CONFIG_ACPI_ASUS is not set # CONFIG_ACPI_IBM is not set # CONFIG_ACPI_TOSHIBA is not set CONFIG_ACPI_BLACKLIST_YEAR=0 # CONFIG_ACPI_DEBUG is not set CONFIG_ACPI_EC=y CONFIG_ACPI_POWER=y CONFIG_ACPI_SYSTEM=y # CONFIG_X86_PM_TIMER is not set # CONFIG_ACPI_CONTAINER is not set # # APM (Advanced Power Management) BIOS Support # CONFIG_APM=y # CONFIG_APM_IGNORE_USER_SUSPEND is not set CONFIG_APM_DO_ENABLE=y CONFIG_APM_CPU_IDLE=y # CONFIG_APM_DISPLAY_BLANK is not set # CONFIG_APM_RTC_IS_GMT is not set # CONFIG_APM_ALLOW_INTS is not set # CONFIG_APM_REAL_MODE_POWER_OFF is not set # # CPU Frequency scaling # CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_TABLE=y # CONFIG_CPU_FREQ_DEBUG is not set # CONFIG_CPU_FREQ_STAT is not set CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set CONFIG_CPU_FREQ_GOV_PERFORMANCE=y # CONFIG_CPU_FREQ_GOV_POWERSAVE is not set # CONFIG_CPU_FREQ_GOV_USERSPACE is not set # CONFIG_CPU_FREQ_GOV_ONDEMAND is not set CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y # # CPUFreq processor drivers # CONFIG_X86_ACPI_CPUFREQ=y CONFIG_X86_POWERNOW_K6=y CONFIG_X86_POWERNOW_K7=y CONFIG_X86_POWERNOW_K7_ACPI=y CONFIG_X86_POWERNOW_K8=y CONFIG_X86_POWERNOW_K8_ACPI=y CONFIG_X86_GX_SUSPMOD=y CONFIG_X86_SPEEDSTEP_CENTRINO=y CONFIG_X86_SPEEDSTEP_CENTRINO_ACPI=y CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE=y CONFIG_X86_SPEEDSTEP_ICH=y CONFIG_X86_SPEEDSTEP_SMI=y CONFIG_X86_P4_CLOCKMOD=y # CONFIG_X86_CPUFREQ_NFORCE2 is not set CONFIG_X86_LONGRUN=y CONFIG_X86_LONGHAUL=y # # shared options # # CONFIG_X86_ACPI_CPUFREQ_PROC_INTF is not set CONFIG_X86_SPEEDSTEP_LIB=y # CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK is not set # # Bus options (PCI, PCMCIA, EISA, MCA, ISA) # CONFIG_PCI=y # CONFIG_PCI_GOBIOS is not set # CONFIG_PCI_GOMMCONFIG is not set # CONFIG_PCI_GODIRECT is not set CONFIG_PCI_GOANY=y CONFIG_PCI_BIOS=y CONFIG_PCI_DIRECT=y CONFIG_PCI_MMCONFIG=y # CONFIG_PCIEPORTBUS is not set # CONFIG_PCI_MSI is not set CONFIG_PCI_LEGACY_PROC=y CONFIG_ISA_DMA_API=y CONFIG_ISA=y # CONFIG_EISA is not set # CONFIG_MCA is not set # CONFIG_SCx200 is not set # # PCCARD (PCMCIA/CardBus) support # # CONFIG_PCCARD is not set # # PCI Hotplug Support # # CONFIG_HOTPLUG_PCI is not set # # Executable file formats # CONFIG_BINFMT_ELF=y # CONFIG_BINFMT_AOUT is not set # CONFIG_BINFMT_MISC is not set # # Networking # CONFIG_NET=y # # Networking options # CONFIG_PACKET=y # CONFIG_PACKET_MMAP is not set CONFIG_UNIX=y # CONFIG_NET_KEY is not set CONFIG_INET=y # CONFIG_IP_MULTICAST is not set # CONFIG_IP_ADVANCED_ROUTER is not set CONFIG_IP_FIB_HASH=y # CONFIG_IP_PNP is not set # CONFIG_NET_IPIP is not set # CONFIG_NET_IPGRE 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_TUNNEL is not set # CONFIG_INET_DIAG is not set # CONFIG_TCP_CONG_ADVANCED is not set CONFIG_TCP_CONG_BIC=y # CONFIG_IPV6 is not set # CONFIG_NETFILTER is not set # # DCCP Configuration (EXPERIMENTAL) # # CONFIG_IP_DCCP is not set # # SCTP Configuration (EXPERIMENTAL) # # CONFIG_IP_SCTP is not set # CONFIG_ATM is not set # CONFIG_BRIDGE 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_NET_DIVERT is not set # CONFIG_ECONET is not set # CONFIG_WAN_ROUTER is not set # CONFIG_NET_SCHED is not set # CONFIG_NET_CLS_ROUTE is not set # # Network testing # # CONFIG_NET_PKTGEN is not set # CONFIG_HAMRADIO is not set # CONFIG_IRDA is not set # CONFIG_BT is not set CONFIG_IEEE80211=y # CONFIG_IEEE80211_DEBUG is not set CONFIG_IEEE80211_CRYPT_WEP=y CONFIG_IEEE80211_CRYPT_CCMP=y CONFIG_IEEE80211_CRYPT_TKIP=y # # Device Drivers # # # Generic Driver Options # CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=y # # Connector - unified userspace <-> kernelspace linker # # CONFIG_CONNECTOR is not set # # Memory Technology Devices (MTD) # # CONFIG_MTD is not set # # Parallel port support # # CONFIG_PARPORT is not set # # Plug and Play support # CONFIG_PNP=y # CONFIG_PNP_DEBUG is not set # # Protocols # CONFIG_ISAPNP=y CONFIG_PNPBIOS=y # CONFIG_PNPBIOS_PROC_FS is not set CONFIG_PNPACPI=y # # Block devices # # CONFIG_BLK_DEV_FD is not set # CONFIG_BLK_DEV_XD is not set # CONFIG_BLK_CPQ_DA is not set # CONFIG_BLK_CPQ_CISS_DA is not set # CONFIG_BLK_DEV_DAC960 is not set # CONFIG_BLK_DEV_UMEM is not set # CONFIG_BLK_DEV_COW_COMMON is not set CONFIG_BLK_DEV_LOOP=y # CONFIG_BLK_DEV_CRYPTOLOOP is not set # CONFIG_BLK_DEV_NBD is not set CONFIG_BLK_DEV_SX8=y # CONFIG_BLK_DEV_UB is not set CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM_COUNT=16 CONFIG_BLK_DEV_RAM_SIZE=2048 CONFIG_BLK_DEV_INITRD=y # CONFIG_LBD is not set # CONFIG_CDROM_PKTCDVD is not set # # IO Schedulers # CONFIG_IOSCHED_NOOP=y # CONFIG_IOSCHED_AS is not set CONFIG_IOSCHED_DEADLINE=y # CONFIG_IOSCHED_CFQ is not set # CONFIG_ATA_OVER_ETH is not set # # ATA/ATAPI/MFM/RLL support # CONFIG_IDE=y CONFIG_BLK_DEV_IDE=y # # Please see Documentation/ide.txt for help/info on IDE drives # # CONFIG_BLK_DEV_IDE_SATA is not set # CONFIG_BLK_DEV_HD_IDE is not set CONFIG_BLK_DEV_IDEDISK=y # CONFIG_IDEDISK_MULTI_MODE is not set CONFIG_BLK_DEV_IDECD=y # CONFIG_BLK_DEV_IDETAPE is not set # CONFIG_BLK_DEV_IDEFLOPPY is not set # CONFIG_BLK_DEV_IDESCSI is not set # CONFIG_IDE_TASK_IOCTL is not set # # IDE chipset support/bugfixes # CONFIG_IDE_GENERIC=y CONFIG_BLK_DEV_CMD640=y CONFIG_BLK_DEV_CMD640_ENHANCED=y CONFIG_BLK_DEV_IDEPNP=y CONFIG_BLK_DEV_IDEPCI=y CONFIG_IDEPCI_SHARE_IRQ=y # CONFIG_BLK_DEV_OFFBOARD is not set CONFIG_BLK_DEV_GENERIC=y CONFIG_BLK_DEV_OPTI621=y CONFIG_BLK_DEV_RZ1000=y CONFIG_BLK_DEV_IDEDMA_PCI=y # CONFIG_BLK_DEV_IDEDMA_FORCED is not set CONFIG_IDEDMA_PCI_AUTO=y # CONFIG_IDEDMA_ONLYDISK is not set CONFIG_BLK_DEV_AEC62XX=y CONFIG_BLK_DEV_ALI15X3=y # CONFIG_WDC_ALI15X3 is not set CONFIG_BLK_DEV_AMD74XX=y CONFIG_BLK_DEV_ATIIXP=y CONFIG_BLK_DEV_CMD64X=y CONFIG_BLK_DEV_TRIFLEX=y CONFIG_BLK_DEV_CY82C693=y # CONFIG_BLK_DEV_CS5520 is not set CONFIG_BLK_DEV_CS5530=y CONFIG_BLK_DEV_HPT34X=y # CONFIG_HPT34X_AUTODMA is not set CONFIG_BLK_DEV_HPT366=y # CONFIG_BLK_DEV_SC1200 is not set CONFIG_BLK_DEV_PIIX=y CONFIG_BLK_DEV_IT821X=y CONFIG_BLK_DEV_NS87415=y CONFIG_BLK_DEV_PDC202XX_OLD=y # CONFIG_PDC202XX_BURST is not set CONFIG_BLK_DEV_PDC202XX_NEW=y # CONFIG_PDC202XX_FORCE is not set # CONFIG_BLK_DEV_SVWKS is not set CONFIG_BLK_DEV_SIIMAGE=y CONFIG_BLK_DEV_SIS5513=y CONFIG_BLK_DEV_SLC90E66=y # CONFIG_BLK_DEV_TRM290 is not set CONFIG_BLK_DEV_VIA82CXXX=y # CONFIG_IDE_ARM is not set # CONFIG_IDE_CHIPSETS is not set CONFIG_BLK_DEV_IDEDMA=y # CONFIG_IDEDMA_IVB is not set CONFIG_IDEDMA_AUTO=y # CONFIG_BLK_DEV_HD is not set # # SCSI device support # # CONFIG_RAID_ATTRS is not set CONFIG_SCSI=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 is not set CONFIG_CHR_DEV_SG=y # CONFIG_CHR_DEV_SCH is not set # # Some SCSI devices (e.g. CD jukebox) support multiple LUNs # CONFIG_SCSI_MULTI_LUN=y # CONFIG_SCSI_CONSTANTS is not set # CONFIG_SCSI_LOGGING is not set # # SCSI Transport Attributes # CONFIG_SCSI_SPI_ATTRS=y # CONFIG_SCSI_FC_ATTRS is not set # CONFIG_SCSI_ISCSI_ATTRS is not set # CONFIG_SCSI_SAS_ATTRS is not set # # SCSI low-level drivers # # CONFIG_BLK_DEV_3W_XXXX_RAID is not set # CONFIG_SCSI_3W_9XXX is not set # CONFIG_SCSI_7000FASST is not set # CONFIG_SCSI_ACARD is not set # CONFIG_SCSI_AHA152X is not set # CONFIG_SCSI_AHA1542 is not set # CONFIG_SCSI_AACRAID is not set CONFIG_SCSI_AIC7XXX=y CONFIG_AIC7XXX_CMDS_PER_DEVICE=253 CONFIG_AIC7XXX_RESET_DELAY_MS=15000 # CONFIG_AIC7XXX_DEBUG_ENABLE is not set CONFIG_AIC7XXX_DEBUG_MASK=0 # CONFIG_AIC7XXX_REG_PRETTY_PRINT is not set # CONFIG_SCSI_AIC7XXX_OLD is not set # CONFIG_SCSI_AIC79XX is not set # CONFIG_SCSI_DPT_I2O is not set # CONFIG_SCSI_IN2000 is not set # CONFIG_MEGARAID_NEWGEN is not set # CONFIG_MEGARAID_LEGACY is not set # CONFIG_MEGARAID_SAS is not set CONFIG_SCSI_SATA=y CONFIG_SCSI_SATA_AHCI=y CONFIG_SCSI_SATA_SVW=y CONFIG_SCSI_ATA_PIIX=y CONFIG_SCSI_SATA_MV=y CONFIG_SCSI_SATA_NV=y CONFIG_SCSI_SATA_PROMISE=y CONFIG_SCSI_SATA_QSTOR=y CONFIG_SCSI_SATA_SX4=y CONFIG_SCSI_SATA_SIL=y CONFIG_SCSI_SATA_SIS=y CONFIG_SCSI_SATA_ULI=y CONFIG_SCSI_SATA_VIA=y CONFIG_SCSI_SATA_VITESSE=y CONFIG_SCSI_SATA_INTEL_COMBINED=y CONFIG_SCSI_BUSLOGIC=y # CONFIG_SCSI_OMIT_FLASHPOINT is not set # CONFIG_SCSI_DMX3191D is not set # CONFIG_SCSI_DTC3280 is not set # CONFIG_SCSI_EATA is not set # CONFIG_SCSI_FUTURE_DOMAIN is not set # CONFIG_SCSI_GDTH is not set # CONFIG_SCSI_GENERIC_NCR5380 is not set # CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set # CONFIG_SCSI_IPS is not set # CONFIG_SCSI_INITIO is not set # CONFIG_SCSI_INIA100 is not set # CONFIG_SCSI_NCR53C406A is not set CONFIG_SCSI_SYM53C8XX_2=y CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 # CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set # CONFIG_SCSI_IPR is not set # CONFIG_SCSI_PAS16 is not set # CONFIG_SCSI_PSI240I is not set # CONFIG_SCSI_QLOGIC_FAS is not set # CONFIG_SCSI_QLOGIC_FC is not set # CONFIG_SCSI_QLOGIC_1280 is not set CONFIG_SCSI_QLA2XXX=y # CONFIG_SCSI_QLA21XX is not set # CONFIG_SCSI_QLA22XX is not set # CONFIG_SCSI_QLA2300 is not set # CONFIG_SCSI_QLA2322 is not set # CONFIG_SCSI_QLA6312 is not set # CONFIG_SCSI_QLA24XX is not set # CONFIG_SCSI_LPFC is not set # CONFIG_SCSI_SYM53C416 is not set # CONFIG_SCSI_DC395x is not set CONFIG_SCSI_DC390T=y # CONFIG_SCSI_T128 is not set # CONFIG_SCSI_U14_34F is not set # CONFIG_SCSI_ULTRASTOR is not set # CONFIG_SCSI_NSP32 is not set # CONFIG_SCSI_DEBUG is not set # # Old CD-ROM drivers (not SCSI, not IDE) # # CONFIG_CD_NO_IDESCSI is not set # # Multi-device support (RAID and LVM) # # CONFIG_MD is not set # # Fusion MPT device support # # CONFIG_FUSION is not set # CONFIG_FUSION_SPI is not set # CONFIG_FUSION_FC is not set # CONFIG_FUSION_SAS is not set # # IEEE 1394 (FireWire) support # CONFIG_IEEE1394=y # # Subsystem Options # # CONFIG_IEEE1394_VERBOSEDEBUG is not set # CONFIG_IEEE1394_OUI_DB is not set # CONFIG_IEEE1394_EXTRA_CONFIG_ROMS is not set # CONFIG_IEEE1394_EXPORT_FULL_API is not set # # Device Drivers # CONFIG_IEEE1394_PCILYNX=y CONFIG_IEEE1394_OHCI1394=y # # Protocol Drivers # # CONFIG_IEEE1394_VIDEO1394 is not set CONFIG_IEEE1394_SBP2=y # CONFIG_IEEE1394_SBP2_PHYS_DMA is not set # CONFIG_IEEE1394_ETH1394 is not set # CONFIG_IEEE1394_DV1394 is not set # CONFIG_IEEE1394_RAWIO is not set # CONFIG_IEEE1394_CMP is not set # # I2O device support # # CONFIG_I2O is not set # # Network device support # CONFIG_NETDEVICES=y # CONFIG_DUMMY is not set # CONFIG_BONDING is not set # CONFIG_EQUALIZER is not set # CONFIG_TUN is not set # CONFIG_NET_SB1000 is not set # # ARCnet devices # # CONFIG_ARCNET is not set # # PHY device support # # CONFIG_PHYLIB is not set # # Ethernet (10 or 100Mbit) # CONFIG_NET_ETHERNET=y CONFIG_MII=y # CONFIG_HAPPYMEAL is not set # CONFIG_SUNGEM is not set # CONFIG_CASSINI is not set CONFIG_NET_VENDOR_3COM=y CONFIG_EL1=y CONFIG_EL2=y CONFIG_ELPLUS=y CONFIG_EL16=y CONFIG_EL3=y # CONFIG_3C515 is not set CONFIG_VORTEX=y CONFIG_TYPHOON=y # CONFIG_LANCE is not set CONFIG_NET_VENDOR_SMC=y CONFIG_WD80x3=m CONFIG_ULTRA=m # CONFIG_SMC9194 is not set # CONFIG_NET_VENDOR_RACAL is not set # # Tulip family network device support # CONFIG_NET_TULIP=y # CONFIG_DE2104X is not set CONFIG_TULIP=y # CONFIG_TULIP_MWI is not set # CONFIG_TULIP_MMIO is not set # CONFIG_TULIP_NAPI is not set CONFIG_DE4X5=y # CONFIG_WINBOND_840 is not set # CONFIG_DM9102 is not set # CONFIG_ULI526X is not set # CONFIG_AT1700 is not set # CONFIG_DEPCA is not set # CONFIG_HP100 is not set # CONFIG_NET_ISA is not set CONFIG_NET_PCI=y CONFIG_PCNET32=y CONFIG_AMD8111_ETH=y # CONFIG_AMD8111E_NAPI is not set CONFIG_ADAPTEC_STARFIRE=y # CONFIG_ADAPTEC_STARFIRE_NAPI is not set # CONFIG_AC3200 is not set # CONFIG_APRICOT is not set CONFIG_B44=y CONFIG_FORCEDETH=y # CONFIG_CS89x0 is not set # CONFIG_DGRS is not set CONFIG_EEPRO100=y # CONFIG_E100 is not set # CONFIG_FEALNX is not set CONFIG_NATSEMI=y CONFIG_NE2K_PCI=y CONFIG_8139CP=y CONFIG_8139TOO=y # CONFIG_8139TOO_PIO is not set CONFIG_8139TOO_TUNE_TWISTER=y CONFIG_8139TOO_8129=y # CONFIG_8139_OLD_RX_RESET is not set CONFIG_SIS900=y CONFIG_EPIC100=y # CONFIG_SUNDANCE is not set # CONFIG_TLAN is not set CONFIG_VIA_RHINE=y # CONFIG_VIA_RHINE_MMIO is not set # # Ethernet (1000 Mbit) # CONFIG_ACENIC=y CONFIG_ACENIC_OMIT_TIGON_I=y # CONFIG_DL2K is not set CONFIG_E1000=y # CONFIG_E1000_NAPI is not set # CONFIG_NS83820 is not set # CONFIG_HAMACHI is not set # CONFIG_YELLOWFIN is not set CONFIG_R8169=y # CONFIG_R8169_NAPI is not set CONFIG_SIS190=y # CONFIG_SKGE is not set CONFIG_SK98LIN=y CONFIG_VIA_VELOCITY=y CONFIG_TIGON3=y # CONFIG_BNX2 is not set # # Ethernet (10000 Mbit) # # CONFIG_CHELSIO_T1 is not set # CONFIG_IXGB is not set # CONFIG_S2IO is not set # # Token Ring devices # # CONFIG_TR is not set # # Wireless LAN (non-hamradio) # CONFIG_NET_RADIO=y # # Obsolete Wireless cards support (pre-802.11) # # CONFIG_STRIP is not set # CONFIG_ARLAN is not set # CONFIG_WAVELAN is not set # # Wireless 802.11b ISA/PCI cards support # CONFIG_IPW2100=m # CONFIG_IPW2100_MONITOR is not set # CONFIG_IPW_DEBUG is not set CONFIG_IPW2200=m CONFIG_AIRO=y CONFIG_HERMES=y CONFIG_PLX_HERMES=y CONFIG_TMD_HERMES=y CONFIG_NORTEL_HERMES=y CONFIG_PCI_HERMES=y CONFIG_ATMEL=y CONFIG_PCI_ATMEL=y # # Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support # CONFIG_PRISM54=y # CONFIG_HOSTAP is not set CONFIG_NET_WIRELESS=y # # Wan interfaces # # CONFIG_WAN is not set # CONFIG_FDDI is not set # CONFIG_HIPPI is not set # CONFIG_PPP is not set # CONFIG_SLIP is not set # CONFIG_NET_FC is not set # CONFIG_SHAPER is not set # CONFIG_NETCONSOLE is not set # CONFIG_NETPOLL is not set # CONFIG_NET_POLL_CONTROLLER is not set # # ISDN subsystem # # CONFIG_ISDN is not set # # Telephony Support # # CONFIG_PHONE is not set # # Input device support # CONFIG_INPUT=y # # Userland interfaces # # CONFIG_INPUT_MOUSEDEV is not set CONFIG_INPUT_JOYDEV=y # CONFIG_INPUT_TSDEV is not set # CONFIG_INPUT_EVDEV is not set # 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_INPUT_MOUSE is not set CONFIG_INPUT_JOYSTICK=y # CONFIG_JOYSTICK_ANALOG is not set # CONFIG_JOYSTICK_A3D is not set # CONFIG_JOYSTICK_ADI is not set # CONFIG_JOYSTICK_COBRA is not set # CONFIG_JOYSTICK_GF2K is not set CONFIG_JOYSTICK_GRIP=y # CONFIG_JOYSTICK_GRIP_MP is not set # CONFIG_JOYSTICK_GUILLEMOT is not set # CONFIG_JOYSTICK_INTERACT is not set CONFIG_JOYSTICK_SIDEWINDER=y # CONFIG_JOYSTICK_TMDC is not set # CONFIG_JOYSTICK_IFORCE is not set # CONFIG_JOYSTICK_WARRIOR is not set # CONFIG_JOYSTICK_MAGELLAN is not set # CONFIG_JOYSTICK_SPACEORB is not set # CONFIG_JOYSTICK_SPACEBALL is not set # CONFIG_JOYSTICK_STINGER is not set # CONFIG_JOYSTICK_TWIDJOY is not set # CONFIG_JOYSTICK_JOYDUMP is not set # CONFIG_INPUT_TOUCHSCREEN is not set # CONFIG_INPUT_MISC is not set # # Hardware I/O ports # CONFIG_SERIO=y CONFIG_SERIO_I8042=y # CONFIG_SERIO_SERPORT is not set # CONFIG_SERIO_CT82C710 is not set # CONFIG_SERIO_PCIPS2 is not set CONFIG_SERIO_LIBPS2=y # CONFIG_SERIO_RAW is not set CONFIG_GAMEPORT=y CONFIG_GAMEPORT_NS558=y # CONFIG_GAMEPORT_L4 is not set CONFIG_GAMEPORT_EMU10K1=y # CONFIG_GAMEPORT_FM801 is not set # # Character devices # CONFIG_VT=y CONFIG_VT_CONSOLE=y CONFIG_HW_CONSOLE=y # CONFIG_SERIAL_NONSTANDARD is not set # # Serial drivers # CONFIG_SERIAL_8250=m # CONFIG_SERIAL_8250_ACPI is not set CONFIG_SERIAL_8250_NR_UARTS=4 # CONFIG_SERIAL_8250_EXTENDED is not set # # Non-8250 serial port support # CONFIG_SERIAL_CORE=m # CONFIG_SERIAL_JSM is not set # CONFIG_UNIX98_PTYS is not set CONFIG_LEGACY_PTYS=y CONFIG_LEGACY_PTY_COUNT=256 # # IPMI # # CONFIG_IPMI_HANDLER is not set # # Watchdog Cards # # CONFIG_WATCHDOG is not set # CONFIG_HW_RANDOM is not set # CONFIG_NVRAM is not set CONFIG_RTC=y # CONFIG_DTLK is not set # CONFIG_R3964 is not set # CONFIG_APPLICOM is not set # CONFIG_SONYPI is not set # # Ftape, the floppy tape device driver # # CONFIG_FTAPE is not set # CONFIG_AGP is not set # CONFIG_DRM is not set # CONFIG_MWAVE is not set # CONFIG_RAW_DRIVER is not set # CONFIG_HPET is not set # CONFIG_HANGCHECK_TIMER is not set # # TPM devices # # CONFIG_TCG_TPM is not set # # I2C support # CONFIG_I2C=y # CONFIG_I2C_CHARDEV is not set # # I2C Algorithms # CONFIG_I2C_ALGOBIT=y # CONFIG_I2C_ALGOPCF is not set # CONFIG_I2C_ALGOPCA is not set # # I2C Hardware Bus support # # 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_ELEKTOR is not set # CONFIG_I2C_I801 is not set # CONFIG_I2C_I810 is not set # CONFIG_I2C_PIIX4 is not set # CONFIG_I2C_NFORCE2 is not set # CONFIG_I2C_PARPORT_LIGHT is not set # CONFIG_I2C_PROSAVAGE is not set # CONFIG_I2C_SAVAGE4 is not set # CONFIG_SCx200_ACB is not set # CONFIG_I2C_SIS5595 is not set # CONFIG_I2C_SIS630 is not set # CONFIG_I2C_SIS96X is not set # CONFIG_I2C_STUB is not set # CONFIG_I2C_VIA is not set # CONFIG_I2C_VIAPRO is not set # CONFIG_I2C_VOODOO3 is not set # CONFIG_I2C_PCA_ISA is not set # # Miscellaneous I2C Chip support # # CONFIG_SENSORS_DS1337 is not set # CONFIG_SENSORS_DS1374 is not set # CONFIG_SENSORS_EEPROM is not set # CONFIG_SENSORS_PCF8574 is not set # CONFIG_SENSORS_PCA9539 is not set # CONFIG_SENSORS_PCF8591 is not set # CONFIG_SENSORS_RTC8564 is not set # CONFIG_SENSORS_MAX6875 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 # # Dallas's 1-wire bus # # CONFIG_W1 is not set # # Hardware Monitoring support # # CONFIG_HWMON is not set # CONFIG_HWMON_VID is not set # # Misc devices # # CONFIG_IBM_ASM is not set # # Multimedia Capabilities Port drivers # # # Multimedia devices # CONFIG_VIDEO_DEV=y # # Video For Linux # # # Video Adapters # CONFIG_VIDEO_BT848=m # CONFIG_VIDEO_SAA6588 is not set # CONFIG_VIDEO_PMS is not set # CONFIG_VIDEO_CPIA is not set # CONFIG_VIDEO_SAA5246A is not set # CONFIG_VIDEO_SAA5249 is not set # CONFIG_TUNER_3036 is not set # CONFIG_VIDEO_STRADIS is not set # CONFIG_VIDEO_ZORAN is not set CONFIG_VIDEO_SAA7134=m CONFIG_VIDEO_SAA7134_DVB=m # CONFIG_VIDEO_MXB is not set # CONFIG_VIDEO_DPC is not set # CONFIG_VIDEO_HEXIUM_ORION is not set # CONFIG_VIDEO_HEXIUM_GEMINI is not set CONFIG_VIDEO_CX88=m CONFIG_VIDEO_CX88_DVB=m # CONFIG_VIDEO_OVCAMCHIP is not set # # Radio Adapters # # CONFIG_RADIO_CADET is not set # CONFIG_RADIO_RTRACK is not set # CONFIG_RADIO_RTRACK2 is not set # CONFIG_RADIO_AZTECH is not set # CONFIG_RADIO_GEMTEK is not set # CONFIG_RADIO_GEMTEK_PCI is not set # CONFIG_RADIO_MAXIRADIO is not set # CONFIG_RADIO_MAESTRO is not set # CONFIG_RADIO_SF16FMI is not set # CONFIG_RADIO_SF16FMR2 is not set # CONFIG_RADIO_TERRATEC is not set # CONFIG_RADIO_TRUST is not set # CONFIG_RADIO_TYPHOON is not set # CONFIG_RADIO_ZOLTRIX is not set # # Digital Video Broadcasting Devices # CONFIG_DVB=y CONFIG_DVB_CORE=y # # Supported SAA7146 based PCI Adapters # CONFIG_DVB_AV7110=m # CONFIG_DVB_AV7110_OSD is not set CONFIG_DVB_BUDGET=m CONFIG_DVB_BUDGET_CI=m CONFIG_DVB_BUDGET_AV=m # CONFIG_DVB_BUDGET_PATCH is not set # # Supported USB Adapters # CONFIG_DVB_USB=m # CONFIG_DVB_USB_DEBUG is not set CONFIG_DVB_USB_A800=m CONFIG_DVB_USB_DIBUSB_MB=m CONFIG_DVB_USB_DIBUSB_MC=m CONFIG_DVB_USB_UMT_010=m CONFIG_DVB_USB_CXUSB=m CONFIG_DVB_USB_DIGITV=m CONFIG_DVB_USB_VP7045=m CONFIG_DVB_USB_VP702X=m CONFIG_DVB_USB_NOVA_T_USB2=m CONFIG_DVB_USB_DTT200U=m CONFIG_DVB_TTUSB_BUDGET=m CONFIG_DVB_TTUSB_DEC=m CONFIG_DVB_CINERGYT2=m # CONFIG_DVB_CINERGYT2_TUNING is not set # # Supported FlexCopII (B2C2) Adapters # CONFIG_DVB_B2C2_FLEXCOP=m CONFIG_DVB_B2C2_FLEXCOP_PCI=m CONFIG_DVB_B2C2_FLEXCOP_USB=m # CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set # # Supported BT878 Adapters # CONFIG_DVB_BT8XX=m # # Supported Pluto2 Adapters # CONFIG_DVB_PLUTO2=m # # Supported DVB Frontends # # # Customise DVB Frontends # # # DVB-S (satellite) frontends # CONFIG_DVB_STV0299=m CONFIG_DVB_CX24110=m CONFIG_DVB_TDA8083=m CONFIG_DVB_TDA80XX=m CONFIG_DVB_MT312=m CONFIG_DVB_VES1X93=m CONFIG_DVB_S5H1420=m # # DVB-T (terrestrial) frontends # CONFIG_DVB_SP8870=m CONFIG_DVB_SP887X=m CONFIG_DVB_CX22700=m CONFIG_DVB_CX22702=m CONFIG_DVB_L64781=m CONFIG_DVB_TDA1004X=m CONFIG_DVB_NXT6000=m CONFIG_DVB_MT352=m CONFIG_DVB_DIB3000MB=m CONFIG_DVB_DIB3000MC=m # # DVB-C (cable) frontends # CONFIG_DVB_ATMEL_AT76C651=m CONFIG_DVB_VES1820=m CONFIG_DVB_TDA10021=m CONFIG_DVB_STV0297=m # # ATSC (North American/Korean Terresterial DTV) frontends # CONFIG_DVB_NXT2002=m CONFIG_DVB_OR51211=m CONFIG_DVB_OR51132=m CONFIG_DVB_BCM3510=m CONFIG_DVB_LGDT330X=m CONFIG_VIDEO_SAA7146=m CONFIG_VIDEO_SAA7146_VV=m CONFIG_VIDEO_VIDEOBUF=m CONFIG_VIDEO_TUNER=m CONFIG_VIDEO_BUF=m CONFIG_VIDEO_BUF_DVB=m CONFIG_VIDEO_BTCX=m CONFIG_VIDEO_IR=m CONFIG_VIDEO_TVEEPROM=m # # Graphics support # CONFIG_FB=y CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y CONFIG_FB_SOFT_CURSOR=y # CONFIG_FB_MACMODES is not set # CONFIG_FB_MODE_HELPERS is not set # CONFIG_FB_TILEBLITTING is not set # 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_VESA=y CONFIG_VIDEO_SELECT=y # CONFIG_FB_HGA is not set # CONFIG_FB_NVIDIA is not set # CONFIG_FB_RIVA is not set # CONFIG_FB_I810 is not set # CONFIG_FB_INTEL is not set # CONFIG_FB_MATROX is not set # CONFIG_FB_RADEON_OLD is not set # CONFIG_FB_RADEON is not set # CONFIG_FB_ATY128 is not set # CONFIG_FB_ATY is not set # CONFIG_FB_SAVAGE is not set # CONFIG_FB_SIS 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_CYBLA is not set # CONFIG_FB_TRIDENT is not set # CONFIG_FB_GEODE is not set # CONFIG_FB_S1D13XXX is not set # CONFIG_FB_VIRTUAL is not set # # Console display driver support # CONFIG_VGA_CONSOLE=y # CONFIG_MDA_CONSOLE is not set CONFIG_DUMMY_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y # CONFIG_FONTS is not set CONFIG_FONT_8x8=y CONFIG_FONT_8x16=y # # Logo configuration # # CONFIG_LOGO is not set # CONFIG_BACKLIGHT_LCD_SUPPORT is not set # # Bootsplash configuration # CONFIG_BOOTSPLASH=y # # Sound # CONFIG_SOUND=y # # Advanced Linux Sound Architecture # CONFIG_SND=y CONFIG_SND_TIMER=y CONFIG_SND_PCM=y CONFIG_SND_HWDEP=y CONFIG_SND_RAWMIDI=y # CONFIG_SND_SEQUENCER is not set # CONFIG_SND_MIXER_OSS is not set # CONFIG_SND_PCM_OSS is not set # CONFIG_SND_RTCTIMER is not set # CONFIG_SND_VERBOSE_PRINTK is not set # CONFIG_SND_DEBUG is not set CONFIG_SND_GENERIC_DRIVER=y # # Generic devices # CONFIG_SND_MPU401_UART=y CONFIG_SND_OPL3_LIB=y CONFIG_SND_OPL4_LIB=m CONFIG_SND_VX_LIB=y # CONFIG_SND_DUMMY is not set # CONFIG_SND_MTPAV is not set # CONFIG_SND_SERIAL_U16550 is not set # CONFIG_SND_MPU401 is not set # # ISA devices # CONFIG_SND_AD1848_LIB=m CONFIG_SND_CS4231_LIB=m CONFIG_SND_AD1816A=m CONFIG_SND_AD1848=m CONFIG_SND_CS4231=m CONFIG_SND_CS4232=m CONFIG_SND_CS4236=m CONFIG_SND_ES968=m CONFIG_SND_ES1688=m CONFIG_SND_ES18XX=m CONFIG_SND_GUS_SYNTH=m CONFIG_SND_GUSCLASSIC=m CONFIG_SND_GUSEXTREME=m CONFIG_SND_GUSMAX=m CONFIG_SND_INTERWAVE=m CONFIG_SND_INTERWAVE_STB=m CONFIG_SND_OPTI92X_AD1848=m CONFIG_SND_OPTI92X_CS4231=m CONFIG_SND_OPTI93X=m CONFIG_SND_SB8=m CONFIG_SND_SB16=m CONFIG_SND_SBAWE=m CONFIG_SND_SB16_CSP=y CONFIG_SND_WAVEFRONT=m CONFIG_SND_ALS100=m CONFIG_SND_AZT2320=m CONFIG_SND_CMI8330=m CONFIG_SND_DT019X=m CONFIG_SND_OPL3SA2=m CONFIG_SND_SGALAXY=m CONFIG_SND_SSCAPE=m CONFIG_SND_AC97_CODEC=y CONFIG_SND_AC97_BUS=y # # PCI devices # CONFIG_SND_ALI5451=y CONFIG_SND_ATIIXP=y # CONFIG_SND_ATIIXP_MODEM is not set CONFIG_SND_AU8810=y CONFIG_SND_AU8820=y CONFIG_SND_AU8830=y CONFIG_SND_AZT3328=y # CONFIG_SND_BT87X is not set CONFIG_SND_CS46XX=y CONFIG_SND_CS46XX_NEW_DSP=y CONFIG_SND_CS4281=y CONFIG_SND_EMU10K1=y CONFIG_SND_EMU10K1X=y CONFIG_SND_CA0106=y # CONFIG_SND_KORG1212 is not set # CONFIG_SND_MIXART is not set CONFIG_SND_NM256=y # CONFIG_SND_RME32 is not set # CONFIG_SND_RME96 is not set # CONFIG_SND_RME9652 is not set # CONFIG_SND_HDSP is not set # CONFIG_SND_HDSPM is not set CONFIG_SND_TRIDENT=y CONFIG_SND_YMFPCI=y CONFIG_SND_AD1889=y CONFIG_SND_ALS4000=y CONFIG_SND_CMIPCI=y CONFIG_SND_ENS1370=y CONFIG_SND_ENS1371=y CONFIG_SND_ES1938=y CONFIG_SND_ES1968=y CONFIG_SND_MAESTRO3=y CONFIG_SND_FM801=y # CONFIG_SND_FM801_TEA575X is not set CONFIG_SND_ICE1712=y CONFIG_SND_ICE1724=y CONFIG_SND_INTEL8X0=y CONFIG_SND_INTEL8X0M=y CONFIG_SND_SONICVIBES=y CONFIG_SND_VIA82XX=y # CONFIG_SND_VIA82XX_MODEM is not set CONFIG_SND_VX222=y CONFIG_SND_HDA_INTEL=y # # USB devices # # CONFIG_SND_USB_AUDIO is not set # CONFIG_SND_USB_USX2Y is not set # # Open Sound System # # CONFIG_SOUND_PRIME is not set # # USB support # CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB_ARCH_HAS_OHCI=y CONFIG_USB=y # CONFIG_USB_DEBUG is not set # # Miscellaneous USB options # CONFIG_USB_DEVICEFS=y # CONFIG_USB_BANDWIDTH is not set # CONFIG_USB_DYNAMIC_MINORS is not set # CONFIG_USB_SUSPEND is not set # CONFIG_USB_OTG is not set # # USB Host Controller Drivers # CONFIG_USB_EHCI_HCD=y # CONFIG_USB_EHCI_SPLIT_ISO is not set # CONFIG_USB_EHCI_ROOT_HUB_TT is not set # CONFIG_USB_ISP116X_HCD is not set CONFIG_USB_OHCI_HCD=y # CONFIG_USB_OHCI_BIG_ENDIAN is not set CONFIG_USB_OHCI_LITTLE_ENDIAN=y CONFIG_USB_UHCI_HCD=y # CONFIG_USB_SL811_HCD is not set # # USB Device Class drivers # # CONFIG_OBSOLETE_OSS_USB_DRIVER is not set # CONFIG_USB_BLUETOOTH_TTY is not set # CONFIG_USB_ACM is not set # CONFIG_USB_PRINTER is not set # # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 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=y CONFIG_USB_STORAGE_FREECOM=y CONFIG_USB_STORAGE_ISD200=y CONFIG_USB_STORAGE_DPCM=y CONFIG_USB_STORAGE_USBAT=y CONFIG_USB_STORAGE_SDDR09=y CONFIG_USB_STORAGE_SDDR55=y CONFIG_USB_STORAGE_JUMPSHOT=y # # USB Input Devices # CONFIG_USB_HID=y CONFIG_USB_HIDINPUT=y # CONFIG_HID_FF is not set # CONFIG_USB_HIDDEV is not set # CONFIG_USB_AIPTEK is not set # CONFIG_USB_WACOM is not set # CONFIG_USB_ACECAD is not set # CONFIG_USB_KBTAB is not set # CONFIG_USB_POWERMATE is not set # CONFIG_USB_MTOUCH is not set # CONFIG_USB_ITMTOUCH is not set # CONFIG_USB_EGALAX is not set # CONFIG_USB_YEALINK is not set CONFIG_USB_XPAD=y # CONFIG_USB_ATI_REMOTE is not set # CONFIG_USB_KEYSPAN_REMOTE is not set # CONFIG_USB_APPLETOUCH is not set # # USB Imaging devices # # CONFIG_USB_MDC800 is not set # CONFIG_USB_MICROTEK is not set # # USB Multimedia devices # # CONFIG_USB_DABUSB is not set # CONFIG_USB_VICAM is not set # CONFIG_USB_DSBR is not set # CONFIG_USB_IBMCAM is not set # CONFIG_USB_KONICAWC is not set # CONFIG_USB_OV511 is not set # CONFIG_USB_SE401 is not set # CONFIG_USB_SN9C102 is not set # CONFIG_USB_STV680 is not set # CONFIG_USB_PWC is not set # # USB Network Adapters # # CONFIG_USB_CATC is not set # CONFIG_USB_KAWETH is not set CONFIG_USB_PEGASUS=y CONFIG_USB_RTL8150=y # CONFIG_USB_USBNET is not set # CONFIG_USB_ZD1201 is not set # CONFIG_USB_MON is not set # # USB port drivers # # # USB Serial Converter support # # CONFIG_USB_SERIAL is not set # # USB Miscellaneous drivers # # CONFIG_USB_EMI62 is not set # CONFIG_USB_EMI26 is not set # CONFIG_USB_AUERSWALD is not set # CONFIG_USB_RIO500 is not set # CONFIG_USB_LEGOTOWER is not set # CONFIG_USB_LCD is not set # CONFIG_USB_LED is not set # CONFIG_USB_CYTHERM is not set # CONFIG_USB_PHIDGETKIT is not set # CONFIG_USB_PHIDGETSERVO is not set # CONFIG_USB_IDMOUSE is not set # CONFIG_USB_SISUSBVGA is not set # CONFIG_USB_LD is not set # CONFIG_USB_TEST is not set # # USB DSL modem support # # # USB Gadget Support # # CONFIG_USB_GADGET is not set # # MMC/SD Card support # # CONFIG_MMC is not set # # InfiniBand support # # CONFIG_INFINIBAND is not set # # SN Devices # # # File systems # CONFIG_EXT2_FS=y # CONFIG_EXT2_FS_XATTR is not set # CONFIG_EXT2_FS_XIP is not set CONFIG_EXT3_FS=y # CONFIG_EXT3_FS_XATTR is not set CONFIG_JBD=y # CONFIG_JBD_DEBUG is not set CONFIG_REISERFS_FS=y # CONFIG_REISERFS_CHECK is not set # CONFIG_REISERFS_PROC_INFO is not set # CONFIG_REISERFS_FS_XATTR is not set # CONFIG_JFS_FS is not set # CONFIG_FS_POSIX_ACL is not set # CONFIG_XFS_FS is not set # CONFIG_MINIX_FS is not set # CONFIG_ROMFS_FS is not set # CONFIG_INOTIFY is not set # CONFIG_QUOTA is not set # CONFIG_DNOTIFY is not set # CONFIG_AUTOFS_FS is not set # CONFIG_AUTOFS4_FS is not set CONFIG_FUSE_FS=y # # CD-ROM/DVD Filesystems # CONFIG_ISO9660_FS=y CONFIG_JOLIET=y CONFIG_ZISOFS=y CONFIG_ZISOFS_FS=y CONFIG_UDF_FS=y CONFIG_UDF_NLS=y # # DOS/FAT/NT Filesystems # CONFIG_FAT_FS=y # CONFIG_MSDOS_FS is not set CONFIG_VFAT_FS=y CONFIG_FAT_DEFAULT_CODEPAGE=850 CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" CONFIG_NTFS_FS=y # CONFIG_NTFS_DEBUG is not set # CONFIG_NTFS_RW is not set # # Pseudo filesystems # CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y CONFIG_SYSFS=y # CONFIG_TMPFS is not set # CONFIG_HUGETLBFS is not set # CONFIG_HUGETLB_PAGE is not set CONFIG_RAMFS=y # CONFIG_RELAYFS_FS is not set # # Miscellaneous filesystems # # CONFIG_ADFS_FS is not set # CONFIG_AFFS_FS is not set CONFIG_HFS_FS=y CONFIG_HFSPLUS_FS=y # 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_HPFS_FS is not set # CONFIG_QNX4FS_FS is not set # CONFIG_SYSV_FS is not set CONFIG_UFS_FS=y # CONFIG_UFS_FS_WRITE is not set # # Network File Systems # CONFIG_NFS_FS=y # CONFIG_NFS_V3 is not set # CONFIG_NFS_V4 is not set # CONFIG_NFS_DIRECTIO is not set # CONFIG_NFSD is not set CONFIG_LOCKD=y CONFIG_NFS_COMMON=y CONFIG_SUNRPC=y # CONFIG_RPCSEC_GSS_KRB5 is not set # CONFIG_RPCSEC_GSS_SPKM3 is not set CONFIG_SMB_FS=y # CONFIG_SMB_NLS_DEFAULT is not set CONFIG_CIFS=y # CONFIG_CIFS_STATS is not set # CONFIG_CIFS_XATTR is not set # CONFIG_CIFS_EXPERIMENTAL is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set # CONFIG_9P_FS is not set # # Partition Types # CONFIG_PARTITION_ADVANCED=y # CONFIG_ACORN_PARTITION is not set # CONFIG_OSF_PARTITION is not set # CONFIG_AMIGA_PARTITION is not set # CONFIG_ATARI_PARTITION is not set CONFIG_MAC_PARTITION=y CONFIG_MSDOS_PARTITION=y # CONFIG_BSD_DISKLABEL is not set # CONFIG_MINIX_SUBPARTITION is not set # CONFIG_SOLARIS_X86_PARTITION is not set # CONFIG_UNIXWARE_DISKLABEL is not set # CONFIG_LDM_PARTITION is not set # CONFIG_SGI_PARTITION is not set # CONFIG_ULTRIX_PARTITION is not set # CONFIG_SUN_PARTITION is not set # CONFIG_EFI_PARTITION is not set # # Native Language Support # CONFIG_NLS=y CONFIG_NLS_DEFAULT="utf8" # CONFIG_NLS_CODEPAGE_437 is not set # CONFIG_NLS_CODEPAGE_737 is not set # CONFIG_NLS_CODEPAGE_775 is not set CONFIG_NLS_CODEPAGE_850=y # CONFIG_NLS_CODEPAGE_852 is not set # CONFIG_NLS_CODEPAGE_855 is not set # CONFIG_NLS_CODEPAGE_857 is not set # CONFIG_NLS_CODEPAGE_860 is not set # CONFIG_NLS_CODEPAGE_861 is not set # CONFIG_NLS_CODEPAGE_862 is not set # CONFIG_NLS_CODEPAGE_863 is not set # CONFIG_NLS_CODEPAGE_864 is not set # CONFIG_NLS_CODEPAGE_865 is not set # CONFIG_NLS_CODEPAGE_866 is not set # CONFIG_NLS_CODEPAGE_869 is not set # CONFIG_NLS_CODEPAGE_936 is not set # CONFIG_NLS_CODEPAGE_950 is not set # CONFIG_NLS_CODEPAGE_932 is not set # CONFIG_NLS_CODEPAGE_949 is not set # CONFIG_NLS_CODEPAGE_874 is not set # CONFIG_NLS_ISO8859_8 is not set # CONFIG_NLS_CODEPAGE_1250 is not set # CONFIG_NLS_CODEPAGE_1251 is not set # CONFIG_NLS_ASCII is not set CONFIG_NLS_ISO8859_1=y # CONFIG_NLS_ISO8859_2 is not set # CONFIG_NLS_ISO8859_3 is not set # CONFIG_NLS_ISO8859_4 is not set # CONFIG_NLS_ISO8859_5 is not set # CONFIG_NLS_ISO8859_6 is not set # CONFIG_NLS_ISO8859_7 is not set # CONFIG_NLS_ISO8859_9 is not set # CONFIG_NLS_ISO8859_13 is not set # CONFIG_NLS_ISO8859_14 is not set # CONFIG_NLS_ISO8859_15 is not set # CONFIG_NLS_KOI8_R is not set # CONFIG_NLS_KOI8_U is not set CONFIG_NLS_UTF8=y # # Profiling support # # CONFIG_PROFILING is not set # # Kernel hacking # # CONFIG_PRINTK_TIME is not set # CONFIG_DEBUG_KERNEL is not set CONFIG_LOG_BUF_SHIFT=14 # CONFIG_DEBUG_BUGVERBOSE is not set CONFIG_EARLY_PRINTK=y CONFIG_X86_FIND_SMP_CONFIG=y CONFIG_X86_MPPARSE=y # # Security options # # CONFIG_KEYS is not set # CONFIG_SECURITY is not set # # Cryptographic options # CONFIG_CRYPTO=y # CONFIG_CRYPTO_HMAC is not set # CONFIG_CRYPTO_NULL is not set # CONFIG_CRYPTO_MD4 is not set # CONFIG_CRYPTO_MD5 is not set # CONFIG_CRYPTO_SHA1 is not set # CONFIG_CRYPTO_SHA256 is not set # CONFIG_CRYPTO_SHA512 is not set # CONFIG_CRYPTO_WP512 is not set # CONFIG_CRYPTO_TGR192 is not set # CONFIG_CRYPTO_DES is not set # CONFIG_CRYPTO_BLOWFISH is not set # CONFIG_CRYPTO_TWOFISH is not set # CONFIG_CRYPTO_SERPENT is not set CONFIG_CRYPTO_AES=y # CONFIG_CRYPTO_AES_586 is not set # CONFIG_CRYPTO_CAST5 is not set # CONFIG_CRYPTO_CAST6 is not set # CONFIG_CRYPTO_TEA is not set CONFIG_CRYPTO_ARC4=y # CONFIG_CRYPTO_KHAZAD is not set # CONFIG_CRYPTO_ANUBIS is not set # CONFIG_CRYPTO_DEFLATE is not set CONFIG_CRYPTO_MICHAEL_MIC=y # CONFIG_CRYPTO_CRC32C is not set # CONFIG_CRYPTO_TEST is not set # # Hardware crypto devices # # CONFIG_CRYPTO_DEV_PADLOCK is not set # # Library routines # CONFIG_CRC_CCITT=y # CONFIG_CRC16 is not set CONFIG_CRC32=y # CONFIG_LIBCRC32C is not set CONFIG_ZLIB_INFLATE=y CONFIG_GENERIC_HARDIRQS=y CONFIG_GENERIC_IRQ_PROBE=y CONFIG_X86_BIOS_REBOOT=y geexbox-0.98.7/packages/linux/config/linux.ppc.conf0000644000175000017500000010231510335100772021233 0ustar aurelaurel# # Automatically generated make config: don't edit # Linux kernel version: 2.6.14 # CONFIG_MMU=y CONFIG_GENERIC_HARDIRQS=y CONFIG_RWSEM_XCHGADD_ALGORITHM=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_PPC=y CONFIG_PPC32=y CONFIG_GENERIC_NVRAM=y CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y CONFIG_ARCH_MAY_HAVE_PC_FDC=y # # Code maturity level options # CONFIG_EXPERIMENTAL=y CONFIG_CLEAN_COMPILE=y CONFIG_BROKEN_ON_SMP=y CONFIG_INIT_ENV_ARG_LIMIT=32 # # General setup # CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set # CONFIG_SWAP is not set # CONFIG_SYSVIPC is not set # CONFIG_POSIX_MQUEUE is not set # CONFIG_BSD_PROCESS_ACCT is not set CONFIG_SYSCTL=y # CONFIG_AUDIT is not set CONFIG_HOTPLUG=y # CONFIG_KOBJECT_UEVENT is not set # CONFIG_IKCONFIG is not set CONFIG_INITRAMFS_SOURCE="" CONFIG_EMBEDDED=y # CONFIG_KALLSYMS is not set CONFIG_PRINTK=y CONFIG_BUG=y CONFIG_BASE_FULL=y # CONFIG_FUTEX is not set # CONFIG_EPOLL is not set CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_SHMEM=y CONFIG_CC_ALIGN_FUNCTIONS=0 CONFIG_CC_ALIGN_LABELS=0 CONFIG_CC_ALIGN_LOOPS=0 CONFIG_CC_ALIGN_JUMPS=0 # CONFIG_TINY_SHMEM is not set CONFIG_BASE_SMALL=0 # # Loadable module support # CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y # CONFIG_MODULE_FORCE_UNLOAD is not set CONFIG_OBSOLETE_MODPARM=y # CONFIG_MODVERSIONS is not set # CONFIG_MODULE_SRCVERSION_ALL is not set # CONFIG_KMOD is not set # # Processor # CONFIG_6xx=y # CONFIG_40x is not set # CONFIG_44x is not set # CONFIG_POWER3 is not set # CONFIG_POWER4 is not set # CONFIG_8xx is not set # CONFIG_E200 is not set # CONFIG_E500 is not set CONFIG_PPC_FPU=y CONFIG_ALTIVEC=y # CONFIG_TAU is not set # CONFIG_KEXEC is not set CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_TABLE=y # CONFIG_CPU_FREQ_DEBUG is not set # CONFIG_CPU_FREQ_STAT is not set CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set CONFIG_CPU_FREQ_GOV_PERFORMANCE=y # CONFIG_CPU_FREQ_GOV_POWERSAVE is not set # CONFIG_CPU_FREQ_GOV_USERSPACE is not set # CONFIG_CPU_FREQ_GOV_ONDEMAND is not set CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y CONFIG_CPU_FREQ_PMAC=y # CONFIG_PPC601_SYNC_FIX is not set # CONFIG_WANT_EARLY_SERIAL is not set CONFIG_PPC_STD_MMU=y # # Platform options # CONFIG_PPC_MULTIPLATFORM=y # CONFIG_APUS is not set # CONFIG_KATANA is not set # CONFIG_WILLOW is not set # CONFIG_CPCI690 is not set # CONFIG_POWERPMC250 is not set # CONFIG_CHESTNUT is not set # CONFIG_SPRUCE is not set # CONFIG_HDPU is not set # CONFIG_EV64260 is not set # CONFIG_LOPEC is not set # CONFIG_MVME5100 is not set # CONFIG_PPLUS is not set # CONFIG_PRPMC750 is not set # CONFIG_PRPMC800 is not set # CONFIG_SANDPOINT is not set # CONFIG_RADSTONE_PPC7D is not set # CONFIG_PAL4 is not set # CONFIG_GEMINI is not set # CONFIG_EST8260 is not set # CONFIG_SBC82xx is not set # CONFIG_SBS8260 is not set # CONFIG_RPX8260 is not set # CONFIG_TQM8260 is not set # CONFIG_ADS8272 is not set # CONFIG_PQ2FADS is not set # CONFIG_LITE5200 is not set # CONFIG_MPC834x_SYS is not set # CONFIG_EV64360 is not set CONFIG_PPC_CHRP=y CONFIG_PPC_PMAC=y CONFIG_PPC_PREP=y CONFIG_PPC_OF=y CONFIG_PPCBUG_NVRAM=y # CONFIG_SMP is not set # CONFIG_HIGHMEM is not set # CONFIG_HZ_100 is not set # CONFIG_HZ_250 is not set CONFIG_HZ_1000=y CONFIG_HZ=1000 CONFIG_PREEMPT_NONE=y # CONFIG_PREEMPT_VOLUNTARY is not set # CONFIG_PREEMPT is not set 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 is not set CONFIG_BINFMT_ELF=y # CONFIG_BINFMT_MISC is not set # CONFIG_PROC_DEVICETREE is not set # CONFIG_PREP_RESIDUAL is not set # CONFIG_CMDLINE_BOOL is not set CONFIG_PM=y # CONFIG_PM_DEBUG is not set # CONFIG_SOFTWARE_SUSPEND is not set # CONFIG_SECCOMP is not set CONFIG_ISA_DMA_API=y # # Bus options # # CONFIG_ISA is not set CONFIG_GENERIC_ISA_DMA=y CONFIG_PCI=y CONFIG_PCI_DOMAINS=y CONFIG_PCI_LEGACY_PROC=y # # PCCARD (PCMCIA/CardBus) support # # CONFIG_PCCARD is not set # # Advanced setup # # CONFIG_ADVANCED_OPTIONS is not set # # Default settings for advanced configuration options are used # CONFIG_HIGHMEM_START=0xfe000000 CONFIG_LOWMEM_SIZE=0x30000000 CONFIG_KERNEL_START=0xc0000000 CONFIG_TASK_SIZE=0x80000000 CONFIG_BOOT_LOAD=0x00800000 # # Networking # CONFIG_NET=y # # Networking options # CONFIG_PACKET=y # CONFIG_PACKET_MMAP is not set CONFIG_UNIX=y # CONFIG_NET_KEY is not set CONFIG_INET=y # CONFIG_IP_MULTICAST is not set # CONFIG_IP_ADVANCED_ROUTER is not set CONFIG_IP_FIB_HASH=y # CONFIG_IP_PNP is not set # CONFIG_NET_IPIP is not set # CONFIG_NET_IPGRE 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_TUNNEL is not set # CONFIG_INET_DIAG is not set # CONFIG_TCP_CONG_ADVANCED is not set CONFIG_TCP_CONG_BIC=y # CONFIG_IPV6 is not set # CONFIG_NETFILTER is not set # # DCCP Configuration (EXPERIMENTAL) # # CONFIG_IP_DCCP is not set # # SCTP Configuration (EXPERIMENTAL) # # CONFIG_IP_SCTP is not set # CONFIG_ATM is not set # CONFIG_BRIDGE 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_NET_DIVERT is not set # CONFIG_ECONET is not set # CONFIG_WAN_ROUTER is not set # CONFIG_NET_SCHED is not set # CONFIG_NET_CLS_ROUTE is not set # # Network testing # # CONFIG_NET_PKTGEN is not set # CONFIG_HAMRADIO is not set # CONFIG_IRDA is not set # CONFIG_BT is not set CONFIG_IEEE80211=y # CONFIG_IEEE80211_DEBUG is not set CONFIG_IEEE80211_CRYPT_WEP=y CONFIG_IEEE80211_CRYPT_CCMP=y CONFIG_IEEE80211_CRYPT_TKIP=y # # Device Drivers # # # Generic Driver Options # CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=y # # Connector - unified userspace <-> kernelspace linker # # CONFIG_CONNECTOR is not set # # Memory Technology Devices (MTD) # # CONFIG_MTD is not set # # Parallel port support # # CONFIG_PARPORT is not set # # Plug and Play support # # # Block devices # # CONFIG_BLK_DEV_FD is not set # CONFIG_MAC_FLOPPY is not set # CONFIG_BLK_CPQ_DA is not set # CONFIG_BLK_CPQ_CISS_DA is not set # CONFIG_BLK_DEV_DAC960 is not set # CONFIG_BLK_DEV_UMEM is not set # CONFIG_BLK_DEV_COW_COMMON is not set CONFIG_BLK_DEV_LOOP=y # CONFIG_BLK_DEV_CRYPTOLOOP is not set # CONFIG_BLK_DEV_NBD is not set CONFIG_BLK_DEV_SX8=y # CONFIG_BLK_DEV_UB is not set CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM_COUNT=16 CONFIG_BLK_DEV_RAM_SIZE=2048 CONFIG_BLK_DEV_INITRD=y # CONFIG_LBD is not set # CONFIG_CDROM_PKTCDVD is not set # # IO Schedulers # CONFIG_IOSCHED_NOOP=y # CONFIG_IOSCHED_AS is not set CONFIG_IOSCHED_DEADLINE=y # CONFIG_IOSCHED_CFQ is not set # CONFIG_ATA_OVER_ETH is not set # # ATA/ATAPI/MFM/RLL support # CONFIG_IDE=y CONFIG_BLK_DEV_IDE=y # # Please see Documentation/ide.txt for help/info on IDE drives # # CONFIG_BLK_DEV_IDE_SATA is not set CONFIG_BLK_DEV_IDEDISK=y # CONFIG_IDEDISK_MULTI_MODE is not set CONFIG_BLK_DEV_IDECD=y # CONFIG_BLK_DEV_IDETAPE is not set # CONFIG_BLK_DEV_IDEFLOPPY is not set # CONFIG_BLK_DEV_IDESCSI is not set # CONFIG_IDE_TASK_IOCTL is not set # # IDE chipset support/bugfixes # CONFIG_IDE_GENERIC=y CONFIG_BLK_DEV_IDEPCI=y CONFIG_IDEPCI_SHARE_IRQ=y # CONFIG_BLK_DEV_OFFBOARD is not set CONFIG_BLK_DEV_GENERIC=y CONFIG_BLK_DEV_OPTI621=y # CONFIG_BLK_DEV_SL82C105 is not set CONFIG_BLK_DEV_IDEDMA_PCI=y # CONFIG_BLK_DEV_IDEDMA_FORCED is not set CONFIG_IDEDMA_PCI_AUTO=y # CONFIG_IDEDMA_ONLYDISK is not set CONFIG_BLK_DEV_AEC62XX=y CONFIG_BLK_DEV_ALI15X3=y # CONFIG_WDC_ALI15X3 is not set # CONFIG_BLK_DEV_AMD74XX is not set CONFIG_BLK_DEV_CMD64X=y CONFIG_BLK_DEV_TRIFLEX=y CONFIG_BLK_DEV_CY82C693=y # CONFIG_BLK_DEV_CS5520 is not set CONFIG_BLK_DEV_CS5530=y CONFIG_BLK_DEV_HPT34X=y # CONFIG_HPT34X_AUTODMA is not set CONFIG_BLK_DEV_HPT366=y # CONFIG_BLK_DEV_SC1200 is not set CONFIG_BLK_DEV_PIIX=y CONFIG_BLK_DEV_IT821X=y CONFIG_BLK_DEV_NS87415=y CONFIG_BLK_DEV_PDC202XX_OLD=y # CONFIG_PDC202XX_BURST is not set CONFIG_BLK_DEV_PDC202XX_NEW=y # CONFIG_PDC202XX_FORCE is not set # CONFIG_BLK_DEV_SVWKS is not set CONFIG_BLK_DEV_SIIMAGE=y CONFIG_BLK_DEV_SLC90E66=y # CONFIG_BLK_DEV_TRM290 is not set CONFIG_BLK_DEV_VIA82CXXX=y CONFIG_BLK_DEV_IDE_PMAC=y CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y CONFIG_BLK_DEV_IDEDMA_PMAC=y # CONFIG_BLK_DEV_IDE_PMAC_BLINK is not set # CONFIG_IDE_ARM is not set CONFIG_BLK_DEV_IDEDMA=y # CONFIG_IDEDMA_IVB is not set CONFIG_IDEDMA_AUTO=y # CONFIG_BLK_DEV_HD is not set # # SCSI device support # # CONFIG_RAID_ATTRS is not set CONFIG_SCSI=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 is not set CONFIG_CHR_DEV_SG=y # CONFIG_CHR_DEV_SCH is not set # # Some SCSI devices (e.g. CD jukebox) support multiple LUNs # CONFIG_SCSI_MULTI_LUN=y # CONFIG_SCSI_CONSTANTS is not set # CONFIG_SCSI_LOGGING is not set # # SCSI Transport Attributes # CONFIG_SCSI_SPI_ATTRS=y # CONFIG_SCSI_FC_ATTRS is not set # CONFIG_SCSI_ISCSI_ATTRS is not set # CONFIG_SCSI_SAS_ATTRS is not set # # SCSI low-level drivers # # CONFIG_BLK_DEV_3W_XXXX_RAID is not set # CONFIG_SCSI_3W_9XXX is not set # CONFIG_SCSI_ACARD is not set # CONFIG_SCSI_AACRAID is not set CONFIG_SCSI_AIC7XXX=y CONFIG_AIC7XXX_CMDS_PER_DEVICE=253 CONFIG_AIC7XXX_RESET_DELAY_MS=15000 # CONFIG_AIC7XXX_DEBUG_ENABLE is not set CONFIG_AIC7XXX_DEBUG_MASK=0 # CONFIG_AIC7XXX_REG_PRETTY_PRINT is not set # CONFIG_SCSI_AIC7XXX_OLD is not set # CONFIG_SCSI_AIC79XX is not set # CONFIG_SCSI_DPT_I2O is not set # CONFIG_MEGARAID_NEWGEN is not set # CONFIG_MEGARAID_LEGACY is not set # CONFIG_MEGARAID_SAS is not set CONFIG_SCSI_SATA=y CONFIG_SCSI_SATA_AHCI=y CONFIG_SCSI_SATA_SVW=y CONFIG_SCSI_ATA_PIIX=y CONFIG_SCSI_SATA_MV=y CONFIG_SCSI_SATA_NV=y CONFIG_SCSI_SATA_PROMISE=y CONFIG_SCSI_SATA_QSTOR=y CONFIG_SCSI_SATA_SX4=y CONFIG_SCSI_SATA_SIL=y CONFIG_SCSI_SATA_SIS=y CONFIG_SCSI_SATA_ULI=y CONFIG_SCSI_SATA_VIA=y CONFIG_SCSI_SATA_VITESSE=y CONFIG_SCSI_SATA_INTEL_COMBINED=y CONFIG_SCSI_BUSLOGIC=y # CONFIG_SCSI_OMIT_FLASHPOINT is not set # CONFIG_SCSI_DMX3191D is not set # CONFIG_SCSI_EATA is not set # CONFIG_SCSI_FUTURE_DOMAIN is not set # CONFIG_SCSI_GDTH is not set # CONFIG_SCSI_IPS is not set # CONFIG_SCSI_INITIO is not set # CONFIG_SCSI_INIA100 is not set CONFIG_SCSI_SYM53C8XX_2=y CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 # CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set # CONFIG_SCSI_IPR is not set # CONFIG_SCSI_QLOGIC_FC is not set # CONFIG_SCSI_QLOGIC_1280 is not set CONFIG_SCSI_QLA2XXX=y # CONFIG_SCSI_QLA21XX is not set # CONFIG_SCSI_QLA22XX is not set # CONFIG_SCSI_QLA2300 is not set # CONFIG_SCSI_QLA2322 is not set # CONFIG_SCSI_QLA6312 is not set # CONFIG_SCSI_QLA24XX is not set # CONFIG_SCSI_LPFC is not set # CONFIG_SCSI_DC395x is not set CONFIG_SCSI_DC390T=y # CONFIG_SCSI_NSP32 is not set # CONFIG_SCSI_DEBUG is not set # CONFIG_SCSI_MESH is not set # CONFIG_SCSI_MAC53C94 is not set # # Multi-device support (RAID and LVM) # # CONFIG_MD is not set # # Fusion MPT device support # # CONFIG_FUSION is not set # CONFIG_FUSION_SPI is not set # CONFIG_FUSION_FC is not set # CONFIG_FUSION_SAS is not set # # IEEE 1394 (FireWire) support # CONFIG_IEEE1394=y # # Subsystem Options # # CONFIG_IEEE1394_VERBOSEDEBUG is not set # CONFIG_IEEE1394_OUI_DB is not set # CONFIG_IEEE1394_EXTRA_CONFIG_ROMS is not set # CONFIG_IEEE1394_EXPORT_FULL_API is not set # # Device Drivers # CONFIG_IEEE1394_PCILYNX=y CONFIG_IEEE1394_OHCI1394=y # # Protocol Drivers # # CONFIG_IEEE1394_VIDEO1394 is not set CONFIG_IEEE1394_SBP2=y # CONFIG_IEEE1394_SBP2_PHYS_DMA is not set # CONFIG_IEEE1394_ETH1394 is not set # CONFIG_IEEE1394_DV1394 is not set # CONFIG_IEEE1394_RAWIO is not set # CONFIG_IEEE1394_CMP is not set # # I2O device support # # CONFIG_I2O is not set # # Macintosh device drivers # CONFIG_ADB=y CONFIG_ADB_CUDA=y CONFIG_ADB_PMU=y # CONFIG_PMAC_APM_EMU is not set CONFIG_PMAC_MEDIABAY=y # CONFIG_PMAC_BACKLIGHT is not set # CONFIG_ADB_MACIO is not set CONFIG_INPUT_ADBHID=y # CONFIG_MAC_EMUMOUSEBTN is not set # CONFIG_THERM_WINDTUNNEL is not set # CONFIG_THERM_ADT746X is not set # CONFIG_ANSLCD is not set # # Network device support # CONFIG_NETDEVICES=y # CONFIG_DUMMY is not set # CONFIG_BONDING is not set # CONFIG_EQUALIZER is not set # CONFIG_TUN is not set # # ARCnet devices # # CONFIG_ARCNET is not set # # PHY device support # # CONFIG_PHYLIB is not set # # Ethernet (10 or 100Mbit) # CONFIG_NET_ETHERNET=y CONFIG_MII=y CONFIG_MACE=y # CONFIG_MACE_AAUI_PORT is not set CONFIG_BMAC=y CONFIG_HAPPYMEAL=y CONFIG_SUNGEM=y CONFIG_CASSINI=y CONFIG_NET_VENDOR_3COM=y CONFIG_VORTEX=y CONFIG_TYPHOON=y # # Tulip family network device support # CONFIG_NET_TULIP=y # CONFIG_DE2104X is not set CONFIG_TULIP=y # CONFIG_TULIP_MWI is not set # CONFIG_TULIP_MMIO is not set # CONFIG_TULIP_NAPI is not set CONFIG_DE4X5=y # CONFIG_WINBOND_840 is not set # CONFIG_DM9102 is not set # CONFIG_ULI526X is not set # CONFIG_HP100 is not set CONFIG_NET_PCI=y CONFIG_PCNET32=y CONFIG_AMD8111_ETH=y # CONFIG_AMD8111E_NAPI is not set CONFIG_ADAPTEC_STARFIRE=y # CONFIG_ADAPTEC_STARFIRE_NAPI is not set CONFIG_B44=y CONFIG_FORCEDETH=y # CONFIG_DGRS is not set CONFIG_EEPRO100=y # CONFIG_E100 is not set # CONFIG_FEALNX is not set CONFIG_NATSEMI=y CONFIG_NE2K_PCI=y CONFIG_8139CP=y CONFIG_8139TOO=y # CONFIG_8139TOO_PIO is not set CONFIG_8139TOO_TUNE_TWISTER=y CONFIG_8139TOO_8129=y # CONFIG_8139_OLD_RX_RESET is not set CONFIG_SIS900=y CONFIG_EPIC100=y # CONFIG_SUNDANCE is not set # CONFIG_TLAN is not set CONFIG_VIA_RHINE=y # CONFIG_VIA_RHINE_MMIO is not set # # Ethernet (1000 Mbit) # CONFIG_ACENIC=y CONFIG_ACENIC_OMIT_TIGON_I=y # CONFIG_DL2K is not set CONFIG_E1000=y # CONFIG_E1000_NAPI is not set # CONFIG_NS83820 is not set # CONFIG_HAMACHI is not set # CONFIG_YELLOWFIN is not set CONFIG_R8169=y # CONFIG_R8169_NAPI is not set CONFIG_SIS190=y # CONFIG_SKGE is not set CONFIG_SK98LIN=y CONFIG_VIA_VELOCITY=y CONFIG_TIGON3=y CONFIG_BNX2=y # CONFIG_MV643XX_ETH is not set # # Ethernet (10000 Mbit) # # CONFIG_CHELSIO_T1 is not set # CONFIG_IXGB is not set # CONFIG_S2IO is not set # # Token Ring devices # # CONFIG_TR is not set # # Wireless LAN (non-hamradio) # CONFIG_NET_RADIO=y # # Obsolete Wireless cards support (pre-802.11) # # CONFIG_STRIP is not set # # Wireless 802.11b ISA/PCI cards support # CONFIG_IPW2100=m # CONFIG_IPW2100_MONITOR is not set # CONFIG_IPW_DEBUG is not set CONFIG_IPW2200=m CONFIG_AIRO=y CONFIG_HERMES=y # CONFIG_APPLE_AIRPORT is not set CONFIG_PLX_HERMES=y CONFIG_TMD_HERMES=y CONFIG_NORTEL_HERMES=y CONFIG_PCI_HERMES=y CONFIG_ATMEL=y CONFIG_PCI_ATMEL=y # # Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support # CONFIG_PRISM54=y # CONFIG_HOSTAP is not set CONFIG_NET_WIRELESS=y # # Wan interfaces # # CONFIG_WAN is not set # CONFIG_FDDI is not set # CONFIG_HIPPI is not set # CONFIG_PPP is not set # CONFIG_SLIP is not set # CONFIG_NET_FC is not set # CONFIG_SHAPER is not set # CONFIG_NETCONSOLE is not set # CONFIG_NETPOLL is not set # CONFIG_NET_POLL_CONTROLLER is not set # # ISDN subsystem # # CONFIG_ISDN is not set # # Telephony Support # # CONFIG_PHONE is not set # # Input device support # CONFIG_INPUT=y # # Userland interfaces # # CONFIG_INPUT_MOUSEDEV is not set CONFIG_INPUT_JOYDEV=y # CONFIG_INPUT_TSDEV is not set # CONFIG_INPUT_EVDEV is not set # 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_INPUT_MOUSE is not set CONFIG_INPUT_JOYSTICK=y # CONFIG_JOYSTICK_ANALOG is not set # CONFIG_JOYSTICK_A3D is not set # CONFIG_JOYSTICK_ADI is not set # CONFIG_JOYSTICK_COBRA is not set # CONFIG_JOYSTICK_GF2K is not set CONFIG_JOYSTICK_GRIP=y # CONFIG_JOYSTICK_GRIP_MP is not set # CONFIG_JOYSTICK_GUILLEMOT is not set # CONFIG_JOYSTICK_INTERACT is not set CONFIG_JOYSTICK_SIDEWINDER=y # CONFIG_JOYSTICK_TMDC is not set # CONFIG_JOYSTICK_IFORCE is not set # CONFIG_JOYSTICK_WARRIOR is not set # CONFIG_JOYSTICK_MAGELLAN is not set # CONFIG_JOYSTICK_SPACEORB is not set # CONFIG_JOYSTICK_SPACEBALL is not set # CONFIG_JOYSTICK_STINGER is not set # CONFIG_JOYSTICK_TWIDJOY is not set # CONFIG_JOYSTICK_JOYDUMP is not set # CONFIG_INPUT_TOUCHSCREEN is not set # CONFIG_INPUT_MISC is not set # # Hardware I/O ports # CONFIG_SERIO=y # CONFIG_SERIO_I8042 is not set # CONFIG_SERIO_SERPORT is not set # CONFIG_SERIO_PCIPS2 is not set CONFIG_SERIO_LIBPS2=y # CONFIG_SERIO_RAW is not set CONFIG_GAMEPORT=y CONFIG_GAMEPORT_NS558=y # CONFIG_GAMEPORT_L4 is not set CONFIG_GAMEPORT_EMU10K1=y # CONFIG_GAMEPORT_FM801 is not set # # Character devices # CONFIG_VT=y CONFIG_VT_CONSOLE=y CONFIG_HW_CONSOLE=y # CONFIG_SERIAL_NONSTANDARD is not set # # Serial drivers # CONFIG_SERIAL_8250=m CONFIG_SERIAL_8250_NR_UARTS=4 # CONFIG_SERIAL_8250_EXTENDED is not set # # Non-8250 serial port support # CONFIG_SERIAL_CORE=m # CONFIG_SERIAL_PMACZILOG is not set # CONFIG_SERIAL_JSM is not set # CONFIG_UNIX98_PTYS is not set CONFIG_LEGACY_PTYS=y CONFIG_LEGACY_PTY_COUNT=256 # # IPMI # # CONFIG_IPMI_HANDLER is not set # # Watchdog Cards # # CONFIG_WATCHDOG is not set # CONFIG_NVRAM is not set # CONFIG_GEN_RTC is not set # CONFIG_DTLK is not set # CONFIG_R3964 is not set # CONFIG_APPLICOM is not set # # Ftape, the floppy tape device driver # # CONFIG_AGP is not set # CONFIG_DRM is not set # CONFIG_RAW_DRIVER is not set # # TPM devices # # CONFIG_TCG_TPM is not set # # I2C support # CONFIG_I2C=y # CONFIG_I2C_CHARDEV is not set # # I2C Algorithms # CONFIG_I2C_ALGOBIT=y # CONFIG_I2C_ALGOPCF is not set # CONFIG_I2C_ALGOPCA is not set # # I2C Hardware Bus support # # 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_HYDRA is not set # CONFIG_I2C_I801 is not set # CONFIG_I2C_I810 is not set # CONFIG_I2C_PIIX4 is not set CONFIG_I2C_KEYWEST=y # CONFIG_I2C_MPC is not set # CONFIG_I2C_NFORCE2 is not set # CONFIG_I2C_PARPORT_LIGHT is not set # CONFIG_I2C_PROSAVAGE is not set # CONFIG_I2C_SAVAGE4 is not set # CONFIG_SCx200_ACB is not set # CONFIG_I2C_SIS5595 is not set # CONFIG_I2C_SIS630 is not set # CONFIG_I2C_SIS96X is not set # CONFIG_I2C_STUB is not set # CONFIG_I2C_VIA is not set # CONFIG_I2C_VIAPRO is not set # CONFIG_I2C_VOODOO3 is not set # CONFIG_I2C_PCA_ISA is not set # # Miscellaneous I2C Chip support # # CONFIG_SENSORS_DS1337 is not set # CONFIG_SENSORS_DS1374 is not set # CONFIG_SENSORS_EEPROM is not set # CONFIG_SENSORS_PCF8574 is not set # CONFIG_SENSORS_PCA9539 is not set # CONFIG_SENSORS_PCF8591 is not set # CONFIG_SENSORS_RTC8564 is not set # CONFIG_SENSORS_M41T00 is not set # CONFIG_SENSORS_MAX6875 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 # # Dallas's 1-wire bus # # CONFIG_W1 is not set # # Hardware Monitoring support # # CONFIG_HWMON is not set # CONFIG_HWMON_VID is not set # # Misc devices # # # Multimedia Capabilities Port drivers # # # Multimedia devices # CONFIG_VIDEO_DEV=y # # Video For Linux # # # Video Adapters # CONFIG_VIDEO_BT848=m # CONFIG_VIDEO_SAA6588 is not set # CONFIG_VIDEO_CPIA is not set # CONFIG_VIDEO_SAA5246A is not set # CONFIG_VIDEO_SAA5249 is not set # CONFIG_TUNER_3036 is not set # CONFIG_VIDEO_STRADIS is not set # CONFIG_VIDEO_ZORAN is not set CONFIG_VIDEO_SAA7134=m CONFIG_VIDEO_SAA7134_DVB=m # CONFIG_VIDEO_MXB is not set # CONFIG_VIDEO_DPC is not set # CONFIG_VIDEO_HEXIUM_ORION is not set # CONFIG_VIDEO_HEXIUM_GEMINI is not set CONFIG_VIDEO_CX88=m CONFIG_VIDEO_CX88_DVB=m # CONFIG_VIDEO_OVCAMCHIP is not set # # Radio Adapters # # CONFIG_RADIO_GEMTEK_PCI is not set # CONFIG_RADIO_MAXIRADIO is not set # CONFIG_RADIO_MAESTRO is not set # # Digital Video Broadcasting Devices # CONFIG_DVB=y CONFIG_DVB_CORE=y # # Supported SAA7146 based PCI Adapters # CONFIG_DVB_AV7110=m # CONFIG_DVB_AV7110_OSD is not set CONFIG_DVB_BUDGET=m CONFIG_DVB_BUDGET_CI=m CONFIG_DVB_BUDGET_AV=m # CONFIG_DVB_BUDGET_PATCH is not set # # Supported USB Adapters # CONFIG_DVB_USB=m # CONFIG_DVB_USB_DEBUG is not set CONFIG_DVB_USB_A800=m CONFIG_DVB_USB_DIBUSB_MB=m CONFIG_DVB_USB_DIBUSB_MC=m CONFIG_DVB_USB_UMT_010=m CONFIG_DVB_USB_CXUSB=m CONFIG_DVB_USB_DIGITV=m CONFIG_DVB_USB_VP7045=m CONFIG_DVB_USB_VP702X=m CONFIG_DVB_USB_NOVA_T_USB2=m CONFIG_DVB_USB_DTT200U=m CONFIG_DVB_TTUSB_BUDGET=m CONFIG_DVB_TTUSB_DEC=m CONFIG_DVB_CINERGYT2=m # CONFIG_DVB_CINERGYT2_TUNING is not set # # Supported FlexCopII (B2C2) Adapters # CONFIG_DVB_B2C2_FLEXCOP=m CONFIG_DVB_B2C2_FLEXCOP_PCI=m CONFIG_DVB_B2C2_FLEXCOP_USB=m # CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set # # Supported BT878 Adapters # CONFIG_DVB_BT8XX=m # # Supported Pluto2 Adapters # CONFIG_DVB_PLUTO2=m # # Supported DVB Frontends # # # Customise DVB Frontends # # # DVB-S (satellite) frontends # CONFIG_DVB_STV0299=m CONFIG_DVB_CX24110=m CONFIG_DVB_TDA8083=m CONFIG_DVB_TDA80XX=m CONFIG_DVB_MT312=m CONFIG_DVB_VES1X93=m CONFIG_DVB_S5H1420=m # # DVB-T (terrestrial) frontends # CONFIG_DVB_SP8870=m CONFIG_DVB_SP887X=m CONFIG_DVB_CX22700=m CONFIG_DVB_CX22702=m CONFIG_DVB_L64781=m CONFIG_DVB_TDA1004X=m CONFIG_DVB_NXT6000=m CONFIG_DVB_MT352=m CONFIG_DVB_DIB3000MB=m CONFIG_DVB_DIB3000MC=m # # DVB-C (cable) frontends # CONFIG_DVB_ATMEL_AT76C651=m CONFIG_DVB_VES1820=m CONFIG_DVB_TDA10021=m CONFIG_DVB_STV0297=m # # ATSC (North American/Korean Terresterial DTV) frontends # CONFIG_DVB_NXT2002=m CONFIG_DVB_OR51211=m CONFIG_DVB_OR51132=m CONFIG_DVB_BCM3510=m CONFIG_DVB_LGDT330X=m CONFIG_VIDEO_SAA7146=m CONFIG_VIDEO_SAA7146_VV=m CONFIG_VIDEO_VIDEOBUF=m CONFIG_VIDEO_TUNER=m CONFIG_VIDEO_BUF=m CONFIG_VIDEO_BUF_DVB=m CONFIG_VIDEO_BTCX=m CONFIG_VIDEO_IR=m CONFIG_VIDEO_TVEEPROM=m # # Graphics support # CONFIG_FB=y CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y CONFIG_FB_SOFT_CURSOR=y CONFIG_FB_MACMODES=y CONFIG_FB_MODE_HELPERS=y # CONFIG_FB_TILEBLITTING is not set # CONFIG_FB_CIRRUS is not set # CONFIG_FB_PM2 is not set # CONFIG_FB_CYBER2000 is not set CONFIG_FB_OF=y # CONFIG_FB_CONTROL is not set # CONFIG_FB_PLATINUM is not set # CONFIG_FB_VALKYRIE is not set # CONFIG_FB_CT65550 is not set # CONFIG_FB_ASILIANT is not set # CONFIG_FB_IMSTT is not set # CONFIG_FB_VGA16 is not set # CONFIG_FB_NVIDIA is not set # CONFIG_FB_RIVA is not set # CONFIG_FB_MATROX is not set # CONFIG_FB_RADEON_OLD is not set # CONFIG_FB_RADEON is not set # CONFIG_FB_ATY128 is not set # CONFIG_FB_ATY is not set # CONFIG_FB_SAVAGE is not set # CONFIG_FB_SIS 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_CYBLA is not set # CONFIG_FB_TRIDENT is not set # CONFIG_FB_S1D13XXX is not set # CONFIG_FB_VIRTUAL is not set # # Console display driver support # CONFIG_VGA_CONSOLE=y CONFIG_DUMMY_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y # CONFIG_FONTS is not set CONFIG_FONT_8x8=y CONFIG_FONT_8x16=y # # Logo configuration # # CONFIG_LOGO is not set # CONFIG_BACKLIGHT_LCD_SUPPORT is not set # # Bootsplash configuration # CONFIG_BOOTSPLASH=y # # Sound # CONFIG_SOUND=y # CONFIG_DMASOUND_PMAC is not set # # Advanced Linux Sound Architecture # CONFIG_SND=y CONFIG_SND_TIMER=y CONFIG_SND_PCM=y CONFIG_SND_HWDEP=y CONFIG_SND_RAWMIDI=y # CONFIG_SND_SEQUENCER is not set # CONFIG_SND_MIXER_OSS is not set # CONFIG_SND_PCM_OSS is not set # CONFIG_SND_VERBOSE_PRINTK is not set # CONFIG_SND_DEBUG is not set CONFIG_SND_GENERIC_DRIVER=y # # Generic devices # CONFIG_SND_MPU401_UART=y CONFIG_SND_OPL3_LIB=y CONFIG_SND_VX_LIB=y # CONFIG_SND_DUMMY is not set # CONFIG_SND_MTPAV is not set # CONFIG_SND_SERIAL_U16550 is not set # CONFIG_SND_MPU401 is not set CONFIG_SND_AC97_CODEC=y CONFIG_SND_AC97_BUS=y # # PCI devices # CONFIG_SND_ALI5451=y CONFIG_SND_ATIIXP=y # CONFIG_SND_ATIIXP_MODEM is not set CONFIG_SND_AU8810=y CONFIG_SND_AU8820=y CONFIG_SND_AU8830=y CONFIG_SND_AZT3328=y # CONFIG_SND_BT87X is not set CONFIG_SND_CS46XX=y CONFIG_SND_CS46XX_NEW_DSP=y CONFIG_SND_CS4281=y CONFIG_SND_EMU10K1=y CONFIG_SND_EMU10K1X=y CONFIG_SND_CA0106=y # CONFIG_SND_KORG1212 is not set # CONFIG_SND_MIXART is not set CONFIG_SND_NM256=y # CONFIG_SND_RME32 is not set # CONFIG_SND_RME96 is not set # CONFIG_SND_RME9652 is not set # CONFIG_SND_HDSP is not set # CONFIG_SND_HDSPM is not set CONFIG_SND_TRIDENT=y CONFIG_SND_YMFPCI=y CONFIG_SND_AD1889=y CONFIG_SND_ALS4000=y CONFIG_SND_CMIPCI=y CONFIG_SND_ENS1370=y CONFIG_SND_ENS1371=y CONFIG_SND_ES1938=y CONFIG_SND_ES1968=y CONFIG_SND_MAESTRO3=y CONFIG_SND_FM801=y # CONFIG_SND_FM801_TEA575X is not set CONFIG_SND_ICE1712=y CONFIG_SND_ICE1724=y CONFIG_SND_INTEL8X0=y CONFIG_SND_INTEL8X0M=y CONFIG_SND_SONICVIBES=y CONFIG_SND_VIA82XX=y # CONFIG_SND_VIA82XX_MODEM is not set CONFIG_SND_VX222=y CONFIG_SND_HDA_INTEL=y # # ALSA PowerMac devices # CONFIG_SND_POWERMAC=y CONFIG_SND_POWERMAC_AUTO_DRC=y # # USB devices # # CONFIG_SND_USB_AUDIO is not set # CONFIG_SND_USB_USX2Y is not set # # Open Sound System # # CONFIG_SOUND_PRIME is not set # # USB support # CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB_ARCH_HAS_OHCI=y CONFIG_USB=y # CONFIG_USB_DEBUG is not set # # Miscellaneous USB options # CONFIG_USB_DEVICEFS=y # CONFIG_USB_BANDWIDTH is not set # CONFIG_USB_DYNAMIC_MINORS is not set # CONFIG_USB_SUSPEND is not set # CONFIG_USB_OTG is not set # # USB Host Controller Drivers # CONFIG_USB_EHCI_HCD=y # CONFIG_USB_EHCI_SPLIT_ISO is not set # CONFIG_USB_EHCI_ROOT_HUB_TT is not set # CONFIG_USB_ISP116X_HCD is not set CONFIG_USB_OHCI_HCD=y # CONFIG_USB_OHCI_BIG_ENDIAN is not set CONFIG_USB_OHCI_LITTLE_ENDIAN=y CONFIG_USB_UHCI_HCD=y # CONFIG_USB_SL811_HCD is not set # # USB Device Class drivers # # CONFIG_OBSOLETE_OSS_USB_DRIVER is not set # CONFIG_USB_BLUETOOTH_TTY is not set # CONFIG_USB_ACM is not set # CONFIG_USB_PRINTER is not set # # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 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=y CONFIG_USB_STORAGE_FREECOM=y CONFIG_USB_STORAGE_ISD200=y CONFIG_USB_STORAGE_DPCM=y CONFIG_USB_STORAGE_USBAT=y CONFIG_USB_STORAGE_SDDR09=y CONFIG_USB_STORAGE_SDDR55=y CONFIG_USB_STORAGE_JUMPSHOT=y # # USB Input Devices # CONFIG_USB_HID=y CONFIG_USB_HIDINPUT=y # CONFIG_HID_FF is not set # CONFIG_USB_HIDDEV is not set # CONFIG_USB_AIPTEK is not set # CONFIG_USB_WACOM is not set # CONFIG_USB_ACECAD is not set # CONFIG_USB_KBTAB is not set # CONFIG_USB_POWERMATE is not set # CONFIG_USB_MTOUCH is not set # CONFIG_USB_ITMTOUCH is not set # CONFIG_USB_EGALAX is not set # CONFIG_USB_YEALINK is not set CONFIG_USB_XPAD=y # CONFIG_USB_ATI_REMOTE is not set # CONFIG_USB_KEYSPAN_REMOTE is not set # CONFIG_USB_APPLETOUCH is not set # # USB Imaging devices # # CONFIG_USB_MDC800 is not set # CONFIG_USB_MICROTEK is not set # # USB Multimedia devices # # CONFIG_USB_DABUSB is not set # CONFIG_USB_VICAM is not set # CONFIG_USB_DSBR is not set # CONFIG_USB_IBMCAM is not set # CONFIG_USB_KONICAWC is not set # CONFIG_USB_OV511 is not set # CONFIG_USB_SE401 is not set # CONFIG_USB_SN9C102 is not set # CONFIG_USB_STV680 is not set # CONFIG_USB_PWC is not set # # USB Network Adapters # # CONFIG_USB_CATC is not set # CONFIG_USB_KAWETH is not set CONFIG_USB_PEGASUS=y CONFIG_USB_RTL8150=y # CONFIG_USB_USBNET is not set # CONFIG_USB_ZD1201 is not set # CONFIG_USB_MON is not set # # USB port drivers # # # USB Serial Converter support # # CONFIG_USB_SERIAL is not set # # USB Miscellaneous drivers # # CONFIG_USB_EMI62 is not set # CONFIG_USB_EMI26 is not set # CONFIG_USB_AUERSWALD is not set # CONFIG_USB_RIO500 is not set # CONFIG_USB_LEGOTOWER is not set # CONFIG_USB_LCD is not set # CONFIG_USB_LED is not set # CONFIG_USB_CYTHERM is not set # CONFIG_USB_PHIDGETKIT is not set # CONFIG_USB_PHIDGETSERVO is not set # CONFIG_USB_IDMOUSE is not set # CONFIG_USB_SISUSBVGA is not set # CONFIG_USB_LD is not set # CONFIG_USB_TEST is not set # # USB DSL modem support # # # USB Gadget Support # # CONFIG_USB_GADGET is not set # # MMC/SD Card support # # CONFIG_MMC is not set # # InfiniBand support # # CONFIG_INFINIBAND is not set # # SN Devices # # # File systems # CONFIG_EXT2_FS=y # CONFIG_EXT2_FS_XATTR is not set # CONFIG_EXT2_FS_XIP is not set CONFIG_EXT3_FS=y # CONFIG_EXT3_FS_XATTR is not set CONFIG_JBD=y # CONFIG_JBD_DEBUG is not set CONFIG_REISERFS_FS=y # CONFIG_REISERFS_CHECK is not set # CONFIG_REISERFS_PROC_INFO is not set # CONFIG_REISERFS_FS_XATTR is not set # CONFIG_JFS_FS is not set # CONFIG_FS_POSIX_ACL is not set # CONFIG_XFS_FS is not set # CONFIG_MINIX_FS is not set # CONFIG_ROMFS_FS is not set # CONFIG_INOTIFY is not set # CONFIG_QUOTA is not set # CONFIG_DNOTIFY is not set # CONFIG_AUTOFS_FS is not set # CONFIG_AUTOFS4_FS is not set CONFIG_FUSE_FS=y # # CD-ROM/DVD Filesystems # CONFIG_ISO9660_FS=y CONFIG_JOLIET=y CONFIG_ZISOFS=y CONFIG_ZISOFS_FS=y CONFIG_UDF_FS=y CONFIG_UDF_NLS=y # # DOS/FAT/NT Filesystems # CONFIG_FAT_FS=y # CONFIG_MSDOS_FS is not set CONFIG_VFAT_FS=y CONFIG_FAT_DEFAULT_CODEPAGE=850 CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" CONFIG_NTFS_FS=y # CONFIG_NTFS_DEBUG is not set # CONFIG_NTFS_RW is not set # # Pseudo filesystems # CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y CONFIG_SYSFS=y # CONFIG_TMPFS is not set # CONFIG_HUGETLB_PAGE is not set CONFIG_RAMFS=y # CONFIG_RELAYFS_FS is not set # # Miscellaneous filesystems # # CONFIG_ADFS_FS is not set # CONFIG_AFFS_FS is not set CONFIG_HFS_FS=y CONFIG_HFSPLUS_FS=y # 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_HPFS_FS is not set # CONFIG_QNX4FS_FS is not set # CONFIG_SYSV_FS is not set CONFIG_UFS_FS=y # CONFIG_UFS_FS_WRITE is not set # # Network File Systems # CONFIG_NFS_FS=y # CONFIG_NFS_V3 is not set # CONFIG_NFS_V4 is not set # CONFIG_NFS_DIRECTIO is not set # CONFIG_NFSD is not set CONFIG_LOCKD=y CONFIG_NFS_COMMON=y CONFIG_SUNRPC=y # CONFIG_RPCSEC_GSS_KRB5 is not set # CONFIG_RPCSEC_GSS_SPKM3 is not set CONFIG_SMB_FS=y # CONFIG_SMB_NLS_DEFAULT is not set CONFIG_CIFS=y # CONFIG_CIFS_STATS is not set # CONFIG_CIFS_XATTR is not set # CONFIG_CIFS_EXPERIMENTAL is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set # CONFIG_9P_FS is not set # # Partition Types # CONFIG_PARTITION_ADVANCED=y # CONFIG_ACORN_PARTITION is not set # CONFIG_OSF_PARTITION is not set # CONFIG_AMIGA_PARTITION is not set # CONFIG_ATARI_PARTITION is not set CONFIG_MAC_PARTITION=y CONFIG_MSDOS_PARTITION=y # CONFIG_BSD_DISKLABEL is not set # CONFIG_MINIX_SUBPARTITION is not set # CONFIG_SOLARIS_X86_PARTITION is not set # CONFIG_UNIXWARE_DISKLABEL is not set # CONFIG_LDM_PARTITION is not set # CONFIG_SGI_PARTITION is not set # CONFIG_ULTRIX_PARTITION is not set # CONFIG_SUN_PARTITION is not set # CONFIG_EFI_PARTITION is not set # # Native Language Support # CONFIG_NLS=y CONFIG_NLS_DEFAULT="utf8" # CONFIG_NLS_CODEPAGE_437 is not set # CONFIG_NLS_CODEPAGE_737 is not set # CONFIG_NLS_CODEPAGE_775 is not set CONFIG_NLS_CODEPAGE_850=y # CONFIG_NLS_CODEPAGE_852 is not set # CONFIG_NLS_CODEPAGE_855 is not set # CONFIG_NLS_CODEPAGE_857 is not set # CONFIG_NLS_CODEPAGE_860 is not set # CONFIG_NLS_CODEPAGE_861 is not set # CONFIG_NLS_CODEPAGE_862 is not set # CONFIG_NLS_CODEPAGE_863 is not set # CONFIG_NLS_CODEPAGE_864 is not set # CONFIG_NLS_CODEPAGE_865 is not set # CONFIG_NLS_CODEPAGE_866 is not set # CONFIG_NLS_CODEPAGE_869 is not set # CONFIG_NLS_CODEPAGE_936 is not set # CONFIG_NLS_CODEPAGE_950 is not set # CONFIG_NLS_CODEPAGE_932 is not set # CONFIG_NLS_CODEPAGE_949 is not set # CONFIG_NLS_CODEPAGE_874 is not set # CONFIG_NLS_ISO8859_8 is not set # CONFIG_NLS_CODEPAGE_1250 is not set # CONFIG_NLS_CODEPAGE_1251 is not set # CONFIG_NLS_ASCII is not set CONFIG_NLS_ISO8859_1=y # CONFIG_NLS_ISO8859_2 is not set # CONFIG_NLS_ISO8859_3 is not set # CONFIG_NLS_ISO8859_4 is not set # CONFIG_NLS_ISO8859_5 is not set # CONFIG_NLS_ISO8859_6 is not set # CONFIG_NLS_ISO8859_7 is not set # CONFIG_NLS_ISO8859_9 is not set # CONFIG_NLS_ISO8859_13 is not set # CONFIG_NLS_ISO8859_14 is not set # CONFIG_NLS_ISO8859_15 is not set # CONFIG_NLS_KOI8_R is not set # CONFIG_NLS_KOI8_U is not set CONFIG_NLS_UTF8=y # # Library routines # CONFIG_CRC_CCITT=y # CONFIG_CRC16 is not set CONFIG_CRC32=y # CONFIG_LIBCRC32C is not set CONFIG_ZLIB_INFLATE=y # # Profiling support # # CONFIG_PROFILING is not set # # Kernel hacking # # CONFIG_PRINTK_TIME is not set # CONFIG_DEBUG_KERNEL is not set CONFIG_LOG_BUF_SHIFT=14 # CONFIG_BOOTX_TEXT is not set # # Security options # # CONFIG_KEYS is not set # CONFIG_SECURITY is not set # # Cryptographic options # CONFIG_CRYPTO=y # CONFIG_CRYPTO_HMAC is not set # CONFIG_CRYPTO_NULL is not set # CONFIG_CRYPTO_MD4 is not set # CONFIG_CRYPTO_MD5 is not set # CONFIG_CRYPTO_SHA1 is not set # CONFIG_CRYPTO_SHA256 is not set # CONFIG_CRYPTO_SHA512 is not set # CONFIG_CRYPTO_WP512 is not set # CONFIG_CRYPTO_TGR192 is not set # CONFIG_CRYPTO_DES is not set # CONFIG_CRYPTO_BLOWFISH is not set # CONFIG_CRYPTO_TWOFISH is not set # CONFIG_CRYPTO_SERPENT is not set CONFIG_CRYPTO_AES=y # CONFIG_CRYPTO_CAST5 is not set # CONFIG_CRYPTO_CAST6 is not set # CONFIG_CRYPTO_TEA is not set CONFIG_CRYPTO_ARC4=y # CONFIG_CRYPTO_KHAZAD is not set # CONFIG_CRYPTO_ANUBIS is not set # CONFIG_CRYPTO_DEFLATE is not set CONFIG_CRYPTO_MICHAEL_MIC=y # CONFIG_CRYPTO_CRC32C is not set # CONFIG_CRYPTO_TEST is not set # # Hardware crypto devices # geexbox-0.98.7/packages/linux/config/modules0000644000175000017500000000226310335100772020040 0ustar aurelaurel# Drivers for DXR3/Hollywood+ cards bt865 adv717x pixelport_16bit=0 em8300 # Drivers for Wireless cards ipw2100 ipw2200 rt2400 rt2500 # Drivers for DVB cards ttusb_dec dvb-ttusb-budget dvb-usb-vp7045 dvb-usb-vp702x dvb-usb-umt-010 dvb-usb-nova-t-usb2 dvb-usb-dtt200u dvb-usb-digitv dvb-usb-dibusb-mc dvb-usb-dibusb-mb dvb-usb-cxusb dvb-usb-a800 cinergyT2 b2c2-flexcop-usb # Drivers for PnP ISA sound cards snd-interwave-stb snd-sb16 snd-sbawe snd-sscape # These are modules of some ISA non-PnP devices. # If some of these modules are needed uncomment the line and add correct # parameters for the module. # Drivers for ISA network adapter # wd mem_end=0xca000 mem=0xc8000 irq=5 io=0x2a0 # smc-ultra io=0x2a0 irq=7 # Drivers for ISA sound cards # Some ISA PnP cards may work fine, for other ones you need to add the # correct modules parameters. # snd-tea6330t # snd-ad1816a # snd-ad1848 # snd-cs4231 # snd-cs4232 # snd-cs4236 # snd-es1688 # snd-gusclassic # snd-gusextreme # snd-gusmax # snd-interwave # snd-opti92x-ad1848 # snd-opti92x-cs4231 # snd-opti93x # snd-es968 # snd-sb8 # snd-als100 # snd-azt2320 # snd-cmi8330 # snd-dt019x # snd-es18xx # snd-opl3sa2 # snd-sgalaxy # snd-wavefront geexbox-0.98.7/packages/linux/config/packages.ini0000644000175000017500000001115710335100772020726 0ustar aurelaurel[Firmwares/] name=Firmwares for drivers file=http://www.geexbox.org/firmwares/ dir=iso/GEEXBOX/firmwares/ [Firmwares/WiFi/] name=Firmwares for Wireless drivers file=WiFi/ [Firmwares/WiFi/IPW2100] name=Intel PRO/Wireless 2100 Firmware license=ipw/ipw2100-1.3/LICENSE file=ipw/ipw2100-1.3/ipw2100-1.3-i.fw.bz2 md5=9fac3d40b2a836c11eda6e1ee88d8102 file=ipw/ipw2100-1.3/ipw2100-1.3-p.fw.bz2 md5=d98845daefb9fd0dba035c0b730fd3f6 file=ipw/ipw2100-1.3/ipw2100-1.3.fw.bz2 md5=1c84b3b29f8060b1c6f25f6d4fdfb88f [Firmwares/WiFi/IPW2200] name=Intel Pro/Wireless 2200BG Firmware license=ipw/ipw2200-2.2/LICENSE file=ipw/ipw2200-2.2/ipw-2.2-boot.fw.bz2 md5=f9ab35fe11fd0711e83ab4499cffaa4c file=ipw/ipw2200-2.2/ipw-2.2-bss.fw.bz2 md5=8d9eb33f38b261b4d943a944178097e6 file=ipw/ipw2200-2.2/ipw-2.2-bss_ucode.fw.bz2 md5=aeee64dd4660d855853b23aa34e34c5f file=ipw/ipw2200-2.2/ipw-2.2-ibss.fw.bz2 md5=74e6fd04b37bcd8e051f2860098da63a file=ipw/ipw2200-2.2/ipw-2.2-ibss_ucode.fw.bz2 md5=9d6e85a2379d6ab8d6f7ca27fc529c62 [Firmwares/WiFi/Prism54] name=Prism54 PCI Firmware driver file=prism54/p54pci_1.0.4.3.arm.bz2 md5=a8e9382105ffddbb35c077e2809d041f rename=isl3890.bz2 [Firmwares/DVB/] name=Firmware for the DVB cards. file=DVB/ [Firmwares/DVB/dvb-usb-a800] name=Firmware for the AVerMedia AVerTV DVB-T USB 2.0 card. file=dvb-usb-a800/dvb-usb-avertv-a800-02.fw.bz2 md5=c29f6ca057792ebc29be0631203bdb58 [Firmwares/DVB/dvb-usb-dibusb-mb] name=Firmware for DIBcom USB 1.1 DVB-T devices. file=dvb-usb-dibusb-mb/dvb-usb-dibusb-5.0.0.11.fw.bz2 md5=152373433e4178d128ec00575d2f8777 [Firmwares/DVB/dvb-usb-dibusb-mc] name=Firmware for the Artec T1 USB2.0 DVB-T USB device. file=dvb-usb-dibusb-mc/dvb-usb-dibusb-6.0.0.8.fw.bz2 md5=ac5e2cef27c08f53f0d816626bfe1bd3 [Firmwares/DVB/dvb-usb-dtt200u/] name=Firmwares for the WideView/Yakumo/Hama/Typhoon/Yuan Boxes and Pens. [Firmwares/DVB/dvb-usb-dtt200u/dtt200u] name=Firmware for the WideView/Yuan/Yakumo/Hama/Typhoon DVB-T USB2.0 (WT-200U) file=dvb-usb-dtt200u/dvb-usb-dtt200u-01.fw.bz2 md5=87a6b8fd649b6ae7f8790530ffde36c1 [Firmwares/DVB/dvb-usb-dtt200u/wt220u] name=Firmware for the WideView WT-220U PenType Receiver (and clones) file=dvb-usb-dtt200u/dvb-usb-wt220u-01.fw.bz2 md5=c9e2fc2e3bdc62ca52f5c98f9aac4e84 [Firmwares/DVB/nxt2002] name=Firmware for the frontend of some Technisat/B2C2 Sky/Air/Cable2PC USB file=nxt2002/dvb-fe-nxt2002.fw.bz2 md5=9da8860dfa3d379cc84ee6b40eb167da [Firmwares/DVB/or51132] name=Firmware for the OREN 51132 demodulators. file=or51132/dvb-fe-or51132-qam.fw.bz2 md5=0948363fcd00f989346fc6d6723710d4 file=or51132/dvb-fe-or51132-vsb.fw.bz2 md5=4bc3a4973974f13323fc50158c6d69c8 [Firmwares/DVB/or51211] name=Firmware for OREN or51211 demodulators. file=or51211/dvb-fe-or51211.fw.bz2 md5=897b9ed4f2c52f68a8a3f2a5f82820fa [Firmwares/DVB/sp8870] name=Firmware for the SP8870 based demodulators. file=sp8870/dvb-fe-sp8870.fw.bz2 md5=7eb13762632f6d15e304f5f6383d6408 [Firmwares/DVB/sp887x] name=Firmware for the SP887x based demodulators. file=sp887x/dvb-fe-sp887x.fw.bz2 md5=3159053213c98893fc10517c362354ca [Firmwares/DVB/tda1004x/] name=Firmware for the Philips TDA10045H/TDA10046H based cards [Firmwares/DVB/tda1004x/TDA10045H] name=Firmware for the Philips TDA10045H based card file=tda1004x/dvb-fe-tda10045.fw.bz2 md5=64040708bbd6a0dff0b76fcdbaa645b1 [Firmwares/DVB/tda1004x/TDA10046H] name=Firmware for the Philips TDA10046H based card file=tda1004x/dvb-fe-tda10046.fw.bz2 md5=fce4dcf2915d28f5bd8e52df37175edb [Firmwares/DVB/ttpci] name=Firmware for the AV7110 based DVB cards. file=ttpci/261f/dvb-ttpci-01.fw.bz2 md5=ce1f478bf0aeab98d00b3e2431bf493e [Firmwares/DVB/ttusb_dec/] name=Firmware for the Technotrend DEC Budget USB1.1 (DVB-S/T) based cards. [Firmwares/DVB/ttusb_dec/DEC2000-t] name=Firmware for the Technotrend DEC Budget USB1.1 DEC2000-T file=ttusb_dec/dvb-ttusb-dec-2000t.fw.bz2 md5=aa2741d99341331c444af2beea34b158 [Firmwares/DVB/ttusb_dec/DEC2540-t] name=Firmware for the Technotrend DEC Budget USB1.1 DEC2540-T file=ttusb_dec/dvb-ttusb-dec-2540t.fw.bz2 md5=5bdd31c517e667ec047f13f59947c047 [Firmwares/DVB/ttusb_dec/DEC3000-s] name=Firmware for the Technotrend DEC Budget USB1.1 DEC3000-S file=ttusb_dec/dvb-ttusb-dec-3000s.fw.bz2 md5=fdf8ec99c55301b04e5ad586c957540d [Firmwares/DVB/umt-010] name=Firmware for the HanfTek UMT-010 card. file=umt-010/dvb-usb-umt-010-02.fw.bz2 md5=49979c657355e8ff3158d7ac39d9273f [Firmwares/DVB/vp702x] name=Firmware for the TwinhanDTV StarBox - DVB-S based cards. file=vp702x/dvb-usb-vp702x-01.fw.bz2 md5=fde23b38e662c2ebe8f8e090338d4c94 [Firmwares/DVB/vp7045] name=Firmware for the Twinhan DVB-T USB2.0 based cards. file=vp7045/dvb-usb-vp7045-01.fw.bz2 md5=3c73a3f380ec08b845e5c11a286fe1d3 geexbox-0.98.7/packages/linux/config/tvcard0000644000175000017500000000152110335100772017647 0ustar aurelaurel# # TV Card Options # # TV CARD/TUNER Model (AUTO for autodetection or look at the following urls) # http://www.linuxhq.com/kernel/v2.6/2/Documentation/video4linux/CARDLIST.bttv # http://www.linuxhq.com/kernel/v2.6/2/Documentation/video4linux/CARDLIST.tuner TV_CARD=AUTO TV_TUNER=AUTO # TV Input Standard (ntsc/ntsc-m/ntsc-jp/pal/pal-bg/pal-dk/pal-i/pal-m/pal-n/ # pal-nc/pal-60/secam/secam-l/secam-dk) TVIN_STANDARD=pal # TV Channels # Syntax : CHAN="Channel Frequency:Channel Title" # Example: #CHAN="29:France 2" #CHAN="K08:Canal +" # TV Channels List # Available : us-bcast, us-cable, us-cable-hrc, japan-bcast, japan-cable, # europe-west, europe-east, italy, newzealand, australia, # ireland, france, china-bcast, southafrica, argentina, # australia-optus, russia CHANLIST=europe-west geexbox-0.98.7/packages/linux/init.d/0000755000175000017500000000000010335100772016362 5ustar aurelaurelgeexbox-0.98.7/packages/linux/init.d/20_modules0000755000175000017500000000033310335100772020260 0ustar aurelaurel#!/bin/sh # # load modules # # runlevels: geexbox, debug, install echo "### Loading kernel modules ###" IFS=' ' for module in `cat /etc/modules|grep "^[^#]"`; do eval "modprobe $module" >/dev/null 2>&1 done exit 0 geexbox-0.98.7/packages/linux/init.d/32_tvcard0000755000175000017500000000423610335100772020104 0ustar aurelaurel#!/bin/sh # # setup tv cards # # runlevels: geexbox, debug, install echo "### Setting up TV card ###" if ! grep -q 'Class 0400:.*109e:' /proc/pci && ! grep -q 'Class 0480:.*1131:' /proc/pci && ! grep -q 'Class 0480:.*14f1:88' /proc/pci; then # No supported TV card found exit 1 fi . /etc/tvcard [ -f /etc/radio ] && . /etc/radio CARD= test "$TV_CARD" != "AUTO" && CARD="card=$TV_CARD" TUNER= test "$TV_TUNER" != "AUTO" && TUNER="tuner=$TV_TUNER" RADIO_OPT= test "$RADIO" = yes && RADIO_OPT="radio=1" if grep -q 'Class 0400:.*109e:' /proc/pci; then # BT8x8 Card modprobe bttv $CARD $TUNER $RADIO_OPT >/dev/null 2>&1 if test "$TV_CARD" = "AUTO" \ -a -z "`dmesg | grep 'bttv0: detected'`"; then # Not autodetected test -z "$TUNER" && TUNER="tuner=3" rmmod bttv modprobe bttv card=1 $TUNER $RADIO_OPT >/dev/null 2>&1 fi echo "TV_WIDTH=768" > /var/tvcard echo "TV_HEIGHT=576" >> /var/tvcard elif grep -q 'Class 0480:.*1131:' /proc/pci; then # SAA7134 Card modprobe saa7134 $CARD $TUNER >/dev/null 2>&1 echo -n "" > /var/tvcard elif grep -q 'Class 0480:.*14f1:88' /proc/pci; then # Conexant BT881/CX88 Card modprobe tveeprom >/dev/null 2>&1 modprobe cx88xx $CARD $TUNER >/dev/null 2>&1 modprobe cx8800 >/dev/null 2>&1 # cx8800 module tries to autodetect/force tuner model according to eeprom. # It fails if eeprom is corrupted so force tuner module loading before cx8800 if test "$TV_CARD" != "AUTO" \ -a -n "`dmesg | grep 'tveeprom: Encountered bad packet header'`"; then rmmod cx8800 cx88xx tuner modprobe cx88xx $CARD $TUNER >/dev/null 2>&1 modprobe tuner >/dev/null 2>&1 modprobe cx8800 >/dev/null 2>&1 fi echo "TV_WIDTH=768" > /var/tvcard echo "TV_HEIGHT=576" >> /var/tvcard # CX88 driver reset color values to 0, so need to be forced. echo "TV_BRIGHTNESS=50" >> /var/tvcard echo "TV_CONTRAST=50" >> /var/tvcard echo "TV_HUE=100" >> /var/tvcard echo "TV_SATURATION=75" >> /var/tvcard fi modprobe tuner >/dev/null 2>&1 modprobe tvaudio >/dev/null 2>&1 modprobe msp3400 >/dev/null 2>&1 modprobe tda7432 >/dev/null 2>&1 modprobe tda9875 >/dev/null 2>&1 modprobe tda9887 >/dev/null 2>&1 exit 0 geexbox-0.98.7/packages/linux/init.d/34_dvbcard0000755000175000017500000000234410335100772020226 0ustar aurelaurel#!/bin/sh # # setup dvb cards # # runlevels: geexbox, debug, install echo "### Setting up DVB card ###" # DVB frontends drivers are auto-loaded by main device drivers # PCI DVB Devices if grep -q 'Class 0400:.*109e:' /proc/pci; then # BT8x8 Card modprobe dvb-bt8xx >/dev/null 2>&1 modprobe dst >/dev/null 2>&1 elif grep -q 'Class 0480:.*1131:' /proc/pci; then # SAA7134 Card modprobe saa7134-dvb >/dev/null 2>&1 # SAA7146 Cards modprobe saa7146 >/dev/null 2>&1 modprobe saa7146_vv >/dev/null 2>&1 modprobe dvb-ttpci >/dev/null 2>&1 modprobe budget >/dev/null 2>&1 modprobe budget-ci >/dev/null 2>&1 modprobe budget-av >/dev/null 2>&1 elif grep -q 'Class 0280:.*13d0:' /proc/pci; then # B2C2 Cards modprobe budget >/dev/null 2>&1 modprobe b2c2-flexcop-pci >/dev/null 2>&1 modprobe b2c2-flexcop >/dev/null 2>&1 elif grep -q 'Class 0480:.*14f1:88' /proc/pci; then # Conexant CX88 Card modprobe cx88-blackbird >/dev/null 2>&1 modprobe cx88-dvb >/dev/null 2>&1 elif grep -q 'Class 0480:.*0432:' /proc/pci; then # SCM Pluto2 Card modprobe pluto2 >/dev/null 2>&1 fi # ensure that DVB card has been discovered if test -n "`dmesg | grep 'DVB: registering new adapter'`"; then echo -n "" > /var/dvbcard fi exit 0 geexbox-0.98.7/packages/linux/install0000755000175000017500000000104510335100772016571 0ustar aurelaurel#!/bin/sh . config/options case "$2" in image) test "$3" != installator && INSTALL="$INSTALL/boot" mkdir -p $INSTALL case $TARGET_ARCH in i386) cp $BUILD/$1*/arch/$TARGET_ARCH/boot/bzImage $INSTALL/vmlinuz ;; ppc) cp $BUILD/$1*/vmlinux $INSTALL/vmlinux $STRIP $INSTALL/vmlinux ;; esac ;; modules) cp -r $BUILD/$1*/modules/* $INSTALL mkdir -p $INSTALL/etc cp $PACKAGES/$1/config/modules $INSTALL/etc cp $PACKAGES/$1/config/tvcard $INSTALL/etc ;; esac geexbox-0.98.7/packages/linux/patches/0000755000175000017500000000000010335100772016624 5ustar aurelaurelgeexbox-0.98.7/packages/linux/patches/10_crosscompile.diff0000644000175000017500000000114310335100772022457 0ustar aurelaurel--- linux-2.6.9.orig/arch/i386/boot/tools/build.c Wed Nov 17 11:02:08 2004 +++ linux-2.6.9/arch/i386/boot/tools/build.c Wed Nov 17 11:02:13 2004 @@ -30,7 +30,6 @@ #include #include #include -#include #include #include #include @@ -41,6 +40,11 @@ #define DEFAULT_MAJOR_ROOT 0 #define DEFAULT_MINOR_ROOT 0 + +#undef major +#define major(dev) ((int)(((dev) >> 8) & 0xff)) +#undef minor +#define minor(dev) ((int)((dev) & 0xff)) /* Minimal number of setup sectors (see also bootsect.S) */ #define SETUP_SECTS 4 geexbox-0.98.7/packages/linux/patches/20_lzma-vmlinux.diff0000644000175000017500000002570110335100772022427 0ustar aurelaurel* LZMA vmlinux unarchiver (http://www.geocities.com/mctiew/ffw/lzma.assorted3.tgz) diff -Naur linux-2.6-oldvm/arch/i386/boot/compressed/Makefile linux-2.6-newvm/arch/i386/boot/compressed/Makefile --- linux-2.6-oldvm/arch/i386/boot/compressed/Makefile 2005-06-12 06:22:22.000000000 -0400 +++ linux-2.6-newvm/arch/i386/boot/compressed/Makefile 2005-06-12 06:26:47.000000000 -0400 @@ -2,24 +2,33 @@ # linux/arch/i386/boot/compressed/Makefile # # create a compressed vmlinux image from the original vmlinux +# patched by Ming-Ching Tiew for kernel 2.6 +# requires program 'lzma' from LZMA SDK ( http://www.7-zip.org/ ) to work +# $ mkdir lzma +# $ cd lzma +# $ tar tvjf ../lzma417.tar.bz2 +# $ cd SRC/7zip/Compress/LZMA_Alone +# $ dos2unix makefile +# $ make +# $ su +# # cp lzma /usr/bin # - -targets := vmlinux vmlinux.bin vmlinux.bin.gz head.o misc.o piggy.o +targets := vmlinux vmlinux.bin vmlinux.bin.lzma head.o lzma_misc.o piggy.o EXTRA_AFLAGS := -traditional LDFLAGS_vmlinux := -Ttext $(IMAGE_OFFSET) -e startup_32 -$(obj)/vmlinux: $(obj)/head.o $(obj)/misc.o $(obj)/piggy.o FORCE +$(obj)/vmlinux: $(obj)/head.o $(obj)/lzma_misc.o $(obj)/piggy.o FORCE $(call if_changed,ld) @: $(obj)/vmlinux.bin: vmlinux FORCE $(call if_changed,objcopy) -$(obj)/vmlinux.bin.gz: $(obj)/vmlinux.bin FORCE - $(call if_changed,gzip) +$(obj)/vmlinux.bin.lzma: $(obj)/vmlinux.bin FORCE + $(call if_changed,lzma) LDFLAGS_piggy.o := -r --format binary --oformat elf32-i386 -T -$(obj)/piggy.o: $(obj)/vmlinux.scr $(obj)/vmlinux.bin.gz FORCE +$(obj)/piggy.o: $(obj)/vmlinux.scr $(obj)/vmlinux.bin.lzma FORCE $(call if_changed,ld) diff -Naur linux-2.6-oldvm/arch/i386/boot/compressed/lzma_misc.c linux-2.6-newvm/arch/i386/boot/compressed/lzma_misc.c --- linux-2.6-oldvm/arch/i386/boot/compressed/lzma_misc.c 1969-12-31 19:00:00.000000000 -0500 +++ linux-2.6-newvm/arch/i386/boot/compressed/lzma_misc.c 2005-06-30 03:09:41.670000000 -0400 @@ -0,0 +1,340 @@ +/* + * lzma_misc.c + * + * Decompress LZMA compressed vmlinuz + * Version 0.9 Copyright (c) Ming-Ching Tiew mctiew@yahoo.com + * Program adapted from misc.c for 2.6 kernel + * Date: 3 June 2005 + * Source released under GPL + */ + +#include +#include +#include +#include + +#define OF(args) args +#define STATIC static + +#undef memset +#undef memcpy + +/* + * Why do we do this? Don't ask me.. + * + * Incomprehensible are the ways of bootloaders. + */ +static void* memcpy(void *, __const void *, size_t); + +typedef unsigned char uch; +typedef unsigned short ush; +typedef unsigned long ulg; + +#define WSIZE 0x8000 /* Window size must be at least 32k, */ + /* and a power of two */ + +static uch *inbuf; /* input buffer */ + +static unsigned insize = 0; /* valid bytes in inbuf */ +static unsigned inptr = 0; /* index of next byte to be processed in inbuf */ + +#define get_byte() (inptr < insize ? inbuf[inptr++] : fill_inbuf()) + +/* Diagnostic functions */ +#ifdef DEBUG +# define Assert(cond,msg) {if(!(cond)) error(msg);} +# define Trace(x) fprintf x +# define Tracev(x) {if (verbose) fprintf x ;} +# define Tracevv(x) {if (verbose>1) fprintf x ;} +# define Tracec(c,x) {if (verbose && (c)) fprintf x ;} +# define Tracecv(c,x) {if (verbose>1 && (c)) fprintf x ;} +#else +# define Assert(cond,msg) +# define Trace(x) +# define Tracev(x) +# define Tracevv(x) +# define Tracec(c,x) +# define Tracecv(c,x) +#endif + +static int fill_inbuf(void); +static void error(char *m); + +/* + * This is set up by the setup-routine at boot-time + */ +static unsigned char *real_mode; /* Pointer to real-mode data */ + +#define RM_EXT_MEM_K (*(unsigned short *)(real_mode + 0x2)) +#ifndef STANDARD_MEMORY_BIOS_CALL +#define RM_ALT_MEM_K (*(unsigned long *)(real_mode + 0x1e0)) +#endif +#define RM_SCREEN_INFO (*(struct screen_info *)(real_mode+0)) + +extern char input_data[]; +extern int input_len; + +static long bytes_out = 0; +static uch *output_data; + +static void putstr(const char *); + +extern int end; +static long free_mem_ptr = (long)&end; +static long free_mem_end_ptr; + +#define INPLACE_MOVE_ROUTINE 0x1000 +#define LOW_BUFFER_START 0x2000 +#define LOW_BUFFER_MAX 0x90000 +#define HEAP_SIZE 0x3000 +static unsigned int low_buffer_end, low_buffer_size; +static int high_loaded =0; +static uch *high_buffer_start /* = (uch *)(((ulg)&end) + HEAP_SIZE)*/; + +static char *vidmem = (char *)0xb8000; +static int vidport; +static int lines, cols; + +static void scroll(void) +{ + int i; + + memcpy ( vidmem, vidmem + cols * 2, ( lines - 1 ) * cols * 2 ); + for ( i = ( lines - 1 ) * cols * 2; i < lines * cols * 2; i += 2 ) + vidmem[i] = ' '; +} + +static void putstr(const char *s) +{ + int x,y,pos; + char c; + + x = RM_SCREEN_INFO.orig_x; + y = RM_SCREEN_INFO.orig_y; + + while ( ( c = *s++ ) != '\0' ) { + if ( c == '\n' ) { + x = 0; + if ( ++y >= lines ) { + scroll(); + y--; + } + } else { + vidmem [ ( x + cols * y ) * 2 ] = c; + if ( ++x >= cols ) { + x = 0; + if ( ++y >= lines ) { + scroll(); + y--; + } + } + } + } + + RM_SCREEN_INFO.orig_x = x; + RM_SCREEN_INFO.orig_y = y; + + pos = (x + cols * y) * 2; /* Update cursor position */ + outb_p(14, vidport); + outb_p(0xff & (pos >> 9), vidport+1); + outb_p(15, vidport); + outb_p(0xff & (pos >> 1), vidport+1); +} + +static void* memcpy(void* __dest, __const void* __src, + size_t __n) +{ + int i; + char *d = (char *)__dest, *s = (char *)__src; + + for (i=0;i<__n;i++) d[i] = s[i]; + return __dest; +} + +/* =========================================================================== + * Fill the input buffer. This is called only when the buffer is empty + * and at least one byte is really needed. + */ +static int fill_inbuf(void) +{ + if (insize != 0) { + error("ran out of input data"); + } + + inbuf = input_data; + insize = input_len; + inptr = 1; + return inbuf[0]; +} + +static void error(char *x) +{ + putstr("\n\n"); + putstr(x); + putstr("\n\n -- System halted"); + + while(1); /* Halt */ +} + +#define STACK_SIZE (4096) + +long user_stack [STACK_SIZE]; + +struct { + long * a; + short b; + } stack_start = { & user_stack [STACK_SIZE] , __BOOT_DS }; + +static void setup_normal_output_buffer(void) +{ +#ifdef STANDARD_MEMORY_BIOS_CALL + if (RM_EXT_MEM_K < 1024) error("Less than 2MB of memory"); +#else + if ((RM_ALT_MEM_K > RM_EXT_MEM_K ? RM_ALT_MEM_K : RM_EXT_MEM_K) < 1024) error("Less than 2MB of memory"); +#endif + output_data = (char *)0x100000; /* Points to 1M */ + free_mem_end_ptr = (long)real_mode; +} + +struct moveparams { + uch *low_buffer_start; int lcount; + uch *high_buffer_start; int hcount; +}; + +static void setup_output_buffer_if_we_run_high(struct moveparams *mv) +{ + high_buffer_start = (uch *)(((ulg)&end) + HEAP_SIZE); +#ifdef STANDARD_MEMORY_BIOS_CALL + if (RM_EXT_MEM_K < (3*1024)) error("Less than 4MB of memory"); +#else + if ((RM_ALT_MEM_K > RM_EXT_MEM_K ? RM_ALT_MEM_K : RM_EXT_MEM_K) < + (3*1024)) + error("Less than 4MB of memory"); +#endif + mv->low_buffer_start = output_data = (char *)LOW_BUFFER_START; + low_buffer_end = ((unsigned int)real_mode > LOW_BUFFER_MAX + ? LOW_BUFFER_MAX : (unsigned int)real_mode) & ~0xfff; + low_buffer_size = low_buffer_end - LOW_BUFFER_START; + high_loaded = 1; + free_mem_end_ptr = (long)high_buffer_start; + if ( (0x100000 + low_buffer_size) > ((ulg)high_buffer_start)) { + high_buffer_start = (uch *)(0x100000 + low_buffer_size); + mv->hcount = 0; /* say: we need not to move high_buffer */ + } + else mv->hcount = -1; + mv->high_buffer_start = high_buffer_start; +} + +static void close_output_buffer_if_we_run_high(struct moveparams *mv) +{ + if (bytes_out > low_buffer_size) { + mv->lcount = low_buffer_size; + if (mv->hcount) + mv->hcount = bytes_out - low_buffer_size; + } else { + mv->lcount = bytes_out; + mv->hcount = 0; + } +} + +#define _LZMA_IN_CB +#include "../../../../lib/LzmaDecode.h" +#include "../../../../lib/LzmaDecode.c" + +static int read_byte(void *object, const unsigned char **buffer, SizeT *bufferSize); + + +/* + * Do the lzma decompression + */ +static int lzma_unzip(void) +{ + + unsigned int i; + CLzmaDecoderState state; + unsigned int uncompressedSize = 0; + unsigned char* p; + + ILzmaInCallback callback; + callback.Read = read_byte; + + // lzma args + i = get_byte(); + state.Properties.lc = i % 9, i = i / 9; + state.Properties.lp = i % 5, state.Properties.pb = i / 5; + + // skip dictionary size + for (i = 0; i < 4; i++) + get_byte(); + // get uncompressed size + p= (char*)&uncompressedSize; + for (i = 0; i < 4; i++) + *p++ = get_byte(); + + // skip high order bytes + for (i = 0; i < 4; i++) + get_byte(); + + // point it beyond uncompresedSize + state.Probs = (CProb*) (high_buffer_start + uncompressedSize); + // decompress kernel + if (LzmaDecode( &state, &callback, + (unsigned char*)high_buffer_start, uncompressedSize, &i) == LZMA_RESULT_OK) + { + if ( i != uncompressedSize ) + error( "kernel corrupted!\n"); + //copy it back to low_buffer + if( uncompressedSize > low_buffer_size ) + { + memcpy((char*)LOW_BUFFER_START, high_buffer_start, low_buffer_size); + memcpy(high_buffer_start, high_buffer_start+low_buffer_size, + uncompressedSize-low_buffer_size); + } + else + memcpy((char*)LOW_BUFFER_START, high_buffer_start, uncompressedSize ); + bytes_out = i; + return 0; + } + return 1; +} + + +static int read_byte(void *object, const unsigned char **buffer, SizeT *bufferSize) +{ + static unsigned int i = 0; + static unsigned char val; + *bufferSize = 1; + val = get_byte(); + *buffer = &val; + if ( i++ % ( 1024 * 50 ) == 0 ) + putstr("."); + return LZMA_RESULT_OK; +} + +asmlinkage int decompress_kernel(struct moveparams *mv, void *rmode) +{ + real_mode = rmode; + + if (RM_SCREEN_INFO.orig_video_mode == 7) { + vidmem = (char *) 0xb0000; + vidport = 0x3b4; + } else { + vidmem = (char *) 0xb8000; + vidport = 0x3d4; + } + + lines = RM_SCREEN_INFO.orig_video_lines; + cols = RM_SCREEN_INFO.orig_video_cols; + + if (free_mem_ptr < 0x100000) setup_normal_output_buffer(); + else setup_output_buffer_if_we_run_high(mv); + + putstr("LZMA vmlinuz: Ming-Ching Tiew ..."); + if( lzma_unzip() != 0 ) + { + error("inflate error\n"); + } + putstr("Ok, booting the kernel.\n"); + if (high_loaded) close_output_buffer_if_we_run_high(mv); + return high_loaded; +} diff -Naur linux-2.6-oldvm/scripts/Makefile.lib linux-2.6-newvm/scripts/Makefile.lib --- linux-2.6-oldvm/scripts/Makefile.lib 2005-10-28 02:02:08.000000000 +0200 +++ linux-2.6-newvm/scripts/Makefile.lib 2005-10-28 11:03:19.000000000 +0200 @@ -165,4 +165,8 @@ quiet_cmd_gzip = GZIP $@ cmd_gzip = gzip -f -9 < $< > $@ +# LZMA +# --------------------------------------------------------------------------- +quiet_cmd_lzma = LZMA $@ +cmd_lzma = lzma e $< $@ -lc7 -lp0 -pb0 2>/dev/null geexbox-0.98.7/packages/linux/patches/30_bash-only-feature.diff0000644000175000017500000000103410335100772023303 0ustar aurelaureldiff -Naur linux-2.6.11.orig/scripts/gen_initramfs_list.sh linux-2.6.11/scripts/gen_initramfs_list.sh --- linux-2.6.11.orig/scripts/gen_initramfs_list.sh 2005-03-02 08:38:38.000000000 +0100 +++ linux-2.6.11/scripts/gen_initramfs_list.sh 2005-03-03 00:59:58.000000000 +0100 @@ -56,9 +56,7 @@ parse() { local location="$1" - local name="${location/${srcdir}//}" - # change '//' into '/' - name="${name//\/\///}" + local name="$(echo "$location" | sed -e 's%$srcdir%%' -e 's%//*%/%g')" local mode="$2" local uid="$3" local gid="$4" geexbox-0.98.7/packages/linux/patches/40_no_dev_console.diff0000644000175000017500000000157510335100772022765 0ustar aurelaureldiff -Naur linux-2.6.11.6.orig/init/main.c linux-2.6.11.6/init/main.c --- linux-2.6.11.6.orig/init/main.c 2005-06-27 21:51:41.000000000 +0200 +++ linux-2.6.11.6/init/main.c 2005-06-27 21:59:23.000000000 +0200 @@ -635,6 +635,8 @@ static int init(void * unused) { + char *console = "/dev_console"; + lock_kernel(); /* * init can run on any cpu. @@ -688,8 +690,12 @@ system_state = SYSTEM_RUNNING; numa_default_policy(); - if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0) - printk(KERN_WARNING "Warning: unable to open an initial console.\n"); + if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0) { + sys_mknod(console, S_IFCHR|0600, (TTYAUX_MAJOR<<8)|1); + if (sys_open(console, O_RDWR, 0) < 0) + printk(KERN_WARNING "Warning: unable to open an initial console.\n"); + sys_unlink(console); + } (void) sys_dup(0); (void) sys_dup(0); geexbox-0.98.7/packages/linux/patches/50_bootsplash-3.1.6-2.6.14.diff0000644000175000017500000023770210335100772023344 0ustar aurelaureldiff -urN linux-2.6.14/drivers/char/keyboard.c linux-2.6.14-bootsplash/drivers/char/keyboard.c --- linux-2.6.14/drivers/char/keyboard.c 2005-06-17 21:48:29.000000000 +0200 +++ linux-2.6.14-bootsplash/drivers/char/keyboard.c 2005-06-18 09:22:11.000000000 +0200 @@ -1063,6 +1063,15 @@ if (keycode < BTN_MISC) printk(KERN_WARNING "keyboard.c: can't emulate rawmode for keycode %d\n", keycode); +#ifdef CONFIG_BOOTSPLASH + /* This code has to be redone for some non-x86 platforms */ + if (down == 1 && (keycode == 0x3c || keycode == 0x01)) { /* F2 and ESC on PC keyboard */ + extern int splash_verbose(void); + if (splash_verbose()) + return; + } +#endif + #ifdef CONFIG_MAGIC_SYSRQ /* Handle the SysRq Hack */ if (keycode == KEY_SYSRQ && (sysrq_down || (down == 1 && sysrq_alt))) { sysrq_down = down; diff -urN linux-2.6.14/drivers/char/n_tty.c linux-2.6.14-bootsplash/drivers/char/n_tty.c --- linux-2.6.14/drivers/char/n_tty.c 2005-06-17 21:48:29.000000000 +0200 +++ linux-2.6.14-bootsplash/drivers/char/n_tty.c 2005-06-18 09:22:11.000000000 +0200 @@ -1299,6 +1299,15 @@ tty->minimum_to_wake = (minimum - (b - buf)); if (!input_available_p(tty, 0)) { +#ifdef CONFIG_BOOTSPLASH + if (file->f_dentry->d_inode->i_rdev == MKDEV(TTY_MAJOR,0) || + file->f_dentry->d_inode->i_rdev == MKDEV(TTY_MAJOR,1) || + file->f_dentry->d_inode->i_rdev == MKDEV(TTYAUX_MAJOR,0) || + file->f_dentry->d_inode->i_rdev == MKDEV(TTYAUX_MAJOR,1)) { + extern int splash_verbose(void); + (void)splash_verbose(); + } +#endif if (test_bit(TTY_OTHER_CLOSED, &tty->flags)) { retval = -EIO; break; diff -urN linux-2.6.14/drivers/char/vt.c linux-2.6.14-bootsplash/drivers/char/vt.c --- linux-2.6.14/drivers/char/vt.c 2005-06-17 21:48:29.000000000 +0200 +++ linux-2.6.14-bootsplash/drivers/char/vt.c 2005-06-18 09:22:11.000000000 +0200 @@ -3221,6 +3221,31 @@ } } +#ifdef CONFIG_BOOTSPLASH +void con_remap_def_color(struct vc_data *vc, int new_color) +{ + unsigned short *sbuf = vc->vc_screenbuf; + unsigned c, len = vc->vc_screenbuf_size >> 1; + int old_color; + + if (sbuf) { + old_color = vc->vc_def_color << 8; + new_color <<= 8; + while(len--) { + c = *sbuf; + if (((c ^ old_color) & 0xf000) == 0) + *sbuf ^= (old_color ^ new_color) & 0xf000; + if (((c ^ old_color) & 0x0f00) == 0) + *sbuf ^= (old_color ^ new_color) & 0x0f00; + sbuf++; + } + new_color >>= 8; + } + vc->vc_def_color = vc->vc_color = new_color; + update_attr(vc); +} +#endif + /* * Visible symbols for modules */ diff -urN linux-2.6.14/drivers/video/bootsplash/bootsplash.c linux-2.6.14-bootsplash/drivers/video/bootsplash/bootsplash.c --- linux-2.6.14/drivers/video/bootsplash/bootsplash.c 1970-01-01 01:00:00.000000000 +0100 +++ linux-2.6.14-bootsplash/drivers/video/bootsplash/bootsplash.c 2005-06-18 09:22:11.000000000 +0200 @@ -0,0 +1,984 @@ +/* + * linux/drivers/video/bootsplash/bootsplash.c - + * splash screen handling functions. + * + * (w) 2001-2004 by Volker Poplawski, , + * Stefan Reinauer, , + * Steffen Winterfeldt, , + * Michael Schroeder + * + * Ideas & SuSE screen work by Ken Wimer, + * + * For more information on this code check http://www.bootsplash.org/ + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include "../console/fbcon.h" +#include "bootsplash.h" +#include "decode-jpg.h" + +/* extern struct fb_ops vesafb_ops; */ +extern signed char con2fb_map[MAX_NR_CONSOLES]; + +#define SPLASH_VERSION "3.1.6-2004/03/31" + +/* These errors have to match fbcon-jpegdec.h */ +static unsigned char *jpg_errors[] = { + "no SOI found", + "not 8 bit", + "height mismatch", + "width mismatch", + "bad width or height", + "too many COMPPs", + "illegal HV", + "quant table selector", + "picture is not YCBCR 221111", + "unknow CID in scan", + "dct not sequential", + "wrong marker", + "no EOI", + "bad tables", + "depth mismatch" +}; + +static struct jpeg_decdata *decdata = 0; /* private decoder data */ + +static int splash_registered = 0; +static int splash_usesilent = 0; /* shall we display the silentjpeg? */ +int splash_default = 0xf01; + +static int splash_check_jpeg(unsigned char *jpeg, int width, int height, int depth); + +static int __init splash_setup(char *options) +{ + if(!strncmp("silent", options, 6)) { + printk(KERN_INFO "bootsplash: silent mode.\n"); + splash_usesilent = 1; + /* skip "silent," */ + if (strlen(options) == 6) + return 0; + options += 7; + } + if(!strncmp("verbose", options, 7)) { + printk(KERN_INFO "bootsplash: verbose mode.\n"); + splash_usesilent = 0; + return 0; + } + splash_default = simple_strtoul(options, NULL, 0); + return 0; +} + +__setup("splash=", splash_setup); + + +static int splash_hasinter(unsigned char *buf, int num) +{ + unsigned char *bufend = buf + num * 12; + while(buf < bufend) { + if (buf[1] > 127) /* inter? */ + return 1; + buf += buf[3] > 127 ? 24 : 12; /* blend? */ + } + return 0; +} + +static int boxextract(unsigned char *buf, unsigned short *dp, unsigned char *cols, int *blendp) +{ + dp[0] = buf[0] | buf[1] << 8; + dp[1] = buf[2] | buf[3] << 8; + dp[2] = buf[4] | buf[5] << 8; + dp[3] = buf[6] | buf[7] << 8; + *(unsigned int *)(cols + 0) = + *(unsigned int *)(cols + 4) = + *(unsigned int *)(cols + 8) = + *(unsigned int *)(cols + 12) = *(unsigned int *)(buf + 8); + if (dp[1] > 32767) { + dp[1] = ~dp[1]; + *(unsigned int *)(cols + 4) = *(unsigned int *)(buf + 12); + *(unsigned int *)(cols + 8) = *(unsigned int *)(buf + 16); + *(unsigned int *)(cols + 12) = *(unsigned int *)(buf + 20); + *blendp = 1; + return 24; + } + return 12; +} + +static void boxit(unsigned char *pic, int bytes, unsigned char *buf, int num, int percent, int overpaint) +{ + int x, y, i, p, doblend, r, g, b, a, add; + unsigned short data1[4]; + unsigned char cols1[16]; + unsigned short data2[4]; + unsigned char cols2[16]; + unsigned char *bufend; + unsigned short *picp; + unsigned int stipple[32], sti, stin, stinn, stixs, stixe, stiys, stiye; + int xs, xe, ys, ye, xo, yo; + + if (num == 0) + return; + bufend = buf + num * 12; + stipple[0] = 0xffffffff; + stin = 1; + stinn = 0; + stixs = stixe = 0; + stiys = stiye = 0; + while(buf < bufend) { + doblend = 0; + buf += boxextract(buf, data1, cols1, &doblend); + if (data1[0] == 32767 && data1[1] == 32767) { + /* box stipple */ + if (stinn == 32) + continue; + if (stinn == 0) { + stixs = data1[2]; + stixe = data1[3]; + stiys = stiye = 0; + } else if (stinn == 4) { + stiys = data1[2]; + stiye = data1[3]; + } + stipple[stinn++] = (cols1[ 0] << 24) | (cols1[ 1] << 16) | (cols1[ 2] << 8) | cols1[ 3] ; + stipple[stinn++] = (cols1[ 4] << 24) | (cols1[ 5] << 16) | (cols1[ 6] << 8) | cols1[ 7] ; + stipple[stinn++] = (cols1[ 8] << 24) | (cols1[ 9] << 16) | (cols1[10] << 8) | cols1[11] ; + stipple[stinn++] = (cols1[12] << 24) | (cols1[13] << 16) | (cols1[14] << 8) | cols1[15] ; + stin = stinn; + continue; + } + stinn = 0; + if (data1[0] > 32767) + buf += boxextract(buf, data2, cols2, &doblend); + if (data1[0] == 32767 && data1[1] == 32766) { + /* box copy */ + i = 12 * (short)data1[3]; + doblend = 0; + i += boxextract(buf + i, data1, cols1, &doblend); + if (data1[0] > 32767) + boxextract(buf + i, data2, cols2, &doblend); + } + if (data1[0] == 32767) + continue; + if (data1[2] > 32767) { + if (overpaint) + continue; + data1[2] = ~data1[2]; + } + if (data1[3] > 32767) { + if (percent == 65536) + continue; + data1[3] = ~data1[3]; + } + if (data1[0] > 32767) { + data1[0] = ~data1[0]; + for (i = 0; i < 4; i++) + data1[i] = (data1[i] * (65536 - percent) + data2[i] * percent) >> 16; + for (i = 0; i < 16; i++) + cols1[i] = (cols1[i] * (65536 - percent) + cols2[i] * percent) >> 16; + } + *(unsigned int *)cols2 = *(unsigned int *)cols1; + a = cols2[3]; + if (a == 0 && !doblend) + continue; + + if (stixs >= 32768) { + xo = xs = (stixs ^ 65535) + data1[0]; + xe = stixe ? stixe + data1[0] : data1[2]; + } else if (stixe >= 32768) { + xs = stixs ? data1[2] - stixs : data1[0]; + xe = data1[2] - (stixe ^ 65535); + xo = xe + 1; + } else { + xo = xs = stixs; + xe = stixe ? stixe : data1[2]; + } + if (stiys >= 32768) { + yo = ys = (stiys ^ 65535) + data1[1]; + ye = stiye ? stiye + data1[1] : data1[3]; + } else if (stiye >= 32768) { + ys = stiys ? data1[3] - stiys : data1[1]; + ye = data1[3] - (stiye ^ 65535); + yo = ye + 1; + } else { + yo = ys = stiys; + ye = stiye ? stiye : data1[3]; + } + xo = 32 - (xo & 31); + yo = stin - (yo % stin); + if (xs < data1[0]) + xs = data1[0]; + if (xe > data1[2]) + xe = data1[2]; + if (ys < data1[1]) + ys = data1[1]; + if (ye > data1[3]) + ye = data1[3]; + + for (y = ys; y <= ye; y++) { + sti = stipple[(y + yo) % stin]; + x = (xs + xo) & 31; + if (x) + sti = (sti << x) | (sti >> (32 - x)); + if (doblend) { + if ((p = data1[3] - data1[1]) != 0) + p = ((y - data1[1]) << 16) / p; + for (i = 0; i < 8; i++) + cols2[i + 8] = (cols1[i] * (65536 - p) + cols1[i + 8] * p) >> 16; + } + add = (xs & 1); + add ^= (add ^ y) & 1 ? 1 : 3; /* 2x2 ordered dithering */ + picp = (unsigned short *)(pic + xs * 2 + y * bytes); + for (x = xs; x <= xe; x++) { + if (!(sti & 0x80000000)) { + sti <<= 1; + picp++; + add ^= 3; + continue; + } + sti = (sti << 1) | 1; + if (doblend) { + if ((p = data1[2] - data1[0]) != 0) + p = ((x - data1[0]) << 16) / p; + for (i = 0; i < 4; i++) + cols2[i] = (cols2[i + 8] * (65536 - p) + cols2[i + 12] * p) >> 16; + a = cols2[3]; + } + r = cols2[0]; + g = cols2[1]; + b = cols2[2]; + if (a != 255) { + i = *picp; + r = ((i >> 8 & 0xf8) * (255 - a) + r * a) / 255; + g = ((i >> 3 & 0xfc) * (255 - a) + g * a) / 255; + b = ((i << 3 & 0xf8) * (255 - a) + b * a) / 255; + } + #define CLAMP(x) ((x) >= 256 ? 255 : (x)) + i = ((CLAMP(r + add*2+1) & 0xf8) << 8) | + ((CLAMP(g + add ) & 0xfc) << 3) | + ((CLAMP(b + add*2+1) ) >> 3); + *picp++ = i; + add ^= 3; + } + } + } +} + +static int splash_check_jpeg(unsigned char *jpeg, int width, int height, int depth) +{ + int size, err; + unsigned char *mem; + + size = ((width + 15) & ~15) * ((height + 15) & ~15) * (depth >> 3); + mem = vmalloc(size); + if (!mem) { + printk(KERN_INFO "bootsplash: no memory for decoded picture.\n"); + return -1; + } + if (!decdata) + decdata = vmalloc(sizeof(*decdata)); + if ((err = jpeg_decode(jpeg, mem, ((width + 15) & ~15), ((height + 15) & ~15), depth, decdata))) + printk(KERN_INFO "bootsplash: error while decompressing picture: %s (%d)\n",jpg_errors[err - 1], err); + vfree(mem); + return err ? -1 : 0; +} + +static void splash_free(struct vc_data *vc, struct fb_info *info) +{ + if (!vc->vc_splash_data) + return; + if (info->silent_screen_base) + info->screen_base = info->silent_screen_base; + info->silent_screen_base = 0; + if (vc->vc_splash_data->splash_silentjpeg) + vfree(vc->vc_splash_data->splash_sboxes); + vfree(vc->vc_splash_data); + vc->vc_splash_data = 0; + info->splash_data = 0; +} + +static int splash_mkpenguin(struct splash_data *data, int pxo, int pyo, int pwi, int phe, int pr, int pg, int pb) +{ + unsigned char *buf; + int i; + + if (pwi ==0 || phe == 0) + return 0; + buf = (unsigned char *)data + sizeof(*data); + pwi += pxo - 1; + phe += pyo - 1; + *buf++ = pxo; + *buf++ = pxo >> 8; + *buf++ = pyo; + *buf++ = pyo >> 8; + *buf++ = pwi; + *buf++ = pwi >> 8; + *buf++ = phe; + *buf++ = phe >> 8; + *buf++ = pr; + *buf++ = pg; + *buf++ = pb; + *buf++ = 0; + for (i = 0; i < 12; i++, buf++) + *buf = buf[-12]; + buf[-24] ^= 0xff; + buf[-23] ^= 0xff; + buf[-1] = 0xff; + return 2; +} + +static const int splash_offsets[3][16] = { + /* len, unit, size, state, fgcol, col, xo, yo, wi, he + boxcnt, ssize, sboxcnt, percent, overok, palcnt */ + /* V1 */ + { 20, -1, 16, -1, -1, -1, 8, 10, 12, 14, + -1, -1, -1, -1, -1, -1 }, + /* V2 */ + { 35, 8, 12, 9, 10, 11, 16, 18, 20, 22, + -1, -1, -1, -1, -1, -1 }, + /* V3 */ + { 38, 8, 12, 9, 10, 11, 16, 18, 20, 22, + 24, 28, 32, 34, 36, 37 }, +}; + +#define SPLASH_OFF_LEN offsets[0] +#define SPLASH_OFF_UNIT offsets[1] +#define SPLASH_OFF_SIZE offsets[2] +#define SPLASH_OFF_STATE offsets[3] +#define SPLASH_OFF_FGCOL offsets[4] +#define SPLASH_OFF_COL offsets[5] +#define SPLASH_OFF_XO offsets[6] +#define SPLASH_OFF_YO offsets[7] +#define SPLASH_OFF_WI offsets[8] +#define SPLASH_OFF_HE offsets[9] +#define SPLASH_OFF_BOXCNT offsets[10] +#define SPLASH_OFF_SSIZE offsets[11] +#define SPLASH_OFF_SBOXCNT offsets[12] +#define SPLASH_OFF_PERCENT offsets[13] +#define SPLASH_OFF_OVEROK offsets[14] +#define SPLASH_OFF_PALCNT offsets[15] + +static inline int splash_getb(unsigned char *pos, int off) +{ + return off == -1 ? 0 : pos[off]; +} + +static inline int splash_gets(unsigned char *pos, int off) +{ + return off == -1 ? 0 : pos[off] | pos[off + 1] << 8; +} + +static inline int splash_geti(unsigned char *pos, int off) +{ + return off == -1 ? 0 : + pos[off] | pos[off + 1] << 8 | pos[off + 2] << 16 | pos[off + 3] << 24; +} + +static int splash_getraw(unsigned char *start, unsigned char *end, int *update) +{ + unsigned char *ndata; + int version; + int splash_size; + int unit; + int width, height; + int silentsize; + int boxcnt; + int sboxcnt; + int palcnt; + int i, len; + const int *offsets; + struct vc_data *vc; + struct fb_info *info; + struct splash_data *sd; + + if (update) + *update = -1; + + if (!update || start[7] < '2' || start[7] > '3' || splash_geti(start, 12) != (int)0xffffffff) + printk(KERN_INFO "bootsplash %s: looking for picture...", SPLASH_VERSION); + + for (ndata = start; ndata < end; ndata++) { + if (ndata[0] != 'B' || ndata[1] != 'O' || ndata[2] != 'O' || ndata[3] != 'T') + continue; + if (ndata[4] != 'S' || ndata[5] != 'P' || ndata[6] != 'L' || ndata[7] < '1' || ndata[7] > '3') + continue; + version = ndata[7] - '0'; + offsets = splash_offsets[version - 1]; + len = SPLASH_OFF_LEN; + unit = splash_getb(ndata, SPLASH_OFF_UNIT); + if (unit >= MAX_NR_CONSOLES) + continue; + if (unit) { + vc_allocate(unit); + } + vc = vc_cons[unit].d; + info = registered_fb[(int)con2fb_map[unit]]; + width = info->var.xres; + height = info->var.yres; + splash_size = splash_geti(ndata, SPLASH_OFF_SIZE); + if (splash_size == (int)0xffffffff && version > 1) { + if ((sd = vc->vc_splash_data) != 0) { + int up = 0; + i = splash_getb(ndata, SPLASH_OFF_STATE); + if (i != 255) { + sd->splash_state = i; + up = -1; + } + i = splash_getb(ndata, SPLASH_OFF_FGCOL); + if (i != 255) { + sd->splash_fg_color = i; + up = -1; + } + i = splash_getb(ndata, SPLASH_OFF_COL); + if (i != 255) { + sd->splash_color = i; + up = -1; + } + boxcnt = sboxcnt = 0; + if (ndata + len <= end) { + boxcnt = splash_gets(ndata, SPLASH_OFF_BOXCNT); + sboxcnt = splash_gets(ndata, SPLASH_OFF_SBOXCNT); + } + if (boxcnt) { + i = splash_gets(ndata, len); + if (boxcnt + i <= sd->splash_boxcount && ndata + len + 2 + boxcnt * 12 <= end) { + + if (splash_geti(ndata, len + 2) != 0x7ffd7fff || !memcmp(ndata + len + 2, sd->splash_boxes + i * 12, 8)) { + + memcpy(sd->splash_boxes + i * 12, ndata + len + 2, boxcnt * 12); + up |= 1; + } + } + len += boxcnt * 12 + 2; + } + if (sboxcnt) { + i = splash_gets(ndata, len); + if (sboxcnt + i <= sd->splash_sboxcount && ndata + len + 2 + sboxcnt * 12 <= end) { + if (splash_geti(ndata, len + 2) != 0x7ffd7fff || !memcmp(ndata + len + 2, sd->splash_sboxes + i * 12, 8)) { + memcpy(sd->splash_sboxes + i * 12, ndata + len + 2, sboxcnt * 12); + up |= 2; + } + } + } + if (update) + *update = up; + } + return unit; + } + if (splash_size == 0) { + printk(KERN_INFO"...found, freeing memory.\n"); + if (vc->vc_splash_data) + splash_free(vc, info); + return unit; + } + boxcnt = splash_gets(ndata, SPLASH_OFF_BOXCNT); + palcnt = 3 * splash_getb(ndata, SPLASH_OFF_PALCNT); + if (ndata + len + splash_size > end) { + printk(KERN_INFO "...found, but truncated!\n"); + return -1; + } + if (!jpeg_check_size(ndata + len + boxcnt * 12 + palcnt, width, height)) { + ndata += len + splash_size - 1; + continue; + } + if (splash_check_jpeg(ndata + len + boxcnt * 12 + palcnt, width, height, info->var.bits_per_pixel)) + return -1; + silentsize = splash_geti(ndata, SPLASH_OFF_SSIZE); + if (silentsize) + printk(KERN_INFO" silentjpeg size %d bytes,", silentsize); + if (silentsize >= splash_size) { + printk(KERN_INFO " bigger than splashsize!\n"); + return -1; + } + splash_size -= silentsize; + if (!splash_usesilent) + silentsize = 0; + else if (height * 2 * info->fix.line_length > info->fix.smem_len) { + printk(KERN_INFO " does not fit into framebuffer.\n"); + silentsize = 0; + } + sboxcnt = splash_gets(ndata, SPLASH_OFF_SBOXCNT); + if (silentsize) { + unsigned char *simage = ndata + len + splash_size + 12 * sboxcnt; + if (!jpeg_check_size(simage, width, height) || + splash_check_jpeg(simage, width, height, info->var.bits_per_pixel)) { + printk(KERN_INFO " error in silent jpeg.\n"); + silentsize = 0; + } + } + if (vc->vc_splash_data) + splash_free(vc, info); + vc->vc_splash_data = sd = vmalloc(sizeof(*sd) + splash_size + (version < 3 ? 2 * 12 : 0)); + if (!sd) + break; + sd->splash_silentjpeg = 0; + sd->splash_sboxes = 0; + sd->splash_sboxcount = 0; + if (silentsize) { + sd->splash_silentjpeg = vmalloc(silentsize); + if (sd->splash_silentjpeg) { + memcpy(sd->splash_silentjpeg, ndata + len + splash_size, silentsize); + sd->splash_sboxes = vc->vc_splash_data->splash_silentjpeg; + sd->splash_silentjpeg += 12 * sboxcnt; + sd->splash_sboxcount = sboxcnt; + } + } + sd->splash_state = splash_getb(ndata, SPLASH_OFF_STATE); + sd->splash_fg_color = splash_getb(ndata, SPLASH_OFF_FGCOL); + sd->splash_color = splash_getb(ndata, SPLASH_OFF_COL); + sd->splash_overpaintok = splash_getb(ndata, SPLASH_OFF_OVEROK); + sd->splash_text_xo = splash_gets(ndata, SPLASH_OFF_XO); + sd->splash_text_yo = splash_gets(ndata, SPLASH_OFF_YO); + sd->splash_text_wi = splash_gets(ndata, SPLASH_OFF_WI); + sd->splash_text_he = splash_gets(ndata, SPLASH_OFF_HE); + sd->splash_percent = splash_gets(ndata, SPLASH_OFF_PERCENT); + if (version == 1) { + sd->splash_text_xo *= 8; + sd->splash_text_wi *= 8; + sd->splash_text_yo *= 16; + sd->splash_text_he *= 16; + sd->splash_color = (splash_default >> 8) & 0x0f; + sd->splash_fg_color = (splash_default >> 4) & 0x0f; + sd->splash_state = splash_default & 1; + } + if (sd->splash_text_xo + sd->splash_text_wi > width || sd->splash_text_yo + sd->splash_text_he > height) { + splash_free(vc, info); + printk(KERN_INFO " found, but has oversized text area!\n"); + return -1; + } +/* if (!vc_cons[unit].d || info->fbops != &vesafb_ops) { + splash_free(vc, info); + printk(KERN_INFO " found, but framebuffer can't handle it!\n"); + return -1; + } */ + printk(KERN_INFO "...found (%dx%d, %d bytes, v%d).\n", width, height, splash_size, version); + if (version == 1) { + printk(KERN_WARNING "bootsplash: Using deprecated v1 header. Updating your splash utility recommended.\n"); + printk(KERN_INFO "bootsplash: Find the latest version at http://www.bootsplash.org/\n"); + } + + /* fake penguin box for older formats */ + if (version == 1) + boxcnt = splash_mkpenguin(sd, sd->splash_text_xo + 10, sd->splash_text_yo + 10, sd->splash_text_wi - 20, sd->splash_text_he - 20, 0xf0, 0xf0, 0xf0); + else if (version == 2) + boxcnt = splash_mkpenguin(sd, splash_gets(ndata, 24), splash_gets(ndata, 26), splash_gets(ndata, 28), splash_gets(ndata, 30), splash_getb(ndata, 32), splash_getb(ndata, 33), splash_getb(ndata, 34)); + + memcpy((char *)sd + sizeof(*sd) + (version < 3 ? boxcnt * 12 : 0), ndata + len, splash_size); + sd->splash_boxcount = boxcnt; + sd->splash_boxes = (unsigned char *)sd + sizeof(*sd); + sd->splash_palette = sd->splash_boxes + boxcnt * 12; + sd->splash_jpeg = sd->splash_palette + palcnt; + sd->splash_palcnt = palcnt / 3; + sd->splash_dosilent = sd->splash_silentjpeg != 0; + return unit; + } + printk(KERN_INFO "...no good signature found.\n"); + return -1; +} + +int splash_verbose(void) +{ + struct vc_data *vc; + struct fb_info *info; + + if (!splash_usesilent) + return 0; + + vc = vc_cons[0].d; + + if (!vc || !vc->vc_splash_data || !vc->vc_splash_data->splash_state) + return 0; + if (fg_console != vc->vc_num) + return 0; + if (!vc->vc_splash_data->splash_silentjpeg || !vc->vc_splash_data->splash_dosilent) + return 0; + vc->vc_splash_data->splash_dosilent = 0; + info = registered_fb[(int)con2fb_map[0]]; + if (!info->silent_screen_base) + return 0; + splashcopy(info->silent_screen_base, info->screen_base, info->var.yres, info->var.xres, info->fix.line_length, info->fix.line_length); + info->screen_base = info->silent_screen_base; + info->silent_screen_base = 0; + return 1; +} + +static void splash_off(struct fb_info *info) +{ + if (info->silent_screen_base) + info->screen_base = info->silent_screen_base; + info->silent_screen_base = 0; + info->splash_data = 0; + if (info->splash_pic) + vfree(info->splash_pic); + info->splash_pic = 0; + info->splash_pic_size = 0; +} + +int splash_prepare(struct vc_data *vc, struct fb_info *info) +{ + int err; + int width, height, depth, size, sbytes; + + if (!vc->vc_splash_data || !vc->vc_splash_data->splash_state) { + if (decdata) + vfree(decdata); + decdata = 0; + splash_off(info); + return -1; + } + + width = info->var.xres; + height = info->var.yres; + depth = info->var.bits_per_pixel; + if (depth != 16) { /* Other targets might need fixing */ + splash_off(info); + return -2; + } + + sbytes = ((width + 15) & ~15) * (depth >> 3); + size = sbytes * ((height + 15) & ~15); + if (size != info->splash_pic_size) + splash_off(info); + if (!info->splash_pic) + info->splash_pic = vmalloc(size); + + if (!info->splash_pic) { + printk(KERN_INFO "bootsplash: not enough memory.\n"); + splash_off(info); + return -3; + } + + if (!decdata) + decdata = vmalloc(sizeof(*decdata)); + + if (vc->vc_splash_data->splash_silentjpeg && vc->vc_splash_data->splash_dosilent) { + /* fill area after framebuffer with other jpeg */ + if ((err = jpeg_decode(vc->vc_splash_data->splash_silentjpeg, info->splash_pic, + ((width + 15) & ~15), ((height + 15) & ~15), depth, decdata))) { + printk(KERN_INFO "bootsplash: error while decompressing silent picture: %s (%d)\n", jpg_errors[err - 1], err); + if (info->silent_screen_base) + info->screen_base = info->silent_screen_base; + vc->vc_splash_data->splash_dosilent = 0; + } else { + if (vc->vc_splash_data->splash_sboxcount) + boxit(info->splash_pic, sbytes, vc->vc_splash_data->splash_sboxes, + vc->vc_splash_data->splash_sboxcount, vc->vc_splash_data->splash_percent, 0); + + if (!info->silent_screen_base) + info->silent_screen_base = info->screen_base; + splashcopy(info->silent_screen_base, info->splash_pic, info->var.yres, info->var.xres, info->fix.line_length, sbytes); + info->screen_base = info->silent_screen_base + info->fix.line_length * info->var.yres; + } + } else if (info->silent_screen_base) + info->screen_base = info->silent_screen_base; + + if ((err = jpeg_decode(vc->vc_splash_data->splash_jpeg, info->splash_pic, + ((width + 15) & ~15), ((height + 15) & ~15), depth, decdata))) { + printk(KERN_INFO "bootsplash: error while decompressing picture: %s (%d) .\n", jpg_errors[err - 1], err); + splash_off(info); + return -4; + } + info->splash_pic_size = size; + info->splash_bytes = sbytes; + if (vc->vc_splash_data->splash_boxcount) + boxit(info->splash_pic, sbytes, vc->vc_splash_data->splash_boxes, vc->vc_splash_data->splash_boxcount, vc->vc_splash_data->splash_percent, 0); + if (vc->vc_splash_data->splash_state) + info->splash_data = vc->vc_splash_data; + else + splash_off(info); + return 0; +} + + +#ifdef CONFIG_PROC_FS + +#include + +static int splash_read_proc(char *buffer, char **start, off_t offset, int size, + int *eof, void *data); +static int splash_write_proc(struct file *file, const char *buffer, + unsigned long count, void *data); +static int splash_status(struct vc_data *vc); +static int splash_recolor(struct vc_data *vc); +static int splash_proc_register(void); + +static struct proc_dir_entry *proc_splash; + +static int splash_recolor(struct vc_data *vc) +{ + if (!vc->vc_splash_data) + return -1; + if (!vc->vc_splash_data->splash_state) + return 0; + con_remap_def_color(vc, vc->vc_splash_data->splash_color << 4 | vc->vc_splash_data->splash_fg_color); + if (fg_console == vc->vc_num) { + update_region(vc, vc->vc_origin + vc->vc_size_row * vc->vc_top, + vc->vc_size_row * (vc->vc_bottom - vc->vc_top) / 2); + } + return 0; +} + +static int splash_status(struct vc_data *vc) +{ + struct fb_info *info; + printk(KERN_INFO "bootsplash: status on console %d changed to %s\n", vc->vc_num, vc->vc_splash_data && vc->vc_splash_data->splash_state ? "on" : "off"); + + info = registered_fb[(int) con2fb_map[vc->vc_num]]; + if (fg_console == vc->vc_num) + splash_prepare(vc, info); + if (vc->vc_splash_data && vc->vc_splash_data->splash_state) { + con_remap_def_color(vc, vc->vc_splash_data->splash_color << 4 | vc->vc_splash_data->splash_fg_color); + /* vc_resize also calls con_switch which resets yscroll */ + vc_resize(vc, vc->vc_splash_data->splash_text_wi / vc->vc_font.width, vc->vc_splash_data->splash_text_he / vc->vc_font.height); + if (fg_console == vc->vc_num) { + update_region(vc, vc->vc_origin + vc->vc_size_row * vc->vc_top, + vc->vc_size_row * (vc->vc_bottom - vc->vc_top) / 2); + splash_clear_margins(vc->vc_splash_data, vc, info, 0); + } + } else { + /* Switch bootsplash off */ + con_remap_def_color(vc, 0x07); + vc_resize(vc, info->var.xres / vc->vc_font.width, info->var.yres / vc->vc_font.height); + } + return 0; +} + +static int splash_read_proc(char *buffer, char **start, off_t offset, int size, + int *eof, void *data) +{ + int len = 0; + off_t begin = 0; + struct vc_data *vc = vc_cons[0].d; + struct fb_info *info = registered_fb[(int)con2fb_map[0]]; + int color = vc->vc_splash_data ? vc->vc_splash_data->splash_color << 4 | + vc->vc_splash_data->splash_fg_color : splash_default >> 4; + int status = vc->vc_splash_data ? vc->vc_splash_data->splash_state & 1 : 0; + len += sprintf(buffer + len, "Splash screen v%s (0x%02x, %dx%d%s): %s\n", + SPLASH_VERSION, color, info->var.xres, info->var.yres, + (vc->vc_splash_data ? vc->vc_splash_data->splash_dosilent : 0)? ", silent" : "", + status ? "on" : "off"); + if (offset >= begin + len) + return 0; + + *start = buffer + (begin - offset); + + return (size < begin + len - offset ? size : begin + len - offset); +} + +static int splash_write_proc(struct file *file, const char *buffer, + unsigned long count, void *data) +{ + int new, unit; + struct vc_data *vc; + + if (!buffer || !splash_default) + return count; + + acquire_console_sem(); + if (!strncmp(buffer, "show", 4) || !strncmp(buffer, "hide", 4)) { + int pe, oldpe; + + vc = vc_cons[0].d; + if (buffer[4] == ' ' && buffer[5] == 'p') + pe = 0; + else if (buffer[4] == '\n') + pe = 65535; + else + pe = simple_strtoul(buffer + 5, NULL, 0); + if (pe < 0) + pe = 0; + if (pe > 65535) + pe = 65535; + if (*buffer == 'h') + pe = 65535 - pe; + pe += pe > 32767; + if (vc->vc_splash_data && vc->vc_splash_data->splash_percent != pe) { + struct fb_info *info; + struct fbcon_ops *ops; + + oldpe = vc->vc_splash_data->splash_percent; + vc->vc_splash_data->splash_percent = pe; + if (fg_console != 0 || !vc->vc_splash_data->splash_state) { + release_console_sem(); + return count; + } + info = registered_fb[(int) con2fb_map[vc->vc_num]]; + ops = info->fbcon_par; + if (ops->blank_state) { + release_console_sem(); + return count; + } + if (!vc->vc_splash_data->splash_overpaintok || pe == 65536 || pe < oldpe) { + if (splash_hasinter(vc->vc_splash_data->splash_boxes, vc->vc_splash_data->splash_boxcount)) + splash_status(vc); + else + splash_prepare(vc, info); + } else { + if (vc->vc_splash_data->splash_silentjpeg && vc->vc_splash_data->splash_dosilent && info->silent_screen_base) + boxit(info->silent_screen_base, info->fix.line_length, vc->vc_splash_data->splash_sboxes, vc->vc_splash_data->splash_sboxcount, vc->vc_splash_data->splash_percent, 1); + boxit(info->screen_base, info->fix.line_length, vc->vc_splash_data->splash_boxes, vc->vc_splash_data->splash_boxcount, vc->vc_splash_data->splash_percent, 1); + } + } + release_console_sem(); + return count; + } + if (!strncmp(buffer,"silent\n",7) || !strncmp(buffer,"verbose\n",8)) { + vc = vc_cons[0].d; + if (vc->vc_splash_data && vc->vc_splash_data->splash_silentjpeg) { + if (vc->vc_splash_data->splash_dosilent != (buffer[0] == 's')) { + vc->vc_splash_data->splash_dosilent = buffer[0] == 's'; + splash_status(vc); + } + } + release_console_sem(); + return count; + } + if (!strncmp(buffer,"freesilent\n",11)) { + vc = vc_cons[0].d; + if (vc->vc_splash_data && vc->vc_splash_data->splash_silentjpeg) { + printk(KERN_INFO "bootsplash: freeing silent jpeg\n"); + vc->vc_splash_data->splash_silentjpeg = 0; + vfree(vc->vc_splash_data->splash_sboxes); + vc->vc_splash_data->splash_sboxes = 0; + vc->vc_splash_data->splash_sboxcount = 0; + if (vc->vc_splash_data->splash_dosilent) + splash_status(vc); + vc->vc_splash_data->splash_dosilent = 0; + } + release_console_sem(); + return count; + } + + if (!strncmp(buffer, "BOOTSPL", 7)) { + int up = -1; + unit = splash_getraw((unsigned char *)buffer, (unsigned char *)buffer + count, &up); + if (unit >= 0) { + vc = vc_cons[unit].d; + if (up == -1) + splash_status(vc); + else { + struct fb_info *info = registered_fb[(int) con2fb_map[vc->vc_num]]; + struct fbcon_ops *ops = info->fbcon_par; + if (ops->blank_state) + up = 0; + if ((up & 2) != 0 && vc->vc_splash_data->splash_silentjpeg && vc->vc_splash_data->splash_dosilent && info->silent_screen_base) + boxit(info->silent_screen_base, info->fix.line_length, vc->vc_splash_data->splash_sboxes, vc->vc_splash_data->splash_sboxcount, vc->vc_splash_data->splash_percent, 1); + if ((up & 1) != 0) + boxit(info->screen_base, info->fix.line_length, vc->vc_splash_data->splash_boxes, vc->vc_splash_data->splash_boxcount, vc->vc_splash_data->splash_percent, 1); + } + } + release_console_sem(); + return count; + } + vc = vc_cons[0].d; + if (!vc->vc_splash_data) { + release_console_sem(); + return count; + } + if (buffer[0] == 't') { + vc->vc_splash_data->splash_state ^= 1; + splash_status(vc); + release_console_sem(); + return count; + } + new = simple_strtoul(buffer, NULL, 0); + if (new > 1) { + /* expert user */ + vc->vc_splash_data->splash_color = new >> 8 & 0xff; + vc->vc_splash_data->splash_fg_color = new >> 4 & 0x0f; + } + if ((new & 1) == vc->vc_splash_data->splash_state) + splash_recolor(vc); + else { + vc->vc_splash_data->splash_state = new & 1; + splash_status(vc); + } + release_console_sem(); + return count; +} + +static int splash_proc_register(void) +{ + if ((proc_splash = create_proc_entry("splash", 0, 0))) { + proc_splash->read_proc = splash_read_proc; + proc_splash->write_proc = splash_write_proc; + return 0; + } + return 1; +} + +# if 0 +static int splash_proc_unregister(void) +{ + if (proc_splash) + remove_proc_entry("splash", 0); + return 0; +} +# endif +#endif /* CONFIG_PROC_FS */ + +void splash_init(void) +{ + struct fb_info *info; + struct vc_data *vc; + int isramfs = 1; + int fd; + int len; + int max_len = 1024*1024*2; + char *mem; + + if (splash_registered) + return; + vc = vc_cons[0].d; + info = registered_fb[0]; + if (!vc || !info || info->var.bits_per_pixel != 16) + return; +#ifdef CONFIG_PROC_FS + splash_proc_register(); +#endif + splash_registered = 1; + if (vc->vc_splash_data) + return; + if ((fd = sys_open("/bootsplash", O_RDONLY, 0)) < 0) { + isramfs = 0; + fd = sys_open("/initrd.image", O_RDONLY, 0); + } + if (fd < 0) + return; + if ((len = (int)sys_lseek(fd, (off_t)0, 2)) <= 0) { + sys_close(fd); + return; + } + /* Don't look for more than the last 2MB */ + if (len > max_len) { + printk( KERN_INFO "bootsplash: scanning last %dMB of initrd for signature\n", + max_len>>20); + sys_lseek(fd, (off_t)(len - max_len), 0); + len = max_len; + } else { + sys_lseek(fd, (off_t)0, 0); + } + + mem = vmalloc(len); + if (mem) { + acquire_console_sem(); + if ((int)sys_read(fd, mem, len) == len && splash_getraw((unsigned char *)mem, (unsigned char *)mem + len, (int *)0) == 0 && vc->vc_splash_data) + vc->vc_splash_data->splash_state = splash_default & 1; + release_console_sem(); + vfree(mem); + } + sys_close(fd); + if (isramfs) + sys_unlink("/bootsplash"); + return; +} + diff -urN linux-2.6.14/drivers/video/bootsplash/bootsplash.h linux-2.6.14-bootsplash/drivers/video/bootsplash/bootsplash.h --- linux-2.6.14/drivers/video/bootsplash/bootsplash.h 1970-01-01 01:00:00.000000000 +0100 +++ linux-2.6.14-bootsplash/drivers/video/bootsplash/bootsplash.h 2005-06-18 09:22:11.000000000 +0200 @@ -0,0 +1,44 @@ +/* + * linux/drivers/video/bootsplash/bootsplash.h - splash screen definition. + * + * (w) 2001-2003 by Volker Poplawski, + * Stefan Reinauer, + * + * + * idea and SuSE screen work by Ken Wimer, + */ + +#ifndef __BOOTSPLASH_H +#define __BOOTSPLASH_H + +struct fb_info; + +/* splash.c */ +extern int splash_prepare(struct vc_data *, struct fb_info *); +extern void splash_init(void); + +/* splash_render.c */ +extern void splash_putcs(struct splash_data *sd, struct vc_data *vc, struct fb_info *info, + const unsigned short *s, int count, int ypos, int xpos); +extern void splash_putc(struct splash_data *sd, struct vc_data *vc, struct fb_info *info, + int c, int ypos, int xpos); +extern void splashcopy(u8 *dst, u8 *src, int height, int width, int dstbytes, int srcbytes); +extern void splash_clear(struct splash_data *sd, struct vc_data *vc, struct fb_info *info, int sy, + int sx, int height, int width); +extern void splash_bmove(struct splash_data *sd, struct vc_data *vc, struct fb_info *info, int sy, + int sx, int dy, int dx, int height, int width); +extern void splash_clear_margins(struct splash_data *sd, struct vc_data *vc, struct fb_info *info, + int bottom_only); +extern int splash_cursor(struct splash_data *sd, struct fb_info *info, struct fb_cursor *cursor); +extern void splash_bmove_redraw(struct splash_data *sd, struct vc_data *vc, struct fb_info *info, + int y, int sx, int dx, int width); +extern void splash_blank(struct splash_data *sd, struct vc_data *vc, struct fb_info *info, + int blank); + +/* vt.c */ +extern void con_remap_def_color(struct vc_data *, int new_color); + +extern void acquire_console_sem(void); +extern void release_console_sem(void); + +#endif diff -urN linux-2.6.14/drivers/video/bootsplash/decode-jpg.c linux-2.6.14-bootsplash/drivers/video/bootsplash/decode-jpg.c --- linux-2.6.14/drivers/video/bootsplash/decode-jpg.c 1970-01-01 01:00:00.000000000 +0100 +++ linux-2.6.14-bootsplash/drivers/video/bootsplash/decode-jpg.c 2005-06-18 09:22:11.000000000 +0200 @@ -0,0 +1,958 @@ +/* + * linux/drivers/video/bootsplash/decode-jpg.c - a tiny jpeg decoder. + * + * (w) August 2001 by Michael Schroeder, + * + */ + +#include +#include +#include + +#include "decode-jpg.h" + +#define ISHIFT 11 + +#define IFIX(a) ((int)((a) * (1 << ISHIFT) + .5)) +#define IMULT(a, b) (((a) * (b)) >> ISHIFT) +#define ITOINT(a) ((a) >> ISHIFT) + +#ifndef __P +# define __P(x) x +#endif + +/* special markers */ +#define M_BADHUFF -1 +#define M_EOF 0x80 + +struct in { + unsigned char *p; + unsigned int bits; + int left; + int marker; + + int (*func) __P((void *)); + void *data; +}; + +/*********************************/ +struct dec_hufftbl; +struct enc_hufftbl; + +union hufftblp { + struct dec_hufftbl *dhuff; + struct enc_hufftbl *ehuff; +}; + +struct scan { + int dc; /* old dc value */ + + union hufftblp hudc; + union hufftblp huac; + int next; /* when to switch to next scan */ + + int cid; /* component id */ + int hv; /* horiz/vert, copied from comp */ + int tq; /* quant tbl, copied from comp */ +}; + +/*********************************/ + +#define DECBITS 10 /* seems to be the optimum */ + +struct dec_hufftbl { + int maxcode[17]; + int valptr[16]; + unsigned char vals[256]; + unsigned int llvals[1 << DECBITS]; +}; + +static void decode_mcus __P((struct in *, int *, int, struct scan *, int *)); +static int dec_readmarker __P((struct in *)); +static void dec_makehuff __P((struct dec_hufftbl *, int *, unsigned char *)); + +static void setinput __P((struct in *, unsigned char *)); +/*********************************/ + +#undef PREC +#define PREC int + +static void idctqtab __P((unsigned char *, PREC *)); +static void idct __P((int *, int *, PREC *, PREC, int)); +static void scaleidctqtab __P((PREC *, PREC)); + +/*********************************/ + +static void initcol __P((PREC[][64])); + +static void col221111 __P((int *, unsigned char *, int)); +static void col221111_16 __P((int *, unsigned char *, int)); + +/*********************************/ + +#define M_SOI 0xd8 +#define M_APP0 0xe0 +#define M_DQT 0xdb +#define M_SOF0 0xc0 +#define M_DHT 0xc4 +#define M_DRI 0xdd +#define M_SOS 0xda +#define M_RST0 0xd0 +#define M_EOI 0xd9 +#define M_COM 0xfe + +static unsigned char *datap; + +static int getbyte(void) +{ + return *datap++; +} + +static int getword(void) +{ + int c1, c2; + c1 = *datap++; + c2 = *datap++; + return c1 << 8 | c2; +} + +struct comp { + int cid; + int hv; + int tq; +}; + +#define MAXCOMP 4 +struct jpginfo { + int nc; /* number of components */ + int ns; /* number of scans */ + int dri; /* restart interval */ + int nm; /* mcus til next marker */ + int rm; /* next restart marker */ +}; + +static struct jpginfo info; +static struct comp comps[MAXCOMP]; + +static struct scan dscans[MAXCOMP]; + +static unsigned char quant[4][64]; + +static struct dec_hufftbl dhuff[4]; + +#define dec_huffdc (dhuff + 0) +#define dec_huffac (dhuff + 2) + +static struct in in; + +static int readtables(int till) +{ + int m, l, i, j, lq, pq, tq; + int tc, th, tt; + + for (;;) { + if (getbyte() != 0xff) + return -1; + if ((m = getbyte()) == till) + break; + + switch (m) { + case 0xc2: + return 0; + + case M_DQT: + lq = getword(); + while (lq > 2) { + pq = getbyte(); + tq = pq & 15; + if (tq > 3) + return -1; + pq >>= 4; + if (pq != 0) + return -1; + for (i = 0; i < 64; i++) + quant[tq][i] = getbyte(); + lq -= 64 + 1; + } + break; + + case M_DHT: + l = getword(); + while (l > 2) { + int hufflen[16], k; + unsigned char huffvals[256]; + + tc = getbyte(); + th = tc & 15; + tc >>= 4; + tt = tc * 2 + th; + if (tc > 1 || th > 1) + return -1; + for (i = 0; i < 16; i++) + hufflen[i] = getbyte(); + l -= 1 + 16; + k = 0; + for (i = 0; i < 16; i++) { + for (j = 0; j < hufflen[i]; j++) + huffvals[k++] = getbyte(); + l -= hufflen[i]; + } + dec_makehuff(dhuff + tt, hufflen, + huffvals); + } + break; + + case M_DRI: + l = getword(); + info.dri = getword(); + break; + + default: + l = getword(); + while (l-- > 2) + getbyte(); + break; + } + } + return 0; +} + +static void dec_initscans(void) +{ + int i; + + info.nm = info.dri + 1; + info.rm = M_RST0; + for (i = 0; i < info.ns; i++) + dscans[i].dc = 0; +} + +static int dec_checkmarker(void) +{ + int i; + + if (dec_readmarker(&in) != info.rm) + return -1; + info.nm = info.dri; + info.rm = (info.rm + 1) & ~0x08; + for (i = 0; i < info.ns; i++) + dscans[i].dc = 0; + return 0; +} + +int jpeg_check_size(unsigned char *buf, int width, int height) +{ + datap = buf; + getbyte(); + getbyte(); + readtables(M_SOF0); + getword(); + getbyte(); + if (height != getword() || width != getword()) + return 0; + return 1; +} + +int jpeg_decode(buf, pic, width, height, depth, decdata) +unsigned char *buf, *pic; +int width, height, depth; +struct jpeg_decdata *decdata; +{ + int i, j, m, tac, tdc; + int mcusx, mcusy, mx, my; + int max[6]; + + if (!decdata || !buf || !pic) + return -1; + datap = buf; + if (getbyte() != 0xff) + return ERR_NO_SOI; + if (getbyte() != M_SOI) + return ERR_NO_SOI; + if (readtables(M_SOF0)) + return ERR_BAD_TABLES; + getword(); + i = getbyte(); + if (i != 8) + return ERR_NOT_8BIT; + if (((getword() + 15) & ~15) != height) + return ERR_HEIGHT_MISMATCH; + if (((getword() + 15) & ~15) != width) + return ERR_WIDTH_MISMATCH; + if ((height & 15) || (width & 15)) + return ERR_BAD_WIDTH_OR_HEIGHT; + info.nc = getbyte(); + if (info.nc > MAXCOMP) + return ERR_TOO_MANY_COMPPS; + for (i = 0; i < info.nc; i++) { + int h, v; + comps[i].cid = getbyte(); + comps[i].hv = getbyte(); + v = comps[i].hv & 15; + h = comps[i].hv >> 4; + comps[i].tq = getbyte(); + if (h > 3 || v > 3) + return ERR_ILLEGAL_HV; + if (comps[i].tq > 3) + return ERR_QUANT_TABLE_SELECTOR; + } + if (readtables(M_SOS)) + return ERR_BAD_TABLES; + getword(); + info.ns = getbyte(); + if (info.ns != 3) + return ERR_NOT_YCBCR_221111; + for (i = 0; i < 3; i++) { + dscans[i].cid = getbyte(); + tdc = getbyte(); + tac = tdc & 15; + tdc >>= 4; + if (tdc > 1 || tac > 1) + return ERR_QUANT_TABLE_SELECTOR; + for (j = 0; j < info.nc; j++) + if (comps[j].cid == dscans[i].cid) + break; + if (j == info.nc) + return ERR_UNKNOWN_CID_IN_SCAN; + dscans[i].hv = comps[j].hv; + dscans[i].tq = comps[j].tq; + dscans[i].hudc.dhuff = dec_huffdc + tdc; + dscans[i].huac.dhuff = dec_huffac + tac; + } + + i = getbyte(); + j = getbyte(); + m = getbyte(); + + if (i != 0 || j != 63 || m != 0) + return ERR_NOT_SEQUENTIAL_DCT; + + if (dscans[0].cid != 1 || dscans[1].cid != 2 || dscans[2].cid != 3) + return ERR_NOT_YCBCR_221111; + + if (dscans[0].hv != 0x22 || dscans[1].hv != 0x11 || dscans[2].hv != 0x11) + return ERR_NOT_YCBCR_221111; + + mcusx = width >> 4; + mcusy = height >> 4; + + + idctqtab(quant[dscans[0].tq], decdata->dquant[0]); + idctqtab(quant[dscans[1].tq], decdata->dquant[1]); + idctqtab(quant[dscans[2].tq], decdata->dquant[2]); + initcol(decdata->dquant); + setinput(&in, datap); + +#if 0 + /* landing zone */ + img[len] = 0; + img[len + 1] = 0xff; + img[len + 2] = M_EOF; +#endif + + dec_initscans(); + + dscans[0].next = 6 - 4; + dscans[1].next = 6 - 4 - 1; + dscans[2].next = 6 - 4 - 1 - 1; /* 411 encoding */ + for (my = 0; my < mcusy; my++) { + for (mx = 0; mx < mcusx; mx++) { + if (info.dri && !--info.nm) + if (dec_checkmarker()) + return ERR_WRONG_MARKER; + + decode_mcus(&in, decdata->dcts, 6, dscans, max); + idct(decdata->dcts, decdata->out, decdata->dquant[0], IFIX(128.5), max[0]); + idct(decdata->dcts + 64, decdata->out + 64, decdata->dquant[0], IFIX(128.5), max[1]); + idct(decdata->dcts + 128, decdata->out + 128, decdata->dquant[0], IFIX(128.5), max[2]); + idct(decdata->dcts + 192, decdata->out + 192, decdata->dquant[0], IFIX(128.5), max[3]); + idct(decdata->dcts + 256, decdata->out + 256, decdata->dquant[1], IFIX(0.5), max[4]); + idct(decdata->dcts + 320, decdata->out + 320, decdata->dquant[2], IFIX(0.5), max[5]); + + switch (depth) { + case 24: + col221111(decdata->out, pic + (my * 16 * mcusx + mx) * 16 * 3, mcusx * 16 * 3); + break; + case 16: + col221111_16(decdata->out, pic + (my * 16 * mcusx + mx) * (16 * 2), mcusx * (16 * 2)); + break; + default: + return ERR_DEPTH_MISMATCH; + break; + } + } + } + + m = dec_readmarker(&in); + if (m != M_EOI) + return ERR_NO_EOI; + + return 0; +} + +/****************************************************************/ +/************** huffman decoder ***************/ +/****************************************************************/ + +static int fillbits __P((struct in *, int, unsigned int)); +static int dec_rec2 +__P((struct in *, struct dec_hufftbl *, int *, int, int)); + +static void setinput(in, p) +struct in *in; +unsigned char *p; +{ + in->p = p; + in->left = 0; + in->bits = 0; + in->marker = 0; +} + +static int fillbits(in, le, bi) +struct in *in; +int le; +unsigned int bi; +{ + int b, m; + + if (in->marker) { + if (le <= 16) + in->bits = bi << 16, le += 16; + return le; + } + while (le <= 24) { + b = *in->p++; + if (b == 0xff && (m = *in->p++) != 0) { + if (m == M_EOF) { + if (in->func && (m = in->func(in->data)) == 0) + continue; + } + in->marker = m; + if (le <= 16) + bi = bi << 16, le += 16; + break; + } + bi = bi << 8 | b; + le += 8; + } + in->bits = bi; /* tmp... 2 return values needed */ + return le; +} + +static int dec_readmarker(in) +struct in *in; +{ + int m; + + in->left = fillbits(in, in->left, in->bits); + if ((m = in->marker) == 0) + return 0; + in->left = 0; + in->marker = 0; + return m; +} + +#define LEBI_DCL int le, bi +#define LEBI_GET(in) (le = in->left, bi = in->bits) +#define LEBI_PUT(in) (in->left = le, in->bits = bi) + +#define GETBITS(in, n) ( \ + (le < (n) ? le = fillbits(in, le, bi), bi = in->bits : 0), \ + (le -= (n)), \ + bi >> le & ((1 << (n)) - 1) \ +) + +#define UNGETBITS(in, n) ( \ + le += (n) \ +) + + +static int dec_rec2(in, hu, runp, c, i) +struct in *in; +struct dec_hufftbl *hu; +int *runp; +int c, i; +{ + LEBI_DCL; + + LEBI_GET(in); + if (i) { + UNGETBITS(in, i & 127); + *runp = i >> 8 & 15; + i >>= 16; + } else { + for (i = DECBITS; (c = ((c << 1) | GETBITS(in, 1))) >= (hu->maxcode[i]); i++); + if (i >= 16) { + in->marker = M_BADHUFF; + return 0; + } + i = hu->vals[hu->valptr[i] + c - hu->maxcode[i - 1] * 2]; + *runp = i >> 4; + i &= 15; + } + if (i == 0) { /* sigh, 0xf0 is 11 bit */ + LEBI_PUT(in); + return 0; + } + /* receive part */ + c = GETBITS(in, i); + if (c < (1 << (i - 1))) + c += (-1 << i) + 1; + LEBI_PUT(in); + return c; +} + +#define DEC_REC(in, hu, r, i) ( \ + r = GETBITS(in, DECBITS), \ + i = hu->llvals[r], \ + i & 128 ? \ + ( \ + UNGETBITS(in, i & 127), \ + r = i >> 8 & 15, \ + i >> 16 \ + ) \ + : \ + ( \ + LEBI_PUT(in), \ + i = dec_rec2(in, hu, &r, r, i), \ + LEBI_GET(in), \ + i \ + ) \ +) + +static void decode_mcus(in, dct, n, sc, maxp) +struct in *in; +int *dct; +int n; +struct scan *sc; +int *maxp; +{ + struct dec_hufftbl *hu; + int i, r, t; + LEBI_DCL; + + memset(dct, 0, n * 64 * sizeof(*dct)); + LEBI_GET(in); + while (n-- > 0) { + hu = sc->hudc.dhuff; + *dct++ = (sc->dc += DEC_REC(in, hu, r, t)); + + hu = sc->huac.dhuff; + i = 63; + while (i > 0) { + t = DEC_REC(in, hu, r, t); + if (t == 0 && r == 0) { + dct += i; + break; + } + dct += r; + *dct++ = t; + i -= r + 1; + } + *maxp++ = 64 - i; + if (n == sc->next) + sc++; + } + LEBI_PUT(in); +} + +static void dec_makehuff(hu, hufflen, huffvals) +struct dec_hufftbl *hu; +int *hufflen; +unsigned char *huffvals; +{ + int code, k, i, j, d, x, c, v; + for (i = 0; i < (1 << DECBITS); i++) + hu->llvals[i] = 0; + +/* + * llvals layout: + * + * value v already known, run r, backup u bits: + * vvvvvvvvvvvvvvvv 0000 rrrr 1 uuuuuuu + * value unknown, size b bits, run r, backup u bits: + * 000000000000bbbb 0000 rrrr 0 uuuuuuu + * value and size unknown: + * 0000000000000000 0000 0000 0 0000000 + */ + code = 0; + k = 0; + for (i = 0; i < 16; i++, code <<= 1) { /* sizes */ + hu->valptr[i] = k; + for (j = 0; j < hufflen[i]; j++) { + hu->vals[k] = *huffvals++; + if (i < DECBITS) { + c = code << (DECBITS - 1 - i); + v = hu->vals[k] & 0x0f; /* size */ + for (d = 1 << (DECBITS - 1 - i); --d >= 0;) { + if (v + i < DECBITS) { /* both fit in table */ + x = d >> (DECBITS - 1 - v - + i); + if (v && x < (1 << (v - 1))) + x += (-1 << v) + 1; + x = x << 16 | (hu-> vals[k] & 0xf0) << 4 | + (DECBITS - (i + 1 + v)) | 128; + } else + x = v << 16 | (hu-> vals[k] & 0xf0) << 4 | + (DECBITS - (i + 1)); + hu->llvals[c | d] = x; + } + } + code++; + k++; + } + hu->maxcode[i] = code; + } + hu->maxcode[16] = 0x20000; /* always terminate decode */ +} + +/****************************************************************/ +/************** idct ***************/ +/****************************************************************/ + +#define ONE ((PREC)IFIX(1.)) +#define S2 ((PREC)IFIX(0.382683432)) +#define C2 ((PREC)IFIX(0.923879532)) +#define C4 ((PREC)IFIX(0.707106781)) + +#define S22 ((PREC)IFIX(2 * 0.382683432)) +#define C22 ((PREC)IFIX(2 * 0.923879532)) +#define IC4 ((PREC)IFIX(1 / 0.707106781)) + +#define C3IC1 ((PREC)IFIX(0.847759065)) /* c3/c1 */ +#define C5IC1 ((PREC)IFIX(0.566454497)) /* c5/c1 */ +#define C7IC1 ((PREC)IFIX(0.198912367)) /* c7/c1 */ + +#define XPP(a,b) (t = a + b, b = a - b, a = t) +#define XMP(a,b) (t = a - b, b = a + b, a = t) +#define XPM(a,b) (t = a + b, b = b - a, a = t) + +#define ROT(a,b,s,c) ( t = IMULT(a + b, s), \ + a = IMULT(a, c - s) + t, \ + b = IMULT(b, c + s) - t) + +#define IDCT \ +( \ + XPP(t0, t1), \ + XMP(t2, t3), \ + t2 = IMULT(t2, IC4) - t3, \ + XPP(t0, t3), \ + XPP(t1, t2), \ + XMP(t4, t7), \ + XPP(t5, t6), \ + XMP(t5, t7), \ + t5 = IMULT(t5, IC4), \ + ROT(t4, t6, S22, C22),\ + t6 -= t7, \ + t5 -= t6, \ + t4 -= t5, \ + XPP(t0, t7), \ + XPP(t1, t6), \ + XPP(t2, t5), \ + XPP(t3, t4) \ +) + +static unsigned char zig2[64] = { + 0, 2, 3, 9, 10, 20, 21, 35, + 14, 16, 25, 31, 39, 46, 50, 57, + 5, 7, 12, 18, 23, 33, 37, 48, + 27, 29, 41, 44, 52, 55, 59, 62, + 15, 26, 30, 40, 45, 51, 56, 58, + 1, 4, 8, 11, 19, 22, 34, 36, + 28, 42, 43, 53, 54, 60, 61, 63, + 6, 13, 17, 24, 32, 38, 47, 49 +}; + +void idct(in, out, quant, off, max) +int *in; +int *out; +PREC *quant; +PREC off; +int max; +{ + PREC t0, t1, t2, t3, t4, t5, t6, t7, t; + PREC tmp[64], *tmpp; + int i, j; + unsigned char *zig2p; + + t0 = off; + if (max == 1) { + t0 += in[0] * quant[0]; + for (i = 0; i < 64; i++) + out[i] = ITOINT(t0); + return; + } + zig2p = zig2; + tmpp = tmp; + for (i = 0; i < 8; i++) { + j = *zig2p++; + t0 += in[j] * quant[j]; + j = *zig2p++; + t5 = in[j] * quant[j]; + j = *zig2p++; + t2 = in[j] * quant[j]; + j = *zig2p++; + t7 = in[j] * quant[j]; + j = *zig2p++; + t1 = in[j] * quant[j]; + j = *zig2p++; + t4 = in[j] * quant[j]; + j = *zig2p++; + t3 = in[j] * quant[j]; + j = *zig2p++; + t6 = in[j] * quant[j]; + IDCT; + tmpp[0 * 8] = t0; + tmpp[1 * 8] = t1; + tmpp[2 * 8] = t2; + tmpp[3 * 8] = t3; + tmpp[4 * 8] = t4; + tmpp[5 * 8] = t5; + tmpp[6 * 8] = t6; + tmpp[7 * 8] = t7; + tmpp++; + t0 = 0; + } + for (i = 0; i < 8; i++) { + t0 = tmp[8 * i + 0]; + t1 = tmp[8 * i + 1]; + t2 = tmp[8 * i + 2]; + t3 = tmp[8 * i + 3]; + t4 = tmp[8 * i + 4]; + t5 = tmp[8 * i + 5]; + t6 = tmp[8 * i + 6]; + t7 = tmp[8 * i + 7]; + IDCT; + out[8 * i + 0] = ITOINT(t0); + out[8 * i + 1] = ITOINT(t1); + out[8 * i + 2] = ITOINT(t2); + out[8 * i + 3] = ITOINT(t3); + out[8 * i + 4] = ITOINT(t4); + out[8 * i + 5] = ITOINT(t5); + out[8 * i + 6] = ITOINT(t6); + out[8 * i + 7] = ITOINT(t7); + } +} + +static unsigned char zig[64] = { + 0, 1, 5, 6, 14, 15, 27, 28, + 2, 4, 7, 13, 16, 26, 29, 42, + 3, 8, 12, 17, 25, 30, 41, 43, + 9, 11, 18, 24, 31, 40, 44, 53, + 10, 19, 23, 32, 39, 45, 52, 54, + 20, 22, 33, 38, 46, 51, 55, 60, + 21, 34, 37, 47, 50, 56, 59, 61, + 35, 36, 48, 49, 57, 58, 62, 63 +}; + +static PREC aaidct[8] = { + IFIX(0.3535533906), IFIX(0.4903926402), + IFIX(0.4619397663), IFIX(0.4157348062), + IFIX(0.3535533906), IFIX(0.2777851165), + IFIX(0.1913417162), IFIX(0.0975451610) +}; + + +static void idctqtab(qin, qout) +unsigned char *qin; +PREC *qout; +{ + int i, j; + + for (i = 0; i < 8; i++) + for (j = 0; j < 8; j++) + qout[zig[i * 8 + j]] = qin[zig[i * 8 + j]] * + IMULT(aaidct[i], aaidct[j]); +} + +static void scaleidctqtab(q, sc) +PREC *q; +PREC sc; +{ + int i; + + for (i = 0; i < 64; i++) + q[i] = IMULT(q[i], sc); +} + +/****************************************************************/ +/************** color decoder ***************/ +/****************************************************************/ + +#define ROUND + +/* + * YCbCr Color transformation: + * + * y:0..255 Cb:-128..127 Cr:-128..127 + * + * R = Y + 1.40200 * Cr + * G = Y - 0.34414 * Cb - 0.71414 * Cr + * B = Y + 1.77200 * Cb + * + * => + * Cr *= 1.40200; + * Cb *= 1.77200; + * Cg = 0.19421 * Cb + .50937 * Cr; + * R = Y + Cr; + * G = Y - Cg; + * B = Y + Cb; + * + * => + * Cg = (50 * Cb + 130 * Cr + 128) >> 8; + */ + +static void initcol(q) +PREC q[][64]; +{ + scaleidctqtab(q[1], IFIX(1.77200)); + scaleidctqtab(q[2], IFIX(1.40200)); +} + +/* This is optimized for the stupid sun SUNWspro compiler. */ +#define STORECLAMP(a,x) \ +( \ + (a) = (x), \ + (unsigned int)(x) >= 256 ? \ + ((a) = (x) < 0 ? 0 : 255) \ + : \ + 0 \ +) + +#define CLAMP(x) ((unsigned int)(x) >= 256 ? ((x) < 0 ? 0 : 255) : (x)) + +#ifdef ROUND + +#define CBCRCG(yin, xin) \ +( \ + cb = outc[0 +yin*8+xin], \ + cr = outc[64+yin*8+xin], \ + cg = (50 * cb + 130 * cr + 128) >> 8 \ +) + +#else + +#define CBCRCG(yin, xin) \ +( \ + cb = outc[0 +yin*8+xin], \ + cr = outc[64+yin*8+xin], \ + cg = (3 * cb + 8 * cr) >> 4 \ +) + +#endif + +#define PIC(yin, xin, p, xout) \ +( \ + y = outy[(yin) * 8 + xin], \ + STORECLAMP(p[(xout) * 3 + 0], y + cr), \ + STORECLAMP(p[(xout) * 3 + 1], y - cg), \ + STORECLAMP(p[(xout) * 3 + 2], y + cb) \ +) + +#ifdef __LITTLE_ENDIAN +#define PIC_16(yin, xin, p, xout, add) \ +( \ + y = outy[(yin) * 8 + xin], \ + y = ((CLAMP(y + cr + add*2+1) & 0xf8) << 8) | \ + ((CLAMP(y - cg + add ) & 0xfc) << 3) | \ + ((CLAMP(y + cb + add*2+1) ) >> 3), \ + p[(xout) * 2 + 0] = y & 0xff, \ + p[(xout) * 2 + 1] = y >> 8 \ +) +#else +#ifdef CONFIG_PPC +#define PIC_16(yin, xin, p, xout, add) \ +( \ + y = outy[(yin) * 8 + xin], \ + y = ((CLAMP(y + cr + add*2+1) & 0xf8) << 7) | \ + ((CLAMP(y - cg + add*2+1) & 0xf8) << 2) | \ + ((CLAMP(y + cb + add*2+1) ) >> 3), \ + p[(xout) * 2 + 0] = y >> 8, \ + p[(xout) * 2 + 1] = y & 0xff \ +) +#else +#define PIC_16(yin, xin, p, xout, add) \ +( \ + y = outy[(yin) * 8 + xin], \ + y = ((CLAMP(y + cr + add*2+1) & 0xf8) << 8) | \ + ((CLAMP(y - cg + add ) & 0xfc) << 3) | \ + ((CLAMP(y + cb + add*2+1) ) >> 3), \ + p[(xout) * 2 + 0] = y >> 8, \ + p[(xout) * 2 + 1] = y & 0xff \ +) +#endif +#endif + +#define PIC221111(xin) \ +( \ + CBCRCG(0, xin), \ + PIC(xin / 4 * 8 + 0, (xin & 3) * 2 + 0, pic0, xin * 2 + 0), \ + PIC(xin / 4 * 8 + 0, (xin & 3) * 2 + 1, pic0, xin * 2 + 1), \ + PIC(xin / 4 * 8 + 1, (xin & 3) * 2 + 0, pic1, xin * 2 + 0), \ + PIC(xin / 4 * 8 + 1, (xin & 3) * 2 + 1, pic1, xin * 2 + 1) \ +) + +#define PIC221111_16(xin) \ +( \ + CBCRCG(0, xin), \ + PIC_16(xin / 4 * 8 + 0, (xin & 3) * 2 + 0, pic0, xin * 2 + 0, 3), \ + PIC_16(xin / 4 * 8 + 0, (xin & 3) * 2 + 1, pic0, xin * 2 + 1, 0), \ + PIC_16(xin / 4 * 8 + 1, (xin & 3) * 2 + 0, pic1, xin * 2 + 0, 1), \ + PIC_16(xin / 4 * 8 + 1, (xin & 3) * 2 + 1, pic1, xin * 2 + 1, 2) \ +) + +static void col221111(out, pic, width) +int *out; +unsigned char *pic; +int width; +{ + int i, j, k; + unsigned char *pic0, *pic1; + int *outy, *outc; + int cr, cg, cb, y; + + pic0 = pic; + pic1 = pic + width; + outy = out; + outc = out + 64 * 4; + for (i = 2; i > 0; i--) { + for (j = 4; j > 0; j--) { + for (k = 0; k < 8; k++) { + PIC221111(k); + } + outc += 8; + outy += 16; + pic0 += 2 * width; + pic1 += 2 * width; + } + outy += 64 * 2 - 16 * 4; + } +} + +static void col221111_16(out, pic, width) +int *out; +unsigned char *pic; +int width; +{ + int i, j, k; + unsigned char *pic0, *pic1; + int *outy, *outc; + int cr, cg, cb, y; + + pic0 = pic; + pic1 = pic + width; + outy = out; + outc = out + 64 * 4; + for (i = 2; i > 0; i--) { + for (j = 4; j > 0; j--) { + for (k = 0; k < 8; k++) { + PIC221111_16(k); + } + outc += 8; + outy += 16; + pic0 += 2 * width; + pic1 += 2 * width; + } + outy += 64 * 2 - 16 * 4; + } +} diff -urN linux-2.6.14/drivers/video/bootsplash/decode-jpg.h linux-2.6.14-bootsplash/drivers/video/bootsplash/decode-jpg.h --- linux-2.6.14/drivers/video/bootsplash/decode-jpg.h 1970-01-01 01:00:00.000000000 +0100 +++ linux-2.6.14-bootsplash/drivers/video/bootsplash/decode-jpg.h 2005-06-18 09:22:11.000000000 +0200 @@ -0,0 +1,35 @@ +/* + * linux/drivers/video/bootsplash/decode-jpg.h - a tiny jpeg decoder. + * + * (w) August 2001 by Michael Schroeder, + */ + +#ifndef __DECODE_JPG_H +#define __DECODE_JPG_H + +#define ERR_NO_SOI 1 +#define ERR_NOT_8BIT 2 +#define ERR_HEIGHT_MISMATCH 3 +#define ERR_WIDTH_MISMATCH 4 +#define ERR_BAD_WIDTH_OR_HEIGHT 5 +#define ERR_TOO_MANY_COMPPS 6 +#define ERR_ILLEGAL_HV 7 +#define ERR_QUANT_TABLE_SELECTOR 8 +#define ERR_NOT_YCBCR_221111 9 +#define ERR_UNKNOWN_CID_IN_SCAN 10 +#define ERR_NOT_SEQUENTIAL_DCT 11 +#define ERR_WRONG_MARKER 12 +#define ERR_NO_EOI 13 +#define ERR_BAD_TABLES 14 +#define ERR_DEPTH_MISMATCH 15 + +struct jpeg_decdata { + int dcts[6 * 64 + 16]; + int out[64 * 6]; + int dquant[3][64]; +}; + +extern int jpeg_decode(unsigned char *, unsigned char *, int, int, int, struct jpeg_decdata *); +extern int jpeg_check_size(unsigned char *, int, int); + +#endif diff -urN linux-2.6.14/drivers/video/bootsplash/Kconfig linux-2.6.14-bootsplash/drivers/video/bootsplash/Kconfig --- linux-2.6.14/drivers/video/bootsplash/Kconfig 1970-01-01 01:00:00.000000000 +0100 +++ linux-2.6.14-bootsplash/drivers/video/bootsplash/Kconfig 2005-06-18 09:22:11.000000000 +0200 @@ -0,0 +1,17 @@ +# +# Bootsplash configuration +# + +menu "Bootsplash configuration" + +config BOOTSPLASH + bool "Bootup splash screen" + depends on FRAMEBUFFER_CONSOLE && FB_VESA + default n + ---help--- + This option enables the Linux bootsplash screen. For more + information on the bootsplash screen have a look at + http://www.bootsplash.org/. + If you are unsure, say N +endmenu + diff -urN linux-2.6.14/drivers/video/bootsplash/Makefile linux-2.6.14-bootsplash/drivers/video/bootsplash/Makefile --- linux-2.6.14/drivers/video/bootsplash/Makefile 1970-01-01 01:00:00.000000000 +0100 +++ linux-2.6.14-bootsplash/drivers/video/bootsplash/Makefile 2005-06-18 09:22:11.000000000 +0200 @@ -0,0 +1,5 @@ +# Makefile for the Linux bootsplash + +obj-$(CONFIG_BOOTSPLASH) += bootsplash.o +obj-$(CONFIG_BOOTSPLASH) += decode-jpg.o +obj-$(CONFIG_BOOTSPLASH) += render.o diff -urN linux-2.6.14/drivers/video/bootsplash/render.c linux-2.6.14-bootsplash/drivers/video/bootsplash/render.c --- linux-2.6.14/drivers/video/bootsplash/render.c 1970-01-01 01:00:00.000000000 +0100 +++ linux-2.6.14-bootsplash/drivers/video/bootsplash/render.c 2005-06-18 09:22:11.000000000 +0200 @@ -0,0 +1,316 @@ +/* + * linux/drivers/video/bootsplash/render.c - splash screen render functions. + */ + +#include +#include +#include +#include +#include +#include +#include + +#include "../console/fbcon.h" +#include "bootsplash.h" + +void splash_putcs(struct splash_data *sd, struct vc_data *vc, struct fb_info *info, + const unsigned short *s, int count, int ypos, int xpos) +{ + unsigned short charmask = vc->vc_hi_font_mask ? 0x1ff : 0xff; + int bgshift = (vc->vc_hi_font_mask) ? 13 : 12; + int fgshift = (vc->vc_hi_font_mask) ? 9 : 8; + u8 *src; + u8 *dst, *splashsrc; + unsigned int d, x, y; + u32 dd, fgx, bgx; + u16 c = scr_readw(s); + + int fg_color, bg_color, transparent; + fg_color = attr_fgcol(fgshift, c); + bg_color = attr_bgcol(bgshift, c); + transparent = sd->splash_color == bg_color; + xpos = xpos * vc->vc_font.width + sd->splash_text_xo; + ypos = ypos * vc->vc_font.height + sd->splash_text_yo; + splashsrc = (u8 *)(info->splash_pic + ypos * info->splash_bytes + xpos * 2); + dst = (u8 *)(info->screen_base + ypos * info->fix.line_length + xpos * 2); + + fgx = ((u32 *)info->pseudo_palette)[fg_color]; + if (transparent && sd->splash_color == 15) { + if (fgx == 0xffea) + fgx = 0xfe4a; + else if (fgx == 0x57ea) + fgx = 0x0540; + else if (fgx == 0xffff) + fgx = 0x52aa; + } + bgx = ((u32 *)info->pseudo_palette)[bg_color]; + d = 0; + + while (count--) { + c = scr_readw(s++); + src = vc->vc_font.data + (c & charmask) * vc->vc_font.height * ((vc->vc_font.width + 7) >> 3); + + for (y = 0; y < vc->vc_font.height; y++) { + for (x = 0; x < vc->vc_font.width; x += 2) { + if ((x & 7) == 0) + d = *src++; + if (d & 0x80) + dd = fgx; + else + dd = transparent ? *(u16 *)splashsrc : bgx; + splashsrc += 2; + if (d & 0x40) + dd |= fgx << 16; + else + dd |= (transparent ? *(u16 *)splashsrc : bgx) << 16; + splashsrc += 2; + d <<= 2; + fb_writel(dd, dst); + dst += 4; + } + dst += info->fix.line_length - vc->vc_font.width * 2; + splashsrc += info->splash_bytes - vc->vc_font.width * 2; + } + dst -= info->fix.line_length * vc->vc_font.height - vc->vc_font.width * 2; + splashsrc -= info->splash_bytes * vc->vc_font.height - vc->vc_font.width * 2; + } +} + +static void splash_renderc(struct splash_data *sd, struct fb_info *info, int fg_color, int bg_color, u8 *src, int ypos, int xpos, int height, int width) +{ + int transparent = sd->splash_color == bg_color; + u32 dd, fgx, bgx; + u8 *dst, *splashsrc; + unsigned int d, x, y; + + splashsrc = (u8 *)(info->splash_pic + ypos * info->splash_bytes + xpos * 2); + dst = (u8 *)(info->screen_base + ypos * info->fix.line_length + xpos * 2); + fgx = ((u32 *)info->pseudo_palette)[fg_color]; + if (transparent && sd->splash_color == 15) { + if (fgx == 0xffea) + fgx = 0xfe4a; + else if (fgx == 0x57ea) + fgx = 0x0540; + else if (fgx == 0xffff) + fgx = 0x52aa; + } + bgx = ((u32 *)info->pseudo_palette)[bg_color]; + d = 0; + for (y = 0; y < height; y++) { + for (x = 0; x < width; x += 2) { + if ((x & 7) == 0) + d = *src++; + if (d & 0x80) + dd = fgx; + else + dd = transparent ? *(u16 *)splashsrc : bgx; + splashsrc += 2; + if (d & 0x40) + dd |= fgx << 16; + else + dd |= (transparent ? *(u16 *)splashsrc : bgx) << 16; + splashsrc += 2; + d <<= 2; + fb_writel(dd, dst); + dst += 4; + } + dst += info->fix.line_length - width * 2; + splashsrc += info->splash_bytes - width * 2; + } +} + +void splash_putc(struct splash_data *sd, struct vc_data *vc, struct fb_info *info, + int c, int ypos, int xpos) +{ + unsigned short charmask = vc->vc_hi_font_mask ? 0x1ff : 0xff; + int bgshift = (vc->vc_hi_font_mask) ? 13 : 12; + int fgshift = (vc->vc_hi_font_mask) ? 9 : 8; + u8 *src = vc->vc_font.data + (c & charmask) * vc->vc_font.height * ((vc->vc_font.width + 7) >> 3); + xpos = xpos * vc->vc_font.width + sd->splash_text_xo; + ypos = ypos * vc->vc_font.height + sd->splash_text_yo; + splash_renderc(sd, info, attr_fgcol(fgshift, c), attr_bgcol(bgshift, c), src, ypos, xpos, vc->vc_font.height, vc->vc_font.width); +} + +void splashcopy(u8 *dst, u8 *src, int height, int width, int dstbytes, int srcbytes) +{ + int i; + + while (height-- > 0) { + u32 *p = (u32 *)dst; + u32 *q = (u32 *)src; + for (i=0; i < width/4; i++) { + fb_writel(*q++,p++); + fb_writel(*q++,p++); + } + if (width & 2) + fb_writel(*q++,p++); + if (width & 1) + fb_writew(*(u16*)q,(u16*)p); + dst += dstbytes; + src += srcbytes; + } +} + +static void splashset(u8 *dst, int height, int width, int dstbytes, u32 bgx) { + int i; + + bgx |= bgx << 16; + while (height-- > 0) { + u32 *p = (u32 *)dst; + for (i=0; i < width/4; i++) { + fb_writel(bgx,p++); + fb_writel(bgx,p++); + } + if (width & 2) + fb_writel(bgx,p++); + if (width & 1) + fb_writew(bgx,(u16*)p); + dst += dstbytes; + } +} + +static void splashfill(struct fb_info *info, int sy, int sx, int height, int width) { + splashcopy((u8 *)(info->screen_base + sy * info->fix.line_length + sx * 2), (u8 *)(info->splash_pic + sy * info->splash_bytes + sx * 2), height, width, info->fix.line_length, info->splash_bytes); +} + +void splash_clear(struct splash_data *sd, struct vc_data *vc, struct fb_info *info, int sy, + int sx, int height, int width) +{ + int bgshift = (vc->vc_hi_font_mask) ? 13 : 12; + int bg_color = attr_bgcol_ec(bgshift, vc); + int transparent = sd->splash_color == bg_color; + u32 bgx; + u8 *dst; + + sy = sy * vc->vc_font.height + sd->splash_text_yo; + sx = sx * vc->vc_font.width + sd->splash_text_xo; + height *= vc->vc_font.height; + width *= vc->vc_font.width; + if (transparent) { + splashfill(info, sy, sx, height, width); + return; + } + dst = (u8 *)(info->screen_base + sy * info->fix.line_length + sx * 2); + bgx = ((u32 *)info->pseudo_palette)[bg_color]; + splashset(dst, height, width, info->fix.line_length, bgx); +} + +void splash_bmove(struct splash_data *sd, struct vc_data *vc, struct fb_info *info, int sy, + int sx, int dy, int dx, int height, int width) +{ + struct fb_copyarea area; + + area.sx = sx * vc->vc_font.width; + area.sy = sy * vc->vc_font.height; + area.dx = dx * vc->vc_font.width; + area.dy = dy * vc->vc_font.height; + area.sx += sd->splash_text_xo; + area.sy += sd->splash_text_yo; + area.dx += sd->splash_text_xo; + area.dy += sd->splash_text_yo; + area.height = height * vc->vc_font.height; + area.width = width * vc->vc_font.width; + + info->fbops->fb_copyarea(info, &area); +} + +void splash_clear_margins(struct splash_data *sd, struct vc_data *vc, struct fb_info *info, + int bottom_only) +{ + unsigned int tw = vc->vc_cols*vc->vc_font.width; + unsigned int th = vc->vc_rows*vc->vc_font.height; + + if (!bottom_only) { + /* top margin */ + splashfill(info, 0, 0, sd->splash_text_yo, info->var.xres); + /* left margin */ + splashfill(info, sd->splash_text_yo, 0, th, sd->splash_text_xo); + /* right margin */ + splashfill(info, sd->splash_text_yo, sd->splash_text_xo + tw, th, info->var.xres - sd->splash_text_xo - tw); + + } + splashfill(info, sd->splash_text_yo + th, 0, info->var.yres - sd->splash_text_yo - th, info->var.xres); +} + +int splash_cursor(struct splash_data *sd, struct fb_info *info, struct fb_cursor *cursor) +{ + int i; + unsigned int dsize, s_pitch; + + if (info->state != FBINFO_STATE_RUNNING) + return 0; + + s_pitch = (cursor->image.width + 7) >> 3; + dsize = s_pitch * cursor->image.height; + if (cursor->enable) { + switch (cursor->rop) { + case ROP_XOR: + for (i = 0; i < dsize; i++) + info->fb_cursordata[i] = cursor->image.data[i] ^ cursor->mask[i]; + break; + case ROP_COPY: + default: + for (i = 0; i < dsize; i++) + info->fb_cursordata[i] = cursor->image.data[i] & cursor->mask[i]; + break; + } + } else if (info->fb_cursordata != cursor->image.data) + memcpy(info->fb_cursordata, cursor->image.data, dsize); + cursor->image.data = info->fb_cursordata; + splash_renderc(sd, info, cursor->image.fg_color, cursor->image.bg_color, (u8 *)info->fb_cursordata, cursor->image.dy + sd->splash_text_yo, cursor->image.dx + sd->splash_text_xo, cursor->image.height, cursor->image.width); + return 0; +} + +void splash_bmove_redraw(struct splash_data *sd, struct vc_data *vc, struct fb_info *info, int y, int sx, int dx, int width) +{ + unsigned short *d = (unsigned short *) (vc->vc_origin + vc->vc_size_row * y + dx * 2); + unsigned short *s = d + (dx - sx); + unsigned short *start = d; + unsigned short *ls = d; + unsigned short *le = d + width; + unsigned short c; + int x = dx; + unsigned short attr = 1; + + do { + c = scr_readw(d); + if (attr != (c & 0xff00)) { + attr = c & 0xff00; + if (d > start) { + splash_putcs(sd, vc, info, start, d - start, y, x); + x += d - start; + start = d; + } + } + if (s >= ls && s < le && c == scr_readw(s)) { + if (d > start) { + splash_putcs(sd, vc, info, start, d - start, y, x); + x += d - start + 1; + start = d + 1; + } else { + x++; + start++; + } + } + s++; + d++; + } while (d < le); + if (d > start) + splash_putcs(sd, vc, info, start, d - start, y, x); +} + +void splash_blank(struct splash_data *sd, struct vc_data *vc, struct fb_info *info, int blank) +{ + if (blank) { + if (info->silent_screen_base) + splashset((u8 *)info->silent_screen_base, info->var.yres, info->var.xres, info->fix.line_length, 0); + splashset((u8 *)info->screen_base, info->var.yres, info->var.xres, info->fix.line_length, 0); + } else { + if (info->silent_screen_base) + splash_prepare(vc, info); + splash_clear_margins(vc->vc_splash_data, vc, info, 0); + /* no longer needed, done in fbcon_blank */ + /* update_screen(vc->vc_num); */ + } +} + diff -urN linux-2.6.14/drivers/video/console/bitblit.c linux-2.6.14-bootsplash/drivers/video/console/bitblit.c --- linux-2.6.14/drivers/video/console/bitblit.c 2005-06-17 21:48:29.000000000 +0200 +++ linux-2.6.14-bootsplash/drivers/video/console/bitblit.c 2005-06-18 09:22:11.000000000 +0200 @@ -18,6 +18,9 @@ #include #include #include "fbcon.h" +#ifdef CONFIG_BOOTSPLASH +#include "../bootsplash/bootsplash.h" +#endif /* * Accelerated handlers. @@ -77,6 +80,13 @@ { struct fb_copyarea area; +#ifdef CONFIG_BOOTSPLASH + if (info->splash_data) { + splash_bmove(info->splash_data, vc, info, + sy, sx, dy, dx, height, width); + return; + } +#endif area.sx = sx * vc->vc_font.width; area.sy = sy * vc->vc_font.height; area.dx = dx * vc->vc_font.width; @@ -93,6 +103,13 @@ int bgshift = (vc->vc_hi_font_mask) ? 13 : 12; struct fb_fillrect region; +#ifdef CONFIG_BOOTSPLASH + if (info->splash_data) { + splash_clear(info->splash_data, vc, info, + sy, sx, height, width); + return; + } +#endif region.color = attr_bgcol_ec(bgshift, vc); region.dx = sx * vc->vc_font.width; region.dy = sy * vc->vc_font.height; @@ -127,6 +144,13 @@ struct fb_image image; u8 *src, *dst, *buf = NULL; +#ifdef CONFIG_BOOTSPLASH + if (info->splash_data) { + splash_putcs(info->splash_data, vc, info, s, count, yy, xx); + return; + } +#endif + if (attribute) { buf = kmalloc(cellsize, GFP_KERNEL); if (!buf) @@ -218,6 +242,13 @@ unsigned int bs = info->var.yres - bh; struct fb_fillrect region; +#ifdef CONFIG_BOOTSPLASH + if (info->splash_data) { + splash_clear_margins(info->splash_data, vc, info, bottom_only); + return; + } +#endif + region.color = attr_bgcol_ec(bgshift, vc); region.rop = ROP_COPY; @@ -383,6 +414,13 @@ cursor.image.depth = 1; cursor.rop = ROP_XOR; +#ifdef CONFIG_BOOTSPLASH + if (info->splash_data) { + splash_cursor(info->splash_data, info, &cursor); + ops->cursor_reset = 0; + return; + } +#endif info->fbops->fb_cursor(info, &cursor); ops->cursor_reset = 0; diff -urN linux-2.6.14/drivers/video/console/fbcon.c linux-2.6.14-bootsplash/drivers/video/console/fbcon.c --- linux-2.6.14/drivers/video/console/fbcon.c 2005-10-28 02:02:08.000000000 +0200 +++ linux-2.6.14-bootsplash/drivers/video/console/fbcon.c 2005-10-28 11:07:14.000000000 +0200 @@ -93,6 +93,9 @@ #endif #include "fbcon.h" +#ifdef CONFIG_BOOTSPLASH +#include "../bootsplash/bootsplash.h" +#endif #ifdef FBCONDEBUG # define DPRINTK(fmt, args...) printk(KERN_DEBUG "%s: " fmt, __FUNCTION__ , ## args) @@ -107,7 +110,7 @@ }; struct display fb_display[MAX_NR_CONSOLES]; -static signed char con2fb_map[MAX_NR_CONSOLES]; +signed char con2fb_map[MAX_NR_CONSOLES]; static signed char con2fb_map_boot[MAX_NR_CONSOLES]; static int logo_height; static int logo_lines; @@ -452,6 +455,10 @@ for (i = first_fb_vc; i <= last_fb_vc; i++) con2fb_map[i] = info_idx; +#ifdef CONFIG_BOOTSPLASH + splash_init(); +#endif + err = take_over_console(&fb_con, first_fb_vc, last_fb_vc, fbcon_is_default); if (err) { @@ -969,6 +976,16 @@ rows = vc->vc_rows; new_cols = info->var.xres / vc->vc_font.width; new_rows = info->var.yres / vc->vc_font.height; + +#ifdef CONFIG_BOOTSPLASH + if (vc->vc_splash_data && vc->vc_splash_data->splash_state) { + new_cols = vc->vc_splash_data->splash_text_wi / vc->vc_font.width; + new_rows = vc->vc_splash_data->splash_text_he / vc->vc_font.height; + logo = 0; + con_remap_def_color(vc, vc->vc_splash_data->splash_color << 4 | vc->vc_splash_data->splash_fg_color); + } +#endif + vc_resize(vc, new_cols, new_rows); ops = info->fbcon_par; @@ -1603,6 +1620,10 @@ fbcon_softback_note(vc, t, count); if (logo_shown >= 0) goto redraw_up; +#ifdef CONFIG_BOOTSPLASH + if (info->splash_data) + goto redraw_up; +#endif switch (p->scrollmode) { case SCROLL_MOVE: ops->bmove(vc, info, t + count, 0, t, 0, @@ -1687,6 +1708,10 @@ case SM_DOWN: if (count > vc->vc_rows) /* Maximum realistic size */ count = vc->vc_rows; +#ifdef CONFIG_BOOTSPLASH + if (info->splash_data) + goto redraw_down; +#endif if (logo_shown >= 0) goto redraw_down; switch (p->scrollmode) { @@ -1831,6 +1856,14 @@ } return; } + +#ifdef CONFIG_BOOTSPLASH + if (info->splash_data && sy == dy && height == 1) { + /* must use slower redraw bmove to keep background pic intact */ + splash_bmove_redraw(info->splash_data, vc, info, sy, sx, dx, width); + return; + } +#endif ops->bmove(vc, info, real_y(p, sy), sx, real_y(p, dy), dx, height, width); } @@ -1932,6 +1965,10 @@ info = registered_fb[con2fb_map[vc->vc_num]]; +#ifdef CONFIG_BOOTSPLASH + splash_prepare(vc, info); +#endif + if (softback_top) { int l = fbcon_softback_size / vc->vc_size_row; if (softback_lines) @@ -2039,6 +2076,12 @@ static void fbcon_generic_blank(struct vc_data *vc, struct fb_info *info, int blank) { +#ifdef CONFIG_BOOTSPLASH + if (info->splash_data) { + splash_blank(info->splash_data, vc, info, blank); + return; + } +#endif if (blank) { unsigned short charmask = vc->vc_hi_font_mask ? 0x1ff : 0xff; @@ -2232,8 +2275,15 @@ } if (resize) { + u32 xres = info->var.xres, yres = info->var.yres; /* reset wrap/pan */ info->var.xoffset = info->var.yoffset = p->yscroll = 0; +#ifdef CONFIG_BOOTSPLASH + if (info->splash_data) { + xres = info->splash_data->splash_text_wi; + yres = info->splash_data->splash_text_he; + } +#endif vc_resize(vc, info->var.xres / w, info->var.yres / h); if (CON_IS_VISIBLE(vc) && softback_buf) { int l = fbcon_softback_size / vc->vc_size_row; diff -urN linux-2.6.14/drivers/video/console/fbcon.h linux-2.6.14-bootsplash/drivers/video/console/fbcon.h --- linux-2.6.14/drivers/video/console/fbcon.h 2005-06-17 21:48:29.000000000 +0200 +++ linux-2.6.14-bootsplash/drivers/video/console/fbcon.h 2005-06-18 09:22:11.000000000 +0200 @@ -25,6 +25,34 @@ * low-level frame buffer device */ +#ifdef CONFIG_BOOTSPLASH +struct splash_data { + int splash_state; /* show splash? */ + int splash_color; /* transparent color */ + int splash_fg_color; /* foreground color */ + int splash_width; /* width of image */ + int splash_height; /* height of image */ + int splash_text_xo; /* text area origin */ + int splash_text_yo; + int splash_text_wi; /* text area size */ + int splash_text_he; + int splash_showtext; /* silent/verbose mode */ + int splash_boxcount; + int splash_percent; + int splash_overpaintok; /* is it ok to overpaint boxes */ + int splash_palcnt; + char *oldscreen_base; /* pointer to top of virtual screen */ + unsigned char *splash_boxes; + unsigned char *splash_jpeg; /* jpeg */ + unsigned char *splash_palette; /* palette for 8-bit */ + + int splash_dosilent; /* show silent jpeg */ + unsigned char *splash_silentjpeg; + unsigned char *splash_sboxes; + int splash_sboxcount; +}; +#endif + struct display { /* Filled in by the frame buffer device */ u_short inverse; /* != 0 text black on white as default */ diff -urN linux-2.6.14/drivers/video/Kconfig linux-2.6.14-bootsplash/drivers/video/Kconfig --- linux-2.6.14/drivers/video/Kconfig 2005-06-17 21:48:29.000000000 +0200 +++ linux-2.6.14-bootsplash/drivers/video/Kconfig 2005-06-18 09:22:11.000000000 +0200 @@ -1501,5 +1501,9 @@ source "drivers/video/backlight/Kconfig" endif +if FB + source "drivers/video/bootsplash/Kconfig" +endif + endmenu diff -urN linux-2.6.14/drivers/video/Makefile linux-2.6.14-bootsplash/drivers/video/Makefile --- linux-2.6.14/drivers/video/Makefile 2005-06-17 21:48:29.000000000 +0200 +++ linux-2.6.14-bootsplash/drivers/video/Makefile 2005-06-18 09:22:11.000000000 +0200 @@ -7,6 +7,7 @@ obj-$(CONFIG_VT) += console/ obj-$(CONFIG_LOGO) += logo/ obj-$(CONFIG_SYSFS) += backlight/ +obj-$(CONFIG_BOOTSPLASH) += bootsplash/ obj-$(CONFIG_FB) += fb.o fb-y := fbmem.o fbmon.o fbcmap.o fbsysfs.o modedb.o diff -urN linux-2.6.14/drivers/video/vesafb.c linux-2.6.14-bootsplash/drivers/video/vesafb.c --- linux-2.6.14/drivers/video/vesafb.c 2005-06-17 21:48:29.000000000 +0200 +++ linux-2.6.14-bootsplash/drivers/video/vesafb.c 2005-06-18 09:22:11.000000000 +0200 @@ -172,7 +172,10 @@ return 0; } -static struct fb_ops vesafb_ops = { +#ifndef CONFIG_BOOTSPLASH +static +#endif +struct fb_ops vesafb_ops = { .owner = THIS_MODULE, .fb_setcolreg = vesafb_setcolreg, .fb_pan_display = vesafb_pan_display, @@ -257,6 +260,9 @@ * option to simply use size_total as that * wastes plenty of kernel address space. */ size_remap = size_vmode * 2; +#ifdef CONFIG_BOOTSPLASH + size_remap *= 2; /* some more for the images */ +#endif if (vram_remap) size_remap = vram_remap * 1024 * 1024; if (size_remap < size_vmode) diff -urN linux-2.6.14/include/linux/console_struct.h linux-2.6.14-bootsplash/include/linux/console_struct.h --- linux-2.6.14/include/linux/console_struct.h 2005-06-17 21:48:29.000000000 +0200 +++ linux-2.6.14-bootsplash/include/linux/console_struct.h 2005-06-18 09:22:11.000000000 +0200 @@ -95,6 +95,9 @@ struct vc_data **vc_display_fg; /* [!] Ptr to var holding fg console for this display */ unsigned long vc_uni_pagedir; unsigned long *vc_uni_pagedir_loc; /* [!] Location of uni_pagedir variable for this console */ +#ifdef CONFIG_BOOTSPLASH + struct splash_data *vc_splash_data; +#endif /* additional information is in vt_kern.h */ }; diff -urN linux-2.6.14/include/linux/fb.h linux-2.6.14-bootsplash/include/linux/fb.h --- linux-2.6.14/include/linux/fb.h 2005-06-17 21:48:29.000000000 +0200 +++ linux-2.6.14-bootsplash/include/linux/fb.h 2005-06-18 09:22:11.000000000 +0200 @@ -734,6 +734,14 @@ void *fbcon_par; /* fbcon use-only private area */ /* From here on everything is device dependent */ void *par; +#ifdef CONFIG_BOOTSPLASH + struct splash_data *splash_data; + unsigned char *splash_pic; + int splash_pic_size; + int splash_bytes; + char *silent_screen_base; /* real screen base */ + char fb_cursordata[64]; +#endif }; #ifdef MODULE geexbox-0.98.7/packages/linux/patches/51_bootsplash-3.1.6-2.6.12-to-3.1.7.4.diff0000644000175000017500000010560710335100772024567 0ustar aurelaureldiff -Nur linux-2.6.11.orig/drivers/char/n_tty.c linux-2.6.11/drivers/char/n_tty.c --- linux-2.6.11.orig/drivers/char/n_tty.c Thu Jun 23 12:12:33 2005 +++ linux-2.6.11/drivers/char/n_tty.c Thu Jun 23 12:12:49 2005 @@ -1297,15 +1297,6 @@ tty->minimum_to_wake = (minimum - (b - buf)); if (!input_available_p(tty, 0)) { -#ifdef CONFIG_BOOTSPLASH - if (file->f_dentry->d_inode->i_rdev == MKDEV(TTY_MAJOR,0) || - file->f_dentry->d_inode->i_rdev == MKDEV(TTY_MAJOR,1) || - file->f_dentry->d_inode->i_rdev == MKDEV(TTYAUX_MAJOR,0) || - file->f_dentry->d_inode->i_rdev == MKDEV(TTYAUX_MAJOR,1)) { - extern int splash_verbose(void); - (void)splash_verbose(); - } -#endif if (test_bit(TTY_OTHER_CLOSED, &tty->flags)) { retval = -EIO; break; @@ -1322,6 +1313,15 @@ retval = -ERESTARTSYS; break; } +#ifdef CONFIG_BOOTSPLASH + if (file->f_dentry->d_inode->i_rdev == MKDEV(TTY_MAJOR,0) || + file->f_dentry->d_inode->i_rdev == MKDEV(TTY_MAJOR,1) || + file->f_dentry->d_inode->i_rdev == MKDEV(TTYAUX_MAJOR,0) || + file->f_dentry->d_inode->i_rdev == MKDEV(TTYAUX_MAJOR,1)) { + extern int splash_verbose(void); + (void)splash_verbose(); + } +#endif clear_bit(TTY_DONT_FLIP, &tty->flags); timeout = schedule_timeout(timeout); set_bit(TTY_DONT_FLIP, &tty->flags); diff -Nur linux-2.6.11.orig/drivers/char/vt.c linux-2.6.11/drivers/char/vt.c --- linux-2.6.11.orig/drivers/char/vt.c Thu Jun 23 12:12:33 2005 +++ linux-2.6.11/drivers/char/vt.c Thu Jun 23 12:31:16 2005 @@ -774,10 +774,6 @@ old_screen_size = vc->vc_screenbuf_size; err = resize_screen(vc, new_cols, new_rows); - if (err) { - kfree(newscreen); - return err; - } vc->vc_rows = new_rows; vc->vc_cols = new_cols; diff -Nur linux-2.6.11.orig/drivers/video/bootsplash/Kconfig linux-2.6.11/drivers/video/bootsplash/Kconfig --- linux-2.6.11.orig/drivers/video/bootsplash/Kconfig Thu Jun 23 12:12:33 2005 +++ linux-2.6.11/drivers/video/bootsplash/Kconfig Thu Jun 23 12:12:49 2005 @@ -6,7 +6,7 @@ config BOOTSPLASH bool "Bootup splash screen" - depends on FRAMEBUFFER_CONSOLE && FB_VESA + depends on FRAMEBUFFER_CONSOLE=y && (REGPARM=n || X86_64 || !X86) && BLK_DEV_INITRD=y default n ---help--- This option enables the Linux bootsplash screen. For more diff -Nur linux-2.6.11.orig/drivers/video/bootsplash/bootsplash.c linux-2.6.11/drivers/video/bootsplash/bootsplash.c --- linux-2.6.11.orig/drivers/video/bootsplash/bootsplash.c Thu Jun 23 12:12:33 2005 +++ linux-2.6.11/drivers/video/bootsplash/bootsplash.c Thu Jun 23 12:18:09 2005 @@ -31,7 +31,7 @@ /* extern struct fb_ops vesafb_ops; */ extern signed char con2fb_map[MAX_NR_CONSOLES]; -#define SPLASH_VERSION "3.1.6-2004/03/31" +#define SPLASH_VERSION "3.1.7.4-geexbox" /* These errors have to match fbcon-jpegdec.h */ static unsigned char *jpg_errors[] = { @@ -114,7 +114,7 @@ return 12; } -static void boxit(unsigned char *pic, int bytes, unsigned char *buf, int num, int percent, int overpaint) +static void boxit(unsigned char *pic, int bytes, unsigned char *buf, int num, int percent, int overpaint, int depth) { int x, y, i, p, doblend, r, g, b, a, add; unsigned short data1[4]; @@ -122,7 +122,7 @@ unsigned short data2[4]; unsigned char cols2[16]; unsigned char *bufend; - unsigned short *picp; + unsigned char *picp; unsigned int stipple[32], sti, stin, stinn, stixs, stixe, stiys, stiye; int xs, xe, ys, ye, xo, yo; @@ -237,11 +237,11 @@ } add = (xs & 1); add ^= (add ^ y) & 1 ? 1 : 3; /* 2x2 ordered dithering */ - picp = (unsigned short *)(pic + xs * 2 + y * bytes); + picp = pic + xs * (depth>>3) + y * bytes; for (x = xs; x <= xe; x++) { if (!(sti & 0x80000000)) { sti <<= 1; - picp++; + picp += depth>>3; add ^= 3; continue; } @@ -256,18 +256,43 @@ r = cols2[0]; g = cols2[1]; b = cols2[2]; - if (a != 255) { - i = *picp; - r = ((i >> 8 & 0xf8) * (255 - a) + r * a) / 255; - g = ((i >> 3 & 0xfc) * (255 - a) + g * a) / 255; - b = ((i << 3 & 0xf8) * (255 - a) + b * a) / 255; - } #define CLAMP(x) ((x) >= 256 ? 255 : (x)) - i = ((CLAMP(r + add*2+1) & 0xf8) << 8) | - ((CLAMP(g + add ) & 0xfc) << 3) | - ((CLAMP(b + add*2+1) ) >> 3); - *picp++ = i; - add ^= 3; + switch (depth) { + case 16: + if (a != 255) { + i = *(unsigned short *)picp; + r = ((i >> 8 & 0xf8) * (255 - a) + r * a) / 255; + g = ((i >> 3 & 0xfc) * (255 - a) + g * a) / 255; + b = ((i << 3 & 0xf8) * (255 - a) + b * a) / 255; + } + i = ((CLAMP(r + add*2+1) & 0xf8) << 8) | + ((CLAMP(g + add ) & 0xfc) << 3) | + ((CLAMP(b + add*2+1) ) >> 3); + *((unsigned short *)picp)++ = i; + add ^= 3; + break; + case 24: + if (a != 255) { + b = (picp[0] * (255 - a) + b * a) / 255; + g = (picp[1] * (255 - a) + g * a) / 255; + r = (picp[2] * (255 - a) + r * a) / 255; + } + *picp++ = CLAMP(b); + *picp++ = CLAMP(g); + *picp++ = CLAMP(r); + break; + case 32: + if (a != 255) { + b = (picp[0] * (255 - a) + b * a) / 255; + g = (picp[1] * (255 - a) + g * a) / 255; + r = (picp[2] * (255 - a) + r * a) / 255; + } + *picp++ = CLAMP(b); + *picp++ = CLAMP(g); + *picp++ = CLAMP(r); + *picp++ = 0; + break; + } } } } @@ -383,7 +408,7 @@ pos[off] | pos[off + 1] << 8 | pos[off + 2] << 16 | pos[off + 3] << 24; } -static int splash_getraw(unsigned char *start, unsigned char *end, int *update) +static int splash_getraw(unsigned char *start, unsigned char *end) { unsigned char *ndata; int version; @@ -400,10 +425,6 @@ struct fb_info *info; struct splash_data *sd; - if (update) - *update = -1; - - if (!update || start[7] < '2' || start[7] > '3' || splash_geti(start, 12) != (int)0xffffffff) printk(KERN_INFO "bootsplash %s: looking for picture...", SPLASH_VERSION); for (ndata = start; ndata < end; ndata++) { @@ -411,6 +432,7 @@ continue; if (ndata[4] != 'S' || ndata[5] != 'P' || ndata[6] != 'L' || ndata[7] < '1' || ndata[7] > '3') continue; + printk("."); version = ndata[7] - '0'; offsets = splash_offsets[version - 1]; len = SPLASH_OFF_LEN; @@ -418,7 +440,9 @@ if (unit >= MAX_NR_CONSOLES) continue; if (unit) { + acquire_console_sem(); vc_allocate(unit); + release_console_sem(); } vc = vc_cons[unit].d; info = registered_fb[(int)con2fb_map[unit]]; @@ -426,51 +450,20 @@ height = info->var.yres; splash_size = splash_geti(ndata, SPLASH_OFF_SIZE); if (splash_size == (int)0xffffffff && version > 1) { + printk(KERN_INFO " found, updating values.\n"); if ((sd = vc->vc_splash_data) != 0) { - int up = 0; i = splash_getb(ndata, SPLASH_OFF_STATE); if (i != 255) { sd->splash_state = i; - up = -1; } i = splash_getb(ndata, SPLASH_OFF_FGCOL); if (i != 255) { sd->splash_fg_color = i; - up = -1; } i = splash_getb(ndata, SPLASH_OFF_COL); if (i != 255) { sd->splash_color = i; - up = -1; - } - boxcnt = sboxcnt = 0; - if (ndata + len <= end) { - boxcnt = splash_gets(ndata, SPLASH_OFF_BOXCNT); - sboxcnt = splash_gets(ndata, SPLASH_OFF_SBOXCNT); - } - if (boxcnt) { - i = splash_gets(ndata, len); - if (boxcnt + i <= sd->splash_boxcount && ndata + len + 2 + boxcnt * 12 <= end) { - - if (splash_geti(ndata, len + 2) != 0x7ffd7fff || !memcmp(ndata + len + 2, sd->splash_boxes + i * 12, 8)) { - - memcpy(sd->splash_boxes + i * 12, ndata + len + 2, boxcnt * 12); - up |= 1; - } - } - len += boxcnt * 12 + 2; - } - if (sboxcnt) { - i = splash_gets(ndata, len); - if (sboxcnt + i <= sd->splash_sboxcount && ndata + len + 2 + sboxcnt * 12 <= end) { - if (splash_geti(ndata, len + 2) != 0x7ffd7fff || !memcmp(ndata + len + 2, sd->splash_sboxes + i * 12, 8)) { - memcpy(sd->splash_sboxes + i * 12, ndata + len + 2, sboxcnt * 12); - up |= 2; - } - } } - if (update) - *update = up; } return unit; } @@ -507,7 +500,7 @@ silentsize = 0; } sboxcnt = splash_gets(ndata, SPLASH_OFF_SBOXCNT); - if (silentsize) { + if (silentsize > 12 * sboxcnt) { unsigned char *simage = ndata + len + splash_size + 12 * sboxcnt; if (!jpeg_check_size(simage, width, height) || splash_check_jpeg(simage, width, height, info->var.bits_per_pixel)) { @@ -524,12 +517,12 @@ sd->splash_sboxes = 0; sd->splash_sboxcount = 0; if (silentsize) { - sd->splash_silentjpeg = vmalloc(silentsize); - if (sd->splash_silentjpeg) { - memcpy(sd->splash_silentjpeg, ndata + len + splash_size, silentsize); - sd->splash_sboxes = vc->vc_splash_data->splash_silentjpeg; - sd->splash_silentjpeg += 12 * sboxcnt; + sd->splash_sboxes = vmalloc(silentsize); + if (sd->splash_sboxes) { + memcpy(sd->splash_sboxes, ndata + len + splash_size, silentsize); sd->splash_sboxcount = sboxcnt; + if (silentsize > 12 * sboxcnt) + sd->splash_silentjpeg = sd->splash_sboxes + 12 * sboxcnt; } } sd->splash_state = splash_getb(ndata, SPLASH_OFF_STATE); @@ -578,6 +571,8 @@ sd->splash_palette = sd->splash_boxes + boxcnt * 12; sd->splash_jpeg = sd->splash_palette + palcnt; sd->splash_palcnt = palcnt / 3; + if (splash_usesilent && sd->splash_silentjpeg == 0) + sd->splash_silentjpeg = sd->splash_jpeg; sd->splash_dosilent = sd->splash_silentjpeg != 0; return unit; } @@ -605,7 +600,7 @@ info = registered_fb[(int)con2fb_map[0]]; if (!info->silent_screen_base) return 0; - splashcopy(info->silent_screen_base, info->screen_base, info->var.yres, info->var.xres, info->fix.line_length, info->fix.line_length); + splashcopy(info->silent_screen_base, info->screen_base, info->var.yres, info->var.xres, info->fix.line_length, info->fix.line_length, info->var.bits_per_pixel); info->screen_base = info->silent_screen_base; info->silent_screen_base = 0; return 1; @@ -639,7 +634,7 @@ width = info->var.xres; height = info->var.yres; depth = info->var.bits_per_pixel; - if (depth != 16) { /* Other targets might need fixing */ + if (depth < 16) { splash_off(info); return -2; } @@ -671,11 +666,11 @@ } else { if (vc->vc_splash_data->splash_sboxcount) boxit(info->splash_pic, sbytes, vc->vc_splash_data->splash_sboxes, - vc->vc_splash_data->splash_sboxcount, vc->vc_splash_data->splash_percent, 0); + vc->vc_splash_data->splash_sboxcount, vc->vc_splash_data->splash_percent, 0, info->var.bits_per_pixel); if (!info->silent_screen_base) info->silent_screen_base = info->screen_base; - splashcopy(info->silent_screen_base, info->splash_pic, info->var.yres, info->var.xres, info->fix.line_length, sbytes); + splashcopy(info->silent_screen_base, info->splash_pic, info->var.yres, info->var.xres, info->fix.line_length, sbytes, depth); info->screen_base = info->silent_screen_base + info->fix.line_length * info->var.yres; } } else if (info->silent_screen_base) @@ -690,7 +685,7 @@ info->splash_pic_size = size; info->splash_bytes = sbytes; if (vc->vc_splash_data->splash_boxcount) - boxit(info->splash_pic, sbytes, vc->vc_splash_data->splash_boxes, vc->vc_splash_data->splash_boxcount, vc->vc_splash_data->splash_percent, 0); + boxit(info->splash_pic, sbytes, vc->vc_splash_data->splash_boxes, vc->vc_splash_data->splash_boxcount, vc->vc_splash_data->splash_percent, 0, info->var.bits_per_pixel); if (vc->vc_splash_data->splash_state) info->splash_data = vc->vc_splash_data; else @@ -737,6 +732,7 @@ splash_prepare(vc, info); if (vc->vc_splash_data && vc->vc_splash_data->splash_state) { con_remap_def_color(vc, vc->vc_splash_data->splash_color << 4 | vc->vc_splash_data->splash_fg_color); + acquire_console_sem(); /* vc_resize also calls con_switch which resets yscroll */ vc_resize(vc, vc->vc_splash_data->splash_text_wi / vc->vc_font.width, vc->vc_splash_data->splash_text_he / vc->vc_font.height); if (fg_console == vc->vc_num) { @@ -744,10 +740,13 @@ vc->vc_size_row * (vc->vc_bottom - vc->vc_top) / 2); splash_clear_margins(vc->vc_splash_data, vc, info, 0); } + release_console_sem(); } else { /* Switch bootsplash off */ con_remap_def_color(vc, 0x07); + acquire_console_sem(); vc_resize(vc, info->var.xres / vc->vc_font.width, info->var.yres / vc->vc_font.height); + release_console_sem(); } return 0; } @@ -783,7 +782,6 @@ if (!buffer || !splash_default) return count; - acquire_console_sem(); if (!strncmp(buffer, "show", 4) || !strncmp(buffer, "hide", 4)) { int pe, oldpe; @@ -803,20 +801,13 @@ pe += pe > 32767; if (vc->vc_splash_data && vc->vc_splash_data->splash_percent != pe) { struct fb_info *info; - struct fbcon_ops *ops; oldpe = vc->vc_splash_data->splash_percent; vc->vc_splash_data->splash_percent = pe; if (fg_console != 0 || !vc->vc_splash_data->splash_state) { - release_console_sem(); return count; } info = registered_fb[(int) con2fb_map[vc->vc_num]]; - ops = info->fbcon_par; - if (ops->blank_state) { - release_console_sem(); - return count; - } if (!vc->vc_splash_data->splash_overpaintok || pe == 65536 || pe < oldpe) { if (splash_hasinter(vc->vc_splash_data->splash_boxes, vc->vc_splash_data->splash_boxcount)) splash_status(vc); @@ -824,11 +815,10 @@ splash_prepare(vc, info); } else { if (vc->vc_splash_data->splash_silentjpeg && vc->vc_splash_data->splash_dosilent && info->silent_screen_base) - boxit(info->silent_screen_base, info->fix.line_length, vc->vc_splash_data->splash_sboxes, vc->vc_splash_data->splash_sboxcount, vc->vc_splash_data->splash_percent, 1); - boxit(info->screen_base, info->fix.line_length, vc->vc_splash_data->splash_boxes, vc->vc_splash_data->splash_boxcount, vc->vc_splash_data->splash_percent, 1); + boxit(info->silent_screen_base, info->fix.line_length, vc->vc_splash_data->splash_sboxes, vc->vc_splash_data->splash_sboxcount, vc->vc_splash_data->splash_percent, 1, info->var.bits_per_pixel); + boxit(info->screen_base, info->fix.line_length, vc->vc_splash_data->splash_boxes, vc->vc_splash_data->splash_boxcount, vc->vc_splash_data->splash_percent, 1, info->var.bits_per_pixel); } } - release_console_sem(); return count; } if (!strncmp(buffer,"silent\n",7) || !strncmp(buffer,"verbose\n",8)) { @@ -839,7 +829,6 @@ splash_status(vc); } } - release_console_sem(); return count; } if (!strncmp(buffer,"freesilent\n",11)) { @@ -854,40 +843,24 @@ splash_status(vc); vc->vc_splash_data->splash_dosilent = 0; } - release_console_sem(); return count; } if (!strncmp(buffer, "BOOTSPL", 7)) { - int up = -1; - unit = splash_getraw((unsigned char *)buffer, (unsigned char *)buffer + count, &up); + unit = splash_getraw((unsigned char *)buffer, (unsigned char *)buffer + count); if (unit >= 0) { vc = vc_cons[unit].d; - if (up == -1) - splash_status(vc); - else { - struct fb_info *info = registered_fb[(int) con2fb_map[vc->vc_num]]; - struct fbcon_ops *ops = info->fbcon_par; - if (ops->blank_state) - up = 0; - if ((up & 2) != 0 && vc->vc_splash_data->splash_silentjpeg && vc->vc_splash_data->splash_dosilent && info->silent_screen_base) - boxit(info->silent_screen_base, info->fix.line_length, vc->vc_splash_data->splash_sboxes, vc->vc_splash_data->splash_sboxcount, vc->vc_splash_data->splash_percent, 1); - if ((up & 1) != 0) - boxit(info->screen_base, info->fix.line_length, vc->vc_splash_data->splash_boxes, vc->vc_splash_data->splash_boxcount, vc->vc_splash_data->splash_percent, 1); - } + splash_status(vc); } - release_console_sem(); return count; } vc = vc_cons[0].d; if (!vc->vc_splash_data) { - release_console_sem(); return count; } if (buffer[0] == 't') { vc->vc_splash_data->splash_state ^= 1; splash_status(vc); - release_console_sem(); return count; } new = simple_strtoul(buffer, NULL, 0); @@ -902,7 +875,6 @@ vc->vc_splash_data->splash_state = new & 1; splash_status(vc); } - release_console_sem(); return count; } @@ -940,7 +912,7 @@ return; vc = vc_cons[0].d; info = registered_fb[0]; - if (!vc || !info || info->var.bits_per_pixel != 16) + if (!vc || !info || info->var.bits_per_pixel < 16) return; #ifdef CONFIG_PROC_FS splash_proc_register(); @@ -970,10 +942,8 @@ mem = vmalloc(len); if (mem) { - acquire_console_sem(); - if ((int)sys_read(fd, mem, len) == len && splash_getraw((unsigned char *)mem, (unsigned char *)mem + len, (int *)0) == 0 && vc->vc_splash_data) + if ((int)sys_read(fd, mem, len) == len && splash_getraw((unsigned char *)mem, (unsigned char *)mem + len) == 0 && vc->vc_splash_data) vc->vc_splash_data->splash_state = splash_default & 1; - release_console_sem(); vfree(mem); } sys_close(fd); diff -Nur linux-2.6.11.orig/drivers/video/bootsplash/bootsplash.h linux-2.6.11/drivers/video/bootsplash/bootsplash.h --- linux-2.6.11.orig/drivers/video/bootsplash/bootsplash.h Thu Jun 23 12:12:33 2005 +++ linux-2.6.11/drivers/video/bootsplash/bootsplash.h Thu Jun 23 12:12:49 2005 @@ -22,14 +22,14 @@ const unsigned short *s, int count, int ypos, int xpos); extern void splash_putc(struct splash_data *sd, struct vc_data *vc, struct fb_info *info, int c, int ypos, int xpos); -extern void splashcopy(u8 *dst, u8 *src, int height, int width, int dstbytes, int srcbytes); +extern void splashcopy(u8 *dst, u8 *src, int height, int width, int dstbytes, int srcbytes, int depth); extern void splash_clear(struct splash_data *sd, struct vc_data *vc, struct fb_info *info, int sy, int sx, int height, int width); extern void splash_bmove(struct splash_data *sd, struct vc_data *vc, struct fb_info *info, int sy, int sx, int dy, int dx, int height, int width); extern void splash_clear_margins(struct splash_data *sd, struct vc_data *vc, struct fb_info *info, int bottom_only); -extern int splash_cursor(struct splash_data *sd, struct fb_info *info, struct fb_cursor *cursor); +extern void splash_cursor(struct splash_data *sd, struct fb_info *info, struct fb_cursor *cursor); extern void splash_bmove_redraw(struct splash_data *sd, struct vc_data *vc, struct fb_info *info, int y, int sx, int dx, int width); extern void splash_blank(struct splash_data *sd, struct vc_data *vc, struct fb_info *info, diff -Nur linux-2.6.11.orig/drivers/video/bootsplash/decode-jpg.c linux-2.6.11/drivers/video/bootsplash/decode-jpg.c --- linux-2.6.11.orig/drivers/video/bootsplash/decode-jpg.c Thu Jun 23 12:12:33 2005 +++ linux-2.6.11/drivers/video/bootsplash/decode-jpg.c Thu Jun 23 12:12:49 2005 @@ -87,6 +87,7 @@ static void col221111 __P((int *, unsigned char *, int)); static void col221111_16 __P((int *, unsigned char *, int)); +static void col221111_32 __P((int *, unsigned char *, int)); /*********************************/ @@ -262,7 +263,7 @@ int mcusx, mcusy, mx, my; int max[6]; - if (!decdata || !buf || !pic) + if (!decdata) return -1; datap = buf; if (getbyte() != 0xff) @@ -370,6 +371,9 @@ idct(decdata->dcts + 320, decdata->out + 320, decdata->dquant[2], IFIX(0.5), max[5]); switch (depth) { + case 32: + col221111_32(decdata->out, pic + (my * 16 * mcusx + mx) * 16 * 4, mcusx * 16 * 4); + break; case 24: col221111(decdata->out, pic + (my * 16 * mcusx + mx) * 16 * 3, mcusx * 16 * 3); break; @@ -844,9 +848,9 @@ #define PIC(yin, xin, p, xout) \ ( \ y = outy[(yin) * 8 + xin], \ - STORECLAMP(p[(xout) * 3 + 0], y + cr), \ + STORECLAMP(p[(xout) * 3 + 0], y + cb), \ STORECLAMP(p[(xout) * 3 + 1], y - cg), \ - STORECLAMP(p[(xout) * 3 + 2], y + cb) \ + STORECLAMP(p[(xout) * 3 + 2], y + cr) \ ) #ifdef __LITTLE_ENDIAN @@ -883,6 +887,15 @@ #endif #endif +#define PIC_32(yin, xin, p, xout) \ +( \ + y = outy[(yin) * 8 + xin], \ + STORECLAMP(p[(xout) * 4 + 0], y + cb), \ + STORECLAMP(p[(xout) * 4 + 1], y - cg), \ + STORECLAMP(p[(xout) * 4 + 2], y + cr), \ + STORECLAMP(p[(xout) * 4 + 3], 0) \ +) + #define PIC221111(xin) \ ( \ CBCRCG(0, xin), \ @@ -901,6 +914,15 @@ PIC_16(xin / 4 * 8 + 1, (xin & 3) * 2 + 1, pic1, xin * 2 + 1, 2) \ ) +#define PIC221111_32(xin) \ +( \ + CBCRCG(0, xin), \ + PIC_32(xin / 4 * 8 + 0, (xin & 3) * 2 + 0, pic0, xin * 2 + 0), \ + PIC_32(xin / 4 * 8 + 0, (xin & 3) * 2 + 1, pic0, xin * 2 + 1), \ + PIC_32(xin / 4 * 8 + 1, (xin & 3) * 2 + 0, pic1, xin * 2 + 0), \ + PIC_32(xin / 4 * 8 + 1, (xin & 3) * 2 + 1, pic1, xin * 2 + 1) \ +) + static void col221111(out, pic, width) int *out; unsigned char *pic; @@ -947,6 +969,34 @@ for (j = 4; j > 0; j--) { for (k = 0; k < 8; k++) { PIC221111_16(k); + } + outc += 8; + outy += 16; + pic0 += 2 * width; + pic1 += 2 * width; + } + outy += 64 * 2 - 16 * 4; + } +} + +static void col221111_32(out, pic, width) +int *out; +unsigned char *pic; +int width; +{ + int i, j, k; + unsigned char *pic0, *pic1; + int *outy, *outc; + int cr, cg, cb, y; + + pic0 = pic; + pic1 = pic + width; + outy = out; + outc = out + 64 * 4; + for (i = 2; i > 0; i--) { + for (j = 4; j > 0; j--) { + for (k = 0; k < 8; k++) { + PIC221111_32(k); } outc += 8; outy += 16; diff -Nur linux-2.6.11.orig/drivers/video/bootsplash/render.c linux-2.6.11/drivers/video/bootsplash/render.c --- linux-2.6.11.orig/drivers/video/bootsplash/render.c Thu Jun 23 12:12:33 2005 +++ linux-2.6.11/drivers/video/bootsplash/render.c Thu Jun 23 12:30:05 2005 @@ -21,7 +21,7 @@ int fgshift = (vc->vc_hi_font_mask) ? 9 : 8; u8 *src; u8 *dst, *splashsrc; - unsigned int d, x, y; + unsigned int d, x, y, Bpp = info->var.bits_per_pixel >> 3; u32 dd, fgx, bgx; u16 c = scr_readw(s); @@ -31,8 +31,8 @@ transparent = sd->splash_color == bg_color; xpos = xpos * vc->vc_font.width + sd->splash_text_xo; ypos = ypos * vc->vc_font.height + sd->splash_text_yo; - splashsrc = (u8 *)(info->splash_pic + ypos * info->splash_bytes + xpos * 2); - dst = (u8 *)(info->screen_base + ypos * info->fix.line_length + xpos * 2); + splashsrc = (u8 *)(info->splash_pic + ypos * info->splash_bytes + xpos * Bpp); + dst = (u8 *)(info->screen_base + ypos * info->fix.line_length + xpos * Bpp); fgx = ((u32 *)info->pseudo_palette)[fg_color]; if (transparent && sd->splash_color == 15) { @@ -51,28 +51,42 @@ src = vc->vc_font.data + (c & charmask) * vc->vc_font.height * ((vc->vc_font.width + 7) >> 3); for (y = 0; y < vc->vc_font.height; y++) { - for (x = 0; x < vc->vc_font.width; x += 2) { + for (x = 0; x < vc->vc_font.width; x++) { if ((x & 7) == 0) d = *src++; - if (d & 0x80) - dd = fgx; - else - dd = transparent ? *(u16 *)splashsrc : bgx; - splashsrc += 2; - if (d & 0x40) - dd |= fgx << 16; - else - dd |= (transparent ? *(u16 *)splashsrc : bgx) << 16; - splashsrc += 2; - d <<= 2; - fb_writel(dd, dst); - dst += 4; + switch (info->var.bits_per_pixel) { + case 16: + if (d & 0x80) + dd = fgx; + else + dd = transparent ? *(u16 *)splashsrc : bgx; + fb_writew(dd, dst); + break; + case 24: + if (d & 0x80) + dd = fgx; + else + dd = transparent ? *(u32 *)splashsrc >> 8 : bgx; + fb_writeb(dd >> 16, dst); + fb_writew(dd & 0xFFFF, dst+1); + break; + case 32: + if (d & 0x80) + dd = fgx; + else + dd = transparent ? *(u32 *)splashsrc : bgx; + fb_writel(dd, dst); + break; + } + splashsrc += Bpp; + dst += Bpp; + d <<= 1; } - dst += info->fix.line_length - vc->vc_font.width * 2; - splashsrc += info->splash_bytes - vc->vc_font.width * 2; + dst += info->fix.line_length - vc->vc_font.width * Bpp; + splashsrc += info->splash_bytes - vc->vc_font.width * Bpp; } - dst -= info->fix.line_length * vc->vc_font.height - vc->vc_font.width * 2; - splashsrc -= info->splash_bytes * vc->vc_font.height - vc->vc_font.width * 2; + dst -= info->fix.line_length * vc->vc_font.height - vc->vc_font.width * Bpp; + splashsrc -= info->splash_bytes * vc->vc_font.height - vc->vc_font.width * Bpp; } } @@ -81,10 +95,10 @@ int transparent = sd->splash_color == bg_color; u32 dd, fgx, bgx; u8 *dst, *splashsrc; - unsigned int d, x, y; + unsigned int d, x, y, Bpp = info->var.bits_per_pixel >> 3; - splashsrc = (u8 *)(info->splash_pic + ypos * info->splash_bytes + xpos * 2); - dst = (u8 *)(info->screen_base + ypos * info->fix.line_length + xpos * 2); + splashsrc = (u8 *)(info->splash_pic + ypos * info->splash_bytes + xpos * Bpp); + dst = (u8 *)(info->screen_base + ypos * info->fix.line_length + xpos * Bpp); fgx = ((u32 *)info->pseudo_palette)[fg_color]; if (transparent && sd->splash_color == 15) { if (fgx == 0xffea) @@ -97,25 +111,39 @@ bgx = ((u32 *)info->pseudo_palette)[bg_color]; d = 0; for (y = 0; y < height; y++) { - for (x = 0; x < width; x += 2) { + for (x = 0; x < width; x++) { if ((x & 7) == 0) d = *src++; - if (d & 0x80) - dd = fgx; - else - dd = transparent ? *(u16 *)splashsrc : bgx; - splashsrc += 2; - if (d & 0x40) - dd |= fgx << 16; - else - dd |= (transparent ? *(u16 *)splashsrc : bgx) << 16; - splashsrc += 2; - d <<= 2; - fb_writel(dd, dst); - dst += 4; + switch (info->var.bits_per_pixel) { + case 16: + if (d & 0x80) + dd = fgx; + else + dd = transparent ? *(u16 *)splashsrc : bgx; + fb_writew(dd, dst); + break; + case 24: + if (d & 0x80) + dd = fgx; + else + dd = transparent ? *(u32 *)splashsrc >> 8 : bgx; + fb_writeb(dd >> 16, dst); + fb_writew(dd & 0xFFFF, dst+1); + break; + case 32: + if (d & 0x80) + dd = fgx; + else + dd = transparent ? *(u32 *)splashsrc : bgx; + fb_writel(dd, dst); + break; + } + splashsrc += Bpp; + dst += Bpp; + d <<= 1; } - dst += info->fix.line_length - width * 2; - splashsrc += info->splash_bytes - width * 2; + dst += info->fix.line_length - width * Bpp; + splashsrc += info->splash_bytes - width * Bpp; } } @@ -131,21 +159,20 @@ splash_renderc(sd, info, attr_fgcol(fgshift, c), attr_bgcol(bgshift, c), src, ypos, xpos, vc->vc_font.height, vc->vc_font.width); } -void splashcopy(u8 *dst, u8 *src, int height, int width, int dstbytes, int srcbytes) +void splashcopy(u8 *dst, u8 *src, int height, int width, int dstbytes, int srcbytes, int depth) { int i; while (height-- > 0) { u32 *p = (u32 *)dst; u32 *q = (u32 *)src; - for (i=0; i < width/4; i++) { - fb_writel(*q++,p++); - fb_writel(*q++,p++); - } - if (width & 2) + u8 *r, *s; + for (i=0; i < (depth>>3)*width/4; i++) fb_writel(*q++,p++); - if (width & 1) - fb_writew(*(u16*)q,(u16*)p); + r = (u8 *)p; + s = (u8 *)q; + for (i=0; i < (depth>>3)*(width&3); i++) + fb_writeb(*s++,r++); dst += dstbytes; src += srcbytes; } @@ -170,7 +197,7 @@ } static void splashfill(struct fb_info *info, int sy, int sx, int height, int width) { - splashcopy((u8 *)(info->screen_base + sy * info->fix.line_length + sx * 2), (u8 *)(info->splash_pic + sy * info->splash_bytes + sx * 2), height, width, info->fix.line_length, info->splash_bytes); + splashcopy((u8 *)(info->screen_base + sy * info->fix.line_length + sx * (info->var.bits_per_pixel>>3)), (u8 *)(info->splash_pic + sy * info->splash_bytes + sx * (info->var.bits_per_pixel>>3)), height, width, info->fix.line_length, info->splash_bytes, info->var.bits_per_pixel); } void splash_clear(struct splash_data *sd, struct vc_data *vc, struct fb_info *info, int sy, @@ -190,7 +217,7 @@ splashfill(info, sy, sx, height, width); return; } - dst = (u8 *)(info->screen_base + sy * info->fix.line_length + sx * 2); + dst = (u8 *)(info->screen_base + sy * info->fix.line_length + sx * (info->var.bits_per_pixel>>3)); bgx = ((u32 *)info->pseudo_palette)[bg_color]; splashset(dst, height, width, info->fix.line_length, bgx); } @@ -232,38 +259,53 @@ splashfill(info, sd->splash_text_yo + th, 0, info->var.yres - sd->splash_text_yo - th, info->var.xres); } -int splash_cursor(struct splash_data *sd, struct fb_info *info, struct fb_cursor *cursor) +void splash_cursor(struct splash_data *sd, struct fb_info *info, struct fb_cursor *cursor) { int i; unsigned int dsize, s_pitch; - if (info->state != FBINFO_STATE_RUNNING) - return 0; - - s_pitch = (cursor->image.width + 7) >> 3; + if (cursor->set & FB_CUR_SETSIZE) { + info->cursor.image.height = cursor->image.height; + info->cursor.image.width = cursor->image.width; + } + if (cursor->set & FB_CUR_SETPOS) { + info->cursor.image.dx = cursor->image.dx; + info->cursor.image.dy = cursor->image.dy; + } + if (cursor->set & FB_CUR_SETHOT) + info->cursor.hot = cursor->hot; + if (cursor->set & FB_CUR_SETCMAP) { + if (cursor->image.depth == 1) { + info->cursor.image.bg_color = cursor->image.bg_color; + info->cursor.image.fg_color = cursor->image.fg_color; + } else if (cursor->image.cmap.len) { + fb_copy_cmap(&cursor->image.cmap, &info->cursor.image.cmap); + } + info->cursor.image.depth = cursor->image.depth; + } + s_pitch = (info->cursor.image.width + 7) >> 3; dsize = s_pitch * cursor->image.height; - if (cursor->enable) { - switch (cursor->rop) { + if (info->cursor.enable) { + switch (info->cursor.rop) { case ROP_XOR: for (i = 0; i < dsize; i++) - info->fb_cursordata[i] = cursor->image.data[i] ^ cursor->mask[i]; + info->fb_cursordata[i] = cursor->image.data[i] ^ info->cursor.mask[i]; break; case ROP_COPY: default: for (i = 0; i < dsize; i++) - info->fb_cursordata[i] = cursor->image.data[i] & cursor->mask[i]; + info->fb_cursordata[i] = cursor->image.data[i] & info->cursor.mask[i]; break; } } else if (info->fb_cursordata != cursor->image.data) memcpy(info->fb_cursordata, cursor->image.data, dsize); - cursor->image.data = info->fb_cursordata; - splash_renderc(sd, info, cursor->image.fg_color, cursor->image.bg_color, (u8 *)info->fb_cursordata, cursor->image.dy + sd->splash_text_yo, cursor->image.dx + sd->splash_text_xo, cursor->image.height, cursor->image.width); - return 0; + info->cursor.image.data = info->fb_cursordata; + splash_renderc(sd, info, info->cursor.image.fg_color, info->cursor.image.bg_color, (u8 *)info->fb_cursordata, info->cursor.image.dy + sd->splash_text_yo, info->cursor.image.dx + sd->splash_text_xo, info->cursor.image.height, info->cursor.image.width); } void splash_bmove_redraw(struct splash_data *sd, struct vc_data *vc, struct fb_info *info, int y, int sx, int dx, int width) { - unsigned short *d = (unsigned short *) (vc->vc_origin + vc->vc_size_row * y + dx * 2); + unsigned short *d = (unsigned short *) (vc->vc_origin + vc->vc_size_row * y + dx * (info->var.bits_per_pixel>>3)); unsigned short *s = d + (dx - sx); unsigned short *start = d; unsigned short *ls = d; diff -Nur linux-2.6.11.orig/drivers/video/console/bitblit.c linux-2.6.11/drivers/video/console/bitblit.c --- linux-2.6.11.orig/drivers/video/console/bitblit.c Thu Jun 23 12:12:33 2005 +++ linux-2.6.11/drivers/video/console/bitblit.c Thu Jun 23 12:12:49 2005 @@ -382,6 +382,10 @@ switch (mode) { case CM_ERASE: ops->cursor_state.enable = 0; +#ifdef CONFIG_BOOTSPLASH + if (info->splash_data) + splash_cursor(info->splash_data, info, &cursor); +#endif break; case CM_DRAW: case CM_MOVE: diff -Nur linux-2.6.11.orig/drivers/video/console/fbcon.c linux-2.6.11/drivers/video/console/fbcon.c --- linux-2.6.11.orig/drivers/video/console/fbcon.c Thu Jun 23 12:12:33 2005 +++ linux-2.6.11/drivers/video/console/fbcon.c Thu Jun 23 12:28:21 2005 @@ -281,6 +281,12 @@ fbcon_is_inactive(vc, info) || registered_fb[con2fb_map[vc->vc_num]] != info) return; +#ifdef CONFIG_BOOTSPLASH + if (info->splash_data) { + splash_cursor(info->splash_data, info, &info->cursor); + return; + } +#endif acquire_console_sem(); p = &fb_display[vc->vc_num]; c = scr_readw((u16 *) vc->vc_pos); @@ -912,7 +918,11 @@ struct vc_data **default_mode = vc->vc_display_fg; struct vc_data *svc = *default_mode; struct display *t, *p = &fb_display[vc->vc_num]; +#ifdef CONFIG_BOOTSPLASH + int logo = 0, new_rows, new_cols, rows, cols, charcnt = 256; +#else int logo = 1, new_rows, new_cols, rows, cols, charcnt = 256; +#endif int cap; if (info_idx == -1 || info == NULL) @@ -1098,6 +1108,12 @@ struct display *p = &fb_display[vc->vc_num]; struct fbcon_ops *ops = info->fbcon_par; +#ifdef CONFIG_BOOTSPLASH + if (info->splash_data) { + splash_putcs(info->splash_data, vc, info, s, count, ypos, xpos); + return; + } +#endif if (!fbcon_is_inactive(vc, info)) ops->putcs(vc, info, s, count, real_y(p, ypos), xpos, get_color(vc, info, scr_readw(s), 1), @@ -1142,6 +1158,13 @@ y = 0; } +#ifdef CONFIG_BOOTSPLASH + if (info->splash_data) { + splash_cursor(info->splash_data, info, &info->cursor); + vbl_cursor_cnt = CURSOR_DRAW_DELAY; + return; + } +#endif ops->cursor(vc, info, p, mode, y, get_color(vc, info, c, 1), get_color(vc, info, c, 0)); vbl_cursor_cnt = CURSOR_DRAW_DELAY; @@ -2254,7 +2277,7 @@ yres = info->splash_data->splash_text_he; } #endif - vc_resize(vc, info->var.xres / w, info->var.yres / h); + vc_resize(vc, xres / w, yres / h); if (CON_IS_VISIBLE(vc) && softback_buf) { int l = fbcon_softback_size / vc->vc_size_row; if (l > 5) diff -Nur linux-2.6.11.orig/include/linux/fb.h linux-2.6.11/include/linux/fb.h --- linux-2.6.11.orig/include/linux/fb.h Thu Jun 23 12:12:33 2005 +++ linux-2.6.11/include/linux/fb.h Thu Jun 23 12:12:49 2005 @@ -707,6 +707,7 @@ struct fb_var_screeninfo var; /* Current var */ struct fb_fix_screeninfo fix; /* Current fix */ struct fb_monspecs monspecs; /* Current Monitor specs */ + struct fb_cursor cursor; /* Current cursor */ struct work_struct queue; /* Framebuffer event queue */ struct fb_pixmap pixmap; /* Image hardware mapper */ struct fb_pixmap sprite; /* Cursor hardware mapper */ diff -Nur linux-2.6.11.orig/kernel/panic.c linux-2.6.11/kernel/panic.c --- linux-2.6.11.orig/kernel/panic.c Sat Mar 26 05:28:37 2005 +++ linux-2.6.11/kernel/panic.c Thu Jun 23 12:12:49 2005 @@ -87,6 +87,12 @@ * We can't use the "normal" timers since we just panicked.. */ printk(KERN_EMERG "Rebooting in %d seconds..",panic_timeout); +#ifdef CONFIG_BOOTSPLASH + { + extern int splash_verbose(void); + (void)splash_verbose(); + } +#endif for (i = 0; i < panic_timeout*1000; ) { touch_nmi_watchdog(); i += panic_blink(i); @@ -112,6 +118,12 @@ disabled_wait(caller); #endif local_irq_enable(); +#ifdef CONFIG_BOOTSPLASH + { + extern int splash_verbose(void); + (void)splash_verbose(); + } +#endif for (i = 0;;) { i += panic_blink(i); mdelay(1); geexbox-0.98.7/packages/linux/patches/52_bootsplash-novesa.diff0000644000175000017500000000165710335100772023444 0ustar aurelaurel* allow bootsplash to work on non-vesa fb drivers but check we have valid vc pointer. diff -Naur linux-2.6.11.orig/drivers/video/bootsplash/bootsplash.c linux-2.6.11/drivers/video/bootsplash/bootsplash.c --- linux-2.6.11.orig/drivers/video/bootsplash/bootsplash.c 2005-03-30 19:32:11.000000000 +0200 +++ linux-2.6.11/drivers/video/bootsplash/bootsplash.c 2005-03-30 19:32:52.000000000 +0200 @@ -548,11 +548,11 @@ printk(KERN_INFO " found, but has oversized text area!\n"); return -1; } -/* if (!vc_cons[unit].d || info->fbops != &vesafb_ops) { + if (!vc_cons[unit].d) { splash_free(vc, info); printk(KERN_INFO " found, but framebuffer can't handle it!\n"); return -1; - } */ + } printk(KERN_INFO "...found (%dx%d, %d bytes, v%d).\n", width, height, splash_size, version); if (version == 1) { printk(KERN_WARNING "bootsplash: Using deprecated v1 header. Updating your splash utility recommended.\n"); geexbox-0.98.7/packages/linux/patches/58_lower-undefined-mode-timeout.diff0000644000175000017500000000141110335100772025464 0ustar aurelaureldiff -Nur linux-2.6.14.orig/arch/i386/boot/video.S linux-2.6.14/arch/i386/boot/video.S --- linux-2.6.14.orig/arch/i386/boot/video.S Wed Nov 2 14:14:22 2005 +++ linux-2.6.14/arch/i386/boot/video.S Wed Nov 2 14:16:23 2005 @@ -1858,10 +1858,10 @@ int $0x16 ret -# Read a key with a timeout of 30 seconds. +# Read a key with a timeout of 3 seconds. # The hardware clock is used to get the time. getkt: call gettime - addb $30, %al # Wait 30 seconds + addb $3, %al # Wait 3 seconds cmpb $60, %al jl lminute @@ -1973,7 +1973,7 @@ # Status messages keymsg: .ascii "Press to see video modes available, " - .ascii " to continue or wait 30 secs" + .ascii " to continue or wait 3 secs" .byte 0x0d, 0x0a, 0 listhdr: .byte 0x0d, 0x0a geexbox-0.98.7/packages/linux/patches/60_kconfig-disable-gettext.diff0000644000175000017500000000162710335100772024474 0ustar aurelaureldiff -Nur linux-2.6.12.orig/scripts/kconfig/lkc.h linux-2.6.12/scripts/kconfig/lkc.h --- linux-2.6.12.orig/scripts/kconfig/lkc.h Fri Jun 17 22:48:29 2005 +++ linux-2.6.12/scripts/kconfig/lkc.h Sat Jun 18 09:20:30 2005 @@ -8,8 +8,6 @@ #include "expr.h" -#include - #ifdef __cplusplus extern "C" { #endif @@ -28,7 +26,7 @@ #define PACKAGE "linux" #define LOCALEDIR "/usr/share/locale" -#define _(text) gettext(text) +#define _(text) (text) #define N_(text) (text) int zconfparse(void); diff -Nur linux-2.6.12.orig/scripts/kconfig/mconf.c linux-2.6.12/scripts/kconfig/mconf.c --- linux-2.6.12.orig/scripts/kconfig/mconf.c Fri Jun 17 22:48:29 2005 +++ linux-2.6.12/scripts/kconfig/mconf.c Sat Jun 18 09:21:55 2005 @@ -1042,10 +1042,6 @@ char *mode; int stat; - setlocale(LC_ALL, ""); - bindtextdomain(PACKAGE, LOCALEDIR); - textdomain(PACKAGE); - conf_parse(av[1]); conf_read(NULL); geexbox-0.98.7/packages/linux/patches/61_kconfig-no-timestamp.diff0000644000175000017500000000063310335100772024021 0ustar aurelaureldiff -Nur linux-2.6.14.orig/scripts/kconfig/confdata.c linux-2.6.14/scripts/kconfig/confdata.c --- linux-2.6.14.orig/scripts/kconfig/confdata.c 2005-10-28 14:18:52.000000000 +0200 +++ linux-2.6.14/scripts/kconfig/confdata.c 2005-10-28 14:19:11.000000000 +0200 @@ -270,7 +270,7 @@ int type, l; const char *str; time_t now; - int use_timestamp = 1; + int use_timestamp = 0; char *env; dirname[0] = 0; geexbox-0.98.7/packages/linux/patches/70_enable-utf8.diff0000644000175000017500000000151510335100772022100 0ustar aurelaureldiff -Nur linux-2.6.12.orig/fs/fat/inode.c linux-2.6.12/fs/fat/inode.c --- linux-2.6.12.orig/fs/fat/inode.c Fri Jul 22 16:04:30 2005 +++ linux-2.6.12/fs/fat/inode.c Fri Jul 22 16:04:37 2005 @@ -847,7 +847,8 @@ opts->shortname = 0; opts->name_check = 'n'; opts->quiet = opts->showexec = opts->sys_immutable = opts->dotsOK = 0; - opts->utf8 = opts->unicode_xlate = 0; + opts->utf8 = 1; + opts->unicode_xlate = 0; opts->numtail = 1; opts->nocase = 0; *debug = 0; diff -Nur linux-2.6.12.orig/fs/isofs/inode.c linux-2.6.12/fs/isofs/inode.c --- linux-2.6.12.orig/fs/isofs/inode.c Fri Jul 22 16:10:17 2005 +++ linux-2.6.12/fs/isofs/inode.c Fri Jul 22 16:10:19 2005 @@ -376,7 +376,7 @@ popt->gid = 0; popt->uid = 0; popt->iocharset = NULL; - popt->utf8 = 0; + popt->utf8 = 1; popt->session=-1; popt->sbsector=-1; if (!options) geexbox-0.98.7/packages/linux/unpack0000755000175000017500000000161710335100772016411 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/install make $SCRIPTS/install sed $SCRIPTS/unpack lzma LINUX=`ls -d $BUILD/$1*` sed -i -e "s|^HOSTCC[[:space:]]*=.*$|HOSTCC = $HOST_CC|" \ -e "s|^HOSTCXX[[:space:]]*=.*$|HOSTCXX = $HOST_CXX|" \ -e "s|^ARCH[[:space:]]*?=.*$|ARCH = $TARGET_ARCH|" \ -e "s|^CROSS_COMPILE[[:space:]]*?=.*$|CROSS_COMPILE = $TARGET_PREFIX|" \ $LINUX/Makefile sed "s/CONFIG_BLK_DEV_RAM_SIZE=.*/CONFIG_BLK_DEV_RAM_SIZE=$RAMDISK_SIZE/" $PACKAGES/$1/config/$1.$TARGET_ARCH.conf > $LINUX/.config # Temporary hack until linux has migrated to asm-powerpc # (instead of asm-ppc and asm-ppc64) if [ $TARGET_ARCH = ppc ]; then cp $LINUX/include/asm-powerpc/* $LINUX/include/asm-ppc/ fi cp $BUILD/lzma*/SRC/7zip/Compress/LZMA_C/LzmaDecode.[ch] $LINUX/lib/ sed -i "s%^int Lzma%static int Lzma%g" $LINUX/lib/LzmaDecode.[ch] make -C $LINUX oldconfig make -C $LINUX prepare1 geexbox-0.98.7/packages/linux/url0000644000175000017500000000010410335100772015715 0ustar aurelaurelhttp://ftp.ch.kernel.org/pub/linux/kernel/v2.6/linux-2.6.14.tar.bz2 geexbox-0.98.7/packages/lirc/0000755000175000017500000000000010335100773014770 5ustar aurelaurelgeexbox-0.98.7/packages/lirc/build0000755000175000017500000000077510335100772016025 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain $SCRIPTS/build libirman $SCRIPTS/build linux export ac_cv_path_LIBUSB_CONFIG= export ac_cv_header_alsa_asoundlib_h=no cd $BUILD/$1* ./configure --host=$TARGET_NAME \ --build=$HOST_NAME \ --prefix=$LIB_PREFIX \ --disable-shared \ --without-x \ --with-driver=any \ --with-port=0x3f8 \ --with-irq=4 \ --with-kerneldir=$(kernel_path) make make -C tools install geexbox-0.98.7/packages/lirc/config/0000755000175000017500000000000010335100773016235 5ustar aurelaurelgeexbox-0.98.7/packages/lirc/config/lircd_D-10.conf0000644000175000017500000000432710335100772020667 0ustar aurelaurel# # contributed by Bernardo Santos # # brand: Gradiente # model: D-10 # supported devices: Remote control for gradiente's D-10 DVD player. # # Automatic generation didn`t work well so I had to # figure out the protocol myself. It is similar to the one # on the generic RECS80.conf config file. # begin remote name D-10 bits 11 flags SPACE_ENC eps 25 aeps 100 one 270 7310 zero 270 4800 ptrail 270 toggle_bit 2 gap 49000 begin codes POWER 0x000000000000075E EJECT 0x0000000000000766 ANGLE 0x000000000000076E INDEX 0x000000000000075A A-B 0x000000000000075F MUTE 0x0000000000000758 1 0x0000000000000775 2 0x000000000000076D 3 0x0000000000000765 4 0x000000000000075D 5 0x0000000000000774 6 0x000000000000076C 7 0x0000000000000764 8 0x000000000000075C 9 0x0000000000000773 0 0x000000000000076B MENU 0x0000000000000767 TITLE 0x0000000000000776 SUBTITLE 0x0000000000000763 AUDIO 0x0000000000000760 PAUSE 0x0000000000000759 ACTIVE_MENU 0x000000000000076F EXIT 0x0000000000000770 UP_FW 0x0000000000000768 LEFT_RW 0x0000000000000771 OK_PLAY 0x0000000000000769 RIGHT_FW 0x0000000000000761 DOWN_RW 0x000000000000076A STOP 0x0000000000000762 SKIP_BACK 0x0000000000000777 SKIP_FORWARD 0x0000000000000772 end codes end remote geexbox-0.98.7/packages/lirc/config/lircd_LG.conf0000644000175000017500000000472110335100772020566 0ustar aurelaurel # Please make this file available to others # by sending it to # # this config file was automatically generated # using lirc-0.6.6(irman) on Fri May 14 17:48:53 2004 # # contributed by bufa # # brand: LG # model no. of remote control: # devices being controlled by this remote: # begin remote name LG bits 16 eps 30 aeps 100 one 0 0 zero 0 0 pre_data_bits 16 pre_data 0xFFFF post_data_bits 32 post_data 0x0 gap 25000 min_repeat 2 toggle_bit 0 begin codes power 0x000000000000FE60 mute 0x000000000000FE40 1 0x000000000000FFC0 2 0x000000000000FFA0 3 0x000000000000FF80 4 0x000000000000FF60 5 0x000000000000FF40 6 0x000000000000FF20 7 0x000000000000FF00 8 0x000000000000FEE0 9 0x000000000000FEC0 menu 0x000000000000F880 0 0x000000000000FFE0 tv 0x000000000000F8E0 red 0x000000000000F900 green 0x000000000000F920 yellow 0x000000000000F9A0 blue 0x000000000000F960 vol+ 0x000000000000FDE0 vol- 0x000000000000FDC0 pr+ 0x000000000000FBE0 pr- 0x000000000000FBC0 ok 0x000000000000FB40 text 0x000000000000F860 size 0x000000000000FA80 hold 0x000000000000FAC0 sleep 0x000000000000F820 update 0x000000000000FA40 time 0x000000000000FAA0 reveal 0x000000000000FA60 psm 0x000000000000FE20 ssm 0x000000000000FD20 picture 0x000000000000FD80 sound 0x000000000000FB60 end codes end remote geexbox-0.98.7/packages/lirc/config/lircd_RM-S6.conf0000644000175000017500000000357010335100772021071 0ustar aurelaurel# # this config file was NOT automatically generated. # it was made using lirc-0.5.5pre8 on Sat Jun 12 1999 # # contributed by Luis Sousa # # brand: SONY # model: RM-S6 # supported devices: this remote has the basic functions for # almost all Sony HiFi Sytems # begin remote name RM-S6 bits 12 flags SPACE_ENC eps 30 aeps 100 header 2500 590 one 1210 590 zero 610 590 ptrail 0 plead 0 foot 0 0 repeat 0 0 pre_data_bits 0 pre_data 0 post_data_bits 0 post_data 0 pre 0 0 post 0 0 gap 25000 repeat_bit 0 min_repeat 2 begin codes SLEEP 0x0000000000000061 AMP_POWER 0x0000000000000A81 CD 0x0000000000000A41 CD_PLAY 0x00000000000004D1 CD_PAUSE 0x00000000000009D1 CD_STOP 0x00000000000001D1 CD_EJECT 0x0000000000000691 CD_PREV_TRACK 0x00000000000000D1 CD_NEXT_TRACK 0x00000000000008D1 TAPE 0x0000000000000C41 PHONO 0x0000000000000041 VIDEO/AUX 0x0000000000000441 TUNER 0x0000000000000841 TUNER_SHIFT 0x0000000000000CD6 TUNER_PRESET_- 0x0000000000000896 TUNER_PRESET_+ 0x0000000000000096 AMP_VOL_UP 0x0000000000000481 AMP_VOL_DOWN 0x0000000000000C81 end codes end remote geexbox-0.98.7/packages/lirc/config/lircd_RX-V850.conf0000644000175000017500000000625010335100772021254 0ustar aurelaurel# # This config file has been automatically converted from a device file # found in the 06/26/00 release of the Windows Slink-e software # package. # # Many thanks to Colby Boles of Nirvis Systems Inc. for allowing us to # use these files. # # The original filename was: "yamaha rx-v850 rs rx-v850 receiver_amp.cde" # # The original description for this device was: # # yamaha rx-v850 rs rx-v850 receiver/amp # begin remote name RX-V850 bits 32 flags SPACE_ENC eps 20 aeps 200 header 8800 4400 one 550 1650 zero 550 550 ptrail 550 repeat 8800 2200 gap 38500 toggle_bit 0 frequency 38000 begin codes POWER 0x000000005EA1F807 PHONO 0x000000005EA128D7 CD 0x000000005EA1A857 TUNER 0x000000005EA16897 TAPE_1/DAT 0x000000005EA19867 TAPE_2/VCR_2 0x000000005EA118E7 LD_V 0x000000005EA1E817 VCR_1 0x000000005EA1F00F CD_PLAY 0x000000005EA110EF CD_PAUSE/STOP 0x000000005EA1906F CD_SEARCH_FWD 0x000000005EA130CF CD_SEARCH_REV 0x000000005EA1B04F CD_SKIP_FWD 0x000000005EA150AF CD_SKIP_REV 0x000000005EA1D02F CD_DISK_SKIP 0x000000005EA1F20D TAPE_PLAY 0x000000005EA100FF TAPE_STOP 0x000000005EA1C03F TAPE_FFWD 0x000000005EA140BF TAPE_REWIND 0x000000005EA1807F TAPE_REC/PAUSE 0x000000005EA120DF TAPE_REC_MUTE 0x000000005EA1A05F TAPE_DECK_A/B 0x000000005EA1609F TAPE_DIR_A 0x000000005EA1E01F TAPE_DIR_B 0x000000005EA102FD TUNER_+ 0x000000005EA108F7 TUNER_A/B/C/D/E 0x000000005EA148B7 DSP_TEST 0x000000005EA1A15E DSP_CENTRE_MODE 0x000000005EA121DE DSP_PRO_LOGIC 0x000000005EA111EE DSP_PRO_LOGIC_ENH. 0x000000005EA1916E DSP_CNCT_VIDEO 0x000000005EA151AE DSP_MONO_MOVIE 0x000000005EA1D12E DSP_ROCK 0x000000005EA131CE DSP_HALL 0x000000005EA1B14E DSP_EFFECT_ON/OFF 0x000000005EA16A95 FRONT_LEVEL_+ 0x000000005EA101FE FRONT_LEVEL_- 0x000000005EA1817E CENTRE_LEVEL_+ 0x000000005EA141BE CENTRE_LEVEL_- 0x000000005EA1C13E REAR_LEVEL_+ 0x000000005EA17A85 REAR_LEVEL_- 0x000000005EA1FA05 DELAY_TIME_+ 0x000000005EA14AB5 DELAY_TIME_- 0x000000005EA1CA35 MUTING 0x000000005EA138C7 VOLUME_UP 0x000000005EA158A7 VOLUME_DOWN 0x000000005EA1D827 end codes end remote geexbox-0.98.7/packages/lirc/config/lircd_animax0000644000175000017500000000011410335100772020605 0ustar aurelaurelLIRC_DRIVER=default LIRC_DEVICE=/dev/lirc LIRC_MODULES="lirc_serial type=3" geexbox-0.98.7/packages/lirc/config/lircd_animax.conf0000644000175000017500000001561410335100772021544 0ustar aurelaurel # # This is a space encoded remote control from AnimaX. # You need at least lirc-0.5.4 to use this config file # # contributed by Karsten Scheibler # # brand: AnimaX # model: Anir Remote Control # supported devices: This remote control comes with some TV Tuner cards from # Hauppauge. # begin remote name ANIMAX bits 16 flags SPACE_ENC|REVERSE eps 20 aeps 0 header 4500 4500 one 562 1682 zero 562 562 ptrail 562 plead 0 foot 0 0 repeat 2500 2500 pre_data_bits 8 pre_data 0xF0 post_data_bits 0 post_data 0x0 pre 0 0 post 0 0 gap 12937 repeat_gap 102937 repeat_bit 0 begin codes CD_DOWN 0x000000000000DB24 CD_UP 0x0000000000005BA4 TV_DOWN 0x000000000000DC23 TV_UP 0x0000000000005CA3 PHONE_DOWN 0x000000000000DD22 PHONE_UP 0x0000000000005DA2 RADIO_DOWN 0x000000000000DE21 RADIO_UP 0x0000000000005EA1 VIDEO_DOWN 0x000000000000DF20 VIDEO_UP 0x0000000000005FA0 AUX1_DOWN 0x000000000000E01F AUX1_UP 0x000000000000609F MAIL_DOWN 0x000000000000E11E MAIL_UP 0x000000000000619E AUX2_DOWN 0x000000000000E21D AUX2_UP 0x000000000000629D POWER_DOWN 0x000000000000E31C POWER_UP 0x000000000000639C LEFT_MOUSE_BUTTON_TOUCH_DOWN 0x000000000000E41B LEFT_MOUSE_BUTTON_TOUCH_UP 0x000000000000649B REWIND_DOWN 0x000000000000E51A REWIND_UP 0x000000000000659A PLAY_DOWN 0x000000000000E619 PLAY_UP 0x0000000000006699 FORWARD_DOWN 0x000000000000E718 FORWARD_UP 0x0000000000006798 SKIP_BACKWARD_DOWN 0x000000000000E817 SKIP_BACKWARD 0x0000000000006897 STOP_DOWN 0x000000000000E916 STOP_UP 0x0000000000006996 SKIP_FORWARD_DOWN 0x000000000000EA15 SKIP_FORWARD_UP 0x0000000000006A95 CHANNEL_UP_DOWN 0x000000000000EB14 CHANNEL_UP_UP 0x0000000000006B94 MENU_DOWN 0x000000000000EC13 MENU_UP 0x0000000000006C93 VOLUME_UP_DOWN 0x000000000000ED12 VOLUME_UP_UP 0x0000000000006D92 BLUE_BUTTON_DOWN 0x000000000000EE11 BLUE_BUTTON_UP 0x0000000000006E91 MUTE_DOWN 0x000000000000EF10 MUTE_UP 0x0000000000006F90 VOLUME_DOWN_DOWN 0x000000000000F00F VOLUME_DOWN_UP 0x000000000000708F RED_BUTTON_DOWN 0x000000000000F10E RED_BUTTON_UP 0x000000000000718E GREEN_BUTTON_DOWN 0x000000000000F20D GREEN_BUTTON_UP 0x000000000000728D CHANNEL_DOWN_DOWN 0x000000000000F30C CHANNEL_DOWN_UP 0x000000000000738C 1_DOWN 0x000000000000F40B 1_UP 0x000000000000748B 2_DOWN 0x000000000000F50A 2_UP 0x000000000000758A 3_DOWN 0x000000000000F609 3_UP 0x0000000000007689 4_DOWN 0x000000000000F708 4_UP 0x0000000000007788 5_DOWN 0x000000000000F807 5_UP 0x0000000000007887 6_DOWN 0x000000000000F906 6_UP 0x0000000000007986 7_DOWN 0x000000000000FA05 7_UP 0x0000000000007A85 8_DOWN 0x000000000000FB04 8_UP 0x0000000000007B84 9_DOWN 0x000000000000FC03 9_UP 0x0000000000007C83 SLASH_DOWN 0x000000000000FD02 SLASH_UP 0x0000000000007D82 0_DOWN 0x000000000000FE01 0_UP 0x0000000000007E81 MINUS_DOWN 0x000000000000FF00 MINUS_UP 0x0000000000007F80 end codes end remote begin remote name ANIMAX_MOUSE_BUTTONS bits 16 flags SPACE_ENC|REVERSE eps 20 aeps 0 header 4500 4500 one 562 1682 zero 562 562 ptrail 562 plead 0 foot 0 0 repeat 0 0 pre_data_bits 8 pre_data 0xF0 post_data_bits 0 post_data 0x0 pre 0 0 post 0 0 gap 12937 repeat_bit 0 begin codes RIGHT_MOUSE_BUTTON_DOWN 0x000000000000C639 RIGHT_MOUSE_BUTTON_UP 0x00000000000046B9 LEFT_MOUSE_BUTTON_DOWN 0x000000000000CE31 LEFT_MOUSE_BUTTON_UP 0x0000000000004EB1 end codes end remote begin remote name ANIMAX_MOUSE_PAD bits 16 flags SPACE_ENC|REVERSE eps 20 aeps 0 header 4500 4500 one 562 1682 zero 562 562 ptrail 562 plead 0 foot 0 0 repeat 2500 2500 pre_data_bits 8 pre_data 0xF0 post_data_bits 0 post_data 0x0 pre 0 0 post 0 0 gap 12937 repeat_gap 8437 repeat_bit 0 begin codes MOUSE_NNW 0x000000000000906F MOUSE_NW 0x000000000000D02F MOUSE_NWW 0x000000000000916E MOUSE_W 0x000000000000D12E MOUSE_SWW 0x000000000000926D MOUSE_SW 0x000000000000D22D MOUSE_SSW 0x000000000000936C MOUSE_S 0x000000000000D32C MOUSE_SSE 0x000000000000946B MOUSE_SE 0x000000000000D42B MOUSE_SEE 0x000000000000956A MOUSE_E 0x000000000000D52A MOUSE_NEE 0x0000000000009669 MOUSE_NE 0x000000000000D629 MOUSE_NNE 0x0000000000009768 MOUSE_N 0x000000000000D728 end codes end remote geexbox-0.98.7/packages/lirc/config/lircd_askey0000644000175000017500000000014210335100772020445 0ustar aurelaurelLIRC_DRIVER=default LIRC_DEVICE=/dev/lirc LIRC_MODULES="videodev|bttv card=38|lirc_dev|lirc_gpio" geexbox-0.98.7/packages/lirc/config/lircd_askey.conf0000644000175000017500000000461010335100772021375 0ustar aurelaurel# # this config file was automatically generated # using lirc-0.6.0 on Thu Apr 27 12:27:04 2000 # # contributed by Claas Langbehn # Please read the documentation, faq etc. # before sending me mails. # # brand: ASKEY # model: AS-218 / AS-220 # supported devices: ASKEY MagicTV # # comment: repeated keys are recognized, now. # begin remote name AS-218 bits 16 flags SPACE_ENC|CONST_LENGTH eps 30 aeps 100 header 9087 4424 one 629 1617 zero 629 495 ptrail 632 repeat 9088 2182 pre_data_bits 16 pre_data 0x61D6 gap 107905 repeat_bit 0 begin codes 0 0x00000000000000FF 1 0x000000000000807F 2 0x00000000000040BF 3 0x000000000000C03F 4 0x00000000000020DF 5 0x000000000000A05F 6 0x000000000000609F 7 0x000000000000E01F 8 0x00000000000010EF 9 0x000000000000906F LOOP 0x00000000000050AF # unused FINE_UP(PLUS) 0x00000000000030CF ZOOM 0x000000000000B04F RECORD 0x000000000000708F PREVIEW 0x000000000000F00F SCAN 0x00000000000008F7 VIDEO 0x0000000000008877 POWER 0x00000000000048B7 MUTE 0x000000000000C837 COLOR 0x00000000000028D7 #unused FREEZE 0x0000000000006897 100 0x000000000000E817 FINE_DOWN(MINUS) 0x00000000000018E7 PLAY 0x0000000000009867 CH_UP 0x00000000000058A7 VOL_UP 0x000000000000D827 TV 0x00000000000038C7 STOP 0x000000000000B847 CH_DOWN 0x0000000000007887 VOL_DOWN 0x000000000000F807 end codes end remote geexbox-0.98.7/packages/lirc/config/lircd_atiusb0000644000175000017500000000010510335100772020617 0ustar aurelaurelLIRC_DRIVER=default LIRC_DEVICE=/dev/lirc LIRC_MODULES="lirc_atiusb" geexbox-0.98.7/packages/lirc/config/lircd_atiusb.conf0000644000175000017500000000662110335100772021554 0ustar aurelaurel# # contributed by Martin Tomasek # modified by Aurelien Jacobs # # brand: ATI Remote Wonder # model no. of remote control: # devices being controlled by this remote: ATI USB Receiver (X10). # # # P: Vendor=0bc7 ProdID=0004 Rev= 1.00 # S: Manufacturer=X10 Wireless Technology Inc # S: Product=USB Receiver # begin remote name atiusb bits 16 eps 30 aeps 100 one 0 0 zero 0 0 pre_data_bits 8 pre_data 0x14 post_data_bits 16 post_data 0x0 gap 227933 toggle_bit 0 begin codes a 0x0000000000000500 b 0x0000000000000601 power 0x0000000000000702 tv 0x0000000000000803 dvd 0x0000000000000904 web 0x0000000000000A05 media_library 0x0000000000000B06 drag 0x0000000000000C07 mouse-button_left 0x0000000000000D78 mouse-button_right 0x000000000000017C mouse-up 0x0000000000000772 mouse-down 0x0000000000000873 mouse-left 0x0000000000000570 mouse-right 0x0000000000000671 mouse-left_up 0x0000000000000974 mouse-right_up 0x0000000000000A75 mouse-left_down 0x0000000000000C77 mouse-right_down 0x0000000000000B76 vol-up 0x0000000000000D08 vol-down 0x0000000000000E09 mute 0x0000000000000F0A chan-up 0x000000000000000B chan-down 0x000000000000010C 1 0x000000000000020D 2 0x000000000000030E 3 0x000000000000040F 4 0x0000000000000510 5 0x0000000000000611 6 0x0000000000000712 7 0x0000000000000813 8 0x0000000000000914 9 0x0000000000000A15 0 0x0000000000000C17 dvd-root_menu 0x0000000000000B16 launch_setup 0x0000000000000D18 c 0x0000000000000E19 d 0x000000000000001B tv_on_demand 0x000000000000011C max_window 0x0000000000000520 cursor-up 0x0000000000000F1A cursor-down 0x0000000000000722 cursor-left 0x000000000000021D cursor-right 0x000000000000041F ok 0x000000000000031E e 0x0000000000000621 f 0x0000000000000823 rewind 0x0000000000000924 play 0x0000000000000A25 fast_forward 0x0000000000000B26 record 0x0000000000000C27 stop 0x0000000000000D28 pause 0x0000000000000E29 end codes end remote geexbox-0.98.7/packages/lirc/config/lircd_avermedia0000644000175000017500000000012010335100772021262 0ustar aurelaurelLIRC_DRIVER=default LIRC_DEVICE=/dev/lirc LIRC_MODULES="bttv card=13|lirc_gpio" geexbox-0.98.7/packages/lirc/config/lircd_avermedia.conf0000644000175000017500000001326610335100772022225 0ustar aurelaurel# # this config file was automatically generated # using lirc-0.5.5 on Thu May 25 18:00:24 2000 # # contributed by Michal Kochanowicz & Jesus Bravo Alvarez # # brand: AVerMedia # model: ? # supported devices: some TVCapture98 (ID 0x00021461) and # some TVPhone98 (ID 0x00011461) cards begin remote name TVCapture98 bits 6 flags SPACE_ENC|CONST_LENGTH eps 30 aeps 100 header 9078 4437 one 615 1631 zero 615 515 ptrail 620 # pre_data_bits 16 # pre_data 0x40BF repeat 9080 2189 gap 108056 repeat_bit 0 begin codes TV/FM 0x0000000000000023 CD 0x0000000000000022 # TELETEXT 0x000000000000C03F POWER 0x0000000000000027 1 0x0000000000000018 2 0x0000000000000010 3 0x0000000000000008 VIDEO 0x0000000000000000 4 0x0000000000000019 5 0x0000000000000011 6 0x0000000000000009 AUDIO 0x0000000000000001 7 0x000000000000001A 8 0x0000000000000012 9 0x000000000000000A FULLSCREEN 0x0000000000000002 0 0x000000000000001B DISPLAY 0x0000000000000013 COLOR 0x000000000000000B LOOP 0x0000000000000003 UNLABELED 0x000000000000001C LEFT 0x0000000000000014 RIGHT 0x000000000000000C PREVIEW 0x0000000000000004 AUTOSCAN 0x000000000000001D FREEZE 0x0000000000000015 CAPTURE 0x000000000000000D MUTE 0x0000000000000005 RED 0x000000000000001E VOL_DOWN 0x0000000000000016 VOL_UP 0x000000000000000E YELLOW 0x0000000000000006 GREEN 0x000000000000001F CH_DOWN 0x0000000000000017 CH_UP 0x000000000000000F BLUE 0x0000000000000007 end codes end remote # # this config file was automatically generated # using lirc-0.6.1 on Tue Apr 25 14:31:21 2000 # # contributed by Christoph Bartelmus # # brand: AVerMedia # model: ? (36 buttons) # supported devices: TVPhone98 card (ID 0x00031461) # TVCapture98 card (ID 0x00041461) # # This config file does work with both homebrew receivers and # original AVerMedia TV cards !!! # begin remote name TVPhone98 bits 16 flags SPACE_ENC|CONST_LENGTH eps 30 aeps 100 header 9078 4437 one 615 1631 zero 615 515 ptrail 620 repeat 9080 2189 pre_data_bits 16 pre_data 0x40BF gap 108056 repeat_bit 0 begin codes POWER 0x00000000000000FF TV/FM 0x000000000000807F CD 0x00000000000040BF TELETEXT 0x000000000000C03F VIDEO 0x00000000000020DF 1 0x000000000000A05F 2 0x000000000000609F 3 0x000000000000E01F AUDIO 0x00000000000010EF 4 0x000000000000906F 5 0x00000000000050AF 6 0x000000000000D02F FULLSCREEN 0x00000000000030CF 7 0x000000000000B04F 8 0x000000000000708F 9 0x000000000000F00F PREVIEW 0x00000000000008F7 0 0x0000000000008877 DISPLAY 0x00000000000048B7 LOOP 0x000000000000C837 MUTE 0x00000000000028D7 AUTOSCAN 0x000000000000A857 FREEZE 0x0000000000006897 CAPTURE 0x000000000000E817 PLAY 0x00000000000018E7 RECORD 0x0000000000009867 PAUSE 0x00000000000058A7 STOP 0x000000000000D827 YELLOW 0x00000000000038C7 RED 0x000000000000B847 VOL_DOWN 0x0000000000007887 VOL_UP 0x000000000000F807 end codes end remote begin remote name TVPhone98_ext bits 16 flags SPACE_ENC|CONST_LENGTH eps 30 aeps 100 header 9078 4437 one 615 1631 zero 615 515 ptrail 620 repeat 9080 2189 pre_data_bits 16 pre_data 0xC03F gap 108056 repeat_bit 0 begin codes BLUE 0x00000000000000FF GREEN 0x000000000000807F CH_DOWN 0x00000000000040BF CH_UP 0x000000000000C03F end codes end remote geexbox-0.98.7/packages/lirc/config/lircd_creative0000644000175000017500000000010010335100772021125 0ustar aurelaurelLIRC_DRIVER=creative LIRC_DEVICE=/dev/ttyS0 LIRC_MODULES="8250" geexbox-0.98.7/packages/lirc/config/lircd_creative.conf0000644000175000017500000000360410335100772022065 0ustar aurelaurel# # this config file was automatically generated # using lirc-0.6.3 on Sat Jan 6 11:38:33 2001 # # contributed by Stephen White # # brand: Creative # model: PC-DVD Remote # supported devices: Creative-Infra-Receiver # begin remote name CREATIVE_INFRA_DVD bits 16 flags SPACE_ENC|CONST_LENGTH eps 30 aeps 100 header 9293 4302 one 771 1494 zero 771 358 ptrail 756 pre_data_bits 16 pre_data 0x8435 gap 108646 toggle_bit 0 begin codes play 0x00000000000005FA stop 0x00000000000016E9 pause 0x00000000000000FF eject 0x00000000000002FD last 0x00000000000017E8 rrev 0x00000000000004FB ffwd 0x00000000000006F9 next 0x00000000000001FE 1 0x00000000000008F7 2 0x00000000000009F6 3 0x0000000000000AF5 shift 0x00000000000014EB 4 0x0000000000000CF3 5 0x0000000000000DF2 6 0x0000000000000EF1 mouse 0x00000000000007F8 7 0x00000000000010EF 8 0x00000000000011EE 9 0x00000000000012ED vol+ 0x0000000000000FF0 start 0x00000000000003FC 0 0x00000000000015EA mute 0x0000000000000BF4 vol- 0x00000000000013EC end codes end remote geexbox-0.98.7/packages/lirc/config/lircd_digimatrix0000644000175000017500000000015010335100772021471 0ustar aurelaurelLIRC_DRIVER=default LIRC_DEVICE=/dev/lirc LIRC_MODULES="it87|lirc_it87 digimatrix=1 it87_freq=36 irq=9" geexbox-0.98.7/packages/lirc/config/lircd_digimatrix.conf0000644000175000017500000000521110335100772022420 0ustar aurelaurel # brand: Asus Digimatrix # model no. of remote control: Model 1 # devices being controlled by this remote: Asus Digimatrix # Contributed by: Members of the http://outertrack.com/digimatrix/ Forum begin remote name digi bits 16 flags SPACE_ENC eps 30 aeps 100 header 8057 4071 one 479 1534 zero 479 531 ptrail 491 pre_data_bits 8 pre_data 0x35 gap 25647 toggle_bit 0 begin codes up 0x000000000000E817 down 0x00000000000018E7 enter 0x000000000000D02F left 0x0000000000009867 right 0x00000000000058A7 1 0x00000000000000FF 2 0x000000000000807F 3 0x00000000000040BF 4 0x000000000000C03F 5 0x00000000000020DF 6 0x000000000000A05F 7 0x000000000000609F 8 0x000000000000E01F 9 0x00000000000010EF 0 0x000000000000906F music 0x000000000000B04F dvd_vcd 0x000000000000F00F tv 0x00000000000008F7 os_start 0x00000000000030CF photo 0x00000000000048B7 home 0x00000000000044BB back 0x000000000000A857 ch+ 0x000000000000B847 stop 0x000000000000946B play 0x000000000000C43B vol+ 0x000000000000F807 ch- 0x0000000000007887 step- 0x000000000000E41B step+ 0x000000000000649B vol- 0x00000000000004FB pause 0x00000000000024DB pre 0x00000000000014EB next 0x000000000000A45B mute 0x000000000000847B rec 0x000000000000D42B subtitle 0x000000000000C837 menu 0x00000000000038C7 dvd_audio 0x00000000000050AF ui_size 0x0000000000008877 ui_on_off 0x00000000000028D7 end codes end remote geexbox-0.98.7/packages/lirc/config/lircd_digimatrixmk2.conf0000664000175000017500000000506510335100772023043 0ustar aurelaurelbegin remote name digi_mk2 bits 8 flags SPACE_ENC eps 30 aeps 100 header 2666 1378 one 260 741 zero 260 279 ptrail 251 pre_data_bits 1 pre_data 0x0 post_data_bits 8 post_data 0x3 gap 10826 min_repeat 1 toggle_bit 0 begin codes power 0x0000000000000084 tv_dvr 0x0000000000000044 fm 0x00000000000000C4 os_start 0x0000000000000024 music 0x00000000000000A4 pictures 0x0000000000000064 video 0x00000000000000E4 dvd_menu 0x0000000000000014 up 0x000000000000004C down 0x00000000000000E0 left 0x0000000000000010 right 0x0000000000000040 back 0x00000000000000B4 ok 0x0000000000000088 back_fwd 0x0000000000000074 rew 0x0000000000000094 play_pause 0x0000000000000054 fwd 0x00000000000000D4 step- 0x0000000000000098 stop 0x0000000000000048 step+ 0x0000000000000090 vol+ 0x0000000000000058 vol- 0x00000000000000D8 home 0x00000000000000C8 ch+ 0x0000000000000050 ch- 0x00000000000000D0 mute 0x0000000000000038 rec 0x0000000000000028 pc 0x0000000000000030 1 0x00000000000000B8 2 0x00000000000000A8 3 0x00000000000000B0 4 0x0000000000000078 5 0x0000000000000068 6 0x0000000000000070 7 0x00000000000000F8 8 0x00000000000000E8 9 0x00000000000000F0 0 0x0000000000000018 ui_size 0x0000000000000004 repeat 0x0000000000000008 end codes end remote geexbox-0.98.7/packages/lirc/config/lircd_hauppauge0000644000175000017500000000011610335100772021311 0ustar aurelaurelLIRC_DRIVER=default LIRC_DEVICE=/dev/lirc LIRC_MODULES="bttv card=2|lirc_i2c" geexbox-0.98.7/packages/lirc/config/lircd_hauppauge.conf0000644000175000017500000001002410335100772022234 0ustar aurelaurel# # this config file was automatically generated # using lirc-0.5.5pre8 on Sun Apr 18 11:43:45 1999 # # contributed by Jens Leuschner # # brand: Hauppauge # model: # supported devices: WinTV primo; WinTV pci; WinTV radio # # This config file will work with both homebrew receivers and # original Hauppauge TV cards !!! # begin remote name Hauppauge bits 13 flags SHIFT_ENC eps 30 aeps 100 one 950 830 zero 950 830 plead 960 gap 89584 repeat_bit 2 begin codes TV 0x000000000000100F RADIO 0x000000000000100C FULL_SCREEN 0x000000000000102E CH+ 0x0000000000001020 CH- 0x0000000000001021 VOL- 0x0000000000001011 VOL+ 0x0000000000001010 MUTE 0x000000000000100D SOURCE 0x0000000000001022 1 0x0000000000001001 2 0x0000000000001002 3 0x0000000000001003 4 0x0000000000001004 5 0x0000000000001005 6 0x0000000000001006 7 0x0000000000001007 8 0x0000000000001008 9 0x0000000000001009 0 0x0000000000001000 RESERVED 0x000000000000101E MINIMIZE 0x0000000000001026 end codes end remote # # this config file was automatically generated # using lirc-0.6.6(animax) on Tue Apr 15 19:50:27 2003 # # contributed by # # brand: Hauppauge # model no. of remote control: # devices being controlled by this remote: PVR 2/350 # begin remote name hauppauge_pvr bits 13 flags RC5|CONST_LENGTH eps 30 aeps 100 one 969 811 zero 969 811 plead 1097 gap 114605 toggle_bit 2 begin codes Power 0x00000000000017FD Go 0x00000000000017FB 1 0x00000000000017C1 2 0x00000000000017C2 3 0x00000000000017C3 4 0x00000000000017C4 5 0x00000000000017C5 6 0x00000000000017C6 7 0x00000000000017C7 8 0x00000000000017C8 9 0x00000000000017C9 Back/Exit 0x00000000000017DF 0 0x00000000000017C0 Menu 0x00000000000017CD Red 0x00000000000017CB Green 0x00000000000017EE Yellow 0x00000000000017F8 Blue 0x00000000000017E9 Ch+ 0x00000000000017E0 Ch- 0x00000000000017E1 Vol- 0x00000000000017D1 Vol+ 0x00000000000017D0 Ok 0x00000000000017E5 Mute 0x00000000000017CF Blank 0x00000000000017CC Full 0x00000000000017FC Rewind 0x00000000000017F2 Play 0x00000000000017F5 Forward 0x00000000000017F4 Record 0x00000000000017F7 Stop 0x00000000000017F6 Pause 0x00000000000017F0 Replay 0x00000000000017E4 Skip 0x00000000000017DE end codes end remote geexbox-0.98.7/packages/lirc/config/lircd_homemade0000644000175000017500000000010510335100772021107 0ustar aurelaurelLIRC_DRIVER=default LIRC_DEVICE=/dev/lirc LIRC_MODULES="lirc_serial" geexbox-0.98.7/packages/lirc/config/lircd_irman0000644000175000017500000000007510335100772020444 0ustar aurelaurelLIRC_DRIVER=irman LIRC_DEVICE=/dev/ttyS0 LIRC_MODULES="8250" geexbox-0.98.7/packages/lirc/config/lircd_leadtek0000644000175000017500000000012010335100772020736 0ustar aurelaurelLIRC_DRIVER=default LIRC_DEVICE=/dev/lirc LIRC_MODULES="bttv card=34|lirc_gpio" geexbox-0.98.7/packages/lirc/config/lircd_leadtek.conf0000644000175000017500000000627710335100772021705 0ustar aurelaurel# # this config file was automatically generated # using WinLIRC 0.6.4 (LIRC 0.6.1pre3) on Sun Nov 03 14:25:14 2002 # # modified by CB # # contributed by Erik Christiansson, aka Sci # www.alphafish.com # erik@alphafish.com # # brand: Leadtek # model: RM-0010 (bundeled with TV2000 TV-card) # # modifications based on the config files from # Juan Toledo and # Markus Lischka begin remote name RM-0010 bits 16 flags SPACE_ENC|CONST_LENGTH eps 40 aeps 100 header 9000 4500 one 563 1687 zero 563 562 ptrail 563 repeat 9000 2250 pre_data_bits 16 pre_data 0xC03F gap 108000 toggle_bit 0 frequency 38000 duty_cycle 33 begin codes POWER 0x00000000000000FF TV/FM 0x00000000000040BF SCAN 0x000000000000A857 DISPLAY 0x0000000000006897 1 0x000000000000A05F 2 0x000000000000609F 3 0x000000000000E01F 4 0x000000000000906F 5 0x00000000000050AF 6 0x000000000000D02F 7 0x000000000000B04F 8 0x000000000000708F 9 0x000000000000F00F 0 0x00000000000048B7 RECALL 0x0000000000008877 ENTER 0x000000000000C837 CC 0x000000000000F807 MTS 0x000000000000D827 FINE_DOWN 0x0000000000009867 FINE_UP 0x00000000000018E7 VIDEO 0x0000000000007887 MUTE 0x00000000000028D7 CH_UP 0x00000000000030CF CH_DOWN 0x00000000000008F7 VOL_DOWN 0x00000000000010EF VOL_UP 0x00000000000020DF FULLSCREEN 0x000000000000C03F # The following are only supported by the remote control bundled with # the WinFast TV 2000 XP Deluxe card. SLEEP 0x00000000000004FB BOSS_KEY 0x000000000000946B RED 0x000000000000D42B GREEN 0x00000000000034CB YELLOW 0x000000000000B44B BLUE 0x000000000000748B PIP 0x00000000000054AB . 0x000000000000847B BACK 0x00000000000044BB PLAY 0x000000000000C43B NEXT 0x00000000000024DB TIMESHIFT 0x000000000000A45B STOP 0x000000000000649B REC 0x000000000000E41B SNAPSHOT 0x00000000000014EB end codes end remote geexbox-0.98.7/packages/lirc/config/lircd_logitech0000644000175000017500000000010010335100772021121 0ustar aurelaurelLIRC_DRIVER=logitech LIRC_DEVICE=/dev/ttyS0 LIRC_MODULES="8250" geexbox-0.98.7/packages/lirc/config/lircd_logitech.conf0000644000175000017500000001064510335100772022064 0ustar aurelaurel# # # contributed by Isaac Lauer # # brand: Logitech # model: Value Infrared Remote Control # supported devices: # begin remote name Logitech bits 8 flags SPACE_ENC|CONST_LENGTH eps 30 aeps 100 one 0 833 zero 833 0 pre_data_bits 8 pre_data 0xA0 gap 29858 repeat_bit 0 begin codes POWER 0x0000000000000002 1 0x0000000000000015 2 0x0000000000000016 3 0x0000000000000014 4 0x0000000000000018 5 0x0000000000000019 6 0x0000000000000017 7 0x000000000000001C 8 0x000000000000001B 9 0x000000000000001A 0 0x000000000000001D PAUSE 0x0000000000000013 EJECT 0x0000000000000011 SEEK- 0x000000000000000E PLAY 0x000000000000000F SEEK+ 0x0000000000000010 STOP 0x0000000000000012 HELP 0x0000000000000001 CH- 0x000000000000000D CH+ 0x000000000000000A VOL- 0x000000000000000C VOL+ 0x0000000000000009 * 0x000000000000001F # 0x000000000000001E MUTE 0x000000000000000B BUTTONL_DOWN 0x0000000000000039 BUTTONR_DOWN 0x000000000000003A BUTTON_UP 0x0000000000000038 ENTER 0x0000000000000008 CLOSE 0x0000000000000023 TV 0x0000000000000004 GDE 0x0000000000000005 CD 0x0000000000000006 MSG 0x0000000000000007 PHONE 0x0000000000000003 MOUSE_N 0x0000000000000040 MOUSE_NNE 0x0000000000000041 MOUSE_NE 0x0000000000000042 MOUSE_NEE 0x0000000000000043 MOUSE_E 0x0000000000000044 MOUSE_SEE 0x0000000000000045 MOUSE_SE 0x0000000000000046 MOUSE_SSE 0x0000000000000047 MOUSE_S 0x0000000000000048 MOUSE_SSW 0x0000000000000049 MOUSE_SW 0x000000000000004A MOUSE_SWW 0x000000000000004B MOUSE_W 0x000000000000004C MOUSE_NWW 0x000000000000004D MOUSE_NW 0x000000000000004E MOUSE_NNW 0x000000000000004F MOUSE_N 0x0000000000000050 MOUSE_NNE 0x0000000000000051 MOUSE_NE 0x0000000000000052 MOUSE_NEE 0x0000000000000053 MOUSE_E 0x0000000000000054 MOUSE_SEE 0x0000000000000055 MOUSE_SE 0x0000000000000056 MOUSE_SSE 0x0000000000000057 MOUSE_S 0x0000000000000058 MOUSE_SSW 0x0000000000000059 MOUSE_SW 0x000000000000005A MOUSE_SWW 0x000000000000005B MOUSE_W 0x000000000000005C MOUSE_NWW 0x000000000000005D MOUSE_NW 0x000000000000005E MOUSE_NNW 0x000000000000005F MOUSE_N 0x0000000000000060 MOUSE_NNE 0x0000000000000061 MOUSE_NE 0x0000000000000062 MOUSE_NEE 0x0000000000000063 MOUSE_E 0x0000000000000064 MOUSE_SEE 0x0000000000000065 MOUSE_SE 0x0000000000000066 MOUSE_SSE 0x0000000000000067 MOUSE_S 0x0000000000000068 MOUSE_SSW 0x0000000000000069 MOUSE_SW 0x000000000000006A MOUSE_SWW 0x000000000000006B MOUSE_W 0x000000000000006C MOUSE_NWW 0x000000000000006D MOUSE_NW 0x000000000000006E MOUSE_NWW 0x000000000000006F end codes end remote geexbox-0.98.7/packages/lirc/config/lircd_packard_bell.conf0000644000175000017500000000705010335100772022665 0ustar aurelaurel# Config file for Packard Bell Remotes (with repeat codes!) # created by Samuel Wood (sjw@umr.edu) # # brand: Packard Bell Remote # model: El Cheapo Packard Bell Remote # # This is a config file for the cheap excess Packard Bell remotes # you sometimes can buy from online auctions like www.onsale.com. # # The receiver that comes with it hooks into the serial port and works # fine with lirc 0.5.4. # # The receiver that comes with the remote is near garbage. If # you don't point almost directly at it, it will not detect. But # it's simpler than building your own. :-) # # Repeat works fine for me. You just have to modify or add the # "repeat=" lines in your .lircrc. # # irrecord was used to generate the file, then I modified and # added repeat codes. # # The button names used are identical to what was printed on the # remote, except for the number pads (using actual numbers like # "1" and so forth did not seem to work. Similarly, '*' is Star # and '#' is Hash. LMB and RMB refer to the two mousepad buttons # on the left and right respectively. # # I still need to modify the gap setting. Right now, if you don't # hold the button down long enough, it may not register, but if # you hold it too long, it will detect a repeat or two. Feel free # to modify this to work better. If you get it to work better, send # me a copy. :-) begin remote name PackBell bits 15 flags SPACE_ENC|CONST_LENGTH eps 30 aeps 100 header 9065 4500 one 597 532 zero 597 1643 ptrail 597 pre_data_bits 16 pre_data 0xF708 post_data_bits 1 post_data 0x0 gap 107000 repeat_bit 0 repeat 9050 2250 begin codes Help 0x0000000000006F90 Phone 0x0000000000004FB0 Message 0x0000000000006E91 SRS 0x0000000000004EB1 CD 0x0000000000002FD0 Aux1 0x0000000000000FF0 Aux2 0x0000000000002ED1 Aux3 0x0000000000000EF1 LMB 0x00000000000023DC RMB 0x000000000000639C Up 0x00000000000037C8 Down 0x00000000000057A8 Left 0x0000000000007788 Right 0x00000000000017E8 Menu 0x0000000000007B84 Mute 0x0000000000003BC4 Enter 0x00000000000047B8 CHUp 0x00000000000027D8 CHDown 0x0000000000006798 VolUp 0x0000000000005BA4 VolDown 0x0000000000001BE4 Display 0x00000000000007F8 One 0x0000000000005EA1 Two 0x0000000000001EE1 Three 0x0000000000000BF4 Four 0x0000000000007E81 Five 0x0000000000003EC1 Six 0x0000000000004BB4 Seven 0x0000000000005FA0 Eight 0x0000000000001FE0 Nine 0x0000000000002BD4 Zero 0x0000000000003FC0 Star 0x0000000000007F80 Hash 0x0000000000006B94 end codes end remote geexbox-0.98.7/packages/lirc/config/lircd_pctv0000644000175000017500000000007610335100772020313 0ustar aurelaurelLIRC_DRIVER=pinsys LIRC_DEVICE=/dev/ttyS0 LIRC_MODULES="8250" geexbox-0.98.7/packages/lirc/config/lircd_pctv.conf0000644000175000017500000000641510335100772021242 0ustar aurelaurel# # contributed by Bart Alewijnse # # brand: Pinnacle Systems # model: PCTV Remote (Perhaps other ones as well) # supported devices: there's only one I know of. (serial) # # Mail me if your remote is only partly supported, or if it has different # buttons than listed below. # begin remote name PinnacleSysPCTVRemote bits 8 eps 30 aeps 100 one 0 0 zero 0 0 gap 180000 begin codes Mute 0x000000000000003C Power 0x000000000000002F Chan+Play 0x000000000000003F Chan-Stop 0x000000000000003E Vol+FF 0x000000000000003B Vol-Rew 0x000000000000003D 1 0x0000000000000031 2 0x0000000000000032 3 0x0000000000000033 4 0x0000000000000034 5 0x0000000000000035 6 0x0000000000000036 7 0x0000000000000037 8 0x0000000000000038 9 0x0000000000000039 Fullscreen 0x000000000000002D 0/AV 0x000000000000003A Info 0x000000000000002B Preview 0x000000000000002E Record 0x0000000000000027 Chan_Last 0x0000000000000025 F_TV 0x0000000000000026 F_TELETEXT 0x0000000000000029 F_RADIO 0x000000000000002A # # here are some extra buttons a new version of the remote seems to have # # contributed by Robbert Monna # # brand: Pinnacle Systems # model: PCTV Remote (newest version?) # supported devices: dongle on serial port (from TV-Card) # L 0x000000000000001F Zoom 0x000000000000001E vol+ 0x000000000000001B vol- 0x000000000000000F channel+ 0x0000000000000017 channel- 0x000000000000001C middle 0x000000000000001A Menu 0x000000000000001D next 0x0000000000000019 undo 0x0000000000000016 pause 0x0000000000000015 redo 0x0000000000000013 Rewind 0x000000000000000E Play 0x000000000000000D Stop 0x000000000000000B FForward 0x0000000000000007 EPG 0x0000000000000018 # here are some more buttons that seem to be mapped differently from # the ones above # contributed by InterCeptor ceptor_7@freemail.hu # # brand: Pinnacle Systems PCTV Pro Remote # model no. of remote control: (I can't find any numbers on it) # supported devices: serial # 9 0x0000000000000082 Zoom 0x00000000000000B2 middle 0x0000000000000014 end codes end remote geexbox-0.98.7/packages/lirc/config/lircd_realmagic0000644000175000017500000000010110335100772021250 0ustar aurelaurelLIRC_DRIVER=pixelview LIRC_DEVICE=/dev/ttyS0 LIRC_MODULES="8250" geexbox-0.98.7/packages/lirc/config/lircd_realmagic.conf0000644000175000017500000000615610335100772022214 0ustar aurelaurel# # this config file was automatically generated # using lirc-0.6.3 on Fri Nov 10 21:47:32 2000 # # contributed by Stefan Neuwirth & Andreas Lange # # brand: Sigma Designs # model: REALmagic remote control # www.realmagic.com/support.htm#remote # supported devices: # "For Hollywood Plus Version 1.4 or above Driver only" # remote control for the Sigma Designs REALmagic Hollywood Plus DVD card # receiver is connected to the serial port - it does not require the card # # The first byte always is 131. The second and third byte are equal. (CB) # begin remote name REALmagic bits 20 eps 30 aeps 100 one 0 0 zero 0 0 pre_data_bits 10 pre_data 0x183 gap 189974 toggle_bit 0 begin codes 1 0x0000000000062D8B 2 0x0000000000012C4B 3 0x000000000001AC6B 4 0x0000000000072DCB 5 0x000000000000AC2B 6 0x0000000000052D4B # Nicolas Vignal reported that this code is sent for his remote # version (1.5). It should be no problem to just have two entries for # "6" unless you want to send codes what won't work for this receiver # anyway. 6 0x0000000000041505 7 0x0000000000058561 8 0x0000000000044511 9 0x000000000004AD2B 0 0x000000000004C531 VOL+ 0x0000000000022C8B VOL- 0x0000000000032CCB MUTE 0x000000000006ADAB L-R 0x0000000000052549 VGA 0x0000000000054551 ENTER 0x0000000000042509 QUIT 0x0000000000058D63 PRG 0x0000000000038CE3 UP 0x0000000000078DE3 DOWN 0x0000000000064D93 LEFT 0x0000000000044D13 RIGHT 0x000000000003ECFB SELECT 0x0000000000024C93 MENU 0x0000000000014C53 TITLE 0x0000000000054D53 OSD 0x0000000000034CD3 LANG 0x0000000000074DD3 ANGLE 0x000000000000CC33 SUB 0x000000000004CD33 PAUSE 0x000000000002CCB3 STOP 0x000000000006CDB3 PLAY 0x000000000001CC73 EJECT 0x000000000005CD73 REV 0x000000000003CCF3 FF 0x000000000007CDF3 PREV 0x0000000000002C0B NEXT 0x0000000000042D0B end codes end remote geexbox-0.98.7/packages/lirc/config/lircrc_D-100000644000175000017500000000546010335100772020123 0ustar aurelaurelbegin prog = mplayer button = POWER config = quit 166 end begin prog = mplayer button = EJECT config = run /usr/bin/eject end begin prog = mplayer button = ANGLE config = run /usr/bin/tvswitch end begin prog = mplayer button = INDEX config = set_menu jump_to end begin prog = mplayer button = A-B config = osd end begin prog = mplayer button = MUTE config = mute end begin prog = mplayer button = 1 repeat = 1 config = seek -10 end begin prog = mplayer button = 2 repeat = 1 config = seek 10 end begin prog = mplayer button = 4 repeat = 3 config = seek -60 end begin prog = mplayer button = 5 repeat = 3 config = seek 60 end begin prog = mplayer button = 7 repeat = 1 config = sub_delay -0.2 end begin prog = mplayer button = 8 repeat = 1 config = sub_delay +0.2 end begin prog = mplayer button = 3 repeat = 1 config = brightness 1 end begin prog = mplayer button = 6 repeat = 1 config = brightness -1 end begin prog = mplayer button = 0 repeat = 1 config = sub_visibility end begin prog = mplayer button = MENU config = set_menu main end begin prog = mplayer button = TITLE config = set_menu open_file end begin prog = mplayer button = SUBTITLE config = set_menu sub_sel end begin prog = mplayer button = AUDIO config = set_menu audio_sel end begin prog = mplayer button = PAUSE config = pause end begin prog = mplayer button = ACTIVE_MENU repeat = 0 config = menu hide end begin prog = mplayer button = EXIT config = menu cancel end begin prog = mplayer button = LEFT_RW repeat = 2 config = volume -1 end begin prog = mplayer button = RIGHT_FW repeat = 2 config = volume 1 end begin prog = mplayer button = UP_FW repeat = 3 config = menu up end begin prog = mplayer button = DOWN_RW repeat = 3 config = menu down end begin prog = mplayer button = OK_PLAY config = menu ok end begin prog = mplayer button = STOP config = quit end begin prog = mplayer button = SKIP_BACK repeat = 2 config = pt_step -1 end begin prog = mplayer button = SKIP_FORWARD repeat = 2 config = pt_step 1 end begin prog = fbi button = EXIT config = q end begin prog = fbi button = RIGHT_FW config = n end begin prog = fbi button = LEFT_RW config = b end begin prog = fbi button = UP_FW config = + end begin prog = fbi button = DOWN_RW config = - end begin prog = fbi button = PAUSE config = p end begin prog = fbi button = ANGLE config = h end begin prog = fbi button = INDEX config = i end begin prog = fbi button = A-B config = v end begin prog = fbi button = MUTE config = a end geexbox-0.98.7/packages/lirc/config/lircrc_LG0000644000175000017500000000313310335100772020017 0ustar aurelaurelbegin prog = mplayer button = red repeat = 0 config = seek -60 end begin prog = mplayer button = green repeat = 0 config = seek 60 end begin prog = mplayer button = ok repeat = 0 config = PAUSE end begin prog = mplayer button = mute repeat = 0 config = quit end begin prog = mplayer button = blue repeat = 1 config = VOLUME +1 end begin prog = mplayer button = yellow repeat = 1 config = VOLUME -1 end begin prog = mplayer button = vol+ repeat = 0 config = menu ok end begin prog = mplayer button = vol- repeat = 0 config = menu cancel end begin prog = mplayer button = pr+ repeat = 0 config = menu up end begin prog = mplayer button = pr- repeat = 0 config = menu down end begin prog = mplayer button = sleep repeat = 1 config = menu hide end begin prog = mplayer button = time repeat = 1 config = osd end begin prog = mplayer button = tv config = run /usr/bin/tvswitch end begin prog = irpty button = psm config = p: end begin prog = irpty button = picture config = l: end begin prog = fbi button = ok config = p end begin prog = fbi button = vol+ config = n end begin prog = fbi button = vol- config = b end begin prog = fbi button = mute config = q end begin prog = fbi button = sleep config = v end begin prog = fbi button = pr+ config = + end begin prog = fbi button = pr- config = - end begin prog = fbi button = tv config = a end geexbox-0.98.7/packages/lirc/config/lircrc_RM-S60000644000175000017500000000256310335100772020327 0ustar aurelaurelbegin prog = mplayer button = TAPE config = run /usr/bin/tvswitch end begin prog = mplayer button = CD_PAUSE config = pause end begin prog = mplayer button = CD_STOP config = quit end begin prog = mplayer button = CD_PLAY config = mute end begin prog = mplayer button = CD_PREV_TRACK repeat = 1 config = seek -120 end begin prog = mplayer button = CD_NEXT_TRACK repeat = 1 config = seek 120 end begin prog = mplayer button = SLEEP repeat = 1 config = seek -10 end begin prog = mplayer button = CD repeat = 1 config = seek 10 end begin prog = mplayer button = AMP_VOL_DOWN repeat = 2 config = volume -1 end begin prog = mplayer button = AMP_VOL_UP repeat = 5 config = volume 1 end begin prog = mplayer button = CD_EJECT config = osd end begin prog = mplayer button = AMP_POWER config = quit 166 end begin prog = mplayer button = TUNER config = menu hide end begin prog = mplayer button = TUNER_SHIFT config = set_menu open_file end begin prog = mplayer button = VIDEO/AUX config = menu ok end begin prog = mplayer button = PHONO config = menu cancel end begin prog = mplayer button = TUNER_PRESET_+ repeat = 5 config = menu up end begin prog = mplayer button = TUNER_PRESET_- repeat = 5 config = menu down end geexbox-0.98.7/packages/lirc/config/lircrc_RX-V8500000644000175000017500000000265210335100772020513 0ustar aurelaurelbegin prog = mplayer button = F_TV config = run /usr/bin/tvswitch end begin prog = mplayer button = CD_PLAY config = pause end begin prog = mplayer button = CD_PAUSE/STOP repeat = 1 config = seek -120 end begin prog = mplayer button = CD_SEARCH_FWD repeat = 1 config = seek 120 end begin prog = mplayer button = TAPE_DIR_A repeat = 1 config = seek -10 end begin prog = mplayer button = TAPE_DIR_B repeat = 1 config = seek 10 end begin prog = mplayer button = CD_SEARCH_REV repeat = 1 config = volume -1 end begin prog = mplayer button = CD_SKIP_FWD repeat = 1 config = volume 1 end begin prog = mplayer button = TUNER_+ repeat = 1 config = volume 1 end begin prog = mplayer button = 8 repeat = 1 config = volume -1 end begin prog = mplayer button = CD_SKIP_REV config = osd end begin prog = mplayer button = CD_DISK_SKIP config = quit 166 end begin prog = TAPE_PLAY button = Info config = menu hide end begin prog = mplayer button = TAPE_STOP config = set_menu open_file end begin prog = mplayer button = TAPE_FFWD config = menu ok end begin prog = mplayer button = TAPE_REWIND config = menu cancel end begin prog = mplayer button = TAPE_REC/PAUSE repeat = 1 config = menu up end begin prog = mplayer button = TAPE_DECK_A/B repeat = 1 config = menu down end geexbox-0.98.7/packages/lirc/config/lircrc_animax0000644000175000017500000000266610335100772021004 0ustar aurelaurelbegin prog = mplayer button = TV_DOWN config = run /usr/bin/tvswitch end begin prog = mplayer button = MENU_DOWN config = pause end begin prog = mplayer button = STOP_DOWN config = quit end begin prog = mplayer button = MUTE_DOWN config = mute end begin prog = mplayer button = 1_DOWN repeat = 1 config = seek -120 end begin prog = mplayer button = 3_DOWN repeat = 1 config = seek 120 end begin prog = mplayer button = REWIND_DOWN repeat = 1 config = seek -10 end begin prog = mplayer button = FORWARD_DOWN repeat = 1 config = seek 10 end begin prog = mplayer button = VOLUME_DOWN_DOWN repeat = 1 config = volume -1 end begin prog = mplayer button = VOLUME_UP_DOWN repeat = 1 config = volume 1 end begin prog = mplayer button = BLUE_BUTTON_DOWN config = osd end begin prog = mplayer button = POWER_DOWN config = quit 166 end begin prog = mplayer button = RED_BUTTON_DOWN config = menu hide end begin prog = mplayer button = GREEN_BUTTON_DOWN config = set_menu open_file end begin prog = mplayer button = LEFT_MOUSE_BUTTON_TOUCH_DOWN config = menu ok end begin prog = mplayer button = MOUSE_S repeat = 0 config = menu cancel end begin prog = mplayer button = LEFT_MOUSE_BUTTON_DOWN config = menu up end begin prog = mplayer button = RIGHT_MOUSE_BUTTON_DOWN config = menu down end geexbox-0.98.7/packages/lirc/config/lircrc_askey0000644000175000017500000000340310335100772020631 0ustar aurelaurelbegin prog = mplayer button = TV config = run /usr/bin/tvswitch end begin prog = mplayer button = 5 config = pause end begin prog = mplayer button = FREEZE config = pause end begin prog = mplayer button = 8 repeat = 1 config = seek -120 end begin prog = mplayer button = 2 repeat = 1 config = seek 120 end begin prog = mplayer button = 4 repeat = 1 config = seek -10 end begin prog = mplayer button = 6 repeat = 1 config = seek 10 end begin prog = mplayer button = 1 repeat = 1 config = volume 1 end begin prog = mplayer button = 7 repeat = 1 config = volume -1 end begin prog = mplayer button = VOL_UP repeat = 1 config = volume 1 end begin prog = mplayer button = VOL_DOWN repeat = 1 config = volume -1 end begin prog = mplayer button = VIDEO config = osd end begin prog = mplayer button = PREVIEW config = menu hide end begin prog = mplayer button = PLAY config = set_menu open_file end begin prog = mplayer button = RECORD config = menu ok end begin prog = mplayer button = STOP config = menu cancel end begin prog = mplayer button = CH_UP repeat = 2 config = menu up end begin prog = mplayer button = CH_DOWN repeat = 2 config = menu down end begin prog = mplayer button = FINE_UP(PLUS) repeat = 2 config = menu down end begin prog = mplayer button = FINE_DOWN(MINUS) repeat = 2 config = menu up end begin prog = mplayer button = 3 config = audio_delay 0.1 end begin prog = mplayer button = 9 config = audio_delay -0.1 end begin prog = mplayer button = MUTE config = mute end begin prog = mplayer button = ZOOM config = vo_fullscreen end geexbox-0.98.7/packages/lirc/config/lircrc_atiusb0000644000175000017500000000665510335100772021020 0ustar aurelaurelbegin prog = mplayer button = launch_setup config = run /usr/bin/tvswitch end begin prog = mplayer button = pause config = pause end begin prog = mplayer button = rewind repeat = 3 config = seek -120 end begin prog = mplayer button = fast_forward repeat = 3 config = seek 120 end begin prog = mplayer button = c repeat = 3 config = seek -10 end begin prog = mplayer button = d repeat = 3 config = seek 10 end begin prog = mplayer button = vol-down repeat = 2 config = volume -1 end begin prog = mplayer button = vol-up repeat = 2 config = volume 1 end begin prog = mplayer button = tv_on_demand config = osd end begin prog = mplayer button = power config = quit 166 end begin prog = mplayer button = dvd-root_menu config = menu hide end begin prog = mplayer button = web config = set_menu open_file end begin prog = mplayer button = dvd config = play_dvd hide_menu end begin prog = mplayer button = tv config = set_menu tv_settings end begin prog = mplayer button = drag config = set_menu view_img end begin prog = mplayer button = play config = seek 0 end begin prog = mplayer button = ok config = menu ok end begin prog = mplayer button = cursor-right config = menu ok end begin prog = mplayer button = mouse-right config = menu ok end begin prog = mplayer button = cursor-left config = menu cancel end begin prog = mplayer button = mouse-left config = menu cancel end begin prog = mplayer button = cursor-up repeat = 2 config = menu up end begin prog = mplayer button = mouse-up repeat = 6 config = menu up end begin prog = mplayer button = cursor-down repeat = 2 config = menu down end begin prog = mplayer button = mouse-down repeat = 6 config = menu down end begin prog = mplayer button = e repeat = 3 config = sub_pos -1 end begin prog = mplayer button = f repeat = 3 config = sub_pos +1 end begin prog = mplayer button = mute config = mute end begin prog = mplayer button = stop config = quit end begin prog = mplayer button = max_window config = set_menu aspect end begin prog = mplayer button = media_library config = set_menu jump_to end begin prog = irpty button = d config = p end begin prog = irpty button = c config = l end begin prog = fbi button = power config = q end begin prog = fbi button = cursor-right config = n end begin prog = fbi button = mouse-right config = n end begin prog = fbi button = fast_forward config = n end begin prog = fbi button = cursor-left config = b end begin prog = fbi button = mouse-left config = b end begin prog = fbi button = rewind config = b end begin prog = fbi button = cursor-up config = + end begin prog = fbi button = mouse-up config = + end begin prog = fbi button = cursor-down config = - end begin prog = fbi button = mouse-down config = - end begin prog = fbi button = max_window config = a end begin prog = fbi button = dvd-root_menu config = h end begin prog = fbi button = tv_on_demand config = i end begin prog = fbi button = play config = p end begin prog = fbi button = pause config = p end begin prog = fbi button = launch_setup config = v end geexbox-0.98.7/packages/lirc/config/lircrc_avermedia0000644000175000017500000000324110335100773021453 0ustar aurelaurelbegin prog = mplayer button = DISPLAY config = run /usr/bin/tvswitch end begin prog = mplayer button = PAUSE config = pause end begin prog = mplayer button = CH_DOWN repeat = 3 config = seek -60 end begin prog = mplayer button = CH_UP repeat = 3 config = seek 60 end begin prog = mplayer button = VOL_DOWN repeat = 2 config = volume -2 end begin prog = mplayer button = VOL_UP repeat = 2 config = volume 2 end begin prog = mplayer button = TELETEXT config = osd end begin prog = mplayer button = POWER config = quit 166 end begin prog = mplayer button = TV/FM config = menu hide end begin prog = mplayer button = 0 config = set_menu open_file end begin prog = mplayer button = VIDEO config = play_dvd hide_menu end begin prog = mplayer button = TV/FM config = set_menu tv_settings end begin prog = mplayer button = PREVIEW config = set_menu view_img end begin prog = mplayer button = PLAY config = menu ok end begin prog = mplayer button = 6 config = menu ok end begin prog = mplayer button = 4 config = menu cancel end begin prog = mplayer button = 2 repeat = 4 config = menu up end begin prog = mplayer button = 8 repeat = 4 config = menu down end begin prog = mplayer button = GREEN repeat = 3 config = sub_pos -1 end begin prog = mplayer button = RED repeat = 3 config = sub_pos +1 end begin prog = mplayer button = MUTE config = mute end begin prog = mplayer button = STOP config = quit end begin prog = mplayer button = FULLSCREEN config = set_menu aspect end geexbox-0.98.7/packages/lirc/config/lircrc_creative0000644000175000017500000000242310335100773021321 0ustar aurelaurelbegin prog = mplayer button = VGA config = run /usr/bin/tvswitch end begin prog = mplayer button = pause config = pause end begin prog = mplayer button = stop config = quit end begin prog = mplayer button = MUTE config = mute end begin prog = mplayer button = rrev repeat = 1 config = seek -120 end begin prog = mplayer button = ffwd repeat = 1 config = seek 120 end begin prog = mplayer button = last repeat = 1 config = seek -10 end begin prog = mplayer button = next repeat = 1 config = seek 10 end begin prog = mplayer button = VOL- repeat = 1 config = volume -1 end begin prog = mplayer button = VOL+ repeat = 1 config = volume 1 end begin prog = mplayer button = 1 config = osd end begin prog = mplayer button = shift config = quit 166 end begin prog = mplayer button = start config = menu hide end begin prog = mplayer button = eject config = set_menu open_file end begin prog = mplayer button = 6 config = menu ok end begin prog = mplayer button = 4 config = menu cancel end begin prog = mplayer button = 2 repeat = 1 config = menu up end begin prog = mplayer button = 8 repeat = 1 config = menu down end geexbox-0.98.7/packages/lirc/config/lircrc_digimatrix0000644000175000017500000000735010335100773021664 0ustar aurelaurelbegin prog = mplayer button = 0 config = set_menu controls end begin prog = mplayer button = tv config = set_menu tv_settings end begin prog = mplayer button = pause config = pause end begin prog = mplayer button = pre repeat = 3 config = seek -120 end begin prog = mplayer button = next repeat = 3 config = seek 120 end begin prog = mplayer button = step- repeat = 3 config = seek -10 end begin prog = mplayer button = step+ repeat = 3 config = seek 10 end begin prog = mplayer button = ch+ repeat = 3 config = tv_step_channel +1 end begin prog = mplayer button = ch- repeat = 3 config = tv_step_channel -1 end begin prog = mplayer button = vol- repeat = 2 config = volume -1 end begin prog = mplayer button = vol+ repeat = 2 config = volume 1 end begin prog = mplayer button = ui_on_off config = osd end begin prog = mplayer button = os_start config = quit 166 end begin prog = mplayer button = menu config = menu hide end begin prog = mplayer button = music config = set_menu open_file end begin prog = mplayer button = dvd_vcd config = play_dvd hide_menu end begin prog = mplayer button = home config = play_cdda end begin prog = mplayer button = photo config = set_menu view_img end begin prog = mplayer button = play config = seek 0 end begin prog = mplayer button = enter config = menu ok end begin prog = mplayer button = right config = menu ok end begin prog = mplayer button = left config = menu cancel end begin prog = mplayer button = up repeat = 2 config = menu up end begin prog = mplayer button = down repeat = 2 config = menu down end begin prog = mplayer button = 1 repeat = 3 config = sub_pos -1 end begin prog = mplayer button = 4 repeat = 3 config = sub_pos +1 end begin prog = mplayer button = 2 repeat = 3 config = sub_select +1 end begin prog = mplayer button = 5 repeat = 3 config = sub_select end begin prog = mplayer button = 8 repeat = 3 config = sub_select -1 end begin prog = mplayer button = 3 repeat = 3 config = vobsub_lang +1 end begin prog = mplayer button = 6 repeat = 3 config = vobsub_lang -1 end begin prog = mplayer button = 7 repeat = 3 config = panscan -0.1 end begin prog = mplayer button = 9 repeat = 3 config = panscan +0.1 end begin prog = mplayer button = subtitle repeat = 3 config = sub_visibility end begin prog = mplayer button = dvd_audio repeat = 3 config = switch_audio end begin prog = mplayer button = mute config = mute end begin prog = mplayer button = stop config = quit end begin prog = mplayer button = ui_size config = set_menu aspect end begin prog = mplayer button = back config = play_vcd end begin prog = irpty button = step- config = p end begin prog = irpty button = step+ config = l end begin prog = fbi button = stop config = q end begin prog = fbi button = right config = n end begin prog = fbi button = step+ config = n end begin prog = fbi button = left config = b end begin prog = fbi button = step- config = b end begin prog = fbi button = up config = + end begin prog = fbi button = down config = - end begin prog = fbi button = ui_size config = a end begin prog = fbi button = menu config = h end begin prog = fbi button = tv config = i end begin prog = fbi button = play config = p end begin prog = fbi button = pause config = p end begin prog = fbi button = 0 config = v end geexbox-0.98.7/packages/lirc/config/lircrc_digimatrixmk20000644000175000017500000000735110335100773022277 0ustar aurelaurelbegin prog = mplayer button = 0 config = set_menu controls end begin prog = mplayer button = tv_dvr config = set_menu tv_settings end begin prog = mplayer button = dvd_menu config = play_dvd hide_menu end begin prog = mplayer button = pause config = pause end begin prog = mplayer button = rew repeat = 3 config = seek -120 end begin prog = mplayer button = fwd repeat = 3 config = seek 120 end begin prog = mplayer button = step- repeat = 3 config = seek -10 end begin prog = mplayer button = step+ repeat = 3 config = seek 10 end begin prog = mplayer button = ch+ repeat = 3 config = tv_step_channel +1 end begin prog = mplayer button = ch- repeat = 3 config = tv_step_channel -1 end begin prog = mplayer button = vol- repeat = 2 config = volume -1 end begin prog = mplayer button = vol+ repeat = 2 config = volume 1 end begin prog = mplayer button = ui_size config = osd end begin prog = mplayer button = power config = quit 166 end begin prog = mplayer button = back_fwd config = menu hide end begin prog = mplayer button = fm config = set_menu open_file end begin prog = mplayer button = music config = play_cdda end begin prog = mplayer button = pictures config = set_menu view_img end begin prog = mplayer button = play config = seek 0 end begin prog = mplayer button = ok config = menu ok end begin prog = mplayer button = right config = menu ok end begin prog = mplayer button = left config = menu cancel end begin prog = mplayer button = up repeat = 2 config = menu up end begin prog = mplayer button = down repeat = 2 config = menu down end begin prog = mplayer button = 1 repeat = 3 config = sub_pos -1 end begin prog = mplayer button = 4 repeat = 3 config = sub_pos +1 end begin prog = mplayer button = 2 repeat = 3 config = sub_select +1 end begin prog = mplayer button = 5 repeat = 3 config = sub_select end begin prog = mplayer button = 8 repeat = 3 config = sub_select -1 end begin prog = mplayer button = 3 repeat = 3 config = vobsub_lang +1 end begin prog = mplayer button = 6 repeat = 3 config = vobsub_lang -1 end begin prog = mplayer button = 7 repeat = 3 config = panscan -0.1 end begin prog = mplayer button = 9 repeat = 3 config = panscan +0.1 end begin prog = mplayer button = pc repeat = 3 config = sub_visibility end begin prog = mplayer button = repeat repeat = 3 config = switch_audio end begin prog = mplayer button = mute config = mute end begin prog = mplayer button = stop config = quit end begin prog = mplayer button = ui_size config = set_menu aspect end begin prog = mplayer button = video config = play_vcd end begin prog = irpty button = step- config = p end begin prog = irpty button = step+ config = l end begin prog = fbi button = stop config = q end begin prog = fbi button = right config = n end begin prog = fbi button = step+ config = n end begin prog = fbi button = left config = b end begin prog = fbi button = step- config = b end begin prog = fbi button = up config = + end begin prog = fbi button = down config = - end begin prog = fbi button = ui_size config = a end begin prog = fbi button = menu config = h end begin prog = fbi button = tv_dvr config = i end begin prog = fbi button = play config = p end begin prog = fbi button = pause config = p end begin prog = fbi button = 0 config = v end geexbox-0.98.7/packages/lirc/config/lircrc_hauppauge0000644000175000017500000000234210335100773021476 0ustar aurelaurelbegin prog = mplayer button = TV config = run /usr/bin/tvswitch end begin prog = mplayer button = 5 config = pause end begin prog = mplayer button = 8 repeat = 1 config = seek -120 end begin prog = mplayer button = 2 repeat = 1 config = seek 120 end begin prog = mplayer button = 4 repeat = 1 config = seek -10 end begin prog = mplayer button = 6 repeat = 1 config = seek 10 end begin prog = mplayer button = 1 repeat = 1 config = volume 1 end begin prog = mplayer button = 7 repeat = 1 config = volume -1 end begin prog = mplayer button = FULL_SCREEN config = osd end begin prog = mplayer button = MINIMIZE config = menu hide end begin prog = mplayer button = SOURCE config = set_menu open_file end begin prog = mplayer button = VOL+ config = menu ok end begin prog = mplayer button = VOL- config = menu cancel end begin prog = mplayer button = CH+ repeat = 2 config = menu up end begin prog = mplayer button = CH- repeat = 2 config = menu down end begin prog = mplayer button = 3 config = audio_delay 0.1 end begin prog = mplayer button = 9 config = audio_delay -0.1 end geexbox-0.98.7/packages/lirc/config/lircrc_leadtek0000644000175000017500000000245010335100773021130 0ustar aurelaurelbegin prog = mplayer button = TV/FM config = run /usr/bin/tvswitch end begin prog = mplayer button = 9 config = pause end begin prog = mplayer button = 8 config = quit end begin prog = mplayer button = MUTE config = mute end begin prog = mplayer button = 1 repeat = 6 config = seek -120 end begin prog = mplayer button = 3 repeat = 6 config = seek 120 end begin prog = mplayer button = 4 repeat = 6 config = seek -10 end begin prog = mplayer button = 6 repeat = 6 config = seek 10 end begin prog = mplayer button = FINE_DOWN repeat = 6 config = volume -1 end begin prog = mplayer button = FINE_UP repeat = 6 config = volume 1 end begin prog = mplayer button = SCAN config = osd end begin prog = mplayer button = POWER config = quit 166 end begin prog = mplayer button = ENTER config = menu hide end begin prog = mplayer button = FULLSCREEN config = set_menu open_file end begin prog = mplayer button = VOL_UP config = menu ok end begin prog = mplayer button = VOL_DOWN config = menu cancel end begin prog = mplayer button = CH_UP repeat = 6 config = menu up end begin prog = mplayer button = CH_DOWN repeat = 6 config = menu down end geexbox-0.98.7/packages/lirc/config/lircrc_logitech0000644000175000017500000000245110335100773021316 0ustar aurelaurelbegin prog = mplayer button = TV config = run /usr/bin/tvswitch end begin prog = mplayer button = PAUSE config = pause end begin prog = mplayer button = STOP config = quit end begin prog = mplayer button = MUTE config = mute end begin prog = mplayer button = 1 repeat = 1 config = seek -120 end begin prog = mplayer button = 3 repeat = 1 config = seek 120 end begin prog = mplayer button = SEEK- repeat = 1 config = seek -10 end begin prog = mplayer button = SEEK+ repeat = 1 config = seek 10 end begin prog = mplayer button = VOL- repeat = 1 config = volume -1 end begin prog = mplayer button = VOL+ repeat = 1 config = volume 1 end begin prog = mplayer button = HELP config = osd end begin prog = mplayer button = CLOSE config = quit 166 end begin prog = mplayer button = ENTER config = menu hide end begin prog = mplayer button = GDE config = set_menu open_file end begin prog = mplayer button = BUTTONL_DOWN config = menu ok end begin prog = mplayer button = BUTTONR_DOWN config = menu cancel end begin prog = mplayer button = CH+ repeat = 1 config = menu up end begin prog = mplayer button = CH- repeat = 1 config = menu down end geexbox-0.98.7/packages/lirc/config/lircrc_packard_bell0000644000175000017500000000243310335100773022123 0ustar aurelaurelbegin prog = mplayer button = Aux3 config = run /usr/bin/tvswitch end begin prog = mplayer button = Enter config = pause end begin prog = mplayer button = Display config = quit end begin prog = mplayer button = Mute config = mute end begin prog = mplayer button = 1 repeat = 1 config = seek -120 end begin prog = mplayer button = 3 repeat = 1 config = seek 120 end begin prog = mplayer button = Left repeat = 1 config = seek -10 end begin prog = mplayer button = Right repeat = 1 config = seek 10 end begin prog = mplayer button = VolDown repeat = 1 config = volume -1 end begin prog = mplayer button = VolUp repeat = 1 config = volume 1 end begin prog = mplayer button = Help config = osd end begin prog = mplayer button = SRS config = quit 166 end begin prog = mplayer button = Menu config = menu hide end begin prog = mplayer button = CD config = set_menu open_file end begin prog = mplayer button = RMB config = menu ok end begin prog = mplayer button = LMB config = menu cancel end begin prog = mplayer button = Up repeat = 1 config = menu up end begin prog = mplayer button = Down repeat = 1 config = menu down end geexbox-0.98.7/packages/lirc/config/lircrc_pctv0000644000175000017500000000630210335100773020473 0ustar aurelaurelbegin prog = mplayer button = F_TV config = run /usr/bin/tvswitch end begin prog = mplayer button = 0/AV config = run /usr/bin/tvswitch end begin prog = mplayer button = 5 config = pause end begin prog = mplayer button = pause config = pause end begin prog = mplayer button = 1 repeat = 1 config = seek -120 end begin prog = mplayer button = undo repeat = 1 config = seek -120 end begin prog = mplayer button = 3 repeat = 1 config = seek 120 end begin prog = mplayer button = redo repeat = 1 config = seek 120 end begin prog = mplayer button = 4 repeat = 1 config = seek -10 end begin prog = mplayer button = Rewind repeat = 1 config = seek -10 end begin prog = mplayer button = 6 repeat = 1 config = seek 10 end begin prog = mplayer button = FForward repeat = 1 config = seek 10 end begin prog = mplayer button = 7 repeat = 1 config = volume -1 end begin prog = mplayer button = vol- repeat = 1 config = volume -1 end begin prog = mplayer button = 9 repeat = 1 config = volume 1 end begin prog = mplayer button = vol+ repeat = 1 config = volume 1 end begin prog = mplayer button = 2 repeat = 1 config = volume 1 end begin prog = mplayer button = 8 repeat = 1 config = volume -1 end begin prog = mplayer button = Fullscreen config = osd end begin prog = mplayer button = Power config = quit 166 end begin prog = mplayer button = Info config = menu hide end begin prog = mplayer button = Menu config = menu hide end begin prog = mplayer button = Chan_Last config = set_menu open_file end begin prog = mplayer button = Preview config = set_menu open_file end begin prog = mplayer button = Vol+FF config = menu ok end begin prog = mplayer button = Vol-Rew config = menu cancel end begin prog = mplayer button = Chan+Play repeat = 1 config = menu up end begin prog = mplayer button = Chan-Stop repeat = 1 config = menu down end begin prog = mplayer button = channel- repeat = 1 config = sub_pos -1 end begin prog = mplayer button = channel+ repeat = 1 config = sub_pos +1 end begin prog = mplayer button = Mute config = mute end begin prog = mplayer button = Stop config = quit end begin prog = mplayer button = Zoom config = set_menu aspect end begin prog = mplayer button = middle config = set_menu jump_to end begin prog = irpty button = F_RADIO config = p end begin prog = irpty button = F_TELETEXT config = l end begin prog = fbi button = Power config = q end begin prog = fbi button = Vol+FF config = n end begin prog = fbi button = Vol-Rew config = b end begin prog = fbi button = Chan+Play config = + end begin prog = fbi button = Chan-Stop config = - end begin prog = fbi button = Fullscreen config = a end begin prog = fbi button = 0 config = h end begin prog = fbi button = Info config = i end begin prog = fbi button = Record config = p end begin prog = fbi button = Preview config = v end geexbox-0.98.7/packages/lirc/config/lircrc_realmagic0000644000175000017500000000242610335100773021446 0ustar aurelaurelbegin prog = mplayer button = VGA config = run /usr/bin/tvswitch end begin prog = mplayer button = PAUSE config = pause end begin prog = mplayer button = STOP config = quit end begin prog = mplayer button = MUTE config = mute end begin prog = mplayer button = 1 repeat = 1 config = seek -120 end begin prog = mplayer button = 3 repeat = 1 config = seek 120 end begin prog = mplayer button = REV repeat = 1 config = seek -10 end begin prog = mplayer button = FF repeat = 1 config = seek 10 end begin prog = mplayer button = VOL- repeat = 1 config = volume -1 end begin prog = mplayer button = VOL+ repeat = 1 config = volume 1 end begin prog = mplayer button = OSD config = osd end begin prog = mplayer button = QUIT config = quit 166 end begin prog = mplayer button = MENU config = menu hide end begin prog = mplayer button = EJECT config = set_menu open_file end begin prog = mplayer button = SELECT config = menu ok end begin prog = mplayer button = LEFT config = menu cancel end begin prog = mplayer button = UP repeat = 1 config = menu up end begin prog = mplayer button = DOWN repeat = 1 config = menu down end geexbox-0.98.7/packages/lirc/init.d/0000755000175000017500000000000010335100773016155 5ustar aurelaurelgeexbox-0.98.7/packages/lirc/init.d/48_lirc0000755000175000017500000000076410335100773017356 0ustar aurelaurel#!/bin/sh # # setup lirc # # runlevels: geexbox, debug echo "### Starting LIRC daemon ###" # read the config if test -f /etc/remote; then . /etc/remote cp -f /etc/lirc/lircrc_$REMOTE /etc/lircrc cp -f /etc/lirc/lircd_$RECEIVER /etc/lircd cp -f /etc/lirc/lircd_$REMOTE.conf /etc/lircd.conf fi . /etc/lircd # insert needed modules IFS='|' for module in $LIRC_MODULES; do eval "modprobe $module" >/dev/null 2>&1 done # start lircd lircd --driver=$LIRC_DRIVER --device=$LIRC_DEVICE exit 0 geexbox-0.98.7/packages/lirc/install0000755000175000017500000000323310335100773016365 0ustar aurelaurel#!/bin/sh . config/options mkdir -p $INSTALL/etc mkdir -p $INSTALL/usr/bin mkdir -p "`ls -d $INSTALL/lib/modules/*`/misc" cp $BUILD/$1*/daemons/lircd $INSTALL/usr/bin cp $BUILD/$1*/tools/irpty $INSTALL/usr/bin cp $BUILD/$1*/drivers/lirc_dev/lirc_dev.ko \ $BUILD/$1*/drivers/lirc_i2c/lirc_i2c.ko \ $BUILD/$1*/drivers/lirc_gpio/lirc_gpio.ko \ $BUILD/$1*/drivers/lirc_serial/lirc_serial.ko \ $BUILD/$1*/drivers/lirc_sir/lirc_sir.ko \ $BUILD/$1*/drivers/lirc_atiusb/lirc_atiusb.ko \ $BUILD/$1*/drivers/lirc_it87/lirc_it87.ko \ $INSTALL/lib/modules/*/misc case "$2" in generator) mkdir -p $GENERATOR_NAME/lirc cp $PACKAGES/$1/config/lircrc_* $GENERATOR_NAME/lirc cp $PACKAGES/$1/config/lircd_* $GENERATOR_NAME/lirc ;; installator) mkdir -p $INSTALL/etc/lirc cp $PACKAGES/$1/config/lircrc_* $INSTALL/etc/lirc cp $PACKAGES/$1/config/lircd_* $INSTALL/etc/lirc echo "# Remote to use (pctv/logitech/hauppauge/realmagic/creative/leadtek/RM-S6/" > $INSTALL/etc/remote echo "# RX-V850/animax/avermedia/packard_bell/atiusb/LG/D-10)" >> $INSTALL/etc/remote echo "REMOTE=$REMOTE" >> $INSTALL/etc/remote echo "" >> $INSTALL/etc/remote echo "# Remote receiver to use (animax/avermedia/atiusb/creative/hauppauge/homemade/irman/" >> $INSTALL/etc/remote echo "# leadtek/logitech/pctv/realmagic)" >> $INSTALL/etc/remote echo "RECEIVER=$RECEIVER" >> $INSTALL/etc/remote ;; *) cp $PACKAGES/$1/config/lircrc_$REMOTE $INSTALL/etc/lircrc cp $PACKAGES/$1/config/lircd_$REMOTE.conf $INSTALL/etc/lircd.conf cp $PACKAGES/$1/config/lircd_$RECEIVER $INSTALL/etc/lircd ;; esac geexbox-0.98.7/packages/lirc/patches/0000755000175000017500000000000010335100773016417 5ustar aurelaurelgeexbox-0.98.7/packages/lirc/patches/10_all-remotes.diff0000644000175000017500000000456110335100773022003 0ustar aurelaureldiff -Nur lirc-0.7.2pre3.orig/configure lirc-0.7.2pre3/configure --- lirc-0.7.2pre3.orig/configure Mon Aug 8 14:44:07 2005 +++ lirc-0.7.2pre3/configure Mon Aug 8 14:45:43 2005 @@ -8569,7 +8569,7 @@ #define LIRC_DRIVER_ANY 1 EOF - lirc_driver="any" + lirc_driver="" any_possible_drivers=`echo ${possible_drivers} | sed -e's/ /-/g' \ -e's/)-(/ /g' -e's/(//g' -e's/)//g' \ @@ -8639,20 +8639,22 @@ #hw_module="${hw_module} hw_irreal.o serial.o receive.o transmit.o" ;; lirc_dev-lirc_atiusb) + lirc_driver="${lirc_driver} lirc_dev lirc_atiusb" ;; lirc_dev-lirc_cmdir) ;; lirc_dev-lirc_gpio) - #lirc_driver="${lirc_driver} lirc_dev lirc_gpio" + lirc_driver="${lirc_driver} lirc_dev lirc_gpio" ;; lirc_dev-lirc_i2c) - #lirc_driver="${lirc_driver} lirc_dev lirc_i2c" + lirc_driver="${lirc_driver} lirc_dev lirc_i2c" ;; lirc_dev-lirc_igorplugusb) ;; lirc_dev-lirc_imon) ;; lirc_dev-lirc_it87) + lirc_driver="${lirc_driver} lirc_dev lirc_it87" ;; lirc_dev-lirc_mceusb) ;; @@ -8663,8 +8665,10 @@ lirc_dev-lirc_sasem) ;; lirc_dev-lirc_serial) + lirc_driver="${lirc_driver} lirc_serial" ;; lirc_dev-lirc_sir) + lirc_driver="${lirc_driver} lirc_sir" ;; lirc_dev-lirc_streamzap) ;; @@ -8721,11 +8725,14 @@ done #remove duplicates - #sed segfaults when $hw_module is too long :( - #hw_module=`echo ${hw_module}| sed \ - # -e':again' \ - # -e's/\(.*\)\(\<.*\) \(.*\) \2\(.*\)$/\1\2 \3\4/' \ - # -e'tagain'` + hw_module=`echo ${hw_module}| sed \ + -e':again' \ + -e's/\(.*\)\(\<.*\) \(.*\) \2\(.*\)$/\1\2 \3\4/' \ + -e'tagain'` + lirc_driver=`echo ${lirc_driver}| sed \ + -e':again' \ + -e's/\(.*\)\(\<.*\) \(.*\) \2\(.*\)$/\1\2 \3\4/' \ + -e'tagain'` space_to_newline() { for token in $*; do echo $token; done; } @@ -9316,7 +9323,7 @@ { echo "configure: error: no driver specified, try ./configure --help" 1>&2; exit 1; } fi -if echo ${possible_drivers} | grep "($lirc_driver)" >/dev/null 2>&1; then +if true; then dummy= else case $lirc_driver in diff -Nur lirc-0.7.2pre3.orig/daemons/hw-types.c lirc-0.7.2pre3/daemons/hw-types.c --- lirc-0.7.2pre3.orig/daemons/hw-types.c Mon Aug 1 21:34:37 2005 +++ lirc-0.7.2pre3/daemons/hw-types.c Mon Aug 8 14:44:49 2005 @@ -107,7 +107,6 @@ &hw_silitek, /* &hw_slinke,*/ &hw_tira, - &hw_udp, &hw_uirt2, &hw_uirt2_raw, #else geexbox-0.98.7/packages/lirc/patches/20_atiusb.diff0000644000175000017500000000073010335100773021041 0ustar aurelaureldiff -Naur lirc-0.7.1.orig/drivers/lirc_atiusb/lirc_atiusb.c lirc-0.7.1/drivers/lirc_atiusb/lirc_atiusb.c --- lirc-0.7.1.orig/drivers/lirc_atiusb/lirc_atiusb.c 2005-06-04 00:40:55.000000000 +0200 +++ lirc-0.7.1/drivers/lirc_atiusb/lirc_atiusb.c 2005-06-04 00:41:24.000000000 +0200 @@ -395,7 +395,7 @@ /* strip channel code */ if (!unique) { iep->buf[len-1] &= 0x0F; - iep->buf[len-3] -= (chan<<4); + iep->buf[len-3] &= 0x0F; } if ( !((1U<devnum; /* determine remote type */ - switch (dev->descriptor.idVendor) { + switch (cpu_to_le16(dev->descriptor.idVendor)) { case VENDOR_ATI1: type = ATI1_COMPATIBLE; break; geexbox-0.98.7/packages/lirc/patches/30_kerneldir.diff0000644000175000017500000000127410335100773021536 0ustar aurelaureldiff -Nur lirc-0.7.2pre3.orig/configure lirc-0.7.2pre3/configure --- lirc-0.7.2pre3.orig/configure Mon Aug 8 14:43:04 2005 +++ lirc-0.7.2pre3/configure Mon Aug 8 14:42:32 2005 @@ -7870,16 +7870,12 @@ kernelext=ko no_kernel=yes - if test `uname` != "Linux"; then - kerneldir="not running Linux" - else - for dir in /usr/src/kernel-source-`uname -r` /usr/src/linux-`uname -r` /usr/src/linux /lib/modules/`uname -r`/build ${ac_kerneldir}; do + for dir in ${ac_kerneldir}; do if test -d $dir; then kerneldir=`dirname $dir/Makefile`/ no_kernel=no fi; done - fi if test x${no_kernel} != xyes; then if test -f ${kerneldir}/Makefile; then geexbox-0.98.7/packages/lirc/patches/40_gmake.diff0000644000175000017500000000235310335100773020643 0ustar aurelaureldiff -Naur lirc-0.7.0.orig/configure lirc-0.7.0/configure --- lirc-0.7.0.orig/configure 2004-12-30 01:36:49.918207016 +0100 +++ lirc-0.7.0/configure 2004-12-30 01:36:56.205251240 +0100 @@ -7884,14 +7884,14 @@ echo "lirc_tell_me_what_cc_is:" >>${ac_pkss_makefile} echo " echo \$(CC)" >>${ac_pkss_makefile} - kernelcc=`make -s -C ${kerneldir} -f ${ac_pkss_makefile} lirc_tell_me_what_cc_is` + kernelcc=`${MAKE-make} -s -C ${kerneldir} -f ${ac_pkss_makefile} lirc_tell_me_what_cc_is` echo "lirc_tell_me_what_version_is:" >>${ac_pkss_makefile} echo " echo \$(VERSION)" >>${ac_pkss_makefile} echo "lirc_tell_me_what_patchlevel_is:" >>${ac_pkss_makefile} echo " echo \$(PATCHLEVEL)" >>${ac_pkss_makefile} - version=`make -s -C ${kerneldir} -f ${ac_pkss_makefile} lirc_tell_me_what_version_is` - patchlevel=`make -s -C ${kerneldir} -f ${ac_pkss_makefile} lirc_tell_me_what_patchlevel_is` + version=`${MAKE-make} -s -C ${kerneldir} -f ${ac_pkss_makefile} lirc_tell_me_what_version_is` + patchlevel=`${MAKE-make} -s -C ${kerneldir} -f ${ac_pkss_makefile} lirc_tell_me_what_patchlevel_is` if test ${version} -eq 2; then if test ${patchlevel} -lt 5; then kernelext=o geexbox-0.98.7/packages/lirc/patches/50_lircd-wait-for-device.diff0000644000175000017500000000070010335100773023632 0ustar aurelaureldiff -Nur lirc-0.7.2pre3.orig/daemons/lircd.c lirc-0.7.2pre3/daemons/lircd.c --- lirc-0.7.2pre3.orig/daemons/lircd.c Sun Jul 10 11:34:12 2005 +++ lirc-0.7.2pre3/daemons/lircd.c Fri Aug 12 08:41:21 2005 @@ -493,6 +493,14 @@ { if(hw.init_func) { + struct stat s; + int i; + for (i = 0; i < 10 * 5; i++) + { + if (!stat(hw.device, &s)) + break; + usleep(100000); + } if(!hw.init_func()) { shutdown(clis[0],2); geexbox-0.98.7/packages/lirc/patches/51_irpty-stay-alive-when-lircd-dies.diff0000644000175000017500000000161310335100773025756 0ustar aurelaureldiff -Nur lirc-0.7.2pre3.orig/tools/irpty.c lirc-0.7.2pre3/tools/irpty.c --- lirc-0.7.2pre3.orig/tools/irpty.c Fri Aug 12 13:41:13 2005 +++ lirc-0.7.2pre3/tools/irpty.c Fri Aug 12 13:44:32 2005 @@ -84,10 +84,12 @@ if ((child = fork()) < 0) { die("fork error"); } else if (!child) { + int lircd_alive = 1; fd_set fds; while (1) { FD_ZERO(&fds); - FD_SET(lsock, &fds); + if (lircd_alive) + FD_SET(lsock, &fds); FD_SET(STDIN_FILENO, &fds); select(lsock + 1, &fds, NULL, NULL, NULL); @@ -99,7 +101,7 @@ if (write(ptym, buf, nread) != nread) die("writen error to master pty"); } - if (FD_ISSET(lsock, &fds)) + if (lircd_alive && FD_ISSET(lsock, &fds)) { char *ir; char *irchars; @@ -118,7 +120,8 @@ free(ir); if(ret==-1) break; } - if(ret==-1) break; + if(ret==-1) + lircd_alive = 0; } } if (!ignoreeof) geexbox-0.98.7/packages/lirc/patches/60_urb-async-unlink.diff0000644000175000017500000000063710335100773022765 0ustar aurelaurelcommited in cvs (in diffrent form) diff -Nur lirc-0.7.3pre1.orig/drivers/kcompat.h lirc-0.7.3pre1/drivers/kcompat.h --- lirc-0.7.3pre1.orig/drivers/kcompat.h Thu Oct 20 20:41:36 2005 +++ lirc-0.7.3pre1/drivers/kcompat.h Fri Oct 28 12:05:36 2005 @@ -219,5 +219,8 @@ #ifndef I2C_ALGO_BIT # define I2C_ALGO_BIT 0 #endif +#ifndef URB_ASYNC_UNLINK +# define URB_ASYNC_UNLINK 0 +#endif #endif /* _KCOMPAT_H */ geexbox-0.98.7/packages/lirc/patches/61_remove-asm-segment-include.diff0000644000175000017500000000244710335100773024722 0ustar aurelaureldiff -Nur lirc-0.7.3pre1.orig/drivers/lirc_it87/lirc_it87.c lirc-0.7.3pre1/drivers/lirc_it87/lirc_it87.c --- lirc-0.7.3pre1.orig/drivers/lirc_it87/lirc_it87.c Tue Oct 4 23:10:04 2005 +++ lirc-0.7.3pre1/drivers/lirc_it87/lirc_it87.c Fri Nov 4 11:59:59 2005 @@ -58,7 +58,6 @@ #include #include #include -#include #include #include #include diff -Nur lirc-0.7.3pre1.orig/drivers/lirc_serial/lirc_serial.c lirc-0.7.3pre1/drivers/lirc_serial/lirc_serial.c --- lirc-0.7.3pre1.orig/drivers/lirc_serial/lirc_serial.c Thu Sep 22 23:10:37 2005 +++ lirc-0.7.3pre1/drivers/lirc_serial/lirc_serial.c Fri Nov 4 12:00:05 2005 @@ -91,7 +91,6 @@ #include #include -#include #include #include #include diff -Nur lirc-0.7.3pre1.orig/drivers/lirc_sir/lirc_sir.c lirc-0.7.3pre1/drivers/lirc_sir/lirc_sir.c --- lirc-0.7.3pre1.orig/drivers/lirc_sir/lirc_sir.c Thu Sep 22 23:10:37 2005 +++ lirc-0.7.3pre1/drivers/lirc_sir/lirc_sir.c Fri Nov 4 12:00:08 2005 @@ -75,7 +75,6 @@ #include #include #include -#include #include #include #include geexbox-0.98.7/packages/lirc/unpack0000755000175000017500000000014410335100773016176 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain sed -i "s%^CFLAGS=.*%%" $BUILD/$1*/configure geexbox-0.98.7/packages/lirc/url0000644000175000017500000000007610335100773015520 0ustar aurelaurelhttp://www.lirc.org/software/snapshots/lirc-0.7.3pre1.tar.bz2 geexbox-0.98.7/packages/lrmi/0000755000175000017500000000000010335100773015002 5ustar aurelaurelgeexbox-0.98.7/packages/lrmi/build0000755000175000017500000000035310335100773016030 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain cd $BUILD/$1* make liblrmi.a CFLAGS="$CFLAGS" mkdir -p $LIB_PREFIX/lib $LIB_PREFIX/include cp lrmi.h $LIB_PREFIX/include cp vbe.h $LIB_PREFIX/include cp liblrmi.a $LIB_PREFIX/lib geexbox-0.98.7/packages/lrmi/url0000644000175000017500000000007710335100773015533 0ustar aurelaurelhttp://ovh.dl.sourceforge.net/sourceforge/lrmi/lrmi-0.9.tar.gz geexbox-0.98.7/packages/lzma/0000755000175000017500000000000010335100773015002 5ustar aurelaurelgeexbox-0.98.7/packages/lzma/build0000755000175000017500000000030010335100773016020 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/install ccache setup_toolchain host LZDIR=$BUILD/$1*/SRC/7zip/Compress/LZMA_Alone make -C $LZDIR -f makefile.gcc CXX="$CXX $CFLAGS" CXX_C="$CC $CFLAGS" geexbox-0.98.7/packages/lzma/install0000755000175000017500000000020410335100773016372 0ustar aurelaurel#!/bin/sh . config/options mkdir -p $ROOT/$TOOLCHAIN/bin cp -rf $BUILD/$1*/SRC/7zip/Compress/LZMA_Alone/lzma $ROOT/$TOOLCHAIN/bin geexbox-0.98.7/packages/lzma/patches/0000755000175000017500000000000010335100773016431 5ustar aurelaurelgeexbox-0.98.7/packages/lzma/patches/10_noarch.diff0000644000175000017500000000307110335100773021036 0ustar aurelaureldiff -Nur lzma-4.26.orig/SRC/7zip/Compress/LZMA_Alone/LzmaAlone.cpp lzma-4.26/SRC/7zip/Compress/LZMA_Alone/LzmaAlone.cpp --- lzma-4.26.orig/SRC/7zip/Compress/LZMA_Alone/LzmaAlone.cpp Tue Aug 2 11:27:08 2005 +++ lzma-4.26/SRC/7zip/Compress/LZMA_Alone/LzmaAlone.cpp Sun Aug 7 00:51:22 2005 @@ -25,11 +25,9 @@ #include "../LZMA/LZMAEncoder.h" #include "LzmaBench.h" -#include "LzmaRam.h" extern "C" { -#include "LzmaRamDecode.h" } using namespace NCommandLineParser; @@ -51,7 +49,6 @@ kEOS, kStdIn, kStdOut, - kFilter86 }; } @@ -69,7 +66,6 @@ { L"EOS", NSwitchType::kSimple, false }, { L"SI", NSwitchType::kSimple, false }, { L"SO", NSwitchType::kSimple, false }, - { L"F86", NSwitchType::kSimple, false } }; static const int kNumSwitches = sizeof(kSwitchForms) / sizeof(kSwitchForms[0]); @@ -250,6 +246,7 @@ } } +#if 0 if (parser[NKey::kFilter86].ThereIs) { // -f86 switch is for x86 filtered mode: BCJ + LZMA. @@ -317,6 +314,7 @@ MyFree(inBuffer); return 0; } +#endif UInt64 fileSize; diff -Nur lzma-4.26.orig/SRC/7zip/Compress/LZMA_Alone/makefile.gcc lzma-4.26/SRC/7zip/Compress/LZMA_Alone/makefile.gcc --- lzma-4.26.orig/SRC/7zip/Compress/LZMA_Alone/makefile.gcc Tue Apr 5 20:20:54 2005 +++ lzma-4.26/SRC/7zip/Compress/LZMA_Alone/makefile.gcc Sun Aug 7 00:51:22 2005 @@ -8,10 +8,7 @@ OBJS = \ LzmaAlone.o \ LzmaBench.o \ - LzmaRam.o \ - LzmaRamDecode.o \ LzmaDecode.o \ - BranchX86.o \ LZMADecoder.o \ LZMAEncoder.o \ LZInWindow.o \ geexbox-0.98.7/packages/lzma/url0000644000175000017500000000003710335100773015527 0ustar aurelaurelGEEXBOX_SRCS/lzma-4.26.tar.bz2 geexbox-0.98.7/packages/make/0000755000175000017500000000000010335100773014754 5ustar aurelaurelgeexbox-0.98.7/packages/make/build0000755000175000017500000000027210335100773016002 0ustar aurelaurel#!/bin/sh . config/options setup_toolchain host CC=$LOCAL_CC cd $BUILD/$1* ./configure --host=$HOST_NAME \ --build=$HOST_NAME \ --disable-nls /bin/sh build.sh geexbox-0.98.7/packages/make/install0000755000175000017500000000014110335100773016344 0ustar aurelaurel#!/bin/sh . config/options mkdir -p $ROOT/$TOOLCHAIN/bin cp $BUILD/$1*/$1 $ROOT/$TOOLCHAIN/bin geexbox-0.98.7/packages/make/patches/0000755000175000017500000000000010335100773016403 5ustar aurelaurelgeexbox-0.98.7/packages/make/patches/10_build.sh.diff0000644000175000017500000000053410335100773021247 0ustar aurelaurel--- make-3.80.orig/build.sh.in Fri Oct 4 06:18:48 2002 +++ make-3.80/build.sh.in Thu Nov 18 08:43:28 2004 @@ -30,7 +30,8 @@ ALLOCA='@ALLOCA@' LOADLIBES='@LIBS@' extras='@LIBOBJS@' -REMOTE='@REMOTE@' +@USE_CUSTOMS_TRUE@REMOTE=cstms +@USE_CUSTOMS_FALSE@REMOTE=stub GLOBLIB='@GLOBLIB@' # Common prefix for machine-independent installed files. geexbox-0.98.7/packages/make/url0000644000175000017500000000006610335100773015503 0ustar aurelaurelhttp://mirrors.usc.edu/pub/gnu/make/make-3.80.tar.bz2 geexbox-0.98.7/packages/module-init-tools/0000755000175000017500000000000010335100773017423 5ustar aurelaurelgeexbox-0.98.7/packages/module-init-tools/build0000755000175000017500000000024610335100773020452 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain setup_toolchain host cd $BUILD/$1* ./configure --host=$HOST_NAME \ --build=$HOST_NAME make depmod geexbox-0.98.7/packages/module-init-tools/patches/0000755000175000017500000000000010335100773021052 5ustar aurelaurelgeexbox-0.98.7/packages/module-init-tools/patches/10_crosscompile.diff0000644000175000017500000000064010335100773024706 0ustar aurelaurel--- module-init-tools-3.0.orig/configure Wed Nov 17 12:03:44 2004 +++ module-init-tools-3.0/configure Wed Nov 17 12:04:01 2004 @@ -2817,13 +2817,6 @@ LDADD="$LDADD $zlib_flags" -case $target in -*-*-linux*) ;; -*) { { echo "$as_me:$LINENO: error: Linux only, dude!" >&5 -echo "$as_me: error: Linux only, dude!" >&2;} - { (exit 1); exit 1; }; };; -esac - # Thanks to Martin Pool if test x"$GCC" = xyes then geexbox-0.98.7/packages/module-init-tools/url0000644000175000017500000000014510335100773020150 0ustar aurelaurelhttp://ftp.ch.kernel.org/pub/linux/utils/kernel/module-init-tools/module-init-tools-3.2-pre8.tar.bz2 geexbox-0.98.7/packages/mptvscan/0000755000175000017500000000000010335100773015672 5ustar aurelaurelgeexbox-0.98.7/packages/mptvscan/sources/0000755000175000017500000000000010335100773017355 5ustar aurelaurelgeexbox-0.98.7/packages/mptvscan/sources/Makefile0000644000175000017500000000016410335100773021016 0ustar aurelaurelSCAN = mptvscan all: $(CC) mptvscan.c frequencies.c $(LDFLAGS) $(CFLAGS) -o $(SCAN) clean: rm -f *~ *.o $(SCAN) geexbox-0.98.7/packages/mptvscan/sources/frequencies.c0000644000175000017500000006525510335100773022047 0ustar aurelaurel#include #include #include "frequencies.h" /* --------------------------------------------------------------------- */ /* US broadcast */ static struct CHANLIST ntsc_bcast[] = { { "2", 55250 }, { "3", 61250 }, { "4", 67250 }, { "5", 77250 }, { "6", 83250 }, { "7", 175250 }, { "8", 181250 }, { "9", 187250 }, { "10", 193250 }, { "11", 199250 }, { "12", 205250 }, { "13", 211250 }, { "14", 471250 }, { "15", 477250 }, { "16", 483250 }, { "17", 489250 }, { "18", 495250 }, { "19", 501250 }, { "20", 507250 }, { "21", 513250 }, { "22", 519250 }, { "23", 525250 }, { "24", 531250 }, { "25", 537250 }, { "26", 543250 }, { "27", 549250 }, { "28", 555250 }, { "29", 561250 }, { "30", 567250 }, { "31", 573250 }, { "32", 579250 }, { "33", 585250 }, { "34", 591250 }, { "35", 597250 }, { "36", 603250 }, { "37", 609250 }, { "38", 615250 }, { "39", 621250 }, { "40", 627250 }, { "41", 633250 }, { "42", 639250 }, { "43", 645250 }, { "44", 651250 }, { "45", 657250 }, { "46", 663250 }, { "47", 669250 }, { "48", 675250 }, { "49", 681250 }, { "50", 687250 }, { "51", 693250 }, { "52", 699250 }, { "53", 705250 }, { "54", 711250 }, { "55", 717250 }, { "56", 723250 }, { "57", 729250 }, { "58", 735250 }, { "59", 741250 }, { "60", 747250 }, { "61", 753250 }, { "62", 759250 }, { "63", 765250 }, { "64", 771250 }, { "65", 777250 }, { "66", 783250 }, { "67", 789250 }, { "68", 795250 }, { "69", 801250 }, { "70", 807250 }, { "71", 813250 }, { "72", 819250 }, { "73", 825250 }, { "74", 831250 }, { "75", 837250 }, { "76", 843250 }, { "77", 849250 }, { "78", 855250 }, { "79", 861250 }, { "80", 867250 }, { "81", 873250 }, { "82", 879250 }, { "83", 885250 }, }; /* US cable */ static struct CHANLIST ntsc_cable[] = { { "1", 73250 }, { "2", 55250 }, { "3", 61250 }, { "4", 67250 }, { "5", 77250 }, { "6", 83250 }, { "7", 175250 }, { "8", 181250 }, { "9", 187250 }, { "10", 193250 }, { "11", 199250 }, { "12", 205250 }, { "13", 211250 }, { "14", 121250 }, { "15", 127250 }, { "16", 133250 }, { "17", 139250 }, { "18", 145250 }, { "19", 151250 }, { "20", 157250 }, { "21", 163250 }, { "22", 169250 }, { "23", 217250 }, { "24", 223250 }, { "25", 229250 }, { "26", 235250 }, { "27", 241250 }, { "28", 247250 }, { "29", 253250 }, { "30", 259250 }, { "31", 265250 }, { "32", 271250 }, { "33", 277250 }, { "34", 283250 }, { "35", 289250 }, { "36", 295250 }, { "37", 301250 }, { "38", 307250 }, { "39", 313250 }, { "40", 319250 }, { "41", 325250 }, { "42", 331250 }, { "43", 337250 }, { "44", 343250 }, { "45", 349250 }, { "46", 355250 }, { "47", 361250 }, { "48", 367250 }, { "49", 373250 }, { "50", 379250 }, { "51", 385250 }, { "52", 391250 }, { "53", 397250 }, { "54", 403250 }, { "55", 409250 }, { "56", 415250 }, { "57", 421250 }, { "58", 427250 }, { "59", 433250 }, { "60", 439250 }, { "61", 445250 }, { "62", 451250 }, { "63", 457250 }, { "64", 463250 }, { "65", 469250 }, { "66", 475250 }, { "67", 481250 }, { "68", 487250 }, { "69", 493250 }, { "70", 499250 }, { "71", 505250 }, { "72", 511250 }, { "73", 517250 }, { "74", 523250 }, { "75", 529250 }, { "76", 535250 }, { "77", 541250 }, { "78", 547250 }, { "79", 553250 }, { "80", 559250 }, { "81", 565250 }, { "82", 571250 }, { "83", 577250 }, { "84", 583250 }, { "85", 589250 }, { "86", 595250 }, { "87", 601250 }, { "88", 607250 }, { "89", 613250 }, { "90", 619250 }, { "91", 625250 }, { "92", 631250 }, { "93", 637250 }, { "94", 643250 }, { "95", 91250 }, { "96", 97250 }, { "97", 103250 }, { "98", 109250 }, { "99", 115250 }, { "100", 649250 }, { "101", 655250 }, { "102", 661250 }, { "103", 667250 }, { "104", 673250 }, { "105", 679250 }, { "106", 685250 }, { "107", 691250 }, { "108", 697250 }, { "109", 703250 }, { "110", 709250 }, { "111", 715250 }, { "112", 721250 }, { "113", 727250 }, { "114", 733250 }, { "115", 739250 }, { "116", 745250 }, { "117", 751250 }, { "118", 757250 }, { "119", 763250 }, { "120", 769250 }, { "121", 775250 }, { "122", 781250 }, { "123", 787250 }, { "124", 793250 }, { "125", 799250 }, { "T7", 8250 }, { "T8", 14250 }, { "T9", 20250 }, { "T10", 26250 }, { "T11", 32250 }, { "T12", 38250 }, { "T13", 44250 }, { "T14", 50250 } }; /* US HRC */ static struct CHANLIST ntsc_hrc[] = { { "1", 72000 }, { "2", 54000 }, { "3", 60000 }, { "4", 66000 }, { "5", 78000 }, { "6", 84000 }, { "7", 174000 }, { "8", 180000 }, { "9", 186000 }, { "10", 192000 }, { "11", 198000 }, { "12", 204000 }, { "13", 210000 }, { "14", 120000 }, { "15", 126000 }, { "16", 132000 }, { "17", 138000 }, { "18", 144000 }, { "19", 150000 }, { "20", 156000 }, { "21", 162000 }, { "22", 168000 }, { "23", 216000 }, { "24", 222000 }, { "25", 228000 }, { "26", 234000 }, { "27", 240000 }, { "28", 246000 }, { "29", 252000 }, { "30", 258000 }, { "31", 264000 }, { "32", 270000 }, { "33", 276000 }, { "34", 282000 }, { "35", 288000 }, { "36", 294000 }, { "37", 300000 }, { "38", 306000 }, { "39", 312000 }, { "40", 318000 }, { "41", 324000 }, { "42", 330000 }, { "43", 336000 }, { "44", 342000 }, { "45", 348000 }, { "46", 354000 }, { "47", 360000 }, { "48", 366000 }, { "49", 372000 }, { "50", 378000 }, { "51", 384000 }, { "52", 390000 }, { "53", 396000 }, { "54", 402000 }, { "55", 408000 }, { "56", 414000 }, { "57", 420000 }, { "58", 426000 }, { "59", 432000 }, { "60", 438000 }, { "61", 444000 }, { "62", 450000 }, { "63", 456000 }, { "64", 462000 }, { "65", 468000 }, { "66", 474000 }, { "67", 480000 }, { "68", 486000 }, { "69", 492000 }, { "70", 498000 }, { "71", 504000 }, { "72", 510000 }, { "73", 516000 }, { "74", 522000 }, { "75", 528000 }, { "76", 534000 }, { "77", 540000 }, { "78", 546000 }, { "79", 552000 }, { "80", 558000 }, { "81", 564000 }, { "82", 570000 }, { "83", 576000 }, { "84", 582000 }, { "85", 588000 }, { "86", 594000 }, { "87", 600000 }, { "88", 606000 }, { "89", 612000 }, { "90", 618000 }, { "91", 624000 }, { "92", 630000 }, { "93", 636000 }, { "94", 642000 }, { "95", 900000 }, { "96", 960000 }, { "97", 102000 }, { "98", 108000 }, { "99", 114000 }, { "100", 648000 }, { "101", 654000 }, { "102", 660000 }, { "103", 666000 }, { "104", 672000 }, { "105", 678000 }, { "106", 684000 }, { "107", 690000 }, { "108", 696000 }, { "109", 702000 }, { "110", 708000 }, { "111", 714000 }, { "112", 720000 }, { "113", 726000 }, { "114", 732000 }, { "115", 738000 }, { "116", 744000 }, { "117", 750000 }, { "118", 756000 }, { "119", 762000 }, { "120", 768000 }, { "121", 774000 }, { "122", 780000 }, { "123", 786000 }, { "124", 792000 }, { "125", 798000 }, { "T7", 7000 }, { "T8", 13000 }, { "T9", 19000 }, { "T10", 25000 }, { "T11", 31000 }, { "T12", 37000 }, { "T13", 43000 }, { "T14", 49000 }, }; /* --------------------------------------------------------------------- */ /* JP broadcast */ static struct CHANLIST ntsc_bcast_jp[] = { { "1", 91250 }, { "2", 97250 }, { "3", 103250 }, { "4", 171250 }, { "5", 177250 }, { "6", 183250 }, { "7", 189250 }, { "8", 193250 }, { "9", 199250 }, { "10", 205250 }, { "11", 211250 }, { "12", 217250 }, { "13", 471250 }, { "14", 477250 }, { "15", 483250 }, { "16", 489250 }, { "17", 495250 }, { "18", 501250 }, { "19", 507250 }, { "20", 513250 }, { "21", 519250 }, { "22", 525250 }, { "23", 531250 }, { "24", 537250 }, { "25", 543250 }, { "26", 549250 }, { "27", 555250 }, { "28", 561250 }, { "29", 567250 }, { "30", 573250 }, { "31", 579250 }, { "32", 585250 }, { "33", 591250 }, { "34", 597250 }, { "35", 603250 }, { "36", 609250 }, { "37", 615250 }, { "38", 621250 }, { "39", 627250 }, { "40", 633250 }, { "41", 639250 }, { "42", 645250 }, { "43", 651250 }, { "44", 657250 }, { "45", 663250 }, { "46", 669250 }, { "47", 675250 }, { "48", 681250 }, { "49", 687250 }, { "50", 693250 }, { "51", 699250 }, { "52", 705250 }, { "53", 711250 }, { "54", 717250 }, { "55", 723250 }, { "56", 729250 }, { "57", 735250 }, { "58", 741250 }, { "59", 747250 }, { "60", 753250 }, { "61", 759250 }, { "62", 765250 }, }; /* JP cable */ static struct CHANLIST ntsc_cable_jp[] = { { "13", 109250 }, { "14", 115250 }, { "15", 121250 }, { "16", 127250 }, { "17", 133250 }, { "18", 139250 }, { "19", 145250 }, { "20", 151250 }, { "21", 157250 }, { "22", 165250 }, { "23", 223250 }, { "24", 231250 }, { "25", 237250 }, { "26", 243250 }, { "27", 249250 }, { "28", 253250 }, { "29", 259250 }, { "30", 265250 }, { "31", 271250 }, { "32", 277250 }, { "33", 283250 }, { "34", 289250 }, { "35", 295250 }, { "36", 301250 }, { "37", 307250 }, { "38", 313250 }, { "39", 319250 }, { "40", 325250 }, { "41", 331250 }, { "42", 337250 }, { "43", 343250 }, { "44", 349250 }, { "45", 355250 }, { "46", 361250 }, { "47", 367250 }, { "48", 373250 }, { "49", 379250 }, { "50", 385250 }, { "51", 391250 }, { "52", 397250 }, { "53", 403250 }, { "54", 409250 }, { "55", 415250 }, { "56", 421250 }, { "57", 427250 }, { "58", 433250 }, { "59", 439250 }, { "60", 445250 }, { "61", 451250 }, { "62", 457250 }, { "63", 463250 }, }; /* --------------------------------------------------------------------- */ /* australia */ static struct CHANLIST pal_australia[] = { { "0", 46250 }, { "1", 57250 }, { "2", 64250 }, { "3", 86250 }, { "4", 95250 }, { "5", 102250 }, { "5A", 138250 }, { "6", 175250 }, { "7", 182250 }, { "8", 189250 }, { "9", 196250 }, { "10", 209250 }, { "11", 216250 }, { "28", 527250 }, { "29", 534250 }, { "30", 541250 }, { "31", 548250 }, { "32", 555250 }, { "33", 562250 }, { "34", 569250 }, { "35", 576250 }, { "36", 591250 }, { "39", 604250 }, { "40", 611250 }, { "41", 618250 }, { "42", 625250 }, { "43", 632250 }, { "44", 639250 }, { "45", 646250 }, { "46", 653250 }, { "47", 660250 }, { "48", 667250 }, { "49", 674250 }, { "50", 681250 }, { "51", 688250 }, { "52", 695250 }, { "53", 702250 }, { "54", 709250 }, { "55", 716250 }, { "56", 723250 }, { "57", 730250 }, { "58", 737250 }, { "59", 744250 }, { "60", 751250 }, { "61", 758250 }, { "62", 765250 }, { "63", 772250 }, { "64", 779250 }, { "65", 786250 }, { "66", 793250 }, { "67", 800250 }, { "68", 807250 }, { "69", 814250 }, }; /* --------------------------------------------------------------------- */ /* europe */ /* CCIR frequencies */ #define FREQ_CCIR_I_III \ { "E2", 48250 }, \ { "E3", 55250 }, \ { "E4", 62250 }, \ \ { "S01", 69250 }, \ { "S02", 76250 }, \ { "S03", 83250 }, \ \ { "E5", 175250 }, \ { "E6", 182250 }, \ { "E7", 189250 }, \ { "E8", 196250 }, \ { "E9", 203250 }, \ { "E10", 210250 }, \ { "E11", 217250 }, \ { "E12", 224250 } #define FREQ_CCIR_SL_SH \ { "SE1", 105250 }, \ { "SE2", 112250 }, \ { "SE3", 119250 }, \ { "SE4", 126250 }, \ { "SE5", 133250 }, \ { "SE6", 140250 }, \ { "SE7", 147250 }, \ { "SE8", 154250 }, \ { "SE9", 161250 }, \ { "SE10", 168250 }, \ \ { "SE11", 231250 }, \ { "SE12", 238250 }, \ { "SE13", 245250 }, \ { "SE14", 252250 }, \ { "SE15", 259250 }, \ { "SE16", 266250 }, \ { "SE17", 273250 }, \ { "SE18", 280250 }, \ { "SE19", 287250 }, \ { "SE20", 294250 } #define FREQ_CCIR_H \ { "S21", 303250 }, \ { "S22", 311250 }, \ { "S23", 319250 }, \ { "S24", 327250 }, \ { "S25", 335250 }, \ { "S26", 343250 }, \ { "S27", 351250 }, \ { "S28", 359250 }, \ { "S29", 367250 }, \ { "S30", 375250 }, \ { "S31", 383250 }, \ { "S32", 391250 }, \ { "S33", 399250 }, \ { "S34", 407250 }, \ { "S35", 415250 }, \ { "S36", 423250 }, \ { "S37", 431250 }, \ { "S38", 439250 }, \ { "S39", 447250 }, \ { "S40", 455250 }, \ { "S41", 463250 } /* OIRT frequencies */ #define FREQ_OIRT_I_III \ { "R1", 49750 }, \ { "R2", 59250 }, \ \ { "R3", 77250 }, \ { "R4", 85250 }, \ { "R5", 93250 }, \ \ { "R6", 175250 }, \ { "R7", 183250 }, \ { "R8", 191250 }, \ { "R9", 199250 }, \ { "R10", 207250 }, \ { "R11", 215250 }, \ { "R12", 223250 } #define FREQ_OIRT_SL_SH \ { "SR1", 111250 }, \ { "SR2", 119250 }, \ { "SR3", 127250 }, \ { "SR4", 135250 }, \ { "SR5", 143250 }, \ { "SR6", 151250 }, \ { "SR7", 159250 }, \ { "SR8", 167250 }, \ \ { "SR11", 231250 }, \ { "SR12", 239250 }, \ { "SR13", 247250 }, \ { "SR14", 255250 }, \ { "SR15", 263250 }, \ { "SR16", 271250 }, \ { "SR17", 279250 }, \ { "SR18", 287250 }, \ { "SR19", 295250 } #define FREQ_UHF \ { "21", 471250 }, \ { "22", 479250 }, \ { "23", 487250 }, \ { "24", 495250 }, \ { "25", 503250 }, \ { "26", 511250 }, \ { "27", 519250 }, \ { "28", 527250 }, \ { "29", 535250 }, \ { "30", 543250 }, \ { "31", 551250 }, \ { "32", 559250 }, \ { "33", 567250 }, \ { "34", 575250 }, \ { "35", 583250 }, \ { "36", 591250 }, \ { "37", 599250 }, \ { "38", 607250 }, \ { "39", 615250 }, \ { "40", 623250 }, \ { "41", 631250 }, \ { "42", 639250 }, \ { "43", 647250 }, \ { "44", 655250 }, \ { "45", 663250 }, \ { "46", 671250 }, \ { "47", 679250 }, \ { "48", 687250 }, \ { "49", 695250 }, \ { "50", 703250 }, \ { "51", 711250 }, \ { "52", 719250 }, \ { "53", 727250 }, \ { "54", 735250 }, \ { "55", 743250 }, \ { "56", 751250 }, \ { "57", 759250 }, \ { "58", 767250 }, \ { "59", 775250 }, \ { "60", 783250 }, \ { "61", 791250 }, \ { "62", 799250 }, \ { "63", 807250 }, \ { "64", 815250 }, \ { "65", 823250 }, \ { "66", 831250 }, \ { "67", 839250 }, \ { "68", 847250 }, \ { "69", 855250 } static struct CHANLIST europe_west[] = { FREQ_CCIR_I_III, FREQ_CCIR_SL_SH, FREQ_CCIR_H, FREQ_UHF }; static struct CHANLIST europe_east[] = { FREQ_OIRT_I_III, FREQ_OIRT_SL_SH, FREQ_CCIR_I_III, FREQ_CCIR_SL_SH, FREQ_CCIR_H, FREQ_UHF }; static struct CHANLIST pal_italy[] = { { "A", 53750 }, { "B", 62250 }, { "C", 82250 }, { "D", 175250 }, { "E", 183750 }, { "F", 192250 }, { "G", 201250 }, { "H", 210250 }, { "H1", 217250 }, { "H2", 224250 }, FREQ_UHF }; static struct CHANLIST pal_ireland[] = { { "0", 45750 }, { "1", 53750 }, { "2", 61750 }, { "3", 175250 }, { "4", 183250 }, { "5", 191250 }, { "6", 199250 }, { "7", 207250 }, { "8", 215250 }, FREQ_UHF, }; static struct CHANLIST secam_france[] = { { "K01", 47750 }, { "K02", 55750 }, { "K03", 60500 }, { "K04", 63750 }, { "K05", 176000 }, { "K06", 184000 }, { "K07", 192000 }, { "K08", 200000 }, { "K09", 208000 }, { "K10", 216000 }, { "KB", 116750 }, { "KC", 128750 }, { "KD", 140750 }, { "KE", 159750 }, { "KF", 164750 }, { "KG", 176750 }, { "KH", 188750 }, { "KI", 200750 }, { "KJ", 212750 }, { "KK", 224750 }, { "KL", 236750 }, { "KM", 248750 }, { "KN", 260750 }, { "KO", 272750 }, { "KP", 284750 }, { "KQ", 296750 }, { "H01", 303250 }, { "H02", 311250 }, { "H03", 319250 }, { "H04", 327250 }, { "H05", 335250 }, { "H06", 343250 }, { "H07", 351250 }, { "H08", 359250 }, { "H09", 367250 }, { "H10", 375250 }, { "H11", 383250 }, { "H12", 391250 }, { "H13", 399250 }, { "H14", 407250 }, { "H15", 415250 }, { "H16", 423250 }, { "H17", 431250 }, { "H18", 439250 }, { "H19", 447250 }, FREQ_UHF, }; /* --------------------------------------------------------------------- */ static struct CHANLIST pal_newzealand[] = { { "1", 45250 }, { "2", 55250 }, { "3", 62250 }, { "4", 175250 }, { "5", 182250 }, { "6", 189250 }, { "7", 196250 }, { "8", 203250 }, { "9", 210250 }, { "10", 217250 }, { "11", 224250 }, FREQ_UHF, }; /* --------------------------------------------------------------------- */ /* China broadcast */ static struct CHANLIST pal_bcast_cn[] = { { "1", 49750 }, { "2", 57750 }, { "3", 65750 }, { "4", 77250 }, { "5", 85250 }, { "6", 112250 }, { "7", 120250 }, { "8", 128250 }, { "9", 136250 }, { "10", 144250 }, { "11", 152250 }, { "12", 160250 }, { "13", 168250 }, { "14", 176250 }, { "15", 184250 }, { "16", 192250 }, { "17", 200250 }, { "18", 208250 }, { "19", 216250 }, { "20", 224250 }, { "21", 232250 }, { "22", 240250 }, { "23", 248250 }, { "24", 256250 }, { "25", 264250 }, { "26", 272250 }, { "27", 280250 }, { "28", 288250 }, { "29", 296250 }, { "30", 304250 }, { "31", 312250 }, { "32", 320250 }, { "33", 328250 }, { "34", 336250 }, { "35", 344250 }, { "36", 352250 }, { "37", 360250 }, { "38", 368250 }, { "39", 376250 }, { "40", 384250 }, { "41", 392250 }, { "42", 400250 }, { "43", 408250 }, { "44", 416250 }, { "45", 424250 }, { "46", 432250 }, { "47", 440250 }, { "48", 448250 }, { "49", 456250 }, { "50", 463250 }, { "51", 471250 }, { "52", 479250 }, { "53", 487250 }, { "54", 495250 }, { "55", 503250 }, { "56", 511250 }, { "57", 519250 }, { "58", 527250 }, { "59", 535250 }, { "60", 543250 }, { "61", 551250 }, { "62", 559250 }, { "63", 607250 }, { "64", 615250 }, { "65", 623250 }, { "66", 631250 }, { "67", 639250 }, { "68", 647250 }, { "69", 655250 }, { "70", 663250 }, { "71", 671250 }, { "72", 679250 }, { "73", 687250 }, { "74", 695250 }, { "75", 703250 }, { "76", 711250 }, { "77", 719250 }, { "78", 727250 }, { "79", 735250 }, { "80", 743250 }, { "81", 751250 }, { "82", 759250 }, { "83", 767250 }, { "84", 775250 }, { "85", 783250 }, { "86", 791250 }, { "87", 799250 }, { "88", 807250 }, { "89", 815250 }, { "90", 823250 }, { "91", 831250 }, { "92", 839250 }, { "93", 847250 }, { "94", 855250 }, }; /* --------------------------------------------------------------------- */ /* South Africa Broadcast */ static struct CHANLIST pal_bcast_za[] ={ { "1", 175250 }, { "2", 183250 }, { "3", 191250 }, { "4", 199250 }, { "5", 207250 }, { "6", 215250 }, { "7", 223250 }, { "8", 231250 }, FREQ_UHF }; /* --------------------------------------------------------------------- */ static struct CHANLIST argentina[] = { { "001", 56250 }, { "002", 62250 }, { "003", 68250 }, { "004", 78250 }, { "005", 84250 }, { "006", 176250 }, { "007", 182250 }, { "008", 188250 }, { "009", 194250 }, { "010", 200250 }, { "011", 206250 }, { "012", 212250 }, { "013", 122250 }, { "014", 128250 }, { "015", 134250 }, { "016", 140250 }, { "017", 146250 }, { "018", 152250 }, { "019", 158250 }, { "020", 164250 }, { "021", 170250 }, { "022", 218250 }, { "023", 224250 }, { "024", 230250 }, { "025", 236250 }, { "026", 242250 }, { "027", 248250 }, { "028", 254250 }, { "029", 260250 }, { "030", 266250 }, { "031", 272250 }, { "032", 278250 }, { "033", 284250 }, { "034", 290250 }, { "035", 296250 }, { "036", 302250 }, { "037", 308250 }, { "038", 314250 }, { "039", 320250 }, { "040", 326250 }, { "041", 332250 }, { "042", 338250 }, { "043", 344250 }, { "044", 350250 }, { "045", 356250 }, { "046", 362250 }, { "047", 368250 }, { "048", 374250 }, { "049", 380250 }, { "050", 386250 }, { "051", 392250 }, { "052", 398250 }, { "053", 404250 }, { "054", 410250 }, { "055", 416250 }, { "056", 422250 }, { "057", 428250 }, { "058", 434250 }, { "059", 440250 }, { "060", 446250 }, { "061", 452250 }, { "062", 458250 }, { "063", 464250 }, { "064", 470250 }, { "065", 476250 }, { "066", 482250 }, { "067", 488250 }, { "068", 494250 }, { "069", 500250 }, { "070", 506250 }, { "071", 512250 }, { "072", 518250 }, { "073", 524250 }, { "074", 530250 }, { "075", 536250 }, { "076", 542250 }, { "077", 548250 }, { "078", 554250 }, { "079", 560250 }, { "080", 566250 }, { "081", 572250 }, { "082", 578250 }, { "083", 584250 }, { "084", 590250 }, { "085", 596250 }, { "086", 602250 }, { "087", 608250 }, { "088", 614250 }, { "089", 620250 }, { "090", 626250 }, { "091", 632250 }, { "092", 638250 }, { "093", 644250 }, }; /* --------------------------------------------------------------------- */ static struct CHANLIST russia[] = { {"1", 49750 }, {"2", 59250 }, {"3", 77250 }, {"4", 85250 }, {"5", 93250 }, {"SK1", 111250 }, {"SK2", 119250 }, {"SK3", 127250 }, {"SK4", 135250 }, {"SK5", 143250 }, {"SK6", 151250 }, {"SK7", 159250 }, {"SK8", 167250 }, {"6", 175250 }, {"7", 183250 }, {"8", 191250 }, {"9", 199250 }, {"10", 207250 }, {"11", 215250 }, {"12", 223250 }, {"SK11", 231250 }, {"SK12", 239250 }, {"SK13", 247250 }, {"SK14", 255250 }, {"SK15", 263250 }, {"SK16", 271250 }, {"SK17", 279250 }, {"SK18", 287250 }, {"S19", 295250 }, {"S20", 303250 }, {"S21", 311250 }, {"S22", 319250 }, {"S23", 327250 }, {"S24", 335250 }, {"S25", 343250 }, {"S26", 351250 }, {"S27", 359250 }, {"S28", 367250 }, {"S29", 375250 }, {"S30", 383250 }, {"S31", 391250 }, {"S32", 399250 }, {"S33", 407250 }, {"S34", 415250 }, {"S35", 423250 }, {"S36", 431250 }, {"S37", 439250 }, {"S38", 447250 }, {"S39", 455250 }, {"S40", 463250 }, {"21", 471250 }, {"22", 479250 }, {"23", 487250 }, {"24", 495250 }, {"25", 503250 }, {"26", 511250 }, {"27", 519250 }, {"28", 527250 }, {"29", 535250 }, {"30", 543250 }, {"31", 551250 }, {"32", 559250 }, {"33", 567250 }, {"34", 575250 }, {"35", 583250 }, {"36", 591250 }, {"37", 599250 }, {"38", 607250 }, {"39", 615250 }, {"40", 623250 }, {"41", 631250 }, {"42", 639250 }, {"43", 647250 }, {"44", 655250 }, {"45", 663250 }, {"46", 671250 }, {"47", 679250 }, {"48", 687250 }, {"49", 695250 }, {"50", 703250 }, {"51", 711250 }, {"52", 719250 }, {"53", 727250 }, {"54", 735250 }, {"55", 743250 }, {"56", 751250 }, {"57", 759250 }, {"58", 767250 }, {"59", 775250 }, {"60", 783250 }, {"61", 791250 }, {"62", 799250 }, {"63", 807250 }, {"64", 815250 }, {"65", 523250 }, {"66", 831250 }, {"67", 839250 }, {"68", 847250 }, {"69", 855250 }, }; /* --------------------------------------------------------------------- */ struct CHANLISTS chanlists[] = { { "us-bcast", ntsc_bcast, CHAN_COUNT(ntsc_bcast) }, { "us-cable", ntsc_cable, CHAN_COUNT(ntsc_cable) }, { "us-cable-hrc", ntsc_hrc, CHAN_COUNT(ntsc_hrc) }, { "japan-bcast", ntsc_bcast_jp, CHAN_COUNT(ntsc_bcast_jp) }, { "japan-cable", ntsc_cable_jp, CHAN_COUNT(ntsc_cable_jp) }, { "europe-west", europe_west, CHAN_COUNT(europe_west) }, { "europe-east", europe_east, CHAN_COUNT(europe_east) }, { "italy", pal_italy, CHAN_COUNT(pal_italy) }, { "newzealand", pal_newzealand, CHAN_COUNT(pal_newzealand) }, { "australia", pal_australia, CHAN_COUNT(pal_australia) }, { "ireland", pal_ireland, CHAN_COUNT(pal_ireland) }, { "france", secam_france, CHAN_COUNT(secam_france) }, { "china-bcast", pal_bcast_cn, CHAN_COUNT(pal_bcast_cn) }, { "southafrica", pal_bcast_za, CHAN_COUNT(pal_bcast_za) }, { "argentina", argentina, CHAN_COUNT(argentina) }, { "russia", russia, CHAN_COUNT(russia) }, { NULL, NULL, 0 } /* EOF */ }; int chantab = 5; struct CHANLIST *chanlist = europe_west; int chancount = CHAN_COUNT(europe_west); geexbox-0.98.7/packages/mptvscan/sources/frequencies.h0000644000175000017500000000101510335100773022034 0ustar aurelaurel#ifndef _FREQUENCIES_H_ #define _FREQUENCIES_H_ struct CHANLIST { char *name; int freq; }; struct CHANLISTS { char *name; struct CHANLIST *list; int count; }; #define CHAN_COUNT(x) (sizeof(x)/sizeof(struct CHANLIST)) /* --------------------------------------------------------------------- */ extern struct CHANLISTS chanlists[]; extern int chantab; extern struct CHANLIST *chanlist; extern int chancount; #endif /* _FREQUENCIES_H_ */ geexbox-0.98.7/packages/mptvscan/sources/mptvscan.c0000644000175000017500000003111110335100773021351 0ustar aurelaurel/* Embedded v4l2 Analog TV Channels Scanner for MPlayer * Originally developped for the GeeXboX project. * Benjamin Zores (C) 2005 - * License : GPL */ #define _GNU_SOURCE #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "frequencies.h" #define MPTVSCAN_ACTION_SCAN 0 #define MPTVSCAN_ACTION_INPUTS 1 #define MPTVSCAN_ACTION_STANDARDS 2 #define MPTVSCAN_DFLT_DEVICE "/dev/video0" #define MPTVSCAN_DFLT_CHANLIST "all" #define MPTVSCAN_DEBUG_INPUT "for debug only" #define BUFSIZE 256 struct channel_t { char *chan; char *name; }; struct channels_t { int nr_channels; struct channel_t **chans; }; static struct channel_t * chan_new (char *chan, char *name) { struct channel_t *c; c = (struct channel_t *) malloc (sizeof (struct channel_t)); c->chan = strdup (chan); c->name = strdup (name); return c; } static void chan_free (struct channel_t *chan) { if (chan->chan) free (chan->chan); if (chan->name) free (chan->name); free (chan); } static struct channels_t * channels_table_new (void) { struct channels_t *channels; channels = (struct channels_t *) malloc (sizeof (struct channels_t)); channels->chans = (struct channel_t **) malloc (sizeof (struct channel_t *)); channels->nr_channels = 0; return channels; } static void channels_table_free (struct channels_t *channels) { int i; for (i = 0; i < channels->nr_channels; i++) chan_free (channels->chans[i]); free (channels); } static void channels_table_add_new (struct channels_t *channels, struct channel_t *chan) { channels->chans = realloc (channels->chans, (channels->nr_channels + 1) * sizeof (struct channel_t *)); channels->chans[channels->nr_channels] = chan; channels->nr_channels++; } static char * channels_table_list (struct channels_t *channels) { char *buffer = NULL, c[BUFSIZE]; size_t buffer_len = 0; int i; for (i = 0; i < channels->nr_channels; i++) { sprintf (c, "%s-%s,", channels->chans[i]->chan, channels->chans[i]->name); buffer = realloc (buffer, buffer_len + strlen(c) + 1); strcpy (&buffer[buffer_len], c); buffer_len += strlen(c); } if (channels->nr_channels) buffer[buffer_len - 1] = '\0'; /* erase trailing ',' char */ return buffer; } static int xioctl (int fd, int request, void *arg) { int r; do { r = ioctl (fd, request, arg); } while (r == -1 && errno == EINTR); return r; } static int v4l2_open_device (char *dev) { struct stat st; int fd; if (stat (dev, &st) == -1) { fprintf (stderr, "Cannot identify '%s': %d, %s\n", dev, errno, strerror (errno)); exit (EXIT_FAILURE); } if (!S_ISCHR (st.st_mode)) { fprintf (stderr, "%s is no device\n", dev); exit (EXIT_FAILURE); } fd = open (dev, O_RDWR | O_NONBLOCK, 0); if (fd == -1) { fprintf (stderr, "Cannot open '%s': %d, %s\n", dev, errno, strerror (errno)); exit (EXIT_FAILURE); } return fd; } static void v4l2_close_device (int fd) { if (close (fd) == -1) exit (EXIT_FAILURE); fd = -1; } static void v4l2_init_device (int fd, char *dev) { struct v4l2_capability cap; if (xioctl (fd, VIDIOC_QUERYCAP, &cap) == -1) { if (errno == EINVAL) { fprintf (stderr, "%s is no V4L2 device\n", dev); exit (EXIT_FAILURE); } else { perror ("VIDIOC_QUERYCAP"); exit (EXIT_FAILURE); } } if (!(cap.capabilities & V4L2_CAP_TUNER)) { fprintf (stderr, "%s is no video tuner device\n", dev); exit (EXIT_FAILURE); } } static void v4l2_get_input_list (int fd) { struct v4l2_input input; memset (&input, 0, sizeof (input)); input.index = 0; while (xioctl (fd, VIDIOC_ENUMINPUT, &input) == 0) { if (strcmp ((char *) input.name, MPTVSCAN_DEBUG_INPUT)) printf ("%s\n", input.name); input.index++; } if (errno != EINVAL || input.index == 0) { perror ("VIDIOC_ENUMSTD"); exit (EXIT_FAILURE); } } static void v4l2_set_input (int fd, char *input_id) { struct v4l2_input input; memset (&input, 0, sizeof (input)); input.index = 0; if (!input_id) { if (xioctl (fd, VIDIOC_S_INPUT, &input) == -1) { perror ("VIDIOC_S_INPUT"); exit (EXIT_FAILURE); } } else while (xioctl (fd, VIDIOC_ENUMINPUT, &input) == 0) { if (!strcmp ((char *) input.name, input_id)) { if (xioctl (fd, VIDIOC_S_INPUT, &input) == -1) { perror ("VIDIOC_S_INPUT"); exit (EXIT_FAILURE); } break; } input.index++; } } static void v4l2_set_standard (int fd, char *standard_id) { struct v4l2_standard standard; memset (&standard, 0, sizeof (standard)); standard.index = 0; standard.id = V4L2_STD_PAL; if (!standard_id) { if (xioctl (fd, VIDIOC_S_STD, &standard.id) == -1) { perror ("VIDIOC_S_STD"); exit (EXIT_FAILURE); } } else while (xioctl (fd, VIDIOC_ENUMSTD, &standard) == 0) { if (!strcmp ((char *) standard.name, standard_id)) { if (xioctl (fd, VIDIOC_S_STD, &standard.id) == -1) { perror ("VIDIOC_S_STD"); exit (EXIT_FAILURE); } break; } standard.index++; } } static void v4l2_get_standard_list (int fd, char *in) { struct v4l2_input input; struct v4l2_standard standard; memset (&input, 0, sizeof (input)); input.index = 0; if (!in) { if (xioctl (fd, VIDIOC_ENUMINPUT, &input) == -1) { perror ("VIDIOC_ENUM_INPUT"); exit (EXIT_FAILURE); } } else while (xioctl (fd, VIDIOC_ENUMINPUT, &input) == 0) { if (!strcmp ((char *) input.name, in)) break; input.index++; } memset (&standard, 0, sizeof (standard)); standard.index = 0; while (xioctl (fd, VIDIOC_ENUMSTD, &standard) == 0) { if (standard.id & input.std) printf ("%s\n", standard.name); standard.index++; } if (errno != EINVAL || standard.index == 0) { perror ("VIDIOC_ENUMSTD"); exit (EXIT_FAILURE); } } static void v4l2_set_tuner_frequence (int fd, unsigned long freq) { struct v4l2_frequency f; memset (&f, 0, sizeof (f)); f.type = V4L2_TUNER_ANALOG_TV; f.frequency = freq; if (xioctl (fd, VIDIOC_S_FREQUENCY, &f) == -1) { perror ("VIDIOC_S_FREQUENCY"); exit (EXIT_FAILURE); } } static int v4l2_is_tuned (int fd) { struct v4l2_tuner tuner; usleep (10000); memset (&tuner, 0, sizeof (tuner)); if (xioctl (fd, VIDIOC_G_TUNER, &tuner) == -1) return 0; return tuner.signal ? 1 : 0; } static int v4l2_get_all_channels_list (struct CHANLIST **list) { int i, j, k, len, need_add; len = 0; for (i = 0; chanlists[i].name; i++) { for (j = 0; j < chanlists[i].count; j++) { need_add = 1; for (k = 0; k < len; k++) { if (!strcmp (chanlists[i].list[j].name, list[k]->name)) { need_add = 0; break; /* channel already present in list */ } } if (need_add) { list[len] = &chanlists[i].list[j]; len++; list = realloc (list, (len + 1) * sizeof (struct CHANLIST *)); } } } return len; } static void v4l2_scan_channels (int fd, char *list, struct channels_t *channels, int progress) { int tuned, i, j; float f; if (!list) return; if (!strcmp (list, MPTVSCAN_DFLT_CHANLIST)) { struct CHANLIST **clist = NULL; int len; clist = (struct CHANLIST **) malloc (sizeof (struct CHANLIST *)); len = v4l2_get_all_channels_list (clist); if (!clist) return; for (j = 0; j < len; j++) { f = clist[j]->freq / 62.5; v4l2_set_tuner_frequence (fd, f); usleep (200000); tuned = v4l2_is_tuned (fd); if (progress) { printf ("%d\n", (int) (100 * j / len)); fflush (stdout); } if (tuned) /* Detected a valid TV channel */ { struct channel_t *chan; char chan_name[128]; sprintf (chan_name, "Channel_%s", clist[j]->name); chan = chan_new (clist[j]->name, chan_name); channels_table_add_new (channels, chan); } } } else { for (i = 0; chanlists[i].name; i++) if (!strcmp (list, chanlists[i].name)) for (j = 0; j < chanlists[i].count; j++) { f = chanlists[i].list[j].freq / 62.5; v4l2_set_tuner_frequence (fd, f); usleep (200000); tuned = v4l2_is_tuned (fd); if (progress) { printf ("%d\n", (int) (100 * (j + 1) / chanlists[i].count)); fflush (stdout); } if (tuned) /* Detected a valid TV channel */ { struct channel_t *chan; char chan_name[128]; sprintf (chan_name, "Channel_%s", chanlists[i].list[j].name); chan = chan_new (chanlists[i].list[j].name, chan_name); channels_table_add_new (channels, chan); } } } } static char * set_chanlist (char *chanlist_id) { int i; if (chanlist_id) for (i=0; chanlists[i].name; i++) if (!strcmp (chanlists[i].name, chanlist_id)) return chanlists[i].name; return MPTVSCAN_DFLT_CHANLIST; } static void display_chanlist (void) { int i; for (i=0; chanlists[i].name; i++) printf ("%s\n", chanlists[i].name); } static void print_usage (void) { printf ("MPlayer Analog TV Channels scanner\n"); printf ("-h : Display this help message\n"); printf ("-p : Display scan progression (interface with dialog)\n"); printf ("-d device : Video device to use\n"); printf ("-i[input] : Use specified input X (default is 0)\n"); printf ("-s[standard] : Set to specified standard X\n"); printf ("-c[chanlist] : Use specified chanlist X (default is all)\n"); } int main (int argc, char **argv) { int fd, c, action = MPTVSCAN_ACTION_SCAN; char *dev = MPTVSCAN_DFLT_DEVICE; char *list; char *std = NULL, *input = NULL, *list_id = NULL; struct channels_t *channels = NULL; char *channels_list = NULL; int done = 0, progress = 0; while (1) { c = getopt (argc, argv, "hd:i::s::c::p"); if (c == -1) break; switch (c) { case 'h': print_usage (); return 0; case 'd': dev = optarg; break; case 'i': if (!optarg) action = MPTVSCAN_ACTION_INPUTS; else input = optarg; break; case 's': if (!optarg) action = MPTVSCAN_ACTION_STANDARDS; else std = optarg; break; case 'c': if (!optarg) { display_chanlist (); done = 1; } else list_id = optarg; break; case 'p': progress = 1; case '?': break; default: break; } } if (done) return 0; fd = v4l2_open_device (dev); v4l2_init_device (fd, dev); switch (action) { case MPTVSCAN_ACTION_SCAN: v4l2_set_input (fd, input); v4l2_set_standard (fd, std); channels = channels_table_new (); list = set_chanlist (list_id); v4l2_scan_channels (fd, list, channels, progress); channels_list = channels_table_list (channels); if (channels_list && *channels_list) fprintf (progress ? stderr : stdout, "channels=%s\n", channels_list); break; case MPTVSCAN_ACTION_INPUTS: v4l2_get_input_list (fd); break; case MPTVSCAN_ACTION_STANDARDS: v4l2_get_standard_list (fd, input); break; default: break; } if (channels_list) free (channels_list); if (channels) channels_table_free (channels); v4l2_close_device (fd); return 0; } geexbox-0.98.7/packages/ncurses/0000755000175000017500000000000010335100773015521 5ustar aurelaurelgeexbox-0.98.7/packages/ncurses/build0000755000175000017500000000352210335100773016550 0ustar aurelaurel#!/bin/sh . config/options setup_toolchain host CWD=`pwd` cd $BUILD/$1*/ncurses-host ./configure make -C include make -C progs tic cd "$CWD" setup_toolchain target $SCRIPTS/build toolchain cd $BUILD/$1* ./configure --host=$TARGET_NAME \ --build=$HOST_NAME \ --prefix=$LIB_PREFIX \ --datadir=/usr/share \ --with-build-cc=$HOST_CC \ --with-build-cppflags="$HOST_CPPFLAGS -I../include" \ --with-build-cflags="$HOST_CFLAGS" \ --with-build-ldflags="$HOST_LDFLAGS" \ --without-cxx \ --without-cxx-binding \ --without-ada \ --without-progs \ --with-shared \ --without-normal \ --without-debug \ --without-profile \ --without-termlib \ --without-dbmalloc \ --without-dmalloc \ --without-gpm \ --disable-rpath \ --disable-overwrite \ --enable-database \ --disable-big-core \ --enable-termcap \ --enable-getcap \ --disable-getcap-cache \ --disable-bsdpad \ --without-rcs-ids \ --enable-ext-funcs \ --disable-const \ --enable-no-padding \ --disable-sigwinch \ --disable-tcap-names \ --without-develop \ --disable-hard-tabs \ --disable-xmc-glitch \ --disable-hashmap \ --enable-safe-sprintf \ --disable-scroll-hints \ --disable-widec \ --disable-echo \ --disable-warnings \ --disable-assertions make -C include make -C ncurses $AR cru lib/libncurses.a obj_s/*.o make -C include install make -C ncurses install cd $LIB_PREFIX/include/ncurses cp curses.h term.h ../ geexbox-0.98.7/packages/ncurses/install0000755000175000017500000000106010335100773017112 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build dialog $SCRIPTS/build util-linux [ "$DEBUG" = yes ] && $SCRIPTS/build gdb SO=`ls -d $BUILD/$1*`/libncurses.so.5 libstrip $SO $BUILD/$1*/lib/libncurses.a "$BUILD/dialog*/dialog $BUILD/util-linux*/fdisk/cfdisk $BUILD/gdb*/gdb/gdb" mkdir -p $INSTALL/usr/lib cp $SO $INSTALL/usr/lib/libncurses.so.5 mkdir -p $INSTALL/usr/share/terminfo/l TERMINFO=$INSTALL/usr/share/terminfo LD_LIBRARY_PATH=`ls -d $BUILD/$1*/ncurses-host/lib`:$LD_LIBRARY_PATH $BUILD/$1*/ncurses-host/progs/tic -xe linux $BUILD/$1*/misc/terminfo.src geexbox-0.98.7/packages/ncurses/unpack0000755000175000017500000000031210335100773016724 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain NCURSES_DIR=`ls -d $BUILD/$1*` cp -r "$NCURSES_DIR" "$BUILD/ncurses-host" || rm -rf "$BUILD/ncurses-host" mv "$BUILD/ncurses-host" "$NCURSES_DIR" geexbox-0.98.7/packages/ncurses/url0000644000175000017500000000006610335100773016250 0ustar aurelaurelhttp://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.5.tar.gz geexbox-0.98.7/packages/network/0000755000175000017500000000000010335100773015530 5ustar aurelaurelgeexbox-0.98.7/packages/network/build0000755000175000017500000000026610335100773016561 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build bftpd $SCRIPTS/build samba if [ "$WIFI" = yes ]; then $SCRIPTS/build wireless_tools $SCRIPTS/build rt2400 $SCRIPTS/build rt2500 fi geexbox-0.98.7/packages/network/config/0000755000175000017500000000000010335100773016775 5ustar aurelaurelgeexbox-0.98.7/packages/network/config/network0000644000175000017500000000140710335100773020413 0ustar aurelaurel# System's Network Configuration PHY_TYPE="auto" # Network physical type (auto|ethernet|wifi) WIFI_MODE="managed" # Wifi working mode (managed|ad-hoc) WIFI_WEP="" # Wifi WEP key WIFI_ESSID="any" # Wifi SSID HOST="" # GeeXboX IP ("" for DHCP) SUBNET="" # GeeXboX Subnet mask ("" for DHCP) GATEWAY="" # Gateway IP ("" for DHCP or no internet connection) DNS_SERVER="" # DNS Server IP ("" for DHCP or none) SMB_USER="SHARE" # User Login ("" for none) SMB_PWD="" # User Password ("" for none) # Services to be started at boot time TELNET_SERVER="no" FTP_SERVER="no" HTTP_SERVER="no" # Use UPnP MediaServer devices auto-discovery UPNP="yes" geexbox-0.98.7/packages/network/config/nfs0000644000175000017500000000025310335100773017506 0ustar aurelaurel# # Here you can add some NFS mountpoints which will be automatically # mounted at boot time. # # example : # SERVER:DIR MOUNTPOINT_NAME # 192.168.0.1:/home home geexbox-0.98.7/packages/network/init.d/0000755000175000017500000000000010335100773016715 5ustar aurelaurelgeexbox-0.98.7/packages/network/init.d/50_networking0000755000175000017500000000331710335100773021342 0ustar aurelaurel#!/bin/sh # # setup the network # # runlevels: geexbox, debug echo "### Setting up network ###" # get options test -f /etc/network || exit 1 . /etc/network test -z "$HOST" && HOST=0.0.0.0 if [ -x /usr/bin/iwconfig ]; then for i in `iwconfig 2>&1 | grep '^[^\ ]' | grep -v '^lo' | cut -f1 -d' '`; do ifconfig $i up >/dev/null 2>&1 done WIFI=`iwconfig 2>&1 | grep '^[^\ ]' | grep -v "no wireless extensions" | cut -f1 -d' ' | head -n 1` ETH=`iwconfig 2>&1 | grep '^[^\ ]' | grep -v '^lo' | grep "no wireless extensions" | cut -f1 -d' ' | head -n 1` else ETH=eth0 fi # select device if test $PHY_TYPE = wifi -o $PHY_TYPE = auto; then DEV=$WIFI if test -n "$DEV"; then test -n "$WIFI_MODE" && iwconfig "$DEV" mode "$WIFI_MODE" test -n "$WIFI_ESSID" && iwconfig "$DEV" essid "$WIFI_ESSID" test -n "$WIFI_WEP" && iwconfig "$DEV" key "$WIFI_WEP" fi fi if test $PHY_TYPE = ethernet -o $PHY_TYPE = auto -a -z "$DEV"; then DEV=$ETH fi test -n "$DEV" || exit 1 [ -n "$SUBNET" ] && NETMASK="netmask $SUBNET" # bring interface up if ifconfig $DEV $HOST $NETMASK >/dev/null 2>&1; then if test $HOST = 0.0.0.0; then udhcpc -H geexbox -n -i $DEV >/dev/null 2>&1 && NET=yes test "$NET" != yes && ifconfig $DEV 192.168.0.54 netmask 255.255.255.0 && NET=yes else metric=0 for i in $GATEWAY; do route add default gw $i dev $DEV metric $((metric++)) done NET=yes fi fi if test "$UPNP" = "yes"; then # bring lo up and add UPnP multicast route ifconfig lo 127.0.0.1 route add -net 239.0.0.0 netmask 255.0.0.0 $DEV fi # adding DNS server if [ "$NET" = yes ]; then for i in $DNS_SERVER; do echo "nameserver $i" >> /etc/resolv.conf done fi test "$NET" = yes || exit 1 exit 0 geexbox-0.98.7/packages/network/init.d/56_nfs0000755000175000017500000000066710335100773017754 0ustar aurelaurel#!/bin/sh # # mount nfs shares # # runlevels: geexbox, debug IFS=' ' if test -f /etc/nfs; then echo "### Mounting NFS shares ###" ( for MOUNTS in `grep -v "^#" /etc/nfs | grep -v "^$"`; do SRV=`echo $MOUNTS | sed 's/[ ]*\([^ ]*\)[ ]*.*/\1/'` DIR=`echo $MOUNTS | sed 's/[ ]*[^ ]*[ ]*\([^ ]*\)/\1/'` mkdir -p /mnt/nfs/$DIR mount -t nfs -o ro,nolock,nfsvers=2 $SRV /mnt/nfs/$DIR >/dev/null 2>&1 done )& fi exit 0 geexbox-0.98.7/packages/network/install0000755000175000017500000000110410335100773017120 0ustar aurelaurel#!/bin/sh . config/options mkdir -p $INSTALL/etc cp $PACKAGES/$1/config/network $INSTALL/etc cp $PACKAGES/$1/config/nfs $INSTALL/etc cp $CONFIG/issue $INSTALL/etc $SCRIPTS/install bftpd $SCRIPTS/install samba [ "$UPNP" = yes ] && $SCRIPTS/install djmount if [ "$WIFI" = yes ]; then $SCRIPTS/install wireless_tools $SCRIPTS/install rt2400 $SCRIPTS/install rt2500 fi NET=$INSTALL/etc/network sed -i "s/^TELNET_SERVER=.*/TELNET_SERVER=\"$SERVICES\"/" $NET sed -i "s/^FTP_SERVER=.*/FTP_SERVER=\"$SERVICES\"/" $NET sed -i "s/^HTTP_SERVER=.*/HTTP_SERVER=\"$SERVICES\"/" $NET geexbox-0.98.7/packages/nvtv/0000755000175000017500000000000010335100773015034 5ustar aurelaurelgeexbox-0.98.7/packages/nvtv/build0000755000175000017500000000050110335100773016055 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain $SCRIPTS/build pciutils cd $BUILD/$1* ./configure --host=$TARGET_NAME \ --build=$HOST_NAME \ --without-x \ --without-gtk \ --with-wx-config=nowx \ --without-xbox \ --without-client-backend make geexbox-0.98.7/packages/nvtv/install0000755000175000017500000000010310335100773016422 0ustar aurelaurel#!/bin/sh . config/options cp $BUILD/$1*/src/$1 $INSTALL/usr/bin geexbox-0.98.7/packages/nvtv/patches/0000755000175000017500000000000010335100773016463 5ustar aurelaurelgeexbox-0.98.7/packages/nvtv/patches/10_cflags.diff0000644000175000017500000000160510335100773021056 0ustar aurelaurel--- nvtv-0.4.7.orig/configure Mon Dec 6 10:41:43 2004 +++ nvtv-0.4.7/configure Mon Dec 6 10:42:00 2004 @@ -2778,28 +2778,6 @@ -CFLAGS="" - -echo "$as_me:$LINENO: checking for debugging info" >&5 -echo $ECHO_N "checking for debugging info... $ECHO_C" >&6 - -# Check whether --enable-debug or --disable-debug was given. -if test "${enable_debug+set}" = set; then - enableval="$enable_debug" - -else - enable_debug=yes -fi; - -if test "$enable_debug" = yes; then - CFLAGS="$CFLAGS -g" - echo "$as_me:$LINENO: result: enabled" >&5 -echo "${ECHO_T}enabled" >&6 -else - CFLAGS="$CFLAGS -O2" - echo "$as_me:$LINENO: result: disabled (optimizing on)" >&5 -echo "${ECHO_T}disabled (optimizing on)" >&6 -fi ac_ext=c @@ -4235,7 +4213,7 @@ -CPPFLAGS="$CPPFLAGS $X_CFLAGS -I/usr/local/include" +CPPFLAGS="$CPPFLAGS $X_CFLAGS" if test "${with_x+set}" != set; then with_x="$withdef_x" geexbox-0.98.7/packages/nvtv/patches/20_options.diff0000644000175000017500000000130210335100773021305 0ustar aurelaureldiff -Naur nvtv-0.4.7.orig/src/nvtv.c nvtv-0.4.7/src/nvtv.c --- nvtv-0.4.7.orig/src/nvtv.c 2004-12-30 01:48:25.507461376 +0100 +++ nvtv-0.4.7/src/nvtv.c 2004-12-30 01:48:37.258674920 +0100 @@ -172,6 +172,10 @@ {"ChromaBandwidth", min: 0, max:100, SET_FIELD(chroma_bandwidth)}, {"Sharpness", min: 0, max:100, SET_FIELD(sharpness)}, {"CrossColor", min: 0, max:100, SET_FIELD(cross_color)}, + {"TVPositionX", min:-100, max:100, SET_FIELD(tv_hoffset)}, + {"TVPositionY", min:-100, max:100, SET_FIELD(tv_voffset)}, + {"MonitorPositionX", min:-100, max:100, SET_FIELD(mon_hoffset)}, + {"MonitorPositionY", min:-100, max:100, SET_FIELD(mon_voffset)}, {NULL} }; geexbox-0.98.7/packages/nvtv/patches/30_powerpc.diff0000644000175000017500000000063010335100773021275 0ustar aurelaurel* fix compilation on non-x86 arch diff -Naur nvtv-0.4.7.orig/src/mmio.h nvtv-0.4.7/src/mmio.h --- nvtv-0.4.7.orig/src/mmio.h 2005-03-23 01:19:42.000000000 +0100 +++ nvtv-0.4.7/src/mmio.h 2005-03-23 01:20:04.000000000 +0100 @@ -51,7 +51,7 @@ /* from xfree common/compiler.h */ #ifndef __NetBSD__ -#ifdef linux +#if defined(linux) && defined(__i386__) #include #define OUTB(p,v) outb(v,p) geexbox-0.98.7/packages/nvtv/url0000644000175000017500000000011110335100773015552 0ustar aurelaurelhttp://switch.dl.sourceforge.net/sourceforge/nv-tv-out/nvtv-0.4.7.tar.gz geexbox-0.98.7/packages/pciutils/0000755000175000017500000000000010335100774015674 5ustar aurelaurelgeexbox-0.98.7/packages/pciutils/build0000755000175000017500000000057310335100774016726 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain cd $BUILD/$1*/lib ./configure make libpci.a $CC $LDFLAGS -shared -Wl,-soname,libpci.so.0 *.o -o libpci.so.0 mkdir -p $LIB_PREFIX/lib $LIB_PREFIX/include/pci cp config.h header.h pci.h types.h $LIB_PREFIX/include/pci cp libpci.so.0 $LIB_PREFIX/lib rm -f $LIB_PREFIX/lib/libpci.so ln -s libpci.so.0 $LIB_PREFIX/lib/libpci.so geexbox-0.98.7/packages/pciutils/install0000755000175000017500000000037110335100774017271 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build i810tvout $SCRIPTS/build nvtv SO=`ls -d $BUILD/$1*`/libpci.so.0 libstrip $SO $BUILD/$1*/lib/libpci.a "$BUILD/i810tvout*/i810tvout $BUILD/nvtv*/src/nvtv" mkdir -p $INSTALL/usr/lib cp $SO $INSTALL/usr/lib geexbox-0.98.7/packages/pciutils/patches/0000755000175000017500000000000010335100774017323 5ustar aurelaurelgeexbox-0.98.7/packages/pciutils/patches/10_crosscompile.diff0000644000175000017500000000100710335100774023155 0ustar aurelaureldiff -Nur pciutils-2.1.11.orig/lib/Makefile pciutils-2.1.11/lib/Makefile --- pciutils-2.1.11.orig/lib/Makefile Tue Apr 12 11:20:36 2005 +++ pciutils-2.1.11/lib/Makefile Tue Apr 12 11:22:21 2005 @@ -4,6 +4,9 @@ include config.mk +AR?=ar +RANLIB?=ranlib + OBJS=access.o generic.o dump.o names.o filter.o INCL=internal.h pci.h config.h @@ -47,8 +50,8 @@ $(PCILIB): $(OBJS) rm -f $@ - ar rcs $@ $^ - ranlib $@ + $(AR) rcs $@ $^ + $(RANLIB) $@ access.o: access.c $(INCL) i386-ports.o: i386-ports.c $(INCL) geexbox-0.98.7/packages/pciutils/patches/20_reduce-sysfs-only.diff0000644000175000017500000000261610335100774024056 0ustar aurelaureldiff -Nur pciutils-2.2.0.orig/lib/Makefile pciutils-2.2.0/lib/Makefile --- pciutils-2.2.0.orig/lib/Makefile Fri Aug 13 23:29:06 2004 +++ pciutils-2.2.0/lib/Makefile Thu Nov 3 18:03:49 2005 @@ -3,7 +3,7 @@ include config.mk -OBJS=access.o generic.o dump.o names.o filter.o +OBJS=access.o generic.o names.o filter.o INCL=internal.h pci.h config.h header.h sysdep.h types.h PCILIB=libpci.a diff -Nur pciutils-2.2.0.orig/lib/configure pciutils-2.2.0/lib/configure --- pciutils-2.2.0.orig/lib/configure Wed Sep 21 14:42:03 2005 +++ pciutils-2.2.0/lib/configure Thu Nov 3 18:03:41 2005 @@ -38,21 +38,13 @@ case $sys in linux*) case $rel in - 2.[1-9]*|[3-9]*) echo_n " sysfs proc" + 2.[1-9]*|[3-9]*) echo_n " sysfs" echo >>$c '#define PCI_HAVE_PM_LINUX_SYSFS' - echo >>$c '#define PCI_HAVE_PM_LINUX_PROC' echo >>$c '#define PCI_HAVE_LINUX_BYTEORDER_H' - echo >>$c '#define PCI_PATH_PROC_BUS_PCI "/proc/bus/pci"' echo >>$c '#define PCI_PATH_SYS_BUS_PCI "/sys/bus/pci"' ok=1 ;; esac - case $cpu in - i386) echo_n " i386-ports" - echo >>$c '#define PCI_HAVE_PM_INTEL_CONF' - ok=1 - ;; - esac echo >>$c '#define PCI_HAVE_64BIT_ADDRESS' ;; sunos) @@ -96,8 +88,7 @@ ;; esac -echo >>$c '#define PCI_HAVE_PM_DUMP' -echo " dump" +echo "" if [ -z "$ok" ] ; then echo "WARNING: No real configuration access method is available." fi geexbox-0.98.7/packages/pciutils/unpack0000755000175000017500000000030210335100774017076 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain sed -i -e "s/sys=.*/sys=linux/" \ -e "s/rel=.*/rel=2.6/" \ -e "s/cpu=.*/cpu=$TARGET_ARCH/" \ $BUILD/$1*/lib/configure geexbox-0.98.7/packages/pciutils/url0000644000175000017500000000011110335100774016412 0ustar aurelaurelhttp://ftp.kernel.org/pub/software/utils/pciutils/pciutils-2.2.0.tar.bz2 geexbox-0.98.7/packages/rt2400/0000755000175000017500000000000010335100774014773 5ustar aurelaurelgeexbox-0.98.7/packages/rt2400/build0000755000175000017500000000022110335100774016013 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain $SCRIPTS/build linux cd $BUILD/$1*/Module make KERNDIR=$(kernel_path) \ PATCHLEVEL=6 geexbox-0.98.7/packages/rt2400/install0000755000175000017500000000024010335100774016363 0ustar aurelaurel#!/bin/sh . config/options mkdir -p "`ls -d $INSTALL/lib/modules/*`/kernel/drivers/net" cp $BUILD/$1*/Module/$1.ko $INSTALL/lib/modules/*/kernel/drivers/net geexbox-0.98.7/packages/rt2400/url0000644000175000017500000000011010335100774015510 0ustar aurelaurelhttp://ovh.dl.sourceforge.net/sourceforge/rt2400/rt2400-1.2.2-b3.tar.gz geexbox-0.98.7/packages/rt2500/0000755000175000017500000000000010335100774014774 5ustar aurelaurelgeexbox-0.98.7/packages/rt2500/build0000755000175000017500000000022110335100774016014 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain $SCRIPTS/build linux cd $BUILD/$1*/Module make KERNDIR=$(kernel_path) \ PATCHLEVEL=6 geexbox-0.98.7/packages/rt2500/install0000755000175000017500000000024010335100774016364 0ustar aurelaurel#!/bin/sh . config/options mkdir -p "`ls -d $INSTALL/lib/modules/*`/kernel/drivers/net" cp $BUILD/$1*/Module/$1.ko $INSTALL/lib/modules/*/kernel/drivers/net geexbox-0.98.7/packages/rt2500/url0000644000175000017500000000011010335100774015511 0ustar aurelaurelhttp://ovh.dl.sourceforge.net/sourceforge/rt2400/rt2500-1.1.0-b3.tar.gz geexbox-0.98.7/packages/s3switch/0000755000175000017500000000000010335100774015607 5ustar aurelaurelgeexbox-0.98.7/packages/s3switch/arch0000644000175000017500000000000510335100774016442 0ustar aurelaureli386 geexbox-0.98.7/packages/s3switch/build0000755000175000017500000000014210335100774016631 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain make -C $BUILD/$1* \ CC=$CC \ $1 geexbox-0.98.7/packages/s3switch/patches/0000755000175000017500000000000010335100774017236 5ustar aurelaurelgeexbox-0.98.7/packages/s3switch/patches/10_includes.diff0000644000175000017500000000047710335100774022206 0ustar aurelaurel--- s3switch-0.0.20030423.orig/s3switch.c +++ s3switch-0.0.20030423/s3switch.c @@ -4,8 +4,12 @@ // Linux x86 only. #include +#include +#include +#include +#include #define extern -#include +#include #undef extern #include "lrmi.h" geexbox-0.98.7/packages/s3switch/patches/20_ProSavageDDR.diff0000644000175000017500000000035610335100774022616 0ustar aurelaurel--- s3switch-0.0.20030423.orig/s3switch.c +++ s3switch-0.0.20030423/s3switch.c @@ -101,6 +105,7 @@ ioperm( 0x61, 1, enable ); ioperm( 0x80, 1, enable ); ioperm( 0x3b0, 0x30, enable ); + ioperm( 0xeb, 1, enable ); } geexbox-0.98.7/packages/s3switch/patches/30_use-system-lrmi.diff0000664000175000017500000000040710335100774023454 0ustar aurelaurel--- s3switch-0.0.20030423.orig/Makefile 2002-09-12 01:26:57.000000000 +0300 +++ s3switch-0.0.20030423/Makefile 2004-07-23 12:43:44.000000000 +0300 @@ -1,5 +1,6 @@ CC = gcc -g +LDLIBS = -llrmi all: s3switch -s3switch: s3switch.o lrmi.o +s3switch: s3switch.o geexbox-0.98.7/packages/s3switch/url0000644000175000017500000000012710335100774016334 0ustar aurelaurelhttp://ftp.de.debian.org/debian/pool/main/s/s3switch/s3switch_0.0.20030423.orig.tar.gz geexbox-0.98.7/packages/samba/0000755000175000017500000000000010335100774015123 5ustar aurelaurelgeexbox-0.98.7/packages/samba/build0000755000175000017500000000107610335100774016154 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain export samba_cv_HAVE_GETTIMEOFDAY_TZ=yes export samba_cv_USE_SETEUID=yes export samba_cv_HAVE_IFACE_IFCONF=yes cd $BUILD/$1*/source ./configure --host=$TARGET_NAME \ --build=$HOST_NAME \ --disable-cups \ --with-smbmount \ --without-ldap \ --without-winbind \ --with-included-popt \ --with-libsmbclient \ --without-ads make include/proto.h \ bin/smbmount \ bin/smbmnt \ bin/smbtree \ bin/libsmbclient.a geexbox-0.98.7/packages/samba/init.d/0000755000175000017500000000000010335100774016310 5ustar aurelaurelgeexbox-0.98.7/packages/samba/init.d/58_samba0000755000175000017500000000131710335100774017637 0ustar aurelaurel#!/bin/sh # # mount samba shares # # runlevels: geexbox, debug if test -x /usr/bin/smbmount -a -f /etc/network; then echo "### Mounting Samba shares ###" ( . /etc/network OPT="-N" test -n "$SMB_USER" && OPT="-U$SMB_USER%$SMB_PWD" saveifs=$IFS smbtree $OPT | while read mounts; do ( IFS=/ set $mounts name=$1 ip=$2 shift 2 while [ $# -gt 0 ]; do dir="/mnt/shares/$name/$1" mkdir -p "$dir" mount "//$ip/$1" "$dir" -t cifs -o ro,user=$SMB_USER,pass=$SMB_PWD || \ smbmount "//$name/$1" "$dir" -o ro,ip=$ip,username=$SMB_USER,passwd=$SMB_PWD || \ rmdir -p "$dir" shift done IFS=$saveifs )& done )>/dev/null 2>&1 & fi exit 0 geexbox-0.98.7/packages/samba/install0000755000175000017500000000062310335100774016520 0ustar aurelaurel#!/bin/sh . config/options SMB=`ls -d $BUILD/$1*/source` SO=$SMB/libsmbclient.so.0 libstrip $SO $SMB/bin/libsmbclient.a "$SMB/bin/smbmount $SMB/bin/smbmnt $SMB/bin/smbtree" mkdir -p $INSTALL/usr/lib cp $SO $INSTALL/usr/lib mkdir -p $INSTALL/usr/bin cp $BUILD/$1*/source/bin/smbmount $INSTALL/usr/bin cp $BUILD/$1*/source/bin/smbmnt $INSTALL/usr/bin cp $BUILD/$1*/source/bin/smbtree $INSTALL/usr/bin geexbox-0.98.7/packages/samba/patches/0000755000175000017500000000000010335100774016552 5ustar aurelaurelgeexbox-0.98.7/packages/samba/patches/10_reduce.diff0000644000175000017500000001256310335100774021162 0ustar aurelaureldiff -Nur samba-3.0.20.orig/source/include/debug.h samba-3.0.20/source/include/debug.h --- samba-3.0.20.orig/source/include/debug.h 2005-07-28 16:19:49.000000000 +0300 +++ samba-3.0.20/source/include/debug.h 2005-08-23 13:48:45.000000000 +0300 @@ -155,50 +155,16 @@ * will remove the extra conditional test. */ -#define DEBUGLVL( level ) \ - ( ((level) <= MAX_DEBUG_LEVEL) && \ - ((DEBUGLEVEL_CLASS[ DBGC_CLASS ] >= (level))|| \ - (!DEBUGLEVEL_CLASS_ISSET[ DBGC_CLASS ] && \ - DEBUGLEVEL_CLASS[ DBGC_ALL ] >= (level)) ) \ - && dbghdr( level, __FILE__, FUNCTION_MACRO, (__LINE__) ) ) - - -#define DEBUGLVLC( dbgc_class, level ) \ - ( ((level) <= MAX_DEBUG_LEVEL) && \ - ((DEBUGLEVEL_CLASS[ dbgc_class ] >= (level))|| \ - (!DEBUGLEVEL_CLASS_ISSET[ dbgc_class ] && \ - DEBUGLEVEL_CLASS[ DBGC_ALL ] >= (level)) ) \ - && dbghdr( level, __FILE__, FUNCTION_MACRO, (__LINE__) ) ) - - -#define DEBUG( level, body ) \ - (void)( ((level) <= MAX_DEBUG_LEVEL) && \ - ((DEBUGLEVEL_CLASS[ DBGC_CLASS ] >= (level))|| \ - (!DEBUGLEVEL_CLASS_ISSET[ DBGC_CLASS ] && \ - DEBUGLEVEL_CLASS[ DBGC_ALL ] >= (level)) ) \ - && (dbghdr( level, __FILE__, FUNCTION_MACRO, (__LINE__) )) \ - && (dbgtext body) ) - -#define DEBUGC( dbgc_class, level, body ) \ - (void)( ((level) <= MAX_DEBUG_LEVEL) && \ - ((DEBUGLEVEL_CLASS[ dbgc_class ] >= (level))|| \ - (!DEBUGLEVEL_CLASS_ISSET[ dbgc_class ] && \ - DEBUGLEVEL_CLASS[ DBGC_ALL ] >= (level)) ) \ - && (dbghdr( level, __FILE__, FUNCTION_MACRO, (__LINE__) )) \ - && (dbgtext body) ) - -#define DEBUGADD( level, body ) \ - (void)( ((level) <= MAX_DEBUG_LEVEL) && \ - ((DEBUGLEVEL_CLASS[ DBGC_CLASS ] >= (level))|| \ - (!DEBUGLEVEL_CLASS_ISSET[ DBGC_CLASS ] && \ - DEBUGLEVEL_CLASS[ DBGC_ALL ] >= (level)) ) \ - && (dbgtext body) ) - -#define DEBUGADDC( dbgc_class, level, body ) \ - (void)( ((level) <= MAX_DEBUG_LEVEL) && \ - ((DEBUGLEVEL_CLASS[ dbgc_class ] >= (level))|| \ - (!DEBUGLEVEL_CLASS_ISSET[ dbgc_class ] && \ - DEBUGLEVEL_CLASS[ DBGC_ALL ] >= (level)) ) \ - && (dbgtext body) ) +#define DEBUGLVL( level ) (0) + +#define DEBUGLVLC( dbgc_class, level ) (0) + +#define DEBUG( level, body ) ((void)0) + +#define DEBUGC( dbgc_class, level, body ) ((void)0) + +#define DEBUGADD( level, body ) ((void)0) + +#define DEBUGADDC( dbgc_class, level, body ) ((void)0) #endif diff -Nur samba-3.0.20.orig/source/libsmb/clierror.c samba-3.0.20/source/libsmb/clierror.c --- samba-3.0.20.orig/source/libsmb/clierror.c 2005-07-28 16:19:46.000000000 +0300 +++ samba-3.0.20/source/libsmb/clierror.c 2005-08-23 13:48:45.000000000 +0300 @@ -134,7 +134,7 @@ if (flgs2 & FLAGS2_32_BIT_ERROR_CODES) { NTSTATUS status = NT_STATUS(IVAL(cli->inbuf,smb_rcls)); - return nt_errstr(status); + return "NT_STATUS_UNSUCCESSFUL"; } cli_dos_error(cli, &errclass, &errnum); diff -Nur samba-3.0.20.orig/source/Makefile.in samba-3.0.20/source/Makefile.in --- samba-3.0.20.orig/source/Makefile.in 2005-08-08 02:09:57.000000000 +0300 +++ samba-3.0.20/source/Makefile.in 2005-08-23 13:48:45.000000000 +0300 @@ -454,9 +454,7 @@ $(SECRETS_OBJ) $(LIBSAMBA_OBJ) \ $(PRINTBASE_OBJ) $(ERRORMAP_OBJ) -SMBTREE_OBJ = utils/smbtree.o $(PARAM_OBJ) \ - $(PROFILE_OBJ) $(LIB_NONSMBD_OBJ) $(LIBSMB_OBJ) \ - $(KRBCLIENT_OBJ) $(POPT_LIB_OBJ) $(SECRETS_OBJ) +SMBTREE_OBJ = utils/smbtree.o $(POPT_LIB_OBJ) $(SECRETS_OBJ) TESTPARM_OBJ = utils/testparm.o \ $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) $(POPT_LIB_OBJ) \ @@ -546,8 +544,7 @@ CUPS_OBJ = client/smbspool.o $(PARAM_OBJ) $(LIBSMB_OBJ) \ $(LIB_NONSMBD_OBJ) $(KRBCLIENT_OBJ) $(SECRETS_OBJ) -MOUNT_OBJ = client/smbmount.o \ - $(PARAM_OBJ) $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) $(LIB_NONSMBD_OBJ) $(SECRETS_OBJ) +MOUNT_OBJ = client/smbmount.o MNT_OBJ = client/smbmnt.o $(VERSION_OBJ) $(SNPRINTF_OBJ) @@ -860,9 +857,9 @@ @echo Linking $@ @$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(CUPS_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS) -bin/smbmount@EXEEXT@: $(MOUNT_OBJ) bin/.dummy +bin/smbmount@EXEEXT@: $(MOUNT_OBJ) bin/libsmbclient.so bin/.dummy @echo Linking $@ - @$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(MOUNT_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS) + @$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(MOUNT_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS) -Lbin -lsmbclient bin/smbmnt@EXEEXT@: $(MNT_OBJ) bin/.dummy @echo Linking $@ @@ -887,9 +884,9 @@ $(LDFLAGS) $(LIBS) \ @POPTLIBS@ -bin/smbtree@EXEEXT@: $(SMBTREE_OBJ) @BUILD_POPT@ bin/.dummy +bin/smbtree@EXEEXT@: $(SMBTREE_OBJ) bin/libsmbclient.so @BUILD_POPT@ bin/.dummy @echo Linking $@ - @$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(SMBTREE_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(LDAP_LIBS) + @$(CC) $(FLAGS) @PIE_LDFLAGS@ -o $@ $(SMBTREE_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) @POPTLIBS@ $(KRB5LIBS) $(LDAP_LIBS) -Lbin -lsmbclient bin/smbpasswd@EXEEXT@: $(SMBPASSWD_OBJ) bin/.dummy @echo Linking $@ @@ -994,7 +991,7 @@ bin/libsmbclient.a: $(LIBSMBCLIENT_PICOBJS) @echo Linking libsmbclient non-shared library $@ - @-$(AR) -rc $@ $(LIBSMBCLIENT_PICOBJS) + @-$(AR) -rc $@ $(LIBSMBCLIENT_PICOBJS) $(KRB5LIBS) $(LDAPLIBS) # This is probably wrong for anything other than the GNU linker. bin/libbigballofmud.@SHLIBEXT@: $(LIBBIGBALLOFMUD_PICOBJS) geexbox-0.98.7/packages/samba/patches/20_crosscompile.diff0000644000175000017500000000132010335100774022403 0ustar aurelaureldiff -Naur samba-3.0.20.orig/source/configure samba-3.0.20/source/configure --- samba-3.0.20.orig/source/configure 2005-08-19 22:09:01.000000000 +0300 +++ samba-3.0.20/source/configure 2005-08-23 13:51:06.000000000 +0300 @@ -18731,11 +18731,7 @@ *linux*) # glibc <= 2.3.2 has a broken getgrouplist if test "$cross_compiling" = yes; then - { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run test program while cross compiling -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } + linux_getgrouplist_ok=no else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ geexbox-0.98.7/packages/samba/patches/30_smbtree-diskonly.diff0000644000175000017500000000410610335100774023202 0ustar aurelaurel--- samba-3.0.14a.orig/source/utils/smbtree.c Fri Feb 25 19:59:41 2005 +++ samba-3.0.14a/source/utils/smbtree.c Tue Aug 23 12:21:39 2005 @@ -127,13 +127,15 @@ return True; } -static BOOL get_shares(char *server_name, struct user_auth_info *user_info) +static BOOL get_shares(char *server_name, struct in_addr *server_ip, struct user_auth_info *user_info) { struct cli_state *cli; if (!(cli = get_ipc_connect(server_name, NULL, user_info))) return False; + *server_ip = cli->dest_ip; + if (!cli_RNetShareEnum(cli, add_name, &shares)) return False; @@ -143,6 +145,7 @@ static BOOL print_tree(struct user_auth_info *user_info) { struct name_list *wg, *sv, *sh; + struct in_addr server_ip; /* List workgroups */ @@ -151,8 +154,6 @@ for (wg = workgroups; wg; wg = wg->next) { - printf("%s\n", wg->name); - /* List servers */ free_name_list(servers); @@ -164,22 +165,23 @@ for (sv = servers; sv; sv = sv->next) { - printf("\t\\\\%-15s\t\t%s\n", - sv->name, sv->comment); - /* List shares */ free_name_list(shares); shares = NULL; if (level == LEV_SERVER || - !get_shares(sv->name, user_info)) + !get_shares(sv->name, &server_ip, user_info)) continue; + printf("%s/%s", sv->name, inet_ntoa(server_ip)); for (sh = shares; sh; sh = sh->next) { - printf("\t\t\\\\%s\\%-15s\t%s\n", - sv->name, sh->name, sh->comment); + if (sh->server_type == STYPE_DISKTREE && sh->name[strlen(sh->name)-1] != '$') + printf("/%s", sh->name); } + + fputc('\n', stdout); + fflush(stdout); } } geexbox-0.98.7/packages/samba/unpack0000755000175000017500000000010710335100774016330 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/fixconfigtools $BUILD/$1*/source geexbox-0.98.7/packages/samba/url0000644000175000017500000000007710335100774015654 0ustar aurelaurelftp://de.samba.org/samba.org/old-versions/samba-3.0.20b.tar.gz geexbox-0.98.7/packages/sed/0000755000175000017500000000000010335100774014613 5ustar aurelaurelgeexbox-0.98.7/packages/sed/build0000755000175000017500000000034210335100774015637 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/install ccache setup_toolchain host cd $BUILD/$1* ./configure --host=$HOST_NAME \ --build=$HOST_NAME \ --prefix=$ROOT/$TOOLCHAIN \ --disable-nls make geexbox-0.98.7/packages/sed/install0000755000175000017500000000007310335100774016207 0ustar aurelaurel#!/bin/sh . config/options make -C $BUILD/$1*/$1 install geexbox-0.98.7/packages/sed/url0000644000175000017500000000005410335100774015337 0ustar aurelaurelhttp://ftp.gnu.org/gnu/sed/sed-4.1.4.tar.gz geexbox-0.98.7/packages/sleeptimer/0000755000175000017500000000000010335100774016211 5ustar aurelaurelgeexbox-0.98.7/packages/sleeptimer/init.d/0000755000175000017500000000000010335100774017376 5ustar aurelaurelgeexbox-0.98.7/packages/sleeptimer/init.d/60_sleeptimer0000755000175000017500000000023510335100774022002 0ustar aurelaurel#!/bin/sh # # start sleeptimer script # runlevels: geexbox echo "0" > /var/downtime echo "### starting sleeptimer daemon ###" /usr/bin/sleeptimer & exit 0 geexbox-0.98.7/packages/sleeptimer/install0000755000175000017500000000014510335100774017605 0ustar aurelaurel#!/bin/sh . config/options mkdir -p $INSTALL/usr/bin cp -f $PACKAGES/$1/scripts/* $INSTALL/usr/bin geexbox-0.98.7/packages/sleeptimer/scripts/0000755000175000017500000000000010335100774017700 5ustar aurelaurelgeexbox-0.98.7/packages/sleeptimer/scripts/set_sleeptimer0000755000175000017500000000035310335100774022653 0ustar aurelaurel#!/bin/sh # sets the variable for a sheduled time to shutdown geexbox sleepin=$1 if [ "$sleepin" = "0" ]; then echo "0" > /var/downtime else uptime=`cat /proc/uptime | cut -f1 -d.` echo $(($uptime+$sleepin)) > /var/downtime fi geexbox-0.98.7/packages/sleeptimer/scripts/sleeptimer0000755000175000017500000000063210335100774022000 0ustar aurelaurel#!/bin/sh # checks for a sheduled time to shutdown geexbox while true; do shutdowntime=`cat /var/downtime` if [ "$shutdowntime" != "0" ]; then uptime=`cat /proc/uptime | cut -f1 -d.` if [ "$uptime" -gt "$shutdowntime" ]; then echo "### Sleeptimer is powering system down ###" echo "quit 166" > /var/mp_control echo "166" > /tmp/mp_result exit 0 fi fi sleep 60 done geexbox-0.98.7/packages/syslinux/0000755000175000017500000000000010335100774015736 5ustar aurelaurelgeexbox-0.98.7/packages/syslinux/arch0000644000175000017500000000000510335100774016571 0ustar aurelaureli386 geexbox-0.98.7/packages/syslinux/build0000755000175000017500000000062210335100774016763 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain make -C $BUILD/$1* \ CC=$CC \ AR=$AR \ RANLIB=$RANLIB \ CFLAGS="$CFLAGS -fomit-frame-pointer -D_FILE_OFFSET_BITS=64" \ LDFLAGS="$LDFLAGS" \ bootsect_bin.o \ ldlinux_bin.o \ pxelinux.0 \ isolinux.bin make -C $BUILD/$1*/mtools \ CC=$CC \ OPTFLAGS="$CFLAGS" \ LDFLAGS="$LDFLAGS" \ $1 geexbox-0.98.7/packages/syslinux/config/0000755000175000017500000000000010335100774017203 5ustar aurelaurelgeexbox-0.98.7/packages/syslinux/config/boot.msg0000644000175000017500000000017510335100774020661 0ustar aurelaurel splash.rle 07Welcome to GeeXboX release-nr (C) 2002-2005 by A. Jacobs and B. Zores Press 0bF107 for boot options ! geexbox-0.98.7/packages/syslinux/config/help.msg0000644000175000017500000000122010335100774020636 0ustar aurelaurel  09GeeXboX : Open Media Center 07In most cases, the best way to get started is to simply press the 0e07 key. If you experience problems with standard use, or want to install the distribution on a Hard Disk, try one of the following boot option : o 0fgeexbox07 for standard boot process. o 0fdebug07 for booting in console mode for debugging GeeXboX. o 0finstall07 for installing GeeXboX on your HDD or USB key. You can also pass some 0fspecific kernel options07 to the Linux kernel. For example, try 0fgeexbox option=arg07. 0cNOTE07: You cannot pass options to modules (ISA sound cards ...). geexbox-0.98.7/packages/syslinux/config/isolinux.cfg0000644000175000017500000000073110335100774021537 0ustar aurelaurelDEFAULT geexbox TIMEOUT 20 PROMPT 1 DISPLAY boot.msg F1 help.msg LABEL geexbox KERNEL vmlinuz APPEND initrd=initrd.gz root=/dev/ram0 rw init=linuxrc boot=cdrom splash=silent vga=0x315 video=vesafb:ywrap,mtrr LABEL install KERNEL vmlinuz APPEND initrd=initrd.gz root=/dev/ram0 rw init=linuxrc boot=cdrom installator LABEL debug KERNEL vmlinuz APPEND initrd=initrd.gz root=/dev/ram0 rw init=linuxrc boot=cdrom splash=0 vga=0x315 video=vesafb:ywrap,mtrr debugging geexbox-0.98.7/packages/syslinux/install0000755000175000017500000000313010335100774017327 0ustar aurelaurel#!/bin/sh . config/options case "$2" in binary) mkdir -p $INSTALL/usr/bin mkdir -p $INSTALL/usr/share cp $BUILD/$1*/mtools/$1 $INSTALL/usr/bin cp $BUILD/$1*/ldlinux.sys $INSTALL/usr/share ;; installator) cp $PACKAGES/$1/config/boot.msg $INSTALL cp $PACKAGES/$1/config/help.msg $INSTALL [ -f $BUILD/theme-$THEME/splash-isolinux.rle ] && cp $BUILD/theme-$THEME/splash-isolinux.rle $INSTALL/splash.rle cp $PACKAGES/$1/config/isolinux.cfg $INSTALL if [ -n "$BOOT_DEFAULT" ]; then sed -i "s/DEFAULT .*/DEFAULT $BOOT_DEFAULT/" $INSTALL/isolinux.cfg fi ;; *) mkdir -p $INSTALL/boot/pxelinux.cfg cp $BUILD/$1*/isolinux.bin $INSTALL/boot cp $PACKAGES/$1/config/isolinux.cfg $INSTALL/boot cp $PACKAGES/$1/config/boot.msg $INSTALL/boot cp $PACKAGES/$1/config/help.msg $INSTALL/boot cp $BUILD/$1*/pxelinux.0 $INSTALL/boot sed "s/boot=[^ ]*/boot=nfs/" $PACKAGES/$1/config/isolinux.cfg > $INSTALL/boot/pxelinux.cfg/default sed -i "s%\(.*APPEND.*\)%\1 nfsroot=$DEFAULT_NFS_SERVER:/tftpboot/GEEXBOX.$TARGET_ARCH%" $INSTALL/boot/pxelinux.cfg/default sed -i s%release-nr%$GEEXBOX_VERSION% $INSTALL/boot/boot.msg if [ -n "$BOOT_DEFAULT" ]; then sed -i "s/DEFAULT .*/DEFAULT $BOOT_DEFAULT/" $INSTALL/boot/isolinux.cfg sed -i "s/DEFAULT .*/DEFAULT $BOOT_DEFAULT/" $INSTALL/boot/pxelinux.cfg/default fi if [ "$2" != generator ]; then $SCRIPTS/unpack theme-$THEME [ -f $BUILD/theme-$THEME/splash-isolinux.rle ] && cp $BUILD/theme-$THEME/splash-isolinux.rle $INSTALL/boot/splash.rle fi ;; esac exit 0 geexbox-0.98.7/packages/syslinux/patches/0000755000175000017500000000000010335100774017365 5ustar aurelaurelgeexbox-0.98.7/packages/syslinux/patches/10_nomtools.diff0000644000175000017500000000373710335100774022403 0ustar aurelaureldiff -Nur syslinux-3.09.orig/mtools/syslinux.c syslinux-3.09/mtools/syslinux.c --- syslinux-3.09.orig/mtools/syslinux.c Tue Jan 4 05:27:43 2005 +++ syslinux-3.09/mtools/syslinux.c Wed Aug 10 13:57:51 2005 @@ -128,12 +128,8 @@ static unsigned char sectbuf[512]; int dev_fd; struct stat st; - int status; char **argp, *opt; int force = 0; /* -f (force) option */ - char mtools_conf[] = "/tmp/syslinux-mtools-XXXXXX"; - int mtc_fd; - FILE *mtc, *mtp; struct libfat_filesystem *fs; libfat_sector_t s, *secp, sectors[65]; /* 65 is maximum possible */ int32_t ldlinux_cluster; @@ -198,54 +194,6 @@ if( (errmsg = syslinux_check_bootsect(sectbuf)) ) { die(errmsg); } - - /* - * Create an mtools configuration file - */ - mtc_fd = mkstemp(mtools_conf); - if ( mtc_fd < 0 || !(mtc = fdopen(mtc_fd, "w")) ) { - perror(program); - exit(1); - } - fprintf(mtc, - "MTOOLS_NO_VFAT=1\n" - "MTOOLS_SKIP_CHECK=1\n" /* Needed for some flash memories */ - "drive s:\n" - " file=\"/proc/%lu/fd/%d\"\n" - " offset=%llu\n", - (unsigned long)mypid, - dev_fd, - (unsigned long long)filesystem_offset); - fclose(mtc); - - /* - * Run mtools to create the LDLINUX.SYS file - */ - if ( setenv("MTOOLSRC", mtools_conf, 1) ) { - perror(program); - exit(1); - } - - /* This command may fail legitimately */ - system("mattrib -h -r -s s:ldlinux.sys 2>/dev/null"); - - mtp = popen("mcopy -D o -D O -o - s:ldlinux.sys", "w"); - if ( !mtp || - (fwrite(syslinux_ldlinux, 1, syslinux_ldlinux_len, mtp) - != syslinux_ldlinux_len) || - (status = pclose(mtp), !WIFEXITED(status) || WEXITSTATUS(status)) ) { - die("failed to create ldlinux.sys"); - } - - status = system("mattrib +r +h +s s:ldlinux.sys"); - - if ( !WIFEXITED(status) || WEXITSTATUS(status) ) { - fprintf(stderr, - "%s: warning: failed to set system bit on ldlinux.sys\n", - program); - } - - unlink(mtools_conf); /* * Now, use libfat to create a block map geexbox-0.98.7/packages/syslinux/unpack0000755000175000017500000000022010335100774017137 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain sed -i s%'/isolinux'%/GEEXBOX/boot% $BUILD/$1*/isolinux.asm make -C $BUILD/$1* spotless geexbox-0.98.7/packages/syslinux/url0000644000175000017500000000011210335100774016455 0ustar aurelaurelhttp://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-3.11.tar.bz2 geexbox-0.98.7/packages/talloc/0000755000175000017500000000000010335100774015316 5ustar aurelaurelgeexbox-0.98.7/packages/talloc/build0000755000175000017500000000033210335100774016341 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain cd $BUILD/$1* ./configure --host=$TARGET_NAME \ --build=$HOST_NAME \ --prefix=$LIB_PREFIX \ --disable-shared make make install geexbox-0.98.7/packages/talloc/url0000644000175000017500000000004310335100774016040 0ustar aurelaurelGEEXBOX_SRCS/talloc-r11479.tar.bz2 geexbox-0.98.7/packages/theme/0000755000175000017500000000000010335100774015142 5ustar aurelaurelgeexbox-0.98.7/packages/theme/install0000755000175000017500000000116710335100774016543 0ustar aurelaurel#!/bin/sh . config/options mkdir -p $INSTALL/etc case "$2" in generator) $SCRIPTS/build bootsplash mkdir -p $GENERATOR_NAME/themes for i in $PACKAGES/$1-*; do b=`basename $i` $SCRIPTS/unpack $b cp -r $BUILD/$b $GENERATOR_NAME/themes/ cd $GENERATOR_NAME/themes/$b $ROOT/$BUILD/bootsplash*/Utilities/splash -s -f bootsplash-800x600.cfg > bootsplash.dat rm -f bootsplash-800x600.* cd $ROOT done echo "theme-$THEME" > $GENERATOR_NAME/themes/default ;; *) $SCRIPTS/unpack theme-$THEME cp $BUILD/theme-$THEME/config $INSTALL/etc/theme.conf ;; esac geexbox-0.98.7/packages/theme-movies/0000755000175000017500000000000010335100774016442 5ustar aurelaurelgeexbox-0.98.7/packages/theme-movies/url0000644000175000017500000000004210335100774017163 0ustar aurelaurelGEEXBOX_SRCS/theme-movies.tar.bz2 geexbox-0.98.7/packages/theme-omc/0000755000175000017500000000000010335100774015716 5ustar aurelaurelgeexbox-0.98.7/packages/theme-omc/url0000644000175000017500000000003710335100774016443 0ustar aurelaurelGEEXBOX_SRCS/theme-omc.tar.bz2 geexbox-0.98.7/packages/toolchain/0000755000175000017500000000000010335100774016020 5ustar aurelaurelgeexbox-0.98.7/packages/toolchain/build0000755000175000017500000000035210335100774017045 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build configtools toolchain $SCRIPTS/install make $SCRIPTS/install sed $SCRIPTS/install lzma $SCRIPTS/install binutils toolchain $SCRIPTS/install gcc toolchain $SCRIPTS/install uClibc toolchain geexbox-0.98.7/packages/tools-generator/0000755000175000017500000000000010335100774017164 5ustar aurelaurelgeexbox-0.98.7/packages/tools-generator/install0000755000175000017500000000012710335100774020560 0ustar aurelaurel#!/bin/sh . config/options mkdir -p $INSTALL/tools cp -r $BUILD/$1*/* $INSTALL/tools geexbox-0.98.7/packages/tools-generator/url0000644000175000017500000000020710335100774017710 0ustar aurelaurelGEEXBOX_SRCS/tools-generator-win32.tar.bz2 GEEXBOX_SRCS/tools-generator-linux-i386.tar.bz2 GEEXBOX_SRCS/tools-generator-macosx.tar.bz2 geexbox-0.98.7/packages/tvout/0000755000175000017500000000000010335100774015221 5ustar aurelaurelgeexbox-0.98.7/packages/tvout/build0000755000175000017500000000017210335100774016246 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build atitvout $SCRIPTS/build nvtv $SCRIPTS/build s3switch $SCRIPTS/build i810tvout geexbox-0.98.7/packages/tvout/config/0000755000175000017500000000000010335100774016466 5ustar aurelaurelgeexbox-0.98.7/packages/tvout/config/tvout0000644000175000017500000000244710335100774017601 0ustar aurelaurel# TVOut Configuration File # # Generic Options # # TV Output Standard (ntsc/pal/secam) TVOUT_STANDARD=pal # TV Output Aspect (4:3 or 16:9) TVOUT_ASPECT="4:3" # # NvTV Options - For n'Vidia cards ONLY # # Connector's Type (auto/composite/svideo/both/convert) CTR=CONVERT # TV Resolution (pixels) TV_RES="800,600" # Monitor's Resolution (pixels / frequency) MONITOR_RES="800x600@75" # Scan Size (Tiny/Small/Normal/Large/Huge) SCAN=Large # Image Position (TVPositionX/Y:+/-x,y) POSITION="TVPositionX:0,0" # Command line NVTV_ON="-t -c -S $TVOUT_STANDARD -r $TV_RES -s $SCAN -C $CTR --set $POSITION" NVTV_OFF="-m -s $MONITOR_RES" # # i810tvout Options - For Intel i810/i815 cards ONLY # # TV Format (NTSC_M, NTSC_M_J, PAL_B, PAL_D, PAL_G, PAL_H, PAL_I, PAL_M, PAL_N) I810_FORMAT="PAL_M" # TV Mode (see output of --list-modes in debug) I810_MODE=6 # Horizontal position, valid range is from -50 to 50. I810_H=0 # Vertical position, valid range is from -50 to 50. I810_V=0 # Brightness (black level), valid range is from -50 to 50. I810_BRIGHT=0 # Contrast, valid range is from -50 to 50. I810_CONTRAST=0 # Command line I810_TVON="--tv_enable --tv_mode $I810_MODE --tv_format $I810_FORMAT --h_position $I810_H --v_position $I810_V --tv_brightness $I810_BRIGHT --tv_contrast $I810_CONTRAST" I810_TVOFF="--crt_enable" geexbox-0.98.7/packages/tvout/init.d/0000755000175000017500000000000010335100774016406 5ustar aurelaurelgeexbox-0.98.7/packages/tvout/init.d/30_tvout0000755000175000017500000000124410335100774020020 0ustar aurelaurel#!/bin/sh # # setup the tvout # # runlevels: geexbox, debug, install test -f /etc/tvout || exit 1 echo "### Setting up TV-Out ###" . /etc/tvout atitvout $TVOUT_STANDARD auto >/dev/null 2>&1 test "`atitvout active 2>/dev/null | sed -n 's/TV.*/TV/p'`" = "TV" && echo "" > /var/tvout # There is no possibility of tv cable autodetection with nvtv so # tvout is not enabled automatically. Uncomment the following lines # to have nvtv tvout enabled at boot. #nvtv $NVTV_ON >/dev/null 2>&1 #echo "" > /var/tvout # The same applies to S3 cards for which you need to uncomment # the following lines. #s3switch -q tv $TVOUT_STANDARD >/dev/null 2>&1 #echo "" > /var/tvout exit 0 geexbox-0.98.7/packages/tvout/install0000755000175000017500000000063410335100774016620 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/install atitvout $SCRIPTS/install nvtv $SCRIPTS/install s3switch $SCRIPTS/install i810tvout mkdir -p $INSTALL/etc mkdir -p $INSTALL/usr/bin cp $PACKAGES/$1/scripts/tvon $INSTALL/usr/bin cp $PACKAGES/$1/scripts/tvoff $INSTALL/usr/bin cp $PACKAGES/$1/scripts/tvswitch $INSTALL/usr/bin cp $PACKAGES/$1/scripts/tvkeepon $INSTALL/usr/bin cp $PACKAGES/$1/config/$1 $INSTALL/etc geexbox-0.98.7/packages/tvout/scripts/0000755000175000017500000000000010335100774016710 5ustar aurelaurelgeexbox-0.98.7/packages/tvout/scripts/tvkeepon0000755000175000017500000000013010335100774020463 0ustar aurelaurel#!/bin/sh . /etc/tvout if test -f /var/tvout; then nvtv $NVTV_ON >/dev/null 2>&1 fi geexbox-0.98.7/packages/tvout/scripts/tvoff0000755000175000017500000000041510335100774017762 0ustar aurelaurel#!/bin/sh . /etc/tvout if atitvout vbe >/dev/null 2>&1; then atitvout cl >/dev/null 2>&1 else atitvout -f cl >/dev/null 2>&1 atitvout -r cl >/dev/null 2>&1 fi nvtv $NVTV_OFF >/dev/null 2>&1 s3switch -q both >/dev/null 2>&1 i810tvout $I810_TVOFF >/dev/null 2>&1 geexbox-0.98.7/packages/tvout/scripts/tvon0000755000175000017500000000066110335100774017627 0ustar aurelaurel#!/bin/sh . /etc/tvout if atitvout vbe >/dev/null 2>&1; then atitvout $TVOUT_STANDARD lt >/dev/null 2>&1 atitvout $TVOUT_STANDARD ct >/dev/null 2>&1 else atitvout -f $TVOUT_STANDARD >/dev/null 2>&1 atitvout -r $TVOUT_STANDARD >/dev/null 2>&1 atitvout -f t >/dev/null 2>&1 atitvout -r t >/dev/null 2>&1 fi nvtv $NVTV_ON >/dev/null 2>&1 s3switch -q tv $TVOUT_STANDARD >/dev/null 2>&1 i810tvout $I810_TVON >/dev/null 2>&1 geexbox-0.98.7/packages/tvout/scripts/tvswitch0000755000175000017500000000015010335100774020505 0ustar aurelaurel#!/bin/sh if test -f /var/tvout; then tvoff rm -f /var/tvout else tvon echo "" > /var/tvout fi geexbox-0.98.7/packages/uClibc/0000755000175000017500000000000010335100774015241 5ustar aurelaurelgeexbox-0.98.7/packages/uClibc/build0000755000175000017500000000012010335100774016257 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/install gcc toolchain make -C $BUILD/$1* geexbox-0.98.7/packages/uClibc/config/0000755000175000017500000000000010335100774016506 5ustar aurelaurelgeexbox-0.98.7/packages/uClibc/config/uClibc.devtools.conf0000644000175000017500000000006510335100774022415 0ustar aurelaurelUCLIBC_HAS_ERRNO_MESSAGES=y UCLIBC_HAS_SYS_ERRLIST=n geexbox-0.98.7/packages/uClibc/config/uClibc.i386.conf0000644000175000017500000001011410335100774021243 0ustar aurelaurel# # Automatically generated make config: don't edit # # TARGET_alpha is not set # TARGET_arm is not set # TARGET_bfin is not set # TARGET_cris is not set # TARGET_e1 is not set # TARGET_frv is not set # TARGET_h8300 is not set TARGET_i386=y # TARGET_i960 is not set # TARGET_m68k is not set # TARGET_microblaze is not set # TARGET_mips is not set # TARGET_nios is not set # TARGET_nios2 is not set # TARGET_powerpc is not set # TARGET_sh is not set # TARGET_sh64 is not set # TARGET_sparc is not set # TARGET_v850 is not set # TARGET_x86_64 is not set # # Target Architecture Features and Options # HAVE_ELF=y ARCH_SUPPORTS_LITTLE_ENDIAN=y TARGET_ARCH="i386" # CONFIG_GENERIC_386 is not set # CONFIG_386 is not set # CONFIG_486 is not set CONFIG_586=y # CONFIG_586MMX is not set # CONFIG_686 is not set # CONFIG_PENTIUMII is not set # CONFIG_PENTIUMIII is not set # CONFIG_PENTIUM4 is not set # CONFIG_K6 is not set # CONFIG_K7 is not set # CONFIG_ELAN is not set # CONFIG_CRUSOE is not set # CONFIG_WINCHIPC6 is not set # CONFIG_WINCHIP2 is not set # CONFIG_CYRIXIII is not set # CONFIG_NEHEMIAH is not set ARCH_LITTLE_ENDIAN=y # ARCH_BIG_ENDIAN is not set # ARCH_HAS_NO_MMU is not set ARCH_HAS_MMU=y UCLIBC_HAS_FLOATS=y HAS_FPU=y DO_C99_MATH=y KERNEL_SOURCE="" C_SYMBOL_PREFIX="" HAVE_DOT_CONFIG=y # # General Library Settings # # HAVE_NO_PIC is not set DOPIC=y # HAVE_NO_SHARED is not set HAVE_SHARED=y # ARCH_HAS_NO_LDSO is not set BUILD_UCLIBC_LDSO=y # FORCE_SHAREABLE_TEXT_SEGMENTS is not set # LDSO_LDD_SUPPORT is not set # LDSO_CACHE_SUPPORT is not set # LDSO_PRELOAD_FILE_SUPPORT is not set # LDSO_RUNPATH is not set # DL_FINI_CRT_COMPAT is not set UCLIBC_CTOR_DTOR=y # HAS_NO_THREADS is not set UCLIBC_HAS_THREADS=y # PTHREADS_DEBUG_SUPPORT is not set UCLIBC_HAS_LFS=y # UCLIBC_STATIC_LDCONFIG is not set # MALLOC is not set # MALLOC_SIMPLE is not set MALLOC_STANDARD=y # MALLOC_GLIBC_COMPAT is not set # UCLIBC_DYNAMIC_ATEXIT is not set # HAS_SHADOW is not set # UNIX98PTY_ONLY is not set # ASSUME_DEVPTS is not set # UCLIBC_HAS_TM_EXTENSIONS is not set # UCLIBC_HAS_TZ_CACHING is not set # UCLIBC_HAS_TZ_FILE is not set # # Networking Support # # UCLIBC_HAS_IPV6 is not set UCLIBC_HAS_RPC=y # UCLIBC_HAS_FULL_RPC is not set # # String and Stdio Support # # UCLIBC_HAS_STRING_GENERIC_OPT is not set # UCLIBC_HAS_STRING_ARCH_OPT is not set UCLIBC_HAS_CTYPE_TABLES=y UCLIBC_HAS_CTYPE_SIGNED=y # UCLIBC_HAS_CTYPE_UNSAFE is not set UCLIBC_HAS_CTYPE_CHECKED=y # UCLIBC_HAS_CTYPE_ENFORCED is not set # UCLIBC_HAS_WCHAR is not set # UCLIBC_HAS_LOCALE is not set # UCLIBC_HAS_HEXADECIMAL_FLOATS is not set # UCLIBC_HAS_GLIBC_CUSTOM_PRINTF is not set # USE_OLD_VFPRINTF is not set UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9 # UCLIBC_HAS_SCANF_GLIBC_A_FLAG is not set # UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set UCLIBC_HAS_STDIO_BUFSIZ_256=y # UCLIBC_HAS_STDIO_BUFSIZ_512 is not set # UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set # UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set # UCLIBC_HAS_STDIO_BUFSIZ_4096 is not set # UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y # UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set # UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set # UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set UCLIBC_HAS_STDIO_GETC_MACRO=y UCLIBC_HAS_STDIO_PUTC_MACRO=y # UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION is not set # UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set # UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE is not set # UCLIBC_HAS_GLIBC_CUSTOM_STREAMS is not set # UCLIBC_HAS_PRINTF_M_SPEC is not set # UCLIBC_HAS_ERRNO_MESSAGES is not set # UCLIBC_HAS_SIGNUM_MESSAGES is not set UCLIBC_HAS_GNU_GETOPT=y # # Big and Tall # UCLIBC_HAS_REGEX=y # UCLIBC_HAS_WORDEXP is not set # UCLIBC_HAS_FTW is not set UCLIBC_HAS_GLOB=y # # Library Installation Options # SHARED_LIB_LOADER_PREFIX="$(DEVEL_PREFIX)/lib" RUNTIME_PREFIX="/" DEVEL_PREFIX="/usr" # # uClibc security related options # # UCLIBC_SECURITY is not set # # uClibc development/debugging options # CROSS_COMPILER_PREFIX="" # DODEBUG is not set # DODEBUG_PT is not set # DOASSERTS is not set # SUPPORT_LD_DEBUG is not set # SUPPORT_LD_DEBUG_EARLY is not set WARNINGS="-Wall" # UCLIBC_MJN3_ONLY is not set geexbox-0.98.7/packages/uClibc/config/uClibc.ppc.conf0000644000175000017500000000721310335100774021342 0ustar aurelaurel# # Automatically generated make config: don't edit # # TARGET_alpha is not set # TARGET_arm is not set # TARGET_bfin is not set # TARGET_cris is not set # TARGET_e1 is not set # TARGET_frv is not set # TARGET_h8300 is not set # TARGET_i386 is not set # TARGET_i960 is not set # TARGET_m68k is not set # TARGET_microblaze is not set # TARGET_mips is not set # TARGET_nios is not set # TARGET_nios2 is not set TARGET_powerpc=y # TARGET_sh is not set # TARGET_sh64 is not set # TARGET_sparc is not set # TARGET_v850 is not set # TARGET_x86_64 is not set # # Target Architecture Features and Options # HAVE_ELF=y TARGET_ARCH="powerpc" ARCH_SUPPORTS_BIG_ENDIAN=y # ARCH_LITTLE_ENDIAN is not set ARCH_BIG_ENDIAN=y # ARCH_HAS_NO_MMU is not set ARCH_HAS_MMU=y UCLIBC_HAS_FLOATS=y HAS_FPU=y DO_C99_MATH=y KERNEL_SOURCE="" C_SYMBOL_PREFIX="" HAVE_DOT_CONFIG=y # # General Library Settings # # HAVE_NO_PIC is not set DOPIC=y # HAVE_NO_SHARED is not set HAVE_SHARED=y # ARCH_HAS_NO_LDSO is not set BUILD_UCLIBC_LDSO=y # FORCE_SHAREABLE_TEXT_SEGMENTS is not set # LDSO_LDD_SUPPORT is not set # LDSO_CACHE_SUPPORT is not set # LDSO_PRELOAD_FILE_SUPPORT is not set # LDSO_RUNPATH is not set # DL_FINI_CRT_COMPAT is not set UCLIBC_CTOR_DTOR=y # HAS_NO_THREADS is not set UCLIBC_HAS_THREADS=y # PTHREADS_DEBUG_SUPPORT is not set UCLIBC_HAS_LFS=y # UCLIBC_STATIC_LDCONFIG is not set # MALLOC is not set # MALLOC_SIMPLE is not set MALLOC_STANDARD=y # MALLOC_GLIBC_COMPAT is not set # UCLIBC_DYNAMIC_ATEXIT is not set # HAS_SHADOW is not set # UNIX98PTY_ONLY is not set # ASSUME_DEVPTS is not set # UCLIBC_HAS_TM_EXTENSIONS is not set # UCLIBC_HAS_TZ_CACHING is not set # UCLIBC_HAS_TZ_FILE is not set # # Networking Support # # UCLIBC_HAS_IPV6 is not set UCLIBC_HAS_RPC=y # UCLIBC_HAS_FULL_RPC is not set # # String and Stdio Support # # UCLIBC_HAS_STRING_GENERIC_OPT is not set # UCLIBC_HAS_STRING_ARCH_OPT is not set UCLIBC_HAS_CTYPE_TABLES=y UCLIBC_HAS_CTYPE_SIGNED=y # UCLIBC_HAS_CTYPE_UNSAFE is not set UCLIBC_HAS_CTYPE_CHECKED=y # UCLIBC_HAS_CTYPE_ENFORCED is not set # UCLIBC_HAS_WCHAR is not set # UCLIBC_HAS_LOCALE is not set # UCLIBC_HAS_HEXADECIMAL_FLOATS is not set # UCLIBC_HAS_GLIBC_CUSTOM_PRINTF is not set # USE_OLD_VFPRINTF is not set UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9 # UCLIBC_HAS_SCANF_GLIBC_A_FLAG is not set # UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set UCLIBC_HAS_STDIO_BUFSIZ_256=y # UCLIBC_HAS_STDIO_BUFSIZ_512 is not set # UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set # UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set # UCLIBC_HAS_STDIO_BUFSIZ_4096 is not set # UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y # UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set # UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set # UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set UCLIBC_HAS_STDIO_GETC_MACRO=y UCLIBC_HAS_STDIO_PUTC_MACRO=y # UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION is not set # UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set # UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE is not set # UCLIBC_HAS_GLIBC_CUSTOM_STREAMS is not set # UCLIBC_HAS_PRINTF_M_SPEC is not set # UCLIBC_HAS_ERRNO_MESSAGES is not set # UCLIBC_HAS_SIGNUM_MESSAGES is not set UCLIBC_HAS_GNU_GETOPT=y # # Big and Tall # UCLIBC_HAS_REGEX=y # UCLIBC_HAS_WORDEXP is not set # UCLIBC_HAS_FTW is not set UCLIBC_HAS_GLOB=y # # Library Installation Options # SHARED_LIB_LOADER_PREFIX="$(DEVEL_PREFIX)/lib" RUNTIME_PREFIX="/" DEVEL_PREFIX="/usr" # # uClibc security related options # # UCLIBC_SECURITY is not set # # uClibc development/debugging options # CROSS_COMPILER_PREFIX="" # DODEBUG is not set # DODEBUG_PT is not set # DOASSERTS is not set # SUPPORT_LD_DEBUG is not set # SUPPORT_LD_DEBUG_EARLY is not set WARNINGS="-Wall" # UCLIBC_MJN3_ONLY is not set geexbox-0.98.7/packages/uClibc/install0000755000175000017500000000107610335100774016641 0ustar aurelaurel#!/bin/sh . config/options if [ "$2" = toolchain ]; then rm -rf "$SYSROOT_PREFIX/lib" "$SYSROOT_PREFIX/usr/lib" "$SYSROOT_PREFIX/usr/include" make -C $BUILD/$1* PREFIX="$SYSROOT_PREFIX" install exit 0 fi mkdir -p $INSTALL/lib cp $BUILD/$1*/lib/ld-uClibc.so.0 $INSTALL/lib cp $BUILD/$1*/lib/libc.so.0 $INSTALL/lib cp $BUILD/$1*/lib/libdl.so.0 $INSTALL/lib cp $BUILD/$1*/lib/libpthread.so.0 $INSTALL/lib cp $BUILD/$1*/lib/libm.so.0 $INSTALL/lib cp $BUILD/$1*/lib/libutil.so.0 $INSTALL/lib [ "$NETWORK" = yes ] && cp $BUILD/$1*/lib/libcrypt.so.0 $INSTALL/lib exit 0 geexbox-0.98.7/packages/uClibc/patches/0000755000175000017500000000000010335100774016670 5ustar aurelaurelgeexbox-0.98.7/packages/uClibc/patches/10_mmap.diff0000644000175000017500000000176110335100774020761 0ustar aurelaurel"The problem is that offset is first shortened from 64 bits to 32 bits and then it is re-expended to 64 bits to do the comparison. As off_t is a signed type, ((off_t) offset) is negative and the expansion to 64 bits keep the sign giving a negative 64 bits number which is obviously not equal to offset." - Aurel more information at: http://www.uclibc.org/lists/uclibc/2003-May/006192.html diff -Naur uClibc-0.9.20.orig/libc/sysdeps/linux/common/mmap64.c uClibc-0.9.20/libc/sysdeps/linux/common/mmap64.c --- uClibc-0.9.20.orig/libc/sysdeps/linux/common/mmap64.c 2003-09-03 19:56:05.000000000 +0200 +++ uClibc-0.9.20/libc/sysdeps/linux/common/mmap64.c 2003-09-03 19:56:57.000000000 +0200 @@ -54,12 +54,6 @@ __ptr_t mmap64(__ptr_t addr, size_t len, int prot, int flags, int fd, __off64_t offset) { - if (offset != (off_t) offset || (offset + len) != (off_t) (offset + len)) - { - __set_errno (EINVAL); - return MAP_FAILED; - } - return mmap (addr, len, prot, flags, fd, (off_t) offset); } geexbox-0.98.7/packages/uClibc/patches/20_mount.diff0000644000175000017500000000427510335100774021175 0ustar aurelaureldiff -Naur uClibc.orig/libc/misc/mntent/mntent.c uClibc/libc/misc/mntent/mntent.c --- uClibc.orig/libc/misc/mntent/mntent.c Wed Jul 6 09:10:45 2005 +++ uClibc/libc/misc/mntent/mntent.c Sat Jul 23 13:04:32 2005 @@ -13,6 +13,54 @@ # define UNLOCK #endif +/* Since the values in a line are separated by spaces, a name cannot + contain a space. Therefore some programs encode spaces in names + by the strings "\040". We undo the encoding when reading an entry. + The decoding happens in place. */ +static char * +decode_name (char *buf) +{ + char *rp = buf; + char *wp = buf; + + do + if (rp[0] == '\\' && rp[1] == '0' && rp[2] == '4' && rp[3] == '0') + { + /* \040 is a SPACE. */ + *wp++ = ' '; + rp += 3; + } + else if (rp[0] == '\\' && rp[1] == '0' && rp[2] == '1' && rp[3] == '1') + { + /* \011 is a TAB. */ + *wp++ = '\t'; + rp += 3; + } + else if (rp[0] == '\\' && rp[1] == '0' && rp[2] == '1' && rp[3] == '2') + { + /* \012 is a NEWLINE. */ + *wp++ = '\n'; + rp += 3; + } + else if (rp[0] == '\\' && rp[1] == '\\') + { + /* We have to escape \\ to be able to represent all characters. */ + *wp++ = '\\'; + rp += 1; + } + else if (rp[0] == '\\' && rp[1] == '1' && rp[2] == '3' && rp[3] == '4') + { + /* \134 is also \\. */ + *wp++ = '\\'; + rp += 3; + } + else + *wp++ = *rp; + while (*rp++ != '\0'); + + return buf; +} + /* Reentrant version of getmntent. */ struct mntent *getmntent_r (FILE *filep, struct mntent *mnt, char *buff, int bufsize) @@ -37,19 +85,19 @@ return NULL; ptrptr = 0; - mnt->mnt_fsname = strtok_r(buff, sep, &ptrptr); + mnt->mnt_fsname = decode_name(strtok_r(buff, sep, &ptrptr)); if (mnt->mnt_fsname == NULL) return NULL; - mnt->mnt_dir = strtok_r(NULL, sep, &ptrptr); + mnt->mnt_dir = decode_name(strtok_r(NULL, sep, &ptrptr)); if (mnt->mnt_dir == NULL) return NULL; - mnt->mnt_type = strtok_r(NULL, sep, &ptrptr); + mnt->mnt_type = decode_name(strtok_r(NULL, sep, &ptrptr)); if (mnt->mnt_type == NULL) return NULL; - mnt->mnt_opts = strtok_r(NULL, sep, &ptrptr); + mnt->mnt_opts = decode_name(strtok_r(NULL, sep, &ptrptr)); if (mnt->mnt_opts == NULL) mnt->mnt_opts = ""; geexbox-0.98.7/packages/uClibc/patches/40_makefile-cp.diff0000644000175000017500000000166310335100774022210 0ustar aurelaureldiff -Naur uClibc-0.9.27.orig/Makefile uClibc-0.9.27/Makefile --- uClibc-0.9.27.orig/Makefile 2005-01-12 12:59:03.839842992 +0100 +++ uClibc-0.9.27/Makefile 2005-01-12 13:01:30.403561920 +0100 @@ -232,7 +232,7 @@ $(INSTALL) -d $(PREFIX)$(RUNTIME_PREFIX)lib $(INSTALL) -m 644 lib/lib*-$(MAJOR_VERSION).$(MINOR_VERSION).$(SUBLEVEL).so \ $(PREFIX)$(RUNTIME_PREFIX)lib - cp -dRf lib/*.so.* $(PREFIX)$(RUNTIME_PREFIX)lib + cp -PRf lib/*.so.* $(PREFIX)$(RUNTIME_PREFIX)lib @if [ -x lib/ld-uClibc-$(MAJOR_VERSION).$(MINOR_VERSION).$(SUBLEVEL).so ] ; then \ set -x -e; \ $(INSTALL) -m 755 lib/ld-uClibc-$(MAJOR_VERSION).$(MINOR_VERSION).$(SUBLEVEL).so \ @@ -347,7 +347,7 @@ release: distclean cd ..; \ $(RM) -r uClibc-$(VERSION); \ - cp -dRf uClibc uClibc-$(VERSION); \ + cp -PRf uClibc uClibc-$(VERSION); \ find uClibc-$(VERSION)/ -type f \ -name .\#* -exec $(RM) -r {} \; ; \ find uClibc-$(VERSION)/ -type d \ geexbox-0.98.7/packages/uClibc/unpack0000755000175000017500000000110610335100774016446 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/unpack linux UCLIBC=`ls -d $BUILD/$1*` sed -i -e "s|^HOSTCC[[:space:]]*=.*$|HOSTCC = $HOST_CC|" \ -e "s|^CROSS[[:space:]]*=.*$|CROSS = $TARGET_PREFIX|" \ $UCLIBC/Rules.mak sed -e "s%^KERNEL_SOURCE=.*%KERNEL_SOURCE=\"$(kernel_path)\"%" \ $PACKAGES/$1/config/$1.$TARGET_ARCH.conf > $UCLIBC/.config [ "$DEVTOOLS" = yes ] && cat $PACKAGES/$1/config/$1.devtools.conf >> $UCLIBC/.config make -C $UCLIBC oldconfig make -C $UCLIBC pregen rm -rf "$SYSROOT_PREFIX/usr/include" make -C $UCLIBC PREFIX="$SYSROOT_PREFIX" install_dev geexbox-0.98.7/packages/uClibc/url0000644000175000017500000000006610335100774015770 0ustar aurelaurelhttp://www.uclibc.org/downloads/uClibc-0.9.28.tar.bz2 geexbox-0.98.7/packages/udev/0000755000175000017500000000000010335100774015003 5ustar aurelaurelgeexbox-0.98.7/packages/udev/build0000755000175000017500000000034710335100774016034 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain cd $BUILD/$1* make CROSS=${TARGET_PREFIX} \ USE_KLIBC=false \ USE_LOG=false \ USE_SELINUX=false \ DEBUG=false \ V=true \ EXTRAS=extras/firmware \ geexbox-0.98.7/packages/udev/config/0000755000175000017500000000000010335100774016250 5ustar aurelaurelgeexbox-0.98.7/packages/udev/config/rules.d/0000755000175000017500000000000010335100774017624 5ustar aurelaurelgeexbox-0.98.7/packages/udev/config/rules.d/10_firmware.rules0000644000175000017500000000013310335100774023011 0ustar aurelaurelACTION=="add", SUBSYSTEM=="firmware", ENV{FIRMWARE}=="*", RUN+="/sbin/firmware_helper" geexbox-0.98.7/packages/udev/config/rules.d/20_alsa.rules0000644000175000017500000000024010335100774022115 0ustar aurelaurelKERNEL=="controlC[0-9]*", NAME="snd/%k" KERNEL=="hwC[D0-9]*", NAME="snd/%k" KERNEL=="pcmC[D0-9cp]*", NAME="snd/%k" KERNEL=="timer", NAME="snd/%k" geexbox-0.98.7/packages/udev/config/rules.d/30_dvb.rules0000644000175000017500000000065210335100774021760 0ustar aurelaurelKERNEL=="dvb*dvr*", NAME="dvb/adapter%n/dvr%n" KERNEL=="dvb*demux*", NAME="dvb/adapter%n/demux%n" KERNEL=="dvb*net*", NAME="dvb/adapter%n/net%n" KERNEL=="dvb*frontend*", NAME="dvb/adapter%n/frontend%n" KERNEL=="dvb*video*", NAME="dvb/adapter%n/video%n" KERNEL=="dvb*audio*", NAME="dvb/adapter%n/audio%n" KERNEL=="dvb*osd*", NAME="dvb/adapter%n/osd%n" KERNEL=="dvb*ca*", NAME="dvb/adapter%n/ca%n" geexbox-0.98.7/packages/udev/config/rules.d/40_lirc.rules0000644000175000017500000000004510335100774022133 0ustar aurelaurelKERNEL=="lirc[0-9]*", SYMLINK="lirc" geexbox-0.98.7/packages/udev/config/rules.d/60_joystick.rules0000644000175000017500000000004710335100774023045 0ustar aurelaurelKERNEL=="js[0-9]*", SYMLINK="input/%k" geexbox-0.98.7/packages/udev/config/rules.d/80_block.rules0000644000175000017500000000211110335100774022274 0ustar aurelaurel# dvds KERNEL=="sr[0-9]*", ACTION=="add", SYMLINK="%k", NAME="cdrom%E", SYMLINK="dvd%e", PROGRAM=="/usr/bin/iscd %N", RESULT="DVD", RUN="/etc/udev/scripts/block_add", OPTIONS="last_rule" KERNEL=="hd[a-z]", ACTION=="add", SYMLINK="%k", NAME="cdrom%E", SYMLINK="dvd%e", SYSFS{removable}=="1", PROGRAM="/usr/bin/iscd %N", RESULT="DVD", RUN="/etc/udev/scripts/block_add", OPTIONS="last_rule" # cdroms KERNEL=="sr[0-9]*", ACTION=="add", SYMLINK="%k", NAME="cdrom%E", RUN="/etc/udev/scripts/block_add" KERNEL=="hd[a-z]", ACTION=="add", SYMLINK="%k", NAME="cdrom%E", SYSFS{removable}=="1", PROGRAM="/bin/cat /proc/ide/%k/media", RESULT=="cdrom", RUN="/etc/udev/scripts/block_add", OPTIONS="last_rule" # disks KERNEL=="[sh]d[a-z]", ACTION=="add", SYMLINK="%k", NAME="disk%E", RUN="/etc/udev/scripts/block_add" KERNEL=="[sh]d[a-z][1-9]*", ACTION=="add", SYMLINK="%k", NAME="%Ppart%n", RUN="/etc/udev/scripts/block_add" # removal KERNEL=="sr[0-9]*", ACTION=="remove", RUN="/etc/udev/scripts/block_remove" KERNEL=="[sh]d[a-z]*", ACTION=="remove", RUN="/etc/udev/scripts/block_remove" geexbox-0.98.7/packages/udev/config/udev.conf0000644000175000017500000000012610335100774020061 0ustar aurelaureludev_root="/dev" udev_db="/dev/.udevdb" udev_rules="/etc/udev/rules.d" udev_log="err" geexbox-0.98.7/packages/udev/install0000755000175000017500000000075010335100774016401 0ustar aurelaurel#!/bin/sh . config/options mkdir -p $INSTALL/sbin cp $BUILD/$1*/udev $INSTALL/sbin cp $BUILD/$1*/udevd $INSTALL/sbin cp $BUILD/$1*/udevsend $INSTALL/sbin cp $BUILD/$1*/udevstart $INSTALL/sbin cp $BUILD/$1*/extras/firmware/firmware_helper $INSTALL/sbin mkdir -p $INSTALL/etc/udev/rules.d cp $PACKAGES/$1/config/udev.conf $INSTALL/etc/udev cp $PACKAGES/$1/config/rules.d/* $INSTALL/etc/udev/rules.d mkdir -p $INSTALL/etc/udev/scripts cp $PACKAGES/$1/scripts/* $INSTALL/etc/udev/scripts geexbox-0.98.7/packages/udev/patches/0000755000175000017500000000000010335100774016432 5ustar aurelaurelgeexbox-0.98.7/packages/udev/patches/20_rules_%E.diff0000644000175000017500000000437710335100774021243 0ustar aurelaureldiff -Naur udev-070.orig/udev_rules.c udev-070/udev_rules.c --- udev-070.orig/udev_rules.c 2005-09-15 02:19:07.000000000 +0300 +++ udev-070/udev_rules.c 2005-09-28 13:45:09.000000000 +0300 @@ -288,12 +288,11 @@ /* finds the lowest positive device number such that N isn't present in the udevdb * if doesn't exist, 0 is returned, N otherwise */ -static int find_free_number(const char *base, const char *devpath) +static int find_free_number(const char *base, const char *devpath, int num) { char db_devpath[PATH_SIZE]; char filename[PATH_SIZE]; struct udevice udev_db; - int num = 0; /* check if the device already owns a matching name */ udev_init_device(&udev_db, NULL, NULL, NULL); @@ -318,7 +317,10 @@ } /* just search the database again and again until a free name is found */ - strlcpy(filename, base, sizeof(filename)); + if (num) + snprintf(filename, sizeof(filename), "%s%d", base, num); + else + strlcpy(filename, base, sizeof(filename)); while (1) { dbg("look for existing node '%s'", filename); if (udev_db_lookup_name(filename, db_devpath, sizeof(db_devpath)) != 0) { @@ -420,6 +422,7 @@ SUBST_RESULT, SUBST_SYSFS, SUBST_ENUM, + SUBST_ENUM_ONE, SUBST_PARENT, SUBST_TEMP_NODE, SUBST_ROOT, @@ -440,6 +443,7 @@ { .name = "result", .fmt = 'c', .type = SUBST_RESULT }, { .name = "sysfs", .fmt = 's', .type = SUBST_SYSFS }, { .name = "enum", .fmt = 'e', .type = SUBST_ENUM }, + { .name = "enum1", .fmt = 'E', .type = SUBST_ENUM_ONE }, { .name = "parent", .fmt = 'P', .type = SUBST_PARENT }, { .name = "tempnode", .fmt = 'N', .type = SUBST_TEMP_NODE }, { .name = "root", .fmt = 'r', .type = SUBST_ROOT }, @@ -596,12 +600,17 @@ dbg("substitute sysfs value '%s'", temp2); break; case SUBST_ENUM: - next_free_number = find_free_number(string, udev->devpath); + next_free_number = find_free_number(string, udev->devpath, 0); if (next_free_number > 0) { sprintf(temp2, "%d", next_free_number); strlcat(string, temp2, maxsize); } break; + case SUBST_ENUM_ONE: + next_free_number = find_free_number(string, udev->devpath, 1); + sprintf(temp2, "%d", next_free_number); + strlcat(string, temp2, maxsize); + break; case SUBST_PARENT: if (!class_dev) break; geexbox-0.98.7/packages/udev/scripts/0000755000175000017500000000000010335100774016472 5ustar aurelaurelgeexbox-0.98.7/packages/udev/scripts/block_add0000755000175000017500000000251610335100774020326 0ustar aurelaurel#!/bin/sh MNTLOCK=/tmp/mntlock DEV=${DEVNAME##*/} KERN=${DEVPATH##*/} [ -n "`ls -d /sys$DEVPATH/$KERN* 2>/dev/null`" ] && exit 0 PART_NUM=${DEVNAME##*part} [ "$PART_NUM" != "$DEVNAME" ] && PART=" part $PART_NUM" if [ -n "$PART" ]; then DEVPATH=${DEVPATH%/*} [ -z "`ls -d /sys$DEVPATH/${KERN%[1-9]}* | grep -v $KERN\$`" ] && PART= fi VENDOR=`cat /sys$DEVPATH/device/vendor 2>/dev/null` MODEL=`cat /sys$DEVPATH/device/model 2>/dev/null` MNT=`echo $VENDOR$MODEL | sed s/\ *$// | sed 's|/|\\\\|g'`$PART if [ "`cat /sys$DEVPATH/removable`" = 1 \ -o -n "`echo $PHYSDEVPATH | grep -e usb -e ieee1394`" ]; then REMOVABLE=true fi if [ "$REMOVABLE" != true -o "$MNT" = "$PART" ]; then case $DEV in cdrom*) MNT="cdrom ${DEV#cdrom}" ;; disk*) DEV=${DEV%part*} MNT="disk ${DEV#disk}$PART" ;; esac fi flock -e $MNTLOCK MNT="/mnt/$MNT" if [ -d "$MNT" ]; then NUM=2 while [ -d "$MNT ($NUM)" ]; do NUM=$(($NUM+1)) done MNT="$MNT ($NUM)" fi mkdir "$MNT" flock -u case $DEV in cdrom*) mount -o ro $DEVNAME "$MNT" OK=1 ;; disk*) hdparm -c1 -S24 $DEVNAME >/dev/null if ! grep -q installator /proc/cmdline; then mount -o ro $DEVNAME "$MNT" && OK=1 fi ;; esac flock -e $MNTLOCK if [ "$OK" = 1 ]; then echo "$DEVNAME $MNT" >> /etc/mnts else rmdir "$MNT" fi flock -u geexbox-0.98.7/packages/udev/scripts/block_remove0000755000175000017500000000051010335100774021063 0ustar aurelaurel#!/bin/sh MNTLOCK=/tmp/mntlock flock -e $MNTLOCK MNT=`sed -n "s|^$DEVNAME \(.*\)|\1|p" /etc/mnts` if [ -n "$MNT" ]; then sed -i -n "\|^$DEVNAME.*|T;p" /etc/mnts flock -u ( umount -l "$MNT" while [ "$?" = 16 ]; do # umount returned EBUSY sleep 1 umount -l "$MNT" done rmdir "$MNT" )& else flock -u fi geexbox-0.98.7/packages/udev/unpack0000755000175000017500000000021110335100774016204 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain sed -i "s%/lib/firmware%/firmwares%" $BUILD/$1*/extras/firmware/firmware_helper.c geexbox-0.98.7/packages/udev/url0000644000175000017500000000011110335100774015521 0ustar aurelaurelhttp://ftp.ch.kernel.org/pub/linux/utils/kernel/hotplug/udev-071.tar.bz2 geexbox-0.98.7/packages/util-linux/0000755000175000017500000000000010335100774016152 5ustar aurelaurelgeexbox-0.98.7/packages/util-linux/build0000755000175000017500000000022210335100774017173 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain $SCRIPTS/build ncurses cd $BUILD/$1* ./configure make -C fdisk sfdisk make -C fdisk cfdisk geexbox-0.98.7/packages/util-linux/install0000755000175000017500000000017310335100774017547 0ustar aurelaurel#!/bin/sh . config/options mkdir -p $INSTALL/usr/bin cp $BUILD/$1*/fdisk/cfdisk $BUILD/$1*/fdisk/sfdisk $INSTALL/usr/bin geexbox-0.98.7/packages/util-linux/unpack0000755000175000017500000000015610335100774017363 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain sed -i "s/^CPU=.*/CPU=$TARGET_CPU/" $BUILD/$1*/MCONFIG geexbox-0.98.7/packages/util-linux/url0000644000175000017500000000011410335100774016673 0ustar aurelaurelftp://ftp.de.kernel.org/pub/linux/utils/util-linux/util-linux-2.12r.tar.bz2 geexbox-0.98.7/packages/webgui/0000755000175000017500000000000010335100774015322 5ustar aurelaurelgeexbox-0.98.7/packages/webgui/config/0000755000175000017500000000000010335100774016567 5ustar aurelaurelgeexbox-0.98.7/packages/webgui/config/cgi-bin/0000755000175000017500000000000010335100774020077 5ustar aurelaurelgeexbox-0.98.7/packages/webgui/config/cgi-bin/index.cgi0000755000175000017500000000174510335100774021704 0ustar aurelaurel#!/bin/sh PATH=/bin:/usr/bin UPTIME=`cat /proc/uptime | cut -f1 -d.` UP_DAYS=$(($UPTIME/24/3600)) UP_HOURS=$(($(($UPTIME-$(($UP_DAYS*24*3600))))/3600)) UP_MIN=$(($(($UPTIME-$(($UP_DAYS*24*3600))-$(($UP_HOURS*3600))))/60)) UP_SEC=$(($UPTIME-$(($UP_DAYS*24*3600))-$(($UP_HOURS*3600))-$(($UP_MIN*60)))) cat < GeeXboX Management Center
GeeXboX Logo

GeeXboX Management Center


Uptime : $UP_DAYS days $UP_HOURS hours $UP_MIN minutes $UP_SEC secondes.
EOF geexbox-0.98.7/packages/webgui/config/img/0000755000175000017500000000000010335100774017343 5ustar aurelaurelgeexbox-0.98.7/packages/webgui/config/img/icon.png0000644000175000017500000000140210335100774020776 0ustar aurelaurelPNG  IHDRaIDATxuHu_<).s#< e7!DX9אp럲Qd`T<-gsĶh2ijj"Xla&ѻ0>jE_P_w=k[2Rٳ6Gp|S^v@b}Q̸aW!'ֺICqSs |~o6B4yq\>11D~>"_-222"e.,D/Gv1_|ʱlJ 벸(=ݝ(MȦ\/7i:*5/H$D" Z5^J)RwyK0x5| @DZ{^RAR55:Ƣ)l6d0ZN#%U~NYiLNyHWRRR;Ѓj9n#L[X6/8P,JHV)I_%ŚFZ*fۑ'T_`IENDB`geexbox-0.98.7/packages/webgui/config/img/logo.jpeg0000644000175000017500000003114110335100774021152 0ustar aurelaurelJFIFHHC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222"Q !1AQa"2qRU#367BSbst45TVrCu$ED11!AQa2"#4qBC ?EEbykn!OK{Q+\V⾁B$ֵ[:;:2hR:j&w] PGZWkeCEy$*MW도K<HJamc4MS~r [֥?;*/6%Ϡ- I?M)6hZKR9'_q3gmWq+K2|, >wGKAB( (k]!c{棤GW<ϪYس8PǹiEߐu)6JudwP ܣ7g):>\v\?O!jXv!!źY;u+N;c,kcJ{uJ4 YJ k&9uc\EsZڧ 6-4Ƽ(/ϵG/ϵOO`Ƽ(/ϵG/ϵOO`L )b:%H$ LckKnNO 4\Άq[c֨6DmFZvca5e>ˡMxyEx">0k€ExNi'Y.!'BhTW# :fH(tW# :fH(tW@QySOI=Vɱ)ԴIZtV%\"BmT ۵~m=cX pjC'5ubsS'f.C" X᧾P EvU hh|%\ֹ:+>XO`( eV&uHqN˷'Ҵyiv9Џ?]Nz,Ka6*Q Z-jҟ[RW'Ӓrz9)xP~5|9cGT>jǧSΘ-.nq`Ί+54hw'kYObbD1O rpjۈXSz3EPh V53Ex[BG# l]h EEPC&Ǜi=@[.s"ޝ\%iYe1q@L}=aHԟ̜\R"%*ӂAaYp—'G2EO\-V cjӋ?]9.kff>=OkdlĄXuWK]{gP$Ջcĩa]O86=~6{A.ZRKP+e:lo-j:(v.7|l;l[84tqγk,sФ짩%~Oǻ%ghe?Ev};1/=G%ghW]p%y\テw{H~zXehuko:ŭ;=}եvF-a.]k-G h'e?Ev};1/=G%ghe,^w{b_{&𶧍\f'!n `h?IϋOR/jKDreGuJ_יyI[bn#m|fouʑExj/mrz%\{:U[ԞKʮG=VLbb!"BzITI:z$EJ$I'5` (##SShfB.[+]ꞯPn ˴=.2s:~ Z5ЏgR<:z h4l"IBS-{T( K[m՝6J e>ʯ! #N :W $}:yH]W庮8`bY]ڧ4d@U3&X*4%ɐ7W!ꠞ:mـ>3J_ygUfԎUI5%nl HQLټ(MInz-( *mz0iy\u iNq%oPi=##&m]Piy3VB:tr:N=G櫋U?cj{!~q:3GsúROI_6|U,n܅}\z.lxHIHCQӸԝ8 HORU*~ŻSi~l;":wz"!suGZXI=OQ@}cF~din B5$)L$dTڔ5fOUuv95zS@ʑgxykPvKRֲM{)> O55Iݟ#nb$55҄iVƀ'0|vidQdܠ|U}u>ٶs?0j0ЊSЃPu{ ̹lA.[IR֣Uuʥ*5)SjSȺ{O^Ig9mTͱQT:P 6G`11@ZwAc[(~uR,?x3d#g1v)-J~+LykB w *E1yecY$8׭G[.˭UbذJd!<N)JZԵJ:y-jZTJԓR\_e8OE 2[N5U'qA+r4tOɯyepnJ#FG^dKf6EJKN6`붪U-$rY+$7̱wY-HL*O' QEd<p4WT}krK.\#LfnZ6BZA^NG[%'jΕL%.BZ [O쉿_&]U-\oQ#S>S]wꤍvkEƕ![e@6??9(V{m~蟜 zAg )`Iy{ziP*(wO]h T+U$˟_4\q ']5ɱ9* IO][R>jȲLZ!r8'ގTzht?_ x2\~ IJTP:yzqju8J{I5?/Wov@pwWMzޏWAzn"N^U9dDf#:OW1F]6:!.HZ8D7;)q5WSgɠ/h&Q[JNvT̆Bנ; ].{ଓͽ8iִ=KZ(J#䨶ʧ Ц5>jxx/m1v.sަ6 jO˥*pǐ:D^(vQES=bd[iPVýi#IB A*BʨWU!wyoN;5>P* HSqKs$::%$v.~ ^ZN,#{S*$^x%6q-/YqxwU%2!rW?d+U(mtw?|QTc {6Y[pZo׺}v.+S1n!!ĝ9.ZM-8Vu[ojD bV{<3g-2mA;zUbOCI>KN%nHQEP-l>slK(1vWwS(FV%6t)X;AGx>cVUV$Ĭd/BCOKlC ?a9bZd eP=[GP{DDg7S U'NB#J zT9n:a [۩x'Mu$ 9Kcδ>uUOݸˈ*)Lu 4n}5l]dnyʮlyIWIƸ6\ 1P]R'eZm;4I˻Bi.#@Og[V/G( Km-2pywƿ(^?~?}uj1VB7ODm~蟜[%6/E EhmُoSl&iS'ɌY^ }gyu[myAI5?k -I)?ӓfywƿ+(j(34r]SKHR)tHyo<uR3Sg`>]CkYMI]qz<$u=尮f`+HWS|ѧ[m+^l0^!@ YzFa_|/ǝս9S\Љ)%*)P!@AT$=:OMJy8>%*)P!@AVfvOg6xpɇtyFe5`Jzlf_W }G_L*lK0c Dm+Ry V}bvw魉D{ ¶%%_vcj ³$A%O @uE&*=%R*>*}[j4VzXGbxn/Π#eG|=)c8Իjwԝuc4Qs&kӱ欦7*SaȷMzoP! Ie/0\mCTPE}jY;듭7$zueG-iW.*IcGWq'RyUN'S_GzKyV:k:_:voUT_}( vmhcT2RP݌9,)m(PZA3LZnl][zͷF3%-q"O\Q\{XDBʳ}e\JN>uɩ-ٳ"ANЕ'^ Eqowr2,7Ugʼ+t]8:Ͽ'b* Sy?"+?WWAI_ǕꯜU_ǕꯜUB( (+ pʭ)q4bC9i'bZ*mY&'JES I)=i֒[&%enh4G1!%a N{+Sc F:Z5$T}MkF[8Զk襮)piMRW\k2"&Rx.:#@kj͌:R}bTP~5$DtE{®7Xp?{qTZR747"! a[Ky.$p﮶=o+H)l$ΣMyz|D{Oɹ*$HJP@)#B:b諌6ɶH^#ʱխ>['aLeGu%+B ٮ[-X#q <=of%b; bZ|{aNqLVuq[^_Kju($t |@D; є't#\Aj[v_Y u,)CnJx]}=۷ 5JR Z(,0l~[NDʰlJ'mk7@+E96N2e.}ښmخ6n&A qԙuVa#u8ⵒuMy>MZh-.}ښS@$mB~ֻlvcD1\*5fC'y%CT,~I!3 AN\Z:QV[\o5{EZ˟_՗>M%~Nmk诮3M>{)hٝMJS.6lqMvTX?f4itv[Q$([SUqɭb3N@Si P `9r5Z땻,L7:4*q [QCNU޵ĵSMvE>{S]xcb"ScB:W*|Y+&8}ζEg\o4h*kO!^evu['Bӕ81V?8%:{#=*bɒ4BOdVFKȬj>t6*yy7wVo8u8wTa)g2kNJ~*ilnu̻SzO@Os ٜMMR5nB8t=rtW*b|ҋwkvp6d,tPMI@W-h* ҷ ‚ WŽ|iC)+-9!kuTOSO ?"AwSܰl-LO40}"Sk< wvPxj0a$uj:Lx*qE!)}; r*#Aԇ>O?+ ^rU9\H+)-6ں5ó\]P^Uد&56odfr2 w ξkIV kfvFuI&(0A A]T gK@O#S( t؞Eg$DV-Tyݞf%]_zq:|-V1Oڣl9?jMV1Oڠ`98Z~Z( 6cGُs:~Z( 6cGُs:~Z( .bNp|t$7AشP[l9?j1<~Q@Uot>޺t#֞cx1KjP$ENt)e-(PZ~6wcl[NdʕH|*EJ҄!HJG b ih3ET(( (((( (((( (((( (((( (((( (((( (geexbox-0.98.7/packages/webgui/config/index.html0000644000175000017500000000115410335100774020565 0ustar aurelaurel GeeXboX Management Center

If you are not automatically redirected to the GeeXboX homepage, click here.

geexbox-0.98.7/packages/webgui/install0000755000175000017500000000040510335100774016715 0ustar aurelaurel#!/bin/sh . config/options mkdir -p $INSTALL/var/www/img mkdir -p $INSTALL/var/www/cgi-bin cp -f $PACKAGES/$1/config/*.html $INSTALL/var/www cp -f $PACKAGES/$1/config/img/* $INSTALL/var/www/img cp -f $PACKAGES/$1/config/cgi-bin/*.cgi $INSTALL/var/www/cgi-bin geexbox-0.98.7/packages/wireless_tools/0000755000175000017500000000000010335100774017115 5ustar aurelaurelgeexbox-0.98.7/packages/wireless_tools/build0000755000175000017500000000035210335100774020142 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain $SCRIPTS/build linux make -C $BUILD/$1* \ PREFIX=/usr \ CC=$CC \ AR=$AR \ RANLIB=$RANLIB \ CFLAGS="$CFLAGS -I." \ BUILD_STATIC="yes" \ iwconfig geexbox-0.98.7/packages/wireless_tools/install0000755000175000017500000000013710335100774020512 0ustar aurelaurel#!/bin/sh . config/options mkdir -p $INSTALL/usr/bin cp $BUILD/$1*/iwconfig $INSTALL/usr/bin geexbox-0.98.7/packages/wireless_tools/url0000644000175000017500000000012410335100774017637 0ustar aurelaurelhttp://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/wireless_tools.28.pre10.tar.gz geexbox-0.98.7/packages/yaboot/0000755000175000017500000000000010335100774015335 5ustar aurelaurelgeexbox-0.98.7/packages/yaboot/arch0000644000175000017500000000000410335100774016167 0ustar aurelaurelppc geexbox-0.98.7/packages/yaboot/build0000755000175000017500000000015710335100774016365 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain make -C $BUILD/$1* CROSS=$TARGET_NAME- \ all strip geexbox-0.98.7/packages/yaboot/config/0000755000175000017500000000000010335100774016602 5ustar aurelaurelgeexbox-0.98.7/packages/yaboot/config/Config0000644000175000017500000000017010335100774017730 0ustar aurelaurelCONFIG_COLOR_TEXT := y CONFIG_SET_COLORMAP := y USE_MD5_PASSWORDS := n CONFIG_FS_XFS := n CONFIG_FS_REISERFS := n geexbox-0.98.7/packages/yaboot/config/boot.msg0000644000175000017500000000010610335100774020252 0ustar aurelaurelWelcome to GeeXboX release-nr (C) 2002-2005 by A. Jacobs and B. Zores geexbox-0.98.7/packages/yaboot/config/ofboot.b0000644000175000017500000000035210335100774020235 0ustar aurelaurel MacRISC MacRISC3 MacRISC4 GeeXboX PPC bootloader " screen" output load-base release-load-area boot cd:,\GEEXBOX\boot\yaboot geexbox-0.98.7/packages/yaboot/config/yaboot.conf0000644000175000017500000000057210335100774020752 0ustar aurelaureldevice=cd: default=geexbox timeout=20 message=/GEEXBOX/boot/boot.msg image=/GEEXBOX/boot/vmlinux label=geexbox append="root=/dev/ram0 rw init=linuxrc splash=silent boot=cdrom" read-only initrd=/GEEXBOX/boot/initrd.gz image=/GEEXBOX/boot/vmlinux label=debug append="root=/dev/ram0 rw init=linuxrc splash=0 boot=cdrom debugging" read-only initrd=/GEEXBOX/boot/initrd.gz geexbox-0.98.7/packages/yaboot/install0000755000175000017500000000136610335100774016737 0ustar aurelaurel#!/bin/sh . config/options mkdir -p $INSTALL/boot/netboot cp $BUILD/$1*/second/yaboot $INSTALL/boot cp $PACKAGES/$1/config/yaboot.conf $INSTALL/boot cp $PACKAGES/$1/config/ofboot.b $INSTALL/boot sed s%release-nr%$GEEXBOX_VERSION% $PACKAGES/$1/config/boot.msg > $INSTALL/boot/boot.msg if [ -n "$BOOT_DEFAULT" ]; then sed -i "s/default=.*/default=$BOOT_DEFAULT/" $INSTALL/boot/yaboot.conf fi sed 's/^device=.*/device=enet:/' $INSTALL/boot/yaboot.conf > $INSTALL/boot/netboot/yaboot.conf sed -i 's%/GEEXBOX/boot/%GEEXBOX.ppc/boot/%g' $INSTALL/boot/netboot/yaboot.conf sed -i 's/boot=[^ \"]*/boot=nfs/' $INSTALL/boot/netboot/yaboot.conf sed -i "s%\(.*append.*\)\"$%\1 nfsroot=$DEFAULT_NFS_SERVER:/tftpboot/GEEXBOX.ppc\"%" $INSTALL/boot/netboot/yaboot.conf geexbox-0.98.7/packages/yaboot/patches/0000755000175000017500000000000010335100774016764 5ustar aurelaurelgeexbox-0.98.7/packages/yaboot/patches/10_gcc-fix.diff0000644000175000017500000000045710335100774021444 0ustar aurelaurel--- yaboot-1.3.13.orig/lib/strstr.c 2001-09-20 15:15:31.000000000 +0200 +++ yaboot-1.3.13/lib/strstr.c 2005-02-07 22:56:07.942209152 +0100 @@ -76,7 +76,7 @@ a = *++haystack; if (a == '\0') goto ret0; -shloop: } +shloop:; } while (a != b); jin: a = *++haystack; geexbox-0.98.7/packages/yaboot/patches/20_conf-path.diff0000644000175000017500000000112110335100774021771 0ustar aurelaureldiff -Naur yaboot-1.3.13.orig/second/yaboot.c yaboot-1.3.13/second/yaboot.c --- yaboot-1.3.13.orig/second/yaboot.c 2005-03-24 01:24:15.000000000 +0100 +++ yaboot-1.3.13/second/yaboot.c 2005-03-24 01:34:05.000000000 +0100 @@ -344,8 +344,10 @@ strcpy(conf_path, "/etc/"); else if (path && *path) strcpy(conf_path, path); + else if (strstr(device, "ethernet") || strstr(device, "enet")) + strcpy(conf_path, "GEEXBOX.ppc/boot/netboot/"); else - conf_path[0] = 0; + strcpy(conf_path, "/GEEXBOX/boot/"); strcat(conf_path, CONFIG_FILE_NAME); /* Open it */ geexbox-0.98.7/packages/yaboot/patches/30_crosscompile.diff0000644000175000017500000000312510335100774022623 0ustar aurelaureldiff -Nur yaboot-1.3.13.orig/Makefile yaboot-1.3.13/Makefile --- yaboot-1.3.13.orig/Makefile Tue Apr 12 12:45:56 2005 +++ yaboot-1.3.13/Makefile Tue Apr 12 12:46:49 2005 @@ -28,9 +28,16 @@ # CROSS = +# compilation +CC := $(CROSS)gcc +LD := $(CROSS)ld +AS := $(CROSS)as +OBJCOPY := $(CROSS)objcopy +STRIP := $(CROSS)strip + # The flags for the yaboot binary. # -YBCFLAGS = -Os $(CFLAGS) -nostdinc -Wall -isystem `gcc -print-file-name=include` -fsigned-char +YBCFLAGS = -Os $(CFLAGS) -nostdinc -Wall -isystem `$(CC) -print-file-name=include` -fsigned-char YBCFLAGS += -DVERSION=\"${VERSION}\" #" YBCFLAGS += -DTEXTADDR=$(TEXTADDR) -DDEBUG=$(DEBUG) YBCFLAGS += -DMALLOCADDR=$(MALLOCADDR) -DMALLOCSIZE=$(MALLOCSIZE) @@ -67,7 +74,7 @@ # For compiling userland utils # -UCFLAGS = -Os $(CFLAGS) -Wall -I/usr/include +UCFLAGS = -Os $(CFLAGS) -Wall # For compiling build-tools that run on the host. # @@ -93,12 +100,6 @@ OBJS += second/fs_reiserfs.o endif -# compilation -CC := $(CROSS)gcc -LD := $(CROSS)ld -AS := $(CROSS)as -OBJCOPY := $(CROSS)objcopy - lgcc = `$(CC) -print-libgcc-file-name` all: yaboot addnote mkofboot @@ -172,10 +173,10 @@ release: docs bindist clean strip: all - strip second/yaboot - strip --remove-section=.comment second/yaboot - strip util/addnote - strip --remove-section=.comment --remove-section=.note util/addnote + $(STRIP) second/yaboot + $(STRIP) --remove-section=.comment second/yaboot + $(STRIP) util/addnote + $(STRIP) --remove-section=.comment --remove-section=.note util/addnote install: all strip install -d -o root -g root -m 0755 ${ROOT}/etc/ geexbox-0.98.7/packages/yaboot/unpack0000755000175000017500000000010710335100774016542 0ustar aurelaurel#!/bin/sh . config/options cp $PACKAGES/$1/config/Config $BUILD/$1*/ geexbox-0.98.7/packages/yaboot/url0000644000175000017500000000007610335100774016065 0ustar aurelaurelhttp://penguinppc.org/bootloaders/yaboot/yaboot-1.3.13.tar.gz geexbox-0.98.7/packages/zlib/0000755000175000017500000000000010335100774015000 5ustar aurelaurelgeexbox-0.98.7/packages/zlib/build0000755000175000017500000000032610335100774016026 0ustar aurelaurel#!/bin/sh . config/options $SCRIPTS/build toolchain AR="$AR rc" cd $BUILD/$1* ./configure --prefix=$LIB_PREFIX \ --static make libz.a cp libz.a $LIB_PREFIX/lib cp zlib.h zconf.h $LIB_PREFIX/include geexbox-0.98.7/packages/zlib/patches/0000755000175000017500000000000010335100774016427 5ustar aurelaurelgeexbox-0.98.7/packages/zlib/patches/10_crosscompile.diff0000644000175000017500000000132610335100774022265 0ustar aurelaurel--- zlib-1.2.2.orig/configure Wed Nov 17 15:56:53 2004 +++ zlib-1.2.2/configure Wed Nov 17 15:57:37 2004 @@ -75,7 +75,7 @@ CC="$cc" SFLAGS=${CFLAGS-"-fPIC -O3"} CFLAGS="$cflags" - case `(uname -s || echo unknown) 2>/dev/null` in + case `echo Linux` in Linux | linux | GNU | GNU/*) LDSHARED=${LDSHARED-"$cc -shared -Wl,-soname,libz.so.1"};; CYGWIN* | Cygwin* | cygwin* | OS/2* ) EXE='.exe';; @@ -95,7 +95,7 @@ else # find system name and corresponding cc options CC=${CC-cc} - case `(uname -sr || echo unknown) 2>/dev/null` in + case `echo Linux` in HP-UX*) SFLAGS=${CFLAGS-"-O +z"} CFLAGS=${CFLAGS-"-O"} # LDSHARED=${LDSHARED-"ld -b +vnocompatwarnings"} geexbox-0.98.7/packages/zlib/url0000644000175000017500000000004710335100774015526 0ustar aurelaurelhttp://www.zlib.net/zlib-1.2.3.tar.bz2 geexbox-0.98.7/debian/0000755000175000017500000000000010335100767013506 5ustar aurelaurelgeexbox-0.98.7/debian/README.Debian0000644000175000017500000000033710335100767015552 0ustar aurelaurelgeexbox-generator for Debian ---------------------------- You will find the package w32codecs to ftp://ftp.nerim.net/debian-marillat/ -- Alexis Saettler (asbin ;-]) , Fri, 23 Jul 2004 12:28:51 +0200 geexbox-0.98.7/debian/changelog0000644000175000017500000000263710335100767015370 0ustar aurelaurelgeexbox-generator (0.98.6-1) unstable; urgency=low * new upstream release * update debconf's postinst/config files : now use SUB_CHARSET option -- Alexis Saettler (asbin ;-]) Thu, 18 Aug 2005 01:43:30 +0200 geexbox-generator (0.98.5-1) unstable; urgency=low * new upstream release -- Alexis Saettler (asbin ;-]) Fri, 31 Dec 2004 10:30:05 +0100 geexbox-generator (0.98-1) unstable; urgency=low * new release -- Alexis Saettler (asbin ;-]) Wed, 18 Aug 2004 10:33:05 +0200 geexbox-generator (0.97+arch-patch-65-2) unstable; urgency=low * using new version of generator.sh file, which not need any patch -- Alexis Saettler (asbin ;-]) Tue, 3 Aug 2004 00:07:21 +0200 geexbox-generator (0.97+arch-patch-65-1) unstable; urgency=low * Modify geexbox-generator executable * debian/rule now build the generator only once -- Alexis Saettler (asbin ;-]) Mon, 2 Aug 2004 15:14:52 +0200 geexbox-generator (0.97+arch-patch-61-1) unstable; urgency=low * Include debian directory into the GeeXboX sources * add RECEIVER in conffile, as it's now needed -- Alexis Saettler (asbin ;-]) Wed, 28 Jul 2004 18:27:59 +0200 geexbox-generator (0.97-1) unstable; urgency=low * Initial Release. -- Alexis Saettler (asbin ;-]) Fri, 23 Jul 2004 12:28:51 +0200 geexbox-0.98.7/debian/compat0000644000175000017500000000000210335100767014704 0ustar aurelaurel4 geexbox-0.98.7/debian/control0000644000175000017500000000147510335100767015120 0ustar aurelaurelSource: geexbox-generator Section: devel Priority: optional Maintainer: Alexis Saettler (asbin ;-]) Build-Depends: debhelper (>= 4.0.0), cdbs, docbook-to-man, build-essential, nasm, bzip2, gzip, wget Standards-Version: 3.6.1 Package: geexbox-generator Architecture: all Depends: debconf, mkisofs Recommends: w32codecs Description: iso generator for GeeXboX GeeXboX is an awesome standalone media player. GeeXboX is a full operating system, running under Linux and based on the excellent MPlayer. No need of hard drive, you just have to put the GeeXboX bootable CD into the CD-Drive of any pentium-class computer to boot it. . With this package, you can create a new iso file of GeeXboX, with your language and your remote, to work with your computer. . More informations on http://www.geexbox.org geexbox-0.98.7/debian/copyright0000644000175000017500000000211510335100767015440 0ustar aurelaurelThis package was debianized by Alexis Saettler (asbin ;-]) on Fri, 23 Jul 2004 12:28:51 +0200. It was downloaded from http://www.geexbox.org/releases/0.97/geexbox-generator-0.97.tar.gz Upstream Authors: Aurelien Jacobs and Benjamin Zores Copyright: This package 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; version 2 dated June, 1991. This package 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 package; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. On Debian systems, the complete text of the GNU General Public License can be found in `/usr/share/common-licenses/GPL'. geexbox-0.98.7/debian/dirs0000644000175000017500000000004410335100767014370 0ustar aurelaurelusr/bin usr/share/geexbox-generator geexbox-0.98.7/debian/geexbox-generator.config0000644000175000017500000000253210335100767020324 0ustar aurelaurel#!/bin/sh CONFIGFILE=/etc/geexbox-generator.conf GEEXBOX_GENERATOR=/usr/share/geexbox-generator set -e . /usr/share/debconf/confmodule . $GEEXBOX_GENERATOR/i18n/lang.conf if [ -e $CONFIGFILE ]; then . $CONFIGFILE || true eval tmp_lang=\$${LANG}_name db_set geexbox-generator/lang $tmp_lang db_set geexbox-generator/charset $SUB_CHARSET db_set geexbox-generator/remote $REMOTE db_set geexbox-generator/receiver $RECEIVER fi first=1 LANGU="" for l in $LANGUAGES; do eval tmp_lang=\$${l}_name if [ $first = 1 ]; then first=0 else LANGU=$LANGU"," fi LANGU=$LANGU" $tmp_lang" done db_subst geexbox-generator/lang lang $LANGU || true SUB_CHARSET="DEFAULT, "`echo $LANGUAGES $CHARSETS | sed -e "s/ /, /g"` db_subst geexbox-generator/charset charset $SUB_CHARSET || true REMOTE=`echo $GEEXBOX_GENERATOR/lirc/lircrc* | sed -e "s%$GEEXBOX_GENERATOR/lirc/lircrc_%%g" -e "s/ /, /g"` db_subst geexbox-generator/remote remote $REMOTE || true RECEIVER=`ls $GEEXBOX_GENERATOR/lirc/lircd_* | grep -v ".conf" | sed -e "s%$GEEXBOX_GENERATOR/lirc/lircd_%%g"` db_subst geexbox-generator/receiver receiver `echo $RECEIVER | sed -e "s/ /, /g"` || true db_input medium geexbox-generator/lang || true db_input medium geexbox-generator/charset || true db_input medium geexbox-generator/remote || true db_input medium geexbox-generator/receiver || true db_go || true geexbox-0.98.7/debian/geexbox-generator.fr.sgml0000644000175000017500000000643210335100767020432 0ustar aurelaurelSaettler"> Alexis"> juillet 23, 2004"> 1"> alexis@saettler.org"> GEEXBOX-GENERATOR"> Debian"> GNU"> GPL"> ]>
&dhemail;
&dhfirstname; &dhsurname; 2004 &dhusername; &dhdate;
&dhucpackage; &dhsection; &dhpackage; gnrateur d'iso pour GeeXboX &dhpackage; DESCRIPTION Ce programme permet de gnrer un fichier iso, qui pourra tre grav par la suite, dans lequel est install la GeeXboX. GeeXboX est un formidable lecteur multimedia autonome. GeeXboX est un systme d'exploitation complet, bas sur un noyau Linux et sur l'excellent lecteur multimdia MPlayer. Pas besoin de disque dur, vous n'avez qu' insrer le CD auto-amorable de la GeeXboX dans le lecteur de n'importe quel PC de type Pentium et suprieur pour l'utiliser. OPTIONS , Affiche un rsum de commande. Crer l'iso dans le fichier choisit. , Ajoute les codecs w32codecs. Ncessite le package w32codecs. VOIR AUSSI http://www.geexbox.org AUTEUR Ce manuel a t crit par &dhusername; &dhemail; pour la distribution &debian; car le programme original n'en a pas (mais peut tre rutilis).
geexbox-0.98.7/debian/geexbox-generator.postinst0000755000175000017500000000155210335100767020746 0ustar aurelaurel#!/bin/sh CONFIGFILE=/etc/geexbox-generator.conf GEEXBOX_GENERATOR=/usr/share/geexbox-generator set -e . /usr/share/debconf/confmodule . $GEEXBOX_GENERATOR/i18n/lang.conf . $GEEXBOX_GENERATOR/i18n/lang.funcs if [ ! -e $CONFIGFILE ]; then cp $GEEXBOX_GENERATOR/geexbox-generator.conf.template $CONFIGFILE; fi db_get geexbox-generator/lang LANG=$(simplifylang "$RET") db_get geexbox-generator/charset SUB_CHARSET="$RET" if [ "$SUB_CHARSET" = "DEFAULT" ]; then SUB_CHARSET="" fi db_get geexbox-generator/remote REMOTE="$RET" db_get geexbox-generator/receiver RECEIVER="$RET" cp -a -f $CONFIGFILE $CONFIGFILE.tmp sed -e "s/^ *LANG=.*/LANG=\"$LANG\"/" \ -e "s/^ *SUB_CHARSET=.*/SUB_CHARSET=\"$SUB_CHARSET\"/" \ -e "s/^ *REMOTE=.*/REMOTE=\"$REMOTE\"/" \ -e "s/^ *RECEIVER=.*/RECEIVER=\"$RECEIVER\"/" \ $CONFIGFILE > $CONFIGFILE.tmp mv -f $CONFIGFILE.tmp $CONFIGFILE geexbox-0.98.7/debian/geexbox-generator.sgml0000644000175000017500000000630710335100767020025 0ustar aurelaurelSaettler"> Alexis"> juillet 23, 2004"> 1"> alexis@saettler.org"> GEEXBOX-GENERATOR"> Debian"> GNU"> GPL"> ]>
&dhemail;
&dhfirstname; &dhsurname; 2004 &dhusername; &dhdate;
&dhucpackage; &dhsection; &dhpackage; iso generator for GeeXboX &dhpackage; DESCRIPTION This software can create an iso file, which has to be burn, to produce a GeeXboX system. GeeXboX is an awesome standalone media player. GeeXboX is a full operating system, running under Linux and based on the excellent MPlayer. No need of hard drive, you just have to put the GeeXboX bootable CD into the CD-Drive of any pentium-class computer to boot it. OPTIONS Show summary of options. Set the output file name to file.iso Add the w32 codecs to the iso. Need package w32codecs. SEE ALSO http://www.geexbox.org AUTHOR This manual page was written by &dhusername; &dhemail; for the &debian; distribution because the original program does not have a manual page (but may be used by others).
geexbox-0.98.7/debian/geexbox-generator.templates0000644000175000017500000000244610335100767021061 0ustar aurelaurelTemplate: geexbox-generator/lang Type: select Choices: ${lang} Default: English Description: Language to use Set the language the geexbox-generator will use to build the iso Description-fr.ISO-8859-15: Langue utiliser Dfini le langage utiliser pour gnrer l'iso Template: geexbox-generator/charset Type: select Choices: ${charset} Default: DEFAULT Description: Subtitle charset to use Set the subtitle charset the geexbox-generator will use to build the iso Default is to use charset defined by then language Description-fr.ISO-8859-15: Codage utiliser pour les sous-titres Dfini le codage utiliser pour les sous-titres pour gnrer l'iso Par dfaut, utilise le codage dfini par la langue Template: geexbox-generator/remote Type: select Choices: ${remote} Default: atiusb Description: Remote to use Set the remote the geexbox-generator will use to build the iso Description-fr.ISO-8859-15: Tlcommande utiliser Dfini la tlcommande utiliser pour gnrer l'iso Template: geexbox-generator/receiver Type: select Choices: ${receiver} Default: atiusb Description: Remote receiver to use Set the remote receiver the geexbox-generator will use to build the iso Description-fr.ISO-8859-15: Rcpteur de tlcommande utiliser Dfini le rcpteur de tlcommande utiliser pour gnrer l'iso geexbox-0.98.7/debian/rules0000755000175000017500000000261410335100767014571 0ustar aurelaurel#!/usr/bin/make -f # debian/rules file, using cdbs # cdbs support include /usr/share/cdbs/1/rules/debhelper.mk #include /usr/share/cdbs/1/rules/simple-patchsys.mk MANPAGES:=$(patsubst %.sgml,%.1,$(wildcard debian/*.sgml)) DEB_INSTALL_MANPAGES_geexbox-generator:=$(MANPAGES) DEB_INSTALL_DOCS_geexbox-generator:=$(wildcard DOCS/*.txt) GENERATOR_NAME:=$(shell source config/options; echo $$GENERATOR_NAME;) GENERATOR:=generator GENERATOR_CONF:=debian/geexbox-generator.conf build/geexbox-generator:: $(MANPAGES) $(GENERATOR_CONF) stamp-build stamp-build: INSTALL=$(GENERATOR_NAME)/iso/GEEXBOX scripts/gentree generator full touch $@ debian/%.1:: debian/%.sgml /usr/bin/docbook-to-man $< > $@ clean:: -rm -rf stamp-build -rm $(MANPAGES) $(GENERATOR_CONF) -rm -rf $(GENERATOR_NAME) # -$(MAKE) clean $(GENERATOR_CONF):: packages/$(GENERATOR)/scripts/generator.sh sed -n -e"/Menu/,/RECEIVER/p" $< | sed -e"s/LANG=.*$$/LANG=/" -e"s/SUB_CHARSET=.*$$/SUB_CHARSET=/" -e"s/REMOTE=.*$$/REMOTE=/" -e"s/RECEIVER=.*$$/RECEIVER=/" > $@ install/geexbox-generator:: install -m 755 packages/$(GENERATOR)/scripts/generator.sh $(DEB_DESTDIR)usr/bin/geexbox-generator cp -r $(GENERATOR_NAME)/* $(DEB_DESTDIR)usr/share/geexbox-generator/ install -m 644 config/sort VERSION $(DEB_DESTDIR)usr/share/geexbox-generator/ install -m 644 $(GENERATOR_CONF) $(DEB_DESTDIR)usr/share/geexbox-generator/geexbox-generator.conf.template geexbox-0.98.7/sources/0000755000175000017500000000000010335127534013750 5ustar aurelaurelgeexbox-0.98.7/sources/alsa-lib/0000755000175000017500000000000010335106641015430 5ustar aurelaurelgeexbox-0.98.7/sources/alsa-lib/alsa-lib-1.0.10rc3.tar.bz20000644000175000017500000254310010335106656021456 0ustar aurelaurelBZh91AY&SYRa.H!abO4 kwS#ޮwzݐǷe^ͭҌN}{wt5_>@NgZ=N{atאh"7Cls ptvogq *^oھy^wgiUrooUm-KU.n3J{؝ ^;v:1 J}}!wwzw,꺸6wLy z{̑5/p;ݗl$k)һwukڼ7;^n w6{{תTw\4ld5ܳOuír̷w4{(ݴjڝtkt6['P}"'vRS6-ݞx㻮z`t'eW}o+}cz_^t޼{쁻4 Cyc.vvyV,޵t PigOzwOW{o}vu{6g]nm׽wuiW{݌;wx{5k׵;n}kJoUlwkk]]l˽ց;ڽrv{whm4r}m}^d^}z現T>޵[u-`f2^]9/oOvӯᄏ7n;5y[ZTgm237U:yozϫ{Ͼ_M]yf/aw;wEJA훓Awن3ͳ;lJ}]|k}q; {wY}}ym(fݺ*[MnwUh[y}zOo^wϞ{˜L[dd ԐB!ŀbPSR'2hn~OUxvї|f(a@˲@5,Bc8 P @dd({:GrAr@%ɤԨC%A(JR)b§(HVAz&`:FE ?h* b) `") Ed CP2RKj@ES Kvq/ ! #*+p&Jp$J&. dJ`@$FE(" HJ@( &&d( A7r(Qh!`a E5(TLA 23 *BD MG1"!r DY&&rHI*P$.@j*PRBLH"!($A$:4kNDPٔ D% #@%pc.2j@MHJP#Kr!"If1Ͼfb ?j M5LP!)Q#Q|ɤ  I"D%<,( b)TE$[$*@J A,'U4$5LPRQA -,@ D>!y2IA"JhBIt:ĠBXQP\Y!6HSad)adR&:!)`! I$ـ4b"YI(DČAV(*% &$(!!h&]@ɢXD(pd BؘJPP"HI B >*Ưl]t?}ު3NNĥ@?sfLC pF dO!,TzՐ*V\٫'`7LJꎽo/ҚG[fCṬǠG̳w%.xZ7MSoJ9 t<ߗC9o?MH.tz\y1ocsu)ŷK^;x_}\?^tʌF8 jocK52fw#[viI@CW\fff}cQݓzof|>=ݞƈ^JVx9h&h^AHf~Y+gi4.s2F ;!"(S)h%C"5ꢤH rA4MN*'{;^N @vC%d< @-d^LCΊtytCd@2^7g>bFݸ>+݄eBǞkyCEo(4'&#DeN" R11O(f@GGD}5 iB WC;^1&(;ʣYX[C)ki%D@,ciy \Qa1K aFV@?,20^YE 49QP^c, EdyNIn$@¥ٳpf\,bhZ{SQaG{t0 xvbqɐOg `fs"NNk*"Pg(Bq!@*MJҎdl: y rAPfydu+Bgq= nOQ!sD]RUtfLѫr/чՆSQ$Lx=.xana6N5iyVBF@13n4KZ4Pf31*"?kR L19r:&.U*7+"EI(lAyb,ʾb'3 -E 0b`e$/_:184-Y#ߡ@h\Z(|gc=07CL?V^cq95qJJkP}hgxp~.g.?0+N/(.@P`^Ac1)F|ԫ) /X b܁s6ED_XWfcU T`^K2A( !G3 |KC2mIQoƿOqw߆]Aq)0lg{=RK6(k;K4?AE@:=?s8mG0룔g cJoIlIx3?4c:q {^tE#h;*'1 ӼmLc2 c]F lq&"P2p,3@ *l*RT=vP;0wwz7$%!u PH4BPF8twݏɰǻt\}Nwn~iHQ{f07CŒAZ؝%>aZ`pɂhBR57|͏.OwLf"]o3016JxՔh  &/wKzTtjۿ]}+b!, lp&e5h+SۥTb[ VC8r: w1 ǒ.ǰpjOHa>Xfaӌj& ]xXf v3>Q\WQ^EWg '|@ ]m%; UԒUT/iL"rdhMX˿;)vM4ZA o-:GTah'x(4"f"8;7ՂAOãe\S`B|y|2;{=RmsƏs UپȽn`[z=FD|]{-4;wiiLiy?Z,v?I`4uXf䎶O,- |B?;6H Q]!@C%ϩ(գXm2g ,߷+'/ paiAnL \s t!2BY=X22y aZ*TXGSEZUZDQL3$R%u1'7+ J!9l(NVxj3]1U$G|suyɣ~3y7m秗pg3#ʪ՝(}x.읞se:So$!aun1*QbC(=KBES+הv?ƿ:]D1B:/sq\=W\CsR-Ȑ/ U .ZErN`?ߥk}>0B3,AƜ&ӰS-SbG|eLʕJ*]6%e0$W&XmVzddt+N$RzVW1AZ&FWq4YI'LfJ ?;c An D(ȓv)-ƕǴud b-u@lXU{/Шނ Î@1we9Dʆhǣs˖ 7%!ZU= Mb2_QppUE@)-B=mlv44eܕyNj?"Vic軈2?<7T$l{Q=cStێG=k9$Wlۙ#4Yn-~iǬOR8M:"lm C;rubj#aGPݥ\r. &tt3h5]WsQy&^Kƒ3_Ju+3o6Ę1'ި{*+M &C Q9,pիx"DKٞ9wRmnAs6T3 i3_e) LhAr]kHN ju5hxZgf+HbWٔ q™Jh1XA$-/rf:٥ޔ v(YŌvЬRX8tgaBێaÒ8V Nuglm;<ȴd4[cӼ#zz oSGҚ'YOs [5n<\u(*I( BMDoy) dbV B@sB5T9XǴ=nrv́$^vB˿]:ɰ{QFag6ѻ:ldʬmD #MFdcȏ䜾fmB Z@6,);ZvA?Q\l4 uf;C20C"o.eytM'I-2ԕp__箶4o9;tGK EYמ8FM{OC3 A t28_Csǡp9F< e0XǾǦAMLUb"{'XbBL dOBLF+*Y1eub7:9b/X QTjjp~Ӕu;8c/mz LGQPR+U0@9dC.0*:R'+R> q0b &2ЃB LBy)Ѓ- Bp93 U$j<0|QR̰kͅ(F`a8l *ѻHɆ NC &L2l~ӄ'A4旈`62?93@Ot7XtI ,w>J% ( ȬfBL WOJ{!ǭҌm1fkuz U Pt*/̗ltVv`{zxC%fZeX._ 2_03m0>~OIŲ1J,UU5aUUU^8UU{,2 \h6"XN}a @0U}A%?PXp2edZ0QH"תՇ]둷f |-\{j`>Nnk[iɝˑdRNݳV/uT #ɸծD>2uqO"\^Huβs zX(LBwrH0Nexz6{h#540Ӧjxm p`OHeUюtwY|:򆉱幠4Ɩ 1Y! *<0wpcasN0 oPW1y 5}c)V ,lxJAh`e@ g.`.<5  u5p5!bͨ9"#J oR$0|;`*\*r#t#hl I00rd!H:ؠ2 p'}Tt%l2Xv$P,T91rI`@ANa.SxAe|_?~ 5Wo c_*e)jeVM`mKY=?G)zr@H>ktsCknl|i5FgjO@S]0ci ~z*͵/!;gː1pl5gx&#djrv?98  LmK x?c{S9p3j}WݟeNPIb?@+ɔga_0"?$ab϶r;W @OLа(O?}''Ōs$&\~g$(#bg,6]:ch|afƂ.:go rqᾐ'_~h$՛8|tMAsNªhw.H!zffk+ rlȤ ō|ѭYk$@/腾 .f oy9Y\Pg *$lnF331s s570>o)!Vx4 mф|GFEbfgC0bkزf67 S>nJLDzȬÇ~t`&s|ph2c3I+@(X<ӕ+177ɆxKɔ/9fv!?P^nO&P5LqǤ A=AkbOSՏ$!׏'D:F 7|.wi>-/ouʲx7С35|T94 !zrw+]n/g1Lp-Z]w[C[,ZUL MkX㓌cnё.l;̇vsYo2z:97lowyN\VpH x',dOa@81"/dLy+v+ B$U_z~>)ђ>[On;c5- 2KY$P0VxIbf)]F,[j]XY T Ayb4fw9}Ѩ<#j22,js!}ljU-Mv('ش0#S^%wk)2p;u逽Rvj; ](_&f(9؀mhv8Z3msvb5Z>~4*$q#M*52 O4%E;\Z$M;PɈ4\mL/hF /6pYMlj6d)<\r™I4l9 ˊu2i=ǫ>jj*?tݵv^].wwѱ 0̳gN@1Z1=\BR 'ʂ9IfWD122%ex׫du7Gn5kJS%0$=5⼎2FPjaEl@dGaI#$:n 7<Q,!Zum&kyiފttZei>d;cA7W(}0ط7 V1 D3:KJJ櫰,R;*K) aIsC!71ǑBjKNȣ;|۴:c#,̇nv5Ո;f{oD;rfH0n ~ fž}_ &nw\$JL!'[)< cmu+u(Od#Εp91Pu8{#_idF.,p0?`Ç0;" L^89tg6"Q3OJG[(DՃ0d|϶yGp#1X@j: 2g$cvf⺧߱frg1ɥyeY"3lQ[=h8Tɖ *+xacc0Hؚ@Vq֠Rj4p™9εs9J9esw[V 53+8o~jWb Y?Μ'BMrBS7|3IM.@@";xfZ^x`|(()H*zazHAt9XtC"#h" "H(` H%`"&VVBi")!XJ?"jXPbB! XX̡Q!# PJTJMT,*A 3 ~po| >Qf@C$ 8 (E ‰&Y%D bJ 4DD ,P0X=0@4)C E#HETR@OJP"T.P~"$94KQ|NЍc"z"A (|dvd"m J41eJ 0REBI@IE4J#hHp!@R0B;OO2J?i wHx!Si$}[6.KMEH !;v&.tJtn}4 JC!ȼʎdv)3`}we񑒟,mHy;3c~xDX};@l@b=2AU8|0\}%5`l|] -} 0(FpcauB̳SQ ),{_N@6rI[Pof7C0tnݨX|i 7;pƶ_P}io{`#=v;ħKT!q=8K 4,! a>.PS"'vy +=ػ.˰px0OUQ*5 d:ڴ+Dp0aFIC%(R <x"x@ F ,ZfrX@N D' bO>WR G׈4 JLO(c9}2au@@X~MC)9QjHF8 9RͶ SBc Z2QVpSJ#QP|`Yܖ}q~ \6bfC"cLt7L/܈ EBʲB9'TaA?]oC_`,}1C9&*9ȜP,?r 'o!S0s 讛^_/!?ɏV9 ;BSvO<7BȚmbZ' J;Dx`\n~݃L)S)\.n!zDQE odb~G>'4 xuЅPXW'pLOH6E&Cw;q'7c f^VE,)nkA29Gvkmm†O@`nao$9g "!>!0C$@م'H Cu!:cKɲ( Yp8hH=F&$LACEG3O3󫧽"7WL$w-lēQe9{AX ֱG[ؤz353ߣg|0B,9 w"=^2o⣶I~eQ!Vx'd^̿B<K5/D(gN`KI)0N̰@'̿+\qPNnut*5vKdǟ2at! @,Mp:/}~a9R& v}p0saE{ *S F7ٲZtF+LDYSfr=L {Wq8/{BTH `E+JoC8S$ wSO}_45N"!06 (&2$LBsb $ND.Fx}sd0I ؑ@PkņaA"j&jX:FڊPV`l")*Ίg6|>xGb-h8y$&&JG-i ,]*=hPHMKIb}fy} "e&! Ck29B_1|Ґx !Rj9j;)j7pE)0Q?v> x6 4|< y({{'Y\&hV$x'GY66@Sn{"-ɡƁ5;S+І>(\B)~2J~JR^t&BIwhxcS9w?4 _>szz5"d^/9Qwu8$[!9x9+Qy0cy(J^)$^oΐzdl:Pɟ3NYҮ&iw:tUѦQPq]`NwqcF?V.O+?B90,B"{(!8$3-ou}s_Fy4 /kKd *TNAyF#Cx![Ȋf hxh{*D~?qfu: ޿JTV/X$݇Y5GFt-E+P ߔTzI"Mfqoi%5Eo3ևH4?mu:s}r] pw.'G7 {_CCm!1\?`))Xg!D:B''=GI(``箇IM%Np@&2jVQMI$(-٘`F0 $ 9Uyjr{%Qd90);N=ut,o' !I R]%"ي!BC!j EyR%H r:qz7xB b@X vT!* PQrqpO9) rz~ևP!931M(}iX1|0 DO+롰X+HF'Dxa,f"d;E"z%zo#5F0^NC)wEPZ p]"esZUUW<;bt:t`qAKdC%GyNG@9KѴ$HaA ."|`UMnJ%?Y@^8 xa1:);8ſV3QױCZbnW6fB@vs9Crˠ,ق&ML%|o`"9CGtq[ 38s\)u^xpf!k XC1X; ۣ{md|.#2Þ),Iտ8Y>?S`~r 4A/(On~ 9Xhc}I2.Hdi#.OɑNLI4Н M/Apu..$#QL̵&% 0d8Ci^J}g4RH@"ZfƃOC@fIؽuף@ y7>#7oSR(>]g;P2uiܤ},Ey<Zg4z8R! K&C,B)Sbu/b "ɐ+e>yAJ&+i/sq6^ %MkFM&'+p+&J'Dr2"Փ•M$˜^0yyٙ7F1@ag̳E&% $桋 RS!.2ym}z'#(46 G#waL>]ĉУ2Je&4 Lr$[^~n%͠,.H/>G)^`QO ODGGyE{J-L?~d.J,ު/O&D6HMe4iSu+N~ 'ru4>omA@_q'933( +!=euQVrƘDtؙqsёHI&dj:R`a3b\@zȩ{oBjݴ bKq% yIS1S,Rb qPݫbT,?!w]&i+^0iJ5vv 0R^I `x $Vhw,.5w1-&By֒gVGȎ@ JLs)9Nu )zCls&'FrW9\yZreV+( E30B+`$dCXafvQOƛCZ|]j^{aߟ69vt-#M)4\6A"^gj!>D1$c*J 蛩Iu*)(qv-) dmFѦlqRDA"?\* q O&ǔ\/]٘w^B'1@ir4l^)mK$G •d<=~j y C=pO=a "aNS'Y1&"F_dPIgJ$v 9\MlӰm?!@D{JFsYBblI3p1IKTNp2~#@LⰿzJQ} uE2>8Z[`Vo,:}u'L&xucSӆ[ cC]!}Gٿ ' ;|Pa1v#,&l ُTo0L鳱zH,, &*(j|dHa3 oƮVdkHx|^}Oaq=j0[\GњxmtϨ/~ϐ7%*ͽe,s: 뜮/M9Yel]3Uftʪq֫w})^}v2R͕KZ%j[֎1kI5ֱe?|y!z)b@%:Ԫ72;@-h9"QKm  D "r# Coqņ A2 a}foJ`7Үy iq9 45 %H+oKxxaT:7?m#ӈ| tr1 H| ]5.0 !Y{Zr`,HD63b!I:DžRnDܙ8WYMv$eb8)H-wk3?|mo\Y: Jϼ,쎛-G:Jl”Z>GiH>6D =cYJA0&6ph8^C+5>SO5\P(?röSiR[y\H t2 Ȏ%]ڱ%%$;o7σ%¼ e"x[SlF#CqFs MuKI%Q `Y6ٚ}caHNqJeZ3B.$-[2nn((7sxՈDn/vN$l) = p[0EB5OF}(a1.J$eX^óA:ƗSrHJiNeyh2c'F=)쭭Hi0[{6vC(_d4D牞; L'pF!GW y HHΘt:Ow~cqIG1tutBʚ:4 0ʔ:4DТtP\hȾnI&=kzK!C5:GIJ=X0(As4r;@b!^ϩMSwÊUG4BIɂj#TgLH)LA.bٓpy>3~晥 MX#0ZVQ!( oUL34ĠNa@74"u'2PDF:դ@aP2<χuM:p,|l1V4_d d[p_1H~Bn A’ۤ|eUHC tądg:^z yQy`,?QZg>&f]%]-#fy?pa\TۣʣB2z_5n!JJ;bĉA ]%ιjvH&sFLJ|A鴉LK@p$əO+S99dK c+ *pL%V'\ݟy\n[Y7-I$q)l0u\[&@5Vb8 yybDߝZ̥TJv%vs6iH#t7Yj]Dj 0$f2&Y^ |\LG`pk; ~$Qj4/_zGe5މz` XrdsOl CkWQF҂Zq.sՇG/+&9J2/N‚C$jp4 ΅yoe<6ӚtR$c,kCPeg<9Ge_~~6%kRXWn u7^6*n(ωդr>ϦB(fXI$qQL unr)ch/I`!S+>pJ}7q& Rۂf`̋E=μ`TF*H0DR& Ar1 ٥>O |=5~IǹF^ >;6a2xJ!Arݻ&o}޺+]BٲW|VoLށbAC ̳$0@2KCW=P%>ZA;d;8T :Ȉ[Rx)4AJJdO4%yi9Jb~r`:4436u4&R˒Q57/Aagb&l&tna{OE; ˃t8h` $*xS@s#l_r4Us>7p6l-α;'[ z!D=j|WfCѮ 'LRuHU #mH~c t(/*.K6d8s/>^㪬4 `H) +28k3#|5Cкꡁ(# :R@0Q izXh%ǡD3CCFxI$9Yg&׈2_ BE?po\FR a1P= {fC:lz?xo[301 0bBpwE!Y4,0;t  3f/a& f9X5n%;Wge#8 ӟ8,ZwǪ*z؈f-[z>2`NPT >Q}8Chn7'ղ=%9 fQsGaOpK%3@_q5ju}5'-@}5dEBXbg-L&@lf =<7$MdKjWNpjTpF0.IA[&TT*CKB*(d-e QIhI"N-0 8oX hN^FE'l01$W8¤ $'>zyP%' $Z4ם001ϓEF4…< 8|?he=WEB{)PD y)\ywig$1S&a~\a+h/fv+V2R\,e:Od+g0KȦ O 0L jEcAptC?,O!N!>}L7%\C;{=/@J_EF'] (@`ۃ͑g[O*S' `!ͮ1G%;Aa=9\~~;(v׌ۙ^\|-FMB@@]a:%t;<ݼ2]PDEXkG0VŚtܟWCYSì8FFF)#c:q"z֖Ms3@<)K}LR_q+m:c?i _aMոp{]=A#'Q؂Sb7op=* &*I`P:$2((#0>bmAH-hq_d`*h=; /nSʩO#ox-yc2ӡ$ M5ҽN5i|D`2CPP:=acA'^s PD2AVLJY~Ka҇?ao8YL\0x͜tǗ׶p:H' `O{m1Pa~[g^d=l܄:_Ab-<, u@X_9Žw' R98I[C_ùˉx@'X_ w:5:ḋ~U'xG\ tH'/#t% Qrtj3Dc}uƂtQ%8ra0$/_bkcty A ?&V(1 :VT94qgٌ$Θ 'uJE5T+%UGtFFS>4z ;|Dtf)$ͧy5;7`r3J^F|#2 JȡO9E"['i7`%`2&3|SIS*<UU}@|.&19.~ŜjLS@-, 7|z1*XNX9jrԫ@ [8]]XNHbJ,h:2SzX?GY- 7!(ld8lzgl֋Cl-mTTbr@`eW:JSuBU96 @pJ*"Y8.r+ |M쒡,a6%Ώuj{zxl%Ws3*Ďa\ka5f=N!1O?PvY0o;d߲tayq2dRB~>jtwls*1dd<ZQA[u:2H0i0䒃p_ 5$Y8_JaDSwюT*Fx ^1 A'N%8.HPo= j=[ťd:+NT, ra0d=BT7U,QܥO'uNObd:8a(G`؈CcDУyvd` d;C < yށ yQ(NpͧB6 -Z~QoTX Ak])Vi \ZX@vPGI/GYcqATdcӃ/Wݨr;s@r~rBi[u`Ԭp+ܺn'^Aa8$39C 8Uw @< 4kb<3͉&79A ϭ5[uD KgR#MĦL R E+QA2\i[Rc #jyvEa bi#^'rȣ+X9|^ pq+G +80B?`pF#Ps"y9O8`%(ԛA;j!}7#/GnG,Zno"Ѓ퉢T.W!upT Q~kkwfMb'8&34޺4ݒla_x +ZX W*3.BX62I|eя> AYU9C3#ed_ 뵎\{/KG;o&VU$fGH,'k1ƚOrU_ υ =7z" i!z#1.KAڇ.S 'Z" a0Cݻ 9cǽO)ECnI$uUgWpSx&e?k^E :^F؃Ǭ[4 z"Xtی&, zKLՉ 4sl0?ģS%Pk-9+@Bf ɆC|Vs%GgS7sl@u`(NwAA{&aFtVkY6,dVUSp.77Xe ul.T'^ŲwůM9>h}K{7$HE2< cf&OزM$pe1a4]f̆Lb6- 2̘1>Yͨ!mPJDt=4){Œ1O J$!BvaD"PikYtH3ܓ+BnFS8>Ӹ!hz97#NՌb=FOdaI܂Z( h=Rc7uԘ4^&{0?4aq)n _T p\ l>8E+I&L2:@L)Gai:2=6u҄!\3#fl`z*=S[OM~SJ#nEc'XLa q0Br1w`^bD \GF+>'o.c$jz?ۂkc;L4EOWӛ1x b*U:^@@ 峍hfnLH@ 4* %``4}IֹH6ZB qhW[žlB`n@2Zovvc*DKÔP>$a£1l:5҇,r)w:9 FaxSꤕ*Itdl&6v6eDy}7AdZ1\\~::J8T0g Pufy~|%,4&c8LJq< QFKتm#d+#Ck{ R_7A$r0h{'˟i[Vy6=io i ?Y1, ROyIڂG2B1+WNp S,_ r\t Fek>cA/2bPzPEd"jfXYAh@boI;J:XK,| VAt&)|a}  =םi6%Ca׹sLg,[UJX ~cR04"T`6# Έ)&:|I hmj1$jYUw.a]2=#DՆ0?h;&R%@dw74;bƱ:\+L$4KC8V 4xw-8k|i{CAqndoFvG3~;|/ ?v[l;Cru?qv AlMsLpߝ>qCx Ϩ{WdGaFr&Amp9`E@<0$&A1r qj0]#@P`zG8mr*mrmNqBprP`u~oYG  >|(EGsH2rz0;WY06@FU+=j#pxFq'ebchx~1 9k)62xRZi<;LݸJ "}`٧`on/%sԆ萀F`±Re+!:.F+tOԆ( אk%Bk(v Ѡ-54,ZWQkd,ZB g,[3Q*nReB$l(haz9NuG2މBn:n?ʙrIv8QCh8K4\hH}GS"m&I@Z\A]^Z+1]# xpXcKY?iK]7{8%w2ȎD0K>CDUBs20aO϶vzp(u[OͲ91>fItqЧ 7"%ۏ 1B |œ lF VɫO"@5OJyE%hXA i*=m :P 3b㙞] F)QߢudNҢ/jD! LfdKJm'^"dr>u N:Z^)0)8HњI5n9fUiza@hIb !C+#!4J`MC , qHbQ L/ }8\DBIX"&va8ZWM#>0H Zigq#!z @> p#Hz>,?}@wιr(<;u`fGr;~s:W 1Qƒ~*OŲx`K墀e x-&)!y.pcK}eIA&9G0->RL:z328wh7HA#NS=T.`cV38F GJ: Vm Li yZ"PU&lm7Qm+/\ϋ鼳iӰߺm"s0ƙƾbzRÐ~mnr0d6>cXE?Sm_*;W\ pw%Ǖc(#!PY%r;-(Nr>You s߭q؃^Nriÿoe뱄"3`[(P<|28E1a[G/sU` dbqc7)2V4K;&| B{hssj"!C_-f;w0зdH>!޷$q&ӎ&w z/ҨM#ӐsoaCy$1ߗF? h 4H-ѕdȂ] Jbz 44ܫ\Mqt]/0\X21^AzYJ*'HC`BNS&7 x#R eXjY|t9ȗJ撞.O0dmRw5/|.>v]%C*!;@K&H0n|cszA6>FdE/I>}pꛩLFf,p…3F^1Ω.i.1LNfp f0 heMFc|,7 EU׶e0sHóAte؊ͷs,#%W1uR?&i}gek%_Ve23&31HǦ `BL:dh2svfz41uA gZv'KoYB (`; *zO|}dM7_k>'a)?+0&g{/TaA07r׏iX626ky ے[C hTtZɣގȥJ鷊@xNNʐՙXA[ Ա5j A sS|%gokn?AAݐ¬@ u$eϒK2D5M1.-.xؓocq^|&iv{.ack)2rr曋j`18,nss]'%L  5C *P6O^s@L;ۺw0.,y8kZ*NSD OJztt֭r ͅJbn ULVP8Vo׌)mzwgKi+Kj"°2-D\KyއZS̸ɀՄLRc+ [zJC-9/uVso"_F:D[L(ZR̖VMu!D悩bc68T#ڎl]C(dj dB|W&JYEn،i9θ{3k ơ8EqPAhC2N$X`  ;)%xGj-q]t FenHKGFl8a~:a' )^L;19pEE'cЧШI;8n %rF-6eh/ZYwr U %{#lIJ̧ "XJ%wCz>&D 3O= K88L$J1JJ$.`Y$$l.wpFWvZ`EEk2xz<׎gI!4o4x}56 L&/6"Ĝd9jAGUj !ؤ:MIa) s@bg8OF7c7PJ=bR3:JKaAˤ&4A:z.hb_%xTcPi0x3D$0xc#%s*0 'o=AX*@ 4:+柢YN'âd~T磍6 x9/\C qŸNHGeH$ν1}jĚ-P$^`Ol2= IԦdjQF;:wn5(CKGr `PL?ʰІpNpwl6`s \v3ߜa.E!|`(\ {ID&`9F n 5U}דv'˳l|rT똒sQ$yu'"k8~2zjJ<팊5wU.wU趶,gx][me:U9-s罝ݚZ}5 Fl-᥼35 l4=C6tt~gr]hεtn_?sGu 1 8P >I.rltΪI$b!2x{bٻ` H i7I랱Xhn!v^?.o1^iy\z hwt\ yz(bL2)mu~Sb }iU0(ڶv o⸸1cĕG2?ن4[}PYg$؃w $^N'37p?(+Iq<vX ! DpuD?t|?2a'H:\?^:/kA.s 28zJea/]~[RWWw ,DsBzT/lrkWWTc/|sLdUVzbZf_?yX@>}̼v8Gemw#'HM?9%R9'6ӪbV*tۖ0BneK.AgrN|_T*立3WT9գv҅"iW3qZ\̕ $a6O.WA1.: Okدm~`}jj^ʽUʟf Ub|^cj. E{o>oOC7^Wq թRp~/o,y8x3{@Bٜ](|W/1+@Tq5*#n;mvF*eY!R 0 Bb hg j1)#IlZEr̯&Ik8tr,>QJea谬5+|b-2 .W'nڳ x;KLcG#=hTQ< 0 CT{C[m$HUsU;W׋sxn W?ˊ?tIl `fo:߆hcQ1Jwhr^bp`w3Uzeri%$:(#hk7 {$d pyv'as U)fS=A K(dk3,fzU>xN@#Kqүήs*:+m&h.7D~"g7lYc8'e+Գ6VCbSVPX(l;@p Y9:h 6>`b{v--N:=g0 IoA å@Muƹ 1ZC@RvN* N['8x34 ho0ZB|@bvY Pw՝D>A0 p[H@?p800hhdIb>#X~;@ԚIC1 N @-D@K H@I0 WP Q@0r:$5-4DQJ 88L(F@Z?UTKA@R$ӆ+6H?HR@'gak hC#F0l G&Q$p8 0YPV ēPƤ .xv.&to?)}~A{hnx~Jn ۵/@S14H_ p+l$&%Fmܻ8Ж,Ӥ/ʎL*5*'B\G1x}Y:e+3P$SBJR.|[[H.'*h3! SL )U1D*…`4:2"30iI4 '/xz~և1ìӛTLH_`?U|34N-b)TGdR!<<؃_! DJ:w77tc67 $aIit>UUUUUCUUUUUUUTUUVUUTUURh#I *CSyl 0KAH1^DS%L@t!!(P9Zq9D-IK@ 5 !Ï0xyS_xAœ ̱gBo]hCdZii-QAH&"a'58`_ H0f.0YH?ܘ %)& u&0M30@dq7z"r'608: ǔ<"s*No/bN%<|bx: >9tL@SP x:T<!o>>/!SfuCAAaa(Qj2jI$B'B +y)4D)9<JB5xx`H }wߦk Ȕ<|CH bjHӰ}cJj=>x '=Rjdc_}ß3@cOxF c\]*V1B6Ʊ 'X|7 >f(^q6xy|7;t\#gإ}wáb"r$鰭9!C%IV=`3Oae<3y3|'HA;vpdqƣNtGq2M,K '[Ԙ^_mx0`;+""8/`PX@@1kqL@4dtU4=N9i0?at^@+P]V9p@AT2!CmLխ} L{CUe{ R% `A u3`} !:fl>fJpD3Ku?7? }Ba$>^fHo{H@;IQpɄi0 Р!6F0?y 3lIt5LN"Q 5?dP;*nQ1'vQBżqXCiw!JnoTCt2Mo",2 )BAzlL誸D?{juXQҨnp~6$4%X hqc2!]e?'xȘ)*c`?# %8L0ICCI  8`7d10H7RD"N hAVfsaL! G0) U.Jq+#!Yb/^2$ʣy7d6Tte)h4/nY%)fbgL(aRB44t6jb ZbU&ooI݋`B?- ~MkNŨ0$ hO)xht z>61);Kkỏ yYO2I]%ǰSGbOP(}BKO@q4Dmͷ5OshR  :D!RW1SrwqA='h /L}1(0#;mvmDQ<;6 /*$jR@y`D;ǜ1D<OO+HYafa ^ⓞ33[& ,*a$p 4N eVqXyFt< BPO<05)B[Cm2߽I$L^^G KkZ[mL"@yD#Pr/$2B; E@p* ; sC 7 =;  @ϗe!B< P8,tt}U氘饪O66@0P`r3ZQ[Bdsxm=6!o7j4h1E @!2 'f8-}Qqb_=>D =YBȉX$"fAwpw0I@"U[[#EmB-SUTC5[f<;KPI"horgnoo 2`Ⱥ~&O:w,s W>{Lil6FDq>/svIn'>2C(Fg.0uCC3I-j7T0/ 2~`e_z@l/4PqJwHp{%0U#AafY(ZB2uNv#>~/k>cM1hDbȽl2 " E8uɡ;rޤ!PzYb/<!ɮ?pMiJBh[ U40 Y'\hLV,Jr[ AXdUB`- p.J5'9q0C#؄(]b12B T\GU$uz?~_Ǜ_ OzM|[!.,ϣl5 u'x UZ z6p&H?5d0׀oC)&> ̏Jzzw&ăbd2Ů7Û5H  bM7CS/$S+y21̇2U 0@җp7E/@|G쟬qϫA.`JA'0vACgv$H" =t'>o|ol$RR}׍%bxu SXJz0RA:).1HC`yQ/WݡM D =靿M[~??`~ZoJ{Lᤂq(@q³g+ZwC`f TO{E:QOH1Tea@LPS؟j  ndE4SLh.OwN:uoqL3 3fqb-bO  `!G~p.q;\:z|JT@-RJabn&3* ?_6 ÷ꟛ%$BEI׳VbM A9o$g?.L2X8!@߼髍4v; ܇•Ҏ d*P 0H+Fo{#ox mH7ś#I(( -r U)I%n";~x&var \;[.xG $ln+OIϮlA TpDbpR CA(&YJ]Ft[2Kbĵ۬p~dr Qꑞ+~e$uENZh^=-FNaիlQ{̸6ZqpSM4c-77}{6-ZfPxL5:QU(]1&-'ƭWZsYjl9%O %XsFy8ߎ1S.p&xGK{e=3-1fg/cHD`y  EDcvɤL?s`b18t.v]z J~s鮍A#bpP> qZ'~=4 vȞKDQ?n,ġ1~{2ATLE ϯ~Ä3&㾲#b!CD:ϡA &8'azXcd+G{_80ɑdC :b8}:"~sf6(:s)L:@o9//eD kJrx 4xW3uEǂ$9+7_! PITiQaP̏YIiǷN7ŧ7 Bd2(~o xbRp $W;)AX^CBat)@Y7ʋt0v1Xn僲aO 6g~ gHwoKXtJAL9i/t"wY?Z@ Z \ ئ&ۅ0<<(##qzȯ!o4;gA.CO㛐4X*]_b ?8i(S6fG.")bփ:MLw1B{iaeroȍ8lȺ¾0 MD9UY˗ 4Hw:R{"A_3p^SZx>u89B;Ι/~o10Z%HM"t ? ؉>+NI$D.Q<ǧ=}w2C6L/@G$N`kY\Ix6b7Č.(=^Mh#u(gc7JQX0<6Q>B hJV%HDSĀCq"'#;gYf^, 77SS;?$84O  }vX叻&&gEA0L}HԻ GkccK4SZ,GI`[1NP^<)W,LZq{HB&Gp `I}O$ د:Cg/w0p[~ !(s2d?=9 ~UOq-NO$U7CnH>@ƴޖm}|pC!QZɰ\}8-@c`k $pJi_}LU#'@$` R2?WkǮBdu*G9smjdg9.E,~Nar廛#[c{<l6IJddaO#7Sw^r{iӻ<6?1-Śk a0c-gEQ&Rdf`kum`, qՌ3S@I3I ?Μfłj r蟸Ot5fXI"OݔW& !zz}f\qŁ.]c ra<S\80m$<CmJ+w}UM@"x/#`yacƘ' >Coh4Vhǜ2aM$GǣV%Gyr*,1b w}䈑(6/1Á`6 {|ۙ$yE|;F$Pl$& G`8Ƌ܍41etPD3٬r\ws6R8JLe eHZ׽vk-6v 7HQTi8%bU]o;>L/)&4z2T eHv * arD M%jeO17^~@#Ke ;P_F -_+S(ݜx˒#Gp Q*[GJy {.PZ_!²<J ?er@qRi[ӽhJn3K̦= $';4 +0v$,~C_$d &H`$N A@ Ԓ x}"*L8kZ?NQddBH/"Cvv?q&&ʜft#*iTA>wza~/Rs={eeBJfy s]s[ pͽ !?b_@j5jHOxe&7Ğfn: ")Xe  Ӕ"Tę?nܽoY,@!vPS=@%:{>c4sD-FAuGS_vɍy@` b[%@OĄyCQ)J-`; X8h($:ugq sI )9$bz(!! $a_f'M4d`W7}%0oEATkcb8s v*|ϔ~<~ K.ճƸ7hzX׈E7jpw}v9 iհCk˙ۏE>x7k|t8 }0FiNH0s.XOGEġt"ZW}JB+=w1 6†8!uf T,$ +aä:U=I6ĐI4#;L߳6:ێ+Y$$aLfi9\;5R$8dMϠ/voP%m] O:Ƣ?Qx(`bPvz;5q8b@qkhcJ/Sg$''i-&9)y j$:iD]c^cvvZBSÿP$~N_"#[00+wpwGag; {f&8w@8QPPY8W5oqOjR9-*7'?zY ANW9f4!̠)K ER컎ȲL?J-%,N`h{ 5Wu]b5"T jʹ];USi %A_]Lٲ P.YBhl(օ((O{<eUȨ[RXN*5HĂxAγ턲! P vZ5R'†a"2yKBe|Ifqz LŘGJ(Y\S nNSy3O l, յE7YᲛXB d궠asA|s K;k.61Џ8pPsoyA;_wz q5ҚQ#&Won:laɼ0tYTfugHLi*~)')cNTDC#Y  R)ˑ((=|J "_\)?`/ҏ87G\eeEX6z' ⳘH?ؐV"pGo^oB8G~pB<&9uB@ P%6"}$)bRXOv?a?& |]` 0p 5]?&"Q8y@&ZdJ:Lt<~s>f\Wcp}a/f߲xpKS9wL?f-z쁬f~]`gYEVσ'yksj`8elٮx* 춉IvɾӮCcSJ1 19{ie)M ?|YBV#e?cʡ]9/yTLc(R5.@JP&OD~B_Hd J G" BvT=".c"@ U7&dd(K3;;-H>qzdub}݀*K /Gj_9 ˏ cSɹ2dha"@&LaTaDۀZ)ٕ3TM&uDs2unX<|uY`v IL?0LLtD"2 M?2uO|D`9J"((qs`s^T36f5}4#]nV$ҙYQ?u$#>J$]'"|G>-k=ڼ^|WLm7yJx|D8J&ԧTuM_P1З@ǡD=N^`$uo*TXXeծ]fdu&F2zij5 @%.C|>Pyu 2H$ؾʪ2޾\#[*m4sBv%"&殞;D9^Vçi*F18+ )CFlUK@QdK"tZ<ӿf35S<~ѯfJ5ˎ57 cr$sX̫ة.8@&D*nRE(3d0(T% 5wlsJEBcl{b4p MEǖ.jc6ߎ:iJc1AJGM:mg=YrS"9Z$L( y޼SR5VZJL Oi?3-%*LVW&N#n]d؜M-C$&yXC/_ϝ r\ YH ffzi'٠VBO=:wA(^*ͦkU!۔;?LL82!/7d\WR@r*\<껏yz2; kx#KB 0瀟IvhcUZt8ע*DJ"qȧmʾq21viW{<\B8NeЊRN:)YF}P:vp>ʴv9G,G@#w'QE.rB5ȭ|(Ps`X^jt,V: eS+$.B{ǔwrr#ǏUro`l%61~GlZx]zpZ*Q@/9IH/o7CB6Gz3y=!|XMJ;Fk1˃h F&ܡ'Nf<+A ?"L) =!*_[,a&uۨ_ۏ3VP}@"Awj垒\9UP vg uGʾmbLbv6.͔ 42R5jNH)l'cڟ%O;Ixc Xф}ڥ)&q|:Xc@Eujdg0"ߝ06v;*UG+-ig%7ު7?H`3/i^|C\hM+kךP/=1Bv0t#OYh6:lOPyp[S ؞<|͵POt!O6<O- ,ˣCϷÏϱdt 2`?LIAn;>E,bC!`zFQI~Yz7b$ uh!I@<C6]ŮG0ߗy}nrSCN!\Cxya:* ixll-YA}z{s{A"-zKl͇6껯39X_LK(I#(J:i?tyr1\]cEd䓣bQA61>8gE&He9g@O T<OPuxF2dLL4㋻&GKf'״84vDUUc[gGf&jG® 8󍇸!́"4 03YXf &=L,7&B~?|t3I* qv+I~Y%^=#L9pl}v5HKB!0:LY#Uk7wHF|јD%]G2=^l|@:#Iw|n8  ac{@"?yG4zH-=b Ijf`*E׈x4ǀZA:Ox4#NÜ?zy'';Dݨ$^ІtAX]7vyH KaﵚN1R>,+-D@?>O`p/~FFV eB=23uR) 74Dz 3j `p_;`d" pq6 `󟅏n7D>hSi ?ElvӁϥӣLp0@0K+mx@rWP0`m<;4tnXjR, NB$0+ ǛACtAGLQDNB[KܳJ<@(/_?s~21iY&B8xa_I jFߍًk\x2Wi\TWP>/G 7/kQ8o$n0\oس<4F*ʪ\`ʇ^hyQ#;gYzsWgf]l5$<0CL Ioa\q"h0~&(q \[ Fܸ"e좠b&wwjؚ PU>n_o<{A%-qhВRp}'/ Nht\xf3zlP9="vlx ʪ 9n) Kvgӈ[f:;gˊr=V@07-$Jh k/>x: МG&ɕ}h\\ 8Yr\C83 Վ$' @5? 8{:ff:Ga׆ʴCEnjUq/Af@”"CxGsѭ@T$Cr<(!>G'VǗT{7ޚwHD~qA[Pŝ1=Q? P:sDBpt`2u1L|zCM:2^nA=`WYGnKCRU H,@[X3L{n֚rd&hX ;s\6_ ԆiUiI!|n)4UT;a2Hx_I]( X׹`]ruιVٹvUkA:| z cDlÆ4SD>?`Azn*ɰ`)02 4r8`Kg>M.<|Y(}!T;44p, 1wuUfCI=``.@8}'~8bzP-Gع@Fp5 CǧR+p8`+FEH6HfF1luu\]VvpXk*nN",q/2:(Yᄏ\,q<5C nnoTPaf:W(dxP#J;JdА%e DE:a>0ǃ&A1+'-_Lɽ_Qf@Hz y,fy@+c\.iQ0"d<ㆩqUefeNVXSΜ{yC}ޗzc:fFY2ʍ!>2O̫ )I2?\RA+,3a`+g1+Z,L)s^$MojJa8Y$b6.>rYK]FT0J1$F7i%cX{'!lH7Tєgb9[KyL r 'iQgxAfBh&GG<roo'}4as=:~NA”9.~,, d/^%jR_SO02(|C U:HQ '2"Auux{>Xp@a𢆊)w!Ms%i: !IébwIN:~=t# p C_e $aAL7GRi1OϜ: 7۽(:.G(_WP!VVLDj+C+u9@?K30K76aC$#ICa{ xo$[N{{4ytMPYA>QYU8ptN;;nn Qgo(i@ZH{~Ia.1$F9Ճ=gGM6%$LLunȞT*h/Φ!\oiM-$v˓a#fR?#;vkUMib {{8x=9,4 ӦwzB _Y(hs1"'3y<)&Ϊ .T1fQD|aPQG.w<J e$O.aa&d;9x/}UDKBɢxO#Iy|K@KJBH%Krs3ΩLUYR(I|9j; B'#4p闬IJ!==i0yh։g]0sۜh'ia@ E !0E5鸋:e;y^ˋG__vTKL 0JJr\{6ot뻷RESR n$V<"d m$z~%}g1btj + &A5yAPЎBЦՠ0DY)6־/q= H3 %|Jv{3IEV[1:-+t'鎕e4+"Omw1#6EV+$FGdh'&Jf?*XP b}:JA0H*fW8g7ͅ6[8 1E ><>$Fc!j=}#Y"rnJ(_T?Ǘ)M%ll;I?Fpx>E5V^׊ ,[xFk[U0s6v@dӶtHD>G@0DYW|B>}7M.c?А4Cj{=9Hp*#0l˻$鵷nMJ}_g?Q"b>$ВmtM]$6[S~׈mɶ6H2wwb+y+Uᙷ>vo}yI;mm66yZmmt]a ]?6oD͛IKmSζ$ӵNߕ$MۤI1U .l|3D`q->[뉧ogus7/czAqs݌e#yuネfNzq|dD3G$n9:㯏-33{Mkf5U|5Q~w;[1f7|5>NH޵&I"Ly$+DD=cAz|h٪$HD{HZ&vNG=z*+3*lZwVuaxGop`{rn >ԝY~Njs[*k'<8vqزCr^ 0!H]TI')쯀`y:w|Dm O2{w$ ?diRr~ *PڽwB:eS1;Lp͇^$U$ET# i;S,S?鯹2k9f'< YlR_b!OM&&S+A98<$$ K*&"1 3o mYe e%l,,$ im,(Z[HX[ >td@ ԟ3όͭE@!6 +*BBZCVKH[ sm[Ji!"() H`  ">CC>2 GLD 1Pa IBETŹiPP !`@)rq)HlǰF5D/1 0z@"bI\zHwv[mEܠڸ0$r0ZsFn,Fʪ k8\vZv9X p:UkdCSw01I}try6V C6o'[>w.Dע-g!ˏYfʷ?r9&4[J7 T"E zjãEEr#ͱ=j##CH~gv"NÙxn-4'$ yߡT@d8*@42ͿhB5qJQ_Fe.I^tnD>'BTJA(ewB$ ZD>"=W $Vr S WE0)Hbdt @?#T>₋2< G~zd[m"$T|me"s̿GT>vRUz[lj%존hH=*sQb''t鉹9}%̃a``t${H˻Ѹb݁V)C)G@ "…8M6EPi(D=X[g19s<gbk>`,89C5]y^ޑ'kux"ax9Jmt.Q?YEeRJY;!@!@h"H"='MY'Pƈ&=cZ[(Y{t6;^XhhU(Fa*haI4u#=h2Q-"' ׏3Hpw:N$!Ȃ(:ԩbbԐOo5?w5|`BXB@hFOUi5|Fyu\bV¨ 2ԡØ(u Ex:4i#D! l~$ E*%Cq c鳳 w0r)@ 8Eث[n'l<Q1-Hr`\4NJ`ETCHk a{Ŗ{Ȋ/3-kxǧD#ojCA( CȼHS'0x.\stA أ)wo-mGd#m" ;7$COIDvp} +ΌWr]U4 h:;}{Ѡ)9r#Jm8tP菃C7&SN@ 0H'{x[i>%$HjX>(A]f:FaX'iUj23g0_<'pX%aC=0$~q(1ziM411|~33;! r=Hpb *@*ڴ Dcr&#4 ,m: ulu< ?@C$" .QVQeZ2r)KU!d@ؖQ+@X0z {_MMj_yPSAK!"IB̠=h@;6ޒzSDDYي 5z=)>ڞ׼pu#O'3ʠ>T@*id8¤2a#T(Jp=@"*BmzB53Vl\ r9v1x{t6r4N#(c"(Xs$kAHʫs2`ԒI4=1SX"XOCi3#J(u0ÌIpW*,],l t'ko -D;"CUW4&Ɵ9ccZG&j`!Ϣ%b0GD{Q4tE"D؅'A k@@U 1Xg><]_ S)[7i Di325(#sqK?MsT@H=SŕLa9Z!hi?"ߙoZ1v릾2":}bzQ=j!؉x/[qjs{qbNw@k{Dn,ڑPiv&NbH>!, _ioyA`0=XR Db:s331."wS">Д+Rl[o˶*A,dt(! l[);؇H;D nE @~Ap!S-  K' |Ͼ{ٔ% |>cs|CNN@\Cڽ4L9(@;H!J.}}ݏx0bLP)Fx 3|GY`| T<@ "9F K2A8~9YVS݇Vߐo9H [ n:"y)GS`47'pD|r^1AU8 _)>!`ed9aHl‚ZQS"`F:~`__Gm{%rی!~Fƅvg&lsUn`:p xGMr6M4Y2Ra\ -8f}za ;DIE,BJ #IBLb(r9-;U BpDDyJar}vCvA!ղq<XAC{ /ar D*S;6D4CFo@ ~-C"H\a`h %PQF̧ϗz} @K P#'>`#{+QñPEo`w0R0Yl0|Cy\_p~AA^,W`n_v΢$`][y'F@434FAg )ĎRld0QY`!*Y W%h~C.30c-r!Vș1cH0I`St7*>]}97d `WL3 : 2\~@7}?@,ɓ-!Eԇ?!!$OrOe'w<*I>"ZhOhA(L {Х5X# ;S )Y".]؂+FI)]zY&8A \Zf29,V> 3yHzh.BPhCRF#ܑJ,J{0r]ҭA#;`D6 4Sp^\N fǰrlC3~LT1JkpA3J"T! R^Q _ Hqx"< I9+pu'N:PlC hnCՐ#C!fL* (S!C4.;yӯ.0{AQ!|riP+p'8SJ% <X@I?5B6 "ɝGޞG/;I@P1 $k%Eldl\1u葚4`:; Ҝ̰*oīxe6pwD#j MEIϤBoG=$((%;SݡgG̐1Hy ƚ`. 1E)8 P9"jk˼wSxPN@`%X0zuP6y2`x v'ԋN >BFv̊Gi|Pܓp<> b0t>r\I219-12]U W i-k^0vdP:?%<_9pFkQĆh "< R^7ʐ0WuY0. Sp҈zaU,6l_m]+JJ}?|Bӧ1mـR >ByǸXfK DM#Ԉ)"xz!/R}sD`S O:l$mP 9*!Ÿ}H  *mꄊs<q0/ug%SmE:A7,Z{< ՚[][t˫n}b;2BP ` -[l `( t4  Pjk`_PR!6{):SG#S7yfOJ $o6Gzܨм}p i7SzM?y,38)$bBFO5xW2x6hϛ6 }6TC R;k=Zg  nz_)x% ⺁U½ #JtƑN,uL!Dq8RPh @oZ4xXŢ-09w2HC rJHKپY!ZlT@%Ԓ/tlj 0ClfJta 4 _⾣C ;{H Fz_ pֹC1PBPʴ, |N߮>^x)CqǣTH$:,=;tt2@A)"JnimfvJ/ C6sMaBw.L8!8!cT& K2$JĉWKGfnTЙ?Ɣ XL >{17n!r>O-e!q O =^&la@|D3<Cc^CcIARPB_a R!_|!K?넟A@p{OMHG 0kѐS?9 o9q9qrnB|n #CҺv[ B@RCy lVdA Md1!L#:$lv!`sp(6! (HMu\ @`siPra:X8?sYpsɌ?[a'vrdN@5{+vm~ bR 4an6Y܉ԏYe?Q4#H!E z"Ri@ФDRp'&bnOo\Mkԣ(=9Ỵ2`MFBl7gm\=dr7!@N$D06*m-BryKw*os}BbBh߸Wr)Myj$Sَ"jbx!e4HSr͔Cϻ1ІCLǟfd'eѰ20=]w00xo=S/,vڼ}6Ms\}j33*Df: [I^3b\9맼2a'PhH@QĻ2Cʚj%Zђ^X-dfdJG_h,a[t`q`v zŏ301 C*0=%K8qrtU=_4>/(E0$ |h 9"/\@}2xH(@l^$EG*8r&0x+N GQ ꁸ8Ok6H)*@A?,rv >WSzϴnor)aaŏÉ}ʞ8ұߨJ C~{kĒ CRGũBBQ<~`5kWva ! ;258OZ|Q<662,nM #AGC-P}gP@9Y~SI"E %]B%SE :E;B+R˩f1k\`Rgh(dN A(y^aZ54t /ṉsIĬ&54SA1AO9/-wh<}SGtk]љKD;*>sD.5fH>%JGo4dC]kkh330;_npu4WfE0}ps*K&џ|;D-1LMX٪жSNQo2v<,j|WCpo#/=%~aI)l͸,|;LBN曓~Ɲ3s׺ᝠ;܇ ;FU!ӃZ2·z)ϞLca-#-3?WgI*<\MvŇiwT-5!kg/7$2|34pSHy"G_A'k(ec&fF &'^pZIoE悄a l83ʓ(z{x4cUc/BN͍=ʮf(>2yy&o+J(C0]J[4Se_[|+m 뾻lK5FtͶP{-vSV'v&,% #ϚRc{_Zq_LrB;h4 P Qm7Pϰ%hۑgB08;\ޒ~`~ŐzB5RkFlt2=N/`pHD'EFIC8H `BF /YѹUceOaϼ?J *~0k.JNCXO܂7rG 5׬aN B|<3@w PI#HY@ Cԥ (t03x3/0Hzxp:e`Fz'ӛ?Ҕk|GZ3NJ6 t[;&K 8Ul-bV\N? E9wL剓f wx{͗Q%\ӅuGdiUIQi))١mr G2]Tf;8fT,#:%d@״펚Jؽnj }oe,b]C[anϸ0jj'smஃv,x`&-ښdw8hs \EPCDPCGv'ȠE!1Aޘ$jCmU.=!k:_5{1^ȠQWPr%׫۵pS!"Y BZס'xOl ΙƧ wLagv848uԆ %PNgT6ep1,Vl.Îяf^1(40d%*Cŗ8i}Gq=uZz<]!>tJvxcDK 7KϮ<_?]{ߦFkk8eS,5S=z,һ9eEDU*(S2Sv&%Ndv&b&f*w 7[։<="C`H=ž pSM'!_`*<at9O?&uD畺ϩL @ l>,B;::>[vKU^W[.ҟ;'s4(crC;itS5%?aV䌃|s@q$|I8I?֖B=*hXh1`$)S=~ *wMYiGt= /i6r)G/puAx =}FAy6vb BSYWV@<1DDDvz>e`~y1YK99 4pj"c ։&>rȝiS$N \@q ,O)QD&i ژHo, lE!ĊDP `O`W%P~="4>h:|p((&Z( eC Aw]Xt6J2 E)G-AO 詂 ,|00rG"ԼPpG  0Ă 溨n9x'h 6&qN !"$܃ 8 #D!D]*)-e4L00oK{IKm@hB!"! d%Pwi{@慾[/Ob}<OsD3d㬐D2Yt,`T V'S'1E< !!@;*fw3 w YmK@xzEAVsTq0;w't'i(tBn#2sʸHF + ĉA"/RO.W̪z:5zBA xju(dA10bD Z$4TQ`ZˇO1Ǥ8 cd` dfwT5WPp#ȀN LQTD!  Q@Rdl'hR(6#C& vYXB"ЍA-VVae, bYfFffIMUA RUYEexq r }{d*J4m֪`r&Ha&a|~63l0#PsvC%"F &jtWkt!2-Vo?p󪊠|aaAL @ Hu)3@6 _9R! J0( 6j."`L(\DpL=Aӳ('%4TF*! bLt7ÐR`uItެ5@feA:]PA9 GH +bçE$QSF Ӂ2yXC` "i]@!HҴ'zl 8Ä`;!B=Re5tIXZ!HH?O)Ot8`!TJDhUq`4#&ɲ5B!Sjdгb`sNŔ&d 5f V ؅>}9Qz (2J!@_Q(MG2h}[&]憣!;ǦH0 ˟q#A̸)!A$(H]{"샐5 WJ>|L0<ytzN ǤVĒI"b$< ""=G!vLT^g8DI uz GH<WCcF( W1 3X( pU[c^E㓁8D1,1ȇP^e$ ,Q&1p1 @R'X6F{}I;Lg@%hX&U(L$}~D{?l΢.2*g,0yRB$C ``@G A.<A:f c뎿TRDĴ Q$QM@QI2rW$$N<>舖Ojaj3*# 0>#zOYaE!, AtYCvQePD(F+;&i&fT 9@3Ajte=B rB ۗ8{D~n HMKkm`d6q D1xs.@a9 ffffnN bwG:cCr v'\u0q5[()NOA؆BT Wg[CE2?.'x?X Xr'Д`(U0ZLE \2zsp' XuKHŔDQE'œrL^FxxE>@Iϡ ق !1X(oY)7g6hqf)SySe`}vÐs'Qe2lGT$ /21H~&&FdR d40{Vn7d#u#HyX@)kd*r|zh!t\6NdRRSx$8'<u,(cʔ]@(y?mWÎ(zߛ -˨AN:XH'q-~;y^DF& d/# wR}x.@=I:svB]( =$fpu] 8pw^'=n[(Z*4CY`Lxjy,2)N(MP?w C,hYqNb IkqpVSyvRTUDQDN+! quB6%MJF,)LW$"„=?q=Le0v@; RnDM,M*>!IDӅ}eTj5Zqg2M"!@wy` sv{.iagx=@ <>N UG$/`Jc191cqa1ZPV`kk;l81sm1`ԀVmPwu[& D *cŨ q,x3ք-$ -+Ā!dcvH3^HuPl5Ad: D8`!o=kIw~/F؅Vw1ʨ "4AM+E A~?:FA `a aWH>`폣F#0«j̀@c0vbP<ݼ=Mh2c({PMB#nѰ~j4 A.`Dʘfv`I+.HJ9f=)M#=)`r6`<@ ᱀r@beu:z@*|bQ$@JpZi/9O?LBJ{>q>!IRFGqn2pta!))IZ$a!A`"%` E< >sIܦQH}"YـB096-y` ТSI ? TV,OjBnu <ϯ9.XӰu27{@i01jgkC1abåӬHF`! dbJ,1=pb{=4}?Qͽ~B00?ՖeP88J6f/ FO^eC};Ob%S*s #n+{OW@?{`?>hCX%> ]6HE2Hc/✢]Bpw@v4D)xb4i io)q0|{I'5o1}`a8ή/2F9l*+hI(D*?& `J"^p`@HA;T7ߖq @_MB( pGg0`U܏nV a0$KU_aJ|k!`8tvL:( ` TP՞_Eלͤ{B{#RdIy?)u ;@Jy.(lf"@`$"B<4Kj؅O?N$O`i@6d^pxD?5;+艱'4nZS a@l[*vrB| ww([J61pчšx~X(#u:*xX$MOԮW?mj@\ 0t,c*-he6%?⡸7)@'a=dRÐ~ 6tpi!ec>o&}.3qjP:YI-쨆lP3 ud*&TMhhHA j+N)I` #L+UY-*H(iV uy&VYi*Ya)>?wt4 p.jk!5e,#‡!Te)+ayH[ V$!zx꣸ >R*)%^) D v 3` )$,?d GR"i>ϵM+Ă)"ɸ6b j(#(}>x8NoznbA`;͡Q_&ց<h$Mo)TY_{LwGuZKMC ,+}WL d!GII-=F 3# W!'B/WD Ĥ!V H "P  B u;ƭf8HB@kJXV*(FAhAJ!6ԉvr԰D@en ؏NRV()(9D'TPSRFRnlR2qK(IaeBI).h@4CY('o6cjMUǓ6u-H6睌DqP(f?觵chv ,@ C?D~8[˘@|{cA{4Lܖ`p0^" DPW`#AN.#J2ciS *|]܃әQ zO:`I8!9l9@Lr\3_AB±{''鷎ybM )4ʧ[ԆӸ2Bb+ Cm.G[#逎QAQ9TxpRJ!%(*$f@`n|AlQ-/K2KBF~ eO0;j&22B1>2R%5S <TS!Q-?yP!9f67~ïaX5D5!w]dbI_GcnǼ{@&DuxA;m#y\, |0,4.Z$!jB Dw~kpC}No0E j uptbX ޿ɧ O&^ |He= h@:)΂kY@&PY(aB?3tDg_!! I "(KR1A~[_vlRm)$?!!"E2>ȏ GLW&G| -$MHh\ WJ&оH>%@ DyZ^[(}'>{=(*nJd cƢ(-ܒyHPd^S/+*C@)5yhd " bB MKP<[_L }dNSb\ӨM\E"ܭgj"`C0RIN~x C @F )c,aB La %Lń@#GxT\ `>(? +_-xo(xQV=P~;Q:vZ fQ0fڱoؚl|pAkhb' 8?4!h1E܅ _=͹wgm&Q8B i6(H>əkvy{@ɸfBAZq!ӭ d:O*# J=T~k';%4tk@pPY񸆤Q`YS̀U H<*wP2(ѴvPJ)%ج&bB#6''c!6x&7DHL>kV0a/~:ǛM.4Krae8%n# cc`f9IH)4"A՛Mt NG j9`OM䐐`9e-oEc*#]<792s%M2.F7@qZ# 1iD6j9fHE-B5i6%,X8Bi_Rg;]⛔ا,S2K]k 2,*9ώ,^}0jMa6(VNf-3Є KL0QXUz4rJi=3o>~8;l|:?1~Ö KI?/'eĻd}bXĴ`OPz0&DGt $)a$"'nu1g !m ֠;'ln`Nv#+p"3 IbqihĐ J**+dNwabQTY`!Us  DA@ @3( 6SNpA8P v'`PQ' *d D}6` -͌M(@D =t`G^2e!Sɱ? cTHBZ{R1#)!+ C*FBHCx$EGJTPeU8,,tp"N9#F:08B`3/n ,E3/%űh|{ (p@%-%hF !?1| ጔ݄sRWLZ|u. ҪYcא<|̔@`PCLy{Ҿ)<dl23>T)D$@Lv+RKVX$VaL&Њ"UK1hWBd鹔8'J,  ^c2]+aIaBͨ 6.Da`,' N0ۆhï@y+)Hx~=sf7$ O7, l~l*XnXsfp"ׂVc^4)ҔXD*zHFl礍vD|ܔ>5/rD `zq";/ 5&W8pLlm *ԂDJD-bAU$A V ҈(P ,!x2D)pN%R.)C8} 011u%5cM|۬f蹐z# A$?ⰇRKI-\vcF %wS%=G @3B򸝣Z,P429d:!h0܁ (MQDQ1M = v3b!!tD)Q21TyW5Gȍ$@v&0Nxorı8QP$ե&7}|Ɂ)&Dy/|V'8W S@g]{<]w ^f)YFxy'Cl>4(Ud ~-  0&ַHQ D*PW-/~Y@AW;1LI^*l8`A$2E9S #e_JU=) p'&cqqXڔBPM7A=ClU 25.I /" @?K@xB{IqU%* lBBe`X eʊ10#8` !& *`ã@C EU2L G#HobQ]REKH )iKx׉AD'I|!%C!'Ora䖖(u0#* `rm;=$}GÐoAsuZΩ  wU-_ddM(+KD*&HqC=qH/(`1?bΏ3]3'yޥꍁbcQV# d!46OTl64XJP0( 4#1K.zb"]R)dXR#”#ZZ0!߳7)=oi3Z"0DŌ9dQg}PLbhut 'JP-, ) %!ѨAjjgzϿ NS̓1e:&6r'ٶѪb@ dJCH&oپq>Hn $K4Q K K=;x68y8844~EGC"AP=a0Kp(K B$IY.b\ 3%9l0<8]:niiIlQc<'>S*`0"m: hJѬ,:8W J݉`qPEI*6+ xb DZO"9m 5lT [j9s|cP:WɽH;L qd>'x !G$"oIxrR?5B$&=1Ϡ<`hz>I2)]TUqouϪZE( C0)xv$vC(x0 Y%&X "l#n60(Q|@ iJO(pbX?1bd5cu,>JpkH+Aժa#R@l!gb"v&#i \aS\{a$IܤFDbH~2Z$@BX:$H@^V >1sy4y @a0##@ }(CG<A18ZtȳT:{!EnϥMpm,`m=P"5An4H0)-,'-A#C\P1:RT ee2HC#o[wg8s<$1HCD,úAOBXͽC {߰N "<9=C C ;2![`fж㊕B <(1&>S~tNׅ-eZC R(0R SmPZLƤt G (ZGQ,]#Ca$A ĨpHʵL `A8QQ!0N`"%W(t! 7x[Vkߑz .g{ ??#K2y> w90|^{lz D)>Ԥ'M"Sl !; Pg/P&#;T{ә9'&q_WS(p.Ȱ9*~E'׈UUTMTDU +:G40!(L)D=p~CmQ!=ApzXv@I|cE4SH6XZl2Ja&$A 8vP4)E B-&n-RXKēQ*Z#ֲ}su}!-nҴ2{Vy> $@SiW]axe,\{f]֧AaAX& CêiiާM&2B0o2J9ѳ}U˗gGVܱiَ7E[(JzZ  ) 9(!#4lc! 48iaT1aV9D p}13-C!Hl nJt;B$\g8$N` @0+, Q*Jbjs=qL!ʷ{f6rI2AC 0N_"f6 9œ6`F< Z\-W**NLx6%9Syvl" \BO,#G oBBGdІ}A#0pfL 0"'RKa;IXD(&XX¦)HTH.<4$;HuKJ`h?K>>B>A&5v@!PR^~/F43ydt+J@P@(Jh0yvdReIӸyeCa";NgNv8> QdЇb!DC!S|'| { NjDtDlb6; H "r"y!yLp$J`w0b>d J}GQ4`i,퓭ŒB: l72VަhLi}JcR1WeX W4yIdD)Ȳ ٤y8 u #M1!ڇ 1Yni 0n-!|ec3Ob!ŧ[$zIPBfpika2%bQN8GtVVdǀ{`-Z:NLS5 eO0݅pZ4#c ҂ӔaPp7(erqIGRϱ`iy@h0bT@衐x`G|8e #<2)1U؁JC vrq dGQu2T'DL%D C#CW%QL ]H%T&%v ~ AGGqpr^8B. [mRJY\ D-z^)&yRuiѠaV;6C7 I;iJ#rFN`u b؀t0Hhid;+듞-`ACɿP]e6IlY,\X}ʤ E! 9“FSlyxO=FD'Z6GŝS*9 ')9&dR'6JtrC B=_; d 6.W~d3K02Px] QoKKRɄaoiㅝ 옑K rJt9 !n]_r 0f9cpTnLT(MePJ+=Tx3>9nJ>tc4aGL3/>7)cO=Q&aռ"zwI|<0LTtaArM v  , uʲOHL; O.fX|l&bFɡD4F;`m`%JsR':&n >F0X@3΀22TsCJK2{ f*&a)hMb#ohkCD3BhF1 U"L9G.xA-ǠGK+f7,uoNHa G#OUs(t⩐s,frpflZad@]Mq,  #$vp^u%A"Ll&h|eX`DŽ3^/8Į[Y+'ЛܓXa͊9Y6sk%xݏ!sz>O>M ӠI@y9z%ӒP;KVTYscCKYh dhsKt8R0+S&I()8 КҌys"!d$7KI;"C 0K%z.\C2R{ a;(׷R/L8͎Hp2ܕYnFi;$Ǒܓ͌# 0LA1с„YOD=*ƻ`ylca9趟T#Ł<pPrW8z43NGk*T,M`DvPːqBK)UA4r`wt):m&p1lXACݛg#χd>CC`Ǟ\XᾤHp 14Ñb` m n"ЙyfbFL1?#34B~8i QaN֠VqxO>qI/xqڀ97BPUƆC֖l!Lq\ ҩYSqok(6(\ث 6 $ А9%-qIl 6C F >IR0X:(%7!ýp"LLUN09g2[;,RH#\CB(\!ޱj(N:t&84qgnj ،5ݩIP&:tIIn";qZE 8 ;PN8S_~0H,p HP$YPl#$=Ny\_}jP{B PE:hp4DL14@M"N0O""&J"B&R(6IS)HPoUQBQ-P;>R#u{M$.T( @բ2h!@)i cSZ@NS:` d&@CPB  5JuH(WWDKsp5)ʈ2,(B] ;qմBX-?6 ߧ={W~"aPAB9|JvD3W|S9% b@ЏxzCs1T T5jC!B%diS' !$!P$2BT 2aJ@5\L`r}#oŇ@AQT7 5o lmCHd"lٲ整,"*cVR$` Qb3!:PҦy@т0Hlo2ۼ7A e z3:3$0H ?Z.ÃfUK Aq7$ p9ir !D|@(P=lCCL&({c`A@ GS ]k`qr`yiX Q$22f`j h0 =EiURfH=Mm >0|C')NŴ!]c? 1aPC:@44#QıUڄhV*~zbKE̿t1jX6L˖98S&Ћ W(c{+_hI3 Jc5x,FX1ssr4`8s:tbqhaF4 xE¡u'dd&L5v:t֍I$ڦ@yq% @8RD#E͌7!OJ@L}YNT/k*(ZN0 `Gsu D+Dea:Efy79JL)( Pi߷ F֌0~ǑÕX(,O(ۦ" idCr$4 "mz!ܚ! 0DD1U33u1xM8kx0?QObA$ΑXLz <;(BM#Bpc;_a% $p = u2{I eD>"{8}=J ] ,&@D DP!hy]$WoEd{ Q&Ch'2銞< <Bv~J8NKDO%B$y/ćeBx…ur7UeTʎ$RaJݡC^d@W`<͟%$XCxwѹ AM+44XJOh'#`U{: 2 MMP{JT;4)%RD? 1A.)TjG.acH H C kfa3D( (sSrNIn'>"R #JP'؋[!'/{]LMH{3Ƀ_BHHFXQVPBkX-U:Wđ\uD@w-C*tA`'%ah;ă@:xf4uEE(kxN1 O8J)ijF O6"E41_xG1 ؝V)%{V1 NH#aF+ݲ@.Nq .N!*yP=ll(paDP }a)A?Vi;?pP3B 0xyI3iS#)pL#}Q[[=B5 ~cQ*dg`F'꓾Nl )e%!ɚRm%)D*9G$ udvjt!/p愧(] Ab 퓦$XQ,Q]54w eIPfCX[] 6a .\5MdPT!3L:XB)Eyt(F ̒P07?n6! ۪1z(qJ 柠Oq