pax_global_header00006660000000000000000000000064113524325220014511gustar00rootroot0000000000000052 comment=9fe638e952447d6513b6964bb17edcb349d7ba42 readahead-fedora-1.5.6/000077500000000000000000000000001135243252200146565ustar00rootroot00000000000000readahead-fedora-1.5.6/.gitignore000066400000000000000000000004531135243252200166500ustar00rootroot00000000000000*~ *.[ao] Makefile aclocal.m4 autom4te.cache stamp-h.in Makefile.in configure config.cache config.h config.h.in config.log config.guess config.status config.sub stamp-h stamp-h1 update.log m4 aclocal.m4 ABOUT-NLS config.rpath mkinstalldirs compile depcomp install-sh missing ltmain.sh libtool .deps readahead-fedora-1.5.6/AUTHORS000066400000000000000000000002771135243252200157340ustar00rootroot00000000000000Maintainer: Harald Hoyer Ex-Maintainer & Author: Karel Zak Credits: Ziga Mahkovec Arjan van de Ven readahead-fedora-1.5.6/COPYING000066400000000000000000000431311135243252200157130ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 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. readahead-fedora-1.5.6/ChangeLog000066400000000000000000000001741135243252200164320ustar00rootroot00000000000000This file is not maintained anymore. Use GIT log. Web interface: http://git.fedoraproject.org/git/?p=readahead;a=summary readahead-fedora-1.5.6/Makefile.am000066400000000000000000000006231135243252200167130ustar00rootroot00000000000000include $(top_srcdir)/config/include-Makefile.am SUBDIRS = src \ po \ scripts \ lists ACLOCAL_AMFLAGS = -I m4 EXTRA_DIST = README \ po/update-potfiles dist_sysconfsysconf_DATA = readahead sysconfsysconfdir = $(sysconfdir)/sysconfig distclean-local: -find . -name \*~ -o -name \*.orig -o -name \*.rej | xargs rm -f rm -rf autom4te.cache rpm-lists-rebuild: make -C lists rpm-lists-rebuild readahead-fedora-1.5.6/NEWS000066400000000000000000000070451135243252200153630ustar00rootroot00000000000000readahead-1.5.6 - several bugfixes [Raphael Geissert] readahead-1.5.5 - exit readahead-collector correctly, if audit is not enabled - make delay of services configurable - make minimum memory requirement configurable - log to /dev/kmsg in upstart scripts - upstart scripts updated for upstart 0.6 readahead-1.5.4 - cleanup audit filters with AUDIT_FILTER_EXIT - translation update readahead-1.5.3 - close leaked file descriptors readahead-1.5.2 - s/AUDIT_FILTER_ENTRY/AUDIT_FILTER_EXIT/g - also collect openat() calls - ignore files > 10MB readahead-1.5.1 - add syslog() to readahead-collector - console owner to readahead-collector readahead-1.5.0 - exclude complete /var readahead-1.4.9 - run readahead collector on every rpm database change - don't run readahead while collecting readahead-1.4.8 - set low io priority (no more regression in boot time with readahead) [Harald Hoyer] - moved data files from /etc/readahead.d to /var/lib/readahead [Harald Hoyer] - don't start readahead from readahead.event if system has less than 384MB [Harald Hoyer] readahead-1.4.7 - removed default.later from install [Harald Hoyer] - no more error message on missing lists in cron script [Harald Hoyer] readahead-1.4.6 - readahead moved to /sbin [Harald Hoyer] - fixed readahead event script to wait for /usr to be mounted [Harald Hoyer] - let it compile against audit-libs-1.7.5 again [Harald Hoyer] readahead-1.4.5 - readahead to startup with upstart events [Harald Hoyer] - readahead-collector runs monthly with upstart events [Harald Hoyer] - readahead: open files with O_NOATIME [Karel Zak, Arjan van de Ven] readahead-1.4.4 - po: update po files [Karel Zak] - po: add sr.po [Jovan Krunic] - po: add it.po [Francesco Tombolini] - po: add bg.po [Alexander Todorov] - po: add ar.po [Laith Juwaidah] - po: updated Polish translation - collector: add include for PATH_MAX [Karel Zak] - po: add pt_BR translation [Diego Búrigo] - po: add German translation [Fabian Affolter] readahead-1.4.3 - build-sys: add bzip2 automake init [Karel Zak] - po: update po files [Karel Zak] - build-sys: fix path to po/ [Karel Zak] - docs: update NEWS, release++ [Karel Zak] - scripts: move _early to S01 [Karel Zak] - readahead: cleanup %ld usage [Karel Zak] - collector: "(null)" name in the 2nd PATH line overwrite [Eric Sandeen] - collector: fix debug messages and RAC_EXECIGN usage [Karel Zak] readahead-1.4.2 - cleanup NEWS and version setting [Karel Zak] - print versions of autotools [Karel Zak] - auparse requires as a record separator [Karel Zak] - add pl.po [Piotr 'Raven' Dr#g] - fix e-mail setting in Makevars [Karel Zak] - update po files [Karel Zak] - remove debug message [Karel Zak] - add INIT INFOs to init scripts [Karel Zak] - improve init scripts [Karel Zak] - add RAC_LISTBEGIN [Karel Zak] readahead-1.4.1 - fix minor typos and add info about arch independent lists - readahead: fix missing type extcode in useage() - docs: fix typos in paths - docs: add info to changelogs - fix typo in init script - fix readahead paths readahead-1.4.1 - backport minor changes from master branch (e.g typos, ..) readahead-1.4 - move project to hosted.fedoraproject.org - source code maintained by GIT - various cleanups - new build-system based on autotools - --sort / --dont-sort support - add readahead-collector (based on audit system) - improve init scripts (supports full, custom and fast mode) readahead-fedora-1.5.6/README000066400000000000000000000055071135243252200155450ustar00rootroot00000000000000 INTRODUCTION ------------ readahead reads a list of files in advance and adds the pages to the page cache. The files are accessed and read in an efficient manner to minimize disk seeks. Best performance is achieved on an ext2 or ext3 file system. The program works in three modes: 1) full mode readahead /var/lib/readahead/*.early The program will read a new-line separated list of files from a text file. The files need not be in any special order. The following algorithm is used: a) sort the file list by path b) for each file: - open(2), - stat(2), - retrieve first data block from the corresponding inode c) sort the file list again d) calling readahead(2) for each file 2) sort mode readahead --sort --output=/var/lib/readahead/early.sorted /var/lib/readahead/*.early The program will read a new-line separated list of files from a text file. The files need not be in any special order. The same algorithm as for the "full mode" is used, but the sorted file list is written to stdout (or to --output=). The program doesn't call readahead(2) in this mode. Hint: use this mode in your cron.d scripts (but be careful with things like prelink). 3) fast mode readahead --dont-sort /var/lib/readahead/early.sorted The program will read a new-line separated list of files from a text file. The files need be in special order which is generated by the "sort mode". The program calls readahead(2) for each file. READAHEAD-COLLECTOR ------------------- The readahead collector allows to collect filenames of all files which are used during boot process. The goal is to generate effective and fully valid lists for your machine. The collector is based on kernel audit system and collects information about syscalls like open(), stat(), ... For more information about settings see /etc/readahead.conf. The best way how use the collector is boot with init=/sbin/readahead-collector kernel option. Please, don't add this option to your grub.conf permanently (due to negative performance impact). A newly generated lists you will found in /var/lib/readahead/custom.{early,later} WARNING: you have to disable auditd by: # chkconfig auditd off It's because auditd deletes all audit rules during boot. That's contra-productive for the collector. Update: readahead-collector is started by upstart, if /.readahead_collect is present, which is created by a monthly cron job. auditd and restorecond service startup is delayed. BUILDING -------- The e2fsprogs and e2fsprogs-devel packages are required to build and run the program. CREDIT ------ Arjan van de Ven - author of readahead idea Ziga Mahkovec - many performace improvements Karel Zak - upstream maintainer - author of readahead-collector readahead-fedora-1.5.6/TODO000066400000000000000000000014621135243252200153510ustar00rootroot00000000000000 * reduce number of fields in audit events and store to memory simplificated events only. I hope libauparse doesn't have care about number of fields. * add RAC_MAXDELAY and stop collecting if no events has comm in that time: Tony Nelson wrote: > Readahead-collector runs for 5 minutes, so its output might need pruning if > it ran each boot. When run manually, one knows to start stuff up and then > wait for readahead to finish. BTW, the collection loop has a 30 second > timeout that isn't being used. It might be reasonable to stop collecting > if no event has come in in that time. * enable collector on demand: Tony Nelson wrote: > If readahead-collect could run automatically, readahead might request it > for the next boot if "too many" files are not found (say, after a firefox > update). readahead-fedora-1.5.6/autogen.sh000077500000000000000000000037471135243252200166720ustar00rootroot00000000000000#!/bin/sh # # Helps generate autoconf/automake stuff, when code is checked out from SCM. # # Copyright (C) 2006, 2007 - Karel Zak # srcdir=`dirname $0` test -z "$srcdir" && srcdir=. THEDIR=`pwd` cd $srcdir DIE=0 (autopoint --version) < /dev/null > /dev/null 2>&1 || { echo echo "You must have autopoint installed to generate readahead build system.." echo "Download the appropriate package for your distribution," echo "or see http://www.gnu.org/software/gettext" DIE=1 } (autoconf --version) < /dev/null > /dev/null 2>&1 || { echo echo "You must have autoconf installed to generate readahead build system." echo echo "Download the appropriate package for your distribution," echo "or see http://www.gnu.org/software/autoconf" DIE=1 } (automake --version) < /dev/null > /dev/null 2>&1 || { echo echo "You must have automake installed to generate readahead build system." echo echo "Download the appropriate package for your distribution," echo "or see http://www.gnu.org/software/automake" DIE=1 } (autoheader --version) < /dev/null > /dev/null 2>&1 || { echo echo "You must have autoheader installed to generate readahead build system." echo echo "Download the appropriate package for your distribution," echo "or see http://www.gnu.org/software/autoheader" DIE=1 } if test "$DIE" -eq 1; then exit 1 fi test -f src/readahead.c || { echo "You must run this script in the top-level readahead directory" exit 1 } echo echo "Generate build-system by:" echo " autopoint: $(autopoint --version | head -1)" echo " aclocal: $(aclocal --version | head -1)" echo " autoconf: $(autoconf --version | head -1)" echo " autoheader: $(autoheader --version | head -1)" echo " automake: $(automake --version | head -1)" echo set -e autopoint --force $AP_OPTS aclocal -I m4 $AL_OPTS autoconf $AC_OPTS autoheader $AH_OPTS automake --add-missing $AM_OPTS cd $THEDIR echo echo "Now type '$srcdir/configure' and 'make' to compile." echo readahead-fedora-1.5.6/config/000077500000000000000000000000001135243252200161235ustar00rootroot00000000000000readahead-fedora-1.5.6/config/include-Makefile.am000066400000000000000000000003541135243252200216020ustar00rootroot00000000000000# The original default vaues of bindir and sbindir: usrbinexecdir = ${exec_prefix}/bin usrsbinexecdir = ${exec_prefix}/sbin AM_CPPFLAGS = -Wall -include $(top_builddir)/config.h -DLOCALEDIR=\"$(localedir)\" #AM_CFLAGS = -fsigned-char readahead-fedora-1.5.6/configure.ac000066400000000000000000000025371135243252200171530ustar00rootroot00000000000000AC_INIT(readahead, 1.5.6, harald@redhat.com) AC_PREREQ(2.59) AC_CONFIG_AUX_DIR(config) AM_INIT_AUTOMAKE([check-news -Wall foreign 1.9 dist-bzip2]) AC_CONFIG_SRCDIR(src/readahead.c) AM_GNU_GETTEXT_VERSION([0.17]) AM_GNU_GETTEXT([external]) AC_PREFIX_DEFAULT([/usr]) # Check whether exec_prefix=/usr: case $exec_prefix:$prefix in NONE:NONE | NONE:/usr | /usr:*) AC_MSG_NOTICE([Default --exec-prefix detected.]) case $bindir in '${exec_prefix}/bin') bindir=/bin AC_MSG_NOTICE([ --bindir defaults to /bin]) ;; esac case $sbindir in '${exec_prefix}/sbin') sbindir=/sbin AC_MSG_NOTICE([ --sbindir defaults to /sbin]) ;; esac ;; esac # Check whether prefix=/usr: case $prefix in NONE | /usr ) case $sysconfdir in '${prefix}/etc') sysconfdir=/etc AC_MSG_NOTICE([ --sysconfdir defaults to /etc]) ;; esac ;; esac AC_PROG_CC_STDC AC_PROG_RANLIB AC_SYS_LARGEFILE AC_CHECK_LIB(blkid, blkid_devno_to_devname) AC_CHECK_LIB(ext2fs, ext2fs_open) AC_CHECK_LIB(audit, audit_open) AC_CHECK_LIB(auparse, auparse_init) AC_CHECK_MEMBER([struct auditd_reply_list.reply], [AC_DEFINE(HAVE_AUDITD_REPLY_LIST, 1, [Define if libaudit.h defines struct auditd_reply_list.])], [], [#include ]) AC_CONFIG_HEADERS(config.h) LIBS="" AC_CONFIG_FILES([ Makefile src/Makefile scripts/Makefile lists/Makefile po/Makefile.in ]) AC_OUTPUT readahead-fedora-1.5.6/lists/000077500000000000000000000000001135243252200160145ustar00rootroot00000000000000readahead-fedora-1.5.6/lists/Makefile.am000066400000000000000000000007721135243252200200560ustar00rootroot00000000000000include $(top_srcdir)/config/include-Makefile.am EXTRA_DIST = README.lists default.early default.later sysconflistsdir = $(localstatedir)/lib/readahead # # make rpm-lists-rebuild FILES="default.early default.later" RPM_ARCH=x86_64 RPM_LIB=lib64 # # special case for RPM based distributions to convert lists # from arch independent to arch specific format rpm-lists-rebuild: for f in $(FILES); do \ sed 's|%{_lib}|$(RPM_LIB)|g; s|%{_arch}|$(RPM_ARCH)|g' < $$f > $$f.tmp ; \ mv $$f.tmp $$f ; \ done readahead-fedora-1.5.6/lists/README.lists000066400000000000000000000023261135243252200200340ustar00rootroot00000000000000 Readahead lists naming convention ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {early,later}.sorted The sorted lists are used for "fast mode" and this kind of lists has the greater priority for boot scripts. These lists are generated from custom.{early,later} or *.{early,later} lists by (for example): readahead --sort --output=early.sorted foo.early To keep your lists actual you can add this command to the crontab. custom.{early,later} This is customised version of "full mode" lists. These lists are generated for your machine by readahead-collector during boot process. To generate these lists you have to boot with: init=/sbin/readahead-collector Please, don't add this option to your grub.conf permanently (due to negative performance impact). *.{early,later} These are lists with the lowest priority. Arch independent lists ~~~~~~~~~~~~~~~~~~~~~~ If you want to distribute architecture independents lists (for example in src.rpm), use: readahead-check --template=arch_spec.list --output=arch_indep.list to convert back to arch-specific version use lists/Makefile and make rpm-lists-rebuild FILES="default.early default.later" \ RPM_ARCH=x86_64 RPM_LIB=lib64 Karel Zak readahead-fedora-1.5.6/lists/default.early000066400000000000000000000005551135243252200205030ustar00rootroot00000000000000/bin/awk /bin/basename /bin/bash /bin/cat /bin/chgrp /bin/chmod /bin/chown /bin/cut /bin/date /bin/dbus-daemon /bin/dd /bin/dmesg /bin/egrep /bin/fgrep /bin/grep /bin/gzip /bin/hostname /bin/ipcalc /bin/loadkeys /bin/login /bin/ls /bin/mkdir /bin/mktemp /bin/mount /bin/nice /bin/rm /bin/sed /bin/sh /bin/sleep /bin/sort /bin/touch /bin/true /bin/umount /bin/uname readahead-fedora-1.5.6/lists/default.later000066400000000000000000000012531135243252200204720ustar00rootroot00000000000000/bin/df /bin/netstat /usr/bin/ainit /usr/bin/cut /usr/bin/dbus-launch /usr/bin/dirname /usr/bin/eggcups /usr/bin/evolution /usr/bin/expr /usr/bin/firefox /usr/bin/gconftool-2 /usr/bin/gnome-keyring-daemon /usr/bin/gnome-open /usr/bin/gnome-panel /usr/bin/gnome-volume-manager /usr/bin/gnome-wm /usr/bin/htmlview /usr/bin/launchmail /usr/bin/magicdev /usr/bin/md5sum /usr/bin/metacity /usr/bin/mkfontdir /usr/bin/mkfontscale /usr/bin/nautilus /usr/bin/nautilus-connect-server /usr/bin/openoffice.org-2.0 /usr/bin/pam-panel-icon /usr/bin/printenv /usr/bin/rhn-applet-gui /usr/bin/sessreg /usr/bin/ssh-agent /usr/bin/system-config-date /usr/bin/which /usr/bin/xmodmap /usr/bin/xsetroot readahead-fedora-1.5.6/po/000077500000000000000000000000001135243252200152745ustar00rootroot00000000000000readahead-fedora-1.5.6/po/.gitignore000066400000000000000000000003131135243252200172610ustar00rootroot00000000000000stamp-po remove-potcdate.sin remove-potcdate.sed quot.sed insert-header.sin *.gmo en@quot.header en@boldquot.header boldquot.sed Rules-quot POTFILES Makevars.template Makefile.in.in Makefile.in Makefile readahead-fedora-1.5.6/po/LINGUAS000066400000000000000000000000631135243252200163200ustar00rootroot00000000000000ar bg ca de es fi it ja nl pl pt_BR sr sr@latin ta readahead-fedora-1.5.6/po/Makevars000066400000000000000000000034331135243252200167730ustar00rootroot00000000000000# Makefile variables for PO directory in any package using GNU gettext. # Usually the message domain is the same as the package name. DOMAIN = $(PACKAGE) # These two variables depend on the location of this directory. subdir = po top_builddir = .. # These options get passed to xgettext. XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ # This is the copyright holder that gets inserted into the header of the # $(DOMAIN).pot file. Set this to the copyright holder of the surrounding # package. (Note that the msgstr strings, extracted from the package's # sources, belong to the copyright holder of the package.) Translators are # expected to transfer the copyright for their translations to this person # or entity, or to disclaim their copyright. The empty string stands for # the public domain; in this case the translators are expected to disclaim # their copyright. COPYRIGHT_HOLDER = Karel Zak # This is the email address or URL to which the translators shall report # bugs in the untranslated strings: # - Strings which are not entire sentences, see the maintainer guidelines # in the GNU gettext documentation, section 'Preparing Strings'. # - Strings which use unclear terms or require additional context to be # understood. # - Strings which make invalid assumptions about notation of date, time or # money. # - Pluralisation problems. # - Incorrect English spelling. # - Incorrect formatting. # It can be your email address, or a mailing list address where translators # can write to without being subscribed, or the URL of a web page through # which the translators can contact you. MSGID_BUGS_ADDRESS = kzak@redhat.com # This is the list of locale categories, beyond LC_MESSAGES, for which the # message catalogs shall be used. It is usually empty. EXTRA_LOCALE_CATEGORIES = readahead-fedora-1.5.6/po/POTFILES.in000066400000000000000000000000521135243252200170460ustar00rootroot00000000000000src/readahead.c src/readahead-collector.c readahead-fedora-1.5.6/po/ar.po000066400000000000000000000072601135243252200162430ustar00rootroot00000000000000# Arabic translation of PACKAGE. # Copyright (C) 2007 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # , fuzzy # # # Laith Juwaidah , 2007, 2009. # Tareq Al Jurf , 2009. msgid "" msgstr "" "Project-Id-Version: readahead-1.5\n" "Report-Msgid-Bugs-To: kzak@redhat.com\n" "POT-Creation-Date: 2010-03-24 16:51+0100\n" "PO-Revision-Date: 2009-11-19 10:38+0300\n" "Last-Translator: Tareq Al Jurf \n" "Language-Team: Arabic <>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: src/readahead.c:121 #, c-format msgid "%s: error: max device count reached.\n" msgstr "%s: خطأ: تم الوصول الى العدد الأقصى للأجهزة.\n" #: src/readahead.c:164 #, c-format msgid "%s: error: ext2fs_open_inode_scan failed\n" msgstr "%s: خطأ: ext2fs_open_inode_scan فشل\n" #: src/readahead.c:169 #, c-format msgid "%s: error: ext2fs_open_inode_scan() failed\n" msgstr "%s: خطأ: ext2fs_open_inode_scan() فشل\n" #: src/readahead.c:196 src/readahead.c:405 #, c-format msgid "%s: error: %s: %s\n" msgstr "%s: خطأ: %s: %s\n" #: src/readahead.c:213 #, c-format msgid "%s: error: %s: unexpected format of sorted file\n" msgstr "%s: خطأ: %s: تنسيق غير متوقع لملف مرتب\n" #: src/readahead.c:234 #, c-format msgid "%s: error: max file count reached\n" msgstr "%s: خطأ: تم الوصول للعدد الأقصى للملفات\n" #: src/readahead.c:244 #, c-format msgid "Time (read lists): %ld ms\n" msgstr "وقت (قائمة القراءة): %ld م.ث.\n" #: src/readahead.c:248 #, c-format msgid "Create list with %d files\n" msgstr "إصنع قائمة ب %d ملفات\n" #: src/readahead.c:344 #, c-format msgid "Time (read blocks): %ld ms\n" msgstr "وقت (مقاطع القراءة): %ld م.ث.\n" #: src/readahead.c:348 #, c-format msgid "Read blocks for %d/%d files (%llu KB)\n" msgstr "مقاطع قراءة %d/%d ملفات (%llu ك.ب.)\n" #: src/readahead.c:389 #, c-format msgid "Time (readahead): %ld ms\n" msgstr "وقت (readahead): %ld م.ث.\n" #: src/readahead.c:392 #, c-format msgid "Preload %d/%d files (%llu KB)\n" msgstr "حمل %d/%d ملفات مسبقا (%llu ك.ب.)\n" #: src/readahead.c:424 #, c-format msgid "" "\n" "%s [options] [...]\n" "\n" msgstr "" "\n" "%s [إختيارات] <ملف> [...]\n" "\n" #: src/readahead.c:425 msgid "" " -s | --sort sort list of files only\n" " -o | --output output sorted list of files\n" " -d | --dont-sort call readahead(2) for already sorted list\n" " -h | --help this help\n" " -v | --verbose verbose mode\n" " -t | --timing report wasted time\n" " -m | --maxsize <10240> max size of a file to be preloaded (in KiB)\n" "\n" msgstr "" " -s | --sort رتب قائمة ملفات فقط\n" " -o | --output <ملف> أخرج قائمة ملفات مرتبة\n" " -d | --dont-sort إستدعي readahead(2) لقائمة مرتبة\n" " -h | --help هذه المساعدة\n" " -v | --verbose نمط كلامي\n" " -t | --timing أعطي تقريرا بالوقت الضائع\n" " -m | --الحجم-الأقصى <10240> الحجم الأقى لملف المحمل مسبقا (بـ ك.ب)\n" #: src/readahead.c:504 #, c-format msgid "Mode: %s\n" msgstr "نمط: %s\n" #: src/readahead.c:508 #, c-format msgid "Output: %s\n" msgstr "خروج: %s\n" #: src/readahead.c:510 #, c-format msgid "List: %s\n" msgstr "قائمة: %s\n" #: src/readahead.c:547 #, c-format msgid "Time total: %ld ms\n" msgstr "مجموع الوقت: %ld م.ث.\n" readahead-fedora-1.5.6/po/as.po000066400000000000000000000076041135243252200162460ustar00rootroot00000000000000# Copyright (C) YEAR Karel Zak # This file is distributed under the same license as the PACKAGE package. # # Amitakhya Phukan , 2009. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: kzak@redhat.com\n" "POT-Creation-Date: 2009-10-13 12:17+0200\n" "PO-Revision-Date: 2009-12-10 11:56+0530\n" "Last-Translator: Amitakhya Phukan \n" "Language-Team: Assamese <>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.0\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: src/readahead.c:121 #, c-format msgid "%s: error: max device count reached.\n" msgstr "%s: ত্ৰুটি: যন্ত্ৰৰ সৰ্বাধিক সংখ্যা পূৰ্ণ হৈছে ।\n" #: src/readahead.c:164 #, c-format msgid "%s: error: ext2fs_open_inode_scan failed\n" msgstr "%s: ত্ৰুটি: ext2fs_open_inode_scan বিফল\n" #: src/readahead.c:169 #, c-format msgid "%s: error: ext2fs_open_inode_scan() failed\n" msgstr "%s: ত্ৰুটি: ext2fs_open_inode_scan() বিফল\n" #: src/readahead.c:196 src/readahead.c:398 #, c-format msgid "%s: error: %s: %s\n" msgstr "%s: ভুল: %s: %s\n" #: src/readahead.c:213 #, c-format msgid "%s: error: %s: unexpected format of sorted file\n" msgstr "%s: ত্ৰুটি: %s: ক্ৰমবিন্যাস্ত নথিপত্ৰৰ অপ্ৰত্যাশিত বিন্যাস\n" #: src/readahead.c:234 #, c-format msgid "%s: error: max file count reached\n" msgstr "%s: ত্ৰুটি: নথিপত্ৰৰ সৰ্বাধিক সংখ্যা পূৰ্ণ হৈছে ।\n" #: src/readahead.c:244 #, c-format msgid "Time (read lists): %ld ms\n" msgstr "সময় (তালিকা পঢ়া): %ld ms\n" #: src/readahead.c:248 #, c-format msgid "Create list with %d files\n" msgstr "%d নথিপত্ৰ সহ তালিকা নিৰ্মাণ কৰা হ'ব\n" #: src/readahead.c:338 #, c-format msgid "Time (read blocks): %ld ms\n" msgstr "সময় (ব্লক পঢ়া): %ld ms\n" #: src/readahead.c:342 #, c-format msgid "Read blocks for %d/%d files (%llu KB)\n" msgstr "%d/%d নথিপত্ৰৰ বাবে ব্লক পঢ়া হ'ব (%llu KB)\n" #: src/readahead.c:382 #, c-format msgid "Time (readahead): %ld ms\n" msgstr "সময় (readahead): %ld ms\n" #: src/readahead.c:385 #, c-format msgid "Preload %d/%d files (%llu KB)\n" msgstr "%d/%d নথিপত্ৰ প্ৰি-লোড কৰা হ'ব (%llu KB)\n" #: src/readahead.c:413 #, c-format msgid "" "\n" "%s [options] [...]\n" "\n" msgstr "" "\n" "%s [options] [...]\n" "\n" #: src/readahead.c:414 msgid "" " -s | --sort sort list of files only\n" " -o | --output output sorted list of files\n" " -d | --dont-sort call readahead(2) for already sorted list\n" " -h | --help this help\n" " -v | --verbose verbose mode\n" " -t | --timing report wasted time\n" " -m | --maxsize <10240> max size of a file to be preloaded (in KiB)\n" "\n" msgstr "" " -s | --sort sort list of files only\n" " -o | --output output sorted list of files\n" " -d | --dont-sort call readahead(2) for already sorted list\n" " -h | --help this help\n" " -v | --verbose verbose mode\n" " -t | --timing report wasted time\n" " -m | --maxsize <10240> max size of a file to be preloaded (in KiB)\n" "\n" #: src/readahead.c:493 #, c-format msgid "Mode: %s\n" msgstr "মোড: %s\n" #: src/readahead.c:497 #, c-format msgid "Output: %s\n" msgstr "ফলাফল: %s\n" #: src/readahead.c:499 #, c-format msgid "List: %s\n" msgstr "তালিকা: %s\n" #: src/readahead.c:532 #, c-format msgid "Time total: %ld ms\n" msgstr "সময় সৰ্বমোঠ: %ld ms\n" readahead-fedora-1.5.6/po/ast.po000066400000000000000000000067541135243252200164370ustar00rootroot00000000000000# Asturian translation of readahead. # This file is distributed under the same license as the readahead package. # # Astur , 2009. # # msgid "" msgstr "" "Project-Id-Version: readahead\n" "Report-Msgid-Bugs-To: kzak@redhat.com\n" "POT-Creation-Date: 2009-10-13 12:17+0200\n" "PO-Revision-Date: 2009-12-22 19:27+0100\n" "Last-Translator: astur \n" "Language-Team: Fedora asturian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: asturian\n" "X-Poedit-SourceCharset: utf-8\n" #: src/readahead.c:121 #, c-format msgid "%s: error: max device count reached.\n" msgstr "%s: error: algamóse'l númberu máximu de preseos permitíu.\n" #: src/readahead.c:164 #, c-format msgid "%s: error: ext2fs_open_inode_scan failed\n" msgstr "%s: error: ext2fs_open_inode_scan falló\n" #: src/readahead.c:169 #, c-format msgid "%s: error: ext2fs_open_inode_scan() failed\n" msgstr "%s: error: ext2fs_open_inode_scan() falló\n" #: src/readahead.c:196 #: src/readahead.c:398 #, c-format msgid "%s: error: %s: %s\n" msgstr "%s: error: %s: %s\n" #: src/readahead.c:213 #, c-format msgid "%s: error: %s: unexpected format of sorted file\n" msgstr "%s: error: %s: formatu inesperáu del ficheru axeitáu\n" #: src/readahead.c:234 #, c-format msgid "%s: error: max file count reached\n" msgstr "%s: error: algamóse'l númberu máximu de ficheros permitíu\n" #: src/readahead.c:244 #, c-format msgid "Time (read lists): %ld ms\n" msgstr "Tiempu (llectura de llistes) %ld ms\n" #: src/readahead.c:248 #, c-format msgid "Create list with %d files\n" msgstr "Crear llista colos ficheros %d\n" #: src/readahead.c:338 #, c-format msgid "Time (read blocks): %ld ms\n" msgstr "Tiempu (llectura de bloques): %ld ms\n" #: src/readahead.c:342 #, c-format msgid "Read blocks for %d/%d files (%llu KB)\n" msgstr "Lleer bloques pa los ficheros %d%d (%llu KB)\n" #: src/readahead.c:382 #, c-format msgid "Time (readahead): %ld ms\n" msgstr "Tiempu (readahead): %ld ms\n" #: src/readahead.c:385 #, c-format msgid "Preload %d/%d files (%llu KB)\n" msgstr "Precarga de los ficheros %d/%d (%llu KB)\n" #: src/readahead.c:413 #, c-format msgid "" "\n" "%s [options] [...]\n" "\n" msgstr "" "\n" "%s [opciones] [...]\n" "\n" #: src/readahead.c:414 msgid "" " -s | --sort sort list of files only\n" " -o | --output output sorted list of files\n" " -d | --dont-sort call readahead(2) for already sorted list\n" " -h | --help this help\n" " -v | --verbose verbose mode\n" " -t | --timing report wasted time\n" " -m | --maxsize <10240> max size of a file to be preloaded (in KiB)\n" "\n" msgstr "" " -s | --sort namái llista axeitada de ficheros\n" " -o | --output salida pa la llista axeitada de ficheros\n" " -d | --dont-sort llamar readahead(2) pa una llista yá axeitada\n" " -h | --help esti conteníu d'aida\n" " -v | --verbose más mensaxes\n" " -t | --timing informe del tiempu perdíu\n" " -m | --maxsize <10240> tamañu máximu d'un ficheru a precargar (en KiB)\n" "\n" #: src/readahead.c:493 #, c-format msgid "Mode: %s\n" msgstr "Mou: %s\n" #: src/readahead.c:497 #, c-format msgid "Output: %s\n" msgstr "Salida: %s\n" #: src/readahead.c:499 #, c-format msgid "List: %s\n" msgstr "Llista: %s\n" #: src/readahead.c:532 #, c-format msgid "Time total: %ld ms\n" msgstr "Tiempu total: %ld ms\n" readahead-fedora-1.5.6/po/bg.po000066400000000000000000000077141135243252200162350ustar00rootroot00000000000000# Bulgarian translation of readahead. # Copyright (C) 2008 THE readahead'S COPYRIGHT HOLDER # This file is distributed under the same license as the readahead package. # Alexander Todorov , 2008. # , fuzzy # # msgid "" msgstr "" "Project-Id-Version: readahead-1.5\n" "Report-Msgid-Bugs-To: kzak@redhat.com\n" "POT-Creation-Date: 2010-03-24 16:51+0100\n" "PO-Revision-Date: 2008-03-20 16:27+0100\n" "Last-Translator: Alexander Todorov \n" "Language-Team: Bulgarian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: src/readahead.c:121 #, c-format msgid "%s: error: max device count reached.\n" msgstr "%s: ГРЕШКА: Достигнат е максималния брой устройства.\n" #: src/readahead.c:164 #, c-format msgid "%s: error: ext2fs_open_inode_scan failed\n" msgstr "%s: ГРЕШКА: ext2fs_open_inode_scan се провали\n" #: src/readahead.c:169 #, c-format msgid "%s: error: ext2fs_open_inode_scan() failed\n" msgstr "%s: ГРЕШКА: ext2fs_open_inode_scan() се провали\n" #: src/readahead.c:196 src/readahead.c:405 #, c-format msgid "%s: error: %s: %s\n" msgstr "%s: ГРЕШКА: %s: %s\n" #: src/readahead.c:213 #, c-format msgid "%s: error: %s: unexpected format of sorted file\n" msgstr "%s: ГРЕШКА: %s: Неочакван формат на сортирания файл\n" #: src/readahead.c:234 #, c-format msgid "%s: error: max file count reached\n" msgstr "%s:·ГРЕШКА:·Достигнат е максималния брой файлове\n" #: src/readahead.c:244 #, c-format msgid "Time (read lists): %ld ms\n" msgstr "Време (прочитане на списъци): %ld мс\n" #: src/readahead.c:248 #, c-format msgid "Create list with %d files\n" msgstr "Създаване на списък с %d файла\n" #: src/readahead.c:344 #, c-format msgid "Time (read blocks): %ld ms\n" msgstr "Време (прочитане на блокове): %ld мс\n" #: src/readahead.c:348 #, c-format msgid "Read blocks for %d/%d files (%llu KB)\n" msgstr "Четене на блокове за %d/%d файла (%llu КБ)\n" #: src/readahead.c:389 #, c-format msgid "Time (readahead): %ld ms\n" msgstr "Време (readahead): %ld мс\n" #: src/readahead.c:392 #, c-format msgid "Preload %d/%d files (%llu KB)\n" msgstr "Предварително зареждане на %d/%d файла (%llu КБ)\n" #: src/readahead.c:424 #, c-format msgid "" "\n" "%s [options] [...]\n" "\n" msgstr "" "\n" "%s [опции] <файл> [...]\n" "\n" #: src/readahead.c:425 #, fuzzy msgid "" " -s | --sort sort list of files only\n" " -o | --output output sorted list of files\n" " -d | --dont-sort call readahead(2) for already sorted list\n" " -h | --help this help\n" " -v | --verbose verbose mode\n" " -t | --timing report wasted time\n" " -m | --maxsize <10240> max size of a file to be preloaded (in KiB)\n" "\n" msgstr "" "··-s·|·--sort···········сортиране на списъка с файлове\n" "··-o·|·--output·<файл>··запис на сортирания списък файлове\n" "··-d·|·--dont-sort······изпълнение на·readahead(2)·за вече сортиран списък\n" "··-h·|·--help···········показване на тази помощ\n" "··-v·|·--verbose········подробна информация\n" "··-t·|·--timing·········справка за използвано време\n" "\n" #: src/readahead.c:504 #, c-format msgid "Mode: %s\n" msgstr "Режим: %s\n" #: src/readahead.c:508 #, c-format msgid "Output: %s\n" msgstr "Запис в: %s\n" #: src/readahead.c:510 #, c-format msgid "List: %s\n" msgstr "Списък: %s\n" #: src/readahead.c:547 #, c-format msgid "Time total: %ld ms\n" msgstr "Общо време: %ld мс\n" readahead-fedora-1.5.6/po/bn_IN.po000066400000000000000000000100551135243252200166220ustar00rootroot00000000000000# translation of readahead.master.bn_IN.po to Bengali INDIA # Copyright (C) YEAR Karel Zak # This file is distributed under the same license as the PACKAGE package. # # Runa Bhattacharjee , 2009. msgid "" msgstr "" "Project-Id-Version: readahead.master.bn_IN\n" "Report-Msgid-Bugs-To: kzak@redhat.com\n" "POT-Creation-Date: 2009-10-06 16:21+0200\n" "PO-Revision-Date: 2009-10-07 10:24+0530\n" "Last-Translator: Runa Bhattacharjee \n" "Language-Team: Bengali INDIA \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: src/readahead.c:121 #, c-format msgid "%s: error: max device count reached.\n" msgstr "%s: ত্রুটি: ডিভাইসের সর্বাধিক সংখ্যা পূর্ণ হয়েছে।\n" #: src/readahead.c:162 #, c-format msgid "%s: error: ext2fs_open_inode_scan failed\n" msgstr "%s: ত্রুটি: ext2fs_open_inode_scan বিফল\n" #: src/readahead.c:167 #, c-format msgid "%s: error: ext2fs_open_inode_scan() failed\n" msgstr "%s: ত্রুটি: ext2fs_open_inode_scan() বিফল\n" #: src/readahead.c:194 src/readahead.c:396 #, c-format msgid "%s: error: %s: %s\n" msgstr "%s: ত্রুটি: %s: %s\n" #: src/readahead.c:211 #, c-format msgid "%s: error: %s: unexpected format of sorted file\n" msgstr "%s: ত্রুটি: %s: ক্রমবিন্যাস্ত ফাইলের অপ্রত্যাশিত বিন্যাস\n" #: src/readahead.c:232 #, c-format msgid "%s: error: max file count reached\n" msgstr "%s: ত্রুটি: ফাইলের সর্বাধিক সংখ্যা পূর্ণ হয়েছে।\n" #: src/readahead.c:242 #, c-format msgid "Time (read lists): %ld ms\n" msgstr "সময় (তালিকা পাঠ): %ld ms\n" #: src/readahead.c:246 #, c-format msgid "Create list with %d files\n" msgstr "%d-টি ফাইল সহ তালিকা নির্মাণ করা হবে\n" #: src/readahead.c:336 #, c-format msgid "Time (read blocks): %ld ms\n" msgstr "সময় (ব্লক পাঠ): %ld ms\n" #: src/readahead.c:340 #, c-format msgid "Read blocks for %d/%d files (%llu KB)\n" msgstr "%d/%d ফাইলের জন্য ব্লক পাঠ করা হবে (%llu KB)\n" #: src/readahead.c:380 #, c-format msgid "Time (readahead): %ld ms\n" msgstr "সময় (readahead): %ld ms\n" #: src/readahead.c:383 #, c-format msgid "Preload %d/%d files (%llu KB)\n" msgstr "%d/%d ফাইল প্রি-লোড করা হবে (%llu KB)\n" #: src/readahead.c:411 #, c-format msgid "" "\n" "%s [options] [...]\n" "\n" msgstr "" "\n" "%s [options] [...]\n" "\n" # retaining in english as the command line output gets messed up #: src/readahead.c:412 msgid "" " -s | --sort sort list of files only\n" " -o | --output output sorted list of files\n" " -d | --dont-sort call readahead(2) for already sorted list\n" " -h | --help this help\n" " -v | --verbose verbose mode\n" " -t | --timing report wasted time\n" " -m | --maxsize <10240> max size of a file to be preloaded (in KiB)\n" "\n" msgstr "" " -s | --sort sort list of files only\n" " -o | --output output sorted list of files\n" " -d | --dont-sort call readahead(2) for already sorted list\n" " -h | --help this help\n" " -v | --verbose verbose mode\n" " -t | --timing report wasted time\n" " -m | --maxsize <10240> max size of a file to be preloaded (in KiB)\n" "\n" #: src/readahead.c:491 #, c-format msgid "Mode: %s\n" msgstr "মোড: %s\n" #: src/readahead.c:495 #, c-format msgid "Output: %s\n" msgstr "ফলাফল: %s\n" #: src/readahead.c:497 #, c-format msgid "List: %s\n" msgstr "তালিকা: %s\n" #: src/readahead.c:530 #, c-format msgid "Time total: %ld ms\n" msgstr "সময় সর্বমোট: %ld ms\n" readahead-fedora-1.5.6/po/ca.po000066400000000000000000000077301135243252200162260ustar00rootroot00000000000000# Catalan translations for readahead package. # Copyright (C) 2008 Red Hat, Inc. # This file is distributed under the same license as the # readahead package. # # Xavier Queralt Mateu , 2008. # # This file is translated according to the glossary and style guide of # Softcatalà. If you plan to modify this file, please read first the page # of the Catalan translation team for the Fedora project at: # http://www.softcatala.org/projectes/fedora/ # and contact the previous translator # # Aquest fitxer s'ha de traduir d'acord amb el recull de termes i la guia # d'estil de Softcatalà. Si voleu modificar aquest fitxer, llegiu si # us plau la pàgina de catalanització del projecte Fedora a: # http://www.softcatala.org/projectes/fedora/ # i contacteu l'anterior traductor/a. # msgid "" msgstr "" "Project-Id-Version: readhead\n" "Report-Msgid-Bugs-To: kzak@redhat.com\n" "POT-Creation-Date: 2010-03-24 16:51+0100\n" "PO-Revision-Date: 2008-10-05 01:25+0200\n" "Last-Translator: Xavier Queralt Mateu \n" "Language-Team: Catalan \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: src/readahead.c:121 #, c-format msgid "%s: error: max device count reached.\n" msgstr "%s: error: s'ha arribat al nombre màxim de dispositius.\n" #: src/readahead.c:164 #, c-format msgid "%s: error: ext2fs_open_inode_scan failed\n" msgstr "%s: error: ext2fs_open_inode_scan ha fallat\n" #: src/readahead.c:169 #, c-format msgid "%s: error: ext2fs_open_inode_scan() failed\n" msgstr "%s: error: ext2fs_open_inode_scan() ha fallat\n" #: src/readahead.c:196 src/readahead.c:405 #, c-format msgid "%s: error: %s: %s\n" msgstr "%s: error: %s: %s\n" #: src/readahead.c:213 #, c-format msgid "%s: error: %s: unexpected format of sorted file\n" msgstr "%s: error: %s: el format del fitxer ordenat no és correcte\n" #: src/readahead.c:234 #, c-format msgid "%s: error: max file count reached\n" msgstr "%s: error: s'ha arribat al nombre màxim de fitxers\n" #: src/readahead.c:244 #, c-format msgid "Time (read lists): %ld ms\n" msgstr "Temps (llegir llistes): %ld ms\n" #: src/readahead.c:248 #, c-format msgid "Create list with %d files\n" msgstr "Crea la llista amb %d fitxers\n" #: src/readahead.c:344 #, c-format msgid "Time (read blocks): %ld ms\n" msgstr "Temps (llegir blocs): %ld ms\n" #: src/readahead.c:348 #, c-format msgid "Read blocks for %d/%d files (%llu KB)\n" msgstr "Blocs llegits de %d/%d fitxers (%llu kB)\n" #: src/readahead.c:389 #, c-format msgid "Time (readahead): %ld ms\n" msgstr "Temps (readahead): %ld ms\n" #: src/readahead.c:392 #, c-format msgid "Preload %d/%d files (%llu KB)\n" msgstr "Precàrrega de %d/%d fitxers (%llu kB)\n" #: src/readahead.c:424 #, c-format msgid "" "\n" "%s [options] [...]\n" "\n" msgstr "" "\n" "%s [opcions] [...]\n" "\n" #: src/readahead.c:425 #, fuzzy msgid "" " -s | --sort sort list of files only\n" " -o | --output output sorted list of files\n" " -d | --dont-sort call readahead(2) for already sorted list\n" " -h | --help this help\n" " -v | --verbose verbose mode\n" " -t | --timing report wasted time\n" " -m | --maxsize <10240> max size of a file to be preloaded (in KiB)\n" "\n" msgstr "" " -s | --sort només ordena la llista de fitxers\n" " -o | --output escriu la llista ordenada de fitxers\n" " -d | --dont-sort crida a readahead(2) amb una llista ja ordenada\n" " -h | --help mostra aquesta ajuda\n" " -v | --verbose mode detallat\n" " -t | --timing informa del temps perdut\n" "\n" #: src/readahead.c:504 #, c-format msgid "Mode: %s\n" msgstr "Mode: %s\n" #: src/readahead.c:508 #, c-format msgid "Output: %s\n" msgstr "Sortida: %s\n" #: src/readahead.c:510 #, c-format msgid "List: %s\n" msgstr "Llista: %s\n" #: src/readahead.c:547 #, c-format msgid "Time total: %ld ms\n" msgstr "Temps total: %ld ms\n" readahead-fedora-1.5.6/po/da.po000066400000000000000000000066021135243252200162240ustar00rootroot00000000000000# Danish translation of readahead. # Copyright (C) 2009 Karel Zak # This file is distributed under the same license as the readahead package. # Kris Thomsen , 2009. # msgid "" msgstr "" "Project-Id-Version: readahead\n" "Report-Msgid-Bugs-To: kzak@redhat.com\n" "POT-Creation-Date: 2009-10-13 12:17+0200\n" "PO-Revision-Date: 2009-10-16 22:37+0200\n" "Last-Translator: Kris Thomsen \n" "Language-Team: Danish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: src/readahead.c:121 #, c-format msgid "%s: error: max device count reached.\n" msgstr "%s: fejl: maksimalt antal enheder opnået.\n" #: src/readahead.c:164 #, c-format msgid "%s: error: ext2fs_open_inode_scan failed\n" msgstr "%s: fejl: ext2fsorh_open_inode_scan fejlede\n" #: src/readahead.c:169 #, c-format msgid "%s: error: ext2fs_open_inode_scan() failed\n" msgstr "%s: fejl: ext2fs_open_inode_scan() fejlede\n" #: src/readahead.c:196 src/readahead.c:398 #, c-format msgid "%s: error: %s: %s\n" msgstr "%s: fejl: %s: %s\n" #: src/readahead.c:213 #, c-format msgid "%s: error: %s: unexpected format of sorted file\n" msgstr "%s; fejl: %s: ikke uventet format på sorteret fil\n" #: src/readahead.c:234 #, c-format msgid "%s: error: max file count reached\n" msgstr "%s: fejl: maksimalt antal filer opnået\n" #: src/readahead.c:244 #, c-format msgid "Time (read lists): %ld ms\n" msgstr "Tid (læs lister): %ld ms\n" #: src/readahead.c:248 #, c-format msgid "Create list with %d files\n" msgstr "Opret liste med %d filer\n" #: src/readahead.c:338 #, c-format msgid "Time (read blocks): %ld ms\n" msgstr "Tid (læs blokke): %ld ms\n" #: src/readahead.c:342 #, c-format msgid "Read blocks for %d/%d files (%llu KB)\n" msgstr "Læs blokke for %d/%d filer (%llu kB)\n" #: src/readahead.c:382 #, c-format msgid "Time (readahead): %ld ms\n" msgstr "Tid (readahead): %ld ms\n" #: src/readahead.c:385 #, c-format msgid "Preload %d/%d files (%llu KB)\n" msgstr "Forhåndsindlæs %d/%d filer (%llu kB)\n" #: src/readahead.c:413 #, c-format msgid "" "\n" "%s [options] [...]\n" "\n" msgstr "" "\n" "%s [tilvalg] [...]\n" "\n" #: src/readahead.c:414 msgid "" " -s | --sort sort list of files only\n" " -o | --output output sorted list of files\n" " -d | --dont-sort call readahead(2) for already sorted list\n" " -h | --help this help\n" " -v | --verbose verbose mode\n" " -t | --timing report wasted time\n" " -m | --maxsize <10240> max size of a file to be preloaded (in KiB)\n" "\n" msgstr "" " -s | --sort udskriv sorteret liste af filer\n" " -o | --output opret output indeholdende sorteret liste over filer\n" " -d | --dont-sort kald readahead(2) for allerede sorteret liste\n" " -h | --help denne hjælp\n" " -v | --verbose uddybende tilstand\n" " -t | --timing rapportér spildtid\n" " -m | --maxsize <10240> maks. størrelse for en fil der skal forhåndsindlæses (i KiB)\n" "\n" #: src/readahead.c:493 #, c-format msgid "Mode: %s\n" msgstr "Tilstand: %s\n" #: src/readahead.c:497 #, c-format msgid "Output: %s\n" msgstr "Output: %s\n" #: src/readahead.c:499 #, c-format msgid "List: %s\n" msgstr "Liste: %s\n" #: src/readahead.c:532 #, c-format msgid "Time total: %ld ms\n" msgstr "Tid i alt: %ld ms\n" readahead-fedora-1.5.6/po/de.po000066400000000000000000000067671135243252200162440ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Fabian Affolter , 2007, 2009. # Jens Maucher , 2009. msgid "" msgstr "" "Project-Id-Version: readahead-1.5\n" "Report-Msgid-Bugs-To: kzak@redhat.com\n" "POT-Creation-Date: 2010-03-24 16:51+0100\n" "PO-Revision-Date: 2009-10-15 21:01+0200\n" "Last-Translator: Jens Maucher \n" "Language-Team: de \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: German\n" #: src/readahead.c:121 #, c-format msgid "%s: error: max device count reached.\n" msgstr "%s: Fehler: maximale Anzahl Geräte erreicht.\n" #: src/readahead.c:164 #, c-format msgid "%s: error: ext2fs_open_inode_scan failed\n" msgstr "%s: Fehler: ext2fs_open_inode_scan fehlgeschlagen\n" #: src/readahead.c:169 #, c-format msgid "%s: error: ext2fs_open_inode_scan() failed\n" msgstr "%s: Fehler: ext2fs_open_inode_scan() fehlgeschlagen\n" #: src/readahead.c:196 src/readahead.c:405 #, c-format msgid "%s: error: %s: %s\n" msgstr "%s: Fehler: %s: %s\n" #: src/readahead.c:213 #, c-format msgid "%s: error: %s: unexpected format of sorted file\n" msgstr "%s: Fehler: %s: Unerwartetes Format der sortierten Liste\n" #: src/readahead.c:234 #, c-format msgid "%s: error: max file count reached\n" msgstr "%s: Fehler: max file count reached\n" #: src/readahead.c:244 #, c-format msgid "Time (read lists): %ld ms\n" msgstr "Zeit (Listen gelesen): %ld ms\n" #: src/readahead.c:248 #, c-format msgid "Create list with %d files\n" msgstr "Erzeuge Liste mit %d Dateien\n" #: src/readahead.c:344 #, c-format msgid "Time (read blocks): %ld ms\n" msgstr "Zeit (Blöcke gelesen): %ld ms\n" #: src/readahead.c:348 #, c-format msgid "Read blocks for %d/%d files (%llu KB)\n" msgstr "Lese Blöcke für %d/%d Dateien (%llu KB)\n" #: src/readahead.c:389 #, c-format msgid "Time (readahead): %ld ms\n" msgstr "Zeit (vorausgelesen): %ld ms\n" #: src/readahead.c:392 #, c-format msgid "Preload %d/%d files (%llu KB)\n" msgstr "Vorausgeladen %d/%d Dateien (%llu KB)\n" #: src/readahead.c:424 #, c-format msgid "" "\n" "%s [options] [...]\n" "\n" msgstr "" "\n" "%s [Optionen] [...]\n" "\n" #: src/readahead.c:425 msgid "" " -s | --sort sort list of files only\n" " -o | --output output sorted list of files\n" " -d | --dont-sort call readahead(2) for already sorted list\n" " -h | --help this help\n" " -v | --verbose verbose mode\n" " -t | --timing report wasted time\n" " -m | --maxsize <10240> max size of a file to be preloaded (in KiB)\n" "\n" msgstr "" " -s | --sort nur eine sortierte Liste aller Dateien\n" " -o | --output Ausgabe der sortierten Liste der Dateien\n" " -d | --dont-sort rufe readahead(2) für bereits sortierte Liste auf\n" " -h | --help diese Hilfe\n" " -v | --verbose wortreicher Modus\n" " -t | --timing meldet vergeudete Zeit\n" "..-m | --maxsize <10240> maximale Größe einer Datei zum vorladen (in KiB)\n" "\n" #: src/readahead.c:504 #, c-format msgid "Mode: %s\n" msgstr "Modus: %s\n" #: src/readahead.c:508 #, c-format msgid "Output: %s\n" msgstr "Ausgabe: %s\n" #: src/readahead.c:510 #, c-format msgid "List: %s\n" msgstr "Liste: %s\n" #: src/readahead.c:547 #, c-format msgid "Time total: %ld ms\n" msgstr "Zeit total: %ld ms\n" readahead-fedora-1.5.6/po/el.po000066400000000000000000000077671135243252200162550ustar00rootroot00000000000000# Greek translation of readahead # Copyright (C) 2010 Fedora Project Greek Translation Team # This file is distributed under the same license as the readahead package. # # Pierros Papadeas , 2010. # msgid "" msgstr "" "Project-Id-Version: master\n" "Report-Msgid-Bugs-To: kzak@redhat.com\n" "POT-Creation-Date: 2009-10-13 12:17+0200\n" "PO-Revision-Date: 2010-03-01 20:54+0200\n" "Last-Translator: Pierros Papadeas \n" "Language-Team: Greek \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: Greek\n" #: src/readahead.c:121 #, c-format msgid "%s: error: max device count reached.\n" msgstr "%s: σφάλμα: μέγιστος αριθμός συσκευών επιτεύχθηκε.\n" #: src/readahead.c:164 #, c-format msgid "%s: error: ext2fs_open_inode_scan failed\n" msgstr "%s: σφάλμα: ext2fs_open_inode_scan απέτυχε\n" #: src/readahead.c:169 #, c-format msgid "%s: error: ext2fs_open_inode_scan() failed\n" msgstr "%s: σφάλμα: ext2fs_open_inode_scan() απέτυχε\n" #: src/readahead.c:196 #: src/readahead.c:398 #, c-format msgid "%s: error: %s: %s\n" msgstr "%s: σφάλμα: %s: %s\n" #: src/readahead.c:213 #, c-format msgid "%s: error: %s: unexpected format of sorted file\n" msgstr "%s: σφάλμα: %s: μη αναμενόμενη μορφή ταξινομημένου αρχείου\n" #: src/readahead.c:234 #, c-format msgid "%s: error: max file count reached\n" msgstr "%s: σφάλμα: μέγιστος αριθμός αρχείων επιτεύχθηκε\n" #: src/readahead.c:244 #, c-format msgid "Time (read lists): %ld ms\n" msgstr "Χρόνος (διάβασμα λιστών): %ld ms\n" #: src/readahead.c:248 #, c-format msgid "Create list with %d files\n" msgstr "Δημιουργία λίστας με τα αρχεία %d \n" #: src/readahead.c:338 #, c-format msgid "Time (read blocks): %ld ms\n" msgstr "Χρόνος (διάβασμα blocks): %ld ms\n" #: src/readahead.c:342 #, c-format msgid "Read blocks for %d/%d files (%llu KB)\n" msgstr "Διάβασμα blocks για τα αρχεία %d/%d (%llu KB)\n" #: src/readahead.c:382 #, c-format msgid "Time (readahead): %ld ms\n" msgstr "Χρόνος (readahead): %ld ms\n" #: src/readahead.c:385 #, c-format msgid "Preload %d/%d files (%llu KB)\n" msgstr "Προφόρτωση %d/%d αρχείων (%llu KB)\n" #: src/readahead.c:413 #, c-format msgid "" "\n" "%s [options] [...]\n" "\n" msgstr "" "\n" "%s [επιλογές] <αρχείο> [...]\n" "\n" #: src/readahead.c:414 msgid "" " -s | --sort sort list of files only\n" " -o | --output output sorted list of files\n" " -d | --dont-sort call readahead(2) for already sorted list\n" " -h | --help this help\n" " -v | --verbose verbose mode\n" " -t | --timing report wasted time\n" " -m | --maxsize <10240> max size of a file to be preloaded (in KiB)\n" "\n" msgstr "" " -s | --sort ταξινόμηση λίστας αρχείων μόνο\n" " -o | --output <αρχείο> δίνει ταξινομημένη λίστα αρχείων\n" " -d | --dont-sort κλήση readahead(2) για ήδη ταξινομημένη λίστα\n" " -h | --help αυτή η σελίδα\n" " -v | --verbose λειτουργία με περισσότερες πληροφορίες\n" " -t | --timing αναφορά χαμένου χρόνου\n" " -m | --maxsize <10240> μέγιστο μέγεθος αρχείου προς προφόρτωση (σε KiB)\n" "\n" #: src/readahead.c:493 #, c-format msgid "Mode: %s\n" msgstr "Λειτουργία: %s\n" #: src/readahead.c:497 #, c-format msgid "Output: %s\n" msgstr "Αποτέλεσμα: %s\n" #: src/readahead.c:499 #, c-format msgid "List: %s\n" msgstr "Λίστα: %s\n" #: src/readahead.c:532 #, c-format msgid "Time total: %ld ms\n" msgstr "Συνολικός χρόνος: %ld ms\n" readahead-fedora-1.5.6/po/es.po000066400000000000000000000070141135243252200162450ustar00rootroot00000000000000# Spanish translation of readahead. # This file is distributed under the same license as the readahead package. # # H. Daniel Cabrera , 2008. # # msgid "" msgstr "" "Project-Id-Version: readahead\n" "Report-Msgid-Bugs-To: kzak@redhat.com\n" "POT-Creation-Date: 2010-03-24 16:51+0100\n" "PO-Revision-Date: 2009-10-06 18:47-0300\n" "Last-Translator: Domingo Becker \n" "Language-Team: Fedora Spanish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: Spanish\n" "X-Poedit-Country: ARGENTINA\n" "X-Poedit-SourceCharset: utf-8\n" #: src/readahead.c:121 #, c-format msgid "%s: error: max device count reached.\n" msgstr "%s: error: número máximo de dispositivos alcanzado.\n" #: src/readahead.c:164 #, c-format msgid "%s: error: ext2fs_open_inode_scan failed\n" msgstr "%s: error: ext2fs_open_inode_scan falló\n" #: src/readahead.c:169 #, c-format msgid "%s: error: ext2fs_open_inode_scan() failed\n" msgstr "%s: error: ext2fs_open_inode_scan() falló\n" #: src/readahead.c:196 src/readahead.c:405 #, c-format msgid "%s: error: %s: %s\n" msgstr "%s: error: %s: %s\n" #: src/readahead.c:213 #, c-format msgid "%s: error: %s: unexpected format of sorted file\n" msgstr "%s: error: %s: formato inesperado del archivo ordenado\n" #: src/readahead.c:234 #, c-format msgid "%s: error: max file count reached\n" msgstr "%s: error: número máximo de archivos alcanzado\n" #: src/readahead.c:244 #, c-format msgid "Time (read lists): %ld ms\n" msgstr "Tiempo (lectura de listas) %ld ms\n" #: src/readahead.c:248 #, c-format msgid "Create list with %d files\n" msgstr "Crear lista con los archivos %d\n" #: src/readahead.c:344 #, c-format msgid "Time (read blocks): %ld ms\n" msgstr "Tiempo (lectura de bloques): %ld ms\n" #: src/readahead.c:348 #, c-format msgid "Read blocks for %d/%d files (%llu KB)\n" msgstr "Leer bloques para los archivos %d%d (%llu KB)\n" #: src/readahead.c:389 #, c-format msgid "Time (readahead): %ld ms\n" msgstr "Tiempo (readahead): %ld ms\n" #: src/readahead.c:392 #, c-format msgid "Preload %d/%d files (%llu KB)\n" msgstr "Precarga de los archivos %d/%d (%llu KB)\n" #: src/readahead.c:424 #, c-format msgid "" "\n" "%s [options] [...]\n" "\n" msgstr "" "\n" "%s [opciones] [...]\n" "\n" #: src/readahead.c:425 msgid "" " -s | --sort sort list of files only\n" " -o | --output output sorted list of files\n" " -d | --dont-sort call readahead(2) for already sorted list\n" " -h | --help this help\n" " -v | --verbose verbose mode\n" " -t | --timing report wasted time\n" " -m | --maxsize <10240> max size of a file to be preloaded (in KiB)\n" "\n" msgstr "" " -s | --sort lista ordenada de archivos solamente\n" " -o | --output salida para la lista ordenada de archivos\n" " -d | --dont-sort llamar readahead(2) para una lista ya ordenada\n" " -h | --help este contenido de ayuda\n" " -v | --verbose más mensajes\n" " -t | --timing informe del tiempo perdido\n" " -m | --maxsize <10240> tamaño máximo de un archivo a precargar (en KiB)\n" "\n" #: src/readahead.c:504 #, c-format msgid "Mode: %s\n" msgstr "Modo: %s\n" #: src/readahead.c:508 #, c-format msgid "Output: %s\n" msgstr "Salida: %s\n" #: src/readahead.c:510 #, c-format msgid "List: %s\n" msgstr "Lista: %s\n" #: src/readahead.c:547 #, c-format msgid "Time total: %ld ms\n" msgstr "Tiempo total: %ld ms\n" readahead-fedora-1.5.6/po/fi.po000066400000000000000000000067621135243252200162450ustar00rootroot00000000000000# Finnish translation of readahead. # Copyright (C) 2009 Karel Zak # This file is distributed under the same license as the readahead package. # Ville-Pekka Vainio , 2009. msgid "" msgstr "" "Project-Id-Version: readahead\n" "Report-Msgid-Bugs-To: kzak@redhat.com\n" "POT-Creation-Date: 2010-03-24 16:51+0100\n" "PO-Revision-Date: 2009-10-09 20:55+0300\n" "Last-Translator: Ville-Pekka Vainio \n" "Language-Team: Finnish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: src/readahead.c:121 #, c-format msgid "%s: error: max device count reached.\n" msgstr "%s: virhe: laitteiden enimmäismäärä saavutettu.\n" #: src/readahead.c:164 #, c-format msgid "%s: error: ext2fs_open_inode_scan failed\n" msgstr "%s: virhe: ext2fs_open_inode_scan epäonnistui\n" #: src/readahead.c:169 #, c-format msgid "%s: error: ext2fs_open_inode_scan() failed\n" msgstr "%s: virhe: ext2fs_open_inode_scan() epäonnistui\n" #: src/readahead.c:196 src/readahead.c:405 #, c-format msgid "%s: error: %s: %s\n" msgstr "%s: virhe: %s: %s\n" #: src/readahead.c:213 #, c-format msgid "%s: error: %s: unexpected format of sorted file\n" msgstr "%s: virhe: %s: järjestetyn tiedoston muoto on virheellinen\n" #: src/readahead.c:234 #, c-format msgid "%s: error: max file count reached\n" msgstr "%s: virhe: tiedostojen enimmäismäärä saavutettu\n" #: src/readahead.c:244 #, c-format msgid "Time (read lists): %ld ms\n" msgstr "Aika (lue luettelot): %ld ms\n" #: src/readahead.c:248 #, c-format msgid "Create list with %d files\n" msgstr "Luo luettelo %d tiedostolla\n" #: src/readahead.c:344 #, c-format msgid "Time (read blocks): %ld ms\n" msgstr "Aika (lue lohkot): %ld ms\n" #: src/readahead.c:348 #, c-format msgid "Read blocks for %d/%d files (%llu KB)\n" msgstr "Lue lohkot %d/%d tiedostolle (%llu Kt)\n" #: src/readahead.c:389 #, c-format msgid "Time (readahead): %ld ms\n" msgstr "Aika (readahead): %ld ms\n" #: src/readahead.c:392 #, c-format msgid "Preload %d/%d files (%llu KB)\n" msgstr "Esilataa %d/%d tiedostoa (%llu KB)\n" #: src/readahead.c:424 #, c-format msgid "" "\n" "%s [options] [...]\n" "\n" msgstr "" "\n" "%s [valitsimet] [...]\n" "\n" #: src/readahead.c:425 msgid "" " -s | --sort sort list of files only\n" " -o | --output output sorted list of files\n" " -d | --dont-sort call readahead(2) for already sorted list\n" " -h | --help this help\n" " -v | --verbose verbose mode\n" " -t | --timing report wasted time\n" " -m | --maxsize <10240> max size of a file to be preloaded (in KiB)\n" "\n" msgstr "" " -s | --sort pelkästään järjestä tiedostoluettelo\n" " -o | --output tulosta järjestetty tiedostoluettelo\n" " -d | --dont-sort kutsu readahead(2) jo järjestetylle luettelolle\n" " -h | --help tämä ohje\n" " -v | --verbose monisanainen tila\n" " -t | --timing ilmoita hukatusta ajasta\n" " -m | --maxsize <10240> etukäteen ladattavan tiedoston enimmäiskoko (KiB)\n" "\n" #: src/readahead.c:504 #, c-format msgid "Mode: %s\n" msgstr "Tila: %s\n" #: src/readahead.c:508 #, c-format msgid "Output: %s\n" msgstr "Tuloste: %s\n" #: src/readahead.c:510 #, c-format msgid "List: %s\n" msgstr "Luettelo %s\n" #: src/readahead.c:547 #, c-format msgid "Time total: %ld ms\n" msgstr "Aika yhteensä: %ld ms\n" readahead-fedora-1.5.6/po/fr.po000066400000000000000000000071701135243252200162500ustar00rootroot00000000000000# translation of readahead.master.fr.po to French # Copyright (C) YEAR Karel Zak # This file is distributed under the same license as the PACKAGE package. # # Sam Friedmann , 2009. # Pablo Martin-Gomez , 2009. msgid "" msgstr "" "Project-Id-Version: readahead.master.fr\n" "Report-Msgid-Bugs-To: kzak@redhat.com\n" "POT-Creation-Date: 2009-10-13 12:17+0200\n" "PO-Revision-Date: 2009-12-05 19:41+0100\n" "Last-Translator: Pablo Martin-Gomez \n" "Language-Team: Français \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" #: src/readahead.c:121 #, c-format msgid "%s: error: max device count reached.\n" msgstr "%s : erreur : nombre maximum de périphériques atteint.\n" #: src/readahead.c:164 #, c-format msgid "%s: error: ext2fs_open_inode_scan failed\n" msgstr "%s : erreur : échec de ext2fs_open_inode_scan\n" #: src/readahead.c:169 #, c-format msgid "%s: error: ext2fs_open_inode_scan() failed\n" msgstr "%s : erreur : échec de ext2fs_open_inode_scan()\n" #: src/readahead.c:196 src/readahead.c:398 #, c-format msgid "%s: error: %s: %s\n" msgstr "%s : erreur : %s : %s\n" #: src/readahead.c:213 #, c-format msgid "%s: error: %s: unexpected format of sorted file\n" msgstr "%s : erreur : %s: format inattendu de fichier ordonné\n" #: src/readahead.c:234 #, c-format msgid "%s: error: max file count reached\n" msgstr "%s : erreur : nombre maximum de fichiers atteint\n" #: src/readahead.c:244 #, c-format msgid "Time (read lists): %ld ms\n" msgstr "Temps (lecture des listes) : %ld ms\n" #: src/readahead.c:248 #, c-format msgid "Create list with %d files\n" msgstr "Création d'une liste avec %d fichiers\n" #: src/readahead.c:338 #, c-format msgid "Time (read blocks): %ld ms\n" msgstr "Temps (lecture des blocs) : %ld ms\n" #: src/readahead.c:342 #, c-format msgid "Read blocks for %d/%d files (%llu KB)\n" msgstr "Lire les blocs pour %d/%d fichiers (%llu Ko)\n" #: src/readahead.c:382 #, c-format msgid "Time (readahead): %ld ms\n" msgstr "Temps (readahead): %ld ms\n" #: src/readahead.c:385 #, c-format msgid "Preload %d/%d files (%llu KB)\n" msgstr "Préchargement de %d/%d fichiers (%llu Ko)\n" #: src/readahead.c:413 #, c-format msgid "" "\n" "%s [options] [...]\n" "\n" msgstr "" "\n" "%s [options] [...]\n" "\n" #: src/readahead.c:414 msgid "" " -s | --sort sort list of files only\n" " -o | --output output sorted list of files\n" " -d | --dont-sort call readahead(2) for already sorted list\n" " -h | --help this help\n" " -v | --verbose verbose mode\n" " -t | --timing report wasted time\n" " -m | --maxsize <10240> max size of a file to be preloaded (in KiB)\n" "\n" msgstr "" " -s | --sort ordonne la liste de fichiers uniquement\n" " -o | --output retourne la liste de fichiers ordonnés\n" " -d | --dont-sort appelle readahead(2) pour une liste déjà ordonnée\n" " -h | --help aide\n" " -v | --verbose mode verbeux\n" " -t | --timing rapport de temps perdu\n" " -m | --maxsize <10240> taille maximum d'un fichier qui peut être pré-" "chargé (en Kio)\n" "\n" #: src/readahead.c:493 #, c-format msgid "Mode: %s\n" msgstr "Mode : %s\n" #: src/readahead.c:497 #, c-format msgid "Output: %s\n" msgstr "Sortie : %s\n" #: src/readahead.c:499 #, c-format msgid "List: %s\n" msgstr "Liste : %s\n" #: src/readahead.c:532 #, c-format msgid "Time total: %ld ms\n" msgstr "Temps total : %ld ms\n" readahead-fedora-1.5.6/po/gu.po000066400000000000000000000101061135243252200162450ustar00rootroot00000000000000# translation of readahead.po to Gujarati # Copyright (C) YEAR Karel Zak # This file is distributed under the same license as the PACKAGE package. # # Sweta Kothari , 2009. msgid "" msgstr "" "Project-Id-Version: readahead\n" "Report-Msgid-Bugs-To: kzak@redhat.com\n" "POT-Creation-Date: 2009-10-13 12:17+0200\n" "PO-Revision-Date: 2009-11-12 14:04+0530\n" "Last-Translator: Sweta Kothari \n" "Language-Team: Gujarati\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" #: src/readahead.c:121 #, c-format msgid "%s: error: max device count reached.\n" msgstr "%s: ભૂલ: max ઉપકરણ ગણતરી પહોંચેલ.\n" #: src/readahead.c:164 #, c-format msgid "%s: error: ext2fs_open_inode_scan failed\n" msgstr "%s: ભૂલ: ext2fs_open_inode_scan નિષ્ફળ\n" #: src/readahead.c:169 #, c-format msgid "%s: error: ext2fs_open_inode_scan() failed\n" msgstr "%s: ભૂલ: ext2fs_open_inode_scan() નિષ્ફળ\n" #: src/readahead.c:196 src/readahead.c:398 #, c-format msgid "%s: error: %s: %s\n" msgstr "%s: ભૂલ: %s: %s\n" #: src/readahead.c:213 #, c-format msgid "%s: error: %s: unexpected format of sorted file\n" msgstr "%s: ભૂલ: %s: સંગ્રહ થયેલ ફાઇલનું અનિચ્છનીય બંધારણ\n" #: src/readahead.c:234 #, c-format msgid "%s: error: max file count reached\n" msgstr "%s: ભૂલ: max ફાઇલ ગણતરી પહોંચેલ\n" #: src/readahead.c:244 #, c-format msgid "Time (read lists): %ld ms\n" msgstr "સમય (યાદીઓને વાંચો): %ld ms\n" #: src/readahead.c:248 #, c-format msgid "Create list with %d files\n" msgstr "%d ફાઇલો સાથે યાદીને બનાવો\n" #: src/readahead.c:338 #, c-format msgid "Time (read blocks): %ld ms\n" msgstr "સમય (બ્લોકો વાંચો): %ld ms\n" #: src/readahead.c:342 #, c-format msgid "Read blocks for %d/%d files (%llu KB)\n" msgstr "%d/%d ફાઇલો માટે બ્લોકો વાંચો (%llu KB)\n" #: src/readahead.c:382 #, c-format msgid "Time (readahead): %ld ms\n" msgstr "સમય (readahead): %ld ms\n" #: src/readahead.c:385 #, c-format msgid "Preload %d/%d files (%llu KB)\n" msgstr "%d/%d ફાઇલોને પુન:લોડ કરો (%llu KB)\n" #: src/readahead.c:413 #, c-format msgid "" "\n" "%s [options] [...]\n" "\n" msgstr "" "\n" "%s [options] [...]\n" "\n" #: src/readahead.c:414 msgid "" " -s | --sort sort list of files only\n" " -o | --output output sorted list of files\n" " -d | --dont-sort call readahead(2) for already sorted list\n" " -h | --help this help\n" " -v | --verbose verbose mode\n" " -t | --timing report wasted time\n" " -m | --maxsize <10240> max size of a file to be preloaded (in KiB)\n" "\n" msgstr "" " -s | --sort ફક્ત ફાઇલોની યાદીને ક્રમમાં કરો\n" " -o | --output ફાઇલોની આઉટપુટની ક્રમ થયેલ યાદી\n" " -d | --dont-sort પહેલેથી જ ક્રમ થયેલ યાદી માટે કોલ readahead(2)\n" " -h | --help આ મદદ\n" " -v | --verbose વર્બોસ સ્થિતિ\n" " -t | --timing નકામા સમયનો અહેવાલ કરો\n" " -m | --maxsize <10240> અગાઉથી લોડ કરવા માટે ફાઇલોનું મહત્તમ માપedn K માંiB)\n" "\n" #: src/readahead.c:493 #, c-format msgid "Mode: %s\n" msgstr "સ્થિતિ: %s\n" #: src/readahead.c:497 #, c-format msgid "Output: %s\n" msgstr "આઉટપુટ: %s\n" #: src/readahead.c:499 #, c-format msgid "List: %s\n" msgstr "યાદી: %s\n" #: src/readahead.c:532 #, c-format msgid "Time total: %ld ms\n" msgstr "કુલ સમય: %ld ms\n" readahead-fedora-1.5.6/po/hi.po000066400000000000000000000070561135243252200162440ustar00rootroot00000000000000# translation of readahead.master.po to Hindi # Copyright (C) YEAR Karel Zak # This file is distributed under the same license as the PACKAGE package. # # Rajesh Ranjan , 2009. msgid "" msgstr "" "Project-Id-Version: readahead.master\n" "Report-Msgid-Bugs-To: kzak@redhat.com\n" "POT-Creation-Date: 2009-10-13 12:17+0200\n" "PO-Revision-Date: 2009-11-12 16:21+0530\n" "Last-Translator: Rajesh Ranjan \n" "Language-Team: Hindi \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n\n" "\n" "\n" #: src/readahead.c:121 #, c-format msgid "%s: error: max device count reached.\n" msgstr "%s: error: max device count reached.\n" #: src/readahead.c:164 #, c-format msgid "%s: error: ext2fs_open_inode_scan failed\n" msgstr "%s: error: ext2fs_open_inode_scan failed\n" #: src/readahead.c:169 #, c-format msgid "%s: error: ext2fs_open_inode_scan() failed\n" msgstr "%s: error: ext2fs_open_inode_scan() failed\n" #: src/readahead.c:196 src/readahead.c:398 #, c-format msgid "%s: error: %s: %s\n" msgstr "%s: error: %s: %s\n" #: src/readahead.c:213 #, c-format msgid "%s: error: %s: unexpected format of sorted file\n" msgstr "%s: error: %s: unexpected format of sorted file\n" #: src/readahead.c:234 #, c-format msgid "%s: error: max file count reached\n" msgstr "%s: error: max file count reached\n" #: src/readahead.c:244 #, c-format msgid "Time (read lists): %ld ms\n" msgstr "समय (read lists): %ld ms\n" #: src/readahead.c:248 #, c-format msgid "Create list with %d files\n" msgstr "%d फ़ाइल से सूची बनाएँ\n" #: src/readahead.c:338 #, c-format msgid "Time (read blocks): %ld ms\n" msgstr "समय (read blocks): %ld ms\n" #: src/readahead.c:342 #, c-format msgid "Read blocks for %d/%d files (%llu KB)\n" msgstr "%d/%d फ़ाइल के लिए पठन ब्लॉक (%llu KB)\n" #: src/readahead.c:382 #, c-format msgid "Time (readahead): %ld ms\n" msgstr "समय (readahead): %ld ms\n" #: src/readahead.c:385 #, c-format msgid "Preload %d/%d files (%llu KB)\n" msgstr "%d/%d फ़ाइल पहले लोड करें (%llu KB)\n" #: src/readahead.c:413 #, c-format msgid "" "\n" "%s [options] [...]\n" "\n" msgstr "" "\n" "%s [विकल्प] [...]\n" "\n" #: src/readahead.c:414 msgid "" " -s | --sort sort list of files only\n" " -o | --output output sorted list of files\n" " -d | --dont-sort call readahead(2) for already sorted list\n" " -h | --help this help\n" " -v | --verbose verbose mode\n" " -t | --timing report wasted time\n" " -m | --maxsize <10240> max size of a file to be preloaded (in KiB)\n" "\n" msgstr "" " -s | --sort sort list of files only\n" " -o | --output output sorted list of files\n" " -d | --dont-sort call readahead(2) for already sorted list\n" " -h | --help this help\n" " -v | --verbose verbose mode\n" " -t | --timing report wasted time\n" " -m | --maxsize <10240> max size of a file to be preloaded (in KiB)\n" "\n" #: src/readahead.c:493 #, c-format msgid "Mode: %s\n" msgstr "विधि: %s\n" #: src/readahead.c:497 #, c-format msgid "Output: %s\n" msgstr "आउटपुट: %s\n" #: src/readahead.c:499 #, c-format msgid "List: %s\n" msgstr "सूची: %s\n" #: src/readahead.c:532 #, c-format msgid "Time total: %ld ms\n" msgstr "कुल समय: %ld ms\n" readahead-fedora-1.5.6/po/hu.po000066400000000000000000000066361135243252200162630ustar00rootroot00000000000000# Translation of readahead.master # Copyright (C) YEAR Karel Zak # This file is distributed under the same license as the readahead package. # Zoltan Hoppar , 2009. # msgid "" msgstr "" "Project-Id-Version: readahead.master\n" "Report-Msgid-Bugs-To: kzak@redhat.com\n" "POT-Creation-Date: 2009-10-13 12:17+0200\n" "PO-Revision-Date: 2009-08-30 01:17+0100\n" "Last-Translator: Zoltan Hoppar \n" "Language-Team: Hungarian Fedora Translation Team \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" #: src/readahead.c:121 #, c-format msgid "%s: error: max device count reached.\n" msgstr "%s: hiba: max. elérhető eszközszám.\n" #: src/readahead.c:164 #, c-format msgid "%s: error: ext2fs_open_inode_scan failed\n" msgstr "%s: hiba: ext2fs_open_inode_scan sikertelen\n" #: src/readahead.c:169 #, c-format msgid "%s: error: ext2fs_open_inode_scan() failed\n" msgstr "%s: hiba: ext2fs_open_inode_scan() sikertelen\n" #: src/readahead.c:196 src/readahead.c:398 #, c-format msgid "%s: error: %s: %s\n" msgstr "%s: hiba: %s: %s\n" #: src/readahead.c:234 #, c-format msgid "%s: error: max file count reached\n" msgstr "%s: hiba: max. elérhető fájlszám.\n" #: src/readahead.c:244 #, c-format msgid "Time (read lists): %ld ms\n" msgstr "Idő (listák olvasása): %ld ms\n" #: src/readahead.c:248 #, c-format msgid "Create list with %d files\n" msgstr "Lista készítése %d fájllal\n" #: src/readahead.c:338 #, c-format msgid "Time (read blocks): %ld ms\n" msgstr "Idő (blokkok olvasása): %ld ms\n" #: src/readahead.c:342 #, c-format msgid "Read blocks for %d/%d files (%llu KB)\n" msgstr "Blokkok olvasása %d/%d fájlhoz (%llu KB)\n" #: src/readahead.c:382 #, c-format msgid "Time (readahead): %ld ms\n" msgstr "Idő (readahead): %ld ms\n" #: src/readahead.c:413 #, c-format msgid "" "\n" "%s [options] [...]\n" "\n" msgstr "" "\n" "%s [opciók] [...]\n" "\n" #: src/readahead.c:493 #, c-format msgid "Mode: %s\n" msgstr "Mód: %s\n" #: src/readahead.c:497 #, c-format msgid "Output: %s\n" msgstr "Kimenet: %s\n" #: src/readahead.c:499 #, c-format msgid "List: %s\n" msgstr "Lista: %s\n" #: src/readahead.c:532 #, c-format msgid "Time total: %ld ms\n" msgstr "Összes idő: %ld ms\n" #: src/readahead.c:213 #, c-format msgid "%s: error: %s: unexpected format of sorted file\n" msgstr "%s: hiba: %s: rendezett fájl váratlan formátuma\n" #: src/readahead.c:385 #, c-format msgid "Preload %d/%d files (%llu KB)\n" msgstr "%d/%d fájl előre olvasása (%llu KB)\n" #: src/readahead.c:414 msgid "" " -s | --sort sort list of files only\n" " -o | --output output sorted list of files\n" " -d | --dont-sort call readahead(2) for already sorted list\n" " -h | --help this help\n" " -v | --verbose verbose mode\n" " -t | --timing report wasted time\n" " -m | --maxsize <10240> max size of a file to be preloaded (in KiB)\n" "\n" msgstr "" " -s | --sort csak a fájllista rendezése\n" " -o | --output a rendezett fájllistának kimenete\n" " -d | --dont-sort readahead(2) hívása a már rendezett listához\n" " -h | --help ez a súgó\n" " -v | --verbose beszédes mód\n" " -t | --timing elpocsékolt idő kiírása\n" " -m | --maxsize <10240> a legnagyobb előre olvasandó fájl (KiB-ban)\n" "\n" readahead-fedora-1.5.6/po/it.po000066400000000000000000000070651135243252200162600ustar00rootroot00000000000000# translation of readahead.po to Italiano # Italian translation of it.po. # Copyright (C) 2008 Red Hat, Inc. # This file is distributed under the same license as the readahead package. # # # # Silvio Pierro , 2008. # Francesco Tombolini , 2008. msgid "" msgstr "" "Project-Id-Version: readahead-1.5\n" "Report-Msgid-Bugs-To: kzak@redhat.com\n" "POT-Creation-Date: 2010-03-24 16:51+0100\n" "PO-Revision-Date: 2008-04-08 05:19+0200\n" "Last-Translator: Francesco Tombolini \n" "Language-Team: Italian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: src/readahead.c:121 #, c-format msgid "%s: error: max device count reached.\n" msgstr "%s: errore: raggiunto il numero massimo di dispositivi.\n" #: src/readahead.c:164 #, c-format msgid "%s: error: ext2fs_open_inode_scan failed\n" msgstr "%s: errore: fallito ext2fs_open_inode_scan\n" #: src/readahead.c:169 #, c-format msgid "%s: error: ext2fs_open_inode_scan() failed\n" msgstr "%s: errore: fallito ext2fs_open_inode_scan()\n" #: src/readahead.c:196 src/readahead.c:405 #, c-format msgid "%s: error: %s: %s\n" msgstr "%s: errore: %s: %s\n" #: src/readahead.c:213 #, c-format msgid "%s: error: %s: unexpected format of sorted file\n" msgstr "%s: errore: %s: formato inatteso di file ordinato\n" #: src/readahead.c:234 #, c-format msgid "%s: error: max file count reached\n" msgstr "%s: errore: raggiunto il massimo numero di file\n" #: src/readahead.c:244 #, c-format msgid "Time (read lists): %ld ms\n" msgstr "Tempo (lettura elenchi): %ld ms\n" #: src/readahead.c:248 #, c-format msgid "Create list with %d files\n" msgstr "Crea un elenco con %d file\n" #: src/readahead.c:344 #, c-format msgid "Time (read blocks): %ld ms\n" msgstr "Tempo (lettura blocchi): %ld ms\n" #: src/readahead.c:348 #, c-format msgid "Read blocks for %d/%d files (%llu KB)\n" msgstr "Lettura blocchi per %d/%d file (%llu KB)\n" #: src/readahead.c:389 #, c-format msgid "Time (readahead): %ld ms\n" msgstr "Tempo (readahead): %ld ms\n" #: src/readahead.c:392 #, c-format msgid "Preload %d/%d files (%llu KB)\n" msgstr "Precaricamento %d/%d file (%llu KB)\n" #: src/readahead.c:424 #, c-format msgid "" "\n" "%s [options] [...]\n" "\n" msgstr "" "\n" "%s [opzioni] [...]\n" "\n" #: src/readahead.c:425 msgid "" " -s | --sort sort list of files only\n" " -o | --output output sorted list of files\n" " -d | --dont-sort call readahead(2) for already sorted list\n" " -h | --help this help\n" " -v | --verbose verbose mode\n" " -t | --timing report wasted time\n" " -m | --maxsize <10240> max size of a file to be preloaded (in KiB)\n" "\n" msgstr "" " -s | --sort ordina solo l'elenco dei file\n" " -o | --output mostra l'elenco ordinato dei file\n" " -d | --dont-sort richiamo readahead(2) per gli elenchi già ordinati\n" " -h | --help questo messaggio\n" " -v | --verbose modalità verbosa\n" " -t | --timing restituisce il tempo sprecato\n" " -m | --maxsize <10240> dimensione massima di un file da precaricare (in " "KiB)\n" "\n" #: src/readahead.c:504 #, c-format msgid "Mode: %s\n" msgstr "Modalità: %s\n" #: src/readahead.c:508 #, c-format msgid "Output: %s\n" msgstr "Output: %s\n" #: src/readahead.c:510 #, c-format msgid "List: %s\n" msgstr "Elenco: %s\n" #: src/readahead.c:547 #, c-format msgid "Time total: %ld ms\n" msgstr "Tempo totale: %ld ms\n" readahead-fedora-1.5.6/po/ja.po000066400000000000000000000071511135243252200162320ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Karel Zak # This file is distributed under the same license as the PACKAGE package. # Hyu_gabaru Ryu_ichi , 2009. # msgid "" msgstr "" "Project-Id-Version: readahead 1\n" "Report-Msgid-Bugs-To: kzak@redhat.com\n" "POT-Creation-Date: 2010-03-24 16:51+0100\n" "PO-Revision-Date: 2009-10-11 20:25+0900\n" "Last-Translator: Hyu_gabaru Ryu_ichi \n" "Language-Team: Japanese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: src/readahead.c:121 #, c-format msgid "%s: error: max device count reached.\n" msgstr "%s: エラー: 最大装置数に達しました。\n" #: src/readahead.c:164 #, c-format msgid "%s: error: ext2fs_open_inode_scan failed\n" msgstr "%s: エラー: ext2fs_open_inode_scan 失敗\n" #: src/readahead.c:169 #, c-format msgid "%s: error: ext2fs_open_inode_scan() failed\n" msgstr "%s: エラー: ext2fs_open_inode_scan() 失敗\n" #: src/readahead.c:196 src/readahead.c:405 #, c-format msgid "%s: error: %s: %s\n" msgstr "%s: エラー: %s: %s\n" #: src/readahead.c:213 #, c-format msgid "%s: error: %s: unexpected format of sorted file\n" msgstr "%s: エラー: %s: ソートしたファイルの予期しない形式\n" #: src/readahead.c:234 #, c-format msgid "%s: error: max file count reached\n" msgstr "%s: エラー: 最大ファイル数に達しました\n" #: src/readahead.c:244 #, c-format msgid "Time (read lists): %ld ms\n" msgstr "時間 (読込み一覧): %ld ミリ秒\n" #: src/readahead.c:248 #, c-format msgid "Create list with %d files\n" msgstr "%d ファイルで一覧を作成\n" #: src/readahead.c:344 #, c-format msgid "Time (read blocks): %ld ms\n" msgstr "時間 (読込みブロック): %ld ミリ秒\n" #: src/readahead.c:348 #, c-format msgid "Read blocks for %d/%d files (%llu KB)\n" msgstr "%d/%d ファイルのための読込みブロック (%llu KB)\n" #: src/readahead.c:389 #, c-format msgid "Time (readahead): %ld ms\n" msgstr "時間 (先読み): %ld ミリ秒\n" #: src/readahead.c:392 #, c-format msgid "Preload %d/%d files (%llu KB)\n" msgstr "プリロード %d/%d ファイル (%llu KB)\n" #: src/readahead.c:424 #, c-format msgid "" "\n" "%s [options] [...]\n" "\n" msgstr "" "\n" "%s [オプション] <ファイル> [...]\n" "\n" #: src/readahead.c:425 msgid "" " -s | --sort sort list of files only\n" " -o | --output output sorted list of files\n" " -d | --dont-sort call readahead(2) for already sorted list\n" " -h | --help this help\n" " -v | --verbose verbose mode\n" " -t | --timing report wasted time\n" " -m | --maxsize <10240> max size of a file to be preloaded (in KiB)\n" "\n" msgstr "" " -s | --sort ファイルのみのソート一覧\n" " -o | --output <ファイル> ファイルのソートされた一覧の出力\n" " -d | --dont-sort 既にソートされた一覧のために readahead(2) を呼び出" "す\n" " -h | --help このヘルプ\n" " -v | --verbose 饒舌モード\n" " -t | --timing 浪費した時間をレポート\n" " -m | --maxsize <10240> プリロードされるファイルの最大サイズ (KiBで)\n" "\n" #: src/readahead.c:504 #, c-format msgid "Mode: %s\n" msgstr "モード: %s\n" #: src/readahead.c:508 #, c-format msgid "Output: %s\n" msgstr "出力: %s\n" #: src/readahead.c:510 #, c-format msgid "List: %s\n" msgstr "一覧: %s\n" #: src/readahead.c:547 #, c-format msgid "Time total: %ld ms\n" msgstr "合計時間: %ld ミリ秒\n" readahead-fedora-1.5.6/po/kn.po000066400000000000000000000104251135243252200162460ustar00rootroot00000000000000# translation of readahead.master.kn.po to Kannada # Copyright (C) YEAR Karel Zak # This file is distributed under the same license as the PACKAGE package. # # Shankar Prasad , 2009. msgid "" msgstr "" "Project-Id-Version: readahead.master.kn\n" "Report-Msgid-Bugs-To: kzak@redhat.com\n" "POT-Creation-Date: 2009-10-13 12:17+0200\n" "PO-Revision-Date: 2009-11-12 13:32+0530\n" "Last-Translator: Shankar Prasad \n" "Language-Team: Kannada \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: src/readahead.c:121 #, c-format msgid "%s: error: max device count reached.\n" msgstr "%s: ದೋಷ: ಗರಿಷ್ಟ ಕಡತ ಎಣಿಕೆಯನ್ನು ತಲುಪಿದೆ.\n" #: src/readahead.c:164 #, c-format msgid "%s: error: ext2fs_open_inode_scan failed\n" msgstr "%s: ದೋಷ: ext2fs_open_inode_scan ವಿಫಲಗೊಂಡಿದೆ\n" #: src/readahead.c:169 #, c-format msgid "%s: error: ext2fs_open_inode_scan() failed\n" msgstr "%s: ದೋಷ: ext2fs_open_inode_scan() ವಿಫಲಗೊಂಡಿದೆ\n" #: src/readahead.c:196 src/readahead.c:398 #, c-format msgid "%s: error: %s: %s\n" msgstr "%s: ದೋಷ: %s: %s\n" #: src/readahead.c:213 #, c-format msgid "%s: error: %s: unexpected format of sorted file\n" msgstr "%s: ದೋಷ: %s: ವಿಂಗಡಿಸಲಾದ ಕಡತದ ಅನಿರೀಕ್ಷಿತ ವಿನ್ಯಾಸ\n" #: src/readahead.c:234 #, c-format msgid "%s: error: max file count reached\n" msgstr "%s: ದೋಷ: ಗರಿಷ್ಟ ಕಡತ ಎಣಿಕೆಯನ್ನು ತಲುಪಿದೆ\n" #: src/readahead.c:244 #, c-format msgid "Time (read lists): %ld ms\n" msgstr "ಸಮಯ (ಓದು ಪಟ್ಟಿ): %ld ms\n" #: src/readahead.c:248 #, c-format msgid "Create list with %d files\n" msgstr "%d ಕಡತಗಳೊಂದಿಗೆ ಪಟ್ಟಿಯನ್ನು ರಚಿಸು\n" #: src/readahead.c:338 #, c-format msgid "Time (read blocks): %ld ms\n" msgstr "ಸಮಯ (ಖಂಡಗಳನ್ನು ಓದು): %ld ms\n" #: src/readahead.c:342 #, c-format msgid "Read blocks for %d/%d files (%llu KB)\n" msgstr "%d/%d ಕಡತಗಳಿಗಾಗಿ ಖಂಡಗಳನ್ನು ಓದು (%llu KB)\n" #: src/readahead.c:382 #, c-format msgid "Time (readahead): %ld ms\n" msgstr "ಸಮಯ (readahead): %ld ms\n" #: src/readahead.c:385 #, c-format msgid "Preload %d/%d files (%llu KB)\n" msgstr "%d/%d ಕಡತಗಳನ್ನು ಮೊದಲೆ ಲೋಡ್ ಮಾಡು (%llu KB)\n" #: src/readahead.c:413 #, c-format msgid "" "\n" "%s [options] [...]\n" "\n" msgstr "" "\n" "%s [ಆಯ್ಕೆಗಳು] [...]\n" "\n" #: src/readahead.c:414 msgid "" " -s | --sort sort list of files only\n" " -o | --output output sorted list of files\n" " -d | --dont-sort call readahead(2) for already sorted list\n" " -h | --help this help\n" " -v | --verbose verbose mode\n" " -t | --timing report wasted time\n" " -m | --maxsize <10240> max size of a file to be preloaded (in KiB)\n" "\n" msgstr "" " -s | --sort ಕೇವಲ ಕಡತಗಳ ಪಟ್ಟಿಯನ್ನು ಮಾತ್ರ ವಿಂಗಡಿಸುತ್ತದೆ\n" " -o | --output ವಿಂಗಡಿಸಲಾದ ಕಡತಗಳ ಪಟ್ಟಿಯ ಔಟ್‌ಪುಟ್\n" " -d | --dont-sort ಈಗಾಗಲೆ ವಿಂಗಡಿಸಲಾದ ಪಟ್ಟಿಗಾಗಿ readahead(2) ಅನ್ನು ಕರೆ\n" " -h | --help ಈ ನೆರವು\n" " -v | --verbose ವರ್ಬೋಸ್ ಕ್ರಮ\n" " -t | --timing ವರದಿ ಪೋಲು ಮಾಡಿದ ಸಮಯ\n" " -m | --maxsize <10240> ಮೊದಲೆ ಲೋಡ್‌ ಮಾಡಲಾದ ಕಡತದ ಗರಿಷ್ಟ ಗಾತ್ರ (KiB ಯಲ್ಲಿ)\n" "\n" #: src/readahead.c:493 #, c-format msgid "Mode: %s\n" msgstr "ಕ್ರಮ: %s\n" #: src/readahead.c:497 #, c-format msgid "Output: %s\n" msgstr "ಔಟ್‌ಪುಟ್: %s\n" #: src/readahead.c:499 #, c-format msgid "List: %s\n" msgstr "ಪಟ್ಟಿ: %s\n" #: src/readahead.c:532 #, c-format msgid "Time total: %ld ms\n" msgstr "ಒಟ್ಟು ಸಮಯ: %ld ms\n" readahead-fedora-1.5.6/po/ko.po000066400000000000000000000070151135243252200162500ustar00rootroot00000000000000# translation of readahead.master.po to Korean # Copyright (C) YEAR Karel Zak # This file is distributed under the same license as the PACKAGE package. # # Eunju Kim , 2009. msgid "" msgstr "" "Project-Id-Version: readahead.master\n" "Report-Msgid-Bugs-To: kzak@redhat.com\n" "POT-Creation-Date: 2009-10-13 12:17+0200\n" "PO-Revision-Date: 2009-12-08 16:01+1000\n" "Last-Translator: Eunju Kim \n" "Language-Team: Korean \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=1; plural=0;\n" "\n" #: src/readahead.c:121 #, c-format msgid "%s: error: max device count reached.\n" msgstr "%s: 오류: 최대 장치 수에 도달했습니다.\n" #: src/readahead.c:164 #, c-format msgid "%s: error: ext2fs_open_inode_scan failed\n" msgstr "%s: 오류: ext2fs_open_inode_scan 실패\n" #: src/readahead.c:169 #, c-format msgid "%s: error: ext2fs_open_inode_scan() failed\n" msgstr "%s: 오류: ext2fs_open_inode_scan() 실패\n" #: src/readahead.c:196 src/readahead.c:398 #, c-format msgid "%s: error: %s: %s\n" msgstr "%s: 오류: %s: %s\n" #: src/readahead.c:213 #, c-format msgid "%s: error: %s: unexpected format of sorted file\n" msgstr "%s: 오류: %s: 정렬된 파일의 예기치 않은 형식\n" #: src/readahead.c:234 #, c-format msgid "%s: error: max file count reached\n" msgstr "%s: 오류: 최대 파일 수에 도달했습니다\n" #: src/readahead.c:244 #, c-format msgid "Time (read lists): %ld ms\n" msgstr "시간 (읽기 목록): %ld 밀리초\n" #: src/readahead.c:248 #, c-format msgid "Create list with %d files\n" msgstr "%d 파일로 목록 생성\n" #: src/readahead.c:338 #, c-format msgid "Time (read blocks): %ld ms\n" msgstr "시간 (읽기 블록): %ld 밀리초\n" #: src/readahead.c:342 #, c-format msgid "Read blocks for %d/%d files (%llu KB)\n" msgstr "%d/%d 파일에 대한 읽기 블록 (%llu KB)\n" #: src/readahead.c:382 #, c-format msgid "Time (readahead): %ld ms\n" msgstr "시간 (미리읽기): %ld 밀리초\n" #: src/readahead.c:385 #, c-format msgid "Preload %d/%d files (%llu KB)\n" msgstr "%d/%d 파일을 미리 불러오기 (%llu KB)\n" #: src/readahead.c:413 #, c-format msgid "" "\n" "%s [options] [...]\n" "\n" msgstr "" "\n" "%s [옵션] <파일> [...]\n" "\n" #: src/readahead.c:414 msgid "" " -s | --sort sort list of files only\n" " -o | --output output sorted list of files\n" " -d | --dont-sort call readahead(2) for already sorted list\n" " -h | --help this help\n" " -v | --verbose verbose mode\n" " -t | --timing report wasted time\n" " -m | --maxsize <10240> max size of a file to be preloaded (in KiB)\n" "\n" msgstr "" " -s | --sort 파일 목록만 정렬\n" " -o | --output 정렬된 파일 목록 출력\n" " -d | --dont-sort 이미 정렬된 목록에 대해 readahead(2) 호출\n" " -h | --help 도움말\n" " -v | --verbose 상세 정보 표시 모드\n" " -t | --timing 소비한 시간 보고\n" " -m | --maxsize <10240> 미리로드된 파일의 최대 크기 (KiB 단위)\n" "\n" #: src/readahead.c:493 #, c-format msgid "Mode: %s\n" msgstr "모드: %s\n" #: src/readahead.c:497 #, c-format msgid "Output: %s\n" msgstr "출력: %s\n" #: src/readahead.c:499 #, c-format msgid "List: %s\n" msgstr "목록: %s\n" #: src/readahead.c:532 #, c-format msgid "Time total: %ld ms\n" msgstr "총 시간: %ld 밀리초\n" readahead-fedora-1.5.6/po/ml.po000066400000000000000000000077761135243252200162650ustar00rootroot00000000000000# translation of readahead.master.ml.po to # translation of readahead.master.readahead.ml.po to # Copyright (C) YEAR Karel Zak # This file is distributed under the same license as the readahead package. # ANI PETER , 2009 # msgid "" msgstr "" "Project-Id-Version: readahead.master.ml\n" "Report-Msgid-Bugs-To: kzak@redhat.com\n" "POT-Creation-Date: 2009-10-13 12:17+0200\n" "PO-Revision-Date: 2009-12-07 17:29+0530\n" "Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" #: src/readahead.c:121 #, c-format msgid "%s: error: max device count reached.\n" msgstr "%s: പിശക്: ഏറ്റവും കൂടിയ ഡിവൈസ് എണ്ണം.\n" #: src/readahead.c:164 #, c-format msgid "%s: error: ext2fs_open_inode_scan failed\n" msgstr "%s: പിശക്: ext2fs_open_inode_scan പരാജയപ്പെട്ടു\n" #: src/readahead.c:169 #, c-format msgid "%s: error: ext2fs_open_inode_scan() failed\n" msgstr "%s: പിശക്: ext2fs_open_inode_scan() പരാജയപ്പെട്ടു\n" #: src/readahead.c:196 src/readahead.c:398 #, c-format msgid "%s: error: %s: %s\n" msgstr "%s: പിശക്: %s: %s\n" #: src/readahead.c:213 #, c-format msgid "%s: error: %s: unexpected format of sorted file\n" msgstr "%s: പിശക്: %s: ക്രമത്തിലാക്കിയ ഫയലിനു് അപ്രതീക്ഷിതമായ രീതി\n" #: src/readahead.c:234 #, c-format msgid "%s: error: max file count reached\n" msgstr "%s: പിശക്: ഏറ്റവും കൂടിയ ഫയല്‍ എണ്ണം\n" #: src/readahead.c:244 #, c-format msgid "Time (read lists): %ld ms\n" msgstr "സമയം (ലഭ്യമായ പട്ടികകള്‍): %ld ms\n" #: src/readahead.c:248 #, c-format msgid "Create list with %d files\n" msgstr "%d ഫയലുകളുടെ പട്ടിക ഉണ്ടാക്കുക\n" #: src/readahead.c:338 #, c-format msgid "Time (read blocks): %ld ms\n" msgstr "സ‌മയം (ലഭ്യമായ ബ്ലോക്കുകള്‍ ): %ld ms\n" #: src/readahead.c:342 #, c-format msgid "Read blocks for %d/%d files (%llu KB)\n" msgstr "%d/%d ഫയലുകള്‍ക്ക് ലഭ്യമായ ബ്ലോക്കുകള്‍ (%llu KB)\n" #: src/readahead.c:382 #, c-format msgid "Time (readahead): %ld ms\n" msgstr "സമയം (readahead): %ld ms\n" #: src/readahead.c:385 #, c-format msgid "Preload %d/%d files (%llu KB)\n" msgstr "%d/%d ഫയലുകള്‍ പ്രീലോഡ് ചെയ്യുക (%llu KB)\n" #: src/readahead.c:413 #, c-format msgid "" "\n" "%s [options] [...]\n" "\n" msgstr "" "\n" "%s [options] [...]\n" "\n" #: src/readahead.c:414 msgid "" " -s | --sort sort list of files only\n" " -o | --output output sorted list of files\n" " -d | --dont-sort call readahead(2) for already sorted list\n" " -h | --help this help\n" " -v | --verbose verbose mode\n" " -t | --timing report wasted time\n" " -m | --maxsize <10240> max size of a file to be preloaded (in KiB)\n" "\n" msgstr "" " -s | --sort sort list of files only\n" " -o | --output output sorted list of files\n" " -d | --dont-sort call readahead(2) for already sorted list\n" " -h | --help this help\n" " -v | --verbose verbose mode\n" " -t | --timing report wasted time\n" " -m | --maxsize <10240> max size of a file to be preloaded (in KiB)\n" "\n" #: src/readahead.c:493 #, c-format msgid "Mode: %s\n" msgstr "മോഡ്: %s\n" #: src/readahead.c:497 #, c-format msgid "Output: %s\n" msgstr "ഔട്ട്പുട്ട്: %s\n" #: src/readahead.c:499 #, c-format msgid "List: %s\n" msgstr "പട്ടിക: %s\n" #: src/readahead.c:532 #, c-format msgid "Time total: %ld ms\n" msgstr "മൊത്ത സമയം: %ld ms\n" readahead-fedora-1.5.6/po/mr.po000066400000000000000000000075351135243252200162640ustar00rootroot00000000000000# translation of readahead.master.po to Marathi # Copyright (C) YEAR Karel Zak # This file is distributed under the same license as the PACKAGE package. # # Sandeep Shedmake , 2009. msgid "" msgstr "" "Project-Id-Version: readahead.master\n" "Report-Msgid-Bugs-To: kzak@redhat.com\n" "POT-Creation-Date: 2009-10-13 12:17+0200\n" "PO-Revision-Date: 2009-11-13 13:09+0530\n" "Last-Translator: Sandeep Shedmake \n" "Language-Team: Marathi \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" #: src/readahead.c:121 #, c-format msgid "%s: error: max device count reached.\n" msgstr "%s: त्रुटी: कमाल उपकरन प्रमाण पोहचले.\n" #: src/readahead.c:164 #, c-format msgid "%s: error: ext2fs_open_inode_scan failed\n" msgstr "%s: त्रुटी: ext2fs_open_inode_scan अपयशी\n" #: src/readahead.c:169 #, c-format msgid "%s: error: ext2fs_open_inode_scan() failed\n" msgstr "%s: त्रुटी: ext2fs_open_inode_scan() अपयशी\n" #: src/readahead.c:196 src/readahead.c:398 #, c-format msgid "%s: error: %s: %s\n" msgstr "%s: त्रुटी: %s: %s\n" #: src/readahead.c:213 #, c-format msgid "%s: error: %s: unexpected format of sorted file\n" msgstr "%s: त्रुटी: %s: क्रमवारी फाइलचे अनपेक्षीत रूपण\n" #: src/readahead.c:234 #, c-format msgid "%s: error: max file count reached\n" msgstr "%s: त्रुटी: कमाल फाइल प्रमाण पोहचले\n" #: src/readahead.c:244 #, c-format msgid "Time (read lists): %ld ms\n" msgstr "वेळ (सूची वाचा): %ld ms\n" #: src/readahead.c:248 #, c-format msgid "Create list with %d files\n" msgstr "%d फाइल्स्सह सूची निर्माण करा\n" #: src/readahead.c:338 #, c-format msgid "Time (read blocks): %ld ms\n" msgstr "वेळ (ब्लॉक्स् वाचा): %ld ms\n" #: src/readahead.c:342 #, c-format msgid "Read blocks for %d/%d files (%llu KB)\n" msgstr "%d/%d फाइल्स् (%llu KB) करीता ब्लॉक्स् वाचा\n" #: src/readahead.c:382 #, c-format msgid "Time (readahead): %ld ms\n" msgstr "वेळ (readahead): %ld ms\n" #: src/readahead.c:385 #, c-format msgid "Preload %d/%d files (%llu KB)\n" msgstr "प्रीलोड %d/%d फाइल्स् (%llu KB)\n" #: src/readahead.c:413 #, c-format msgid "" "\n" "%s [options] [...]\n" "\n" msgstr "" "\n" "%s [options] [...]\n" "\n" #: src/readahead.c:414 msgid "" " -s | --sort sort list of files only\n" " -o | --output output sorted list of files\n" " -d | --dont-sort call readahead(2) for already sorted list\n" " -h | --help this help\n" " -v | --verbose verbose mode\n" " -t | --timing report wasted time\n" " -m | --maxsize <10240> max size of a file to be preloaded (in KiB)\n" "\n" msgstr "" " -s | --sort sort list of files only\n" " -o | --output output sorted list of files\n" " -d | --dont-sort call readahead(2) for already sorted list\n" " -h | --help this help\n" " -v | --verbose verbose mode\n" " -t | --timing report wasted time\n" " -m | --maxsize <10240> max size of a file to be preloaded (in KiB)\n" "\n" #: src/readahead.c:493 #, c-format msgid "Mode: %s\n" msgstr "मोड: %s\n" #: src/readahead.c:497 #, c-format msgid "Output: %s\n" msgstr "आऊटपुट: %s\n" #: src/readahead.c:499 #, c-format msgid "List: %s\n" msgstr "सूची: %s\n" #: src/readahead.c:532 #, c-format msgid "Time total: %ld ms\n" msgstr "एकूण वेळ: %ld ms\n" readahead-fedora-1.5.6/po/nl.po000066400000000000000000000066361135243252200162600ustar00rootroot00000000000000# Dutch translation of readahead. # Copyright (C) 2009 Karel Zak # This file is distributed under the same license as the readahead package. # Geert Warrink , 2009. # # msgid "" msgstr "" "Project-Id-Version: readahead\n" "Report-Msgid-Bugs-To: kzak@redhat.com\n" "POT-Creation-Date: 2010-03-24 16:51+0100\n" "PO-Revision-Date: 2009-10-06 19:09+0200\n" "Last-Translator: Geert Warrink \n" "Language-Team: nl \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" #: src/readahead.c:121 #, c-format msgid "%s: error: max device count reached.\n" msgstr "%s: fout: maximale aantal apparaten grens bereikt.\n" #: src/readahead.c:164 #, c-format msgid "%s: error: ext2fs_open_inode_scan failed\n" msgstr "%s: fout: ext2fs_open_inode_scan mislukte\n" #: src/readahead.c:169 #, c-format msgid "%s: error: ext2fs_open_inode_scan() failed\n" msgstr "%s: fout: ext2fs_open_inode_scan() mislukte\n" #: src/readahead.c:196 src/readahead.c:405 #, c-format msgid "%s: error: %s: %s\n" msgstr "%s: fout: %s: %s\n" #: src/readahead.c:213 #, c-format msgid "%s: error: %s: unexpected format of sorted file\n" msgstr "%s: fout: %s: onverwacht formaat van gesorteerd bestand\n" #: src/readahead.c:234 #, c-format msgid "%s: error: max file count reached\n" msgstr "%s: fout: maximale aantal bestanden grens bereikt\n" #: src/readahead.c:244 #, c-format msgid "Time (read lists): %ld ms\n" msgstr "Tijd (lijsten lezen): %ld ms\n" #: src/readahead.c:248 #, c-format msgid "Create list with %d files\n" msgstr "Maak lijst met %d bestanden\n" #: src/readahead.c:344 #, c-format msgid "Time (read blocks): %ld ms\n" msgstr "Tijd (blokken lezen): %ld ms\n" #: src/readahead.c:348 #, c-format msgid "Read blocks for %d/%d files (%llu KB)\n" msgstr "Lees blokken voor %d/%d bestanden (%llu KB)\n" #: src/readahead.c:389 #, c-format msgid "Time (readahead): %ld ms\n" msgstr "Tijd (vooruitlezen): %ld ms\n" #: src/readahead.c:392 #, c-format msgid "Preload %d/%d files (%llu KB)\n" msgstr "Vooruitladen %d/%d bestanden (%llu KB)\n" #: src/readahead.c:424 #, c-format msgid "" "\n" "%s [options] [...]\n" "\n" msgstr "" "\n" "%s [opties] [...]\n" "\n" #: src/readahead.c:425 msgid "" " -s | --sort sort list of files only\n" " -o | --output output sorted list of files\n" " -d | --dont-sort call readahead(2) for already sorted list\n" " -h | --help this help\n" " -v | --verbose verbose mode\n" " -t | --timing report wasted time\n" " -m | --maxsize <10240> max size of a file to be preloaded (in KiB)\n" "\n" msgstr "" " -s | --sort sorteer alleen lijst van bestanden\n" " -o | --output output gesorteerde lijst van bestanden\n" " -d | --dont-sort roep readahead(2) aan voor reeds gesorteerde " "lijst\n" " -h | --help deze hulp\n" " -v | --verbose breedsprakige·mode\n" " -t | --timing rapporteer verspilde tijd\n" " -m | --maxsize <10240> max grootte van een voor-geladen bestand (in KiB)\n" "\n" #: src/readahead.c:504 #, c-format msgid "Mode: %s\n" msgstr "Mode: %s\n" #: src/readahead.c:508 #, c-format msgid "Output: %s\n" msgstr "Output: %s\n" #: src/readahead.c:510 #, c-format msgid "List: %s\n" msgstr "Lijst: %s\n" #: src/readahead.c:547 #, c-format msgid "Time total: %ld ms\n" msgstr "Totale tijd: %ld ms\n" readahead-fedora-1.5.6/po/or.po000066400000000000000000000111531135243252200162550ustar00rootroot00000000000000# translation of readahead.master.or.po to Oriya # Copyright (C) YEAR Karel Zak # This file is distributed under the same license as the PACKAGE package. # # Manoj Kumar Giri , 2009. msgid "" msgstr "" "Project-Id-Version: readahead.master.or\n" "Report-Msgid-Bugs-To: kzak@redhat.com\n" "POT-Creation-Date: 2009-10-13 12:17+0200\n" "PO-Revision-Date: 2009-11-12 17:56+0530\n" "Last-Translator: Manoj Kumar Giri \n" "Language-Team: Oriya \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n\n" "\n" "\n" "\n" "\n" "\n" "\n" #: src/readahead.c:121 #, c-format msgid "%s: error: max device count reached.\n" msgstr "%s: ତ୍ରୁଟି: ସର୍ବାଧିକ ଉପକରଣ ସଂଖ୍ୟା ପହଞ୍ଚିଯାଇଛି।\n" #: src/readahead.c:164 #, c-format msgid "%s: error: ext2fs_open_inode_scan failed\n" msgstr "%s: ତ୍ରୁଟି: ext2fs_open_inode_scan ବିଫଳ ହୋଇଛି\n" #: src/readahead.c:169 #, c-format msgid "%s: error: ext2fs_open_inode_scan() failed\n" msgstr "%s: ତ୍ରୁଟି: ext2fs_open_inode_scan() ବିଫଳ ହୋଇଛି\n" #: src/readahead.c:196 src/readahead.c:398 #, c-format msgid "%s: error: %s: %s\n" msgstr "%s: ତ୍ରୁଟି: %s: %s\n" #: src/readahead.c:213 #, c-format msgid "%s: error: %s: unexpected format of sorted file\n" msgstr "%s: ତ୍ରୁଟି: %s: କ୍ରମାନ୍ନୟରେ ଥିବା ଫାଇଲର ଅପ୍ରତ୍ୟାଶିତ ସଜ୍ଜିକରଣ ଶୈଳୀ\n" #: src/readahead.c:234 #, c-format msgid "%s: error: max file count reached\n" msgstr "%s: ତ୍ରୁଟି: ସର୍ବାଧିକ ଫାଇଲ ସଂଖ୍ୟା ପହଞ୍ଚିଯାଇଛି\n" #: src/readahead.c:244 #, c-format msgid "Time (read lists): %ld ms\n" msgstr "ସମୟ (ତାଲିକାଗୁଡ଼ିକୁ ପଢ଼ନ୍ତୁ): %ld ms\n" #: src/readahead.c:248 #, c-format msgid "Create list with %d files\n" msgstr "%d ଫାଇଲଗୁଡ଼ିକ ସହିତ ତାଲିକା ନିର୍ମାଣ କରନ୍ତୁ\n" #: src/readahead.c:338 #, c-format msgid "Time (read blocks): %ld ms\n" msgstr "ସମୟ (ବ୍ଲକଗୁଡ଼ିକୁ ପଢ଼ନ୍ତୁ): %ld ms\n" #: src/readahead.c:342 #, c-format msgid "Read blocks for %d/%d files (%llu KB)\n" msgstr "%d/%d ଫାଇଲଗୁଡ଼ିକ ପାଇଁ ବ୍ଲକଗୁଡ଼ିକୁ ପଢ଼ନ୍ତୁ (%llu KB)\n" #: src/readahead.c:382 #, c-format msgid "Time (readahead): %ld ms\n" msgstr "ସମୟ (readahead): %ld ms\n" #: src/readahead.c:385 #, c-format msgid "Preload %d/%d files (%llu KB)\n" msgstr "ପୂର୍ବରୁ ଧାରଣ କରାଯାଇଥିବା %d/%d ଫାଇଲଗୁଡ଼ିକ (%llu KB)\n" #: src/readahead.c:413 #, c-format msgid "" "\n" "%s [options] [...]\n" "\n" msgstr "" "\n" "%s [options] [...]\n" "\n" #: src/readahead.c:414 msgid "" " -s | --sort sort list of files only\n" " -o | --output output sorted list of files\n" " -d | --dont-sort call readahead(2) for already sorted list\n" " -h | --help this help\n" " -v | --verbose verbose mode\n" " -t | --timing report wasted time\n" " -m | --maxsize <10240> max size of a file to be preloaded (in KiB)\n" "\n" msgstr "" " -s | --sort କେବଳ ଫାଇଲଗୁଡ଼ିକର ତାଲିକାକୁ କ୍ରମରେ ସଜାଡନ୍ତୁ\n" " -o | --output କ୍ରମରେ ଥିବା ଫଳାଫଳ ଫାଇଲଗୁଡ଼ିକ\n" " -d | --dont-sort ପୂର୍ବନିର୍ଦ୍ଧାରିତ ସଜଡ଼ା ତାଲିକା ପାଇଁ readahead(2) କୁ ଡ଼ାକନ୍ତୁ\n" " -h | --help ଏହି ସହାୟତା\n" " -v | --verbose verbose ଧାରା\n" " -t | --timing ନଷ୍ଟହୋଇଥିବା ସମୟ ନିର୍ଦ୍ଧିଷ୍ଟ କରନ୍ତୁ\n" " -m | --maxsize <10240> ପୂର୍ବରୁ ଧାରଣ ହେବାକୁ ଥିବା ଗୋଟିଏ ଫାଇଲର ସର୍ବାଧିକ ଆକାର (KiB ରେ)\n" "\n" #: src/readahead.c:493 #, c-format msgid "Mode: %s\n" msgstr "ଧାରା: %s\n" #: src/readahead.c:497 #, c-format msgid "Output: %s\n" msgstr "ଫଳାଫଳ: %s\n" #: src/readahead.c:499 #, c-format msgid "List: %s\n" msgstr "ତାଲିକା: %s\n" #: src/readahead.c:532 #, c-format msgid "Time total: %ld ms\n" msgstr "ସମୁଦାୟ ସମୟ: %ld ms\n" readahead-fedora-1.5.6/po/pa.po000066400000000000000000000074571135243252200162510ustar00rootroot00000000000000# translation of readahead.master.pa.po to Punjabi # Copyright (C) YEAR Karel Zak # This file is distributed under the same license as the PACKAGE package. # # Jaswinder Singh , 2009. msgid "" msgstr "" "Project-Id-Version: readahead.master.pa\n" "Report-Msgid-Bugs-To: kzak@redhat.com\n" "POT-Creation-Date: 2009-10-13 12:17+0200\n" "PO-Revision-Date: 2009-11-12 11:48+0530\n" "Last-Translator: Jaswinder Singh \n" "Language-Team: Punjabi/Panjabi \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.0\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: src/readahead.c:121 #, c-format msgid "%s: error: max device count reached.\n" msgstr "%s: ਗਲਤੀ: ਵੱਧ-ਤੋਂ-ਵੱਧ ਜੰਤਰ ਗਿਣਤੀ ਪਹੁੰਚ ਗਈ।\n" #: src/readahead.c:164 #, c-format msgid "%s: error: ext2fs_open_inode_scan failed\n" msgstr "%s: ਗਲਤੀ: ext2fs_open_inode_scan ਫੇਲ ਹੋਇਆ\n" #: src/readahead.c:169 #, c-format msgid "%s: error: ext2fs_open_inode_scan() failed\n" msgstr "%s: ਗਲਤੀ: ext2fs_open_inode_scan() ਫੇਲ ਹੋਇਆ\n" #: src/readahead.c:196 src/readahead.c:398 #, c-format msgid "%s: error: %s: %s\n" msgstr "%s: ਗਲਤੀ: %s: %s\n" #: src/readahead.c:213 #, c-format msgid "%s: error: %s: unexpected format of sorted file\n" msgstr "%s: ਗਲਤੀ: %s: ਸੰਭਾਲੀ ਫਾਇਲ ਦਾ ਅਣਜਾਣ ਫਾਰਮੈਟ\n" #: src/readahead.c:234 #, c-format msgid "%s: error: max file count reached\n" msgstr "%s: ਗਲਤੀ: ਅਧਿਕਤਮ ਫਾਇਲ ਗਿਣਤੀ ਪਹੁੰਚ ਗਈ\n" #: src/readahead.c:244 #, c-format msgid "Time (read lists): %ld ms\n" msgstr "ਟਾਈਮ (ਸੂਚੀਆਂ ਪੜੋ): %ld ms\n" #: src/readahead.c:248 #, c-format msgid "Create list with %d files\n" msgstr "%d ਫਾਇਲਾਂ ਨਾਲ ਸੂਚੀ ਬਣਾਓ\n" #: src/readahead.c:338 #, c-format msgid "Time (read blocks): %ld ms\n" msgstr "ਟਾਈਮ (ਬਲਾਕ ਪੜੋ): %ld ms\n" #: src/readahead.c:342 #, c-format msgid "Read blocks for %d/%d files (%llu KB)\n" msgstr "%d/%d ਫਾਇਲਾਂ ਲਈ ਬਲਾਕ ਪੜੋ (%llu KB)\n" #: src/readahead.c:382 #, c-format msgid "Time (readahead): %ld ms\n" msgstr "ਟਾਈਮ (readahead): %ld ms\n" #: src/readahead.c:385 #, c-format msgid "Preload %d/%d files (%llu KB)\n" msgstr "%d/%d ਫਾਇਲਾਂ ਪਰੀਲੋਡ ਕਰੋ (%llu KB)\n" #: src/readahead.c:413 #, c-format msgid "" "\n" "%s [options] [...]\n" "\n" msgstr "" "\n" "%s [options] [...]\n" "\n" #: src/readahead.c:414 msgid "" " -s | --sort sort list of files only\n" " -o | --output output sorted list of files\n" " -d | --dont-sort call readahead(2) for already sorted list\n" " -h | --help this help\n" " -v | --verbose verbose mode\n" " -t | --timing report wasted time\n" " -m | --maxsize <10240> max size of a file to be preloaded (in KiB)\n" "\n" msgstr "" " -s | --sort sort list of files only\n" " -o | --output output sorted list of files\n" " -d | --dont-sort call readahead(2) for already sorted list\n" " -h | --help this help\n" " -v | --verbose verbose mode\n" " -t | --timing report wasted time\n" " -m | --maxsize <10240> max size of a file to be preloaded (in KiB)\n" "\n" #: src/readahead.c:493 #, c-format msgid "Mode: %s\n" msgstr "ਮੋਡ: %s\n" #: src/readahead.c:497 #, c-format msgid "Output: %s\n" msgstr "ਆਊਟਪੁੱਟ: %s\n" #: src/readahead.c:499 #, c-format msgid "List: %s\n" msgstr "ਸੂਚੀ: %s\n" #: src/readahead.c:532 #, c-format msgid "Time total: %ld ms\n" msgstr "ਟਾਈਮ ਕੁੱਲ: %ld ms\n" readahead-fedora-1.5.6/po/pl.po000066400000000000000000000066211135243252200162540ustar00rootroot00000000000000# translation of pl.po to Polish # Piotr Drąg , 2007. # msgid "" msgstr "" "Project-Id-Version: pl\n" "Report-Msgid-Bugs-To: kzak@redhat.com\n" "POT-Creation-Date: 2010-03-24 16:51+0100\n" "PO-Revision-Date: 2008-10-06 22:50+0200\n" "Last-Translator: Piotr Drąg \n" "Language-Team: Polish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: src/readahead.c:121 #, c-format msgid "%s: error: max device count reached.\n" msgstr "%s: błąd: osiągnięto maksymalną liczbę urządzeń.\n" #: src/readahead.c:164 #, c-format msgid "%s: error: ext2fs_open_inode_scan failed\n" msgstr "%s: błąd: ext2fs_open_inode_scan nie powiodło się\n" #: src/readahead.c:169 #, c-format msgid "%s: error: ext2fs_open_inode_scan() failed\n" msgstr "%s: błąd: ext2fs_open_inode_scan() nie powiodło się\n" #: src/readahead.c:196 src/readahead.c:405 #, c-format msgid "%s: error: %s: %s\n" msgstr "%s: błąd: %s: %s\n" #: src/readahead.c:213 #, c-format msgid "%s: error: %s: unexpected format of sorted file\n" msgstr "%s: błąd: %s: nieoczekiwany format uporządkowanego pliku\n" #: src/readahead.c:234 #, c-format msgid "%s: error: max file count reached\n" msgstr "%s: błąd: osiągnięto maksymalną liczbę plików\n" #: src/readahead.c:244 #, c-format msgid "Time (read lists): %ld ms\n" msgstr "Czas (odczytywania list): %ld ms\n" #: src/readahead.c:248 #, c-format msgid "Create list with %d files\n" msgstr "Utworzenie listy z %d plikami\n" #: src/readahead.c:344 #, c-format msgid "Time (read blocks): %ld ms\n" msgstr "Czas (odczytywania bloków): %ld ms\n" #: src/readahead.c:348 #, c-format msgid "Read blocks for %d/%d files (%llu KB)\n" msgstr "Odczytanie bloków %d/%d plików (%llu KB)\n" #: src/readahead.c:389 #, c-format msgid "Time (readahead): %ld ms\n" msgstr "Czas (wczytywania z wyprzedzeniem): %ld ms\n" #: src/readahead.c:392 #, c-format msgid "Preload %d/%d files (%llu KB)\n" msgstr "Wczytanie z wyprzedzeniem %d/%d plików (%llu KB)\n" #: src/readahead.c:424 #, c-format msgid "" "\n" "%s [options] [...]\n" "\n" msgstr "" "\n" "%s [opcje] [...]\n" "\n" #: src/readahead.c:425 msgid "" " -s | --sort sort list of files only\n" " -o | --output output sorted list of files\n" " -d | --dont-sort call readahead(2) for already sorted list\n" " -h | --help this help\n" " -v | --verbose verbose mode\n" " -t | --timing report wasted time\n" " -m | --maxsize <10240> max size of a file to be preloaded (in KiB)\n" "\n" msgstr "" " -s | --sort uporządkowuje tylko listę plików\n" " -o | --output wyświetla uporządkowaną listę plików\n" " -d | --dont-sort wywołuje readahead(2) dla już uporządkowanej listy\n" " -h | --help ta pomoc\n" " -v | --verbose tryb szczegółowy\n" " -t | --timing wyświetla zużyty czas\n" " -m | --maxsize <10240> maksymalny rozmiar pliku do wczytywania\n" " z wyprzedzeniem (w KiB)\n" "\n" #: src/readahead.c:504 #, c-format msgid "Mode: %s\n" msgstr "Tryb: %s\n" #: src/readahead.c:508 #, c-format msgid "Output: %s\n" msgstr "Wyjście: %s\n" #: src/readahead.c:510 #, c-format msgid "List: %s\n" msgstr "Lista: %s\n" #: src/readahead.c:547 #, c-format msgid "Time total: %ld ms\n" msgstr "Czas całkowity: %ld ms\n" readahead-fedora-1.5.6/po/pt.po000066400000000000000000000065001135243252200162600ustar00rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: readahead\n" "Report-Msgid-Bugs-To: kzak@redhat.com\n" "POT-Creation-Date: 2009-10-06 16:21+0200\n" "PO-Revision-Date: \n" "Last-Translator: Rui Gouveia \n" "Language-Team: pt \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Poedit-Language: Portuguese\n" "X-Poedit-Country: PORTUGAL\n" #: src/readahead.c:121 #, c-format msgid "%s: error: max device count reached.\n" msgstr "%s: erro: atingido o contador máximo do dispositivo.\n" #: src/readahead.c:162 #, c-format msgid "%s: error: ext2fs_open_inode_scan failed\n" msgstr "%s: erro: ext2fs_open_inode_scan falhou\n" #: src/readahead.c:167 #, c-format msgid "%s: error: ext2fs_open_inode_scan() failed\n" msgstr "%s: erro: ext2fs_open_inode_scan() falhou\n" #: src/readahead.c:194 #: src/readahead.c:396 #, c-format msgid "%s: error: %s: %s\n" msgstr "%s: erro: %s: %s\n" #: src/readahead.c:211 #, c-format msgid "%s: error: %s: unexpected format of sorted file\n" msgstr "%s: erro: %s: formato inesperado de ficheiros ordenados\n" #: src/readahead.c:232 #, c-format msgid "%s: error: max file count reached\n" msgstr "%s: erro: atingido o contador máximo de ficheiros\n" #: src/readahead.c:242 #, c-format msgid "Time (read lists): %ld ms\n" msgstr "Tempo (leitura de listas): %ld ms\n" #: src/readahead.c:246 #, c-format msgid "Create list with %d files\n" msgstr "Criar lista com %d ficheiros\n" #: src/readahead.c:336 #, c-format msgid "Time (read blocks): %ld ms\n" msgstr "Tempo (leitura de blocos): %ld ms\n" #: src/readahead.c:340 #, c-format msgid "Read blocks for %d/%d files (%llu KB)\n" msgstr "Ler blocos para %d/%d ficheiros (%llu KB)\n" #: src/readahead.c:380 #, c-format msgid "Time (readahead): %ld ms\n" msgstr "Tempo (leitura antecipada): %ld ms\n" #: src/readahead.c:383 #, c-format msgid "Preload %d/%d files (%llu KB)\n" msgstr "Carregamento antecipado %d/%d ficheiros (%llu KB)\n" #: src/readahead.c:411 #, c-format msgid "" "\n" "%s [options] [...]\n" "\n" msgstr "" "\n" "%s [opções] [...]\n" "\n" #: src/readahead.c:412 msgid "" " -s | --sort sort list of files only\n" " -o | --output output sorted list of files\n" " -d | --dont-sort call readahead(2) for already sorted list\n" " -h | --help this help\n" " -v | --verbose verbose mode\n" " -t | --timing report wasted time\n" " -m | --maxsize <10240> max size of a file to be preloaded (in KiB)\n" "\n" msgstr "" " -s | --sort ordenar apenas listas de ficheiros\n" " -o | --output gerar lista de ficheiros ordenados\n" " -d | --dont-sort chamar readahead(2) para lista já ordenada\n" " -h | --help esta ajuda\n" " -v | --verbose modo verboso\n" " -t | --timing reportar tempo gasto\n" " -m | --maxsize <10240> tamanho máximo do ficheiro a ser pré-carregado (em KiB)\n" "\n" #: src/readahead.c:491 #, c-format msgid "Mode: %s\n" msgstr "Modo: %s\n" #: src/readahead.c:495 #, c-format msgid "Output: %s\n" msgstr "Resultado: %s\n" #: src/readahead.c:497 #, c-format msgid "List: %s\n" msgstr "Lista: %s\n" #: src/readahead.c:530 #, c-format msgid "Time total: %ld ms\n" msgstr "Tempo total: %ld ms\n" readahead-fedora-1.5.6/po/pt_BR.po000066400000000000000000000071571135243252200166540ustar00rootroot00000000000000# Brazilian Portuguese translation of readahead. # This file is distributed under the same license as the readahead package. # # Diego Búrigo Zacarão , 2007. # Igor Pires Soares , 2009. # msgid "" msgstr "" "Project-Id-Version: readahead\n" "Report-Msgid-Bugs-To: kzak@redhat.com\n" "POT-Creation-Date: 2010-03-24 16:51+0100\n" "PO-Revision-Date: 2009-10-17 16:32-0300\n" "Last-Translator: Igor Pires Soares \n" "Language-Team: Brazilian Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Poedit-Language: Portuguese\n" "X-Poedit-Country: BRAZIL\n" #: src/readahead.c:121 #, c-format msgid "%s: error: max device count reached.\n" msgstr "%s: erro: número máximo de dispositivos atingido.\n" #: src/readahead.c:164 #, c-format msgid "%s: error: ext2fs_open_inode_scan failed\n" msgstr "%s: erro: ext2fs_open_inode_scan falhou\n" #: src/readahead.c:169 #, c-format msgid "%s: error: ext2fs_open_inode_scan() failed\n" msgstr "%s: erro: ext2fs_open_inode_scan() falhou\n" #: src/readahead.c:196 src/readahead.c:405 #, c-format msgid "%s: error: %s: %s\n" msgstr "%s: erro: %s: %s\n" #: src/readahead.c:213 #, c-format msgid "%s: error: %s: unexpected format of sorted file\n" msgstr "%s: erro: %s: formato inesperado de arquivo ordenado\n" #: src/readahead.c:234 #, c-format msgid "%s: error: max file count reached\n" msgstr "%s: erro: número máximo de arquivos atingido\n" #: src/readahead.c:244 #, c-format msgid "Time (read lists): %ld ms\n" msgstr "Tempo (leitura de listas): %ld ms\n" #: src/readahead.c:248 #, c-format msgid "Create list with %d files\n" msgstr "Criar lista com os arquivos %d\n" #: src/readahead.c:344 #, c-format msgid "Time (read blocks): %ld ms\n" msgstr "Tempo (leitura de blocos): %ld ms\n" #: src/readahead.c:348 #, c-format msgid "Read blocks for %d/%d files (%llu KB)\n" msgstr "Ler blocos para os arquivos %d/%d (%llu KB)\n" #: src/readahead.c:389 #, c-format msgid "Time (readahead): %ld ms\n" msgstr "Tempo (readahead): %ld ms\n" #: src/readahead.c:392 #, c-format msgid "Preload %d/%d files (%llu KB)\n" msgstr "Precarregar arquivos %d/%d (%llu KB)\n" #: src/readahead.c:424 #, c-format msgid "" "\n" "%s [options] [...]\n" "\n" msgstr "" "\n" "%s [opções] [...]\n" "\n" #: src/readahead.c:425 msgid "" " -s | --sort sort list of files only\n" " -o | --output output sorted list of files\n" " -d | --dont-sort call readahead(2) for already sorted list\n" " -h | --help this help\n" " -v | --verbose verbose mode\n" " -t | --timing report wasted time\n" " -m | --maxsize <10240> max size of a file to be preloaded (in KiB)\n" "\n" msgstr "" " -s | --sort lista ordenada de arquivos somente\n" " -o | --output saída para a lista ordenada de arquivos\n" " -d | --dont-sort chama o readahead(2) para uma lista já ordenada\n" " -h | --help este conteúdo de ajuda\n" " -v | --verbose modo verbose\n" " -t | --timing relatório de tempo perdido\n" " -m | --maxsize <10240> tamanho máximo do arquivo a ser precarregado (em " "KiB)\n" "\n" #: src/readahead.c:504 #, c-format msgid "Mode: %s\n" msgstr "Modo: %s\n" #: src/readahead.c:508 #, c-format msgid "Output: %s\n" msgstr "Saída: %s\n" #: src/readahead.c:510 #, c-format msgid "List: %s\n" msgstr "Lista: %s\n" #: src/readahead.c:547 #, c-format msgid "Time total: %ld ms\n" msgstr "Tempo total: %ld ms\n" readahead-fedora-1.5.6/po/readahead.pot000066400000000000000000000046361135243252200177270ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Karel Zak # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: readahead 1.5.6\n" "Report-Msgid-Bugs-To: kzak@redhat.com\n" "POT-Creation-Date: 2010-03-24 16:51+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #: src/readahead.c:121 #, c-format msgid "%s: error: max device count reached.\n" msgstr "" #: src/readahead.c:164 #, c-format msgid "%s: error: ext2fs_open_inode_scan failed\n" msgstr "" #: src/readahead.c:169 #, c-format msgid "%s: error: ext2fs_open_inode_scan() failed\n" msgstr "" #: src/readahead.c:196 src/readahead.c:405 #, c-format msgid "%s: error: %s: %s\n" msgstr "" #: src/readahead.c:213 #, c-format msgid "%s: error: %s: unexpected format of sorted file\n" msgstr "" #: src/readahead.c:234 #, c-format msgid "%s: error: max file count reached\n" msgstr "" #: src/readahead.c:244 #, c-format msgid "Time (read lists): %ld ms\n" msgstr "" #: src/readahead.c:248 #, c-format msgid "Create list with %d files\n" msgstr "" #: src/readahead.c:344 #, c-format msgid "Time (read blocks): %ld ms\n" msgstr "" #: src/readahead.c:348 #, c-format msgid "Read blocks for %d/%d files (%llu KB)\n" msgstr "" #: src/readahead.c:389 #, c-format msgid "Time (readahead): %ld ms\n" msgstr "" #: src/readahead.c:392 #, c-format msgid "Preload %d/%d files (%llu KB)\n" msgstr "" #: src/readahead.c:424 #, c-format msgid "" "\n" "%s [options] [...]\n" "\n" msgstr "" #: src/readahead.c:425 msgid "" " -s | --sort sort list of files only\n" " -o | --output output sorted list of files\n" " -d | --dont-sort call readahead(2) for already sorted list\n" " -h | --help this help\n" " -v | --verbose verbose mode\n" " -t | --timing report wasted time\n" " -m | --maxsize <10240> max size of a file to be preloaded (in KiB)\n" "\n" msgstr "" #: src/readahead.c:504 #, c-format msgid "Mode: %s\n" msgstr "" #: src/readahead.c:508 #, c-format msgid "Output: %s\n" msgstr "" #: src/readahead.c:510 #, c-format msgid "List: %s\n" msgstr "" #: src/readahead.c:547 #, c-format msgid "Time total: %ld ms\n" msgstr "" readahead-fedora-1.5.6/po/ru.po000066400000000000000000000076021135243252200162670ustar00rootroot00000000000000# translation of ru.po to # Copyright (C) YEAR Karel Zak # This file is distributed under the same license as the PACKAGE package. # # Yulia , 2009. msgid "" msgstr "" "Project-Id-Version: ru\n" "Report-Msgid-Bugs-To: kzak@redhat.com\n" "POT-Creation-Date: 2009-10-13 12:17+0200\n" "PO-Revision-Date: 2009-11-05 10:55+1100\n" "Last-Translator: Yulia \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" #: src/readahead.c:121 #, c-format msgid "%s: error: max device count reached.\n" msgstr "%s: ошибка: достигнуто максимальное число устройств.\n" #: src/readahead.c:164 #, c-format msgid "%s: error: ext2fs_open_inode_scan failed\n" msgstr "%s: ошибка: сбой ext2fs_open_inode_scan\n" #: src/readahead.c:169 #, c-format msgid "%s: error: ext2fs_open_inode_scan() failed\n" msgstr "%s: ошибка: сбой ext2fs_open_inode_scan()\n" #: src/readahead.c:196 src/readahead.c:398 #, c-format msgid "%s: error: %s: %s\n" msgstr "%s: ошибка: %s: %s\n" #: src/readahead.c:213 #, c-format msgid "%s: error: %s: unexpected format of sorted file\n" msgstr "%s: ошибка: %s: недопустимый формат упорядоченного файла\n" #: src/readahead.c:234 #, c-format msgid "%s: error: max file count reached\n" msgstr "%s: ошибка: достигнуто максимальное число файлов.\n" #: src/readahead.c:244 #, c-format msgid "Time (read lists): %ld ms\n" msgstr "Время (чтения списков): %ld мс\n" #: src/readahead.c:248 #, c-format msgid "Create list with %d files\n" msgstr "Создать список с %d файлами\n" #: src/readahead.c:338 #, c-format msgid "Time (read blocks): %ld ms\n" msgstr "Время (чтения блоков): %ld мс\n" #: src/readahead.c:342 #, c-format msgid "Read blocks for %d/%d files (%llu KB)\n" msgstr "Чтение блоков для %d/%d файлов (%llu Кбайт)\n" #: src/readahead.c:382 #, c-format msgid "Time (readahead): %ld ms\n" msgstr "Время (readahead): %ld мс\n" #: src/readahead.c:385 #, c-format msgid "Preload %d/%d files (%llu KB)\n" msgstr "Предварительно загрузить %d/%d файлов (%llu Кбайт)\n" #: src/readahead.c:413 #, c-format msgid "" "\n" "%s [options] [...]\n" "\n" msgstr "" "\n" "%s [опции] <файл> [...]\n" "\n" #: src/readahead.c:414 msgid "" " -s | --sort sort list of files only\n" " -o | --output output sorted list of files\n" " -d | --dont-sort call readahead(2) for already sorted list\n" " -h | --help this help\n" " -v | --verbose verbose mode\n" " -t | --timing report wasted time\n" " -m | --maxsize <10240> max size of a file to be preloaded (in KiB)\n" "\n" msgstr "" " -s | --sort сортировка только списка файлов\n" " -o | --output <файл> вывод упорядоченного списка файлов\n" " -d | --dont-sort вызов readahead(2) для упорядоченного списка\n" " -h | --help эта справка\n" " -v | --verbose подробный вывод\n" " -t | --timing отчёт о потраченном времени\n" " -m | --maxsize <10240> максимальный размер предварительно загруженного файла (в Кбайт)\n" "\n" #: src/readahead.c:493 #, c-format msgid "Mode: %s\n" msgstr "Режим: %s\n" #: src/readahead.c:497 #, c-format msgid "Output: %s\n" msgstr "Вывод: %s\n" #: src/readahead.c:499 #, c-format msgid "List: %s\n" msgstr "Список: %s\n" #: src/readahead.c:532 #, c-format msgid "Time total: %ld ms\n" msgstr "Общее время: %ld мс\n" readahead-fedora-1.5.6/po/sr.po000066400000000000000000000101311135243252200162540ustar00rootroot00000000000000# Serbian translations for readahead # Copyright (C) 2007 Red Hat, Inc. # This file is distributed under the same license as the readahead package. # Nikola Pajtić , 2008. # Jovan Krunic , 2008. # Miloš Komarčević , 2009. # msgid "" msgstr "" "Project-Id-Version: readahead-1.5\n" "Report-Msgid-Bugs-To: kzak@redhat.com\n" "POT-Creation-Date: 2010-03-24 16:51+0100\n" "PO-Revision-Date: 2009-10-06 22:09+0100\n" "Last-Translator: Miloš Komarčević \n" "Language-Team: Serbian (sr) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" #: src/readahead.c:121 #, c-format msgid "%s: error: max device count reached.\n" msgstr "%s: грешка: досегнут је максималан број уређаја.\n" #: src/readahead.c:164 #, c-format msgid "%s: error: ext2fs_open_inode_scan failed\n" msgstr "%s: грешка: ext2fs_open_inode_scan није успео\n" #: src/readahead.c:169 #, c-format msgid "%s: error: ext2fs_open_inode_scan() failed\n" msgstr "%s: грешка: ext2fs_open_inode_scan() није успео\n" #: src/readahead.c:196 src/readahead.c:405 #, c-format msgid "%s: error: %s: %s\n" msgstr "%s: грешка: %s: %s\n" #: src/readahead.c:213 #, c-format msgid "%s: error: %s: unexpected format of sorted file\n" msgstr "%s: грешка: %s: неочекивани формат сортиране датотеке\n" #: src/readahead.c:234 #, c-format msgid "%s: error: max file count reached\n" msgstr "%s: грешка: досегнут је максималан број датотека\n" #: src/readahead.c:244 #, c-format msgid "Time (read lists): %ld ms\n" msgstr "Време (читања листи): %ld мс\n" #: src/readahead.c:248 #, c-format msgid "Create list with %d files\n" msgstr "Направите листу са %d датотека\n" #: src/readahead.c:344 #, c-format msgid "Time (read blocks): %ld ms\n" msgstr "Време (читања блокова): %ld мс\n" #: src/readahead.c:348 #, c-format msgid "Read blocks for %d/%d files (%llu KB)\n" msgstr "Читај блокове за %d/%d датотеке (%llu КБ)\n" #: src/readahead.c:389 #, c-format msgid "Time (readahead): %ld ms\n" msgstr "Време (readahead): %ld мс\n" #: src/readahead.c:392 #, c-format msgid "Preload %d/%d files (%llu KB)\n" msgstr "Предучитавање %d/%d датотека (%llu КБ)\n" #: src/readahead.c:424 #, c-format msgid "" "\n" "%s [options] [...]\n" "\n" msgstr "" "\n" "%s [опције] <датотека> [...]\n" "\n" #: src/readahead.c:425 msgid "" " -s | --sort sort list of files only\n" " -o | --output output sorted list of files\n" " -d | --dont-sort call readahead(2) for already sorted list\n" " -h | --help this help\n" " -v | --verbose verbose mode\n" " -t | --timing report wasted time\n" " -m | --maxsize <10240> max size of a file to be preloaded (in KiB)\n" "\n" msgstr "" " -s | --sort сортирај само листу датотека\n" " -o | --output излаз сортиране листе датотека\n" " -d | --dont-sort позови readahead(2) за већ сортиране листе\n" " -h | --help ова помоћ\n" " -v | --verbose режим детаљног исписивања\n" " -t | --timing извести о изгубљеном времену\n" " -m | --maxsize <10240> макс. величина датотеке за предучитавање (у КиБ)\n" "\n" #: src/readahead.c:504 #, c-format msgid "Mode: %s\n" msgstr "Режим: %s\n" #: src/readahead.c:508 #, c-format msgid "Output: %s\n" msgstr "Излаз: %s\n" #: src/readahead.c:510 #, c-format msgid "List: %s\n" msgstr "Листа: %s\n" #: src/readahead.c:547 #, c-format msgid "Time total: %ld ms\n" msgstr "Укупно време: %ld мс\n" readahead-fedora-1.5.6/po/sr@latin.po000066400000000000000000000072301135243252200174120ustar00rootroot00000000000000# Serbian(Latin) translations for readahead # Copyright (C) 2007 Red Hat, Inc. # This file is distributed under the same license as the readahead package. # Nikola Pajtić , 2008. # Jovan Krunic , 2008. # Miloš Komarčević , 2009. # msgid "" msgstr "" "Project-Id-Version: readahead-1.5\n" "Report-Msgid-Bugs-To: kzak@redhat.com\n" "POT-Creation-Date: 2010-03-24 16:51+0100\n" "PO-Revision-Date: 2009-10-06 22:09+0100\n" "Last-Translator: Miloš Komarčević \n" "Language-Team: Serbian (sr) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" #: src/readahead.c:121 #, c-format msgid "%s: error: max device count reached.\n" msgstr "%s: greška: dosegnut je maksimalan broj uređaja.\n" #: src/readahead.c:164 #, c-format msgid "%s: error: ext2fs_open_inode_scan failed\n" msgstr "%s: greška: ext2fs_open_inode_scan nije uspeo\n" #: src/readahead.c:169 #, c-format msgid "%s: error: ext2fs_open_inode_scan() failed\n" msgstr "%s: greška: ext2fs_open_inode_scan() nije uspeo\n" #: src/readahead.c:196 src/readahead.c:405 #, c-format msgid "%s: error: %s: %s\n" msgstr "%s: greška: %s: %s\n" #: src/readahead.c:213 #, c-format msgid "%s: error: %s: unexpected format of sorted file\n" msgstr "%s: greška: %s: neočekivani format sortirane datoteke\n" #: src/readahead.c:234 #, c-format msgid "%s: error: max file count reached\n" msgstr "%s: greška: dosegnut je maksimalan broj datoteka\n" #: src/readahead.c:244 #, c-format msgid "Time (read lists): %ld ms\n" msgstr "Vreme (čitanja listi): %ld ms\n" #: src/readahead.c:248 #, c-format msgid "Create list with %d files\n" msgstr "Napravite listu sa %d datoteka\n" #: src/readahead.c:344 #, c-format msgid "Time (read blocks): %ld ms\n" msgstr "Vreme (čitanja blokova): %ld ms\n" #: src/readahead.c:348 #, c-format msgid "Read blocks for %d/%d files (%llu KB)\n" msgstr "Čitaj blokove za %d/%d datoteke (%llu KB)\n" #: src/readahead.c:389 #, c-format msgid "Time (readahead): %ld ms\n" msgstr "Vreme (readahead): %ld ms\n" #: src/readahead.c:392 #, c-format msgid "Preload %d/%d files (%llu KB)\n" msgstr "Predučitavanje %d/%d datoteka (%llu KB)\n" #: src/readahead.c:424 #, c-format msgid "" "\n" "%s [options] [...]\n" "\n" msgstr "" "\n" "%s [opcije] [...]\n" "\n" #: src/readahead.c:425 msgid "" " -s | --sort sort list of files only\n" " -o | --output output sorted list of files\n" " -d | --dont-sort call readahead(2) for already sorted list\n" " -h | --help this help\n" " -v | --verbose verbose mode\n" " -t | --timing report wasted time\n" " -m | --maxsize <10240> max size of a file to be preloaded (in KiB)\n" "\n" msgstr "" " -s | --sort sortiraj samo listu datoteka\n" " -o | --output izlaz sortirane liste datoteka\n" " -d | --dont-sort pozovi readahead(2) za već sortirane liste\n" " -h | --help ova pomoć\n" " -v | --verbose režim detaljnog ispisivanja\n" " -t | --timing izvesti o izgubljenom vremenu\n" " -m | --maxsize <10240> maks. veličina datoteke za predučitavanje (u KiB)\n" "\n" #: src/readahead.c:504 #, c-format msgid "Mode: %s\n" msgstr "Režim: %s\n" #: src/readahead.c:508 #, c-format msgid "Output: %s\n" msgstr "Izlaz: %s\n" #: src/readahead.c:510 #, c-format msgid "List: %s\n" msgstr "Lista: %s\n" #: src/readahead.c:547 #, c-format msgid "Time total: %ld ms\n" msgstr "Ukupno vreme: %ld ms\n" readahead-fedora-1.5.6/po/sv.po000066400000000000000000000061641135243252200162730ustar00rootroot00000000000000# Svenska translation of readahead. # Copyright (C) 2009 Free Software Foundation, Inc. # Magnus Larsson , 2009. # # msgid "" msgstr "" "Project-Id-Version: readahead\n" "Report-Msgid-Bugs-To: kzak@redhat.com\n" "POT-Creation-Date: 2009-02-20 10:06+0100\n" "PO-Revision-Date: 2009-09-23 13:43-0400\n" "Last-Translator: Magnus Larsson \n" "Language-Team: Swedish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: \n" #: src/readahead.c:120 #, c-format msgid "%s: error: max device count reached.\n" msgstr "%s: fel: för många enheter.\n" #: src/readahead.c:161 #, c-format msgid "%s: error: ext2fs_open_inode_scan failed\n" msgstr "%s: fel: ext2fs_open_inode_scan misslyckades\n" #: src/readahead.c:166 #, c-format msgid "%s: error: ext2fs_open_inode_scan() failed\n" msgstr "%s: fel: ext2fs_open_inode_scan() misslyckades\n" #: src/readahead.c:193 src/readahead.c:391 #, c-format msgid "%s: error: %s: %s\n" msgstr "%s: fel: %s: %s\n" #: src/readahead.c:210 #, c-format msgid "%s: error: %s: unexpected format of sorted file\n" msgstr "%s: fel: %s: oväntat format på sorterad fil\n" #: src/readahead.c:231 #, c-format msgid "%s: error: max file count reached\n" msgstr "%s: fel: för många filer\n" #: src/readahead.c:241 #, c-format msgid "Time (read lists): %ld ms\n" msgstr "Tid (läs listor): %ld ms\n" #: src/readahead.c:245 #, c-format msgid "Create list with %d files\n" msgstr "Skapa lista med %d filer\n" #: src/readahead.c:331 #, c-format msgid "Time (read blocks): %ld ms\n" msgstr "Tid (läs block): %ld ms\n" #: src/readahead.c:335 #, c-format msgid "Read blocks for %d/%d files (%llu KB)\n" msgstr "Läs block för %d/%d filer (%llu KB)\n" #: src/readahead.c:375 #, c-format msgid "Time (readahead): %ld ms\n" msgstr "Tid (förhandsläs): %ld ms\n" #: src/readahead.c:378 #, c-format msgid "Preload %d/%d files (%llu KB)\n" msgstr "Förhandsläsa in %d/%d filer (%llu KB)\n" #: src/readahead.c:406 #, c-format msgid "" "\n" "%s [options] [...]\n" "\n" msgstr "" "\n" "%s [alternativ] [...]\n" "\n" #: src/readahead.c:407 msgid "" " -s | --sort sort list of files only\n" " -o | --output output sorted list of files\n" " -d | --dont-sort call readahead(2) for already sorted list\n" " -h | --help this help\n" " -v | --verbose verbose mode\n" " -t | --timing report wasted time\n" "\n" msgstr "" " -s | --sort sortera endast listan av filer\n" " -o | --output skriv ut sorterade listan av filer\n" " -d | --dont-sort anropa readahead(2) för redan sorterad lista\n" " -h | --help denna hjälp\n" " -v | --verbose detaljerat läge\n" " -t | --timing rapportera bortslösad tid\n" "\n" #: src/readahead.c:479 #, c-format msgid "Mode: %s\n" msgstr "Läge: %s\n" #: src/readahead.c:483 #, c-format msgid "Output: %s\n" msgstr "Utdata: %s\n" #: src/readahead.c:485 #, c-format msgid "List: %s\n" msgstr "List: %s\n" #: src/readahead.c:518 #, c-format msgid "Time total: %ld ms\n" msgstr "Tid total: %ld ms\n" readahead-fedora-1.5.6/po/ta.po000066400000000000000000000101261135243252200162400ustar00rootroot00000000000000# translation of readahead.master.ta.po to Tamil # Copyright (C) YEAR Karel Zak # This file is distributed under the same license as the PACKAGE package. # # I. Felix , 2009. msgid "" msgstr "" "Project-Id-Version: readahead.master.ta\n" "Report-Msgid-Bugs-To: kzak@redhat.com\n" "POT-Creation-Date: 2010-03-24 16:51+0100\n" "PO-Revision-Date: 2009-11-13 15:50+0530\n" "Last-Translator: I. Felix \n" "Language-Team: Tamil \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n!=1);\\n\n" "\n" #: src/readahead.c:121 #, c-format msgid "%s: error: max device count reached.\n" msgstr "%s:பிழை: அதிகபட்சம் சாதனத்தால் பெறப்பட்ட எண்ணிக்கை.\n" #: src/readahead.c:164 #, c-format msgid "%s: error: ext2fs_open_inode_scan failed\n" msgstr "%s: பிழை: ext2fs_open_inode_scan தோல்வியுற்றது\n" #: src/readahead.c:169 #, c-format msgid "%s: error: ext2fs_open_inode_scan() failed\n" msgstr "%s: பிழை: ext2fs_open_inode_scan() தோல்வியுற்றது\n" #: src/readahead.c:196 src/readahead.c:405 #, c-format msgid "%s: error: %s: %s\n" msgstr "%s: பிழை: %s: %s\n" #: src/readahead.c:213 #, c-format msgid "%s: error: %s: unexpected format of sorted file\n" msgstr "%s: பிழை: %s: எதிர்பாராமல் வடிவமைக்கப்பட்டு வரிசைபடுத்தப்பட்ட கோப்பு\n" #: src/readahead.c:234 #, c-format msgid "%s: error: max file count reached\n" msgstr "%s: பிழை: அதிகபட்சம் கோப்பால் பெறப்பட்ட எண்ணிக்கை\n" #: src/readahead.c:244 #, c-format msgid "Time (read lists): %ld ms\n" msgstr "நேரம் (read lists): %ld ms\n" #: src/readahead.c:248 #, c-format msgid "Create list with %d files\n" msgstr "%d கோப்புகளுடன் பட்டியலை உருவாக்கு\n" #: src/readahead.c:344 #, c-format msgid "Time (read blocks): %ld ms\n" msgstr "நேரம் (read blocks): %ld ms\n" #: src/readahead.c:348 #, c-format msgid "Read blocks for %d/%d files (%llu KB)\n" msgstr "%d/%d கோப்புகளுக்காக (%llu KB) தடுப்புகளை வாசி\n" #: src/readahead.c:389 #, c-format msgid "Time (readahead): %ld ms\n" msgstr "நேரம் (readahead): %ld ms\n" #: src/readahead.c:392 #, c-format msgid "Preload %d/%d files (%llu KB)\n" msgstr "Preload %d/%d கோப்புகளை (%llu KB) மீளேற்றுகிறது\n" #: src/readahead.c:424 #, c-format msgid "" "\n" "%s [options] [...]\n" "\n" msgstr "" "\n" "%s [options] [...]\n" "\n" #: src/readahead.c:425 msgid "" " -s | --sort sort list of files only\n" " -o | --output output sorted list of files\n" " -d | --dont-sort call readahead(2) for already sorted list\n" " -h | --help this help\n" " -v | --verbose verbose mode\n" " -t | --timing report wasted time\n" " -m | --maxsize <10240> max size of a file to be preloaded (in KiB)\n" "\n" msgstr "" " -s | --sort sort list of files only\n" " -o | --output output sorted list of files\n" " -d | --dont-sort call readahead(2) for already sorted list\n" " -h | --help this help\n" " -v | --verbose verbose mode\n" " -t | --timing report wasted time\n" " -m | --maxsize <10240> max size of a file to be preloaded (in KiB)\n" "\n" #: src/readahead.c:504 #, c-format msgid "Mode: %s\n" msgstr "முறைமை: %s\n" #: src/readahead.c:508 #, c-format msgid "Output: %s\n" msgstr "வெளிப்பாடு %s\n" #: src/readahead.c:510 #, c-format msgid "List: %s\n" msgstr "பட்டியல்: %s\n" #: src/readahead.c:547 #, c-format msgid "Time total: %ld ms\n" msgstr "மொத்த நேரம்: %ld ms\n" readahead-fedora-1.5.6/po/te.po000066400000000000000000000077771135243252200162660ustar00rootroot00000000000000# translation of readahead.master.te.po to Telugu # Copyright (C) YEAR Karel Zak # This file is distributed under the same license as the PACKAGE package. # # Krishna Babu K , 2009. msgid "" msgstr "" "Project-Id-Version: readahead.master.te\n" "Report-Msgid-Bugs-To: kzak@redhat.com\n" "POT-Creation-Date: 2009-10-13 12:17+0200\n" "PO-Revision-Date: 2009-11-12 13:16+0530\n" "Last-Translator: Krishna Babu K \n" "Language-Team: Telugu \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n\n" "\n" #: src/readahead.c:121 #, c-format msgid "%s: error: max device count reached.\n" msgstr "%s: error: max పరికరపు లెక్క చేరుకొన్నది.\n" #: src/readahead.c:164 #, c-format msgid "%s: error: ext2fs_open_inode_scan failed\n" msgstr "%s: error: ext2fs_open_inode_scan విఫలమైంది\n" #: src/readahead.c:169 #, c-format msgid "%s: error: ext2fs_open_inode_scan() failed\n" msgstr "%s: error: ext2fs_open_inode_scan() విఫలమైంది\n" #: src/readahead.c:196 src/readahead.c:398 #, c-format msgid "%s: error: %s: %s\n" msgstr "%s: దోషము: %s: %s\n" #: src/readahead.c:213 #, c-format msgid "%s: error: %s: unexpected format of sorted file\n" msgstr "%s: దోషము: %s: నిల్వవున్న దస్త్రము యొక్క అనుకోని ఫార్మాటు\n" #: src/readahead.c:234 #, c-format msgid "%s: error: max file count reached\n" msgstr "%s: దోషము: గరిష్ట దస్త్రపు లెక్క చేరుకొన్నది\n" #: src/readahead.c:244 #, c-format msgid "Time (read lists): %ld ms\n" msgstr "సమయం (రీడ్ లిస్టులు): %ld ms\n" #: src/readahead.c:248 #, c-format msgid "Create list with %d files\n" msgstr "%d దస్త్రములతో జాబితా సృష్టించుము\n" #: src/readahead.c:338 #, c-format msgid "Time (read blocks): %ld ms\n" msgstr "సమయం (రీడ్ బ్లాక్సు): %ld ms\n" #: src/readahead.c:342 #, c-format msgid "Read blocks for %d/%d files (%llu KB)\n" msgstr "%d/%d దస్త్రముల కొరకు రీడ్ బ్లాక్సు (%llu KB)\n" #: src/readahead.c:382 #, c-format msgid "Time (readahead): %ld ms\n" msgstr "సమయం (రీడ్‌హెడ్): %ld ms\n" #: src/readahead.c:385 #, c-format msgid "Preload %d/%d files (%llu KB)\n" msgstr "%d/%d దస్త్రములను ముందుగా లోడుచేయి (%llu KB)\n" #: src/readahead.c:413 #, c-format msgid "" "\n" "%s [options] [...]\n" "\n" msgstr "" "\n" "%s [options] [...]\n" "\n" #: src/readahead.c:414 msgid "" " -s | --sort sort list of files only\n" " -o | --output output sorted list of files\n" " -d | --dont-sort call readahead(2) for already sorted list\n" " -h | --help this help\n" " -v | --verbose verbose mode\n" " -t | --timing report wasted time\n" " -m | --maxsize <10240> max size of a file to be preloaded (in KiB)\n" "\n" msgstr "" " -s | --sort sort list of files only\n" " -o | --output output sorted list of files\n" " -d | --dont-sort call readahead(2) for already sorted list\n" " -h | --help this help\n" " -v | --verbose verbose mode\n" " -t | --timing report wasted time\n" " -m | --maxsize <10240> max size of a file to be preloaded (in KiB)\n" "\n" #: src/readahead.c:493 #, c-format msgid "Mode: %s\n" msgstr "రీతి: %s\n" #: src/readahead.c:497 #, c-format msgid "Output: %s\n" msgstr "అవుట్పుట్: %s\n" #: src/readahead.c:499 #, c-format msgid "List: %s\n" msgstr "జాబితా: %s\n" #: src/readahead.c:532 #, c-format msgid "Time total: %ld ms\n" msgstr "సమయ మొత్తము: %ld ms\n" readahead-fedora-1.5.6/po/uk.po000066400000000000000000000101111135243252200162450ustar00rootroot00000000000000# Ukrainian translation of readahead # Copyright (C) Free Software Foundation, 2010 # This file is distributed under the same license as the readahead package. # Maxim Dzumanenko , 2010 # msgid "" msgstr "" "Project-Id-Version: readahead\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-02-09 11:52+0530\n" "PO-Revision-Date: 2010-03-22 11:32+0300\n" "Last-Translator: Maxim V. Dziumanenko \n" "Language-Team: Ukrainian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: src/readahead.c:121 #, c-format msgid "%s: error: max device count reached.\n" msgstr "%s: помилка: досягнуто максимальну кількість пристроїв.\n" #: src/readahead.c:164 #, c-format msgid "%s: error: ext2fs_open_inode_scan failed\n" msgstr "%s: помилка: помилка у ext2fs_open_inode_scan\n" #: src/readahead.c:169 #, c-format msgid "%s: error: ext2fs_open_inode_scan() failed\n" msgstr "%s: помилка: помилка у ext2fs_open_inode_scan()\n" #: src/readahead.c:196 #: src/readahead.c:398 #, c-format msgid "%s: error: %s: %s\n" msgstr "%s: помилка: %s: %s\n" #: src/readahead.c:213 #, c-format msgid "%s: error: %s: unexpected format of sorted file\n" msgstr "%s: помилка: %s: неприпустимий формат впорядкованого файлу\n" #: src/readahead.c:234 #, c-format msgid "%s: error: max file count reached\n" msgstr "%s: помилка: досягнуто максимальну кількість файлів.\n" #: src/readahead.c:244 #, c-format msgid "Time (read lists): %ld ms\n" msgstr "Час (читання списків): %ld мс\n" #: src/readahead.c:248 #, c-format msgid "Create list with %d files\n" msgstr "Створити список з %d файлами\n" #: src/readahead.c:338 #, c-format msgid "Time (read blocks): %ld ms\n" msgstr "Час (читання блоків): %ld мс\n" #: src/readahead.c:342 #, c-format msgid "Read blocks for %d/%d files (%llu KB)\n" msgstr "Читання блоків для %d/%d файлів (%llu Кбайт)\n" #: src/readahead.c:382 #, c-format msgid "Time (readahead): %ld ms\n" msgstr "Час (readahead): %ld мс\n" #: src/readahead.c:385 #, c-format msgid "Preload %d/%d files (%llu KB)\n" msgstr "Попередньо завантажити %d/%d файлів (%llu Кбайт)\n" #: src/readahead.c:413 #, c-format msgid "" "\n" "%s [options] [...]\n" "\n" msgstr "" "\n" "%s [параметри] <файл> [...]\n" "\n" #: src/readahead.c:414 msgid "" " -s | --sort sort list of files only\n" " -o | --output output sorted list of files\n" " -d | --dont-sort call readahead(2) for already sorted list\n" " -h | --help this help\n" " -v | --verbose verbose mode\n" " -t | --timing report wasted time\n" " -m | --maxsize <10240> max size of a file to be preloaded (in KiB)\n" "\n" msgstr "" " -s | --sort сортування лише списку файлів\n" " -o | --output <файл> вивід впорядкованого списку файлів\n" " -d | --dont-sort виклик readahead(2) для впорядкованого списку\n" " -h | --help ця довідка\n" " -v | --verbose докладний вивід\n" " -t | --timing звіт про витрачений час\n" " -m | --maxsize <10240> максимальний розмір попереднього завантаженого файлу (у Кбайт)\n" "\n" #: src/readahead.c:493 #, c-format msgid "Mode: %s\n" msgstr "Режим: %s\n" #: src/readahead.c:497 #, c-format msgid "Output: %s\n" msgstr "Вивід: %s\n" #: src/readahead.c:499 #, c-format msgid "List: %s\n" msgstr "Список: %s\n" #: src/readahead.c:532 #, c-format msgid "Time total: %ld ms\n" msgstr "Загальний час: %ld мс\n" readahead-fedora-1.5.6/po/update-potfiles000077500000000000000000000001361135243252200203270ustar00rootroot00000000000000#!/bin/sh # # > POTFILES.in cd .. for x in */*.c; do echo "$x" >> po/POTFILES.in done cd po readahead-fedora-1.5.6/po/zh_CN.po000066400000000000000000000065751135243252200166520ustar00rootroot00000000000000# translation of readahead.master.po to Simplified Chinese # Copyright (C) YEAR Karel Zak # This file is distributed under the same license as the PACKAGE package. # # Leah Liu , 2009. msgid "" msgstr "" "Project-Id-Version: readahead.master\n" "Report-Msgid-Bugs-To: kzak@redhat.com\n" "POT-Creation-Date: 2009-10-06 16:21+0200\n" "PO-Revision-Date: 2009-10-07 15:09+0800\n" "Last-Translator: Leah Liu \n" "Language-Team: Simplified Chinese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" #: src/readahead.c:121 #, c-format msgid "%s: error: max device count reached.\n" msgstr "%s:错误:达到最大设备计数。\n" #: src/readahead.c:162 #, c-format msgid "%s: error: ext2fs_open_inode_scan failed\n" msgstr "%s:错误:ext2fs_open_inode_scan 失败\n" #: src/readahead.c:167 #, c-format msgid "%s: error: ext2fs_open_inode_scan() failed\n" msgstr "%s:错误:ext2fs_open_inode_scan() 失败\n" #: src/readahead.c:194 src/readahead.c:396 #, c-format msgid "%s: error: %s: %s\n" msgstr "%s:错误:%s: %s\n" #: src/readahead.c:211 #, c-format msgid "%s: error: %s: unexpected format of sorted file\n" msgstr "%s:错误:%s:排序文件未知格式\n" #: src/readahead.c:232 #, c-format msgid "%s: error: max file count reached\n" msgstr "%s:错误:达到最大文件计数\n" #: src/readahead.c:242 #, c-format msgid "Time (read lists): %ld ms\n" msgstr "计时(读取列表):%ld ms\n" #: src/readahead.c:246 #, c-format msgid "Create list with %d files\n" msgstr "使用 %d 文件生成列表\n" #: src/readahead.c:336 #, c-format msgid "Time (read blocks): %ld ms\n" msgstr "计时(读取块):%ld ms\n" #: src/readahead.c:340 #, c-format msgid "Read blocks for %d/%d files (%llu KB)\n" msgstr "从 %d/%d 文件(%llu KB)读取块\n" #: src/readahead.c:380 #, c-format msgid "Time (readahead): %ld ms\n" msgstr "计时(读取标头):%ld ms\n" #: src/readahead.c:383 #, c-format msgid "Preload %d/%d files (%llu KB)\n" msgstr "预先载入 %d/%d 文件(%llu KB)\n" #: src/readahead.c:411 #, c-format msgid "" "\n" "%s [options] [...]\n" "\n" msgstr "" "\n" "%s [options] [...]\n" "\n" #: src/readahead.c:412 msgid "" " -s | --sort sort list of files only\n" " -o | --output output sorted list of files\n" " -d | --dont-sort call readahead(2) for already sorted list\n" " -h | --help this help\n" " -v | --verbose verbose mode\n" " -t | --timing report wasted time\n" " -m | --maxsize <10240> max size of a file to be preloaded (in KiB)\n" "\n" msgstr "" " -s | --sort 只对文件列表排序\n" " -o | --output 输出忆排序的文件列表\n" " -d | --dont-sort 对已排序列表调用 readahead(2)\n" " -h | --help 本帮助\n" " -v | --verbose 冗长模式\n" " -t | --timing 报告耗费时间\n" " -m | --maxsize <10240> 一个预载文件的最大大小(KiB)\n" #: src/readahead.c:491 #, c-format msgid "Mode: %s\n" msgstr "模型:%s\n" #: src/readahead.c:495 #, c-format msgid "Output: %s\n" msgstr "输出:%s\n" #: src/readahead.c:497 #, c-format msgid "List: %s\n" msgstr "列表:%s\n" #: src/readahead.c:530 #, c-format msgid "Time total: %ld ms\n" msgstr "计时总计:%ld ms\n" readahead-fedora-1.5.6/readahead000066400000000000000000000010471135243252200165010ustar00rootroot00000000000000# enable readahead at system startup READAHEAD="yes" # enable (at least monthly) readahead list collection READAHEAD_COLLECT="yes" # collect x seconds more after prefdm started READAHEAD_EXTRA_COLLECT="10" # collect on rpm database change READAHEAD_COLLECT_ON_RPM="yes" # Delay these services for the readahead-collector. # At least "auditd" has to be delayed, for the collector # to run, if it is enabled on the system. READAHEAD_DELAY_SERVICES="auditd" # Minimum memory the machine has to have (kB) # to run readahead. READAHEAD_MIN_MEM=393216 readahead-fedora-1.5.6/scripts/000077500000000000000000000000001135243252200163455ustar00rootroot00000000000000readahead-fedora-1.5.6/scripts/Makefile.am000066400000000000000000000007251135243252200204050ustar00rootroot00000000000000include $(top_srcdir)/config/include-Makefile.am dnl sysconfrcdir = $(sysconfdir)/rc.d/init.d dnl dist_sysconfrc_SCRIPTS = readahead_early readahead_later sysconfcrondir = $(sysconfdir)/cron.daily dist_sysconfcron_SCRIPTS = readahead.cron sysconfcronmonthlydir = $(sysconfdir)/cron.monthly dist_sysconfcronmonthly_SCRIPTS = readahead-monthly.cron initdir = $(sysconfdir)/init dist_init_DATA = readahead-collector.conf readahead-disable-services.conf readahead.conf readahead-fedora-1.5.6/scripts/readahead-check000077500000000000000000000127611135243252200212530ustar00rootroot00000000000000#!/usr/bin/env python # # Copyright (C) 2006,2007 Red Hat, Inc. # Karel Zak # # 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. # # # This script is helper for readahead lists mainrainers. # # Basic features: # # - replaces arch specific paths with RPM macros, because we have to # distribute architecture independent lists of files in src.rpm # (e.g /usr/lib64 --> /usr/%{_lib}) # # - checks for missing files and suggest possible solution # (you need to run this script with --check option) import sys import os import getopt import re from stat import * NOREPLACE = [ '/lib/kbd/keymaps' ] REPLACE = { '%{_arch}' : '%{_arch}', '/lib64/' : '/%{_lib}/', '/usr/lib64/' : '/usr/%{_lib}/' } class RahGenerator: def __init__(self): self.files = [] self.evaled = {} self.replace = {} self.noreplace = [] for k,v in REPLACE.iteritems(): k = self.evalString(k) self.replace[k] = v for v in NOREPLACE: v = self.evalString(v) self.noreplace.append(v) def evalRpm(self, str): if self.evaled.has_key(str): return self.evaled[str] f = os.popen("rpm --eval %s" % str) data = f.readlines() f.close() if data and len(data): e = data[0][:-1] self.evaled[str] = e return e print "WARNING: cannot evaluate '%s'" % str return '' def evalString(self, str): xstr = str vals = re.findall('%{[a-zA-Z_]*}', str) for name in vals: data = self.evalRpm(name) str = str.replace(name, data) return str def templateLoad(self, filename): f = open(filename, "r") fl = f.readlines() f.close() for line in fl: file = line.strip() if file: self.files.append( self.evalString(file) ) def templateCheck(self): for file in self.files: if not os.path.exists(file): f = self.fileSearch(file) if f: print 'SUGGEST: %s --> %s' % (file, f) else: print 'NOTFOUND: %s' % file def filesWrite(self, filename): siz = 0 num = 0 fnum = 0 f = open(filename, "w") for file in self.files: if os.path.exists(file): siz += os.stat(file)[ST_SIZE] num += 1 else: fnum += 1 f.write( self.filePathIndep(file) ) f.write('\n') f.close() if fnum: print "\n%d kB in %d files (%d files not found)\n" % (siz / 1024, num, fnum) else: print "\n%d kB in %d files\n" % (siz / 1024, num) def fileSearch(self, filename, recur=0): idx = filename.rfind('/') if idx >= 0: filename = filename[idx+1:] f = os.popen("locate -q -r /%s$" % filename.replace('.', '\.')) data = f.readlines() f.close() if len(data): return data[0][:-1] if recur==0: nums = re.findall('[0-9]+', filename) for num in nums: filename = filename.replace(num, '[0-9]*') if len(nums): return self.fileSearch(filename, 1) return None def filePathIndep(self, filename): fsz = len(filename) for n in self.noreplace: nsz = len(n) if nsz > fsz: continue if filename[:nsz] == n: return filename for k,v in self.replace.iteritems(): ksz = len(k) if ksz > fsz: continue if filename[:ksz] == k: f = v + filename[ksz:] return f return filename def usage(): print "\nreadahead-check [options]\n" print " -h | --help this help" print " --template= list of files" print " --output= output file" print " --check run with check" print "\n" sys.exit(0) def main(): optlist, args = getopt.getopt(sys.argv[1:], 'h', ['template=', 'output=', 'help', 'check']) if ('--help', '') in optlist or ('-h', '') in optlist: usage() tpl=None check=0 out=None for o in optlist: if o[0] == '--template' and len(o[1]): tpl=o[1] elif o[0] == '--check': check=1 elif o[0] == '--output' and len(o[1]): out=o[1] if tpl==None: usage() gen = RahGenerator() gen.templateLoad(tpl) if check==1: gen.templateCheck() else: gen.nfiles = gen.files if out: gen.filesWrite(out) if __name__ == "__main__": main() # vim: set tabstop=4: # vim: set shiftwidth=4: # vim: set expandtab: readahead-fedora-1.5.6/scripts/readahead-collector.conf000066400000000000000000000055431135243252200231050ustar00rootroot00000000000000# readahead-collector - readahead-collector # # Starts readahead-collector start on startup stop on started prefdm or stopped rc RUNLEVEL=[234] or runlevel [016] kill timeout 60 script # do not exit on failed commands set +e . /etc/sysconfig/readahead . /etc/init.d/functions cmdline=$(cat /proc/cmdline) check_autorelabel() { if [ -f /.autorelabel ] || strstr "$cmdline" autorelabel; then # Check SELinux status selinuxfs="$(fstab_decode_str `LC_ALL=C awk '/ selinuxfs / { print $2 }' /proc/mounts`)" SELINUX_STATE= if [ -n "$selinuxfs" ] && [ "`cat /proc/self/attr/current`" != "kernel" ]; then if [ -r "$selinuxfs/enforce" ] ; then SELINUX_STATE=`cat "$selinuxfs/enforce"` else # assume enforcing if you can't read it SELINUX_STATE=1 fi fi if [ -n "$SELINUX_STATE" ]; then return 0 fi fi return 1 } check_readonly() { READONLY= if [ -f /etc/sysconfig/readonly-root ]; then . /etc/sysconfig/readonly-root fi strstr "$cmdline" readonlyroot && READONLY=yes [ "$READONLY" = "yes" ] && return 0 return 1 } [ -f /.autofsck ] && exit 0 [ -f /forcefsck ] && exit 0 [ "$READAHEAD_COLLECT" != "yes" ] && exit 0 if [ ! -f /.readahead_collect ]; then [ "$READAHEAD_COLLECT_ON_RPM" != "yes" ] && exit 0 [ -f /var/lib/readahead/early.sorted ] && \ [ /var/lib/readahead/early.sorted -nt /var/lib/rpm/Packages ] && \ exit 0 fi if [ -z "$READAHEAD_DELAY_SERVICES" ]; then # do not delay services, so exit, if they will be started for service in auditd ; do /sbin/chkconfig --level $runlevel $service >/dev/null 2>&1 && exit 0 done fi check_readonly && exit 0 check_autorelabel && exit 0 > /dev/shm/readahead-collector-started echo "<6>readahead-collector: starting" > /dev/kmsg exec /sbin/readahead-collector -f end script pre-stop script set +e # after prefdm is startup collect some more seconds . /etc/sysconfig/readahead sleep ${READAHEAD_EXTRA_COLLECT:-10} exit 0 end script post-stop script # do not exit on failed commands set +e . /etc/sysconfig/readahead [ -f /dev/shm/readahead-collector-started ] || exit 0 rm -f /dev/shm/readahead-collector-started rm -f /.readahead_collect # start delayed services runlevel=$(/sbin/runlevel| (read a b; echo $b)) for service in "$READAHEAD_DELAY_SERVICES" ; do if [ -f /var/lock/subsys/delay-$runlevel-$service ]; then echo "<6>readahead-collector: starting delayed service $service" > /dev/kmsg /sbin/chkconfig --level $runlevel $service on /sbin/service $service start rm -f /var/lock/subsys/delay-$runlevel-$service fi done # process lists echo "<6>readahead-collector: sorting" > /dev/kmsg /etc/cron.daily/readahead.cron 2>/dev/null 1>&2 echo "<6>readahead-collector: finished" > /dev/kmsg exit 0 end script readahead-fedora-1.5.6/scripts/readahead-disable-services.conf000066400000000000000000000013261135243252200243360ustar00rootroot00000000000000# readahead-disable-services - readahead-disable-services # # disable all services, which interfere with readahead-collector start on stopped rcS script set +e . /etc/sysconfig/readahead [ -f /dev/shm/readahead-collector-started ] || exit 0 [ -z "$READAHEAD_DELAY_SERVICES" ] && exit 0 runlevel=$(/sbin/runlevel| (read a b; echo $b)) # delay startup of services, which do not play nicely with readahead for service in "$READAHEAD_DELAY_SERVICES"; do if /sbin/chkconfig --level $runlevel $service ; then echo "<6>readahead-disable-service: delaying service $service" > /dev/kmsg /sbin/chkconfig --level $runlevel $service off > /var/lock/subsys/delay-$runlevel-$service fi done exit 0 end script readahead-fedora-1.5.6/scripts/readahead-monthly.cron000077500000000000000000000001571135243252200226240ustar00rootroot00000000000000#!/bin/sh . /etc/sysconfig/readahead if [ "$READAHEAD_COLLECT" = "yes" ] ; then touch /.readahead_collect fi readahead-fedora-1.5.6/scripts/readahead.conf000066400000000000000000000030271135243252200211140ustar00rootroot00000000000000# readahead - readahead # # Starts readahead start on startup stop on started rc RUNLEVEL=[016] console output script # do not exit on failed commands set +e . /etc/sysconfig/readahead . /etc/init.d/functions cmdline=$(cat /proc/cmdline) check_autorelabel() { if [ -f /.autorelabel ] || strstr "$cmdline" autorelabel; then # Check SELinux status selinuxfs="$(fstab_decode_str `LC_ALL=C awk '/ selinuxfs / { print $2 }' /proc/mounts`)" SELINUX_STATE= if [ -n "$selinuxfs" ] && [ "`cat /proc/self/attr/current`" != "kernel" ]; then if [ -r "$selinuxfs/enforce" ] ; then SELINUX_STATE=`cat "$selinuxfs/enforce"` else # assume enforcing if you can't read it SELINUX_STATE=1 fi fi if [ -n "$SELINUX_STATE" ]; then return 0 fi fi return 1 } [ -f /.autofsck ] && exit 0 [ -f /forcefsck ] && exit 0 [ "$READAHEAD" != "yes" ] && exit 0 [ -f /var/lib/readahead/early.sorted ] || exit 0 [ -f /.readahead_collect ] && exit 0 if [ "$READAHEAD_COLLECT_ON_RPM" = "yes" ]; then [ /var/lib/readahead/early.sorted -nt /var/lib/rpm/Packages ] || exit 0 fi # Check for enough memory read label val rest < /proc/meminfo [ "$rest" = "kB" -a $val -gt ${READAHEAD_MIN_MEM:-393216} ] || exit 0 check_autorelabel && exit 0 try=0 while [ $try -lt 10 ]; do if test -d /usr/sbin; then try=10 else try=$(($try+1)) sleep 1 fi done echo "<6>readahead: starting" > /dev/kmsg exec /sbin/readahead --dont-sort /var/lib/readahead/early.sorted end script readahead-fedora-1.5.6/scripts/readahead.cron000077500000000000000000000010631135243252200211310ustar00rootroot00000000000000#!/bin/bash # # Generates sorted readahead files # # Copyright (C) 2007 Red Hat, Inc. # Karel Zak # renice +19 -p $$ >/dev/null 2>&1 ionice -c3 -p $$ >/dev/null 2>&1 TYPES="early later" READAHEAD_CMD="/sbin/readahead" READAHEAD_BASE="/var/lib/readahead" for LTYPE in $TYPES; do if [ -s "$READAHEAD_BASE/custom.$LTYPE" ]; then FLS="$READAHEAD_BASE/custom.$LTYPE" else FLS=$(ls $READAHEAD_BASE/*.$LTYPE 2>/dev/null ) fi if [ -n "$FLS" ]; then $READAHEAD_CMD --sort --output=$READAHEAD_BASE/$LTYPE.sorted $FLS &>/dev/null fi done readahead-fedora-1.5.6/scripts/readahead_early000077500000000000000000000041061135243252200213660ustar00rootroot00000000000000#!/bin/sh # # readahead Prereads programs required for startup into memory # # Authors: Karel Zak # # readahead: Prereads programs required for startup into memory # # chkconfig: 2345 1 99 # description: This service causes the programs used during startup \ # to be loaded into memory before they are needed,\ # thus improving startup performance # # Copyright (C) 2005,2006,2007 Red Hat, Inc. # ### BEGIN INIT INFO # Provides: readahead_early # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Required-Start: $local_fs # Required-Stop: $local_fs # Short-Description: start and stop early readahead # Description: Start and stop early readahead ### END INIT INFO # Sanity checks. [ -x /usr/sbin/readahead ] || exit 0 # Check for > 384 MB free -m | gawk '/Mem:/ {exit ($2 >= 384)?0:1}' || exit 0 # Source function library. . /etc/rc.d/init.d/functions RETVAL=0 VAR_SUBSYS_READAHEAD="/var/lock/subsys/readahead_early" READAHEAD_CMD="/usr/sbin/readahead" start() { LTYPE="early" READAHEAD_BASE="/var/lib/readahead" [ -d "$READAHEAD_BASE" ] || return 6 echo -n "Starting background readahead ($LTYPE, " if [ -s "$READAHEAD_BASE/$LTYPE.sorted" ]; then echo -n "fast mode): " $READAHEAD_CMD --dont-sort $READAHEAD_BASE/$LTYPE.sorted >/dev/null & elif [ -s "$READAHEAD_BASE/custom.$LTYPE" ]; then echo -n "customized): " $READAHEAD_CMD $READAHEAD_BASE/custom.$LTYPE >/dev/null & else echo -n "full mode): " $READAHEAD_CMD $READAHEAD_BASE/*.$LTYPE >/dev/null & fi ret=$? if [ $ret -eq 0 ]; then success; echo else failure; echo; return 1 fi touch $VAR_SUBSYS_READAHEAD return $ret } stop() { rm -f $VAR_SUBSYS_READAHEAD return $? } status() { [ -r $VAR_SUBSYS_READAHEAD ] || exit 2 } # See how we were called. case "$1" in start) start RETVAL=$? ;; stop) stop RETVAL=$? ;; status) status $READAHEAD_CMD RETVAL=$? ;; restart) stop start RETVAL=$? ;; reload) start RETVAL=$? ;; *) echo "Usage: $0 {start|stop|status|restart|reload}" RETVAL=3 ;; esac exit $RETVAL readahead-fedora-1.5.6/scripts/readahead_later000077500000000000000000000040111135243252200213540ustar00rootroot00000000000000#!/bin/sh # # readahead Prereads programs required for startup into memory # # Authors: Karel Zak # # chkconfig: 5 96 99 # description: This service causes the programs used during startup \ # to be loaded into memory before they are needed,\ # thus improving startup performance # # Copyright (C) 2005,2006,2007 Red Hat, Inc. # ### BEGIN INIT INFO # Provides: readahead_later # Default-Start: 5 # Default-Stop: 0 1 6 # Required-Start: $local_fs # Required-Stop: $local_fs # Short-Description: start and stop later readahead # Description: Start and stop later readahead ### END INIT INFO # Sanity checks. [ -x /usr/sbin/readahead ] || exit 0 # Check for > 384 MB free -m | gawk '/Mem:/ {exit ($2 >= 384)?0:1}' || exit 0 # Source function library. . /etc/rc.d/init.d/functions RETVAL=0 VAR_SUBSYS_READAHEAD="/var/lock/subsys/readahead_later" READAHEAD_CMD="/usr/sbin/readahead" start() { LTYPE="later" READAHEAD_BASE="/var/lib/readahead" [ -d "$READAHEAD_BASE" ] || return 6 echo -n "Starting background readahead ($LTYPE, " if [ -s "$READAHEAD_BASE/$LTYPE.sorted" ]; then echo -n "fast mode): " $READAHEAD_CMD --dont-sort $READAHEAD_BASE/$LTYPE.sorted >/dev/null & elif [ -s "$READAHEAD_BASE/custom.$LTYPE" ]; then echo -n "customized): " $READAHEAD_CMD $READAHEAD_BASE/custom.$LTYPE >/dev/null & else echo -n "full mode): " $READAHEAD_CMD $READAHEAD_BASE/*.$LTYPE >/dev/null & fi ret=$? if [ $ret -eq 0 ]; then success; echo else failure; echo; return 1 fi touch $VAR_SUBSYS_READAHEAD return $ret } stop() { rm -f $VAR_SUBSYS_READAHEAD return $? } status() { [ -r $VAR_SUBSYS_READAHEAD ] || exit 2 } # See how we were called. case "$1" in start) start RETVAL=$? ;; stop) stop RETVAL=$? ;; status) status $READAHEAD_CMD RETVAL=$? ;; restart) stop start RETVAL=$? ;; reload) start RETVAL=$? ;; *) echo "Usage: $0 {start|stop|status|restart|reload}" RETVAL=3 ;; esac exit $RETVAL readahead-fedora-1.5.6/src/000077500000000000000000000000001135243252200154455ustar00rootroot00000000000000readahead-fedora-1.5.6/src/Makefile.am000066400000000000000000000003761135243252200175070ustar00rootroot00000000000000include $(top_srcdir)/config/include-Makefile.am sbin_PROGRAMS = readahead-collector readahead dist_sysconf_DATA = readahead.conf readahead_SOURCES = readahead.c nls.h readahead_LDADD = -lext2fs -lblkid readahead_collector_LDADD = -laudit -lauparse readahead-fedora-1.5.6/src/nls.h000066400000000000000000000006771135243252200164240ustar00rootroot00000000000000 #ifndef LOCALEDIR #define LOCALEDIR "/usr/share/locale" #endif #ifdef ENABLE_NLS # include # define _(Text) gettext (Text) # ifdef gettext_noop # define N_(String) gettext_noop (String) # else # define N_(String) (String) # endif #else # undef bindtextdomain # define bindtextdomain(Domain, Directory) /* empty */ # undef textdomain # define textdomain(Domain) /* empty */ # define _(Text) (Text) # define N_(Text) (Text) #endif readahead-fedora-1.5.6/src/readahead-collector.c000066400000000000000000000641301135243252200214770ustar00rootroot00000000000000 /* * RAC - ReadAhead Collector daemon * * Copyright (C) 2006,2007 Red Hat, Inc. * Karel Zak * * 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. */ #define _GNU_SOURCE /* strndup() */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include /* * Defauls */ #define CFG_DEFAULT_PATH "/etc/readahead.conf" #define CFG_DEFAULT_INIT "/sbin/init" #define CFG_DEFAULT_RAWLOG NULL #define CFG_DEFAULT_LISTSPATH NULL #define CFG_DEFAULT_LISTSEP "/etc/init.d/readahead_later" #define MAX_READLINKS 32 #ifndef HAVE_AUDITD_REPLY_LIST struct auditd_reply_list { struct audit_reply reply; struct auditd_reply_list *next; int ack_socket; unsigned long sequence_id; }; #endif /* daemon initialization pipe */ static int init_pipe[2]; /* use RacStatus -- this one is for atexit() only */ static int audit_fd = -1; /* argv[0] */ static char *progname; /* reports error and call exit */ FILE *error_out; #define die(_fmt, ...) \ do { \ if (error_out) { \ fprintf(error_out, "%s: ERROR: ", progname); \ fprintf(error_out, _fmt, ## __VA_ARGS__); \ fputc('\n', error_out); \ exit(EXIT_FAILURE); \ } \ syslog(LOG_DAEMON|LOG_ERR, _fmt, ## __VA_ARGS__); \ } while(0) /* debug output */ int has_debug = 0; FILE *debug_out; #define debug(_fmt, ...) \ do { \ if (has_debug && debug_out) { \ fputs("***DEBUG: ", debug_out); \ fprintf(debug_out, _fmt, ## __VA_ARGS__); \ fputc('\n', debug_out); \ } \ } while(0) /* daemon specific audit rule */ static struct audit_rule_data *audit_rule; /* Filter for audit events */ #define IS_EVENT_WANTED(_r) \ (((_r)->type == AUDIT_PATH || \ (_r)->type == AUDIT_CWD || \ (_r)->type == AUDIT_SYSCALL) && \ (_r)->len) /* Changes by signal handler */ static int has_signal; /* Statuses */ #define CHILD_SUCCESS 0 #define CHILD_FAILURE 1 /* * The readahead-collector has to store all audit events in memory. We cannot * write these data to file, because we have to be able to run on system with * read-only root FS (early time during boot process). * * To avoid huge number of allocations we allocate large block(s) and store * every new event string to the block. If the actual block is full we allocate * a new one and add than to list of block. */ #define MEMBLK_SIZE (1024*1024) typedef struct RacBlock { char buff[ MEMBLK_SIZE ]; char *pos; struct RacBlock *next; } RacBlock; /* * Daemon modes */ typedef enum { RAC_MODE_BG = 0, RAC_MODE_INIT = 1, /* PID=1 */ RAC_MODE_FG = 2 } RacMode; /* * Daemon status & config struct */ typedef struct { RacMode mode; int maxtime; char *cfg_path; char *rawlog; char *listspath; char *initpath; char *listbgn; char *listsep; char **execign; char *debuglog; char **excludes; char **argv; int argc; int fd; /* audit fd */ int nevents; /* number of audit events */ int nrecords; /* number of audit records */ RacBlock *b_first; RacBlock *b_last; } RacStatus; #define is_foreground(_s) ((_s)->mode == RAC_MODE_FG) #define is_background(_s) ((_s)->mode == RAC_MODE_BG || (_s)->mode == RAC_MODE_INIT) #define is_init(_s) ((_s)->mode == RAC_MODE_INIT) static int cfg_read(RacStatus *rac); static char *cfg_get_item(char *str, const char *name); static void exec_init(RacStatus *rad); static int daemon_create(RacStatus *rac); static void daemon_child_status(int status); static void clean_audit(void); static void sig_handler( int sig ); static int insert_rule(RacStatus *rac); static void delete_rule(); static RacBlock *block_new(RacStatus *rac); static int block_add_event(RacStatus *rac, const struct audit_reply *rep); static int blocks_dump(RacStatus *rac, char *filename); static void blocks_free(RacStatus *rac); static char **blocks_to_array(RacStatus *rac); static char *myrealpath(const char *path, char *resolved_path, int maxreslth, const char *cwd); static char **parse_events(RacStatus *rac, char **ary, int *early, int *later); static int list_write(RacStatus *rac, char **list, int size, const char *filetpl, const char *fileext); static int blocks_dump_as_lists(RacStatus *rac, const char *filename_tpl); static char *btrim(char *str); static char **string_to_array(char *data); static int exclude_file(char **list, const char *filename); int main(int argc, char **argv) { RacStatus _rac, *rac = &_rac; struct auditd_reply_list *rep = NULL; fd_set read_mask; struct sigaction sa; int i; char *p; debug_out = stderr; error_out = stderr; progname = argv[0]; if ((p = strrchr(argv[0], '/'))) progname = p+1; if (getuid() != 0) die("you must be root to run this program."); openlog("readahead-collector", LOG_CONS, LOG_DAEMON); memset(rac, 0, sizeof(*rac)); rac->mode = getpid() == 1 ? RAC_MODE_INIT : RAC_MODE_BG; rac->cfg_path = CFG_DEFAULT_PATH; rac->initpath = CFG_DEFAULT_INIT; rac->rawlog = CFG_DEFAULT_RAWLOG; rac->listspath = CFG_DEFAULT_LISTSPATH; rac->listsep = CFG_DEFAULT_LISTSEP; rac->argv = argv; rac->argc = argc; if (is_init(rac)) fprintf(error_out, "\n\n***** Readahead Collector Started *****\n\n"); sa.sa_flags = 0 ; sigemptyset( &sa.sa_mask ) ; sa.sa_handler = SIG_IGN; for (i=1; i < NSIG; i++) sigaction( i, &sa, NULL ); sa.sa_handler = sig_handler; sigaction( SIGTERM, &sa, NULL ); sa.sa_handler = sig_handler; sigaction( SIGQUIT, &sa, NULL ); sa.sa_handler = sig_handler; sigaction( SIGINT, &sa, NULL ); sa.sa_handler = sig_handler; sigaction( SIGALRM, &sa, NULL ); if (argc > 1 && getpid() > 1) { for (i=1; imode = RAC_MODE_FG; if (strcmp(argv[i], "-d") == 0) has_debug = 1; else if (strcmp(argv[i], "-h") == 0) { fprintf(stdout, "\n%s: [-fh]\n" " -d enable debug mode \n" " -f leave the daemon in the foreground for debugging, " "output goes to stdout\n" " -h this help\n\n", progname); exit(EXIT_SUCCESS); } } } debug("debug mode ON"); if (is_init(rac)) debug("init mode"); /* Read config file */ if (cfg_read(rac) != 0) { if (is_init(rac)) exec_init(rac); die("cannot read config file"); } /* Transform this process to daemon */ if (is_background(rac) && daemon_create(rac) < 0) { daemon_child_status(CHILD_FAILURE); die("cannot daemonize: %s", strerror(errno)); } /* At exit cleanups */ atexit(clean_audit); /* Open way to audit */ if ((audit_fd = audit_open()) < 0) { daemon_child_status(CHILD_FAILURE); die("cannot open netlink audit socket"); } rac->fd = audit_fd; /* Tell the kernel we are alive */ if (audit_set_pid(rac->fd, getpid(), WAIT_YES) < 0) { daemon_child_status(CHILD_FAILURE); die("cannot set PID"); } /* Tell parent that everything os OK */ if (!is_foreground(rac)) { daemon_child_status(CHILD_SUCCESS); error_out = debug_out = NULL; } /* Enable audit */ if (audit_set_enabled(rac->fd, 1) < 0) die("cannot enable audit"); /* Set size of audit log in kernel */ if (audit_set_backlog_limit(rac->fd, 256) > 0) audit_request_status(rac->fd); else die("cannot enlarge log limit"); /* Don't disturb user with my problems... */ if (audit_set_failure(rac->fd, 0) > 0) audit_request_status(rac->fd); else die("cannot set silent mode"); /* Add new rules to audit system */ if (insert_rule(rac) != 0) die("cannot insert audit rules"); /* We don't want to run forever... */ alarm(rac->maxtime); /* reply */ if (!(rep = malloc(sizeof(*rep)))) die("cannot allocate new reply struct"); /* Main loop */ for (;;) { struct timeval tv; int retval; do { tv.tv_sec = 30; tv.tv_usec = 0; FD_ZERO(&read_mask); FD_SET(rac->fd, &read_mask); retval = select(rac->fd+1, &read_mask, NULL, NULL, &tv); } while (retval == -1 && errno == EINTR && has_signal == 0); if (has_signal) { delete_rule(); audit_set_enabled(audit_fd, 0); } retval = audit_get_reply(rac->fd, &rep->reply, GET_REPLY_NONBLOCKING, 0); if (retval > 0 && IS_EVENT_WANTED(&rep->reply)) block_add_event(rac, &rep->reply); if (has_debug && is_background(rac) && debug_out == NULL && rac->debuglog) { /* the root might be already read-write */ error_out = debug_out = fopen(rac->debuglog, "w"); } if (has_signal) break; } debug("starting reordering data"); /* disable audit */ clean_audit(); rac->fd = -1; /* write raw data to file */ if (rac->rawlog) blocks_dump(rac, rac->rawlog); /* parse & write data to lists of files */ if (rac->listspath) blocks_dump_as_lists(rac, rac->listspath); /* clean up */ blocks_free(rac); debug("done: success"); if (has_debug && is_background(rac) && debug_out != stderr) fclose(debug_out); exit(EXIT_SUCCESS); } /* * Reads config file * * - missing or empty file is not error (in particular case * prog. uses default values). */ static int cfg_read(RacStatus *rac) { char buff[BUFSIZ]; FILE *f; struct stat st; if (stat(rac->cfg_path, &st) != 0) return 0; if (st.st_size == 0) return 0; if (!(f = fopen(rac->cfg_path, "r"))) { perror(rac->cfg_path); return -1; } debug("reading config file: %s", rac->cfg_path); while(fgets(buff, sizeof(buff), f)) { char *p; if ((p = strchr(buff, '#'))) *p = '\0'; if (!*buff) continue; if ((p = cfg_get_item(buff, "RAC_RAWLOG"))) rac->rawlog = strdup(p); else if ((p = cfg_get_item(buff, "RAC_MAXTIME"))) rac->maxtime = strtol(p, NULL, 10); else if ((p = cfg_get_item(buff, "RAC_INITPATH"))) rac->initpath = strdup(p); else if ((p = cfg_get_item(buff, "RAC_LISTSPATH"))) rac->listspath = strdup(p); else if ((p = cfg_get_item(buff, "RAC_EXECIGN"))) rac->execign = string_to_array(p); else if ((p = cfg_get_item(buff, "RAC_LISTBEGIN"))) rac->listbgn = strdup(p); else if ((p = cfg_get_item(buff, "RAC_LISTSEP"))) rac->listsep = strdup(p); else if ((p = cfg_get_item(buff, "RAC_EXCLUDE"))) rac->excludes = string_to_array(p); else if ((p = cfg_get_item(buff, "RAC_DEBUG")) && strcasecmp(p, "on") == 0) has_debug = 1; else if ((p = cfg_get_item(buff, "RAC_DEBUGLOG"))) rac->debuglog = strdup(p); } fclose(f); return 0; } /* * Returns pointer to data from name="data" */ static char * cfg_get_item(char *buff, const char *name) { char *p, *data; int namelen = strlen(name); if ((p = strchr(buff, '=')) == NULL || (p - buff) < namelen) return NULL; if (*(p+1) != '"') return NULL; if (strncmp(p - namelen, name, namelen)) return NULL; data = p+2; /* 2 is =" */ if ((p = strchr(data, '"')) == NULL) return NULL; *p = '\0'; data = btrim(data); if (data && *data == '\0') data = NULL; debug("CFG: %s:\t%s", name, data); return data; } /* * Creates new allocated array from string where * items are separated by a space ('aaa bbb ccc') */ static char ** string_to_array(char *data) { char *p = data, *l = NULL; int items = 1; char **res = NULL; int i; while(*p) { if (isspace((unsigned char) *p) && l && isspace((unsigned char) *l) == 0) items++; l = p++; } if (isspace((unsigned char) *l)) items--; if (items) res = (char **) malloc(sizeof(char *) * items + 1); if (!res) return NULL; p = data; for (i = 0; i < items && *p; i++) { while(*p && isspace((unsigned char) *p)) p++; l = p; while(*p && isspace((unsigned char) *p) == 0) p++; if (*p) { *p = '\0'; p++; } res[i] = strdup(l); } res[i] = NULL; return res; } /* * Removes space from begin and end of string */ static char * btrim(char *str) { int es = 1, bs = 1, size; char *b, *e; if (!str) return NULL; size = strlen(str); for(b=str, e=(str+size-1); b < e; ) { if (es) { if (isspace(*e)) e--; else es = 0; } if (bs) { if (isspace(*b)) b++; else bs = 0; } if (es == 0 && bs == 0) break; } *(e+1) = '\0'; return b; } /* * Execute /sbin/init */ static void exec_init(RacStatus *rac) { char **xargv; int i; if (getpid() != 1) abort(); /* paranoid */ xargv = malloc(rac->argc+1); xargv[0] = rac->initpath; for (i=1; i < rac->argc; i++) xargv[i] = rac->argv[i]; xargv[rac->argc] = NULL; execv(rac->initpath, xargv); die("%s: %s", rac->initpath, strerror(errno)); } /* * This function will take care of becoming a daemon. The parent * will wait until the child notifies it by writing into a special * pipe to signify that it successfully initialized. This prevents * a race in the init script where rules get loaded before the daemon * is ready and they wind up in syslog. The child returns 0 on success * and nonzero on failure. The parent returns nonzero on failure. On * success, the parent calls _exit with 0. * * (code from the auditd daemon) */ static int daemon_create(RacStatus *rac) { int fd, rc; pid_t pid; int status; if (pipe(init_pipe) || fcntl(init_pipe[0], F_SETFD, FD_CLOEXEC) || fcntl(init_pipe[0], F_SETFD, FD_CLOEXEC)) return -1; pid = fork(); switch (pid) { case 0: /* No longer need this... */ close(init_pipe[0]); /* Open stdin,out,err to /dev/null */ fd = open("/dev/null", O_RDWR); if (fd < 0) return -1; if (dup2(fd, 0) < 0) return -1; if (dup2(fd, 1) < 0) return -1; if (dup2(fd, 2) < 0) return -1; close(fd); /* Change to '/' */ if (chdir("/") != 0) return -1; /* Change session */ if (setsid() < 0) return -1; break; case -1: return -1; break; default: /* Wait for the child to say its done */ rc = read(init_pipe[0], &status, sizeof(status)); if (rc < 0) return -1; if (is_init(rac)) exec_init(rac); /* Success - die a happy death */ if (status == CHILD_SUCCESS) _exit(EXIT_SUCCESS); else return -1; break; } return 0; } /* * Send child status to parent process */ static void daemon_child_status(int status) { int rc; do { rc = write(init_pipe[1], &status, sizeof(status)); } while (rc < 0 && errno == EINTR); } /* * At Exit cleanup */ static void clean_audit(void) { if (audit_fd < 0) return; delete_rule(); audit_set_enabled(audit_fd, 0); audit_set_pid(audit_fd, 0, WAIT_NO); audit_close(audit_fd); audit_fd = -1; } static void sig_handler( int sig ) { debug("\n\nHAVE SIGNAL %d\n", sig); has_signal = 1; } /* * Inserts new rules to audit system */ static int insert_rule(RacStatus *rac) { int rc = 0; int flags = AUDIT_FILTER_EXIT; int action = AUDIT_ALWAYS; if (audit_rule) return -1; debug("inserting audit rule"); audit_rule = malloc(sizeof(struct audit_rule_data)); if (audit_rule == NULL) goto err; memset(audit_rule, 0, sizeof(struct audit_rule_data)); rc |= audit_rule_syscallbyname_data(audit_rule, "open"); rc |= audit_rule_syscallbyname_data(audit_rule, "openat"); rc |= audit_rule_syscallbyname_data(audit_rule, "creat"); rc |= audit_rule_syscallbyname_data(audit_rule, "truncate"); rc |= audit_rule_syscallbyname_data(audit_rule, "execve"); rc |= audit_rule_syscallbyname_data(audit_rule, "sendfile"); if (rc < 0) goto err; rc = audit_add_rule_data(rac->fd, audit_rule, flags, action); if (rc > 0) return 0; err: return -1; } /* * Deletes rules from audit system (called from atexit() callback) */ static void delete_rule() { int rc; if (!audit_rule) return; debug("deleting audit rule"); rc = audit_delete_rule_data (audit_fd, audit_rule, AUDIT_FILTER_EXIT, AUDIT_ALWAYS); if (rc < 0 && error_out) fprintf(error_out, "%s: ERROR: deleting rule (%s)\n", progname, strerror(-rc)); audit_rule = NULL; } /* * Allocates new block and add it to list of blocks */ static RacBlock * block_new(RacStatus *rac) { RacBlock *blk = malloc(sizeof(RacBlock)); debug("allocate new block"); if (!blk) return NULL; memset(blk, 0, sizeof(*blk)); blk->pos = blk->buff; if (!rac->b_first) rac->b_first = blk; else rac->b_last->next = blk; rac->b_last = blk; return blk; } /* * Adds event message at end of block */ #define RAC_HDR_PATH "type=PATH msg=" #define RAC_HDR_CWD "type=CWD msg=" #define RAC_HDR_SYSCALL "type=SYSCALL msg=" #define RAC_IGN_CWD "cwd=\"/\"" #define RAC_IGN_CWD_LEN (sizeof(RAC_IGN_CWD) - 1) static int block_add_event(RacStatus *rac, const struct audit_reply *rep) { RacBlock *blk = rac->b_last; int space = 0; char *hdr; int hdrlen; int len; debug("block_add_event"); if (rep->type == AUDIT_SYSCALL) hdr = RAC_HDR_SYSCALL; else if (rep->type == AUDIT_CWD) { /* we don't save cwd="/" */ if (strncmp(rep->message + (rep->len - RAC_IGN_CWD_LEN), RAC_IGN_CWD, RAC_IGN_CWD_LEN) == 0) return 0; hdr = RAC_HDR_CWD; } else if (rep->type == AUDIT_PATH) hdr = RAC_HDR_PATH; else return -1; hdrlen = strlen(hdr); len = hdrlen + rep->len + 2; if (len > MEMBLK_SIZE) return -1; if (blk) space = MEMBLK_SIZE - (blk->pos - blk->buff); if (space < len) { blk = block_new(rac); space = MEMBLK_SIZE; } if (!blk) return -1; debug("add new event to block (space: %d, len: %d)", space, len); memcpy(blk->pos, hdr, hdrlen); blk->pos += hdrlen; memcpy(blk->pos, rep->message, rep->len); blk->pos += rep->len; *blk->pos = '\n'; blk->pos++; *blk->pos = '\0'; if (space > len) blk->pos++; rac->nrecords++; if (rep->type == AUDIT_SYSCALL) rac->nevents++; if (has_debug && is_foreground(rac) && debug_out) { if (fwrite(blk->pos - len, 1, len - 1, debug_out)) fputc('\n', debug_out); } debug("block_add_event: done"); return 0; } static void blocks_free(RacStatus *rac) { RacBlock *blk = rac->b_first; if (blk) debug("deallocate blocks"); while (blk) { RacBlock *x = blk; blk = x->next; free(x); } rac->b_first = NULL; rac->b_last = NULL; } /* * Dumpa all collected data to file */ static int blocks_dump(RacStatus *rac, char *filename) { RacBlock *blk; char *p; FILE *f; if (!(f = fopen(filename, "w"))) return -1; debug("dumping %d records to raw log %s", rac->nrecords, filename); for (blk = rac->b_first; blk; blk = blk->next) { for (p = blk->buff; *p && p < blk->pos; ) { int len = strlen(p); if (len) fprintf(f, "%s\n", p); p += len+1; } } fclose(f); return 0; } /* * Converts rac blocks to array of buffers */ static char ** blocks_to_array(RacStatus *rac) { RacBlock *blk; char **ary, *p; int i = 0; if (!rac->nrecords) return NULL; debug("converting blocks to array"); ary = (char **) malloc(sizeof(char *) * (rac->nrecords + 1)); if (!ary) return NULL; for (blk = rac->b_first; blk; blk = blk->next) { for (p = blk->buff; *p && p < blk->pos && i < rac->nrecords; ) { int len = strlen(p); if (len) ary[i++] = p; p += len+1; } } return ary; } static int pathcmp(const void *a, const void *b) { return strcmp(*(char **) a, *(char **) b); } static int blocks_dump_as_lists(RacStatus *rac, const char *filename_tpl) { char **ary = NULL; char **all = NULL; int nfiles, sep; /* returns new allocated array of pointers to our buffers */ ary = blocks_to_array(rac); if (!ary) return -1; debug("converting array of events to list of files"); /* the 'ary' is deallocated after this call! */ all = parse_events(rac, ary, &nfiles, &sep); /* we needn't it */ free(ary); if (!all) return -1; if (nfiles) { int e = sep ? : nfiles; debug("sorting early list (%d/%d items)", e, nfiles); qsort(all, e, sizeof(char *), pathcmp); list_write(rac, all, e, filename_tpl, "early"); } if (sep) { debug("sorting later list (%d/%d items)", nfiles-sep, nfiles); qsort(all + sep, nfiles - sep, sizeof(char *), pathcmp); list_write(rac, all + sep, nfiles - sep, filename_tpl, "later"); } free(all); return 0; } static int list_write(RacStatus *rac, char **list, int size, const char *filetpl, const char *fileext) { int i; FILE *out; char filename[ PATH_MAX ]; char *last = NULL; snprintf(filename, sizeof(filename), filetpl, fileext); if (!(out = fopen(filename, "w"))) return -1; debug("writing list to %s", filename); for (i = 0; i < size; i++) { if (last && strcmp(last, list[i]) == 0) /* remove duplicates */ continue; fprintf(out, "%s\n", list[i]); last = list[i]; } fclose(out); return 0; } static char ** parse_events(RacStatus *rac, char **ary, int *_nfiles, int *sep) { char **all; int nfiles = 0; int ignlen = 0; int begin = 0; auparse_state_t *au; *_nfiles = *sep = 0; au = auparse_init(AUSOURCE_BUFFER_ARRAY, (void *) ary); if (!au) return NULL; debug("parsing buffers"); /* libauparse sucks ... it reallocates (and duplicate) all buffers to * internal version -- so, we deallocate our version ASAP */ blocks_free(rac); all = (char **) malloc(sizeof(char *) * (rac->nevents + 1)); if (!all) return NULL; debug("parsing buffers: start (events: %d)", rac->nevents); do { /* audit uses quotation marks in auparse_find_field() result */ char path[PATH_MAX+3]; char cwd[PATH_MAX+3]; int wanted = 1; if (auparse_first_record(au) <= 0) return NULL; *path = *cwd = '\0'; do { int type = auparse_get_type(au); const char *p; if (type == AUDIT_SYSCALL && (p = auparse_find_field(au, "exe"))) { if (exclude_file(rac->execign, p+1)) wanted = 0; } else if (type == AUDIT_CWD && (p = auparse_find_field(au, "cwd"))) strncpy(cwd, p + 1, sizeof(cwd)); else if (type == AUDIT_PATH && (p = auparse_find_field(au, "name"))) { if (!strcmp("(null)", p)) continue; strncpy(path, p + 1, sizeof(path)); } } while(auparse_next_record(au) > 0); if (!*cwd) strcpy(cwd, "/\""); if (wanted && *path && *cwd) { char buff[PATH_MAX+2]; /* 2 is "/\0" */ int len; struct stat st; debug("path: %s, cwd: %s", path, cwd); /* add terminator (..because stupid strncpy) and * remove quotation marks */ path[sizeof(path)-1] = '\0'; len = strlen(path); path[len - 1] = '\0'; cwd[sizeof(cwd)-1] = '\0'; len = strlen(cwd); cwd[len - 1] = '\0'; if (!myrealpath(path, buff, sizeof(buff), cwd)) continue; if (*buff != '/') continue; /* * Lookup for begin of the list (if defined) */ if (begin == 0 && rac->listbgn) { if (strcmp(buff, rac->listbgn) == 0) begin = 1; else continue; } /* don't add to the list same filename like * previous one -- it removes 10% of all files! */ if (nfiles && strcmp(all[nfiles-1], buff) == 0) continue; if (exclude_file(rac->excludes, buff)) continue; if (stat(buff, &st) == -1 || S_ISREG(st.st_mode) == 0) continue; debug("parsing buffers: add file: %s", buff); all[nfiles++] = strdup(buff); /* * Lookup for separator between early / later lists */ if (rac->listsep && *sep == 0 && strcmp(buff, rac->listsep) == 0) { debug("parsing buffers: separator detected: %s", buff); *sep = nfiles; } } } while (auparse_next_event(au) > 0); debug("parsing buffers: done"); auparse_destroy(au); all[nfiles] = NULL; *_nfiles = nfiles; return all; } /* * realpath(2) from util-linux */ static char * myrealpath(const char *path, char *resolved_path, int maxreslth, const char *cwd) { int readlinks = 0; char *npath; char link_path[PATH_MAX+1]; int n; char *buf = NULL; int bufsz = 0; npath = resolved_path; /* If it's a relative pathname use getcwd for starters. */ if (*path != '/') { int lcwd = strlen(cwd); memcpy(npath, cwd, maxreslth-2); npath += lcwd; if (npath[-1] != '/') *npath++ = '/'; } else { *npath++ = '/'; path++; } /* Expand each slash-separated pathname component. */ while (*path != '\0') { /* Ignore stray "/" */ if (*path == '/') { path++; continue; } if (*path == '.' && (path[1] == '\0' || path[1] == '/')) { /* Ignore "." */ path++; continue; } if (*path == '.' && path[1] == '.' && (path[2] == '\0' || path[2] == '/')) { /* Backup for ".." */ path += 2; while (npath > resolved_path+1 && (--npath)[-1] != '/') ; continue; } /* Safely copy the next pathname component. */ while (*path != '\0' && *path != '/') { if (npath-resolved_path > maxreslth-2) { errno = ENAMETOOLONG; goto err; } *npath++ = *path++; } /* Protect against infinite loops. */ if (readlinks++ > MAX_READLINKS) { errno = ELOOP; goto err; } /* See if last pathname component is a symlink. */ *npath = '\0'; n = readlink(resolved_path, link_path, PATH_MAX); if (n < 0) { /* EINVAL means the file exists but isn't a symlink. */ if (errno != EINVAL) goto err; } else { int m; /* Note: readlink doesn't add the null byte. */ link_path[n] = '\0'; if (*link_path == '/') /* Start over for an absolute symlink. */ npath = resolved_path; else /* Otherwise back up over this component. */ while (*(--npath) != '/') ; /* Insert symlink contents into path. */ m = strlen(path); if (!buf) buf = malloc(m + n + 1); else if (m + n + 1 > bufsz) buf = realloc(buf, m + n + 1); bufsz = m + n + 1; memcpy(buf, link_path, n); memcpy(buf + n, path, m + 1); path = buf; } *npath++ = '/'; } /* Delete trailing slash but don't whomp a lone slash. */ if (npath != resolved_path+1 && npath[-1] == '/') npath--; /* Make sure it's null terminated. */ *npath = '\0'; if (buf) free(buf); return resolved_path; err: if (buf) free(buf); return NULL; } /* * returns 1 if file should be excluded */ static int exclude_file(char **list, const char *filename) { char **p = list; for (; p && *p; p++) { const char *f = filename; char *e = *p; while(*f++ == *e++); if (*e == '\0') return 1; } return 0; } readahead-fedora-1.5.6/src/readahead.c000066400000000000000000000313711135243252200175140ustar00rootroot00000000000000 /* * readahead -- read in advance a list of files, adding them to the page cache * * Copyright (C) 2005 Ziga Mahkovec * * Copyright (C) 2006,2007 Red Hat, Inc. * Karel Zak * * Based on a previous version by Arjan van de Ven * * 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. */ #define _GNU_SOURCE #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "nls.h" static inline int ioprio_set(int which, int who, int ioprio) { return syscall(SYS_ioprio_set, which, who, ioprio); } #define IOPRIO_WHO_PROCESS 1 #define IOPRIO_CLASS_IDLE 3 #define IOPRIO_CLASS_SHIFT 13 #define IOPRIO_IDLE_LOWEST (7 | (IOPRIO_CLASS_IDLE << IOPRIO_CLASS_SHIFT)) #define MAXFILES 32768 #define MAXDEVICES 32 /* Block group hit threshold (triggering complete inode table scan) */ #define GROUP_HIT_THRESH 128 #define IO_MGR unix_io_manager #define TIMEDIFF(t1, t2) ((t2.tv_sec-t1.tv_sec) * 1000 + \ (t2.tv_usec-t1.tv_usec) / 1000) static char *progname; static int verbose; static int timing; static long int maxsize; /* Modes */ #define MODE_FULL 1 #define MODE_SORT 2 #define MODE_FAST 3 struct device { dev_t st_dev; char *name; ext2_filsys fs; blk_t *group_hits; }; struct file { char* path; off_t size; blk_t block; }; /* Compare files by path. */ static int comp_files_path(const void *f1, const void *f2) { struct file *fb1 = (struct file *)f1; struct file *fb2 = (struct file *)f2; return (strcmp(fb1->path, fb2->path)); } /* Compare files by first block. */ static int comp_files_block(const void *f1, const void *f2) { struct file *fb1 = (struct file *)f1; struct file *fb2 = (struct file *)f2; return (int)(fb1->block - fb2->block); } /* Get the device the specified file is on. */ struct device * get_file_device(dev_t dev, struct device *devices, int *count) { int i; ext2_filsys fs = NULL; for (i=0; i<*count; i++) { if (devices[i].st_dev == dev) return &devices[i]; } /* Create new device */ if (*count == MAXDEVICES) { fprintf(stderr, _("%s: error: max device count reached.\n"), progname); return NULL; } devices[i].st_dev = dev; devices[i].name = blkid_devno_to_devname(dev); if (!devices[i].name) return NULL; if (ext2fs_open(devices[i].name, 0, 0, 0, IO_MGR, &fs) || !fs) return NULL; else { unsigned int j, n_groups; devices[i].fs = fs; n_groups = fs->super->s_blocks_count / fs->super->s_blocks_per_group + 1; devices[i].group_hits = (blk_t *)malloc(sizeof(blk_t) * n_groups); for (j=0; jblock = *blocknr; return BLOCK_ABORT; } /* Read the entire inode table of the specified block group. */ void preload_inodes(ext2_filsys fs, int group) { ext2_inode_scan e2iscan = NULL; struct ext2_inode inode; ext2_ino_t ino = 0; int c_group; if (ext2fs_open_inode_scan(fs, 0, &e2iscan) || !e2iscan) { fprintf(stderr, _("%s: error: ext2fs_open_inode_scan failed\n"), progname); return; } if (ext2fs_inode_scan_goto_blockgroup(e2iscan, group)) { fprintf(stderr, _("%s: error: ext2fs_open_inode_scan() failed\n"), progname); ext2fs_close_inode_scan(e2iscan); return; } c_group = group; while (c_group == group && !ext2fs_get_next_inode(e2iscan, &ino, &inode)) { c_group = ext2fs_group_of_ino(fs, ino); } ext2fs_close_inode_scan(e2iscan); } static int list_new(struct file *files, char **lists, int nlists, int withsize) { char buf[PATH_MAX]; int nfiles = 0, i; struct timeval t1, t2; if (timing && verbose) gettimeofday(&t1, NULL); for (i = 0; i < nlists; i++) { FILE *fin = fopen(lists[i], "r"); if (fin == NULL) { fprintf(stderr, _("%s: error: %s: %s\n"), progname, lists[i], strerror(errno)); continue; } while (fgets(buf, PATH_MAX, fin) != NULL) { struct file *file = files+nfiles; char *path; int len; if (!*buf) continue; /* empty */ if (*buf == '#') continue; /* comment */ if (withsize) { file->size = (off_t) strtoll(buf, &path, 10); if (*path != ' ') { fprintf(stderr, _("%s: error: %s: " "unexpected format of sorted file\n"), progname, lists[i]); return -1; } path++; } else { path = buf; files->size = 0; } len = strlen(path); if (path[len - 1] == '\n') path[--len] = '\0'; file->path = (char *) malloc(sizeof(char) * (len + 1)); strcpy(file->path, path); files->block = -1; nfiles++; if (nfiles == MAXFILES) { fprintf(stderr, _("%s: error: max file count reached\n"), progname); i = nlists; break; } } fclose(fin); } if (timing && verbose) { gettimeofday(&t2, NULL); fprintf(stderr, _("Time (read lists): %ld ms\n"), TIMEDIFF(t1, t2)); } if (verbose) fprintf(stderr, _("Create list with %d files\n"), nfiles); return nfiles; } static void list_destroy(struct file *files, int nfiles) { int i; for (i = 0; i < nfiles; i++) free(files[i].path); return; } static void list_sort_by_paths(struct file *files, int nfiles) { qsort(files, nfiles, sizeof(struct file), comp_files_path); } static void list_read_blocks(struct file *files, int nfiles) { int i; struct file *file, *last = NULL; off_t total = 0; int fd = -1; int fcount = 0; struct stat st; struct device devices[MAXDEVICES]; int ndevices = 0; struct timeval t1, t2; if (timing && verbose) gettimeofday(&t1, NULL); for (i = 0, file = files; i < nfiles; i++, file++) { struct device *dev; int group; if (fd != -1) { close(fd); fd = -1; } if (file == NULL || file->path == NULL) continue; if (last && strcmp(file->path, last->path)==0) continue; /* duplicate file */ last = file; #ifdef O_NOATIME fd = open(file->path, O_RDONLY | O_NOATIME); if (fd < 0) fd = open(file->path, O_RDONLY); #else fd = open(file->path, O_RDONLY); #endif if (fd < 0 || fstat(fd, &st) < 0) continue; /* open() or stat() failed */ if (!S_ISREG(st.st_mode)) continue; /* not regular file */ if (!gnu_dev_major(st.st_dev)) continue; /* mounted over NFS */ if (st.st_size == 0 || (maxsize >= 0 && st.st_size > (maxsize*1024))) continue; /* empty or too big file */ file->size = st.st_size; dev = get_file_device(st.st_dev, devices, &ndevices); if (dev == NULL || dev->fs == NULL) continue; /* no dev? */ group = ext2fs_group_of_ino(dev->fs, st.st_ino); if (dev->group_hits[group] == GROUP_HIT_THRESH) preload_inodes(dev->fs, group); dev->group_hits[group]++; /* Store the first data block (for sorting later) */ ext2fs_block_iterate2(dev->fs, st.st_ino, 0, NULL, get_first_block, (void *)file); fcount++; /* number of really loaded files */ total += file->size; } if (fd != -1) close(fd); for (i = 0; i < ndevices; i++) { if (devices[i].name) free(devices[i].name); if (devices[i].group_hits) free(devices[i].group_hits); if (devices[i].fs) ext2fs_close(devices[i].fs); } if (timing && verbose) { gettimeofday(&t2, NULL); fprintf(stderr, _("Time (read blocks): %ld ms\n"), TIMEDIFF(t1, t2)); } if (verbose) fprintf(stderr, _("Read blocks for %d/%d files (%llu KB)\n"), fcount, nfiles, (unsigned long long int) total / 1024); } static void list_sort_by_blocks(struct file *files, int nfiles) { qsort(files, nfiles, sizeof(struct file), comp_files_block); } static void list_do_readahead(struct file *files, int nfiles) { int i; struct file *file; int fd = -1; struct timeval t1, t2; off_t total = 0; int fcount = 0; if (timing && verbose) gettimeofday(&t1, NULL); for (i = 0, file = files; i < nfiles; i++, file++) { if (file == NULL || file->path == NULL || file->size == 0) continue; #ifdef O_NOATIME if ((fd = open(file->path, O_RDONLY | O_NOATIME)) != -1 || (fd = open(file->path, O_RDONLY)) != -1) { #else if ((fd = open(file->path, O_RDONLY)) != -1) { #endif readahead(fd, 0, file->size); close(fd); total += file->size; fcount++; /* number of really loaded files */ } } if (timing && verbose) { gettimeofday(&t2, NULL); fprintf(stderr, _("Time (readahead): %ld ms\n"), TIMEDIFF(t1, t2)); } if (verbose) fprintf(stderr, _("Preload %d/%d files (%llu KB)\n"), fcount, nfiles, (unsigned long long int) total / 1024); } static int list_write(struct file *files, int nfiles, const char *output) { int i; struct file *file; FILE *out = stdout; if (output && (out = fopen(output, "w")) == NULL) { fprintf(stderr, _("%s: error: %s: %s\n"), progname, output, strerror(errno)); return -1; } for (i = 0, file = files; i < nfiles; i++, file++) { if (file == NULL || file->path == NULL || file->size == 0) continue; fprintf(out, "%llu %s\n", (unsigned long long int) file->size, file->path); } if (output) fclose(out); return 0; } static void usage(int excode) { fprintf(stdout, _("\n%s [options] [...]\n\n"), progname); fputs(_(" -s | --sort sort list of files only\n" " -o | --output output sorted list of files\n" " -d | --dont-sort call readahead(2) for already sorted list\n" " -h | --help this help\n" " -v | --verbose verbose mode\n" " -t | --timing report wasted time\n" " -m | --maxsize <10240> max size of a file to be preloaded (in KiB)\n" "\n"), stdout); exit(excode); } int main(int argc, char **argv) { int i, mode = MODE_FULL; int res = 0; char *p, *output = NULL; struct option opts[] = { { "sort", 0, 0, 's' }, { "dont-sort", 0, 0, 'd' }, { "help", 0, 0, 'h' }, { "output", 1, 0, 'o' }, { "verbose", 0, 0, 'v' }, { "timing", 0, 0, 't' }, { "maxsize", 1, 0, 'm' }, { NULL, 0, 0, 0 } }; struct timeval t1, t2; struct file files[MAXFILES]; int nfiles = 0; maxsize = 10240; setlocale(LC_MESSAGES, ""); bindtextdomain(PACKAGE, LOCALEDIR); textdomain(PACKAGE); progname = argv[0]; if ((p = strrchr(argv[0], '/'))) progname = p+1; while((i = getopt_long(argc, argv, "dho:stvm:", opts, NULL)) != -1) { switch(i) { case 'd': mode = MODE_FAST; break; case 'o': output = strdup(optarg); break; case 'h': usage(EXIT_SUCCESS); case 's': mode = MODE_SORT; break; case 't': timing = 1; case 'v': verbose = 1; break; case 'm': maxsize = strtol(optarg, NULL, 10); break; default: usage(EXIT_FAILURE); } } if (timing) gettimeofday(&t1, NULL); argc -= optind; argv += optind; if (!argv[0]) usage(EXIT_FAILURE); if (verbose) { fprintf(stderr, _("Mode: %s\n"), mode == MODE_FULL ? "full" : mode == MODE_FAST ? "fast" : "sort" ); if (output) fprintf(stderr, _("Output: %s\n"), output); for (i = 0; i < argc; i++) fprintf(stderr, _("List: %s\n"), argv[i]); } if (ioprio_set(IOPRIO_WHO_PROCESS, getpid(), IOPRIO_IDLE_LOWEST) == -1) perror("Can not set IO priority to idle class"); if ((nfiles = list_new(files, argv, argc, mode == MODE_FAST)) < 0) { free(output); return EXIT_FAILURE; } if (!nfiles) { free(output); return EXIT_SUCCESS; /* empty list is not error */ } if (mode == MODE_FULL || mode == MODE_SORT) list_sort_by_paths(files, nfiles); if (mode == MODE_FULL || mode == MODE_SORT) list_read_blocks(files, nfiles); if (mode == MODE_FULL || mode == MODE_SORT) list_sort_by_blocks(files, nfiles); if (mode == MODE_FULL || mode == MODE_FAST) list_do_readahead(files, nfiles); else if (mode == MODE_SORT) res = list_write(files, nfiles, output); list_destroy(files, nfiles); if (timing) { gettimeofday(&t2, NULL); fprintf(stderr, _("Time total: %ld ms\n"), TIMEDIFF(t1, t2)); } free(output); exit( res == 0 ? EXIT_SUCCESS : EXIT_FAILURE ); } readahead-fedora-1.5.6/src/readahead.conf000066400000000000000000000017061135243252200202160ustar00rootroot00000000000000# Readahead config file # # RAC -- Read-Ahead-Collector # # Raw audit data #RAC_RAWLOG="/var/log/readahead-rac.log" # Rac automatically finish after N seconds RAC_MAXTIME="300" # Path to init process RAC_INITPATH="/sbin/init" # Template of path where RAC will store final lists # -- %s will be replaced by "early" or "later" RAC_LISTSPATH="/var/lib/readahead/custom.%s" # Ignore syscalls from: RAC_EXECIGN="/sbin/readahead" # Exclude dirs RAC_EXCLUDE="/proc /sys /dev /var /home /tmp /media /selinux /mnt /usr/src /usr/include /lib/modules /usr/lib/gcc /usr/lib64/gcc /usr/lib/locale /usr/libexec/gcc" # A first filename in the list # RAC_LISTBEGIN="/etc/rc.d/init.d/readahead_early" # A filename which is a separator between early and later readahead # RAC_LISTSEP="/etc/rc.d/init.d/readahead_later" # On/Off debug mode (see also "-d" option) RAC_DEBUG="off" # On debug mode all debug messages goes to this file RAC_DEBUGLOG="/dev/.readahead-rac.debug"