�ɲɾ�����ӯ�����һ��ˣ��������С���˴��ͣ�������P���ҹ��ñ˽��ά�Բ��������˸߸ԣ�������ơ��ҹ��ñ�����ά�Բ���ˡ���˳^�ӣ������ӡ� ���ͯj�ӣ��ƺ���ӣ� ? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!etc/rc.d/init.d/README000064400000002211152525212660010214 0ustar00You are looking for the traditional init scripts in /etc/rc.d/init.d, and they are gone? Here's an explanation on what's going on: You are running a systemd-based OS where traditional init scripts have been replaced by native systemd services files. Service files provide very similar functionality to init scripts. To make use of service files simply invoke "systemctl", which will output a list of all currently running services (and other units). Use "systemctl list-unit-files" to get a listing of all known unit files, including stopped, disabled and masked ones. Use "systemctl start foobar.service" and "systemctl stop foobar.service" to start or stop a service, respectively. For further details, please refer to systemctl(1). Note that traditional init scripts continue to function on a systemd system. An init script /etc/rc.d/init.d/foobar is implicitly mapped into a service unit foobar.service during system initialization. Thank you! Further reading: man:systemctl(1) man:systemd(1) http://0pointer.de/blog/projects/systemd-for-admins-3.html https://www.freedesktop.org/wiki/Software/systemd/Incompatibilities usr/share/doc/mailx/README000064400000015146152525634650011242 0ustar00Welcome to Heirloom mailx! ========================== Mailx is derived from Berkeley Mail and is intended provide the functionality of the POSIX mailx command with additional support for MIME, IMAP, POP3, SMTP, and S/MIME. It provides enhanced features for interactive use, such as caching and disconnected operation for IMAP, message threading, scoring, and filtering. It is also usable as a mail batch language, both for sending and receiving mail. Until March 2006, this project has been developed under the name "nail"; it is integrated into the Heirloom project now. The old name will persist at some places. If you were calling the program under the name "nail" and want to continue to do so, create a symbolic link to the mailx binary. New releases of mailx are announced on Freshmeat. If you want to get notified by email on each release, use their subscription service at . The project homepage is currently at . How to build ============ To compile and install mailx, look at the file 'INSTALL'. You can also build mailx RPMs using 'rpmbuild -tb mailx-.tar.bz2'. You should always install the template for the system-wide configuration file. If this is not possible because you lack the necessary permissions, integrate its contents into your ~/.mailrc. This is because some of the built-in defaults are not appropriate anymore for the Unix platforms of today, but are still being kept for compatibility. Mailx has been built successfully in the following environments using the current configuration system: Linux Kernel 2.0 and above; libc4, libc5, glibc 2.2 and above, diet libc, uClibc; gcc, Intel C Sun Solaris 2.6 and above; Sun C, gcc Open UNIX 8.0.0 FreeBSD 4.9 and above HP HP-UX B.11.11, B.11.23; HP C/ANSI C, gcc HP Tru64 UNIX 4.0G, 5.1B; Developers' Toolkit C, gcc NetBSD 1.6, 2.0 IBM AIX 5.1; VisualAge C, gcc Cray UNICOS 9.0.2.2 Control Data EP/IX 2.2.1AA; /svr4/bin/cc OpenBSD 3.3 Apple Darwin 6.8 Apple Mac OS X 10.2 Server NEC UX/4800 Release11.5 Rev.A NEC SUPER-UX 10.2 DragonFlyBSD 1.3.7-DEVELOPMENT If your system does not appear in this list, just try it out. Whether it works or not, you should contact the development list and report the results. But note that I strongly discourage from porting mailx to Windows and environments that make Windows look Unix-like; I won't accept any patches or suggestions that go in this direction. There are two major reasons for this: First, any port makes maintaining harder; there are always more work-arounds in the source, and introducing new features involves the question whether they will work an all supported platforms. The more different a platform behaves from, let's say, the common Unix way, the more hacks have to be made, costing human time that could otherwise have been used to enhance the software for Unix platforms. Windows is just not worth this, and here we are at the second point: Porting software to Windows encourages people to use -- that is: to buy -- Windows. It supports a company that is known to threaten Open Source software like mailx. In short, porting mailx (or similar free software) to Windows has an ill effect on that software. Don't do it. Note that my statement doesn't legally restrict you if you want to port mailx to any platform. This would not be the way of free software either, especially since I might be wrong in the future; as an example, porting free software to mainframes of a certain company is considered a good thing today. I just wish to express my opinion as a free software developer, and to inform you that I don't maintain such a port. Mailbox formats =============== Mailx supports the mbox and maildir mailbox formats. The mbox format variant based on the 'Content-Length:' header field that is used on most SVr4 systems by default is not supported by mailx. As this format generally is a design flaw, you should fix your system by either using procmail for local mail delivery, which is a good idea anyway, or at least add the -E flag to the Mlocal line in /etc/sendmail.cf if using /usr/lib/mail.local. Although it is not bad, just obsolete, similar considerations apply to the MMDF format used on OpenServer systems; unless you switch to procmail (or contribute support for this format), mailx will not be able to read your mailbox there. Questions, suggestions, bug reports =================================== Please use the 'nail-devel' mailing list for questions, suggestions, or bug reports. This has at least three advantages over contacting me directly: 1. Other people can comment on the issue. They might have solved a similar problem, or might be willing to implement improvements. 2. Since all posts are archived, a problem needs to be commented once only, and the answers are readily available on the web then. 3. Unless you had an acceptable reason to contact me directly, I will refuse to give you technical answers by personal mail. Thus if you ignore this advice, you will just have to resend your message to the list. Also before you send something to the list, make sure that you did the following: 1. Check out that you are using a binary made from pristine sources of the latest release. This is particularly important if you received your mailx binaries from a third-party vendor. If you are unwilling to do this for whatever reason, use the support channels of your vendor and avoid abusing the Open Source development model. 2. Check that your issue is not already solved or commented in the existing documentation. This does not only involve reading this file; you also need to look at the manual page and the ChangeLog. After doing that, you need to search the mailing list archive for related topics. Remember that you are spending other people's spare time when you ask questions, and that you just waste it if your question was a superfluous one. 3. If you are reporting a bug, try to reproduce it and include detailed instructions for doing that in your report. If you cannot reproduce the bug, document carefully what you have done before the problem occurred. The more information you provide, the greater are the chances that the bug can be fixed quickly. Both the contact instructions and the list archive are available at . You need to subscribe in order to post to the list. Enjoy! Gunnar Ritter Freiburg i. Br. Germany 01/03/07 usr/share/doc/bison/README000064400000004361152525713400011226 0ustar00This package contains the GNU Bison parser generator. * Installation ** Build See the file INSTALL for generic compilation and installation instructions. Bison requires GNU m4 1.4.6 or later. See: ftp://ftp.gnu.org/gnu/m4/m4-1.4.6.tar.gz ** Internationalization Bison supports two catalogues: one for Bison itself (i.e., for the maintainer-side parser generation), and one for the generated parsers (i.e., for the user-side parser execution). The requirements between both differ: bison needs ngettext, the generated parsers do not. To simplify the build system, neither are installed if ngettext is not supported, even if generated parsers could have been localized. See http://lists.gnu.org/archive/html/bug-bison/2009-08/msg00006.html for more details. * Questions See the section FAQ in the documentation (doc/bison.info) for frequently asked questions. The documentation is also available in PDF and HTML, provided you have a recent version of Texinfo installed: run "make pdf" or "make html". If you have questions about using Bison and the documentation does not answer them, please send mail to . * Bug reports Please send bug reports to . Please include the version number from 'bison --version', and a complete, self-contained test case in each bug report. * Copyright statements For any copyright year range specified as YYYY-ZZZZ in this package, note that the range specifies every single year in that closed interval. Local Variables: mode: outline End: ----- Copyright (C) 1992, 1998-1999, 2003-2005, 2008-2015 Free Software Foundation, Inc. This file is part of Bison, the GNU Compiler Compiler. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . usr/share/doc/glib2/README000064400000036132152525733160011121 0ustar00General Information =================== This is GLib version 2.56.4. GLib is the low-level core library that forms the basis for projects such as GTK+ and GNOME. It provides data structure handling for C, portability wrappers, and interfaces for such runtime functionality as an event loop, threads, dynamic loading, and an object system. The official download locations are: ftp://ftp.gtk.org/pub/glib http://download.gnome.org/sources/glib The official web site is: http://www.gtk.org/ Information about mailing lists can be found at http://www.gtk.org/mailing-lists.php To subscribe, send mail to gtk-list-request@gnome.org with the subject "subscribe". Installation ============ See the file 'INSTALL' How to report bugs ================== Bugs should be reported to the GNOME bug tracking system. (http://bugzilla.gnome.org, product glib.) You will need to create an account for yourself. In the bug report please include: * Information about your system. For instance: - What operating system and version - For Linux, what version of the C library And anything else you think is relevant. * How to reproduce the bug. If you can reproduce it with one of the test programs that are built in the tests/ subdirectory, that will be most convenient. Otherwise, please include a short test program that exhibits the behavior. As a last resort, you can also provide a pointer to a larger piece of software that can be downloaded. * If the bug was a crash, the exact text that was printed out when the crash occured. * Further information such as stack traces may be useful, but is not necessary. Patches ======= Patches should also be submitted to bugzilla.gnome.org. If the patch fixes an existing bug, add the patch as an attachment to that bug report. Otherwise, enter a new bug report that describes the patch, and attach the patch to that bug report. Patches should be in unified diff form. (The -up option to GNU diff.) Notes about GLib 2.48 ===================== * The system copy of PCRE is now used by default to implement GRegex. Configure with --with-pcre=internal if a system PCRE version is unavailable or undesired. Notes about GLib 2.46 ===================== * GTask no longer imposes a fixed limit on the number of tasks that can be run_in_thread() simultaneously, since doing this inevitably results in deadlocks in some use cases. Instead, it now has a base number of threads that can be used "for free", but will gradually add more threads to the pool if too much time passes without any tasks completing. The exact behavior may continue to change in the future, and it's possible that some future version of GLib may not do any rate-limiting at all. As a result, you should no longer assume that GTask will rate-limit tasks itself (or, by extension, that calls to certain async gio methods will automatically be rate-limited for you). If you have a very large number of tasks to run, and don't want them to all run at once, you should rate-limit them yourself. Notes about GLib 2.40 ===================== * g_test_run() no longer runs tests in exactly the order they are registered; instead, it groups them according to test suites (ie, path components) like the documentation always claimed it did. In some cases, this can result in a sub-optimal ordering of tests, relative to the old behavior. The fix is to change the test paths to properly group together the tests that should run together. (eg, if you want to run test_foo_simple(), test_bar_simple(), and test_foo_using_bar() in that order, they should have test paths like "/simple/foo", "/simple/bar", "/complex/foo-using-bar", not "/foo/simple", "/bar/simple", "/foo/using-bar" (which would result in test_foo_using_bar() running before test_bar_simple()). (The behavior actually changed in GLib 2.36, but it was not documented at the time, since we didn't realize it mattered.) Notes about GLib 2.36 ===================== * It is no longer necessary to call g_type_init(). If you are loading GLib as a dynamic module, you should be careful to avoid unloading it, then subsequently loading it again. This never really worked before, but it is now explicitly undefined behavior. Note that if g_type_init() was the only explicit use of a GObject API and you are using linker flags such as --no-add-needed, then you may have to artificially use some GObject call to keep the linker from optimizing away -lgobject. We recommend to use g_type_ensure (G_TYPE_OBJECT) for this purpose. * This release contains an incompatible change to the g_get_home_dir() function. Previously, this function would effectively ignore the HOME environment variable and always return the value from /etc/password. As of this version, the HOME variable is used if it is set and the value from /etc/passwd is only used as a fallback. * The 'flowinfo' and 'scope_id' fields of GInetSocketAddress (introduced in GLib 2.32) have been fixed to be in host byte order rather than network byte order. This is an incompatible change, but the previous behavior was clearly broken, so it seems unlikely that anyone was using it. Notes about GLib 2.34 ===================== * GIO now looks for thumbnails in XDG_CACHE_HOME, following a recent alignment of the thumbnail spec with the basedir spec. * The default values for GThreadPools max_unused_threads and max_idle_time settings have been changed to 2 and 15*1000, respectively. Notes about GLib 2.32 ===================== * It is no longer necessary to use g_thread_init() or to link against libgthread. libglib is now always thread-enabled. Custom thread system implementations are no longer supported (including errorcheck mutexes). * The thread and synchronisation APIs have been updated. GMutex and GCond can be statically allocated without explicit initialisation, as can new types GRWLock and GRecMutex. The GStatic_______ variants of these types have been deprecated. GPrivate can also be statically allocated and has a nicer API (deprecating GStaticPrivate). Finally, g_thread_create() has been replaced with a substantially simplified g_thread_new(). * The g_once_init_enter()/_leave() functions have been replaced with macros that allow for a pointer to any gsize-sized object, not just a gsize*. The assertions to ensure that a pointer to a correctly-sized object is being used will not work with generic pointers (ie: (void*) and (gpointer) casts) which would have worked with the old version. * It is now mandatory to include glib.h instead of individual headers. * The -uninstalled variants of the pkg-config files have been dropped. * For a long time, gobject-2.0.pc mistakenly declared a public dependency on gthread-2.0.pc (when the dependency should have been private). This means that programs got away with calling g_thread_init() without explicitly listing gthread-2.0.pc among their dependencies. gthread has now been removed as a gobject dependency, which will cause such programs to break. The fix for this problem is either to declare an explicit dependency on gthread-2.0.pc (if you care about compatibility with older GLib versions) or to stop calling g_thread_init(). * g_debug() output is no longer enabled by default. It can be enabled on a per-domain basis with the G_MESSAGES_DEBUG environment variable like G_MESSAGES_DEBUG=domain1,domain2 or G_MESSAGES_DEBUG=all Notes about GLib 2.30 ===================== * GObject includes a generic marshaller, g_cclosure_marshal_generic. To use it, simply specify NULL as the marshaller in g_signal_new(). The generic marshaller is implemented with libffi, and consequently GObject depends on libffi now. Notes about GLib 2.28 ===================== * The GApplication API has changed compared to the version that was included in the 2.25 development snapshots. Existing users will need adjustments. Notes about GLib 2.26 ===================== * Nothing noteworthy. Notes about GLib 2.24 ===================== * It is now allowed to call g_thread_init(NULL) multiple times, and to call glib functions before g_thread_init(NULL) is called (although the later is mainly a change in docs as this worked before too). See the GThread reference documentation for the details. * GObject now links to GThread and threads are enabled automatically when g_type_init() is called. * GObject no longer allows to call g_object_set() on construct-only properties while an object is being initialized. If this behavior is needed, setting a custom constructor that just chains up will re-enable this functionality. * GMappedFile on an empty file now returns NULL for the contents instead of returning an empty string. The documentation specifically states that code may not rely on nul-termination here so any breakage caused by this change is a bug in application code. Notes about GLib 2.22 ===================== * Repeated calls to g_simple_async_result_set_op_res_gpointer used to leak the data. This has been fixed to always call the provided destroy notify. Notes about GLib 2.20 ===================== * The functions for launching applications (e.g. g_app_info_launch() + friends) now passes a FUSE file:// URI if possible (requires gvfs with the FUSE daemon to be running and operational). With gvfs 2.26, FUSE file:// URIs will be mapped back to gio URIs in the GFile constructors. The intent of this change is to better integrate POSIX-only applications, see bug #528670 for the rationale. The only user-visible change is when an application needs to examine an URI passed to it (e.g. as a positional parameter). Instead of looking at the given URI, the application will now need to look at the result of g_file_get_uri() after having constructed a GFile object with the given URI. Notes about GLib 2.18 ===================== * The recommended way of using GLib has always been to only include the toplevel headers glib.h, glib-object.h and gio.h. GLib enforces this by generating an error when individual headers are directly included. To help with the transition, the enforcement is not turned on by default for GLib headers (it is turned on for GObject and GIO). To turn it on, define the preprocessor symbol G_DISABLE_SINGLE_INCLUDES. Notes about GLib 2.16 ===================== * GLib now includes GIO, which adds optional dependencies against libattr and libselinux for extended attribute and SELinux support. Use --disable-xattr and --disable-selinux to build without these. Notes about GLib 2.10 ===================== * The functions g_snprintf() and g_vsnprintf() have been removed from the gprintf.h header, since they are already declared in glib.h. This doesn't break documented use of gprintf.h, but people have been known to include gprintf.h without including glib.h. * The Unicode support has been updated to Unicode 4.1. This adds several new members to the GUnicodeBreakType enumeration. * The support for Solaris threads has been retired. Solaris has provided POSIX threads for long enough now to have them available on every Solaris platform. * 'make check' has been changed to validate translations by calling msgfmt with the -c option. As a result, it may fail on systems with older gettext implementations (GNU gettext < 0.14.1, or Solaris gettext). 'make check' will also fail on systems where the C compiler does not support ELF visibility attributes. * The GMemChunk API has been deprecated in favour of a new 'slice allocator'. See the g_slice documentation for more details. * A new type, GInitiallyUnowned, has been introduced, which is intended to serve as a common implementation of the 'floating reference' concept that is e.g. used by GtkObject. Note that changing the inheritance hierarchy of a type can cause problems for language bindings and other code which needs to work closely with the type system. Therefore, switching to GInitiallyUnowned should be done carefully. g_object_compat_control() has been added to GLib 2.8.5 to help with the transition. Notes about GLib 2.6.0 ====================== * GLib 2.6 introduces the concept of 'GLib filename encoding', which is the on-disk encoding on Unix, but UTF-8 on Windows. All GLib functions returning or accepting pathnames have been changed to expect filenames in this encoding, and the common POSIX functions dealing with pathnames have been wrapped. These wrappers are declared in the header which must be included explicitly; it is not included through . On current (NT-based) Windows versions, where the on-disk file names are Unicode, these wrappers use the wide-character API in the C library. Thus applications can handle file names containing any Unicode characters through GLib's own API and its POSIX wrappers, not just file names restricted to characters in the system codepage. To keep binary compatibility with applications compiled against older versions of GLib, the Windows DLL still provides entry points with the old semantics using the old names, and applications compiled against GLib 2.6 will actually use new names for the functions. This is transparent to the programmer. When compiling against GLib 2.6, applications intended to be portable to Windows must take the UTF-8 file name encoding into consideration, and use the gstdio wrappers to access files whose names have been constructed from strings returned from GLib. * Likewise, g_get_user_name() and g_get_real_name() have been changed to return UTF-8 on Windows, while keeping the old semantics for applications compiled against older versions of GLib. * The GLib uses an '_' prefix to indicate private symbols that must not be used by applications. On some platforms, symbols beginning with prefixes such as _g will be exported from the library, on others not. In no case can applications use these private symbols. In addition to that, GLib+ 2.6 makes several symbols private which were not in any installed header files and were never intended to be exported. * To reduce code size and improve efficiency, GLib, when compiled with the GNU toolchain, has separate internal and external entry points for exported functions. The internal names, which begin with IA__, may be seen when debugging a GLib program. * On Windows, GLib no longer opens a console window when printing warning messages if stdout or stderr are invalid, as they are in "Windows subsystem" (GUI) applications. Simply redirect stdout or stderr if you need to see them. * The child watch functionality tends to reveal a bug in many thread implementations (in particular the older LinuxThreads implementation on Linux) where it's not possible to call waitpid() for a child created in a different thread. For this reason, for maximum portability, you should structure your code to fork all child processes that you want to wait for from the main thread. * A problem was recently discovered with g_signal_connect_object(); it doesn't actually disconnect the signal handler once the object being connected to dies, just disables it. See the API docs for the function for further details and the correct workaround that will continue to work with future versions of GLib. usr/share/doc/openldap/README000064400000006646152525734350011735 0ustar00OpenLDAP 2.4 README For a description of what this distribution contains, see the ANNOUNCEMENT file in this directory. For a description of changes from previous releases, see the CHANGES file in this directory. This is 2.4 release, it includes significant changes from prior releases. REQUIRED SOFTWARE Building OpenLDAP Software requires a number of software packages to be preinstalled. Additional information regarding prerequisite software can be found in the OpenLDAP Administrator's Guide. Base system (libraries and tools): Standard C compiler (required) Cyrus SASL 2.1.21+ (recommended) OpenSSL 0.9.7+ (recommended) Reentrant POSIX REGEX software (required) SLAPD: BDB and HDB backends require Oracle Berkeley DB 4.4 - 4.8, or 5.0 - 5.1. It is highly recommended to apply the patches from Oracle for a given release. CLIENTS/CONTRIB ware: Depends on package. See per package README. MAKING AND INSTALLING THE DISTRIBUTION Please see the INSTALL file for basic instructions. More detailed instructions can be found in the OpenLDAP Admnistrator's Guide (see DOCUMENTATION section). DOCUMENTATION The OpenLDAP Administrator's Guide is available in the guide.html file in the doc/guide/admin directory. The guide and a number of other documents are available at . The distribution also includes manual pages for most programs and library APIs. See ldap(3) for details. The OpenLDAP website is available and contains the latest LDAP news, releases announcements, pointers to other LDAP resources, etc.. It is located at . The OpenLDAP Software FAQ is available at . SUPPORT / FEEDBACK / PROBLEM REPORTS / DISCUSSIONS OpenLDAP Software is user supported. If you have problems, please review the OpenLDAP FAQ and archives of the OpenLDAP-software and OpenLDAP-bugs mailing lists . If you cannot find the answer, please enquire on the OpenLDAP-software list. Issues, such as bug reports, should be reported using our Issue Tracking System . Do not use this system for software enquiries. Please direct these to an appropriate mailing list. CONTRIBUTING See for information regarding how to contribute code or documentation to the OpenLDAP Project for inclusion in OpenLDAP Software. While you are encouraged to coordinate and discuss the development activities on the mailing list prior to submission, it is noted that contributions must be submitted using the Issue Tracking System to be considered. --- $OpenLDAP$ This work is part of OpenLDAP Software . Copyright 1998-2018 The OpenLDAP Foundation. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted only as authorized by the OpenLDAP Public License. A copy of this license is available in the file LICENSE in the top-level directory of the distribution or, alternatively, at . OpenLDAP is a registered trademark of the OpenLDAP Foundation. usr/share/doc/bc/README000064400000006702152525736270010513 0ustar00GNU bc version 1.07: Extra configuration options: --with-readline tells bc to use the readline package that allows for editing input lines when run interactive. --with-editline tells bc to use the BSD editline package that allows for editing input lines when run interactive. Extra make steps: The simple make compiles a version of bc with fixed parameters for the recursive multiplication algorithm. The fixed parameter is the number of digits where a sequential algorithm is used instead of the recursive algorithm. It is set to a value that is known good on a couple of machines. (Sparc Ultra 10, Pentium II, 450.) I'm calling this point the crossover point. To make a version of bc with a custom crossover point for your machine, do the following steps: make timetest make The timetest step takes a minimum of 10 minutes to complete. -------- Original comp.sources.reviewed README -------- Program: GNU bc Author: Philip A. Nelson E-mail: phil@cs.wwu.edu OS: UNIX (BSD, System V, MINIX, POSIX) Copying: GNU GPL version 2 Copyright holder: Free Software Foundation, Inc. Version: bc version 1.01 Required: vsprintf and vfprintf routines. Machines: It has been compiled and run on the following environments: BSD4.3 (VAX 11) MINIX 1.5 (IBM PC, both K&R and ANSI compilers) MINIX 1.5 (pc532) SUN-OS 4.1 (SUN 3 and SUN 4) SVR3V5 (Motorola 68K) SVR3.2 (3B2) SVR4.0.2 (a 386 box) ULTRIX 4.1 (DEC 5000) UTS (Amdahl) bc is an arbitrary precision numeric processing language. Syntax is similar to C, but differs in many substantial areas. It supports interactive execution of statements. bc is a utility included in the POSIX P1003.2/D11 draft standard. This version was written to be a POSIX compliant bc processor with several extensions to the draft standard. Option flags are available to cause warning or rejection of the extensions to the POSIX standard. For those who want only POSIX bc with no extensions, a grammar is provided for exactly the language described in the POSIX document. The grammar (sbc.y) comes from the POSIX document. The Makefile contains rules to make sbc. (for Standard BC) Since the POSIX document does not specify how bc must be implemented, this version does not use the historical method of having bc be a compiler for the dc calculator. This version has a single executable that both compiles the language and runs the a resulting "byte code". The "byte code" is NOT the dc language. Also, included in the initial distribution is the library file vfprintf.c for MINIX systems. My minix 1.5 did not have this file. Also, you should verify that vsprintf.c works correctly on your system. The extensions add some features I think are missing. The major changes and additions for bc are (a) names are allowed to be full identifiers ([a-z][a-z0-9_]*), (b) addition of the &&, ||, and ! operators, (c) allowing comparison and boolean operations in any expression, (d) addition of an else clause to the if statement, (e) addition of a new standard function "read()" that reads a number from the standard input under program control, (f) passing of arrays as parameters by variable, (g) addition of the "halt" statement that is an executable statement unlike the quit (i.e. "if (1 == 0) quit" will halt bc but "if (1 == 0) halt" will not halt bc.), and (h) the addition of the special variable "last" that is assigned the value of each print as the number is printed. ----------------------------------------------------------------------- usr/share/doc/libmd/README000064400000001432152525771360011210 0ustar00libmd - Message Digest functions from BSD systems This library provides message digest functions found on BSD systems either on their libc or libmd libraries and lacking on others like GNU systems, thus making it easier to port projects with strong BSD origins, without needing to embed the same code over and over again on each project. Website ------- The project website can be found at: Releases -------- Source Repository ----------------- Mailing List ------------ The subscription interface and web archives can be found at: The mail address is: libbsd@lists.freedesktop.org usr/share/doc/binutils/README000064400000003267152526004250011746 0ustar00 README for GNU development tools This directory contains various GNU compilers, assemblers, linkers, debuggers, etc., plus their support routines, definitions, and documentation. If you are receiving this as part of a GDB release, see the file gdb/README. If with a binutils release, see binutils/README; if with a libg++ release, see libg++/README, etc. That'll give you info about this package -- supported targets, how to use it, how to report bugs, etc. It is now possible to automatically configure and build a variety of tools with one command. To build all of the tools contained herein, run the ``configure'' script here, e.g.: ./configure make To install them (by default in /usr/local/bin, /usr/local/lib, etc), then do: make install (If the configure script can't determine your type of computer, give it the name as an argument, for instance ``./configure sun4''. You can use the script ``config.sub'' to test whether a name is recognized; if it is, config.sub translates it to a triplet specifying CPU, vendor, and OS.) If you have more than one compiler on your system, it is often best to explicitly set CC in the environment before running configure, and to also set CC when running make. For example (assuming sh/bash/ksh): CC=gcc ./configure make A similar example using csh: setenv CC gcc ./configure make Much of the code and documentation enclosed is copyright by the Free Software Foundation, Inc. See the file COPYING or COPYING.LIB in the various directories, for a description of the GNU General Public License terms under which you can copy the files. REPORTING BUGS: Again, see gdb/README, binutils/README, etc., for info on where and how to report problems. usr/share/doc/iftop/README000064400000002464152526360300011235 0ustar00README for iftop $Id: README,v 1.8 2003/06/06 22:42:34 pdw Exp $ Read the INSTALL file, manual page and source code for more information. iftop must be run as root. KNOWN ISSUES RedHat 7.2: There is a bug in the version of ncurses distibuted with RedHat 7.2 that will cause iftop to segfault. The RPM in RedHat's Rawhide distribution fixes this. Slackware 8.1: You may need to upgrade your libpcap (by updating the tcpdump package) in order to compile iftop. FreeBSD 4.7: This version of FreeBSD lacks a proper gethostbyaddr_r function. You should choose an alternative name resolution technique using the --with-resolver=... option to configure. Solaris: On Solaris, iftop has to run in promiscuous mode in order to capture outgoing packets. iftop autoconfigures to run in promiscuous mode on Solaris, but will filter out non-broadcast packets which are not addressed to or from localhost. On Solaris, the -p option merely disables that filter. If you have some other sort of system that behaves like Solaris in needing promiscuous mode, you can pass --enable-default-promiscuous to configure to enable this behavior. Cf. http://www.tcpdump.org/lists/workers/2002/02/msg00010.html The version of curses distributed with Solaris may not be sufficient for iftop's needs. You will probably need ncurses or similar. usr/share/doc/bzip2/README000064400000016636152526403330011151 0ustar00 This is the README for bzip2/libzip2. This version is fully compatible with the previous public releases. ------------------------------------------------------------------ This file is part of bzip2/libbzip2, a program and library for lossless, block-sorting data compression. bzip2/libbzip2 version 1.0.6 of 6 September 2010 Copyright (C) 1996-2010 Julian Seward Please read the WARNING, DISCLAIMER and PATENTS sections in this file. This program is released under the terms of the license contained in the file LICENSE. ------------------------------------------------------------------ Complete documentation is available in Postscript form (manual.ps), PDF (manual.pdf) or html (manual.html). A plain-text version of the manual page is available as bzip2.txt. HOW TO BUILD -- UNIX Type 'make'. This builds the library libbz2.a and then the programs bzip2 and bzip2recover. Six self-tests are run. If the self-tests complete ok, carry on to installation: To install in /usr/local/bin, /usr/local/lib, /usr/local/man and /usr/local/include, type make install To install somewhere else, eg, /xxx/yyy/{bin,lib,man,include}, type make install PREFIX=/xxx/yyy If you are (justifiably) paranoid and want to see what 'make install' is going to do, you can first do make -n install or make -n install PREFIX=/xxx/yyy respectively. The -n instructs make to show the commands it would execute, but not actually execute them. HOW TO BUILD -- UNIX, shared library libbz2.so. Do 'make -f Makefile-libbz2_so'. This Makefile seems to work for Linux-ELF (RedHat 7.2 on an x86 box), with gcc. I make no claims that it works for any other platform, though I suspect it probably will work for most platforms employing both ELF and gcc. bzip2-shared, a client of the shared library, is also built, but not self-tested. So I suggest you also build using the normal Makefile, since that conducts a self-test. A second reason to prefer the version statically linked to the library is that, on x86 platforms, building shared objects makes a valuable register (%ebx) unavailable to gcc, resulting in a slowdown of 10%-20%, at least for bzip2. Important note for people upgrading .so's from 0.9.0/0.9.5 to version 1.0.X. All the functions in the library have been renamed, from (eg) bzCompress to BZ2_bzCompress, to avoid namespace pollution. Unfortunately this means that the libbz2.so created by Makefile-libbz2_so will not work with any program which used an older version of the library. I do encourage library clients to make the effort to upgrade to use version 1.0, since it is both faster and more robust than previous versions. HOW TO BUILD -- Windows 95, NT, DOS, Mac, etc. It's difficult for me to support compilation on all these platforms. My approach is to collect binaries for these platforms, and put them on the master web site (http://www.bzip.org). Look there. However (FWIW), bzip2-1.0.X is very standard ANSI C and should compile unmodified with MS Visual C. If you have difficulties building, you might want to read README.COMPILATION.PROBLEMS. At least using MS Visual C++ 6, you can build from the unmodified sources by issuing, in a command shell: nmake -f makefile.msc (you may need to first run the MSVC-provided script VCVARS32.BAT so as to set up paths to the MSVC tools correctly). VALIDATION Correct operation, in the sense that a compressed file can always be decompressed to reproduce the original, is obviously of paramount importance. To validate bzip2, I used a modified version of Mark Nelson's churn program. Churn is an automated test driver which recursively traverses a directory structure, using bzip2 to compress and then decompress each file it encounters, and checking that the decompressed data is the same as the original. Please read and be aware of the following: WARNING: This program and library (attempts to) compress data by performing several non-trivial transformations on it. Unless you are 100% familiar with *all* the algorithms contained herein, and with the consequences of modifying them, you should NOT meddle with the compression or decompression machinery. Incorrect changes can and very likely *will* lead to disastrous loss of data. DISCLAIMER: I TAKE NO RESPONSIBILITY FOR ANY LOSS OF DATA ARISING FROM THE USE OF THIS PROGRAM/LIBRARY, HOWSOEVER CAUSED. Every compression of a file implies an assumption that the compressed file can be decompressed to reproduce the original. Great efforts in design, coding and testing have been made to ensure that this program works correctly. However, the complexity of the algorithms, and, in particular, the presence of various special cases in the code which occur with very low but non-zero probability make it impossible to rule out the possibility of bugs remaining in the program. DO NOT COMPRESS ANY DATA WITH THIS PROGRAM UNLESS YOU ARE PREPARED TO ACCEPT THE POSSIBILITY, HOWEVER SMALL, THAT THE DATA WILL NOT BE RECOVERABLE. That is not to say this program is inherently unreliable. Indeed, I very much hope the opposite is true. bzip2/libbzip2 has been carefully constructed and extensively tested. PATENTS: To the best of my knowledge, bzip2/libbzip2 does not use any patented algorithms. However, I do not have the resources to carry out a patent search. Therefore I cannot give any guarantee of the above statement. WHAT'S NEW IN 0.9.0 (as compared to 0.1pl2) ? * Approx 10% faster compression, 30% faster decompression * -t (test mode) is a lot quicker * Can decompress concatenated compressed files * Programming interface, so programs can directly read/write .bz2 files * Less restrictive (BSD-style) licensing * Flag handling more compatible with GNU gzip * Much more documentation, i.e., a proper user manual * Hopefully, improved portability (at least of the library) WHAT'S NEW IN 0.9.5 ? * Compression speed is much less sensitive to the input data than in previous versions. Specifically, the very slow performance caused by repetitive data is fixed. * Many small improvements in file and flag handling. * A Y2K statement. WHAT'S NEW IN 1.0.0 ? See the CHANGES file. WHAT'S NEW IN 1.0.2 ? See the CHANGES file. WHAT'S NEW IN 1.0.3 ? See the CHANGES file. WHAT'S NEW IN 1.0.4 ? See the CHANGES file. WHAT'S NEW IN 1.0.5 ? See the CHANGES file. WHAT'S NEW IN 1.0.6 ? See the CHANGES file. I hope you find bzip2 useful. Feel free to contact me at jseward@bzip.org if you have any suggestions or queries. Many people mailed me with comments, suggestions and patches after the releases of bzip-0.15, bzip-0.21, and bzip2 versions 0.1pl2, 0.9.0, 0.9.5, 1.0.0, 1.0.1, 1.0.2 and 1.0.3, and the changes in bzip2 are largely a result of this feedback. I thank you for your comments. bzip2's "home" is http://www.bzip.org/ Julian Seward jseward@bzip.org Cambridge, UK. 18 July 1996 (version 0.15) 25 August 1996 (version 0.21) 7 August 1997 (bzip2, version 0.1) 29 August 1997 (bzip2, version 0.1pl2) 23 August 1998 (bzip2, version 0.9.0) 8 June 1999 (bzip2, version 0.9.5) 4 Sept 1999 (bzip2, version 0.9.5d) 5 May 2000 (bzip2, version 1.0pre8) 30 December 2001 (bzip2, version 1.0.2pre1) 15 February 2005 (bzip2, version 1.0.3) 20 December 2006 (bzip2, version 1.0.4) 10 December 2007 (bzip2, version 1.0.5) 6 Sept 2010 (bzip2, version 1.0.6) usr/share/doc/wget/README000064400000007731152526417520011073 0ustar00 -*- text -*- GNU Wget ======== Current Web home: https://www.gnu.org/software/wget/ GNU Wget is a free utility for non-interactive download of files from the Web. It supports HTTP, HTTPS, and FTP protocols, as well as retrieval through HTTP proxies. It can follow links in HTML pages and create local versions of remote web sites, fully recreating the directory structure of the original site. This is sometimes referred to as "recursive downloading." While doing that, Wget respects the Robot Exclusion Standard (/robots.txt). Wget can be instructed to convert the links in downloaded HTML files to the local files for offline viewing. Recursive downloading also works with FTP, where Wget can retrieves a hierarchy of directories and files. With both HTTP and FTP, Wget can check whether a remote file has changed on the server since the previous run, and only download the newer files. Wget has been designed for robustness over slow or unstable network connections; if a download fails due to a network problem, it will keep retrying until the whole file has been retrieved. If the server supports regetting, it will instruct the server to continue the download from where it left off. If you are behind a firewall that requires the use of a socks style gateway, you can get the socks library and compile wget with support for socks. Most of the features are configurable, either through command-line options, or via initialization file .wgetrc. Wget allows you to install a global startup file (/etc/wgetrc by default) for site settings. Wget works under almost all Unix variants in use today and, unlike many of its historical predecessors, is written entirely in C, thus requiring no additional software, such as Perl. The external software it does work with, such as OpenSSL, is optional. As Wget uses the GNU Autoconf, it is easily built on and ported to new Unix-like systems. The installation procedure is described in the INSTALL file. As with other GNU software, the latest version of Wget can be found at the master GNU archive site ftp.gnu.org, and its mirrors. Wget resides at . Please report bugs in Wget to . See the file `MAILING-LIST' for information about Wget mailing lists. Wget's home page is at . If you would like to contribute code for Wget, please read https://wget.addictivecode.org/PatchGuidelines. Wget was originally written and mainained by Hrvoje Niksic. Please see the file AUTHORS for a list of major contributors, and the ChangeLogs for a detailed listing of all contributions. Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. Additional permission under GNU GPL version 3 section 7 If you modify this program, or any covered work, by linking or combining it with the OpenSSL project's OpenSSL library (or a modified version of that library), containing parts covered by the terms of the OpenSSL or SSLeay licenses, the Free Software Foundation grants you additional permission to convey the resulting work. Corresponding Source for a non-source form of such a combination shall include the source code for the parts of OpenSSL used as well as that of the covered work. usr/share/doc/nload/README000064400000003761152526417770011230 0ustar00nload 0.7.3 (2011-06-12) real time monitor for network traffic Copyright (C) 2001 - 2011 by Roland Riegel 1. Introduction ------------ This is version 0.7.3 of nload, a console application which monitors network traffic and bandwidth usage in real time. It visualizes the in- and outgoing traffic using two graphs and provides additional info like total amount of transfered data and min/max network usage. 2. Installing / Compiling nload ---------------------------- Compiling is done by running ./configure make in the directory where this README is. To install nload, you have to be root: su make install You can find more detailed information in the file INSTALL in this directory. 3. Using nload ----------- To learn about the command line switches and the usage of nload in general, simply run: nload --help Alternatively, there is a nload man page available by typing: man nload 4. Uninstalling nload ------------------ If you want to uninstall nload (I hope you never want to ;-), run: make uninstall in the build directory. 5. Getting help ------------ If you have problems with compiling, installing or using nload, you may mail me to feedback@roland-riegel.de. 6. Copyright / License ------------------- Copyright (C) 2001 - 2011 by Roland Riegel 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. usr/share/doc/perl-HTTP-Tiny/README000064400000053570152526421610012562 0ustar00NAME HTTP::Tiny - A small, simple, correct HTTP/1.1 client VERSION version 0.074 SYNOPSIS use HTTP::Tiny; my $response = HTTP::Tiny->new->get('http://example.com/'); die "Failed!\n" unless $response->{success}; print "$response->{status} $response->{reason}\n"; while (my ($k, $v) = each %{$response->{headers}}) { for (ref $v eq 'ARRAY' ? @$v : $v) { print "$k: $_\n"; } } print $response->{content} if length $response->{content}; DESCRIPTION This is a very simple HTTP/1.1 client, designed for doing simple requests without the overhead of a large framework like LWP::UserAgent. It is more correct and more complete than HTTP::Lite. It supports proxies and redirection. It also correctly resumes after EINTR. If IO::Socket::IP 0.25 or later is installed, HTTP::Tiny will use it instead of IO::Socket::INET for transparent support for both IPv4 and IPv6. Cookie support requires HTTP::CookieJar or an equivalent class. METHODS new $http = HTTP::Tiny->new( %attributes ); This constructor returns a new HTTP::Tiny object. Valid attributes include: * "agent" — A user-agent string (defaults to 'HTTP-Tiny/$VERSION'). If "agent" — ends in a space character, the default user-agent string is appended. * "cookie_jar" — An instance of HTTP::CookieJar — or equivalent class that supports the "add" and "cookie_header" methods * "default_headers" — A hashref of default headers to apply to requests * "local_address" — The local IP address to bind to * "keep_alive" — Whether to reuse the last connection (if for the same scheme, host and port) (defaults to 1) * "max_redirect" — Maximum number of redirects allowed (defaults to 5) * "max_size" — Maximum response size in bytes (only when not using a data callback). If defined, responses larger than this will return an exception. * "http_proxy" — URL of a proxy server to use for HTTP connections (default is $ENV{http_proxy} — if set) * "https_proxy" — URL of a proxy server to use for HTTPS connections (default is $ENV{https_proxy} — if set) * "proxy" — URL of a generic proxy server for both HTTP and HTTPS connections (default is $ENV{all_proxy} — if set) * "no_proxy" — List of domain suffixes that should not be proxied. Must be a comma-separated string or an array reference. (default is $ENV{no_proxy} —) * "timeout" — Request timeout in seconds (default is 60) If a socket open, read or write takes longer than the timeout, an exception is thrown. * "verify_SSL" — A boolean that indicates whether to validate the SSL certificate of an "https" — connection (default is false) * "SSL_options" — A hashref of "SSL_*" — options to pass through to IO::Socket::SSL Passing an explicit "undef" for "proxy", "http_proxy" or "https_proxy" will prevent getting the corresponding proxies from the environment. Exceptions from "max_size", "timeout" or other errors will result in a pseudo-HTTP status code of 599 and a reason of "Internal Exception". The content field in the response will contain the text of the exception. The "keep_alive" parameter enables a persistent connection, but only to a single destination scheme, host and port. Also, if any connection-relevant attributes are modified, or if the process ID or thread ID change, the persistent connection will be dropped. If you want persistent connections across multiple destinations, use multiple HTTP::Tiny objects. See "SSL SUPPORT" for more on the "verify_SSL" and "SSL_options" attributes. get|head|put|post|delete $response = $http->get($url); $response = $http->get($url, \%options); $response = $http->head($url); These methods are shorthand for calling "request()" for the given method. The URL must have unsafe characters escaped and international domain names encoded. See "request()" for valid options and a description of the response. The "success" field of the response will be true if the status code is 2XX. post_form $response = $http->post_form($url, $form_data); $response = $http->post_form($url, $form_data, \%options); This method executes a "POST" request and sends the key/value pairs from a form data hash or array reference to the given URL with a "content-type" of "application/x-www-form-urlencoded". If data is provided as an array reference, the order is preserved; if provided as a hash reference, the terms are sorted on key and value for consistency. See documentation for the "www_form_urlencode" method for details on the encoding. The URL must have unsafe characters escaped and international domain names encoded. See "request()" for valid options and a description of the response. Any "content-type" header or content in the options hashref will be ignored. The "success" field of the response will be true if the status code is 2XX. mirror $response = $http->mirror($url, $file, \%options) if ( $response->{success} ) { print "$file is up to date\n"; } Executes a "GET" request for the URL and saves the response body to the file name provided. The URL must have unsafe characters escaped and international domain names encoded. If the file already exists, the request will include an "If-Modified-Since" header with the modification timestamp of the file. You may specify a different "If-Modified-Since" header yourself in the "$options->{headers}" hash. The "success" field of the response will be true if the status code is 2XX or if the status code is 304 (unmodified). If the file was modified and the server response includes a properly formatted "Last-Modified" header, the file modification time will be updated accordingly. request $response = $http->request($method, $url); $response = $http->request($method, $url, \%options); Executes an HTTP request of the given method type ('GET', 'HEAD', 'POST', 'PUT', etc.) on the given URL. The URL must have unsafe characters escaped and international domain names encoded. NOTE: Method names are case-sensitive per the HTTP/1.1 specification. Don't use "get" when you really want "GET". See LIMITATIONS for how this applies to redirection. If the URL includes a "user:password" stanza, they will be used for Basic-style authorization headers. (Authorization headers will not be included in a redirected request.) For example: $http->request('GET', 'http://Aladdin:open sesame@example.com/'); If the "user:password" stanza contains reserved characters, they must be percent-escaped: $http->request('GET', 'http://john%40example.com:password@example.com/'); A hashref of options may be appended to modify the request. Valid options are: * "headers" — A hashref containing headers to include with the request. If the value for a header is an array reference, the header will be output multiple times with each value in the array. These headers over-write any default headers. * "content" — A scalar to include as the body of the request OR a code reference that will be called iteratively to produce the body of the request * "trailer_callback" — A code reference that will be called if it exists to provide a hashref of trailing headers (only used with chunked transfer-encoding) * "data_callback" — A code reference that will be called for each chunks of the response body received. * "peer" — Override host resolution and force all connections to go only to a specific peer address, regardless of the URL of the request. This will include any redirections! This options should be used with extreme caution (e.g. debugging or very special circumstances). The "Host" header is generated from the URL in accordance with RFC 2616. It is a fatal error to specify "Host" in the "headers" option. Other headers may be ignored or overwritten if necessary for transport compliance. If the "content" option is a code reference, it will be called iteratively to provide the content body of the request. It should return the empty string or undef when the iterator is exhausted. If the "content" option is the empty string, no "content-type" or "content-length" headers will be generated. If the "data_callback" option is provided, it will be called iteratively until the entire response body is received. The first argument will be a string containing a chunk of the response body, the second argument will be the in-progress response hash reference, as described below. (This allows customizing the action of the callback based on the "status" or "headers" received prior to the content body.) The "request" method returns a hashref containing the response. The hashref will have the following keys: * "success" — Boolean indicating whether the operation returned a 2XX status code * "url" — URL that provided the response. This is the URL of the request unless there were redirections, in which case it is the last URL queried in a redirection chain * "status" — The HTTP status code of the response * "reason" — The response phrase returned by the server * "content" — The body of the response. If the response does not have any content or if a data callback is provided to consume the response body, this will be the empty string * "headers" — A hashref of header fields. All header field names will be normalized to be lower case. If a header is repeated, the value will be an arrayref; it will otherwise be a scalar string containing the value * "protocol" - If this field exists, it is the protocol of the response such as HTTP/1.0 or HTTP/1.1 * "redirects" If this field exists, it is an arrayref of response hash references from redirects in the same order that redirections occurred. If it does not exist, then no redirections occurred. On an exception during the execution of the request, the "status" field will contain 599, and the "content" field will contain the text of the exception. www_form_urlencode $params = $http->www_form_urlencode( $data ); $response = $http->get("http://example.com/query?$params"); This method converts the key/value pairs from a data hash or array reference into a "x-www-form-urlencoded" string. The keys and values from the data reference will be UTF-8 encoded and escaped per RFC 3986. If a value is an array reference, the key will be repeated with each of the values of the array reference. If data is provided as a hash reference, the key/value pairs in the resulting string will be sorted by key and value for consistent ordering. can_ssl $ok = HTTP::Tiny->can_ssl; ($ok, $why) = HTTP::Tiny->can_ssl; ($ok, $why) = $http->can_ssl; Indicates if SSL support is available. When called as a class object, it checks for the correct version of Net::SSLeay and IO::Socket::SSL. When called as an object methods, if "SSL_verify" is true or if "SSL_verify_mode" is set in "SSL_options", it checks that a CA file is available. In scalar context, returns a boolean indicating if SSL is available. In list context, returns the boolean and a (possibly multi-line) string of errors indicating why SSL isn't available. connected $host = $http->connected; ($host, $port) = $http->connected; Indicates if a connection to a peer is being kept alive, per the "keep_alive" option. In scalar context, returns the peer host and port, joined with a colon, or "undef" (if no peer is connected). In list context, returns the peer host and port or an empty list (if no peer is connected). Note: This method cannot reliably be used to discover whether the remote host has closed its end of the socket. SSL SUPPORT Direct "https" connections are supported only if IO::Socket::SSL 1.56 or greater and Net::SSLeay 1.49 or greater are installed. An exception will be thrown if new enough versions of these modules are not installed or if the SSL encryption fails. You can also use "HTTP::Tiny::can_ssl()" utility function that returns boolean to see if the required modules are installed. An "https" connection may be made via an "http" proxy that supports the CONNECT command (i.e. RFC 2817). You may not proxy "https" via a proxy that itself requires "https" to communicate. SSL provides two distinct capabilities: * Encrypted communication channel * Verification of server identity By default, HTTP::Tiny does not verify server identity. Server identity verification is controversial and potentially tricky because it depends on a (usually paid) third-party Certificate Authority (CA) trust model to validate a certificate as legitimate. This discriminates against servers with self-signed certificates or certificates signed by free, community-driven CA's such as CAcert.org . By default, HTTP::Tiny does not make any assumptions about your trust model, threat level or risk tolerance. It just aims to give you an encrypted channel when you need one. Setting the "verify_SSL" attribute to a true value will make HTTP::Tiny verify that an SSL connection has a valid SSL certificate corresponding to the host name of the connection and that the SSL certificate has been verified by a CA. Assuming you trust the CA, this will protect against a man-in-the-middle attack . If you are concerned about security, you should enable this option. Certificate verification requires a file containing trusted CA certificates. If the environment variable "SSL_CERT_FILE" is present, HTTP::Tiny will try to find a CA certificate file in that location. If the Mozilla::CA module is installed, HTTP::Tiny will use the CA file included with it as a source of trusted CA's. (This means you trust Mozilla, the author of Mozilla::CA, the CPAN mirror where you got Mozilla::CA, the toolchain used to install it, and your operating system security, right?) If that module is not available, then HTTP::Tiny will search several system-specific default locations for a CA certificate file: * /etc/ssl/certs/ca-certificates.crt * /etc/pki/tls/certs/ca-bundle.crt * /etc/ssl/ca-bundle.pem An exception will be raised if "verify_SSL" is true and no CA certificate file is available. If you desire complete control over SSL connections, the "SSL_options" attribute lets you provide a hash reference that will be passed through to "IO::Socket::SSL::start_SSL()", overriding any options set by HTTP::Tiny. For example, to provide your own trusted CA file: SSL_options => { SSL_ca_file => $file_path, } The "SSL_options" attribute could also be used for such things as providing a client certificate for authentication to a server or controlling the choice of cipher used for the SSL connection. See IO::Socket::SSL documentation for details. PROXY SUPPORT HTTP::Tiny can proxy both "http" and "https" requests. Only Basic proxy authorization is supported and it must be provided as part of the proxy URL: "http://user:pass@proxy.example.com/". HTTP::Tiny supports the following proxy environment variables: * http_proxy or HTTP_PROXY * https_proxy or HTTPS_PROXY * all_proxy or ALL_PROXY If the "REQUEST_METHOD" environment variable is set, then this might be a CGI process and "HTTP_PROXY" would be set from the "Proxy:" header, which is a security risk. If "REQUEST_METHOD" is set, "HTTP_PROXY" (the upper case variant only) is ignored. Tunnelling "https" over an "http" proxy using the CONNECT method is supported. If your proxy uses "https" itself, you can not tunnel "https" over it. Be warned that proxying an "https" connection opens you to the risk of a man-in-the-middle attack by the proxy server. The "no_proxy" environment variable is supported in the format of a comma-separated list of domain extensions proxy should not be used for. Proxy arguments passed to "new" will override their corresponding environment variables. LIMITATIONS HTTP::Tiny is *conditionally compliant* with the HTTP/1.1 specifications : * "Message Syntax and Routing" [RFC7230] * "Semantics and Content" [RFC7231] * "Conditional Requests" [RFC7232] * "Range Requests" [RFC7233] * "Caching" [RFC7234] * "Authentication" [RFC7235] It attempts to meet all "MUST" requirements of the specification, but does not implement all "SHOULD" requirements. (Note: it was developed against the earlier RFC 2616 specification and may not yet meet the revised RFC 7230-7235 spec.) Some particular limitations of note include: * HTTP::Tiny focuses on correct transport. Users are responsible for ensuring that user-defined headers and content are compliant with the HTTP/1.1 specification. * Users must ensure that URLs are properly escaped for unsafe characters and that international domain names are properly encoded to ASCII. See URI::Escape, URI::_punycode and Net::IDN::Encode. * Redirection is very strict against the specification. Redirection is only automatic for response codes 301, 302, 307 and 308 if the request method is 'GET' or 'HEAD'. Response code 303 is always converted into a 'GET' redirection, as mandated by the specification. There is no automatic support for status 305 ("Use proxy") redirections. * There is no provision for delaying a request body using an "Expect" header. Unexpected "1XX" responses are silently ignored as per the specification. * Only 'chunked' "Transfer-Encoding" is supported. * There is no support for a Request-URI of '*' for the 'OPTIONS' request. * Headers mentioned in the RFCs and some other, well-known headers are generated with their canonical case. Other headers are sent in the case provided by the user. Except for control headers (which are sent first), headers are sent in arbitrary order. Despite the limitations listed above, HTTP::Tiny is considered feature-complete. New feature requests should be directed to HTTP::Tiny::UA. SEE ALSO * HTTP::Tiny::UA - Higher level UA features for HTTP::Tiny * HTTP::Thin - HTTP::Tiny wrapper with HTTP::Request/HTTP::Response compatibility * HTTP::Tiny::Mech - Wrap WWW::Mechanize instance in HTTP::Tiny compatible interface * IO::Socket::IP - Required for IPv6 support * IO::Socket::SSL - Required for SSL support * LWP::UserAgent - If HTTP::Tiny isn't enough for you, this is the "standard" way to do things * Mozilla::CA - Required if you want to validate SSL certificates * Net::SSLeay - Required for SSL support SUPPORT Bugs / Feature Requests Please report any bugs or feature requests through the issue tracker at . You will be notified automatically of any progress on your issue. Source Code This is open source software. The code repository is available for public review and contribution under the terms of the license. git clone https://github.com/chansen/p5-http-tiny.git AUTHORS * Christian Hansen * David Golden CONTRIBUTORS * Alan Gardner * Alessandro Ghedini * A. Sinan Unur * Brad Gilbert * brian m. carlson * Chris Nehren * Chris Weyl * Claes Jakobsson * Clinton Gormley * Craig A. Berry * Craig Berry * David Golden * David Mitchell * Dean Pearce * Edward Zborowski * James Raspass * Jeremy Mates * Jess Robinson * Karen Etheridge * Lukas Eklund * Martin J. Evans * Martin-Louis Bright * Mike Doherty * Nicolas Rochelemagne * Olaf Alders * Olivier Mengué * Petr Písař * Serguei Trouchelle * Shoichi Kaji * SkyMarshal * Sören Kornetzki * Steve Grazzini * Syohei YOSHIDA * Tatsuhiko Miyagawa * Tom Hukins * Tony Cook COPYRIGHT AND LICENSE This software is copyright (c) 2018 by Christian Hansen. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. usr/share/doc/keyutils/README000064400000000630152526450640011765 0ustar00These tools are used to control the key management system built into the Linux kernel. To build and install the tools and manual pages, run: make make install If your glibc does not contain definitions for the new error codes and system calls, then try: make NO_GLIBC_KEYERR=1 The tools are licensed under the GPL and the utility library under the LGPL. Copies of these are included in this tarball. usr/lib/firmware/rtw88/README000064400000002345152526473030011626 0ustar00 rtw88 firmware ================ This repository contains firmware images supported by Realtek's wireless driver rtw88. And some of the devices run with more than one firmware file. Basically, a "normal" firmware is necessary to be downloaded to the device. And another is called "wowlan" firmware, it should be loaded when a device is going to suspend. Which means driver will "re-download/swap" the firmware image. The wowlan firmware contains wake up functions that can recognize specific events and send a wake up signal to device if needed, and the system will resume to running state. During resume, driver will then swap the normal firmware back, return to running state. If any distros or platforms do not require wowlan feature, they can _only_ pick the normal firmware. And everything still works fine, except that the device cannot be waken from the wireless NICs. Currently supported devices with corresponding firmwares: RTL8812AU rtw8812a_fw.bin RTL8814AE/RTL8814AU rtw8814a_fw.bin RTL8821AU rtw8821a_fw.bin RTL8822BE rtw8822b_fw.bin RTL8821CE rtw8821c_fw.bin RTL8822CE rtw8822c_fw.bin rtw8822c_wow_fw.bin RTL8723DE rtw8723d_fw.bin RTL8723CS/RTL8703B rtw8703b_fw.bin rtw8703b_wow_fw.bin usr/share/doc/libmetalink/README000064400000002130152526541630012404 0ustar00Libmetalink =========== Libmetalink is a library to read Metalink XML download description format. It supports Metalink version 3 and Metalink version 4 (RFC 5854). Requirements ------------ The following packages are needed to build the library: * pkg-config >= 0.20 * libexpat >= 2.1.0 or libxml2 >= 2.7.8 To build and run the unit test programs, the following packages are needed: cunit >= 2.1 Build from bzr -------------- To build from bzr, run following commands (you need autoconf):: $ autoreconf -i $ automake --add-missing $ autoconf $ ./configure $ make API --- All public APIs are in metalink/metalink_parser.h, metalink/metalink_types.h and metalink/metalink_error.h. Please note that metalink_*_set_*, metalink_*_new and metalink_*_delete functions in metalink/metalink_types.h will be hidden from public API in the future release. The newly written application should not use these functions. The existing applications are advised to stop using these functions. If you want to hold the modified data of Metalink, define application specific data structure for this. usr/lib64/python2.7/Tools/README000064400000003471152526560330012041 0ustar00This directory contains a number of Python programs that are useful while building or extending Python. audiopy Audiopy is a program to control the Solaris audio device, allowing you to choose both the input and output devices, and to set the output volume, that can be run either as a command-line script, or as a Tkinter application. bgen Generate complete extension modules from a description. Still under development! WARNING: bgen has been removed in 3.0. compiler Tools used to maintain the compiler package in the standard library. faqwiz FAQ Wizard. See http://www.python.org/cgi-bin/faqw.py for a live example. freeze Create a stand-alone executable from a Python program. gdb Python code to be run inside gdb, to make it easier to debug Python itself (by David Malcolm). i18n Tools for internationalization. pygettext.py parses Python source code and generates .pot files, and msgfmt.py generates a binary message catalog from a catalog in text format. pynche A Tkinter-based color editor. scripts A number of useful single-file programs, e.g. tabnanny.py by Tim Peters, which checks for inconsistent mixing of tabs and spaces, and 2to3, which converts Python 2 code to Python 3 code. unicode Tools used to generate unicode database files for Python 2.0 (by Fredrik Lundh). versioncheck A tool to automate checking whether you have the latest version of a package (by Jack Jansen). webchecker A link checker for web sites. world Script to take a list of Internet addresses and print out where in the world those addresses originate from, based on the top-level domain country code found in the address. A generic benchmark suite is maintained separately at https://github.com/python/performance usr/share/doc/pango/README000064400000005063152526567720011235 0ustar00Pango is a library for layout and rendering of text, with an emphasis on internationalization. Pango can be used anywhere that text layout is needed; however, most of the work on Pango so far has been done using the GTK+ widget toolkit as a test platform. Pango forms the core of text and font handling for GTK+-2.x. Pango is designed to be modular; the core Pango layout can be used with different font backends. There are three basic backends, with multiple options for rendering with each. - Client side fonts using the FreeType and FontConfig libraries. Rendering can be with with Cairo or Xft libraries, or directly to an in-memory buffer with no additional libraries. - Native fonts on Microsoft Windows using Uniscribe for complex script handling. Rendering can be done via Cairo or directly using the native Win32 API. - Native fonts on MacOS X with the CoreText framework, rendering via Cairo. The integration of Pango with Cairo (http://cairographics.org) provides a complete solution with high quality text handling and graphics rendering. As well as the low level layout rendering routines, Pango includes PangoLayout, a high level driver for laying out entire blocks of text, and routines to assist in editing internationalized text. For more information about Pango, see: http://www.pango.org/ Dependencies ============ Pango depends on the GLib library; more information about GLib can be found at http://www.gtk.org/. To use the Free Software stack backend, Pango depends on the following libraries: * FontConfig for font discovery (http://www.fontconfig.org), * FreeType for font access (http://www.freetype.org), * HarfBuzz for complex text shaping (http://www.harfbuzz.org/) Cairo support depends on the Cairo library (http://cairographics.org). The Cairo backend is the preferred backend to use Pango with and is subject of most of the development in the future. It has the advantage that the same code can be used for display and printing. We suggest using Pango with Cairo as described above, but you can also do X-specific rendering using the Xft library. The Xft backend uses version 2 of the Xft library to manage client side fonts. Version 2 of Xft is available from http://xlibs.freedesktop.org/release/. You'll need the libXft package, and possibly the libXrender and renderext packages as well. You'll also need FontConfig. Installation of Pango on Win32 is possible, see README.win32. License ======= Most of the code of Pango is licensed under the terms of the GNU Lesser Public License (LGPL) - see the file COPYING for details. usr/share/authselect/default/minimal/README000064400000005111152526603410014554 0ustar00Local users only for minimal installations ========================================== Selecting this profile will enable local files as the source of identity and authentication providers. This profile can be used on systems that require minimal installation to save disk and memory space. It serves only local users and groups directly from system files instead of going through other authentication providers. Therefore SSSD, winbind and fprintd packages can be safely removed. Unless this system has strict memory and disk constraints, it is recommended to keep SSSD running and use 'sssd' profile to avoid functional limitations. AVAILABLE OPTIONAL FEATURES --------------------------- with-faillock:: Enable account locking in case of too many consecutive authentication failures. with-mkhomedir:: Enable automatic creation of home directories for users on their first login. with-ecryptfs:: Enable automatic per-user ecryptfs. with-silent-lastlog:: Do not produce pam_lastlog message during login. with-pamaccess:: Check access.conf during account authorization. with-pwhistory:: Enable pam_pwhistory module for local users. with-altfiles:: Use nss_altfiles for passwd and group nsswitch databases. without-nullok:: Do not add nullok parameter to pam_unix. DISABLE SPECIFIC NSSWITCH DATABASES ----------------------------------- Normally, nsswitch databases set by the profile overwrites values set in user-nsswitch.conf. The following options can force authselect to ignore value set by the profile and use the one set in user-nsswitch.conf instead. with-custom-aliases:: Ignore "aliases" map set by the profile. with-custom-automount:: Ignore "automount" map set by the profile. with-custom-ethers:: Ignore "ethers" map set by the profile. with-custom-group:: Ignore "group" map set by the profile. with-custom-hosts:: Ignore "hosts" map set by the profile. with-custom-initgroups:: Ignore "initgroups" map set by the profile. with-custom-netgroup:: Ignore "netgroup" map set by the profile. with-custom-networks:: Ignore "networks" map set by the profile. with-custom-passwd:: Ignore "passwd" map set by the profile. with-custom-protocols:: Ignore "protocols" map set by the profile. with-custom-publickey:: Ignore "publickey" map set by the profile. with-custom-rpc:: Ignore "rpc" map set by the profile. with-custom-services:: Ignore "services" map set by the profile. with-custom-shadow:: Ignore "shadow" map set by the profile. EXAMPLES -------- * Enable minimal profile authselect select minimal SEE ALSO -------- * man passwd(5) * man group(5) usr/share/doc/cairo/README000064400000015311152526677540011225 0ustar00Cairo - Multi-platform 2D graphics library http://cairographics.org What is cairo ============= Cairo is a 2D graphics library with support for multiple output devices. Currently supported output targets include the X Window System (via both Xlib and XCB), quartz, win32, and image buffers, as well as PDF, PostScript, and SVG file output. Experimental backends include OpenGL, BeOS, OS/2, and DirectFB. Cairo is designed to produce consistent output on all output media while taking advantage of display hardware acceleration when available (for example, through the X Render Extension). The cairo API provides operations similar to the drawing operators of PostScript and PDF. Operations in cairo include stroking and filling cubic Bézier splines, transforming and compositing translucent images, and antialiased text rendering. All drawing operations can be transformed by any affine transformation (scale, rotation, shear, etc.). Cairo has been designed to let you draw anything you want in a modern 2D graphical user interface. At the same time, the cairo API has been designed to be as fun and easy to learn as possible. If you're not having fun while programming with cairo, then we have failed somewhere---let us know and we'll try to fix it next time around. Cairo is free software and is available to be redistributed and/or modified under the terms of either the GNU Lesser General Public License (LGPL) version 2.1 or the Mozilla Public License (MPL) version 1.1. Where to get more information about cairo ========================================= The primary source of information about cairo is: http://cairographics.org/ The latest versions of cairo can always be found at: http://cairographics.org/download Documentation on using cairo and frequently-asked questions: http://cairographics.org/documentation http://cairographics.org/FAQ Mailing lists for contacting cairo users and developers: http://cairographics.org/lists Roadmap and unscheduled things to do, (please feel free to help out): http://cairographics.org/roadmap http://cairographics.org/todo Dependencies ============ The set of libraries needed to compile cairo depends on which backends are enabled when cairo is configured. So look at the list below to determine which dependencies are needed for the backends of interest. For the surface backends, we have both "supported" and "experimental" backends. Further, the supported backends can be divided into the "standard" backends which can be easily built on any platform, and the "platform" backends which depend on some underlying platform-specific system, (such as the X Window System or some other window system). As an example, for a standard Linux build similar to what's shipped by your distro, (with image, png, pdf, PostScript, svg, and xlib surface backends, and the freetype font backend), the following sample commands will install necessary dependencies: Debian (and similar): apt-get build-dep cairo Fedora (and similar): yum install libpng-devel zlib-devel libXrender-devel fontconfig-devel Technically you probably don't need pixman from the distribution since if you're manually compiling Cairo you probably want an updated pixman as well. However, if you follow the default settings and install pixman to /usr/local, your Cairo build should properly use it in preference to the system pixman. Supported, "standard" surface backends ------------------------------------ image backend (required) ------------------------ pixman >= 0.30.0 http://cairographics.org/releases png support (can be left out if desired, but many ----------- applications expect it to be present) libpng http://www.libpng.org/pub/png/libpng.html pdf backend ----------- zlib http://www.gzip.org/zlib postscript backend ------------------ zlib http://www.gzip.org/zlib svg backend ----------- [none] Supported, "platform" surface backends ----------------------------------- xlib backend ------------ X11 http://freedesktop.org/Software/xlibs xlib-xrender backend -------------------- Xrender >= 0.6 http://freedesktop.org/Software/xlibs quartz backend -------------- MacOS X >= 10.4 with Xcode >= 2.5 win32 backend ------------- Microsoft Windows 2000 or newer[*]. xcb backend ----------- XCB http://xcb.freedesktop.org Font backends (required to have at least one) --------------------------------------------- freetype font backend --------------------- freetype >= 2.1.9 http://freetype.org fontconfig http://fontconfig.org quartz-font backend ------------------- MacOS X >= 10.4 with Xcode >= 2.4 win32 font backend ------------------ Microsoft Windows 2000 or newer[*]. [*] The Win32 backend should work on Windows 2000 and newer (excluding Windows Me.) Most testing has been done on Windows XP. While some portions of the code have been adapted to work on older versions of Windows, considerable work still needs to be done to get cairo running in those environments. Cairo can be compiled on Windows with either the gcc toolchain (see http://www.mingw.org) or with Microsoft Visual C++. If the gcc toolchain is used, the standard build instructions using configure apply, (see INSTALL). If Visual C++ is desired, GNU make is required and Makefile.win32 can be used via 'make -f Makefile.win32'. The compiler, include paths, and library paths must be set up correctly in the environment. MSVC versions earlier than 7.1 are known to miscompile parts of cairo and pixman, and so should be avoided. MSVC 7.1 or later, including the free Microsoft Visual Studio Express editions, produce correct code. Experimental surface backends ----------------------------- beos backend ------------ No dependencies in itself other than an installed BeOS system, but cairo requires a font backend. See the freetype dependency list. os2 backend ----------- Cairo should run on any recent version of OS/2 or eComStation, but it requires a font backend. See the freetype dependency list. Ready to use packages and developer dependencies are available at Netlabs: ftp://ftp.netlabs.org/pub/cairo skia backend ------------ Requires the skia library as of June 2014. Since skia is not API stable, building against newer (or older) versions of skia will probably fail. Compiling ========= See the INSTALL document for build instructions. History ======= Cairo was originally developed by Carl Worth and Keith Packard . Many thanks are due to Lyle Ramshaw without whose patient help our ignorance would be much more apparent. Since the original development, many more people have contributed to cairo. See the AUTHORS files for as complete a list as we've been able to compile so far. usr/share/doc/unzip/README000064400000043641152527031530011264 0ustar00This is the README file for the 20 April 2009 public release of the Info-ZIP group's portable UnZip zipfile-extraction program (and related utilities). unzip60.zip portable UnZip, version 6.0, source code distribution unzip60.tar.Z same as above, but compress'd tar format unzip60.tar.gz same as above, but gzip'd tar format __________________________________________________________________________ BEFORE YOU ASK: UnZip, its companion utility Zip, and related utilities and support files can be found in many places; read the file "WHERE" for further details. To contact the authors with suggestions, bug reports, or fixes, continue reading this file (README) and, if this is part of a source distribution, the file "ZipPorts" in the proginfo directory. Also in source distributions: read "BUGS" for a list of known bugs, non-bugs and possible future bugs; INSTALL for instructions on how to build UnZip; and "Contents" for a commented listing of all the distributed files. __________________________________________________________________________ GENERAL INFO ------------ UnZip is an extraction utility for archives compressed in .zip format (also called "zipfiles"). Although highly compatible both with PKWARE's PKZIP and PKUNZIP utilities for MS-DOS and with Info-ZIP's own Zip program, our primary objectives have been portability and non-MSDOS functionality. This version of UnZip has been ported to a stupendous array of hardware-- from micros to supercomputers--and operating systems: Unix (many flavors), VMS, OS/2 (including DLL version), Windows NT and Windows 95 (including DLL version), Windows CE (GUI version), Windows 3.x (including DLL version), MS-DOS, AmigaDOS, Atari TOS, Acorn RISC OS, BeOS, Macintosh (GUI version), SMS/QDOS, MVS, VM/CMS, FlexOS, Tandem NSK, Human68k (mostly), AOS/VS (partly) and TOPS-20 (partly). UnZip features not found in PKUNZIP include source code; default extraction of directory trees (with a switch to defeat this, rather than the reverse); system-specific extended file attributes; and, of course, the ability to run under most of your favorite operating systems. Plus, it's free. :-) For source distributions, see the main Contents file for a list of what's included, and read INSTALL for instructions on compiling (including OS- specific comments). The individual operating systems' Contents files (for example, vms/Contents) may list important compilation info in addition to explaining what files are what, so be sure to read them. Some of the ports have their own, special README files, so be sure to look for those, too. See unzip.1 or unzip.txt for usage (or the corresponding UnZipSFX, ZipInfo, fUnZip and ZipGrep docs). For VMS, unzip_def.rnh or unzip_cli.help may be compiled into unzip.hlp and installed as a normal VMS help entry; see vms/descrip.mms. CHANGES AND NEW FEATURES ------------------------ UnZip 6.0 finally supports nowadays "large" files of sizes > 2 GiB! This is the first release containing support for the PKWARE Zip64 enhancements. Major changes are: - Support PKWARE ZIP64 extensions, allowing Zip archives and Zip archive entries larger than 4 GiBytes and more than 65536 entries within a single Zip archive. This support is currently only available for Unix, OpenVMS and Win32/Win64. - Support for bzip2 compression method. - Support for UTF-8 encoded entry names, both through PKWARE's "General Purpose Flags Bit 11" indicator and Info-ZIP's new "up" unicode path extra field. (Currently, on Windows the UTF-8 handling is limited to the character subset contained in the configured non-unicode "system code page".) - Added "wrong implementation used" warning to error messages of the MSDOS port when used under Win32, in an attempt to reduce false bug reports. - Fixed "Time of Creation/Time of Use" vulnerability when setting attributes of extracted files, for Unix and Unix-like ports. - Fixed memory leak when processing invalid deflated data. - Fixed long-standing bug in unshrink (partial_clear), added boundary checks against invalid compressed data. - On Unix, keep inherited SGID attribute bit for extracted directories unless restoration of owner/group id or SUID/SGID/Tacky attributes was requested. - On Unix, allow extracted filenames to contain embedded control characters when explicitly requested by specifying the new command line option "-^". - On Unix, support restoration of symbolic link attributes. - On Unix, support restoration of 32-bit UID/GID data using the new "ux" IZUNIX3 extra field introduced with Zip 3.0. - Support for ODS5 extended filename syntax on new OpenVMS systems. - Support symbolic links zipped up on VMS. - On VMS (only 8.x or better), support symbolic link creation. - On VMS, support option to create converted text files in Stream_LF format. - New -D option to suppress restoration of timestamps for extracted directory entries (on those ports that support setting of directory timestamps). By specifying "-DD", this new option also allows to suppress timestamp restoration for ALL extracted files on all UnZip ports which support restoration of timestamps. On VMS, the default behaviour is now to skip restoration of directory timestamps; here, "--D" restores ALL timestamps, "-D" restores none. - On OS/2, Win32, and Unix, the (previously optional) feature UNIXBACKUP to allow saving backup copies of overwritten files on extraction is now enabled by default. For the UnZip 6.0 release, we want to give special credit to Myles Bennet, who started the job of supporting ZIP64 extensions and Large-File (> 2GiB) and provided a first (alpha-state) port. The 5.52 maintenance release fixes a few minor problems found in the 5.51 release, closes some more security holes, adds a new AtheOS port, and contains a Win32 extra-field code cleanup that was not finished earlier. The most important changes are: - (re)enabled unshrinking support by default, the LZW patents have expired - fixed an extraction size bug for encrypted stored entries (12 excess bytes were written with 5.51) - fixed false "uncompressed size mismatch" messages when extracting encrypted archive entries - do not restore SUID/SGID/Tacky attribute bits on Unix (BeOS, AtheOS) unless explicitely requested by new "-K" command line qualifier - optional support for "-W" qualifier to modify the pattern matching syntax (with -W: "*" stops at directory delimiter, "**" matches unlimited) - prevent buffer overflow caused by bogus extra-long Zipfile specification - performance enhancements for VMS port - fixed windll interface handling of its extraction mode qualifiers nfflag, ExtractOnlyNewer, noflag, PromptToOverwrite; added detailed explanation of their meanings and interactions to the windll documentation The 5.51 maintenance release adds a command-line CE port, intended for batch processing. With the integration of this port, the pUnZip port has been revised and "revitalized". The most important changes for the general public are a number of bug fixes, mostly related to security issues: - repair a serious bug in the textmode output conversion code for the 16-bit ports (16-bit MSDOS, OS/2 1.x, some variants of AMIGA, possibly others) which was introduced by the Deflate64 support of release 5.5 - fix a long standing bug in the the inflate decompression method that prevented correct extraction in some rare cases - fixed holes in parent dir traversal security code (e.g.: ".^C." slipped through the previous version of the check code) - fixed security hole: check naming consistency in local and central header - fixed security hole: prevent extracted symlinks from redirecting file extraction paths The main addition in the 5.5 release is support for PKWARE's new Deflate64(tm) algorithm, which appeared first in PKZIP 4.0 (published November 2000). As usual, some other bugfixes and clean-ups have been integrated: - support for Deflate64 (Zip compression method #9) - support for extracting VMS variable length record text files on any system - optional "cheap autorun" feature for the SFX stub - security fixes: * strip leading slash from stored pathspecs, * remove "../" parent dir path components from extracted file names - new option "-:" to allow verbatim extraction of file names containing "../" parent dir path specs - fixed file handle leak for the DLL code - repaired OS2 & WinNT ACL extraction which was broken in 5.42 The 5.42 maintenance release fixes more bugs and cleans up the redistribution conditions: - removal of unreduce.c and amiga/timelib.c code to get rid of the last distribution restrictions beyond the BSD-like Info-ZIP LICENSE - new generic timelib replacement (currently used by AMIGA port) - more reasonable mapping rules of UNIX "leading-dot" filenames to the DOS 8.3 name convention - repaired screensize detection in MORE paging code (was broken for DOS/OS2/WIN32 in 5.41) The 5.41 maintenance release adds another new port and fixes some bugs. - new BSD-like LICENSE - new Novell Netware NLM port - supports extraction of archives with more than 64k entries - attribute handling of VMS port was broken in UnZip 5.4 - decryption support integrated in the main source distribution The 5.4 release adds new ports, again. Other important items are changes to the listing format, new supplemental features and several bug fixes (especially concerning time-stamp handling...): - new IBM OS/390 port, a UNIX derivate (POSIX with EBCDIC charset) - complete revision of the MacOS port - changed listing formats to enlarge the file size fields for more digits - added capability to restore directory attributes on MSDOS, OS/2, WIN32 - enabled support of symbolic links on BeOS - Unix: optional Acorn filetype support, useful for volumes exported via NFS - several changes/additions to the DLL API - GUI SFX stub for Win16 (Windows 3.1) and Win32 (Windows 9x, Windows NT) - new free GCC compiler environments supported on WIN32 - many time-zone handling bug fixes for WIN32, AMIGA, ... The 5.32 release adds two new ports and a fix for at least one relatively serious bug: - new FlexOS port - new Tandem NSK port - new Visual BASIC support (compatibility with the Windows DLLs) - new -T option (set zipfile timestamp) for virtually all ports - fix for timestamps beyond 2038 (e.g., 2097; crashed under DOS/Win95/NT) - fix for undetected "dangling" symbolic links (i.e., no pointee) - fix for VMS indexed-file extraction problem (stored with Zip 2.0 or 2.1) - further performance optimizations The 5.31 release included nothing but small bug-fixes and typo corrections, with the exception of some minor performance tweaks. The 5.3 release added still more ports and more cross-platform portability features: - new BeOS port - new SMS/QDOS port - new Windows CE graphical port - VM/CMS port fully updated and tested - MVS port fully updated and tested - updated Windows DLL port, with WiZ GUI spun off to a separate package - full Universal Time (UTC or GMT) support for trans-timezone consistency - cross-platform support for 8-bit characters (ISO Latin-1, OEM code pages) - support for NT security descriptors (ACLs) - support for overwriting OS/2 directory EAs if -o option given - updated Solaris/SVR4 package facility What is (still!) not added is multi-part archive support (a.k.a. "diskette spanning", though we really mean archive splitting and not the old diskette spanning) and a unified and more powerful DLL interface. These are the two highest priorities for the 6.x releases. Work on the former is almost certain to have commenced by the time you read this. This time we mean it! You betcha. :-) Although the DLLs are still basically a mess, the Windows DLLs (16- and 32- bit) now have some documentation and a small example application. Note that they should now be compatible with C/C++, Visual BASIC and Delphi. Weirder languages (FoxBase, etc.) are probably Right Out. INTERNET RESOURCES ------------------ Info-ZIP's web site is at http://www.info-zip.org/pub/infozip/ and contains the most up-to-date information about coming releases, links to binaries, and common problems. (See http://www.info-zip.org/pub/infozip/FAQ.html for the latter.) Files may also be retrieved via ftp://ftp.info-zip.org/pub/infozip/ . Thanks to LEO (Munich, Germany) for previously hosting our primary site. DISTRIBUTION ------------ If you have a question regarding redistribution of Info-ZIP software, either as is, as packaging for a commercial product, or as an integral part of a commercial product, please read the Frequently Asked Questions (FAQ) section of the included COPYING file. All Info-ZIP releases are now covered by the Info-ZIP license. See the file LICENSE. The most current license should be available at http://www.info-zip.org/license.html and ftp://ftp.info-zip.org/pub/infozip/license.html. Insofar as C compilers are rare on some platforms and the authors only have direct access to a subset of the supported systems, others may wish to pro- vide ready-to-run executables for new systems. In general there is no prob- lem with this; we require only that such distributions include this README file, the WHERE file, the LICENSE file (contains copyright/redistribution information), and the appropriate documentation files (unzip.txt and/or unzip.1 for UnZip, etc.). If the local system provides a way to make self- extracting archives in which both the executables and text files can be stored together, that's best (in particular, use UnZipSFX if at all possible, even if it's a few kilobytes bigger than the alternatives); otherwise we suggest a bare UnZip executable and a separate zipfile containing the re- maining text and binary files. If another archiving method is in common use on the target system (for example, Zoo or LHa), that may also be used. BUGS AND NEW PORTS: CONTACTING INFO-ZIP ---------------------------------------- All bug reports and patches (context diffs only, please!) should be submitted either through the new Info-ZIP Discussion Forum at http://www.info-zip.org/board/board.pl or through the Info-ZIP SourceForge site at http://sourceforge.net/projects/infozip/. The forum allows file attachments while SourceForge provides a place to post patches. The old Zip-Bugs@lists.wku.edu e-mail address for the Info-ZIP authors was discontinued after heavy continuous spam, as was the QuickTopic discussion forum. The above methods are public, but we also can be reached directly using the web reply page at http://www.info-zip.org/zip-bug.html. If you need to send us files privately, contact us first for instructions. "Dumb questions" that aren't adequately answered in the documentation should also be directed to Zip-Bugs rather than to a global forum such as Usenet. (Kindly make certain that your question *isn't* answered by the documentation, however--a great deal of effort has gone into making it clear and complete.) Suggestions for new features can be discussed on the new Discussion Forum. A new mailing list for Info-ZIP beta testers and interested parties may be created someday, but for now any issues found in the betas should use the forum. We make no promises to act on all suggestions or even all patches, but if it is something that is manifestly useful, sending the required patches to Zip-Bugs directly (as per the instructions in the ZipPorts file) is likely to produce a quicker response than asking us to do it--the authors are always ridiculously short on time. (Please do NOT send patches or encoded zipfiles to the Info-ZIP list. Please DO read the ZipPorts file before sending any large patch. It would be difficult to over-emphasize this point...) If you are considering a port, not only should you read the ZipPorts file, but also please check in with Zip-Bugs BEFORE getting started, since the code is constantly being updated behind the scenes. (For example, VxWorks, VMOS and Netware ports were once claimed to be under construction, although we have yet to see any up-to-date patches.) We will arrange to send you the latest sources. The alternative is the possibility that your hard work will be tucked away in a subdirectory and mostly ignored, or completely ignored if someone else has already done the port (and you'd be surprised how often this has happened). BETA TESTING: JOINING INFO-ZIP ------------------------------- If you'd like to keep up to date with our UnZip (and companion Zip utility) development, join the ranks of beta testers, add your own thoughts and contributions, or simply lurk, you may join one of our mailing lists. There is an announcements-only list (Info-ZIP-announce) and a general discussion/testing list (Info-ZIP). You must be a subscriber to post, and you can subscribe via the links on our Frequently Asked Questions page: http://www.info-zip.org/pub/infozip/FAQ.html#lists (Please note that as of late May 2004, the lists are unavailable pending a move to a new site; we hope to have them restored shortly. In the interim ...) Feel free to use our bug-reporting web page for bug reports and to ask questions not answered on the FAQ page above: http://www.info-zip.org/zip-bug.html For now the best option is to monitor and contribute to the various threads on the new discussion forum site at: http://www.info-zip.org/board/board.pl The second best way to contribute is through the various features at SourceForge, such as the bug posting areas. There is also a closed mailing list for internal discussions of our core development team. This list is now kept secret to prevent us from being flooded with spam messages. -- Greg Roelofs (sometimes known as Cave Newt), principal UnZip developer guy, with inspiration from David Kirschbaum, was Author of this text. -- Christian Spieler (shorthand: SPC), current UnZip maintenance coordinator, applied the most recent changes, with Ed Gordon providing a few additions. usr/share/doc/libwmf-lite/README000064400000020546152527033370012335 0ustar00libwmf-0.2.9 Release Notes -------------------------- Seeing as wvware.sourceforge.net seems to be dead, but libwmf is still in use and has had a bunch of security bugs reported against, and I've a history with libwmf, I'll call this libwmf 0.2.9 and merge in my (Red Hat) fixes. libwmf-0.2.2 Release Notes -------------------------- While there have been some improvements to text placement and rendering in the X and gd layers, most changes are in the configuration. (It is now possible to build libwmf without any device layers, but this has not been tested extensively and is not recommended for general use.) Special thanks to Bob Friesenhahn, Leonard Rosenthol, David C Sterratt and Tomasz Kłoczko. Hopefully this release will build on Solaris. My apologies to everyone who had problems with libwmf-0.2.1. libwmf-0.2.1 Release Notes -------------------------- In adherence with the ancient philosophy of `It's my birthday and I'll release if I want to,' today, August 22nd 2001, sees the release of libwmf-0.2.1, a.k.a. `The Inspector General's Nose'. I was, in fact, tempted to call it version 0.3.0, but I've been calling it 0.2.1 for so many preview snapshots that, well, to do otherwise now would seem like a betrayal. The most significant change is the introduction of redirectable character output streams (i.e., wmfStream) which should facilitate the writing of WMF importers. - Speaking of which, CVS sodipodi now has optional support for importing WMF, requiring libwmf-0.2.1, and an importer for AbiWord is in the works. This has, however, necessitated a slight change in the API, and people who use libwmf in conjuction with wv will need to upgrade to wv-0.7.0 or later. Other significant changes are support for a ghostscript-style fontmap and the beginnings of doxygen-generated documentation (which will grow more complete with future releases). Otherwise, there has been considerable clean-up, bug-fixes and improvement of both the source and the build system, and some additional functionality, including: (a) The .fig export uses scaling now, and has options to save images as PNG or JPEG. (b) The .svg export now supports inline (data URI) images and compression to .svgz (plus sodipodi-specific workarounds). (c) Use of metafile size info., if any (a mixed blessing). Special thanks to: (a) Matej Vila, for helping to make libwmf more Debian-friendly; (b) Michael Cree, for helping me to get libwmf working on Tru64; (c) Steve Oney, whose help I have not yet done justice to... Thanks also to: Bob Friesenhahn, Michal Jaegermann, Anil Madhavapeddy, Jacqueline Signore, Shuang Wang, Sean Young, and Kees Zeelenberg. Finally, having just assumed the mantle of maintainership, I would like to take this opportunity once again to thank Martin Vermeer for all of his work on libwmf. Francis James Franklin 22nd August, 2001 =============================================================================== Amendment #1 ------------ This version of libwmf is now officially part of the wvWare project, available by CVS under the module named `libwmf2'. I have added device layers for SVG (W3C's XML-based vector graphic format) and MVG (ImageMagick's proprietary vector graphic format); the X device layer has not been changed and I have no intention of changing it in the near future, but it works. I have also added a device layer for GNU plotutils, but currently it is only a shell, so don't use it. The MVG work is based on information supplied by Bob Friesenhahn who did the WMF coder for ImageMagick. (ImageMagick's WMF coder links against libwmf(1), not this version.) I am using version ImageMagick-5.3.3, and I don't know whether earlier (or later) versions will be compatible with the MVG format assumed by libwmf. In fact, I am already finding bugs, particularly with dashed lines... Also, I don't really know how to implement fonts; I suspect ImageMagick could do with some serious hacking on this point... Martin Vermeer has added a FIG device layer, so now there are two routes available if anyone wants to *edit* the images as vector graphics: (a) WMF->FIG for editing with xfig; (b) WMF->SVG for editing with, for example, sodipodi (best to get the *very* latest source for sodipodi; the GNOME-1.4 release and earlier are colour- blind). The svg & magick device layers write all bitmap data as PNG images, using filenames provided via the device layer interface. The current version of the GD library subsumed within libwmf is gd-2.0.0, with my additions. This supports 24-bit colour. There is some documentation, but the best way to learn how to use the various the device layers is to read the source in src/convert/ Francis James Franklin 13th May, 2001 =============================================================================== This is my own (i.e., unofficial) development version of libwmf which I propose as a candidate for release as (official) libwmf version 0.2.0. Although based on Caolan's excellent libwmf, there has been an almost complete restructuring to take libwmf away from it's batch-process origins and make it as well-behaved a library as possible. (1) The names have been changed to protect the innocent. All global / external variables have the prefix `wmf' (or, since the GD library is subsumed within libwmf, `gd'). With very few exceptions: (a) functions: wmf_function_name (...) (b) types: wmfType, or wmfType_t (c) macros: WMF_Macro (...) (2) It is my belief that device-layer (e.g., output) implementations should not need to know anything about wmf files or the interpreter's methods. In addition, the writing of such device-layers should be made as simple as possible, though not of course at the expense of image fidelity or quality. As such, I have crafted a new interface between the interpreter and the device layer, which I choose to call the `ipa' (as opposed to the `api' which is the `application / program interface'). There must also be an interface between the application and the device layer, but this third interface is independent of the interpreter. Although this may sound unnecessarily complicated, in fact it makes programming applications or device layers significantly easier. (3) With very few exceptions, all function calls refer to a variable of type `wmfAPI' which incorporates all data associated with a given wmf file. A final call to wmf_api_destroy frees up all memory allocated during the initialization and processing of the metafile. (4) (a) There is no longer any dependence on temporary files; all processing of the metafile is performed in-memory or w.r.t. original metafile. (b) Metafiles can be in-memory if desired; or applications can specify their own read/seek/tell functions for reading the metafile. (5) (a) Xpm dependence & system calls have been removed; libwmf provides bitmap scaling functionality. (b) Bitmaps are read using code taken from ImageMagick [?? - are there licensing issues to be addressed here?] (c) libwmf now uses freetype (2) for stringwidth calculations, and is bundled with the standard thirteen ghostscript fonts [?? - are there licensing issues to be addressed here?] (d) libwmf incorporates GD (gd-1.8.4 at time of writing) which supports freetype (2), with some enhancements (filled arcs & clipping). * * libz, libpng and freetype(2) are the sole required external libraries. * (6) (a) The build system uses automake and libtool, and the only library created is `libwmf', which includes the eps and gd device layers and the GD library as well as the interpreter and api. (b) Header files are installed in a `libwmf' sub-directory. (7) I have added the wmf examples with Tor Lillqvist's plug-in for the Gimp: http://www.iki.fi/tml/gimp/wmf [?? - are there licensing issues to be addressed here?] Currently the only device layers are eps [eps & ps] and gd [png & jpeg]. Implementing more should be relatively straight-forward. I recognize that, until device layers for X, xfig and magick exist, this proposed revision of libwmf is at a disadvantage... I have tested only with PPC Linux 2000 and (x86) Linux RH7. Francis James Franklin 4th March, 2001 =============================================================================== usr/share/doc/perl-HTTP-Date/README000064400000011527152527057410012514 0ustar00NAME HTTP::Date - date conversion routines SYNOPSIS use HTTP::Date; $string = time2str($time); # Format as GMT ASCII time $time = str2time($string); # convert ASCII date to machine time DESCRIPTION This module provides functions that deal the date formats used by the HTTP protocol (and then some more). Only the first two functions, time2str() and str2time(), are exported by default. time2str( [$time] ) The time2str() function converts a machine time (seconds since epoch) to a string. If the function is called without an argument or with an undefined argument, it will use the current time. The string returned is in the format preferred for the HTTP protocol. This is a fixed length subset of the format defined by RFC 1123, represented in Universal Time (GMT). An example of a time stamp in this format is: Sun, 06 Nov 1994 08:49:37 GMT str2time( $str [, $zone] ) The str2time() function converts a string to machine time. It returns `undef' if the format of $str is unrecognized, otherwise whatever the `Time::Local' functions can make out of the parsed time. Dates before the system's epoch may not work on all operating systems. The time formats recognized are the same as for parse_date(). The function also takes an optional second argument that specifies the default time zone to use when converting the date. This parameter is ignored if the zone is found in the date string itself. If this parameter is missing, and the date string format does not contain any zone specification, then the local time zone is assumed. If the zone is not "`GMT'" or numerical (like "`-0800'" or "`+0100'"), then the `Time::Zone' module must be installed in order to get the date recognized. parse_date( $str ) This function will try to parse a date string, and then return it as a list of numerical values followed by a (possible undefined) time zone specifier; ($year, $month, $day, $hour, $min, $sec, $tz). The $year returned will not have the number 1900 subtracted from it and the $month numbers start with 1. In scalar context the numbers are interpolated in a string of the "YYYY-MM-DD hh:mm:ss TZ"-format and returned. If the date is unrecognized, then the empty list is returned. The function is able to parse the following formats: "Wed, 09 Feb 1994 22:23:32 GMT" -- HTTP format "Thu Feb 3 17:03:55 GMT 1994" -- ctime(3) format "Thu Feb 3 00:00:00 1994", -- ANSI C asctime() format "Tuesday, 08-Feb-94 14:15:29 GMT" -- old rfc850 HTTP format "Tuesday, 08-Feb-1994 14:15:29 GMT" -- broken rfc850 HTTP format "03/Feb/1994:17:03:55 -0700" -- common logfile format "09 Feb 1994 22:23:32 GMT" -- HTTP format (no weekday) "08-Feb-94 14:15:29 GMT" -- rfc850 format (no weekday) "08-Feb-1994 14:15:29 GMT" -- broken rfc850 format (no weekday) "1994-02-03 14:15:29 -0100" -- ISO 8601 format "1994-02-03 14:15:29" -- zone is optional "1994-02-03" -- only date "1994-02-03T14:15:29" -- Use T as separator "19940203T141529Z" -- ISO 8601 compact format "19940203" -- only date "08-Feb-94" -- old rfc850 HTTP format (no weekday, no time) "08-Feb-1994" -- broken rfc850 HTTP format (no weekday, no time) "09 Feb 1994" -- proposed new HTTP format (no weekday, no time) "03/Feb/1994" -- common logfile format (no time, no offset) "Feb 3 1994" -- Unix 'ls -l' format "Feb 3 17:03" -- Unix 'ls -l' format "11-15-96 03:52PM" -- Windows 'dir' format The parser ignores leading and trailing whitespace. It also allow the seconds to be missing and the month to be numerical in most formats. If the year is missing, then we assume that the date is the first matching date *before* current month. If the year is given with only 2 digits, then parse_date() will select the century that makes the year closest to the current date. time2iso( [$time] ) Same as time2str(), but returns a "YYYY-MM-DD hh:mm:ss"-formatted string representing time in the local time zone. time2isoz( [$time] ) Same as time2str(), but returns a "YYYY-MM-DD hh:mm:ssZ"-formatted string representing Universal Time. SEE ALSO perlfunc, Time::Zone COPYRIGHT Copyright 1995-1999, Gisle Aas This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. usr/share/doc/htop/README000064400000016600152527111050011060 0ustar00# [![htop logo](htop.png)](https://htop.dev) [![CI](https://github.com/htop-dev/htop/workflows/CI/badge.svg)](https://github.com/htop-dev/htop/actions) [![Coverity Scan Build Status](https://scan.coverity.com/projects/21665/badge.svg)](https://scan.coverity.com/projects/21665) [![Mailing List](https://img.shields.io/badge/Mailing%20List-htop-blue.svg)](https://groups.io/g/htop) [![IRC #htop](https://img.shields.io/badge/IRC-htop-blue.svg)](https://web.libera.chat/#htop) [![GitHub Release](https://img.shields.io/github/release/htop-dev/htop.svg)](https://github.com/htop-dev/htop/releases/latest) [![Packaging status](https://repology.org/badge/tiny-repos/htop.svg)](https://repology.org/project/htop/versions) [![License: GPL v2+](https://img.shields.io/badge/License-GPL%20v2+-blue.svg)](COPYING?raw=true) ![Screenshot of htop](docs/images/screenshot.png?raw=true) ## Introduction `htop` is a cross-platform interactive process viewer. `htop` allows scrolling the list of processes vertically and horizontally to see their full command lines and related information like memory and CPU consumption. Also system wide information, like load average or swap usage, is shown. The information displayed is configurable through a graphical setup and can be sorted and filtered interactively. Tasks related to processes (e.g. killing and renicing) can be done without entering their PIDs. Running `htop` requires `ncurses` libraries, typically named libncurses(w). `htop` is written in C. For more information and details visit [htop.dev](https://htop.dev). ## Build instructions ### Prerequisite List of build-time dependencies: * standard GNU autotools-based C toolchain - C99 compliant compiler - `autoconf` - `autotools` * `ncurses` **Note about `ncurses`:** > `htop` requires `ncurses` 6.0. Be aware the appropriate package is sometimes still called libncurses5 (on Debian/Ubuntu). Also `ncurses` usually comes in two flavours: >* With Unicode support. >* Without Unicode support. > > This is also something that is reflected in the package name on Debian/Ubuntu (via the additional 'w' - 'w'ide character support). List of additional build-time dependencies (based on feature flags): * `sensors` * `hwloc` * `libcap` (v2.21 or later) * `libnl-3` Install these and other required packages for C development from your package manager. **Debian/Ubuntu** ~~~ shell sudo apt install libncursesw5-dev autotools-dev autoconf build-essential ~~~ **Fedora/RHEL** ~~~ shell sudo dnf install ncurses-devel automake autoconf gcc ~~~ **Archlinux/Manjaro** ~~~ shell sudo pacman -S ncurses automake autoconf gcc ~~~ **macOS** ~~~ shell brew install ncurses automake autoconf gcc ~~~ ### Compile from source: To compile from source, download from the Git repository (`git clone` or downloads from [GitHub releases](https://github.com/htop-dev/htop/releases/)), then run: ~~~ shell ./autogen.sh && ./configure && make ~~~ ### Install To install on the local system run `make install`. By default `make install` installs into `/usr/local`. To change this path use `./configure --prefix=/some/path`. ### Build Options `htop` has several build-time options to enable/disable additional features. #### Generic * `--enable-unicode`: enable Unicode support - dependency: *libncursesw* - default: *yes* * `--enable-affinity`: enable `sched_setaffinity(2)` and `sched_getaffinity(2)` for affinity support; conflicts with hwloc - default: *check* * `--enable-hwloc`: enable hwloc support for CPU affinity; disables affinity support - dependency: *libhwloc* - default: *no* * `--enable-static`: build a static htop binary; hwloc and delay accounting are not supported - default: *no* * `--enable-debug`: Enable asserts and internal sanity checks; implies a performance penalty - default: *no* #### Performance Co-Pilot * `--enable-pcp`: enable Performance Co-Pilot support via a new pcp-htop utility - dependency: *libpcp* - default: *no* #### Linux * `--enable-sensors`: enable libsensors(3) support for reading temperature data - dependencies: *libsensors-dev*(build-time), at runtime *libsensors* is loaded via `dlopen(3)` if available - default: *check* * `--enable-capabilities`: enable Linux capabilities support - dependency: *libcap* - default: *check* * `--with-proc`: location of a Linux-compatible proc filesystem - default: */proc* * `--enable-openvz`: enable OpenVZ support - default: *no* * `--enable-vserver`: enable VServer support - default: *no* * `--enable-ancient-vserver`: enable ancient VServer support (implies `--enable-vserver`) - default: *no* * `--enable-delayacct`: enable Linux delay accounting support - dependencies: *pkg-config*(build-time), *libnl-3* and *libnl-genl-3* - default: *check* ## Runtime dependencies: `htop` has a set of fixed minimum runtime dependencies, which is kept as minimal as possible: * `ncurses` libraries for terminal handling (wide character support). ### Runtime optional dependencies: `htop` has a set of fixed optional dependencies, depending on build/configure option used: #### Linux * `libdl`, if not building a static binary, is always required when support for optional dependencies (i.e. `libsensors`, `libsystemd`) is present. * `libcap`, user-space interfaces to POSIX 1003.1e capabilities, is always required when `--enable-capabilities` was used to configure `htop`. * `libsensors`, readout of temperatures and CPU speeds, is optional even when `--enable-sensors` was used to configure `htop`. * `libsystemd` is optional when `--enable-static` was not used to configure `htop`. If building statically and `libsystemd` is not found by `configure`, support for the systemd meter is disabled entirely. `htop` checks for the availability of the actual runtime libraries as `htop` runs. #### BSD On most BSD systems `kvm` is a requirement to read kernel information. More information on required and optional dependencies can be found in [configure.ac](configure.ac). ## Usage See the manual page (`man htop`) or the help menu (**F1** or **h** inside `htop`) for a list of supported key commands. ## Support If you have trouble running `htop` please consult your operating system / Linux distribution documentation for getting support and filing bugs. ## Bugs, development feedback We have a [development mailing list](https://htop.dev/mailinglist.html). Feel free to subscribe for release announcements or asking questions on the development of `htop`. You can also join our IRC channel [#htop on Libera.Chat](https://web.libera.chat/#htop) and talk to the developers there. If you have found an issue within the source of `htop`, please check whether this has already been reported in our [GitHub issue tracker](https://github.com/htop-dev/htop/issues). If not, please file a new issue describing the problem you have found, the potential location in the source code you are referring to and a possible fix if available. ## History `htop` was invented, developed and maintained by [Hisham Muhammad](https://hisham.hm/) from 2004 to 2019. His [legacy repository](https://github.com/hishamhm/htop/) has been archived to preserve the history. In 2020 a [team](https://github.com/orgs/htop-dev/people) took over the development amicably and continues to maintain `htop` collaboratively. ## License GNU General Public License, version 2 (GPL-2.0) or, at your option, any later version. etc/pki/ca-trust/README000064400000000246152527124050010531 0ustar00This directory /etc/pki/ca-trust is used by a system of consolidated CA certificates. Please refer to the update-ca-trust(8) manual page for additional information. usr/share/doc/which/README000064400000010521152527145750011222 0ustar00Install ======= You will need an ANSI C compiler (like gcc) to compile this package. Just type `make', followed by `make install'. History ======= The main difference with version 1.0 by Paul Vixie is that this version will not return directory names as being executables and that by default it will expand a leading "./" and "~/" to its full path on output. The -all option has been added in example of a version of which on Ultrix. They use `-a' as option. The --read-alias idea has been copied from a version of which by Maarten Litmaath called `which-v6', he was using `-i' as option which stands for `interactive'. Manual page =========== NAME which - shows the full path of (shell) commands. SYNOPSIS which [options] [--] programname [...] DESCRIPTION Which takes one or more arguments. For each of its arguments it prints to stdout the full path of the executables that would have been exe- cuted when this argument had been entered at the shell prompt. It does this by searching for an executable or script in the directories listed in the environment variable PATH using the same algorithm as bash(1). This man page is generated from the file which.texinfo. OPTIONS --all, -a Print all matching executables in PATH, not just the first. --read-alias, -i Read aliases from stdin, reporting matching ones on stdout. This is useful in combination with using an alias for which itself. For example alias which='alias | which -i'. --skip-alias Ignore option `--read-alias', if any. This is useful to explicity search for normal binaries, while using the `--read-alias' option in an alias or function for which. --read-functions Read shell function definitions from stdin, reporting matching ones on stdout. This is useful in combination with using a shell func- tion for which itself. For example: which() { declare -f | which --read-functions $@ } export -f which --skip-functions Ignore option `--read-functions', if any. This is useful to explic- ity search for normal binaries, while using the `--read-functions' option in an alias or function for which. --skip-dot Skip directories in PATH that start with a dot. --skip-tilde Skip directories in PATH that start with a tilde and executables which reside in the HOME directory. --show-dot If a directory in PATH starts with a dot and a matching executable was found for that path, then print "./programname" rather than the full path. --show-tilde Output a tilde when a directory matches the HOME directory. This option is ignored when which is invoked as root. --version,-v,-V Print version information on standard output then exit success- fully. --help Print usage information on standard output then exit successfully. RETURN VALUE Which returns the number of failed arguments, or -1 when no `program- name' was given. EXAMPLE The recommended way to use this utility is by adding an alias (C shell) or shell function (Bourne shell) for which like the following: [ba]sh: which () { (alias; declare -f) | /usr/bin/which --tty-only --read-alias --read-functions --show-tilde --show-dot $@ } export -f which [t]csh: alias which 'alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' This will print the readable ~/ and ./ when starting which from your prompt, while still printing the full path when used from a script: > which q2 ~/bin/q2 > echo `which q2` /home/carlo/bin/q2 BUGS The HOME directory is determined by looking for the HOME environment variable, which aborts when this variable doesn't exist. Which will consider two equivalent directories to be different when one of them contains a path with a symbolic link. AUTHOR Carlo Wood SEE ALSO bash(1) WHICH(1) usr/share/doc/libmcrypt/README000064400000002166152527154700012126 0ustar00Libmcrypt is a thread-safe library providing a uniform interface to access several block and stream encryption algorithms. Check the manual page for more information on libmcrypt. Look at COPYING for license information and the individual files for more information. COPYING applies only for the mcrypt program and not the algorithms which most of them are public domain. A mailing list on mcrypt is mcrypt-dev@lists.hellug.gr Subscribe by visiting http://lists.hellug.gr/mailman/listinfo/mcrypt-dev ** ** Some hints: Since 2.5.4 libmcrypt does not use dynamic loading for the modules by default. All the algorithms and modes, are now included in the library. To enable the old dynamic loading behaviour use the --enable-dynamic-loading in the configure script. That way you can statically link the library and be 100% thread safe, since dlopen is not always thread safe. You can also enable dynamic loading and include some algorithms into the library. To include algorithms in the library use the --with-included-algos parameter in the configure script. Eg: ./configure --with-included-algos="rijndael-128 arcfour stream cbc cfb" usr/share/doc/isl/README000064400000003335152527274100010704 0ustar00isl is a thread-safe C library for manipulating sets and relations of integer points bounded by affine constraints. The descriptions of the sets and relations may involve both parameters and existentially quantified variables. All computations are performed in exact integer arithmetic using GMP. isl is released under the MIT license, but depends on the LGPL GMP library. Minimal compilation instructions: ./configure make make install If you are taking the source from the git repository, then you first need to do git clone git://repo.or.cz/isl.git ./autogen.sh For more information, see doc/user.pod or the generated documentation. New releases are announced on http://freecode.com/projects/isl If you use isl, you can let me know by stacking https://www.ohloh.net/p/isl on ohloh. For bug reports, feature requests and questions, contact http://groups.google.com/group/isl-development Whenever you report a bug, please mention the exact version of isl that you are using (output of "./isl_cat --version"). If you are unable to compile isl, then report the git version (output of "git describe") or the version included in the name of the tarball. If you use isl for your research, you are invited do cite the following paper and/or the paper(s) describing the specific operations you use. @incollection{Verdoolaege2010isl, author = {Verdoolaege, Sven}, title = {isl: An Integer Set Library for the Polyhedral Model}, booktitle = {Mathematical Software - ICMS 2010}, series = {Lecture Notes in Computer Science}, editor = {Fukuda, Komei and Hoeven, Joris and Joswig, Michael and Takayama, Nobuki}, publisher = {Springer}, isbn = {978-3-642-15581-9}, pages = {299-302}, volume = {6327}, year = {2010} } usr/share/doc/perl-IO-HTML/README000064400000001667152527275440012144 0ustar00IO-HTML version 1.001, released June 28, 2014 This module opens a file and performs automatic charset detection based on the HTML5 algorithm. You can then pass the filehandle to HTML::Parser or a related module (or just read it yourself). INSTALLATION To install this module, run the following commands: perl Makefile.PL make make test make install DEPENDENCIES Package Minimum Version --------- --------------- perl 5.8.0 Carp Encode 2.10 Exporter 5.57 CHANGES Here's what's new in version 1.001 of IO-HTML: (See the file "Changes" for the full revision history.) - No code changes, just documentation improvements - Update links to the HTML5 draft specification COPYRIGHT AND LICENSE This software is copyright (c) 2014 by Christopher J. Madsen. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. usr/share/doc/kmod/README000064400000007415152527424140011053 0ustar00kmod - Linux kernel module handling Information =========== Build status: [![Build Status](https://semaphoreci.com/api/v1/projects/29d989ba-0f70-4006-be21-550f6692b73b/449920/shields_badge.svg)](https://semaphoreci.com/lucasdemarchi/kmod) Mailing list: linux-modules@vger.kernel.org (no subscription needed) Patchwork: https://patchwork.kernel.org/project/linux-modules/ Signed packages: http://www.kernel.org/pub/linux/utils/kernel/kmod/ Git: git://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git http://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git Gitweb: http://git.kernel.org/?p=utils/kernel/kmod/kmod.git Irc: #kmod on irc.freenode.org License: LGPLv2.1+ for libkmod, testsuite and helper libraries GPLv2+ for tools/* OVERVIEW ======== kmod is a set of tools to handle common tasks with Linux kernel modules like insert, remove, list, check properties, resolve dependencies and aliases. These tools are designed on top of libkmod, a library that is shipped with kmod. See libkmod/README for more details on this library and how to use it. The aim is to be compatible with tools, configurations and indexes from module-init-tools project. Compilation and installation ============================ In order to compiler the source code you need following software packages: - GCC compiler - GNU C library Optional dependencies: - ZLIB library - LZMA library Typical configuration: ./configure CFLAGS="-g -O2" --prefix=/usr \ --sysconfdir=/etc --libdir=/usr/lib Configure automatically searches for all required components and packages. To compile and install run: make && make install Hacking ======= Run 'bootstrap' script before configure. If you want to accept the recommended flags, you just need to run 'bootstrap-configure'. Note that the recommended flags require cython be installed to compile successfully. Make sure to read the CODING-STYLE file and the other READMEs: libkmod/README and testsuite/README. Compatibility with module-init-tools ==================================== kmod replaces module-init-tools, which is end-of-life. Most of its tools are rewritten on top of libkmod so it can be used as a drop in replacements. Somethings however were changed. Reasons vary from "the feature was already long deprecated on module-init-tools" to "it would be too much trouble to support it". There are several features that are being added in kmod, but we don't keep track of them here. modprobe -------- * 'modprobe -l' was marked as deprecated and does not exist anymore * 'modprobe -t' is gone, together with 'modprobe -l' * modprobe doesn't parse configuration files with names not ending in '.alias' or '.conf'. modprobe used to warn about these files. * modprobe doesn't parse 'config' and 'include' commands in configuration files. * modprobe from m-i-t does not honour softdeps for install commands. E.g.: config: install bli "echo bli" install bla "echo bla" softdep bla pre: bli With m-i-t, the output of 'modprobe --show-depends bla' will be: install "echo bla" While with kmod: install "echo bli" install "echo bla" * kmod doesn't dump the configuration as is in the config files. Instead it dumps the configuration as it was parsed. Therefore, comments and file names are not dumped, but on the good side we know what the exact configuration kmod is using. We did this because if we only want to know the entire content of configuration files, it's enough to use find(1) in modprobe.d directories depmod ------ * there's no 'depmod -m' option: legacy modules.*map files are gone lsmod ----- * module-init-tools used /proc/modules to parse module info. kmod uses /sys/module/*, but there's a fallback to /proc/modules if the latter isn't available usr/share/doc/m4/README000064400000007625152527534370010453 0ustar00GNU `m4' is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible, although it has some extensions (for example, handling more than 9 positional parameters to macros). `m4' also has built-in functions for including files, running shell commands, doing arithmetic, etc. Autoconf needs GNU `m4' for generating `configure' scripts, but not for running them. GNU `m4' was originally written by Rene' Seindal, from Denmark. This release is considered stable. If GNU `m4' is meant to serve GNU `autoconf', beware that `m4' should be fully installed *prior to* configuring `autoconf' itself. Likewise, if you intend on hacking GNU `m4' from git, the bootstrap process requires that you first install a released copy of GNU `m4'. If you are just trying to build `m4' from a released tarball, you should not normally need to run `./bootstrap' or `autoreconf'; just go ahead and start with `./configure'. If you are trying to build `m4' from git, more information can be found in the version-control-only file HACKING. M4 has an optional dependency on the libsigsegv library: http://www.gnu.org/software/libsigsegv/ If the library has not been installed in the standard location, you can use `./configure --with-libsigsegv-prefix=/path/to/dir', to make the build of `m4' use /path/to/dir/include/sigsegv.h as appropriate. The use of this library is optional; the only difference in having it available is that it increases the number of platforms where `m4' can correctly distinguish stack overflow from an internal bug. It is recommended that you use version 2.9 or newer. In the subdirectory `examples' you will find various m4 files, ranging from trivial test files to rather advanced macros. If you intend to use m4 seriously, you might find useful material down there. See file `BACKLOG' for a summary of pending mail and articles. See file `COPYING' for copying conditions. Note that M4 is distributed under the GNU Public License version 3 or later. Some files in the distribution are copied from the gnulib project, and hence bear the designation version 2 or later because they are unmodified from gnulib; however, if you modify these files using M4 rather than gnulib as the source, you must update the license to be GPLv3 or later. See file `INSTALL' for compilation and installation instructions. See file `NEWS' for a list of major changes in the current release. See file `THANKS' for a list of contributors. By default, the `syscmd' and `esyscmd' macros try to use the first instance of `sh' found by `command -p getconf PATH' at configure time, with a default of `/bin/sh'. If that default is inappropriate, you can use `./configure --with-syscmd-shell=location' to specify the shell to use. By using `./configure --enable-changeword', you get an experimental feature which allows for changing the syntax of what is a "word" in `m4'. This feature will not be present in m4 2.0, but will be replaced by other new features which provide similar capability, so do not count on it. Send bug reports to `bug-m4@gnu.org'. A bug report is an adequate description of the problem: your input, what you expected, what you got, and why this is wrong. Diffs are welcome, but they only describe a solution, from which the problem might be uneasy to infer. For any copyright year range specified as YYYY-ZZZZ in this package note that the range specifies every single year in that closed interval. ======================================================================== Copyright (C) 2000, 2005-2014, 2016 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the ``GNU Free Documentation License'' file as part of this distribution. usr/share/doc/libssh/README000064400000002437152527630460011410 0ustar00 _ _ _ _ (_) (_) (_) (_) (_) _ (_) _ _ _ _ _ (_) _ (_) (_) (_)(_) _ (_)(_) (_)(_) (_)(_) _ (_) (_) (_) (_) _ (_) _ (_) (_) (_) (_) (_) (_)(_)(_) (_)(_) (_)(_) (_) (_).org The SSH library ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1* Why ? -_-_-_-_-_ Why not ? :) I've began to work on my own implementation of the ssh protocol because i didn't like the currently public ones. Not any allowed you to import and use the functions as a powerful library, and so i worked on a library-based SSH implementation which was non-existing in the free and open source software world. 2* How/Who ? -_-_-_-_-_-_-_ If you downloaded this file, you must know what it is : a library for accessing ssh client services through C libraries calls in a simple manner. Everybody can use this software under the terms of the LGPL - see the COPYING file If you ask yourself how to compile libssh, please read INSTALL before anything. 3* Where ? -_-_-_-_-_-_ https://www.libssh.org 4* Contributing -_-_-_-_-_-_-_-_-_ Please read the file 'SubmittingPatches' next to this README file. It explains our copyright policy and how you should send patches for upstream inclusion. Have fun and happy libssh hacking! The libssh Team usr/share/doc/tcl/README000064400000014345152527633740010713 0ustar00README: Tcl This is the Tcl 8.6.8 source distribution. http://sourceforge.net/projects/tcl/files/Tcl/ You can get any source release of Tcl from the URL above. Contents -------- 1. Introduction 2. Documentation 3. Compiling and installing Tcl 4. Development tools 5. Tcl newsgroup 6. The Tcler's Wiki 7. Mailing lists 8. Support and Training 9. Tracking Development 10. Thank You 1. Introduction --------------- Tcl provides a powerful platform for creating integration applications that tie together diverse applications, protocols, devices, and frameworks. When paired with the Tk toolkit, Tcl provides the fastest and most powerful way to create GUI applications that run on PCs, Unix, and Mac OS X. Tcl can also be used for a variety of web-related tasks and for creating powerful command languages for applications. Tcl is maintained, enhanced, and distributed freely by the Tcl community. Source code development and tracking of bug reports and feature requests takes place at: http://core.tcl.tk/ Tcl/Tk release and mailing list services are hosted by SourceForge: http://sourceforge.net/projects/tcl/ with the Tcl Developer Xchange hosted at: http://www.tcl.tk/ Tcl is a freely available open source package. You can do virtually anything you like with it, such as modifying it, redistributing it, and selling it either in whole or in part. See the file "license.terms" for complete information. 2. Documentation ---------------- Extensive documentation is available at our website. The home page for this release, including new features, is http://www.tcl.tk/software/tcltk/8.6.html Detailed release notes can be found at the file distributions page by clicking on the relevant version. http://sourceforge.net/projects/tcl/files/Tcl/ Information about Tcl itself can be found at http://www.tcl.tk/about/ There have been many Tcl books on the market. Many are mentioned in the Wiki: http://wiki.tcl.tk/_/ref?N=25206 To view the complete set of reference manual entries for Tcl 8.6 online, visit the URL: http://www.tcl.tk/man/tcl8.6/ 2a. Unix Documentation ---------------------- The "doc" subdirectory in this release contains a complete set of reference manual entries for Tcl. Files with extension ".1" are for programs (for example, tclsh.1); files with extension ".3" are for C library procedures; and files with extension ".n" describe Tcl commands. The file "doc/Tcl.n" gives a quick summary of the Tcl language syntax. To print any of the man pages on Unix, cd to the "doc" directory and invoke your favorite variant of troff using the normal -man macros, for example ditroff -man Tcl.n to print Tcl.n. If Tcl has been installed correctly and your "man" program supports it, you should be able to access the Tcl manual entries using the normal "man" mechanisms, such as man Tcl 2b. Windows Documentation ------------------------- The "doc" subdirectory in this release contains a complete set of Windows help files for Tcl. Once you install this Tcl release, a shortcut to the Windows help Tcl documentation will appear in the "Start" menu: Start | Programs | Tcl | Tcl Help 3. Compiling and installing Tcl ------------------------------- There are brief notes in the unix/README, win/README, and macosx/README about compiling on these different platforms. There is additional information about building Tcl from sources at http://www.tcl.tk/doc/howto/compile.html 4. Development tools --------------------------- ActiveState produces a high quality set of commercial quality development tools that is available to accelerate your Tcl application development. Tcl Dev Kit builds on the earlier TclPro toolset and provides a debugger, static code checker, single-file wrapping utility, bytecode compiler and more. More information can be found at http://www.ActiveState.com/Tcl 5. Tcl newsgroup ---------------- There is a USENET news group, "comp.lang.tcl", intended for the exchange of information about Tcl, Tk, and related applications. The newsgroup is a great place to ask general information questions. For bug reports, please see the "Support and bug fixes" section below. 6. Tcl'ers Wiki --------------- A Wiki-based open community site covering all aspects of Tcl/Tk is at: http://wiki.tcl.tk/ It is dedicated to the Tcl programming language and its extensions. A wealth of useful information can be found there. It contains code snippets, references to papers, books, and FAQs, as well as pointers to development tools, extensions, and applications. You can also recommend additional URLs by editing the wiki yourself. 7. Mailing lists ---------------- Several mailing lists are hosted at SourceForge to discuss development or use issues (like Macintosh and Windows topics). For more information and to subscribe, visit: http://sourceforge.net/projects/tcl/ and go to the Mailing Lists page. 8. Support and Training ------------------------ We are very interested in receiving bug reports, patches, and suggestions for improvements. We prefer that you send this information to us as tickets entered into our tracker at: http://core.tcl.tk/tcl/reportlist We will log and follow-up on each bug, although we cannot promise a specific turn-around time. Enhancements may take longer and may not happen at all unless there is widespread support for them (we're trying to slow the rate at which Tcl/Tk turns into a kitchen sink). It's very difficult to make incompatible changes to Tcl/Tk at this point, due to the size of the installed base. The Tcl community is too large for us to provide much individual support for users. If you need help we suggest that you post questions to comp.lang.tcl. We read the newsgroup and will attempt to answer esoteric questions for which no one else is likely to know the answer. In addition, see the following Web site for links to other organizations that offer Tcl/Tk training: http://wiki.tcl.tk/training 9. Tracking Development ----------------------- Tcl is developed in public. To keep an eye on how Tcl is changing, see http://core.tcl.tk/ 10. Thank You ------------- We'd like to express our thanks to the Tcl community for all the helpful suggestions, bug reports, and patches we have received. Tcl/Tk has improved vastly and will continue to do so with your help. usr/share/doc/perl-File-Temp/README000064400000000667152527634230012650 0ustar00This archive contains the distribution File-Temp, version 0.2306: return name and handle of a temporary file safely This software is copyright (c) 2018 by Tim Jenness and the UK Particle Physics and Astronomy Research Council. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. This README file was generated by Dist::Zilla::Plugin::Readme v6.012. usr/share/doc/e2fsprogs/README000064400000001317152527653060012033 0ustar00 This is the new version (1.45.6) of the second extended file system management programs. From time to time, I release new versions of e2fsprogs, to fix bugs and to make the utilities more robust. You can always find information about the latest version at the the e2fsprogs web page, which is: http://e2fsprogs.sourceforge.net The INSTALL file has instructions on building and installing e2fsprogs. Provisions for building Red Hat RPMs and Debian dpkg files are supplied as well. In case of bugs in these programs, please contact Ted Ts'o at tytso@mit.edu or tytso@alum.mit.edu. See the e2fsck man page for suggestions of what sort of information to include when submitting bug reports for these programs. usr/share/doc/polkit/README000064400000002460152527654550011430 0ustar00OVERVIEW ======== polkit is a toolkit for defining and handling authorizations. It is used for allowing unprivileged processes to speak to privileged processes. RELEASES ======== Releases of polkit are available in compressed tarballs from http://www.freedesktop.org/software/polkit/releases/ To verify the authenticity of the compressed tarball, use this command $ gpg --verify polkit-$(VERSION).tar.gz.sign polkit-$(VERSION).tar.gz gpg: Signature made Sat 10 Mar 2012 03:00:30 PM EST using RSA key ID 3418A891 gpg: Good signature from "David Zeuthen " gpg: aka "[jpeg image of size 5237]" BUGS and DEVELOPMENT ==================== Please report non-security bugs via the freedesktop.org bugzilla at https://bugs.freedesktop.org/enter_bug.cgi?product=PolicyKit SECURITY ISSUES =============== polkit uses the same mechanism for reporting security issues as dbus, the most recent copy of instructions can be found in the DBus git repository: http://cgit.freedesktop.org/dbus/dbus/tree/HACKING A copy of the instructions as of 2015-06-04: If you find a security vulnerability that is not known to the public, please report it privately to dbus-security@lists.freedesktop.org or by reporting a freedesktop.org bug that is marked as restricted to the "D-BUS security group". usr/share/doc/unixODBC/README000075500000002504152527777360011550 0ustar00+-------------------------------------------------------------+ | unixODBC | +-------------------------------------------------------------+ README --------------------------------------------------------------- Description: unixODBC is an Open Source ODBC sub-system and an ODBC SDK for Linux, Mac OSX, and UNIX. License: All libraries are LGPL Version 2.1 All programs are GPL Version 2.1. Parts: unixODBC includes the following; - Driver Manager - Installer Library and command line tool - Command Line Tools to help install a driver and work with SQL How To Start: Look for and read README files with extensions of interest. Then read the INSTALL file. You can also jump into the doc directory and browse information there. And do not forget the online stuff. Some documentation may be a bit out of date the vast majority of it should be ok. Config Files: The ODBC Installer Library is responsible for reading and writing the unixODBC config files. The savvy can look at; _odbcinst_SystemINI.c _odbcinst_UserINI.c In any case; you can override where unixODBC looks for its system config files by setting the ODBCSYSINI environment variable during the use of unixODBC. Resources: http://sourceforge.net/projects/unixodbc/ usr/share/doc/openssl/README000064400000006126152530005120011565 0ustar00 OpenSSL 1.1.1k 25 Mar 2021 Copyright (c) 1998-2021 The OpenSSL Project Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson All rights reserved. DESCRIPTION ----------- The OpenSSL Project is a collaborative effort to develop a robust, commercial-grade, fully featured, and Open Source toolkit implementing the Transport Layer Security (TLS) protocols (including SSLv3) as well as a full-strength general purpose cryptographic library. OpenSSL is descended from the SSLeay library developed by Eric A. Young and Tim J. Hudson. The OpenSSL toolkit is licensed under a dual-license (the OpenSSL license plus the SSLeay license), which means that you are free to get and use it for commercial and non-commercial purposes as long as you fulfill the conditions of both licenses. OVERVIEW -------- The OpenSSL toolkit includes: libssl (with platform specific naming): Provides the client and server-side implementations for SSLv3 and TLS. libcrypto (with platform specific naming): Provides general cryptographic and X.509 support needed by SSL/TLS but not logically part of it. openssl: A command line tool that can be used for: Creation of key parameters Creation of X.509 certificates, CSRs and CRLs Calculation of message digests Encryption and decryption SSL/TLS client and server tests Handling of S/MIME signed or encrypted mail And more... INSTALLATION ------------ See the appropriate file: INSTALL Linux, Unix, Windows, OpenVMS, ... NOTES.* INSTALL addendums for different platforms SUPPORT ------- See the OpenSSL website www.openssl.org for details on how to obtain commercial technical support. Free community support is available through the openssl-users email list (see https://www.openssl.org/community/mailinglists.html for further details). If you have any problems with OpenSSL then please take the following steps first: - Download the latest version from the repository to see if the problem has already been addressed - Configure with no-asm - Remove compiler optimization flags If you wish to report a bug then please include the following information and create an issue on GitHub: - OpenSSL version: output of 'openssl version -a' - Configuration data: output of 'perl configdata.pm --dump' - OS Name, Version, Hardware platform - Compiler Details (name, version) - Application Details (name, version) - Problem Description (steps that will reproduce the problem, if known) - Stack Traceback (if the application dumps core) Just because something doesn't work the way you expect does not mean it is necessarily a bug in OpenSSL. Use the openssl-users email list for this type of query. HOW TO CONTRIBUTE TO OpenSSL ---------------------------- See CONTRIBUTING LEGALITIES ---------- A number of nations restrict the use or export of cryptography. If you are potentially subject to such restrictions you should seek competent professional legal advice before attempting to develop or distribute cryptographic code. usr/share/doc/libev/README000064400000004774152530023420011215 0ustar00libev is a high-performance event loop/event model with lots of features. (see benchmark at http://libev.schmorp.de/bench.html) ABOUT Homepage: http://software.schmorp.de/pkg/libev Mailinglist: libev@lists.schmorp.de http://lists.schmorp.de/cgi-bin/mailman/listinfo/libev Library Documentation: http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod Libev is modelled (very losely) after libevent and the Event perl module, but is faster, scales better and is more correct, and also more featureful. And also smaller. Yay. Some of the specialties of libev not commonly found elsewhere are: - extensive and detailed, readable documentation (not doxygen garbage). - fully supports fork, can detect fork in various ways and automatically re-arms kernel mechanisms that do not support fork. - highly optimised select, poll, epoll, kqueue and event ports backends. - filesystem object (path) watching (with optional linux inotify support). - wallclock-based times (using absolute time, cron-like). - relative timers/timeouts (handle time jumps). - fast intra-thread communication between multiple event loops (with optional fast linux eventfd backend). - extremely easy to embed (fully documented, no dependencies, autoconf supported but optional). - very small codebase, no bloated library, simple code. - fully extensible by being able to plug into the event loop, integrate other event loops, integrate other event loop users. - very little memory use (small watchers, small event loop data). - optional C++ interface allowing method and function callbacks at no extra memory or runtime overhead. - optional Perl interface with similar characteristics (capable of running Glib/Gtk2 on libev). - support for other languages (multiple C++ interfaces, D, Ruby, Python) available from third-parties. Examples of programs that embed libev: the EV perl module, node.js, auditd, rxvt-unicode, gvpe (GNU Virtual Private Ethernet), the Deliantra MMORPG server (http://www.deliantra.net/), Rubinius (a next-generation Ruby VM), the Ebb web server, the Rev event toolkit. CONTRIBUTORS libev was written and designed by Marc Lehmann and Emanuele Giaquinta. The following people sent in patches or made other noteworthy contributions to the design (for minor patches, see the Changes file. If I forgot to include you, please shout at me, it was an accident): W.C.A. Wijngaards Christopher Layne Chris Brody usr/share/doc/libpaper/README000064400000002755152530033210011705 0ustar00The paper library and accompanying files are intended to provide a simple way for applications to take actions based on a system- or user-specified paper size. This release is quite minimal, its purpose being to provide really basic functions (obtaining the system paper name and getting the height and width of a given kond of paper) that applications can immediately integrate. A more complete library, using a capabilities file for papers (giving, in addition to the size, informations like paper weigth, color, etc) will be released later. See the sources for paperconf(1) in src/paper.c for how to use the library. Adding new paper sizes ====================== If a paper format is missing, one need to add it to lib/paperspecs. The format of this file is one paper format per line, with the name of the format, the width and height of the format separated with space. You may add an option measurement unit among in, ft, pt, m, dm, cm, mm or you may leave the default unit of "point". By defaults the width and height are specified in the "point" unit, which is 1/72 inch (2.54 cm). This is the A4 entry: a4 210 297 mm that was previously written as a4 595 842 The sizes here are 595 points / 72 points pr inch * 2.54 cm per inch = 20.99 cm and 842/72*2.54 = 29.70 cm. The A4 format is 210x297 mm so this is a good approximation. (Source: ) Copyright (C) Yves Arrouye , 1996 Adrian Bunk , 2000 usr/share/doc/libtool/README000064400000000302152530073420011544 0ustar00This is an alpha testing release of [GNU Libtool][libtool], a generic library support script. [Libtool][] hides the complexity of using shared libraries behind a consistent, portable interface.usr/share/doc/libtasn1/README000064400000001650152530137570011633 0ustar00This is GNU Libtasn1, a small ASN.1 library. The C library (libtasn1.*) is licensed under the GNU Lesser General Public License version 2.1 or later. See the file COPYING.LIB. The command line tool, self tests, examples, and other auxilliary files, are licensed under the GNU General Public License version 3.0 or later. See the file COPYING. The manual is in doc/. You can also browse the manual and see updates about the project on the homepage: http://www.gnu.org/software/libtasn1/ For any copyright year range specified as YYYY-ZZZZ in this package note that the range specifies every single year in that closed interval. ---------------------------------------------------------------------- Copyright (C) 2002-2014 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. usr/share/doc/tk/README000064400000002506152530211520010521 0ustar00README: Tk This is the Tk 8.6.8 source distribution. http://sourceforge.net/projects/tcl/files/Tcl/ You can get any source release of Tk from the URL above. 1. Introduction --------------- This directory contains the sources and documentation for Tk, an X11 toolkit implemented with the Tcl scripting language. For details on features, incompatibilities, and potential problems with this release, see the Tcl/Tk 8.6 Web page at http://www.tcl.tk/software/tcltk/8.6.html or refer to the "changes" file in this directory, which contains a historical record of all changes to Tk. Tk is maintained, enhanced, and distributed freely by the Tcl community. Source code development and tracking of bug reports and feature requests takes place at: http://core.tcl.tk/tk/ with the Tcl Developer Xchange at: http://www.tcl.tk/ Tk is a freely available open source package. You can do virtually anything you like with it, such as modifying it, redistributing it, and selling it either in whole or in part. See the file "license.terms" for complete information. 2. See Tcl README ----------------- Please see the README file that comes with the associated Tcl release for more information. There are pointers there to extensive documentation. In addition, there are additional README files in the subdirectories of this distribution. usr/share/doc/enchant2/README000064400000006262152530215130011611 0ustar00libenchant -- Generic spell checking library Original author: Dom Lachowicz libenchant is licensed under the terms of the GNU LGPL (see the file COPYING.LIB), with a special exception allowing the use of proprietary spell-checking systems. Enchant aims to provide a simple but comprehensive abstraction for dealing with different spell checking libraries in a consistent way. A client, such as a text editor or word processor, need not know anything about a specific spell-checker, and since all back-ends are plugins, new spell-checkers can be added without needing any change to the program using Enchant. Enchant can be configured by the user, who can even add spell-checker plugins if desired. Enchant currently works with the following spell-checkers: * Hunspell (formerly Myspell) * GNU Aspell * Hspell * Voikko * Apple Spell (macOS only) * Zemberek Enchant is written in C and C++, and its only external dependency is glib. Enchant bindings are supplied for C and C++; there are third-party bindings for: Python: http://pythonhosted.org/pyenchant/ Ruby: https://github.com/pennyapp/ruby-enchant Go: http://pythonhosted.org/pyenchant/ Sharing personal word lists between spell-checkers -------------------------------------------------- It is possible, and usually safe, to share Enchant’s personal word lists with other spelling checkers that use the same format (a simple plain text file with one word per line). The spell-checkers known to be compatible are Hunspell and Ispell. (Although Enchant does not support Ispell as a back-end, it’s still fine to share word lists with it.) Other spell-checkers supported by Enchant are either incompatible, or have no personal word list mechanism. There may well be yet other spell-checkers, unknown to Enchant, that use the same format. Some applications use Hunspell, but store the personal word list under another name or in another location. Firefox is one example. Firefox also seems to reorder its word list when updating it; again, this is OK, as the result is still in the same format. To share word lists with Enchant, find the other spelling checker’s word list file, e.g. ~/.hunspell_fr_FR, and merge it with the corresponding Enchant file, in this case ~/.config/enchant/fr_FR.dic (on a GNU or BSD system). Use the following command, replacing ENCHANT-DICT and OTHER-DICT with the corresponding dictionary file names: cat ENCHANT-DICT OTHER-DICT | sort -u > merged.txt Take a look at merged.txt to check the merge has worked, then mv merged.txt ENCHANT-DICT rm OTHER-DICT ln -s OTHER-DICT ENCHANT-DICT to replace the other dictionary file with a link to the Enchant dictionary, again filling in the name of the dictionary files. Bug reports and development --------------------------- To report libenchant bugs or request features, please visit https://github.com/AbiWord/enchant If you can't use GitHub, you can use the (low-traffic) AbiWord-devel list. To subscribe send a mail to: abiword-dev-request@abisource.com and in the body of the message write "subscribe" An archive of the mailing lists is available at: http://www.abisource.com/mailinglists/abiword-dev/ Enchant has taken insight from GNU Aspell: http://aspell.net usr/share/doc/libXaw/README000064400000001331152530334230011330 0ustar00Xaw is the X Athena Widget Set. Xaw is a widget set based on the X Toolkit Intrinsics (Xt) Library. All questions regarding this software should be directed at the Xorg mailing list: http://lists.freedesktop.org/mailman/listinfo/xorg Please submit bug reports to the Xorg bugzilla: https://bugs.freedesktop.org/enter_bug.cgi?product=xorg The master development code repository can be found at: git://anongit.freedesktop.org/git/xorg/lib/libXaw http://cgit.freedesktop.org/xorg/lib/libXaw For patch submission instructions, see: http://www.x.org/wiki/Development/Documentation/SubmittingPatches For more information on the git code manager, see: http://wiki.x.org/wiki/GitPage usr/share/doc/patch/README000064400000005340152530404040011202 0ustar00This is GNU patch, which applies diff files to original files. This version of patch has many changes made by the Free Software Foundation. They add support for: * handling arbitrary binary data and large files * the unified context diff format that GNU diff can produce * merging into files instead of creating reject files * making GNU Emacs-style backup files * improved interaction with RCS and SCCS * the GNU conventions for option parsing and configuring and compilation. * better POSIX compliance They also fix some bugs. If you obtained this file as part of a "git clone", then see the README-hacking file. If this file came to you as part of a tar archive, then see the file INSTALL for compilation and installation instructions. See the file NEWS for a list of major changes in the current release. A more detailed description of all changes can be found in the file ChangeLog in tar archives, and with "git log" which shows the version control history. Tutorial-style documentation for patch is included in the GNU Diffutils package; get GNU Diffutils 2.8 or later for up-to-date documentation for patch. Use `configure --disable-largefile' to disable large file support; this is reportedly necessary on Red Hat GNU/Linux 6.0 to avoid a C library bug. For MS-DOS using DJGPP tools, see the file pc/djgpp/README. For other systems, copy config.hin to config.h and change #undef statements in it to #define as appropriate for your system, and copy Makefile.in to Makefile and set the variables that are enclosed in @ signs as appropriate for your system. Please send bug reports for this version of patch to . The Free Software Foundation is distributing this version of patch independently because as of this writing, Larry Wall has not released a new version of patch since mid-1988. We have heard that he has been too busy working on other things, like Perl. He has graciously agreed to let GNU `patch' be distributed under the terms of the GNU General Public License. ------ Copyright (C) 1984, 1985, 1986, 1987, 1988 Larry Wall Copyright (C) 1989-1993, 1997, 1999, 2002, 2009, 2011-2012 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . usr/share/doc/libnfsidmap/README000064400000012421152530531540012377 0ustar00Library to help mapping id's, mainly for NFSv4. When NFSv4 is using AUTH_GSS (which currently only supports Kerberos v5), the NFSv4 server mapping functions MUST use secure communications. We provide several mapping functions, configured using /etc/idmapd.conf As of the 0.21 version of this library, mapping methods are separate dynamically-loaded libaries. This allows the separation of any LDAP requirements from the main libnfsidmap library. The main library now basically loads and calls the functions in the method-specific libaries. The method libraries are expected to be named "libnfsidmap_.so", for example, "libnfsidmap_nsswitch.so". Several methods may be specified in the /etc/idmapd.conf configuration file. Each method is called until a mapping is found. The following translation methods are delivered in the default distribution: nsswitch -------- The default method is called nsswitch. This method uses the get password file entry functions getpwname(), getpwid(), and the get group file entry functions getgrnam(), getgrgid(). The nsswitch method can therefore be configured by the /etc/nss_switch.conf passwd data base stanza. If secure communications are required (AUTH_GSS), the passwd data base stanza can contain the 'file' entry because the rpc.idmapd and rpc.svcgssd run as root, and/or the 'ldap' entry if the ldap service is configured to use SASL in /etc/ldap.conf. The 'nis' entry is NOT recommended, it does not have a secure communications mode. static ------ This method works only for translating GSS authenticated names to local names. It uses a static mapping setup defined in the [Static] section of the idmapd.conf file. The form of the entries are: = For example: nfs/host.domain.org@DOMAIN.ORG = root It is recommended that this module be used in combination with another module (e.g. the nsswitch module). umich_ldap ---------- An experimental method, umich_ldap uses an LDAP schema and ldap functions to perform translations. This method is designed to service remote users, allowing remote users to set and get ACLs as well as map GSS principals to id's. The functions are LDAP based, and the ldap search filters look for attribute names set by idmapd.conf [UMICH_SCHEMA] NFSv4_name_attr, NFSv4_group_attr, and GSS_principal_attr. It is assumed that the LDAP server will index these attributes, and that these attributes will be associated with the nss.schema posixAccount uidNumber and gidNumber. We expect that the uidNumber and gidNumber attribute will be configurable via the idmapd.conf file soon. NFSv4_name_attr holds an NFSv4 name of the form user@domain, where the domain portion of the name is a valid NFSv4 domain name. There is a one-to-one mapping between the NFSv4_name_attr name and a UID. NFSv4_group_attr holds an NFSv4 name of the form group@domain, where the domain portion of the name is a valid NFSv4 domain name. There is a one-to-one mapping between the NFSv4_group_attr name and a GID. GSS_principal_attr holds a GSS security mechanism specific context principal name. For Kerberos v5, it is a Kerberos principal principal@REALM. For SPKM3, it is a PKI DN such as (line is split):` "/C=US/ST=Michigan/O=University of Michigan/OU=UMICH Kerberos Certification Authority/CN=andros/USERID=andros/Email=andros@UMICH.EDU". There is a many-to-one relationship between the GSS_principal_attr name and a UID plus GID. We have defined LDAP object classes for our experimental NFSv4 id mapping. We made the attribute names configurable so that other sites could still use the TR_UMICH_LDAP translation functions with different LDAP attribute names. We use the same attribute name, NFSv4Name for the NFSv4_name_attr and the NFSv4_group_attr. For local users and remote users that we wish to give a local machine account, we add the NFSv4Name attribute and the GSSAuthName attribute to the existing inetorgPerson and posixAccount schema. For remote users that we do not wish to give a local machine account, we use the NFSv4RemotePerson object to contain the NFSv4Name, uidNumber, gidNumber, and GSSAuthName. nfsv4.schema ------------ attributetype ( 1.3.6.1.4.1.250.1.61 NAME ( 'NFSv4Name') DESC 'NFS version 4 Name' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE) attributetype ( 1.3.6.1.4.1.250.1.62 NAME ( 'GSSAuthName') DESC 'RPCSEC GSS authenticated user name' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26) # # minimal information for NFSv4 access. used when local filesystem # access is not permitted (nsswitch ldap calls fail), or when # inetorgPerson is too much info. # objectclass ( 1.3.6.1.4.1.250.1.60 NAME 'NFSv4RemotePerson' DESC 'NFS version4 person from remote NFSv4 Domain' SUP top STRUCTURAL MUST ( uidNumber $ gidNumber $ NFSv4Name ) MAY ( cn $ GSSAuthName $ description) ) # # minimal information for NFSv4 access. used when local filesystem # access is not permitted (nsswitch ldap calls fail), or when # inetorgPerson is too much info. # objectclass ( 1.3.6.1.4.1.250.1.63 NAME 'NFSv4RemoteGroup' DESC 'NFS version4 group from remote NFSv4 Domain' SUP top STRUCTURAL MUST ( gidNumber $ NFSv4Name ) MAY ( cn $ memberUid $ description) ) usr/share/doc/graphviz/README000064400000000213152530552030011732 0ustar00Graphviz - Graph Drawing Programs from AT&T Research and Lucent Bell Labs See doc/build.html for prerequisites and detailed build notes. usr/share/doc/audit/README000064400000011530152530553000011210 0ustar00This is some background information about the Linux Auditing Framework. LICENSE ======= The audit daemon is released as GPL'd code. The audit daemon's libraries libaudit.* and libauparse.* are released under LGPL so that it may be linked with 3rd party software. BUILDING ======== See the Install(.tmp) file. USAGE ===== See the man pages for audit, auditctl, audit.rules, ausearch, and aureport. DISCUSSION ========== Original lkml thread(s): https://marc.info/?t=107815888100001&r=1&w=2 https://marc.info/?t=107901570800002&r=1&w=2 There is a linux audit mail list where any question whether kernel design, setup and configuration, or usage can be discussed: http://www.redhat.com/mailman/listinfo/linux-audit DESIGN INFO (Very old) ===================== The main goals were to provide system call auditing with 1) as low overhead as possible, and 2) without duplicating functionality that is already provided by SELinux (and/or other security infrastructures). This framework will work "stand-alone", but is not designed to provide, e.g., CAPP functionality without another security component in place. There are two main parts, one that is always on (generic logging in audit.c) and one that you can disable at boot- or run-time (per-system-call auditing in auditsc.c). The patch includes changes to security/selinux/avc.c as an example of how system-call auditing can be integrated with other code that identifies auditable events. Logging: 1) Uses a netlink socket for communication with user-space. All messages are logged via the netlink socket if a user-space daemon is listening. If not, the messages are logged via printk to the syslog daemon (by default). 2) Messages can be dropped (optionally) based on message rate or memory use (this isn't fully integrated into the selinux/avc.c part of the patch: the avc.c code that currently does this can be eliminated). 3) When some part of the kernel generates part of an audit record, the partial record is sent immediately to user-space, AND the system call "auditable" flag is automatically set for that call -- thereby producing extra information at syscall exit (if syscall auditing is enabled). System-call auditing: 1) At task-creation time, an audit context is allocated and linked off the task structure. 2) At syscall entry time, if the audit context exists, information is filled in (syscall number, timestamp; but not arguments). 3) During the system call, calls to getname() and path_lookup() are intercepted. These routines are called when the kernel is actually looking up information that will be used to make the decision about whether the syscall will succeed or fail. An effort has been made to avoid copying the information that getname generates, since getname is already making a kernel-private copy of the information. [Note that storing copies of all syscall arguments requires complexity and overhead that arguably isn't needed. With this patch, for example, if chroot("foo") fails because you are not root, "foo" will not appear in the audit record because the kernel determined the syscall cannot proceed before it ever needed to look up "foo". This approach avoids storing user-supplied information that could be misleading or unreliable (e.g., due to a cooperative shared-memory attack) in favor of reporting information actually used by the kernel.] 4) At syscall exit time, if the "auditable" flag has been set (e.g., because SELinux generated an avc record; or some other part of the kernel detected an auditable event), the syscall-part of the audit record is generated, including file names and inode numbers (if available). Some of this information is currently complementary to the information that selinux/avc.c generates (e.g., file names and some inode numbers), but some is less complete (e.g., getname doesn't return a fully-qualified path, and this patch does not add the overhead of determining one). [Note that the complete audit record comes to userspace in pieces, which eliminates the need to store messages for arbitrarily long periods inside the kernel.] 5) At task-exit time, the audit context is destroyed. At steps 1, 2, and 4, simple filtering can be done (e.g., a database role uid might have syscall auditing disabled for performance reasons). The filtering is simple and could be made more complex. However, I tried to implement as much filtering as possible without adding significant overhead (e.g., d_path()). In general, the audit framework should rely on some other kernel component (e.g., SELinux) to make the majority of the decisions about what is and is not auditable. usr/share/doc/iproute/README000064400000002333152530616770011610 0ustar00This is a set of utilities for Linux networking. Information: https://wiki.linuxfoundation.org/networking/iproute2 Download: http://www.kernel.org/pub/linux/utils/net/iproute2/ Stable version repository: git://git.kernel.org/pub/scm/network/iproute2/iproute2.git Development repository: git://git.kernel.org/pub/scm/network/iproute2/iproute2-next.git How to compile this. -------------------- 1. libdbm arpd needs to have the berkeleydb development libraries. For Debian users this is the package with a name like libdbX.X-dev. DBM_INCLUDE points to the directory with db_185.h which is the include file used by arpd to get to the old format Berkeley database routines. Often this is in the db-devel package. 2. make The makefile will automatically build a config.mk file which contains definitions of libraries that may or may not be available on the system such as: ATM, ELF, MNL, and SELINUX. 3. include/uapi This package includes matching sanitized kernel headers because the build environment may not have up to date versions. See Makefile if you have special requirements and need to point at different kernel include files. Stephen Hemminger stephen@networkplumber.org Alexey Kuznetsov kuznet@ms2.inr.ac.ru usr/share/X11/xkb/compat/README000064400000003260152530617060011765 0ustar00The core protocol interpretation of keyboard modifiers does not include direct support for multiple keyboard groups, so XKB reports the effective keyboard group to XKB-aware clients using some of the reserved bits in the state field of some core protocol events. This modified state field would not be interpreted correctly by XKB-unaware clients, so XKB provides a group compatibility mapping which remaps the keyboard group into a core modifier mask that has similar effects, when possible. XKB maintains three compatibility state components that are used to make XKB-unaware clients(*) work as well as possible: - The compatibility state which corresponds to the effective modifier and effective group state. - The compatibility lookup state which is the core-protocol equivalent of the lookup state. - The compatibility grab state which is the nearest core-protocol equivalent of the grab state. Compatibility states are essentially the corresponding XKB states, but with the keyboard group possibly encoded as one or more modifiers. Modifiers that correspond to each keyboard group are described in this group compatibility map. ---- (*) The implementation of XKB invisibly extends the X library to use the keyboard extension if it is present. That means, clients that use library or toolkit routines to interpret keyboard events automatically use all of XKB's features; clients that directly interpret the state field of core-protocol events or the keymap directly may be affected by some of the XKB differences. Thus most clients can take all advantages without modification but it also means that XKB state can be reported to clients that have not explicitly requested the keyboard extension. usr/share/doc/microcode_ctl/README000064400000004740152530623630012724 0ustar00The microcode_ctl package contains microcode files (vendor-provided binary data and/or code in proprietary format that affects behaviour of a device) for Intel CPUs that may be loaded into the CPU during boot. This directory contains information regarding various aspects of the provided microcode files and their usage. * LICENSE.intel-ucode "license" file from the Intel x86 CPU microcode archive. * README This file. * README.caveats Caveats (mechanism for enabling/disabling usage of sets of microcode files based on caveat configuration and user preferences) documentation. Also contains general information about microcode update behaviour and links with additional information about the relevant microarchitectural vulnerabilities. * README.intel-ucode "README.md" file from the Intel x86 CPU microcode archive. * RELEASE_NOTES.intel-ucode "releasenote.md" file from the Intel x86 CPU microcode archive. * SECURITY.intel-ucode "security.md" file from the Intel x86 CPU microcode archive. * SUMMARY.intel-ucode Information about supplied microcode files extracted from their headers, in a table form. Columns have the following meaning: * "Path": path to the microcode file under one of the following directories: * /usr/share/microcode_ctl/ucode_with_caveats/intel * /usr/share/microcode_ctl/ucode_with_caveats * /usr/share/microcode_ctl * /lib/firmware * /etc/firmware * "Offset": offset of the microcode blob within the micocode file in bytes. * "Ext. Offset": offset of the extended signature header within the microcode file in bytes. * "Data Size": size of microcode data in bytes. 0 means 2000 bytes. * "Total Size": size of microcode blob in bytes, incuding headers. 0 means 2048 bytes. * "CPUID": CPU ID signature (in format returned by the CPUID instruction). * "Platform ID Mask": mask of suitable Platform IDs (provided in bits 52..50 of MSR 0x17). * "Revision": microcode revision. * "Date": microcode creation date. * "Checksum": sum (in base 1<< 32) of all 32-bit values comprising the microcode (from Offset up to Offset + Total Size). * "Codenames": list of known CPU codenames associated with the CPUID and Platform ID Mask combination. Please refer to README.cavets, section "Microcode file structure" for additional information regarding microcode header fields. * caveats Directory that contains readme files for each specific caveat. usr/share/doc/libtirpc/README000064400000004212152530711410011712 0ustar00LIBTIRPC 0.1 FROM SUN'S TIRPCSRC 2.3 29 Aug 1994 This package contains SunLib's implementation of transport-independent RPC (TI-RPC) documentation. This library forms a piece of the base of Open Network Computing (ONC), and is derived directly from the Solaris 2.3 source. TI-RPC is an enhanced version of TS-RPC that requires the UNIX System V Transport Layer Interface (TLI) or an equivalent X/Open Transport Interface (XTI). TI-RPC is on-the-wire compatible with the TS-RPC, which is supported by almost 70 vendors on all major operating systems. TS-RPC source code (RPCSRC 4.0) remains available from several internet sites. This release was a native source release, compatible for building on Solaris 2.3. It had been ported from FreeBSD 5.2.1 to GNU/Linux in 2004. Applications linked with this release's librpc must link with the United States domestic version of libcrypt in order to resolve the cbc_crypt() and ecb_crypt() functions. These routines are used with Secure RPC however all RPC programs that link with this release's librpc will need to link with the domestic libcrypt. WHAT'S NEW IN THIS RELEASE: TIRPCSRC 2.3 FROM SUN The previous release was TIRPCSRC 2.0. 1. This release is based on Solaris 2.3. The previous release was based on Solaris 2.0. This release contains a siginificant number of bug fixes and other enhancements over TIRPCSRC 2.0. 2. The RPC library is thread safe for all client-side interfaces (clnt_create, clnt_call, etc.). The server-side interfaces (svc_create, svc_run, etc.) are not thread safe in this release. The server-side interfaces will be made thread safe in the next release of TIRPCSRC. Please see the manual pages for details about which interfaces are thread safe. 3. As part of the work to make the RPC library thread-safe, rpcgen has been enhanced to generate thread-safe RPC stubs (the -M option). Note that this modifies the call-signature for the stub functions; the procedure calling the RPC stub must now pass to the stub a pointer to an allocated structure where results will be placed by the stub. See the rpcgen manual page and the rpcgen Programming Guide for details. usr/libexec/mc/extfs.d/README000064400000016446152530727530011646 0ustar00 Writing scripts for Midnight Commander's external vfs IMPORTANT NOTE: There may be some bugs left in extfs. Enjoy. Starting with version 3.1, the Midnight Commander comes with so called extfs, which is one of the virtual filesystems. This system makes it possible to create new virtual filesystems for the GNU MC very easily. To handle requests, create a shell/perl/python/etc script/program (with executable permissions) in $(libexecdir)/mc/extfs.d or in ~/.mc/extfs.d. (Note: $(libexecdir) should be substituted for actual libexecdir path stored when configured or compiled, like /usr/local/libexec or /usr/libexec). Assign a vfs suffix. For example, if you have .zip file, and would like to see what's inside it, path will be /anypath/my.zip/uzip://some_path/... In this example, .zip is suffix, but I call vfs 'uzip'. Why? Well, what this vfs essentially does is UNzip. UN is too long, so I choosed U. Note that sometime in future filesystem like zip may exist: It will take whole tree and create .zip file from it. So /usr/zip:// will be zipfile containing whole /usr tree. If your vfs does not require file to work on, add '+' to the end of name. Note, that trailing '+' in file name is not a part of vfs name, it is just an vfs attribue. So you have not use it in vfs commands: cd rpms:// is correct command, and cd rpms+:// is incorrect command. * Commands that should be implemented by your shell script ---------------------------------------------------------- Return zero from your script upon completion of the command, otherwise nonzero for failure or in case of an unsupported command. $libdir/extfs/prefix command [arguments] * Command: list archivename This command should list the complete archive content in the following format (a little modified ls -l listing): AAAAAAA NNN OOOOOOOO GGGGGGGG SSSSSSSS DATETIME [PATH/]FILENAME [-> [PATH/]FILENAME[/]]] where (things in [] are optional): AAAAAAA is the permission string like in ls -l NNN is the number of links OOOOOOOO is the owner (either UID or name) GGGGGGGG is the group (either GID or name) SSSSSSSS is the file size FILENAME is the filename PATH is the path from the archive's root without the leading slash (/) DATETIME has one of the following formats: Mon DD hh:mm[:ss], Mon DD YYYY, MM-DD-YYYY hh:mm[:ss] where Mon is a three letter English month name, DD is day 01-31 (can be 1-31, if following Mon), MM is month 01-12, YYYY is four digit year, hh is hours, mm is minutes, and ss is optional seconds. If the -> [PATH/]FILENAME part is present, it means: If permissions start with an l (ell), then it is the name that symlink points to. (If this PATH starts with a MC vfs prefix, then it is a symlink somewhere to the other virtual filesystem (if you want to specify path from the local root, use local:/path_name instead of /path_name, since /path_name means from root of the archive listed). If permissions do not start with l, but number of links is greater than one, then it says that this file should be a hardlinked with the other file. * Command: copyout archivename storedfilename extractto This should extract from archive archivename the file called storedfilename (possibly with path if not located in archive's root [this is wrong. current extfs strips paths! -- pavel@ucw.cz]) to file extractto. * Command: copyin archivename storedfilename sourcefile This should add to the archivename the sourcefile with the name storedfilename inside the archive. Important note: archivename in the above examples may not have the extension you are expecting to have, like it may happen that archivename will be something like /tmp/f43513254 or just anything. Some archivers do not like it, so you'll have to find some workaround. * Command: rm archivename storedfilename This should remove storedfilename from archivename. * Command: mkdir archivename dirname This should create a new directory called dirname inside archivename. * Command: rmdir archivename dirname This should remove an existing directory dirname. If the directory is not empty, mc will recursively delete it (possibly prompting). * Command: run Undocumented :-) --------------------------------------------------------- Don't forget to mark this file executable (chmod 755 ThisFile, for example) For skeleton structure of executable, look at some of filesystems similar to yours. --------------------------------------------------------- In constructing these routines, errors will be made, and mc will not display a malformed printing line. That can lead the programmer down many false trails in search of the bug. Since this routine is an executable shell script it can be run from the command line independently of mc, and its output will show on the console or can be redirected to a file. * Putting it to use ---------------------------------------------------------- The file .mc.ext in a home directory, and in mc's user directory (commonly /etc/mc), contains instructions for operations on files depending on filename extensions. It is well documented in other files in this distribution, so here are just a few notes specifically on use of the Virtual File System you just built. There are entries in .mc.ext defining a few operations that can be done on a file from an mc panel. Typically they are annotated with a hash mark and a file extension like this: # zip There must be a way to find the file by extension, so the next line does that. In essence it says "identify the string ".zip" or (|) ".ZIP" at the end ($) of a filename": regex/\.(zip|ZIP)$ The operations themselves follow that. They must be indented by at least a space, and a tab works as well. In particular, the Open operation will now use your new virtual file system by cd'ing to it like this: Open=%cd zip:%d/%p This is the line used when a file is highlighted in a panel and the user presses or . The contents of the archive should show just as if they were in a real directory, and can be manipulated as such. The rest of the entry pertains to use of the F3 View key: View=%view{ascii} unzip -v %f And perhaps an optional icon for X: Icon=zip.xpm And perhaps an operation to extract the contents of the file, called from a menu selection: Extract=unzip %f '*' This is just an example. The current entry for .zip files has a menu selection of 'Unzip' which could be used in place of 'Extract'. What goes here depends on what items you have in, or add to, the menu system, and that's another subject. The sum of this is the .mc.ext entry: # zip regex/\.(zip|ZIP)$ Open=%cd %p/uzip:// View=%view{ascii} unzip -v %f Icon=zip.xpm Extract=unzip %f '*' Add an entry like this to the .mc.ext file in a user's home directory, If you want others to have it, add it to the mc.ext file in the mc system directory, often /etc/mc/mc.ext. Notice this file is not prepended with a dot. Once all this is done, and things are in their proper places, exit mc if you were using it, and restart it so it picks up the new information. That's all there is to it. The hardest part is making a listing function that sorts the output of a system listing command and turns it into a form that mc can use. Currently awk (or gawk) is used because nearly all systems have it. If another scripting language is available, like perl, that could also be used. usr/share/doc/mcpp/README000064400000004302152530767240011055 0ustar00<< What is MCPP >> MCPP is a C/C++ preprocessor with the following features: 1. Implements all of C90, C99 and C++98 features. It has the highest conformance. 2. Accompanies a validation suite to test the C/C++ preprocessors comprehensively. When it is applied to the existing preprocessors, MCPP shows outstanding result. 3. Has a variety of accurate diagnostic messages. This allows examination of most preprocessing problems of source, like potential bugs or portability problems. 4. Has various #pragma directives to output debug information. 5. Supports the various encodings of multi-byte characters for Japan, China, Taiwan and Korea. 6. Highly portable. Supports many compiler systems on UNIX-like systems and Windows. It can replace resident preprocessor of the compiler system. It can also behave independently from any compiler systems. Moreover, it can be built as a subroutine from any other main program, too. 7. Preprocessors of various behavior specifications can be generated from the source. 8. Is an open source software released under BSD-style-license. 9. Full documentations in Japanese and English are attached. MCPP is probably the best C preprocessor in the world. MCPP was selected as one of the "Exploratory Software Projects" of the Information-technology Promotion Agency (IPA), Japan, in year 2002 and 2003. With its achievements, the author was evaluated as one of the highest rank programmers. The sources and documents of MCPP are found at: http://mcpp.sourceforge.net/ Please read mcpp-summary.pdf for the overview of MCPP and Validation Suite. Please read INSTALL (INSTALL-jp) for how to install MCPP on your system from the source. Refer to the above web page for installation of the binary packages of MCPP. All the files except mcpp-summary.pdf are normal text files. In the .tar.gz file, newline of the text files are [LF], and encoding of INSTALL-jp is EUC-JP. In the .zip file, newline of the text files are [CR][LF], and encoding of INSTALL-jp is shift-JIS. I would like to hear from many C programmers for reviews, comments and the interest to participate in development. Kiyoshi Matsui usr/share/doc/make/README000064400000015225152530776750011047 0ustar00This directory contains the 4.2.1 release of GNU Make. See the file NEWS for the user-visible changes from previous releases. In addition, there have been bugs fixed. Please check the system-specific notes below for any caveats related to your operating system. For general building and installation instructions, see the file INSTALL. If you need to build GNU Make and have no other 'make' program to use, you can use the shell script 'build.sh' instead. To do this, first run 'configure' as described in INSTALL. Then, instead of typing 'make' to build the program, type 'sh build.sh'. This should compile the program in the current directory. Then you will have a Make program that you can use for './make install', or whatever else. Some systems' Make programs are broken and cannot process the Makefile for GNU Make. If you get errors from your system's Make when building GNU Make, try using 'build.sh' instead. GNU Make is free software. See the file COPYING for copying conditions. GNU Make is copyright by the Free Software Foundation. Copyright notices condense sequential years into a range; e.g. "1987-1994" means all years from 1987 to 1994 inclusive. Downloading ----------- GNU Make can be obtained in many different ways. See a description here: http://www.gnu.org/software/software.html Documentation ------------- GNU make is fully documented in the GNU Make manual, which is contained in this distribution as the file make.texinfo. You can also find on-line and preformatted (PostScript and DVI) versions at the FSF's web site. There is information there about ordering hardcopy documentation. http://www.gnu.org/ http://www.gnu.org/doc/doc.html http://www.gnu.org/manual/manual.html Development ----------- GNU Make development is hosted by Savannah, the FSF's online development management tool. Savannah is here: http://savannah.gnu.org And the GNU Make development page is here: http://savannah.gnu.org/projects/make/ You can find most information concerning the development of GNU Make at this site. Bug Reporting ------------- You can send GNU make bug reports to . Please see the section of the GNU make manual entitled 'Problems and Bugs' for information on submitting useful and complete bug reports. You can also use the online bug tracking system in the Savannah GNU Make project to submit new problem reports or search for existing ones: http://savannah.gnu.org/bugs/?group=make If you need help using GNU make, try these forums: help-make@gnu.org help-utils@gnu.org news:gnu.utils.help news:gnu.utils.bug Git Access ---------- The GNU make source repository is available via Git from the GNU Savannah Git server; look here for details: http://savannah.gnu.org/git/?group=make Please note: you won't be able to build GNU make from Git without installing appropriate maintainer's tools, such as GNU m4, automake, autoconf, Perl, GNU make, and GCC. See the README.git file for hints on how to build GNU make once these tools are available. We make no guarantees about the contents or quality of the latest code in the Git repository: it is not unheard of for code that is known to be broken to be checked in. Use at your own risk. System-specific Notes --------------------- It has been reported that the XLC 1.2 compiler on AIX 3.2 is buggy such that if you compile make with 'cc -O' on AIX 3.2, it will not work correctly. It is said that using 'cc' without '-O' does work. The standard /bin/sh on SunOS 4.1.3_U1 and 4.1.4 is broken and cannot be used to configure GNU make. Please install a different shell such as bash or pdksh in order to run "configure". See this message for more information: http://mail.gnu.org/archive/html/bug-autoconf/2003-10/msg00190.html One area that is often a problem in configuration and porting is the code to check the system's current load average. To make it easier to test and debug this code, you can do 'make check-loadavg' to see if it works properly on your system. (You must run 'configure' beforehand, but you need not build Make itself to run this test.) Another potential source of porting problems is the support for large files (LFS) in configure for those operating systems that provide it. Please report any bugs that you find in this area. If you run into difficulties, then as a workaround you should be able to disable LFS by adding the '--disable-largefile' option to the 'configure' script. On systems that support micro- and nano-second timestamp values and where stat(2) provides this information, GNU make will use it when comparing timestamps to get the most accurate possible result. However, note that many current implementations of tools that *set* timestamps do not preserve micro- or nano-second granularity. This means that "cp -p" and other similar tools (tar, etc.) may not exactly duplicate timestamps with micro- and nano-second granularity on some systems. If your build system contains rules that depend on proper behavior of tools like "cp -p", you should consider using the .LOW_RESOLUTION_TIME pseudo-target to force make to treat them properly. See the manual for details. Ports ----- - See README.customs for details on integrating GNU make with the Customs distributed build environment from the Pmake distribution. - See README.VMS for details about GNU Make on OpenVMS. - See README.Amiga for details about GNU Make on AmigaDOS. - See README.W32 for details about GNU Make on Windows NT, 95, or 98. - See README.DOS for compilation instructions on MS-DOS and MS-Windows using DJGPP tools. A precompiled binary of the MSDOS port of GNU Make is available as part of DJGPP; see the WWW page http://www.delorie.com/djgpp/ for more information. Please note there are two _separate_ ports of GNU make for Microsoft systems: a native Windows tool built with (for example) MSVC or Cygwin, and a DOS-based tool built with DJGPP. Please be sure you are looking at the right README! ------------------------------------------------------------------------------- Copyright (C) 1988-2016 Free Software Foundation, Inc. This file is part of GNU Make. GNU Make is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . usr/share/doc/libmpc/README000064400000000742152531315550011362 0ustar00Copyright (C) INRIA 2003, 2005, 2008, 2009, 2011 Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without any warranty. GNU MPC is a complex floating-point library with exact rounding. It is based on the GNU MPFR floating-point library (http://www.mpfr.org/), which is itself based on the GNU MP library (http://gmplib.org/). usr/share/doc/plymouth/README000064400000004544152531413610011775 0ustar00plymouth - graphical boot animation and logger Plymouth is an application that runs very early in the boot process (even before the root filesystem is mounted!) that provides a graphical boot animation while the boot process happens in the background. It is designed to work on systems with DRM modesetting drivers. The idea is that early on in the boot process the native mode for the computer is set, plymouth uses that mode, and that mode stays throughout the entire boot process up to and after X starts. Ideally, the goal is to get rid of all flicker during startup. For systems that don't have DRM mode settings drivers, plymouth falls back to text mode (it can also use a legacy /dev/fb interface). In either text or graphics mode, the boot messages are completely occluded. After the root file system is mounted read-write, the messages are dumped to /var/log/boot.log. Also, the user can see the messages at any time during boot up by hitting the escape key. Plymouth isn't really designed to be built from source by end users. For it to work correctly, it needs integration with the distribution. Because it starts so early, it needs to be packed into the distribution's initial ram disk, and the distribution needs to poke plymouth to tell it how boot is progressing. plymouth ships with two binaries: /sbin/plymouthd and /bin/plymouth The first one, plymouthd, does all the heavy lifting. It logs the session and shows the splash screen. The second one, /bin/plymouth, is the control interface to plymouthd. It supports things like plymouth show-splash, or plymouth ask-for-password, which trigger the associated action in plymouthd. Plymouth supports various "splash" themes which are analogous to screensavers, but happen at boot time. There are several sample themes shipped with plymouth, but most distributions that use plymouth ship something customized for their distribution. Plymouth isn't done yet. It's still under active development, but is used in several popular distros already, including Fedora, Mandriva, Ubuntu and others. See the distributions page for more information. As with other projects hosted on freedesktop.org, Plymouth follows its Code of Conduct, based on the Contributor Covenant. Please conduct yourself in a respectful and civilized manner when using the above mailing lists, bug trackers, etc: https://www.freedesktop.org/wiki/CodeOfConduct usr/share/doc/perl-Filter/README000064400000005635152531415210012301 0ustar00 Source Filters Version 1.58 2017-11-15 rurban Copyright (c) 1995-2011 Paul Marquess. All rights reserved. Copyright (c) 2011-2014 Reini Urban. All rights reserved. Copyright (c) 2014-2017 cPanel Inc. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. DESCRIPTION ----------- This distribution consists of a number of Source Filters. For more details see the pod documentation embedded in the .pm files. If you intend using the Filter::Util::Call functionality, I would strongly recommend that you check out Damian Conway's excellent Filter::Simple module. Damian's module provides a much cleaner interface than Filter::Util::Call. Although it doesn't allow the fine control that Filter::Util::Call does, it should be adequate for the majority of applications. It's available at http://search.cpan.org/dist/Filter-Simple/ LIMITATIONS ----------- Source filters only work on the string level, thus are highly limited in its ability to change source code on the fly. It cannot detect comments, quoted strings, heredocs, it is no replacement for a real parser. The only stable usage for source filters are encryption, compression, or the byteloader, to translate binary code back to source code. See for example the limitations in Switch, which uses source filters, and thus is does not work inside a string eval, the presence of regexes with embedded newlines that are specified with raw /.../ delimiters and don't have a modifier //x are indistinguishable from code chunks beginning with the division operator /. As a workaround you must use m/.../ or m?...? for such patterns. Also, the presence of regexes specified with raw ?...? delimiters may cause mysterious errors. The workaround is to use m?...? instead. See http://search.cpan.org/perldoc?Switch#LIMITATIONS Currently internal buffer lengths are limited to 32-bit only. PREREQUISITES ------------- Before you can build the Source Filters you need to have the following installed on your system: * Perl 5.6.0 or better For older Perls use older versions of Filter. BUILDING THE MODULES -------------------- Assuming you have met all the prerequisites, building the modules should be relatively straightforward. The modules can now be built using this sequence of commands: perl Makefile.PL make make test The filters have been successfully built and tested on the following systems (at least): linux (gcc or clang) cygwin 1.7 mingw strawberry 5.14 SunOS 4.1.3 (Sun C compiler & gcc 2.7.2.3) Solaris 2.3 (Sun C Compiler) irix 5.3 irix 6.x Windows XP (Visual C++ 6.0) On Windows tr.exe and cpp.exe should be really the gnu/mingw tools in the path for the testsuite to pass successfully. INSTALLATION ------------ make install usr/share/doc/ctags/README000064400000005641152531426420011217 0ustar00Exuberant Ctags =============== Author: Darren Hiebert http://ctags.sourceforge.net Instant Messaging: Yahoo! ID : dbhiebert AIM ScreenName: darrenhiebert Exuberant Ctags is a multilanguage reimplementation of the much-underused ctags(1) program and is intended to be the mother of all ctags programs. It generates indexes of source code definitions which are used by a number of editors and tools. The motivation which drove the development of Exuberant Ctags was the need for a ctags program which supported generation of tags for all possible C language constructs (which no other ctags offers), and because most were easily fooled by a number of preprocessor contructs. Exuberant Ctags offers the following features: 1. It supports the following languages: Assembler, AWK, ASP, BETA, Bourne/Korn/Z Shell, C, C++, C#, COBOL, Eiffel, Erlang, Fortran, Java, Lisp, Lua, Makefile, Pascal, Perl, PHP, PL/SQL, Python, REXX, Ruby, Scheme, S-Lang, SML (Standard ML), Tcl, Vera, Verilog, VHDL, Vim, and YACC. 2. It is capable of generating tags for virtually all C language constructs. 3. It is very robust in parsing code. In particular, the C/C++ parser is far less easily fooled by code containing #if preprocessor conditional constructs, using a conditional path selection algorithm to resolve complicated situations, and a fall-back algorithm when this one fails. 4. Supports output of Emacs-style TAGS files (i.e. "etags"). 5. User-defined languages, using Posix regular expressions. 6. Supports UNIX, MSDOS, Windows 95/98/NT/2000/XP, OS/2, QNX, Amiga, QDOS, RISC OS, VMS, Macintosh, and Cray. Some pre-compiled binaries are available on the web site. Visit the Exuberant Ctags web site: http://ctags.sourceforge.net Which brings us to the most obvious question: Q: Why is it called "Exuberant" ctags? A: Because one of the meanings of the word is: exuberant : produced in extreme abundance : PLENTIFUL syn see PROFUSE Compare the tag file produced by Exuberant Ctags with that produced by any other ctags and you will see how appropriate the name is. This source code is distributed according to the terms of the GNU General Public License. It is provided on an as-is basis and no responsibility is accepted for its failure to perform as expected. It is worth at least as much as you paid for it! Exuberant Ctags was originally derived from and inspired by the ctags program by Steve Kirkendall (kirkenda@cs.pdx.edu) that comes with the Elvis vi clone (though almost none of the original code remains). This, too, is freely available. Please report any problems you find. The two problems I expect to be most likely are either a tag which you expected but is missing, or a tag created in error (shouldn't really be a tag). Please include a sample of code (the definition) for the object which misbehaves. -- vim:tw=76:sw=4:et: usr/share/doc/libxml2/README000064400000002245152531463020011461 0ustar00 XML toolkit from the GNOME project Full documentation is available on-line at http://xmlsoft.org/ This code is released under the MIT Licence see the Copyright file. To build on an Unixised setup: ./configure ; make ; make install To build on Windows: see instructions on win32/Readme.txt To assert build quality: on an Unixised setup: run make tests otherwise: There is 3 standalone tools runtest.c runsuite.c testapi.c, which should compile as part of the build or as any application would. Launch them from this directory to get results, runtest checks the proper functionning of libxml2 main APIs while testapi does a full coverage check. Report failures to the list. To report bugs, follow the instructions at: http://xmlsoft.org/bugs.html A mailing-list xml@gnome.org is available, to subscribe: http://mail.gnome.org/mailman/listinfo/xml The list archive is at: http://mail.gnome.org/archives/xml/ All technical answers asked privately will be automatically answered on the list and archived for public access unless privacy is explicitly required and justified. Daniel Veillard $Id$ usr/lib/kbd/unimaps/README000064400000000211152531473360011222 0ustar00The correspondences given in iso0[1-9].uni are according to The Unicode Standard, Version 1.0, Vol. 1. The remaining ones are phantasy. usr/share/doc/mlocate/README000064400000002320152531543070011532 0ustar00About ===== mlocate is a locate/updatedb implementation. The 'm' stands for "merging": updatedb reuses the existing database to avoid rereading most of the file system, which makes updatedb faster and does not trash the system caches as much. The locate(1) utility is intended to be completely compatible to slocate. It also attempts to be compatible to GNU locate, when it does not conflict with slocate compatibility. New releases will be available at https://fedorahosted.org/mlocate/ . Installation ============ Before installation it is necessary to create a group called "mlocate" to allow hiding the contents of the database from users. When updatedb is run by root, the database contains names of files of all users, but only members of the "mlocate" group may access it. "locate" is installed set-GID "mlocate", no other program should need to run with this GID. Portability =========== mlocate should be portable to all SUSv3-compliant UNIXes, although it is currently tested only on recent Linux distributions. Bugs ==== Please consider reporting the bug to your distribution's bug tracking system. Otherwise, report bugs at https://fedorahosted.org/mlocate/ . Bug reports with patches are especially welcome. usr/share/doc/libsolv/README000064400000002156152531545760011577 0ustar00Libsolv ======= This is libsolv, a free package dependency solver using a satisfiability algorithm. The code is based on two major, but independent, blocks: 1. Using a dictionary approach to store and retrieve package and dependency information in a fast and space efficient manner. 2. Using satisfiability, a well known and researched topic, for resolving package dependencies. The sat-solver code has been written to aim for the newest packages, record the decision tree to provide introspection, and also provides the user with suggestions on how to deal with unsolvable problems. It also takes advantage of repository storage to minimize memory usage. Supported package formats: - rpm/rpm5 - deb - arch linux - haiku Supported repository formats: - rpmmd (primary, filelists, comps, deltainfo/presto, updateinfo) - susetags, suse product formats - mandriva/mageia (synthesis, info, files) - arch linux - red carpet helix format - haiku Build instructions ================== Requires: cmake 2.8.5 or later mkdir build cd build cmake .. make //// vim: syntax=asciidoc //// usr/share/doc/perl-JSON-PP/README000064400000001006152531554720012140 0ustar00JSON::PP ================= JSON::PP had been included in JSON distribution (CPAN module). It was a perl core module in Perl 5.14. ================= INSTALLATION To install this module type the following: perl Makefile.PL make make test make install AUTHOR Makamaka Hannyaharamitu, COPYRIGHT AND LICENSE Copyright 2005-2016 by Makamaka Hannyaharamitu This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. usr/share/doc/lnav/README000064400000003360152531651570011060 0ustar00 LNAV ---- The log file navigator, lnav, is an enhanced log file viewer that takes advantage of any semantic information that can be gleaned from the files being viewed, such as timestamps and log levels. Using this extra semantic information, lnav can do things like interleaving messages from different files, generate histograms of messages over time, and providing hotkeys for navigating through the file. It is hoped that these features will allow the user to quickly and efficiently zero in on problems. PREREQUISITES ------------- The following software packages are required to build lnav: gcc/clang - A C++14-compatible compiler. libpcre - The Perl Compatible Regular Expression (PCRE) library. sqlite - The SQLite database engine. Version 3.9.0 or higher is required. ncurses - The ncurses text UI library. readline - The readline line editing library. zlib - The zlib compression library. bz2 - The bzip2 compression library. re2c - The re2c scanner generator. libcurl - The cURL library for downloading files from URLs. Version 7.23.0 or higher is required. INSTALLATION ------------ Lnav follows the usual GNU style for configuring and installing software: $ ./configure $ make $ sudo make install USING ----- The only file installed is the executable, "lnav". You can execute it with no arguments to view the default set of files: $ lnav You can view all the syslog messages by running: $ lnav /var/log/messages* SUPPORT ------- The lnav mailing list can be reached at: lnav@googlegroups.com ACKNOWLEDGEMENTS ---------------- The xterm color database was copied from: http://jonasjacek.github.io/colors/ SEE ALSO -------- The lnav website: http://lnav.org usr/share/doc/at/README000064400000002126152531671520010520 0ustar00This is version of 3.1.x of at, for running commands at a specified time. To install, do a $ ./configure You might want to change the default maximum load at which batch jobs are still started by specifying --with-loadavg_mx=... as argument to configure. The default is 0.8, so that, normally, no batch job will be started when there's still activity going on. For an SMP system, you will want to increase this. Then, do $ make and, as root, # make install at jobs are run by the atd daemon, which is normally started at boot time. Bug reports to: http://bugs.debian.org/ (Debian bug tracking system) or at@packages.debian.org (Debian at package maintainers) If at all possible, I'd appreciate you telling me which version you found a bug in; run at -V to find out which one. If you try to use at(1) on a system which does not support setreuid(2), i.e. if you get an error whch looks vaguely like undefined symbol _setreuid referenced from text segment DO NOT try to install at on your system by removing all that strange PRIV stuff. You will install a rather glaring security hole that way. usr/share/doc/galera-4/README000064400000053363152531701240011512 0ustar00Codership Oy http://www.codership.com DISCLAIMER THIS SOFTWARE PROVIDED "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. IN NO EVENT SHALL CODERSHIP OY BE HELD LIABLE TO ANY PARTY FOR ANY DAMAGES RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE. Trademark Information. All trademarks are the property of their respective owners. Licensing Information. Galera is copyright (c) 2007-2013 Codership Oy Please see COPYING file that came with this distribution. This product uses asio C++ library which is Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com) licensed under Boost Software License. Source code can be found at https://launchpad.net/galera GALERA v4.x CONTENTS: ========= 1. WHAT IS GALERA 2. GALERA USE CASES 3. GALERA CONFIGURATION PARAMETERS 4. GALERA ARBITRATOR 5. WRITESET CACHE 6. INCREMENTAL STATE TRANSFER 7. SPECIAL NOTES 1. WHAT IS GALERA Galera is a synchronous multi-master replication engine that provides its service through wsrep API (https://github.com/codership/wsrep-API). It features optimistic transaction execution and commit time replication and certification of writesets. Since it replicates only final changes to the database it is transparent to triggers, stored procedures and non-deterministic functions. Galera nodes are connected to each other in a N-to-N fashion through a group communication backend which provides automatic reconfiguration in the event of a node failure or a new node added to cluster: ,-------. ,-------. ,--------. | node1 |-----| node2 |<---| client | `-------' G `-------' `--------' \ / ,-------. ,--------. | node3 |<---| client | `-------' `--------' Node states are synchronized by replicating transaction changes at commit time. The cluster is virtually synchronous: this means that each node commits transactions in exactly the same order, although not necessarily at the same physical moment. (The latter is not that important as it may seem, since in most cases DBMS gives no guarantee on when the transaction is actually processed.) Built-in flow control keeps nodes within fraction of a second from each other, this is more than enough for most practical purposes. Main features of a Galera database cluster: * Truly highly available: no committed transaction is ever lost in case of a node crash. All nodes always have consistent state. * True multi-master: all cluster nodes can handle WRITE load concurrently. * Highly transparent. (See SPECIAL NOTES below) * Scalable even with WRITE-intensive applications. * Automatic synchronization of new nodes. 2. GALERA USE CASES There is a number of ways how Galera replication can be utilized. They can be categorized in three groups: 1) Seeking High Availability only. In this case client application connects to only one node, the rest serving as hot backups: ,-------------. | application | `-------------' | | | DB backups ,-------. ,-------. ,-------. | node1 | | node2 | | node3 | `-------' `-------' `-------' <===== cluster nodes =====> In the case of primary node failure or maintenance shutdown application can instantly switch to another node without any special failover procedure. 2) Seeking High Availability and improved performance through uniform load distribution. If there are several client connections to the database, they can be uniformly distributed between cluster nodes resulting in better performance. The exact degree of performance improvement depends on application's load profile. Note, that transaction rollback rate may also increase. ,-------------. | clients | `-------------' | | | | ,-------------. | application | `-------------' / | \ ,-------. ,-------. ,-------. | node1 | | node2 | | node3 | `-------' `-------' `-------' <===== cluster nodes =====> In the case of a node failure application can keep on using the remaining healthy nodes. In this setup application can also be clustered with a dedicated application instance per database node, thus achieving HA not only for the database, but for the whole application stack: ,-------------. | clients | `-------------' // || \\ ,------. ,------. ,------. | app1 | | app2 | | app3 | `------' `------' `------' | | | ,-------. ,-------. ,-------. | node1 | | node2 | | node3 | `-------' `-------' `-------' <====== cluster nodes ======> 3) Seeking High Availability and improved performance through smart load distribution. Uniform load distribution can cause undesirably high rollback rate. Directing transactions which access the same set of tables to the same node can considerably improve performance by reducing the number of rollbacks. Also, if your application can distinguish between read/write and read-only transactions, the following configuration may be quite efficient: ,---------------------. | application | `---------------------' writes / | reads \ reads ,-------. ,-------. ,-------. | node1 | | node2 | | node3 | `-------' `-------' `-------' <========= cluster nodes =========> 3. GALERA PARAMETERS 3.1 Cluster URL. Galera can use URL (RFC 3986) syntax for addressing with optional parameters passed in the URL query part. Galera cluster address looks as follows: ://[?option1=value1[&option2=value2]] e.g.: gcomm://192.168.0.1:4567?gmcast.listen_addr=0.0.0.0:5678 Currently Galera supports the following backends: 'dummy' - is a bypass backend for debugging/profiling purposes. It does not connect to or replicate anything and the rest of the URL address string is ignored. 'gcomm' - is a Codership's own Group Communication backend that provides Virtual Synchrony quality of service. It uses TCP for membership service and TCP (and UDP multicast as of version 0.8) for data replication. Normally one would use just the simplest form of the address URL: gcomm:// - if one wants to start a new cluster. gcomm://
- if one wants to join an existing cluster. In that case
is the address of one of the cluster members 3.2 Galera parameters. There is quite a few galera configuration parameters which affect its behavior and performance. Of particular interest to an end-user are the following: To configure gcomm listen address: gmcast.listen_addr To configure how fast cluster reacts on node failure or connection loss: evs.suspect_timeout evs.inactive_timeout evs.inactive_check_period evs.keepalive_period To fine-tune performance (especially in high latency networks): evs.user_send_window evs.send_window To relax or tighten replication flow control: gcs.fc_limit gcs.fc_factor For a full parameter list please see http://www.codership.com/wiki/doku.php?id=galera_parameters 3.2.1 GMCast parameters group. All parameters in this group are prefixed by 'gmcast.' (see example above). group String denoting group name. Max length of string is 16. Peer nodes accept GMCast connection only if the group names match. It is set automatically from wsrep options. listen_addr Listening address for GMCast. Address is currently passed in URI format (for example tcp://192.168.3.1:4567) and it should be passed as the last configuration parameter in order to avoid confusion. If parameter value is undefined, GMCast starts listening all interfaces at default port 4567 mcast_addr Multicast address in dotted decimal notation, enables using multicast to transmit group communication messages. Defaults to none. Must have the same value on all nodes. mcast_port Port used for UDP multicast messages. Defaults to listen_addr port. Must have same value on all of the nodes. mcast_ttl Time to live for multicast packets. Defaults to 1. 3.2.2 EVS parameter group. All parameters in this group are prefixed by 'evs.'. All values for the timeout options below should follow ISO 8601 standard for the time interval representation (e.g. 02:01:37.2 -> PT2H1M37.2S == PT121M37.2S == PT7297.2S) suspect_timeout This timeout controls how long node can remain silent until it is put under suspicion. If majority of the current group agree that the node is under suspicion, it is discarded from group and new group view is formed immediately. If majority of the group does not agree about suspicion, is waited until forming of new group will be attempted. Default value is 5 seconds. inactive_timeout This timeout control how long node can remain completely silent until it is discarded from the group. This is hard limit, unlike , and the node is discarded even if it becomes live during the formation of the new group (so it is inclusive of ). Default value is 15 seconds. inactive_check_period This period controls how often node liveness is checked. Default is 1 second and there is no need to change this unless or is adjusted to smaller value. Minimum is 0.1 seconds and maximum is /2. keepalive_period This timeout controls how often keepalive messages are sent into network. Node liveness is determined with these keepalives, so the value sould be considerably smaller than . Default value is 1 second, minimum is 0.1 seconds and maximum is /3. consensus_timeout This timeout defines how long forming of new group is attempted. If there is no consensus after this time has passed since starting of consensus protocol, every node discards all other nodes from the group and forming of new group is attempted through singleton groups. Default value is 30 seconds, minimum is and maximum is *5. join_retrans_period This parameter controls how often join messages are retransmitted during group formation. There is usually no need to adjust this value. Default value is 0.3 seconds, minimum is 0.1 seconds and maximum is /3. view_forget_timeout This timeout controls how long information about known group views is maintained. This information is needed to filter out delayed messages from previous views that are not live anymore. Default value is 5 minutes and there is usually no need to change it. debug_log_mask This mask controls what debug information is printed in the logs if debug logging is turned on. Mask value is bitwise-OR from values gcomm::evs::Proto::DebugFlags. By default only state information is printed. info_log_mask This mask controls what info log is printed in the logs. Mask value is bitwise-or from values gcomm::evs::Proto::InfoFlags. stats_report_period This parameter controls how often statistics information is printed in the log. This parameter has effect only if statistics reporting is enabled via Conf::EvsInfoLogMask. Default value is 1 minute. send_window This parameter controls how many messages protocol layer is allowed to send without getting all acknowledgements for any of them. Default value is 32. user_send_window Like , but for messages which sending is initiated by a call from the upper layer. Default value is 16. 3.2.3 GCS parameter group All parameters in this group are prefixed by 'gcs.'. fc_debug Post debug statistics about SST flow control every that many writesets. Default: 0. fc_factor Resume replication after recv queue drops below that fraction of gcs.fc_limit. For fc_master_slave = NO this is limit is also scaled. Default: 1.0. fc_limit Pause replication if recv queue exceeds that many writesets. Default: 16. For master-slave setups this number can be increased considerably. fc_master_slave When this is NO then the effective gcs.fc_limit is multipled by sqrt( number of cluster members ). Default: NO. sync_donor Should we enable flow control in DONOR state the same way as in SYNCED state. Useful for non-blocking state transfers. Default: NO. max_packet_size All writesets exceeding that size will be fragmented. Default: 32616. max_throttle How much we can throttle replication rate during state transfer (to avoid running out of memory). Set it to 0.0 if stopping replication is acceptable for the sake of completing state transfer. Default: 0.25. recv_q_hard_limit Maximum allowed size of recv queue. This should normally be half of (RAM + swap). If this limit is exceeded, Galera will abort the server. Default: LLONG_MAX. recv_q_soft_limit A fraction of gcs.recv_q_hard_limit after which replication rate will be throttled. Default: 0.25. The degree of throttling is a linear function of recv queue size and goes from 1.0 (“full rate”) at gcs.recv_q_soft_limit to gcs.max_throttle at gcs.recv_q_hard_limit. Note that “full rate”, as estimated between 0 and gcs.recv_q_soft_limit is a very approximate estimate of a regular replication rate. 3.2.4 Replicator parameter group All parameters in this group are prefixed by 'replicator.'. commit_order Whether we should allow Out-Of-Order committing (improves parallel applying performance). Possible settings: 0 – BYPASS: all commit order monitoring is turned off (useful for measuring performance penalty) 1 – OOOC: allow out of order committing for all transactions 2 – LOCAL_OOOC: allow out of order committing only for local transactions 3 – NO_OOOC: no out of order committing is allowed (strict total order committing) Default: 3. 3.2.5 GCache parameter group All parameters in this group are prefixed by 'gcache.'. dir Directory where GCache should place its files. Default: working directory. name Name of the main store file (ring buffer). Default: “galera.cache”. size Size of the main store file (ring buffer). This will be preallocated on startup. Default: 128Mb. page_size Size of a page in the page store. The limit on overall page store is free disk space. Pages are prefixed by “gcache.page”. Default: 128Mb. keep_pages_size Total size of the page store pages to keep for caching purposes. If only page storage is enabled, one page is always present. Default: 0. mem_size Size of the malloc() store (read: RAM). For configurations with spare RAM. Default: 0. 3.2.6 SSL parameters All parameters in this group are prefixed by 'socket.'. ssl_cert Certificate file in PEM format. ssl_key A private key for the certificate above, unencrypted, in PEM format. ssl A boolean value to disable SSL even if certificate and key are configured. Default: yes (SSL is enabled if ssl_cert and ssl_key are set) To generate private key/certificate pair the following command may be used: $ openssl req -new -x509 -days 365000 -nodes -keyout key.pem -out cert.pem Using short-living (in most web examples - 1 year) certificates is not advised as it will lead to complete cluster shutdown when certificate expires. 3.2.7 Incremental State Transfer parameters All parameters in this group are prefixed by 'ist.'. recv_addr Address to receive incremental state transfer at. Setting this parameter turns on incremental state transfer. IST will use SSL if SSL is configured as described above. No default. recv_bind Defaults to recv_addr. The node will bind to this address when listening for IST. If running behind NAT set this parameter to the internal address and recv_addr to the external address. 4. GALERA ARBITRATOR Galera arbitrator found in this package is a small stateless daemon that can serve as a lightweight cluster member to * avoid split brain condition in a cluster with an otherwise even membership. * request consistent state snapshots for backup purposes. Example usage: ,---------. | garbd | `---------' ,---------. | ,---------. | clients | | | clients | `---------' | `---------' \ | / \ ,---. / (' `) ( WAN ) (. ,) / `---' \ / \ ,---------. ,---------. | node1 | | node2 | `---------' `---------' Data Center 1 Data Center 2 In this example, if one of the data centers loses WAN connection, the node that sees arbitrator (and therefore sees clients) will continue the operation. garbd accepts the same Galera options as the regular Galera node. Note that at the moment garbd needs to see all replication traffic (although it does not store it anywhere), so placing it in a location with poor connectivity to the rest of the cluster may lead to cluster performance degradation. Arbitrator failure does not affect cluster operation and a new instance can be reattached to cluster at any time. There can be several arbitrators in the cluster, although practicality of it is questionable. 5. WRITESET CACHE Starting with version 1.0 Galera stores writesets in a special cache. It's purpose is to improve control of Galera memory usage and offload writeset storage to disk. Galera cache has 3 types of stores: 1. A permanent in-memory store, where writesets are allocated by a default OS memory allocator. It can be useful for systems with spare RAM. It has a hard size limit. By default it is disabled (size set to 0). 2. A permanent ring-buffer file which is preallocated on disk during cache initialization. It is intended as the main writeset store. By default its size is 128Mb. 3. An on-demand page store, which allocates memory-mapped page files during runtime as necessary. Default page size is 128Mb, but it can be bigger if it needs to store a bigger writeset. The size of page store is limited by the free disk space. By default page files are deleted when not in use, but a limit can be set on the total size of the page files to keep. When all other stores are disabled, at least one page file is always present on disk. Allocation algorithm is as follows: all stores are tried in the above order. If a store does not have enough space to allocate the writeset, then the next store is tried. Page store should always succeed unless the writeset is bigger than the available disk space. By default Galera cache allocates files in the working directory of the process, but a dedicated location can be specified. For configuration parameters see GCache group above (p. 3.2.5). NOTE: Since all cache files are memory-mapped, the process may appear to use more memory than it actually does. 6. INCREMENTAL STATE TRANSFER (IST) Galera 2.x introduces a long awaited functionality: incremental state transfer. The idea is that if a) the joining node state UUID is the same as that of the group and b) all of the writesets that it missed can be found in the donor's Gcache then instead of whole state snapshot it will receive the missing writesets and catch up with the group by replaying them. For example: - local node state is 5a76ef62-30ec-11e1-0800-dba504cf2aab:197222 - group state is 5a76ef62-30ec-11e1-0800-dba504cf2aab:201913 - if writeset number 197223 is still in the donor's GCache, it will send writests 197223-201913 to joiner instead of the whole state. IST can dramatically speed up remerging node into cluster. It also non-blocking on the donor. The most important parameter for IST (besides 'ist.recv_addr') is GCache size on donor. The bigger it is, the more writesets can be stored in it and the bigger seqno gaps can be closed with IST. On the other hand, if GCache is much bigger than the state size, serving IST may be less efficient than sending state snapshot. 7. SPECIAL NOTES 7.1 DEADLOCK ON COMMIT In multi-master mode transaction commit operation may return a deadlock error. This is a consequence of writeset certification and is a fundamental property of Galera. If deadlock on commit cannot be tolerated by application, Galera can still be used on a condition that all write operations to a given table are performed on the same node. This still has an advantage over the "traditional" master-slave replication: write load can still be distributed between nodes and since replication is synchronous, failover is trivial. 7.2 "SPLIT-BRAIN" CONDITION Galera cluster is fully distributed and does not use any sort of centralized arbitrator, thus having no single point of failure. However, like any cluster of that kind it may fall to a dreaded "split-brain" condition where half of the cluster nodes suddenly disappear (e.g. due to network failure). In general case, having no information about the fate of disappeared nodes remaining nodes cannot continue to process requests and modify their states. While such situation is generally considered negligibly probable in a multi-node cluster (normally nodes fail one at a time), in 2-node cluster a single node failure can lead to this, thus making 3 nodes a minimum requirement for a highly-available cluster. Galera arbitrator (see above) can serve as an odd stateless cluster node to help avoid the possibility of an even cluster split. usr/share/doc/libnet/README000064400000003173152531720260011370 0ustar00=============================================================================== $Id: README,v 1.4 2004/03/01 20:26:11 mike Exp $ LIBNET 1.1 (c) 1998 - 2004 Mike D. Schiffman http://www.packetfactory.net/libnet LIBNET 1.1.3+ (c) 2009 - 2012 Sam Roberts =============================================================================== libnet has become unmaintained at packetfactory.net, and it's author is unreachable. This version was forked from the 1.1.3 release candidate, then bug fixed, actively maintained, and rereleased. Contact Sam Roberts if you have patches or have found bugs. Newest code is at: http://github.com/sam-github/libnet Releases are at: http://sourceforge.net/projects/libnet-dev/ Some old docs are at: http://packetfactory.openwall.net/projects/libnet/index.html A C library for portable packet creation and injection. Libnet is an API to help with the construction and handling of network packets. It provides a portable framework for low-level network packet writing and handling (use libnet in conjunction with libpcap and you can write some really cool stuff). Libnet includes packet creation at the IP layer and at the link layer as well as a host of supplementary and complementary functionality. Libnet is very handy with which to write network tools and network test code. See the manpage and sample test code for more detailed information. Your old code (circa libnet-1.0.x) WILL NOT WORK with libnet-1.1.x. Read doc/MIGRATION for easy steps on porting your old code. EOF usr/share/doc/tmpwatch/README000064400000001051152531756740011747 0ustar00About ===== The tmpwatch utility recursively searches through specified directories and removes files which have not been accessed in a specified period of time. tmpwatch is normally used to clean up directories which are used for temporarily holding files (for example, /tmp). New releases will be available at https://fedorahosted.org/tmpwatch/ . Bugs ==== Please consider reporting the bug to your distribution's bug tracking system. Otherwise, report bugs at https://fedorahosted.org/tmpwatch/ . Bug reports with patches are especially welcome. usr/share/doc/tzdata/README000064400000004640152531771600011406 0ustar00README for the tz distribution “Where do I set the hands of the clock?” – Les Tremayne as The King “Oh that – you can set them any place you want.” – Frank Baxter as The Scientist (from the Bell System film “About Time”) The Time Zone Database (called tz, tzdb or zoneinfo) contains code and data that represent the history of local time for many representative locations around the globe. It is updated periodically to reflect changes made by political bodies to time zone boundaries, UTC offsets, and daylight-saving rules. See or the file tz-link.html for how to acquire the code and data. Once acquired, read the leading comments in the file ‘Makefile’ and make any changes needed to make things right for your system, especially when using a platform other than current GNU/Linux. Then run the following commands, substituting your desired installation directory for ‘$HOME/tzdir’: make TOPDIR="$HOME/tzdir" install "$HOME/tzdir/usr/bin/zdump" -v America/Los_Angeles See the file tz-how-to.html for examples of how to read the data files. This database of historical local time information has several goals: * Provide a compendium of data about the history of civil time that is useful even if not 100% accurate. * Give an idea of the variety of local time rules that have existed in the past and thus may be expected in the future. * Test the generality of the local time rule description system. The information in the time zone data files is by no means authoritative; fixes and enhancements are welcome. Please see the file CONTRIBUTING for details. Thanks to these Time Zone Caballeros who’ve made major contributions to the time conversion package: Keith Bostic; Bob Devine; Paul Eggert; Robert Elz; Guy Harris; Mark Horton; John Mackin; and Bradley White. Thanks also to Michael Bloom, Art Neilson, Stephen Prince, John Sovereign, and Frank Wales for testing work, and to Gwillim Law for checking local mean time data. Thanks in particular to Arthur David Olson, the project’s founder and first maintainer, to whom the time zone community owes the greatest debt of all. None of them are responsible for remaining errors. ----- This file is in the public domain, so clarified as of 2009-05-17 by Arthur David Olson. The other files in this distribution are either public domain or BSD licensed; see the file LICENSE for details. etc/apache2/conf.d/README000064400000000556152532050620010657 0ustar00 This directory holds configuration files for the Apache HTTP Server; any files in this directory which have the ".conf" extension will be processed as httpd configuration files. The directory is used in addition to the directory /etc/httpd/conf.modules.d/, which contains configuration files necessary to load modules. Files are processed in alphabetical order. usr/share/doc/mc/README000064400000013357152532130500010510 0ustar00Contents -------- Introduction Dependencies Features Mini-documentation Where to get more information Reporting problems Introduction ------------ GNU Midnight Commander (also referred to as MC) is a user shell with text-mode full-screen interface. It can be run on the OS console, in xterm and other terminal emulators. GNU Midnight Commander allows you to manage files while making most of you screen and giving you a clear representation of the filesystem, yet it's simple enough to be run over a telnet or ssh session. GNU Midnight Commander is released under the GNU General Public License version 3 or any later version. A copy of the file is included with this distribution package. Dependencies ------------ Please read the file INSTALL for installation instructions and full list of dependencies. Features -------- GNU Midnight Commander was conceived as a free clone of John Socha's Norton Commander (TM). It also takes the best from more recent software with similar interfaces. GNU Midnight Commander comes with mouse support on xterm and optionally on the Linux console. Some features are specific to the POSIX environment MC runs on, some are familiar to the users of similar software for other operating systems. The features include: * Built in Virtual File System: manipulate remote file systems through the FTP and SMB protocols or over secure shell, browse contents of tar, ar, rpm, zip, cpio, lha and rar archives just like local files. * Almost all operations work with the virtual file system, enabling you to do complex tasks, like viewing files in archives on an FTP server. * Mouse support on most terminal emulators for X Window System as well as on the Linux console. * Learn Keys: GNU Midnight Commander may be configured at run time to support any kind of input keys for a given terminal, making its operation possible even on most weird terminals. * Text and hex editors are available for you to use (hex editor is a part of the viewer). * Hotlist allows you to keep a list of common visited locations, including remote sites and directories inside archives. * Command completion: By pressing Alt-Tab in any place where a filename or an executable are expected, GNU Midnight Commander will complete the name for you. If you press Alt-Tab for the second time, you get a list box with all possible completions. * Subshell support: Run your commands by a real shell interpreter. GNU Midnight Commander interacts with bash, tcsh and zsh to provide you with all of the facilities available in your preferred shell. * Find file command can search for the file contents. * Background operations allow you to copy or move files from any virtual file system while you do other tasks (i.e., you can do background FTP copies). * FTP proxy is supported. * Linux file recovery: If you are using Linux, you can recover deleted files from an ext2 or ext3 partition with the undelete file system. This is a low level file recovery function that can recover files deleted by any program on Linux. * External panelization: You can run any arbitrary external command and GNU Midnight Commander will display the output generated as a file listing that can be manipulated as a regular directory. * Emacs-like key bindings are used in all widgets. * Context dependent actions (open, view, edit) are available. * The built-in file viewer, together with the context dependent actions is used to format man pages on the fly, coloring mail messages and more. * The built-in editor supports syntax highlighting and external actions, such as spell checking and formatting. Mini-documentation ------------------ These are hints for the text mode edition: * Use the F-Keys for invoking the commands in the function key bar. If your terminal doesn't support F-keys, you can use the sequence to invoke the corresponding F-digit key. * Tab changes the current panel. * All input lines have emacs-like key-bindings (command history is accessed through the M-p and M-n keys). * The panels accept C-n, C-p for browsing the panel (like in Emacs). * M-Enter copies the currently selected file name to the input line. * M-Tab completes the current word (or tries to). * The Virtual File System is a cute addition to the project, you may browse in tar and compressed tar files as well as browsing remote machines with the fish file system. * Please read the manual page. You can access the whole documentation online with the F1 key, although it's not as nice as the groff printed manual page :-) Where to get more information ----------------------------- There is a webpage for GNU Midnight Commander at https://www.midnight-commander.org/ This page also has current information about mailing lists and some useful advices how to report bugs. You can download the latest version of GNU Midnight Commander from https://www.midnight-commander.org/downloads/ Reporting problems ------------------ You can report bug on our site, please read https://www.midnight-commander.org/wiki/doc/reportDefects Also you can use mc mailing lists to discuss problems. There are two mailing lists, mc@gnome.org and mc-devel@gnome.org. Use mc-devel@gnome.org if you are prepared for a more technical discussion with the developers of the package, otherwise use mc@gnome.org. Please don't sent HTML e-mail to either of those mailing lists. Include the output of "mc --version", the operating system and the distribution (if applicable) you are using, the compiler and the configure flags used to compile the program (if you know them). If the program crashed and produced a core dump, please provide a stack trace of the program. You can do this by running gdb like this: gdb mc core (gdb) where etc/fonts/conf.d/README000064400000001722152532163100010477 0ustar00conf.d/README Each file in this directory is a fontconfig configuration file. Fontconfig scans this directory, loading all files of the form [0-9][0-9]*.conf. These files are normally installed in /usr/share/fontconfig/conf.avail and then symlinked here, allowing them to be easily installed and then enabled/disabled by adjusting the symlinks. The files are loaded in numeric order, the structure of the configuration has led to the following conventions in usage: Files begining with: Contain: 00 through 09 Font directories 10 through 19 system rendering defaults (AA, etc) 20 through 29 font rendering options 30 through 39 family substitution 40 through 49 generic identification, map family->generic 50 through 59 alternate config file loading 60 through 69 generic aliases, map generic->family 70 through 79 select font (adjust which fonts are available) 80 through 89 match target="scan" (modify scanned patterns) 90 through 99 font synthesis usr/share/doc/perl-Env/README000064400000000506152532211340011573 0ustar00 This archive contains the distribution Env, version 1.04: perl module that imports environment variables as scalars or arrays This software is copyright (c) 2013 by Chip Salzenberg. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. usr/lib64/python2.7/lib-tk/test/README000064400000001066152532231410013067 0ustar00Writing new tests ================= Precaution ---------- New tests should always use only one Tk window at once, like all the current tests do. This means that you have to destroy the current window before creating another one, and clean up after the test. The motivation behind this is that some tests may depend on having its window focused while it is running to work properly, and it may be hard to force focus on your window across platforms (right now only test_traversal at test_ttk.test_widgets.NotebookTest depends on this). usr/share/doc/libXau/README000064400000021216152532231470011336 0ustar00 A Sample Authorization Protocol for X Overview The following note describes a very simple mechanism for providing individual access to an X Window System display. It uses existing core protocol and library hooks for specifying authorization data in the connection setup block to restrict use of the display to only those clients that show that they know a server-specific key called a "magic cookie". This mechanism is *not* being proposed as an addition to the Xlib standard; among other reasons, a protocol extension is needed to support more flexible mechanisms. We have implemented this mechanism already; if you have comments, please send them to us. This scheme involves changes to the following parts of the sample release: o xdm - generate random magic cookie and store in protected file - pass name of magic cookie file to server - when user logs in, add magic cookie to user's auth file - when user logs out, generate a new cookie for server o server - a new command line option to specify cookie file - check client authorization data against magic cookie - read in cookie whenever the server resets - do not add local machine to host list if magic cookie given o Xlib - read in authorization data from file - find data for appropriate server - send authorization data if found o xauth [new program to manage user auth file] - add entries to user's auth file - remove entries from user's auth file This mechanism assumes that the superuser and the transport layer between the client and the server is secure. Description The sample implementation will use the xdm Display Manager to set up and control the server's authorization file. Sites that do not run xdm will need to build their own mechanisms. Xdm uses a random key (seeded by the system time and check sum of /dev/kmem) to generate a unique sequence of characters at 16 bytes long. This sequence will be written to a file which is made readable only by the server. The server will then be started with a command line option instructing it to use the contents of the file as the magic cookie for connections that include authorization data. This will also disable the server from adding the local machine's address to the initial host list. Note that the actual cookie must not be stored on the command line or in an environment variable, to prevent it from being publicly obtainable by the "ps" command. If a client presents an authorization name of "MIT-MAGIC-COOKIE-1" and authorization data that matches the magic cookie, that client is allowed access. If the name or data does not match and the host list is empty, that client will be denied access. Otherwise, the existing host-based access control will be used. Since any client that is making a connection from a machine on the host list will be granted access even if their authorization data is incorrect, sites are strongly urged not to set up any default hosts using the /etc/X*.hosts files. Granting access to other machines should be done by the user's session manager instead. Assuming the server is configured with an empty host list, the existence of the cookie is sufficient to ensure there will be no unauthorized access to the display. However, xdm will (continue to) work to minimize the chances of spoofing on servers that do not support this authorization mechanism. This will be done by grabbing the server and the keyboard after opening the display. This action will be surrounded by a timer which will kill the server if the grabs cannot be done within several seconds. [This level of security is now implemented in patches already sent out.] After the user logs in, xdm will add authorization entries for each of the server machine's network addresses to the user's authorization file (the format of which is described below). This file will usually be named .Xauthority in the users's home directory; will be owned by the user (as specified by the pw_uid and pw_gid fields in the user's password entry), and will be accessible only to the user (no group access). This file will contain authorization data for all of the displays opened by the user. When the session terminates, xdm will generate and store a new magic cookie for the server. Then, xdm will shutdown its own connection and send a SIGHUP to the server process, which should cause the server to reset. The server will then read in the new magic cookie. To support accesses (both read and write) from multiple machines (for use in environments that use distributed file systems), file locking is done using hard links. This is done by creat'ing (sic) a lock file and then linking it to another name in the same directory. If the link-target already exists, the link will fail, indicating failure to obtain the lock. Linking is used instead of just creating the file read-only since link will fail even for the superuser. Problems and Solutions There are a few problems with .Xauthority as described. If no home directory exists, or if xdm cannot create a file there (disk full), xdm stores the cookie in a file in a resource-specified back-up directory, and sets an environment variable in the user's session (called XAUTHORITY) naming this file. There is also the problem that the locking attempts will need to be timed out, due to a leftover lock. Xdm, again, creates a file and set an environment variable. Finally, the back-up directory might be full. Xdm, as a last resort, provides a function key binding that allows a user to log in without having the authorization data stored, and with host-based access control disabled. Xlib XOpenDisplay in Xlib was enhanced to allow specification of authorization information. As implied above, Xlib looks for the data in the .Xauthority file of the home directory, or in the file pointed at by the XAUTHORITY environment variable instead if that is defined. This required no programmatic interface change to Xlib. In addition, a new Xlib routine is provided to explicitly specify authorization. XSetAuthorization(name, namelen, data, datalen) int namelen, datalen; char *name, *data; There are three types of input: name NULL, data don't care - use default authorization mechanism. name non-NULL, data NULL - use the named authorization; get data from that mechanism's default. name non-NULL, data non-NULL - use the given authorization and data. This interface is used by xdm and might also be used by any other applications that wish to explicitly set the authorization information. Authorization File The .Xauthority file is a binary file consisting of a sequence of entries in the following format: 2 bytes Family value (second byte is as in protocol HOST) 2 bytes address length (always MSB first) A bytes host address (as in protocol HOST) 2 bytes display "number" length (always MSB first) S bytes display "number" string 2 bytes name length (always MSB first) N bytes authorization name string 2 bytes data length (always MSB first) D bytes authorization data string The format is binary for easy processing, since authorization information usually consists of arbitrary data. Host addresses are used instead of names to eliminate potentially time-consuming name resolutions in XOpenDisplay. Programs, such as xdm, that initialize the user's authorization file will have to do the same work as the server in finding addresses for all network interfaces. If more than one entry matches the desired address, the entry that is chosen is implementation-dependent. In our implementation, it is always the first in the file. The Family is specified in two bytes to allow out-of-band values (i.e. values not in the Protocol) to be used. In particular, two new values "FamilyLocal" and "FamilyWild" are defined. FamilyLocal refers to any connections using a non-network method of connetion from the local machine (Unix domain sockets, shared memory, loopback serial line). In this case the host address is specified by the data returned from gethostname() and better be unique in a collection of machines which share NFS directories. FamilyWild is currently used only by xdm to communicate authorization data to the server. It matches any family/host address pair. For FamilyInternet, the host address is the 4 byte internet address, for FamilyDecnet, the host address is the byte decnet address, for FamilyChaos the address is also two bytes. The Display Number is the ascii representation of the display number portion of the display name. It is in ascii to allow future expansion to PseudoRoots or anything else that might happen. A utility called "xauth" will be provided for editing and viewing the contents of authorization files. Note that the user's authorization file is not the same as the server's magic cookie file. usr/share/doc/perl-Unicode-Collate/README000064400000007232152532236520014024 0ustar00Unicode/Collate version 1.25 =============================== NAME Unicode::Collate - Unicode Collation Algorithm SYNOPSIS use Unicode::Collate; #construct $Collator = Unicode::Collate->new(%tailoring); #sort @sorted = $Collator->sort(@not_sorted); #compare $result = $Collator->cmp($a, $b); # returns 1, 0, or -1. $result = $Collator->eq($a, $b); # returns true/false (similarly ->ne, ->lt, ->le, ->gt, ->ge) Note: Strings in @not_sorted, $a and $b are interpreted according to Perl's Unicode support. See perlunicode, perluniintro, perlunitut, perlunifaq, utf8. Otherwise you can use "preprocess" or should decode them before. INSTALL Perl 5.6.1 or later is required. Perl 5.8.1 or later is recommended. Though this distribution contains a subset of an old DUCET, named "keys.txt", this one is intended only for doing a test of this module and practically useless for any other purpose. Installation of Unicode::Collate::Locale requires Collate/Locale.pm, Collate/Locale/*.pm, Collate/CJK/*.pm and Collate/allkeys.txt. On building, Unicode::Collate::Locale doesn't require any of data/*.txt, gendata/*, and mklocale. Tests for Unicode::Collate::Locale are named t/loc_*.t. Since 0.54, XSUB that requires a C compiler will be built by default. To install this module type the following: perl Makefile.PL make make test make install Even if a C compiler is not available, pure Perl (i.e. non-XS) edition is available; type the following: perl disableXS perl Makefile.PL make make test make install If you decide to install XSUB edition after trying to build pure Perl, type the following: make clean perl enableXS perl Makefile.PL make make test make install DEPENDENCIES The conformant collation requires Unicode::Normalize (v 0.10 or later) although Unicode::Collate can be used without Unicode::Normalize. ABOUT DUCET Though this module can be used without any C file, to use this module easily, it is recommended to install a table file in the UCA format, by copying it under the directory /Unicode/Collate. You can install such a table file by adding it to "Collate" directory (where "keys.txt" is placed) in this distribution before executing Makefile.PL. The most preferable one is "The Default Unicode Collation Element Table" (aka DUCET), available from the Unicode Consortium's website: http://www.unicode.org/Public/UCA/ http://www.unicode.org/Public/UCA/latest/allkeys.txt (latest version) If DUCET is not installed, it is recommended to copy the file from http://www.unicode.org/Public/UCA/latest/allkeys.txt to /Unicode/Collate/allkeys.txt manually. HOW TO CHANGE DUCET (NOT WARRANTED) 0. rewriting UCA_Version and Base_Unicode_Version in Collate.pm and t/version.t is preferred. 1. replace Collate/allkeys.txt with a new DUCET. 2. run mklocale to generate new Locale/*.pl and Korean.pm. 3. replace Collate/Locale/*.pl with the new Locale/*.pl, and Collate/CJK/Korean.pm with the new Korean.pm. 4. make test. IF FAIL, it may require more changes, not be easy. AUTHOR, COPYRIGHT AND LICENSE The Unicode::Collate module for perl was written by SADAHIRO Tomoyuki, . This module is Copyright(C) 2001-2017, SADAHIRO Tomoyuki. Japan. All rights reserved. This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The file Unicode/Collate/allkeys.txt was copied verbatim from http://www.unicode.org/Public/UCA/9.0.0/allkeys.txt For this file, Copyright (c) 2016 Unicode, Inc. For terms of use, see http://www.unicode.org/terms_of_use.html usr/share/doc/libwebp/README000064400000071773152532237660011562 0ustar00 __ __ ____ ____ ____ / \\/ \/ _ \/ _ )/ _ \ \ / __/ _ \ __/ \__\__/\____/\_____/__/ ____ ___ / _/ / \ \ / _ \/ _/ / \_/ / / \ \ __/ \__ \____/____/\_____/_____/____/v1.0.0 Description: ============ WebP codec: library to encode and decode images in WebP format. This package contains the library that can be used in other programs to add WebP support, as well as the command line tools 'cwebp' and 'dwebp'. See http://developers.google.com/speed/webp The latest source tree is available at https://chromium.googlesource.com/webm/libwebp It is released under the same license as the WebM project. See http://www.webmproject.org/license/software/ or the "COPYING" file for details. An additional intellectual property rights grant can be found in the file PATENTS. Building: ========= Windows build: -------------- By running: nmake /f Makefile.vc CFG=release-static RTLIBCFG=static OBJDIR=output the directory output\release-static\(x64|x86)\bin will contain the tools cwebp.exe and dwebp.exe. The directory output\release-static\(x64|x86)\lib will contain the libwebp static library. The target architecture (x86/x64) is detected by Makefile.vc from the Visual Studio compiler (cl.exe) available in the system path. Unix build using makefile.unix: ------------------------------- On platforms with GNU tools installed (gcc and make), running make -f makefile.unix will build the binaries examples/cwebp and examples/dwebp, along with the static library src/libwebp.a. No system-wide installation is supplied, as this is a simple alternative to the full installation system based on the autoconf tools (see below). Please refer to makefile.unix for additional details and customizations. Using autoconf tools: --------------------- Prerequisites: A compiler (e.g., gcc), make, autoconf, automake, libtool. On a Debian-like system the following should install everything you need for a minimal build: $ sudo apt-get install gcc make autoconf automake libtool When building from git sources, you will need to run autogen.sh to generate the configure script. ./configure make make install should be all you need to have the following files /usr/local/include/webp/decode.h /usr/local/include/webp/encode.h /usr/local/include/webp/types.h /usr/local/lib/libwebp.* /usr/local/bin/cwebp /usr/local/bin/dwebp installed. Note: A decode-only library, libwebpdecoder, is available using the '--enable-libwebpdecoder' flag. The encode library is built separately and can be installed independently using a minor modification in the corresponding Makefile.am configure files (see comments there). See './configure --help' for more options. Building for MIPS Linux: ------------------------ MIPS Linux toolchain stable available releases can be found at: https://community.imgtec.com/developers/mips/tools/codescape-mips-sdk/available-releases/ # Add toolchain to PATH export PATH=$PATH:/path/to/toolchain/bin # 32-bit build for mips32r5 (p5600) HOST=mips-mti-linux-gnu MIPS_CFLAGS="-O3 -mips32r5 -mabi=32 -mtune=p5600 -mmsa -mfp64 \ -msched-weight -mload-store-pairs -fPIE" MIPS_LDFLAGS="-mips32r5 -mabi=32 -mmsa -mfp64 -pie" # 64-bit build for mips64r6 (i6400) HOST=mips-img-linux-gnu MIPS_CFLAGS="-O3 -mips64r6 -mabi=64 -mtune=i6400 -mmsa -mfp64 \ -msched-weight -mload-store-pairs -fPIE" MIPS_LDFLAGS="-mips64r6 -mabi=64 -mmsa -mfp64 -pie" ./configure --host=${HOST} --build=`config.guess` \ CC="${HOST}-gcc -EL" \ CFLAGS="$MIPS_CFLAGS" \ LDFLAGS="$MIPS_LDFLAGS" make make install CMake: ------ With CMake, you can compile libwebp, cwebp, dwebp, gif2web, img2webp, webpinfo and the JS bindings. Prerequisites: A compiler (e.g., gcc with autotools) and CMake. On a Debian-like system the following should install everything you need for a minimal build: $ sudo apt-get install build-essential cmake When building from git sources, you will need to run cmake to generate the makefiles. mkdir build && cd build && cmake ../ make make install If you also want any of the executables, you will need to enable them through CMake, e.g.: cmake -DWEBP_BUILD_CWEBP=ON -DWEBP_BUILD_DWEBP=ON ../ or through your favorite interface (like ccmake or cmake-qt-gui). Finally, once installed, you can also use WebP in your CMake project by doing: find_package(WebP) which will define the CMake variables WebP_INCLUDE_DIRS and WebP_LIBRARIES. Gradle: ------- The support for Gradle is minimal: it only helps you compile libwebp, cwebp and dwebp and webpmux_example. Prerequisites: A compiler (e.g., gcc with autotools) and gradle. On a Debian-like system the following should install everything you need for a minimal build: $ sudo apt-get install build-essential gradle When building from git sources, you will need to run the Gradle wrapper with the appropriate target, e.g. : ./gradlew buildAllExecutables SWIG bindings: -------------- To generate language bindings from swig/libwebp.swig at least swig-1.3 (http://www.swig.org) is required. Currently the following functions are mapped: Decode: WebPGetDecoderVersion WebPGetInfo WebPDecodeRGBA WebPDecodeARGB WebPDecodeBGRA WebPDecodeBGR WebPDecodeRGB Encode: WebPGetEncoderVersion WebPEncodeRGBA WebPEncodeBGRA WebPEncodeRGB WebPEncodeBGR WebPEncodeLosslessRGBA WebPEncodeLosslessBGRA WebPEncodeLosslessRGB WebPEncodeLosslessBGR See swig/README for more detailed build instructions. Java bindings: To build the swig-generated JNI wrapper code at least JDK-1.5 (or equivalent) is necessary for enum support. The output is intended to be a shared object / DLL that can be loaded via System.loadLibrary("webp_jni"). Python bindings: To build the swig-generated Python extension code at least Python 2.6 is required. Python < 2.6 may build with some minor changes to libwebp.swig or the generated code, but is untested. Encoding tool: ============== The examples/ directory contains tools for encoding (cwebp) and decoding (dwebp) images. The easiest use should look like: cwebp input.png -q 80 -o output.webp which will convert the input file to a WebP file using a quality factor of 80 on a 0->100 scale (0 being the lowest quality, 100 being the best. Default value is 75). You might want to try the -lossless flag too, which will compress the source (in RGBA format) without any loss. The -q quality parameter will in this case control the amount of processing time spent trying to make the output file as small as possible. A longer list of options is available using the -longhelp command line flag: > cwebp -longhelp Usage: cwebp [-preset <...>] [options] in_file [-o out_file] If input size (-s) for an image is not specified, it is assumed to be a PNG, JPEG, TIFF or WebP file. Options: -h / -help ............. short help -H / -longhelp ......... long help -q ............. quality factor (0:small..100:big), default=75 -alpha_q ......... transparency-compression quality (0..100), default=100 -preset ....... preset setting, one of: default, photo, picture, drawing, icon, text -preset must come first, as it overwrites other parameters -z ............... activates lossless preset with given level in [0:fast, ..., 9:slowest] -m ............... compression method (0=fast, 6=slowest), default=4 -segments ........ number of segments to use (1..4), default=4 -size ............ target size (in bytes) -psnr .......... target PSNR (in dB. typically: 42) -s ......... input size (width x height) for YUV -sns ............. spatial noise shaping (0:off, 100:max), default=50 -f ............... filter strength (0=off..100), default=60 -sharpness ....... filter sharpness (0:most .. 7:least sharp), default=0 -strong ................ use strong filter instead of simple (default) -nostrong .............. use simple filter instead of strong -sharp_yuv ............. use sharper (and slower) RGB->YUV conversion -partition_limit . limit quality to fit the 512k limit on the first partition (0=no degradation ... 100=full) -pass ............ analysis pass number (1..10) -crop .. crop picture with the given rectangle -resize ........ resize picture (after any cropping) -mt .................... use multi-threading if available -low_memory ............ reduce memory usage (slower encoding) -map ............. print map of extra info -print_psnr ............ prints averaged PSNR distortion -print_ssim ............ prints averaged SSIM distortion -print_lsim ............ prints local-similarity distortion -d .......... dump the compressed output (PGM file) -alpha_method .... transparency-compression method (0..1), default=1 -alpha_filter . predictive filtering for alpha plane, one of: none, fast (default) or best -exact ................. preserve RGB values in transparent area, default=off -blend_alpha ..... blend colors against background color expressed as RGB values written in hexadecimal, e.g. 0xc0e0d0 for red=0xc0 green=0xe0 and blue=0xd0 -noalpha ............... discard any transparency information -lossless .............. encode image losslessly, default=off -near_lossless ... use near-lossless image preprocessing (0..100=off), default=100 -hint ......... specify image characteristics hint, one of: photo, picture or graph -metadata ..... comma separated list of metadata to copy from the input to the output if present. Valid values: all, none (default), exif, icc, xmp -short ................. condense printed message -quiet ................. don't print anything -version ............... print version number and exit -noasm ................. disable all assembly optimizations -v ..................... verbose, e.g. print encoding/decoding times -progress .............. report encoding progress Experimental Options: -jpeg_like ............. roughly match expected JPEG size -af .................... auto-adjust filter strength -pre ............. pre-processing filter The main options you might want to try in order to further tune the visual quality are: -preset -sns -f -m Namely: * 'preset' will set up a default encoding configuration targeting a particular type of input. It should appear first in the list of options, so that subsequent options can take effect on top of this preset. Default value is 'default'. * 'sns' will progressively turn on (when going from 0 to 100) some additional visual optimizations (like: segmentation map re-enforcement). This option will balance the bit allocation differently. It tries to take bits from the "easy" parts of the picture and use them in the "difficult" ones instead. Usually, raising the sns value (at fixed -q value) leads to larger files, but with better quality. Typical value is around '75'. * 'f' option directly links to the filtering strength used by the codec's in-loop processing. The higher the value, the smoother the highly-compressed area will look. This is particularly useful when aiming at very small files. Typical values are around 20-30. Note that using the option -strong/-nostrong will change the type of filtering. Use "-f 0" to turn filtering off. * 'm' controls the trade-off between encoding speed and quality. Default is 4. You can try -m 5 or -m 6 to explore more (time-consuming) encoding possibilities. A lower value will result in faster encoding at the expense of quality. Decoding tool: ============== There is a decoding sample in examples/dwebp.c which will take a .webp file and decode it to a PNG image file (amongst other formats). This is simply to demonstrate the use of the API. You can verify the file test.webp decodes to exactly the same as test_ref.ppm by using: cd examples ./dwebp test.webp -ppm -o test.ppm diff test.ppm test_ref.ppm The full list of options is available using -h: > dwebp -h Usage: dwebp in_file [options] [-o out_file] Decodes the WebP image file to PNG format [Default] Use following options to convert into alternate image formats: -pam ......... save the raw RGBA samples as a color PAM -ppm ......... save the raw RGB samples as a color PPM -bmp ......... save as uncompressed BMP format -tiff ........ save as uncompressed TIFF format -pgm ......... save the raw YUV samples as a grayscale PGM file with IMC4 layout -yuv ......... save the raw YUV samples in flat layout Other options are: -version ..... print version number and exit -nofancy ..... don't use the fancy YUV420 upscaler -nofilter .... disable in-loop filtering -nodither .... disable dithering -dither .. dithering strength (in 0..100) -alpha_dither use alpha-plane dithering if needed -mt .......... use multi-threading -crop ... crop output with the given rectangle -resize ......... scale the output (*after* any cropping) -flip ........ flip the output vertically -alpha ....... only save the alpha plane -incremental . use incremental decoding (useful for tests) -h ........... this help message -v ........... verbose (e.g. print encoding/decoding times) -quiet ....... quiet mode, don't print anything -noasm ....... disable all assembly optimizations WebP file analysis tool: ======================== 'webpinfo' can be used to print out the chunk level structure and bitstream header information of WebP files. It can also check if the files are of valid WebP format. Usage: webpinfo [options] in_files Note: there could be multiple input files; options must come before input files. Options: -version ........... Print version number and exit. -quiet ............. Do not show chunk parsing information. -diag .............. Show parsing error diagnosis. -summary ........... Show chunk stats summary. -bitstream_info .... Parse bitstream header. Visualization tool: =================== There's a little self-serve visualization tool called 'vwebp' under the examples/ directory. It uses OpenGL to open a simple drawing window and show a decoded WebP file. It's not yet integrated in the automake build system, but you can try to manually compile it using the recommendations below. Usage: vwebp in_file [options] Decodes the WebP image file and visualize it using OpenGL Options are: -version ..... print version number and exit -noicc ....... don't use the icc profile if present -nofancy ..... don't use the fancy YUV420 upscaler -nofilter .... disable in-loop filtering -dither dithering strength (0..100), default=50 -noalphadither disable alpha plane dithering -mt .......... use multi-threading -info ........ print info -h ........... this help message Keyboard shortcuts: 'c' ................ toggle use of color profile 'i' ................ overlay file information 'd' ................ disable blending & disposal (debug) 'q' / 'Q' / ESC .... quit Building: --------- Prerequisites: 1) OpenGL & OpenGL Utility Toolkit (GLUT) Linux: $ sudo apt-get install freeglut3-dev mesa-common-dev Mac + XCode: - These libraries should be available in the OpenGL / GLUT frameworks. Windows: http://freeglut.sourceforge.net/index.php#download 2) (Optional) qcms (Quick Color Management System) i. Download qcms from Mozilla / Chromium: http://hg.mozilla.org/mozilla-central/file/0e7639e3bdfb/gfx/qcms http://src.chromium.org/viewvc/chrome/trunk/src/third_party/qcms ii. Build and archive the source files as libqcms.a / qcms.lib iii. Update makefile.unix / Makefile.vc a) Define WEBP_HAVE_QCMS b) Update include / library paths to reference the qcms directory. Build using makefile.unix / Makefile.vc: $ make -f makefile.unix examples/vwebp > nmake /f Makefile.vc CFG=release-static \ ../obj/x64/release-static/bin/vwebp.exe Animation creation tool: ======================== The utility 'img2webp' can turn a sequence of input images (PNG, JPEG, ...) into an animated WebP file. It offers fine control over duration, encoding modes, etc. Usage: img2webp [file-level options] [image files...] [per-frame options...] File-level options (only used at the start of compression): -min_size ............ minimize size -loop .......... loop count (default: 0, = infinite loop) -kmax .......... maximum number of frame between key-frames (0=only keyframes) -kmin .......... minimum number of frame between key-frames (0=disable key-frames altogether) -mixed ............... use mixed lossy/lossless automatic mode -v ................... verbose mode -h ................... this help -version ............. print version number and exit Per-frame options (only used for subsequent images input): -d ............. frame duration in ms (default: 100) -lossless ........... use lossless mode (default) -lossy ... ........... use lossy mode -q ........... quality -m ............. method to use example: img2webp -loop 2 in0.png -lossy in1.jpg -d 80 in2.tiff -o out.webp Animated GIF conversion: ======================== Animated GIF files can be converted to WebP files with animation using the gif2webp utility available under examples/. The files can then be viewed using vwebp. Usage: gif2webp [options] gif_file -o webp_file Options: -h / -help ............. this help -lossy ................. encode image using lossy compression -mixed ................. for each frame in the image, pick lossy or lossless compression heuristically -q ............. quality factor (0:small..100:big) -m ............... compression method (0=fast, 6=slowest) -min_size .............. minimize output size (default:off) lossless compression by default; can be combined with -q, -m, -lossy or -mixed options -kmin ............ min distance between key frames -kmax ............ max distance between key frames -f ............... filter strength (0=off..100) -metadata ..... comma separated list of metadata to copy from the input to the output if present Valid values: all, none, icc, xmp (default) -loop_compatibility .... use compatibility mode for Chrome version prior to M62 (inclusive) -mt .................... use multi-threading if available -version ............... print version number and exit -v ..................... verbose -quiet ................. don't print anything Building: --------- With the libgif development files installed, gif2webp can be built using makefile.unix: $ make -f makefile.unix examples/gif2webp or using autoconf: $ ./configure --enable-everything $ make Comparison of animated images: ============================== Test utility anim_diff under examples/ can be used to compare two animated images (each can be GIF or WebP). Usage: anim_diff [options] Options: -dump_frames dump decoded frames in PAM format -min_psnr ... minimum per-frame PSNR -raw_comparison ..... if this flag is not used, RGB is premultiplied before comparison -max_diff ..... maximum allowed difference per channel between corresponding pixels in subsequent frames -h .................. this help -version ............ print version number and exit Building: --------- With the libgif development files and a C++ compiler installed, anim_diff can be built using makefile.unix: $ make -f makefile.unix examples/anim_diff or using autoconf: $ ./configure --enable-everything $ make Encoding API: ============= The main encoding functions are available in the header src/webp/encode.h The ready-to-use ones are: size_t WebPEncodeRGB(const uint8_t* rgb, int width, int height, int stride, float quality_factor, uint8_t** output); size_t WebPEncodeBGR(const uint8_t* bgr, int width, int height, int stride, float quality_factor, uint8_t** output); size_t WebPEncodeRGBA(const uint8_t* rgba, int width, int height, int stride, float quality_factor, uint8_t** output); size_t WebPEncodeBGRA(const uint8_t* bgra, int width, int height, int stride, float quality_factor, uint8_t** output); They will convert raw RGB samples to a WebP data. The only control supplied is the quality factor. There are some variants for using the lossless format: size_t WebPEncodeLosslessRGB(const uint8_t* rgb, int width, int height, int stride, uint8_t** output); size_t WebPEncodeLosslessBGR(const uint8_t* bgr, int width, int height, int stride, uint8_t** output); size_t WebPEncodeLosslessRGBA(const uint8_t* rgba, int width, int height, int stride, uint8_t** output); size_t WebPEncodeLosslessBGRA(const uint8_t* bgra, int width, int height, int stride, uint8_t** output); Of course in this case, no quality factor is needed since the compression occurs without loss of the input values, at the expense of larger output sizes. Advanced encoding API: ---------------------- A more advanced API is based on the WebPConfig and WebPPicture structures. WebPConfig contains the encoding settings and is not tied to a particular picture. WebPPicture contains input data, on which some WebPConfig will be used for compression. The encoding flow looks like: -------------------------------------- BEGIN PSEUDO EXAMPLE #include // Setup a config, starting form a preset and tuning some additional // parameters WebPConfig config; if (!WebPConfigPreset(&config, WEBP_PRESET_PHOTO, quality_factor)) return 0; // version error } // ... additional tuning config.sns_strength = 90; config.filter_sharpness = 6; config_error = WebPValidateConfig(&config); // not mandatory, but useful // Setup the input data WebPPicture pic; if (!WebPPictureInit(&pic)) { return 0; // version error } pic.width = width; pic.height = height; // allocated picture of dimension width x height if (!WebPPictureAllocate(&pic)) { return 0; // memory error } // at this point, 'pic' has been initialized as a container, // and can receive the Y/U/V samples. // Alternatively, one could use ready-made import functions like // WebPPictureImportRGB(), which will take care of memory allocation. // In any case, past this point, one will have to call // WebPPictureFree(&pic) to reclaim memory. // Set up a byte-output write method. WebPMemoryWriter, for instance. WebPMemoryWriter wrt; WebPMemoryWriterInit(&wrt); // initialize 'wrt' pic.writer = MyFileWriter; pic.custom_ptr = my_opaque_structure_to_make_MyFileWriter_work; // Compress! int ok = WebPEncode(&config, &pic); // ok = 0 => error occurred! WebPPictureFree(&pic); // must be called independently of the 'ok' result. // output data should have been handled by the writer at that point. // -> compressed data is the memory buffer described by wrt.mem / wrt.size // deallocate the memory used by compressed data WebPMemoryWriterClear(&wrt); -------------------------------------- END PSEUDO EXAMPLE Decoding API: ============= This is mainly just one function to call: #include "webp/decode.h" uint8_t* WebPDecodeRGB(const uint8_t* data, size_t data_size, int* width, int* height); Please have a look at the file src/webp/decode.h for the details. There are variants for decoding in BGR/RGBA/ARGB/BGRA order, along with decoding to raw Y'CbCr samples. One can also decode the image directly into a pre-allocated buffer. To detect a WebP file and gather the picture's dimensions, the function: int WebPGetInfo(const uint8_t* data, size_t data_size, int* width, int* height); is supplied. No decoding is involved when using it. Incremental decoding API: ========================= In the case when data is being progressively transmitted, pictures can still be incrementally decoded using a slightly more complicated API. Decoder state is stored into an instance of the WebPIDecoder object. This object can be created with the purpose of decoding either RGB or Y'CbCr samples. For instance: WebPDecBuffer buffer; WebPInitDecBuffer(&buffer); buffer.colorspace = MODE_BGR; ... WebPIDecoder* idec = WebPINewDecoder(&buffer); As data is made progressively available, this incremental-decoder object can be used to decode the picture further. There are two (mutually exclusive) ways to pass freshly arrived data: either by appending the fresh bytes: WebPIAppend(idec, fresh_data, size_of_fresh_data); or by just mentioning the new size of the transmitted data: WebPIUpdate(idec, buffer, size_of_transmitted_buffer); Note that 'buffer' can be modified between each call to WebPIUpdate, in particular when the buffer is resized to accommodate larger data. These functions will return the decoding status: either VP8_STATUS_SUSPENDED if decoding is not finished yet or VP8_STATUS_OK when decoding is done. Any other status is an error condition. The 'idec' object must always be released (even upon an error condition) by calling: WebPDelete(idec). To retrieve partially decoded picture samples, one must use the corresponding method: WebPIDecGetRGB or WebPIDecGetYUVA. It will return the last displayable pixel row. Lastly, note that decoding can also be performed into a pre-allocated pixel buffer. This buffer must be passed when creating a WebPIDecoder, calling WebPINewRGB() or WebPINewYUVA(). Please have a look at the src/webp/decode.h header for further details. Advanced Decoding API: ====================== WebP decoding supports an advanced API which provides on-the-fly cropping and rescaling, something of great usefulness on memory-constrained environments like mobile phones. Basically, the memory usage will scale with the output's size, not the input's, when one only needs a quick preview or a zoomed in portion of an otherwise too-large picture. Some CPU can be saved too, incidentally. -------------------------------------- BEGIN PSEUDO EXAMPLE // A) Init a configuration object WebPDecoderConfig config; CHECK(WebPInitDecoderConfig(&config)); // B) optional: retrieve the bitstream's features. CHECK(WebPGetFeatures(data, data_size, &config.input) == VP8_STATUS_OK); // C) Adjust 'config' options, if needed config.options.no_fancy_upsampling = 1; config.options.use_scaling = 1; config.options.scaled_width = scaledWidth(); config.options.scaled_height = scaledHeight(); // etc. // D) Specify 'config' output options for specifying output colorspace. // Optionally the external image decode buffer can also be specified. config.output.colorspace = MODE_BGRA; // Optionally, the config.output can be pointed to an external buffer as // well for decoding the image. This externally supplied memory buffer // should be big enough to store the decoded picture. config.output.u.RGBA.rgba = (uint8_t*) memory_buffer; config.output.u.RGBA.stride = scanline_stride; config.output.u.RGBA.size = total_size_of_the_memory_buffer; config.output.is_external_memory = 1; // E) Decode the WebP image. There are two variants w.r.t decoding image. // The first one (E.1) decodes the full image and the second one (E.2) is // used to incrementally decode the image using small input buffers. // Any one of these steps can be used to decode the WebP image. // E.1) Decode full image. CHECK(WebPDecode(data, data_size, &config) == VP8_STATUS_OK); // E.2) Decode image incrementally. WebPIDecoder* const idec = WebPIDecode(NULL, NULL, &config); CHECK(idec != NULL); while (bytes_remaining > 0) { VP8StatusCode status = WebPIAppend(idec, input, bytes_read); if (status == VP8_STATUS_OK || status == VP8_STATUS_SUSPENDED) { bytes_remaining -= bytes_read; } else { break; } } WebPIDelete(idec); // F) Decoded image is now in config.output (and config.output.u.RGBA). // It can be saved, displayed or otherwise processed. // G) Reclaim memory allocated in config's object. It's safe to call // this function even if the memory is external and wasn't allocated // by WebPDecode(). WebPFreeDecBuffer(&config.output); -------------------------------------- END PSEUDO EXAMPLE Bugs: ===== Please report all bugs to the issue tracker: https://bugs.chromium.org/p/webp Patches welcome! See this page to get started: http://www.webmproject.org/code/contribute/submitting-patches/ Discuss: ======== Email: webp-discuss@webmproject.org Web: http://groups.google.com/a/webmproject.org/group/webp-discuss usr/share/doc/perl-Sub-Install/README000064400000000572152532271650013215 0ustar00 This archive contains the distribution Sub-Install, version 0.928: install subroutines into packages easily This software is copyright (c) 2005 by Ricardo SIGNES. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. This README file was generated by Dist::Zilla::Plugin::Readme v5.019. usr/share/bison/README000064400000003741152532274460010470 0ustar00-*- outline -*- This directory contains data needed by Bison. * Skeletons Bison skeletons: the general shapes of the different parser kinds, that are specialized for specific grammars by the bison program. Currently, the supported skeletons are: - yacc.c It used to be named bison.simple: it corresponds to C Yacc compatible LALR(1) parsers. - lalr1.cc Produces a C++ parser class. - lalr1.java Produces a Java parser class. - glr.c A Generalized LR C parser based on Bison's LALR(1) tables. - glr.cc A Generalized LR C++ parser. Actually a C++ wrapper around glr.c. These skeletons are the only ones supported by the Bison team. Because the interface between skeletons and the bison program is not finished, *we are not bound to it*. In particular, Bison is not mature enough for us to consider that "foreign skeletons" are supported. * m4sugar This directory contains M4sugar, sort of an extended library for M4, which is used by Bison to instantiate the skeletons. * xslt This directory contains XSLT programs that transform Bison's XML output into various formats. - bison.xsl A library of routines used by the other XSLT programs. - xml2dot.xsl Conversion into GraphViz's dot format. - xml2text.xsl Conversion into text. - xml2xhtml.xsl Conversion into XHTML. ----- Copyright (C) 2002, 2008-2015 Free Software Foundation, Inc. This file is part of GNU Bison. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . usr/share/doc/autoconf/README000064400000005313152532305500011724 0ustar00-*- text -*- Autoconf Autoconf is an extensible package of M4 macros that produce shell scripts to automatically configure software source code packages. These scripts can adapt the packages to many kinds of UNIX-like systems without manual user intervention. Autoconf creates a configuration script for a package from a template file that lists the operating system features that the package can use, in the form of M4 macro calls. Producing configuration scripts using Autoconf requires GNU M4 and Perl. You should install GNU M4 (version 1.4.6 or later is required; 1.4.14 or later is recommended) and Perl (5.006 or later) before configuring Autoconf, so that Autoconf's configure script can find them. The configuration scripts produced by Autoconf are self-contained, so their users do not need to have Autoconf (or GNU M4, Perl, etc.). You can get GNU M4 here: ftp://ftp.gnu.org/gnu/m4/ The file INSTALL should be distributed with packages that use Autoconf-generated configure scripts and Makefiles that conform to the GNU coding standards. The package's README can just give an overview of the package, where to report bugs, and a pointer to INSTALL for instructions on compilation and installation. This removes the need to maintain many similar sets of installation instructions. Be sure to read BUGS and INSTALL. Mail suggestions to autoconf@gnu.org, report bugs to bug-autoconf@gnu.org, and submit patches to autoconf-patches@gnu.org. All changes can be tracked at the read-only autoconf-commit@gnu.org. Always include the Autoconf version number, which you can get by running `autoconf --version'. Archives of bug-autoconf@gnu.org can be found in , and similarly for the other mailing lists. Licensing Autoconf is released under the General Public License version 3 (GPLv3+). Additionally, Autoconf includes a licensing exception in some of its source files; see the respective copyright notices for how your project is impacted by including scripts generated by Autoconf, and the COPYING.EXCEPTION file for the exception in terms of the Additional Permissions as described in section 7 of GPLv3. For more licensing information, see and . For any copyright year range specified as YYYY-ZZZZ in this package note that the range specifies every single year in that closed interval. ----- Copyright (C) 1992-1994, 1998, 2000-2012 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without warranty of any kind. usr/share/doc/libretls/README000064400000006272152532510610011733 0ustar00README(7) BSD Miscellaneous Information Manual README(7) NAME LibreTLS -- libtls for OpenSSL DESCRIPTION LibreTLS is a port of libtls from LibreSSL to OpenSSL. libtls: https://man.openbsd.org/tls_init.3 is ``a new TLS library, designed to make it easier to write foolproof applications''. libtls provides an excellent new API, but LibreSSL can be diffi- cult to install on systems which already use OpenSSL. LibreTLS aims to make the libtls API more easily and widely available. Releases LibreTLS is based on LibreSSL-portable: https://www.libressl.org/releases.html sources. LibreTLS releases track LibreSSL releases, starting with version 3.2.0. If patches must be released between LibreSSL releases, the letter `p' followed by an increasing digit starting from 1 will be added to the version number. LibreTLS release tarballs are available from .: https://causal.agency/libretls/ Compatibility The libtls provided by LibreTLS is ABI-compatible with the libtls provided by the corresponding LibreSSL release. The behaviour of LibreTLS and LibreSSL differs in how the root certificates are loaded by default. LibreSSL uses a hardcoded path to a CA bundle file, while LibreTLS uses the default CA locations of OpenSSL, which may include a CA directory. To restore the behaviour of LibreSSL, call tls_config_set_ca_file(3) with the path returned by tls_default_ca_cert_file(3). All other behaviour should be identical. LibreTLS targets the OpenSSL 1.1.1 series. Due to a bug in OpenSSL, only versions 1.1.1b and newer are known to work. LibreTLS is compatible with OpenSSL 3.0.0 but hasn't been ported away from deprecated APIs. Platform Support LibreTLS should work on the same platforms as LibreSSL-portable: https://www.libressl.org/releases.html, though it has not been thoroughly tested on platforms other than Linux, FreeBSD and macOS. License libtls consists of all new code developed as part of OpenBSD under OpenBSD's preferred license: https://www.openbsd.org/policy.html of ISC. Some compat sources are under the 3-clause BSD license or the MIT license. LibreTLS is not encumbered by the dual-licensing of OpenSSL under both the OpenSSL license and the original SSLeay license, which are incompatible with the GNU General Public License. When OpenSSL 3.0 is released under the Apache 2.0 license, software under the GPLv3 will be able to link against LibreTLS and OpenSSL without additional permissions. INSTALLING To install from a release tarball, run the following: ./configure make all make install To install from a git checkout, autoconf, automake and libtool are required. Run the following before continuing with the steps above: autoreconf -fi AUTHORS LibreTLS is maintained by June McEnroe . LibreSSL is developed by The OpenBSD project: https://www.openbsd.org. Causal Agency February 27, 2022 Causal Agency usr/share/doc/harfbuzz/README000064400000001564152532511430011746 0ustar00[![Build Status](https://travis-ci.org/harfbuzz/harfbuzz.svg)](https://travis-ci.org/harfbuzz/harfbuzz) [![Build status](https://ci.appveyor.com/api/projects/status/0t0flrxpstj9lb9w?svg=true)](https://ci.appveyor.com/project/harfbuzz/harfbuzz) [![CircleCI](https://circleci.com/gh/harfbuzz/harfbuzz.svg?style=svg)](https://circleci.com/gh/harfbuzz/harfbuzz) [![Coverity](https://img.shields.io/coverity/scan/5450.svg)](https://scan.coverity.com/projects/behdad-harfbuzz) [![Coverage Status](https://img.shields.io/coveralls/harfbuzz/harfbuzz.svg)](https://coveralls.io/r/harfbuzz/harfbuzz) [ABI Tracker](http://abi-laboratory.pro/tracker/timeline/harfbuzz/) This is HarfBuzz, a text shaping library. For bug reports, mailing list, and other information please visit: http://harfbuzz.org/ For license information, see the file COPYING. Documentation: https://harfbuzz.github.io usr/share/doc/openssh/README000064400000004623152532511600011570 0ustar00See https://www.openssh.com/releasenotes.html#8.0p1 for the release notes. Please read https://www.openssh.com/report.html for bug reporting instructions and note that we do not use Github for bug reporting or patch/pull-request management. This is the port of OpenBSD's excellent OpenSSH[0] to Linux and other Unices. OpenSSH is based on the last free version of Tatu Ylonen's sample implementation with all patent-encumbered algorithms removed (to external libraries), all known security bugs fixed, new features reintroduced and many other clean-ups. OpenSSH has been created by Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo de Raadt, and Dug Song. It has a homepage at https://www.openssh.com/ This port consists of the re-introduction of autoconf support, PAM support, EGD[1]/PRNGD[2] support and replacements for OpenBSD library functions that are (regrettably) absent from other unices. This port has been best tested on AIX, Cygwin, HP-UX, Linux, MacOS/X, FreeBSD, NetBSD, OpenBSD, OpenServer, Solaris and UnixWare. This version actively tracks changes in the OpenBSD CVS repository. The PAM support is now more functional than the popular packages of commercial ssh-1.2.x. It checks "account" and "session" modules for all logins, not just when using password authentication. OpenSSH depends on Zlib[3], OpenSSL[4], and optionally PAM[5] and libedit[6] There is now several mailing lists for this port of OpenSSH. Please refer to https://www.openssh.com/list.html for details on how to join. Please send bug reports and patches to the mailing list openssh-unix-dev@mindrot.org. The list is open to posting by unsubscribed users. Code contribution are welcomed, but please follow the OpenBSD style guidelines[7]. Please refer to the INSTALL document for information on how to install OpenSSH on your system. Damien Miller Miscellania - This version of OpenSSH is based upon code retrieved from the OpenBSD CVS repository which in turn was based on the last free sample implementation released by Tatu Ylonen. References - [0] https://www.openssh.com/ [1] http://www.lothar.com/tech/crypto/ [2] http://prngd.sourceforge.net/ [3] https://www.zlib.net/ [4] https://www.openssl.org/ [5] https://www.openpam.org https://www.kernel.org/pub/linux/libs/pam/ (PAM also is standard on Solaris and HP-UX 11) [6] https://thrysoee.dk/editline/ (portable version) [7] https://man.openbsd.org/style.9 usr/share/doc/perl-IO-Tty/README000064400000003226152532615540012144 0ustar00IO::Tty and IO::Pty provide an interface to pseudo tty's To build this distribution, run perl Makefile.PL make make test make install This version (v1.08) now adds posix_openpt() as a means of allocating the pty, thanks goes to Ed Schouten who provided a patch. Please note that pty creation is very system-dependend, and there are a *lot* of different systems out there. If you have problems on your system, please send me () the output of a manual installation ('perl Makefile.PL; make; make test;') and I'll see what I can deduce from it. Supported systems include Linux, Solaris, AIX, OSF, *BSD, IRIX, HP-UX and Darwin. Windows is supported only under the Cygwin environment, see http://www.cygwin.com/. Sorry, ActiveState Perl on Windows is NOT supported, basically because there are no pseudo-terminals under Windows. If it's working on your system, please send me a short note with details (version number, distribution, etc. 'uname -a' and 'perl -V' is a good start; also, the output from "perl Makefile.PL" contains a lot of interesting info, so please include that as well) so I can get an overview. Thanks! See the ChangeLog and the docs for details. Oh, and many thanks to all testers, without their support this project would still be limited to a few systems that I have access to. Thanks also to SourceForge (http://sf.net) who is hosting this and many other projects, their services have made development and support a real pleasure. If you intend to donate something to the Open Source cause, think about lending them a machine with a commercial OS license for their compile farm! Roland 2009-02-23 usr/share/doc/libxslt/README000064400000001217152532621330011570 0ustar00 XSLT support for libxml2 (XML toolkit from the GNOME project) Full documentation is available on-line at http://xmlsoft.org/XSLT/ This code is released under the MIT Licence see the Copyright file. To report bugs, follow the instructions at: http://xmlsoft.org/XSLT/bugs.html A mailing-list xslt@gnome.org is available, to subscribe: http://mail.gnome.org/mailman/listinfo/xslt The list archive is at: http://mail.gnome.org/archives/xslt/ All technical answers asked privately will be automatically answered on the list and archived for public access unless pricacy is explicitely required and justified. Daniel Veillard $Id$ usr/share/doc/socat/README000064400000026740152532632300011227 0ustar00 about ----- socat is a relay for bidirectional data transfer between two independent data channels. Each of these data channels may be a file, pipe, device (serial line etc. or a pseudo terminal), a socket (UNIX, IP4, IP6 - raw, UDP, TCP), an SSL socket, proxy CONNECT connection, a file descriptor (stdin etc.), the GNU line editor (readline), a program, or a combination of two of these. These modes include generation of "listening" sockets, named pipes, and pseudo terminals. socat can be used, e.g., as TCP port forwarder (one-shot or daemon), as an external socksifier, for attacking weak firewalls, as a shell interface to UNIX sockets, IP6 relay, for redirecting TCP oriented programs to a serial line, to logically connect serial lines on different computers, or to establish a relatively secure environment (su and chroot) for running client or server shell scripts with network connections. Many options are available to refine socats behaviour: terminal parameters, open() options, file permissions, file and process owners, basic socket options like bind address, advanced socket options like IP source routing, linger, TTL, TOS (type of service), or TCP performance tuning. More capabilities, like daemon mode with forking, client address check, "tail -f" mode, some stream data processing (line terminator conversion), choosing sockets, pipes, or ptys for interprocess communication, debug and trace options, logging to syslog, stderr or file, and last but not least precise error messages make it a versatile tool for many different purposes. In fact, many of these features already exist in specialized tools; but until now, there does not seem to exists another tool that provides such a generic, flexible, simple and almost comprehensive (UNIX) byte stream connector. packages -------- before bothering with compilers, dependencies and include files, you might try to get a binary distribution that matches your platform. Have a look at the projects home page for actual information regarding socat binary distributions. platforms --------- socat 1.7.0 was compiled and more or less successfully tested under the following operating systems: Debian lenny/sid on x86, kernel 2.6.24 FreeBSD 6.1 on x86 NetBSD 4.0 on x86 OpenBSD 4.3 on x86 OpenSolaris 10 on x86 with gcc Mac OS X 10.5.5 on iMac G5, with libreadline HP-UX 11.23 AIX 5.3 on 64bit Power4 with gcc Cygwin 1.5.25 on i686 tests on Tru64 can no longer be performed because HP testdrive has taken down these hosts. Some versions of socat have been reported to successfully compile under older Linux versions back to RedHat 2.1 (kernel 1.2.13, gcc 2.7.0), under AIX 4.1 and 4.3, SunOS 5.7-5.8, FreeBSD 4.2 - 4.9, MacOS X 10.1, Cygwin, Solaris 8 on x86, OSR 5.0.6, NetBSD 1.6.1 and 2.0.2, OpenBSD 3.4 and 3.8, Tru64 5.1B, Mac OS X 10.1-10.2, and HP-UX 11 It might well compile and run under other UNIX like operating systems. install ------- Get the tarball and extract it: tar xzf socat.tar.gz cd socat-1.7.4.0 ./configure make su make install # installs socat, filan, and procan in /usr/local/bin For compiling socat, gcc (or egc) is recommended. If gcc is not available, the configure script will fail to determine some features; then you'd better begin with one of the Makefiles and config.h's from the Config directory. If you have problems with the OpenSSL library, you can apply the option "--disable-openssl" to configure. If you have problems with the readline library or (n)curses, you can apply the option "--disable-readline" to configure. If you have problems with the tcp wrappers library, you can apply the option "--disable-libwrap" to configure. If you still get errors or a tremendous amount of warnings you can exclude the features for system call tracing and file descriptor analyzing by applying the options "--disable-sycls --disable-filan" to configure. You still need the functions vsnprintf and snprintf that are in the GNU libc, but might not be available with some proprietary libc's. The configure script looks for headers and libraries of openssl, readline, and tcp wrappers in the OS'es standard places and in the subdirectories include/ and lib/ of the following places: /sw/ /usr/local/ /opt/freeware/ /usr/sfw/ and for openssl also in: /usr/local/ssl/ In case of unexpected behaviour it is important to understand that configure first searches for the appropriate include file and then expects to find the library in the associated lib directory. That means, when e.g. a OpenSSL installation resides under /usr/local and there is a symbolic link from /usr/include/ssl/ssl.h to /usr/local/ssl/include/ssl/ssl.h, configure will find the /usr/include/... header and will therefore expect libssl in /usr/lib instead of /usr/local/... If configure does not find a header file or library but you know where it is, you can specify additional search locations, e.g.: export LIBS="-L$HOME/lib" export CPPFLAGS="-I$HOME/include" before running configure and make. For other operating systems, if socat does not compile without errors, refer to the file PORTING. platform specifics - Debian (Ubuntu, ...) ----------------------------------------- libssl-dev platform specifics - redhat --------------------------- Install the following packages before building socat: tcp_wrappers-devel readline-devel openssl-devel On RedHat Linux 9.0, including openssl/ssl.h might fail due to problems with the krb5-devel package. configure reacts with disabling openssl integration. To solve this issue, help cpp to find the krb5.h include file: CPPFLAGS="-I/usr/kerberos/include" ./configure platform specifics - aix ------------------------ The flock() prototype is not available but the function is. Thus, to enable the socat flock options, run configure and then change in config.h the line /* #undef HAVE_FLOCK */ to #define HAVE_FLOCK 1 and continue the build process. When using the OpenSSL rpm provided by IBM, configure might need the environment variable setting: LIBS="-L/opt/freeware/lib" When using the OpenSSL bundle provided by IBM, egd needs to be installed too to get enough entropy. socat compiles not only with gcc, but also with xlc. Just adapt the Makefile: replace gcc by /usr/vac/bin/xlc and remove gcc specific options "-Wall -Wno-parentheses". When linking with the OpenSSL library provided by IBM, errors may occur: ld: 0711-317 ERROR: Undefined symbol: .__umoddi3 In this case, you need to link with libgcc or compile libcrypt yourself using xlc, or disable SSL (in config.h, undefine WITH_OPENSSL and recompile) The score of test.sh can be improved by uncommenting MISCDELAY=1 in this script. platform specifics - solaris ---------------------------- If libreadline or libssl are in a directory not searched by the loader per default, e.g. /opt/sfw/lib, you must add this directory to $LD_LIBRARY_PATH, for running both configure and the socat executables, e.g.: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/sfw/lib For some shell scripts, it is preferable to have /usr/xpg4/bin at a prominent position in $PATH. With the default compiler define _GNU_SOURCE, the CMSG_* macros are not available, and therefore ancillary messages cannot be used. To enable these try the following: After running ./configure, edit Makefile and replace "-D_GNU_SOURCE" with "-D_XPG4_2 -D__EXTENSIONS__" and run make platform specifics - hp-ux -------------------------- Ancillary messages cannot be compiled in with socat: both struct msghdr and struct cmsghdr are required. Compiling with -D_XOPEN_SOURCE_EXTENDED provides struct msghdr but disables struct cmsghdr while -D_OPEN_SOURCE disables struct msghdr but disables struct cmsghdr. Please contact socat development if you know a solution. Shutting down the write channel of a UNIX domain socket does not seem to trigger an EOF on the peer socket. This makes problems with the exec and system addresses. This OS provides the type "long long", but not the strtoll() function to read data into a long long variable. UNIX domain sockets are only supported with SOCK_STREAM, not with datagrams (see man 7 unix). With UDP sockets it seems to happen that the select() call reports available data (or EOF) but a subsequent read() call hangs. platform specifics - tru64 -------------------------- When the use of the readline address fails with an error like: socat: /sbin/loader: Fatal Error: Reference to unresolvable symbol "tgetent" in ".../libreadline.so.4" and you still want to use shared libraries, try the following workaround: $ make distclean; LIBS="-static" ./configure remove the "-static" occurrence in Makefile $ make documentation ------------- These files reside in the doc subdirectory: socat.1 is the man page, socat.html is the HTML based man page. It is actual, but describes only the more useful options. xio.help is an older, but more exact description in text form; with socat version 1.6.0 it is outdated. doc/socat-openssltunnel.html is a simple tutorial for a private SSL connection. doc/socat-multicast.html is a short tutorial for multicast and broadcast communications. doc/socat-tun shows how to build a virtual network between two hosts. socat.1 and socat.html can be generated from socat.yo (which is released with socat 1.6.0.1 and later) using the yodl document language package. Maintenance of yodl had been discontinued by its author (http://www.xs4all.nl/~jantien/yodl/) (there seems to be a revival at http://yodl.sourceforge.net/ though). For socat, the old version 1.31 is used; an rpm is still distributed with recent OpenSuSE versions (confirmed for OpenSuSE 10.1 in suse/i586/yodl-1.31.18-1142.i586.rpm). It appears to install smoothly also under RedHat Linux. After yodl 1.31 installation, the following correction must be performed in /usr/share/yodl/shared.yo in two places: < whenhtml(htmlcommand())) > whenhtml(htmlcommand())) license ------- socat is distributed under the terms of the GNU GPLv2; except for install-sh, which is copyright MIT, with its own license; In addition, as a special exception, the copyright holder gives permission to link the code of this program with any version of the OpenSSL library which is distributed under a license identical to that listed in the included COPYING.OpenSSL file, and distribute linked combinations including the two. You must obey the GNU General Public License in all respects for all of the code used other than OpenSSL. If you modify this file, you may extend this exception to your version of the file, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version. 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, version 2 of the License This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. contact ------- For questions, bug reports, ideas, contributions etc. please contact socat@dest-unreach.org For socat source distribution, bug fixes, and latest news see http://www.dest-unreach.org/socat/ www.socat.org is an alternate site providing the same contents. public git repository: git://repo.or.cz/socat.git http://repo.or.cz/r/socat.git usr/share/doc/atop/README000064400000010433152532711060011052 0ustar00COPYRIGHT NOTICE ---------------- For all files that are not marked differently: Copyright Gerlof Langeveld 2007-2021 and licensed under the GPL v2 (or any later version). DEPENDENCIES ------------ Install the following packages to be able to build atop (package name can be different depending on the Linux distro): * zlib-devel or libz-dev or zlib1g-dev * ncurses-devel or libncurses5-dev/libncursesw5-dev Install the following packages to be able to execute atop (package name can be different depending on the Linux distro): * zlib or zlib1g * ncurses or libncurses5/libncursesw5 INSTALLING AND USING ATOP ------------------------- For interactive use, it is sufficient to install ATOP with the command (as root): make install (systemd based) or make sysvinstall (System V init based) For automatic logging in compressed binary format, see the description in the manual-page. The kernel module 'netatop' can be downloaded and installed separately from www.atoptool.nl/downloadnetatop.php This module is optional and can be used to gather network statistics per process/thread as described in www.atoptool.nl/netatop.php PROCESS ACCOUNTING WITH PSACCT/ACCT PACKAGE ------------------------------------------- Preferably, process accounting should be handled by the atopacctd daemon which is implicitly installed when installing atop. This daemon takes care that process accounting is only active when at least one atop process is running. Besides, when process accounting is activated, atopacctd takes care that the disk utilization is minimal. See the man page of atopacctd for further details. When the psacct or acct package is installed in parallel with the atop package and you want to enable/start the (ps)acct service for permanent process accounting, take care that the atopacct will be disabled. The atopacct service and the (ps)acct service mutually exclude one another. When the (ps)acct service is enabled, atop automatically uses the process accounting file that is used by this package. See also the section PROCESS ACCOUNTING in the man page of atop. KERNEL ISSUES WITH PROCESS ACCOUNTING ------------------------------------- Newer upstream kernels (e.g. 4.8 and 4.9) have two issuess with process accounting: 1) Sometimes process accounting does not work at all¹. Atopacctd tries to work around this issue, by retrying to initialize process accounting several times. 2) When using the NETLINK inface, the command TASKSTATS_CMD_GET consequently returns -EINVAL². Atopacctd needs NETLINK to be able to be triggered that some process in the system has finished. In this way, atopacctd can be in a blocking state as long as no processes terminate. When atopacctd detects that NETLINK fails, it switches into a polling mode to periodically try if it can read process accounting records as a workaround. This issue has to do with cpumasks and you can work-around it by building a kernel that has CONFIG_NR_CPUS configured to exactly the amount of CPUs (logical CPUs) in the system the kernel runs on. You can find this kernel option under "Processor type and features" --> "Maximum number of CPUs". [1] Bug 190271 - process accounting sometimes does not work https://bugzilla.kernel.org/show_bug.cgi?id=190271 [2] Bug 190711 - Process accounting: Using the NETLINK interface, the command TASKSTATS_CMD_GET returns -EINVAL https://bugzilla.kernel.org/show_bug.cgi?id=190711 Linux kernel mailing list thread: [REGRESSION] Two issues that prevent process accounting (taskstats) from working correctly https://lkml.org/lkml/2016/12/19/182 SERVICE ACTIVATION AFTER INSTALLATION ------------------------------------- After the package has been installed, be sure that the related services are activated. To support handling of terminated processes using process accounting, enable the atopacct service: systemctl enable --now atopacct Notice that this service should not be enabled when the package psacct or acct (depends on the Linux distribution) has been installed and enabled. In that case atop uses the daily process accounting file created via that package. To support maintaining daily log files to keep track of long-term analysis information, enable the atop service and the related timer: systemctl enable --now atop systemctl enable --now atop-rotate.timer Gerlof Langeveld gerlof.langeveld@atoptool.nl usr/share/doc/lua-socket/README000064400000000355152532721420012161 0ustar00This is the LuaSocket 3.0-rc1. It has been tested on Windows 7, Mac OS X, and Linux. Please use the project page at GitHub https://github.com/diegonehab/luasocket to file bug reports or propose changes. Have fun, Diego Nehab. usr/share/doc/gpgme/README000064400000007751152532756450011233 0ustar00 GPGME - GnuPG Made Easy --------------------------- Copyright 2001-2018 g10 Code GmbH This file is free software; as a special exception the author gives unlimited permission to copy and/or distribute it, with or without modifications, as long as this notice is preserved. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY, to the extent permitted by law; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Introduction -------------- GnuPG Made Easy (GPGME) is a C language library that allows to add support for cryptography to a program. It is designed to make access to public key crypto engines like GnuPG or GpgSM easier for applications. GPGME provides a high-level crypto API for encryption, decryption, signing, signature verification and key management. GPGME comes with language bindings for Common Lisp, C++, QT, Python2, and Python 3. GPGME uses GnuPG as its backend to support OpenPGP and the Cryptographic Message Syntax (CMS). See the files COPYING, COPYING.LESSER, and each file for copyright and warranty information. The file AUTHORS has a list of authors and useful web and mail addresses. Installation -------------- See the file INSTALL for generic installation instructions. Check that you have unmodified sources. See below on how to do this. Don't skip it - this is an important step! To build GPGME, you need to install libgpg-error (>= 1.24) and Libassuan (>= 2.4.2). For support of the OpenPGP and the CMS protocols, you should use the latest version of GnuPG (>= 2.1.18) , available at: https://gnupg.org/ftp/gcrypt/gnupg/. For building the Git version of GPGME please see the file README.GIT for more information. How to Verify the Source -------------------------- In order to check that the version of GPGME which you are going to install is an original and unmodified one, you can do it in one of the following ways: a) If you have a trusted Version of GnuPG installed, you can simply check the supplied signature: $ gpg --verify gpgme-x.y.z.tar.gz.sig gpgme-x.y.z.tar.gz This checks that the detached signature gpgme-x.y.z.tar.gz.sig is indeed a a signature of gpgme-x.y.z.tar.gz. The key used to create this signature is at least one of: rsa2048 2011-01-12 [expires: 2019-12-31] Key fingerprint = D869 2123 C406 5DEA 5E0F 3AB5 249B 39D2 4F25 E3B6 Werner Koch (dist sig) rsa2048 2014-10-29 [expires: 2019-12-31] Key fingerprint = 46CC 7308 65BB 5C78 EBAB ADCF 0437 6F3E E085 6959 David Shaw (GnuPG Release Signing Key) rsa2048 2014-10-29 [expires: 2020-10-30] Key fingerprint = 031E C253 6E58 0D8E A286 A9F2 2071 B08A 33BD 3F06 NIIBE Yutaka (GnuPG Release Key) rsa3072 2017-03-17 [expires: 2027-03-15] Key fingerprint = 5B80 C575 4298 F0CB 55D8 ED6A BCEF 7E29 4B09 2E28 Andre Heinecke (Release Signing Key) The keys are available at and in released GnuPG tarballs in the file g10/distsigkey.gpg . You have to make sure that these are really the desired keys and not faked one. You should do this by comparing the fingerprints with the fingerprints published elsewhere. b) If you don't have any of the above programs, you have to verify the SHA1 checksum: $ sha1sum gpgme-x.y.z.tar.gz This should yield an output _similar_ to this: fd9351b26b3189c1d577f0970f9dcadc3412def1 gpgme-x.y.z.tar.gz Now check that this checksum is _exactly_ the same as the one published via the announcement list and probably via Usenet. Documentation --------------- For information how to use the library you can read the info manual, which is also a reference book, in the doc/ directory. The programs in the tests/ directory may also prove useful. Please subscribe to the gnupg-devel@gnupg.org mailing list if you want to do serious work. For hacking on GPGME, please have a look at doc/HACKING. usr/share/doc/perl-Module-CoreList-tools/README000064400000002070152533046520015155 0ustar00README for Module::CoreList 2.20 =head1 NAME Module::CoreList - what modules shipped with versions of perl =head1 SYNOPSIS use Module::CoreList; print $Module::CoreList::version{5.00503}{CPAN}; # prints 1.48 print Module::CoreList->first_release('File::Spec'); # prints 5.00503 print Module::CoreList->first_release('File::Spec', 0.82); # prints 5.006001 print join ", ", @{ $Module::CoreList::families{5.005} }; # prints "5.005, 5.00503, 5.00504" =head1 DEPENDENCIES This module has external dependencies on the following modules: Test::More =head1 INSTALLATION perl Makefile.PL make make test and if all goes well make install =head1 HISTORY See the F file. =head1 AUTHOR Richard Clamp Erichardc@unixbeard.netE Currently maintained by the perl 5 porters Eperl5-porters@perl.orgE. =head1 COPYRIGHT Copyright (C) 2002-2009 Richard Clamp. All Rights Reserved. This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =head1 SEE ALSO L, L usr/share/doc/cronie/README000064400000001037152533046610011371 0ustar0017. January 2008 mmaslano (at) redhat (dot) com Rename the fork on cronie. The source code could be found here: http://mmaslano.fedorapeople.org/cronie/ or git archive here: git://git.fedorahosted.org/git/cronie.git 3. October 2007 mmaslano (at) redhat (dot) com This is a clone of 'original' vixie-cron. It was used in Red Hat|Fedora system and patched for a long time. Now was made clone tagged with version 4.2. Changes are mainly in git commit messages, some older changes could be found in spec changelog (contrib/vixie-cron.spec). usr/share/doc/rpcbind/README000064400000000160152533050510011521 0ustar00This release was a native source release from Sun. It has been ported from FreeBSD 5.2.1 to GNU/Linux in 2004. usr/share/doc/device-mapper/README000064400000003266152533165320012641 0ustar00This tree contains the LVM2 and device-mapper tools and libraries. This is development branch, for stable 2.02 release see stable-2.02 branch. For more information about LVM2 read the changelog in the WHATS_NEW file. Installation instructions are in INSTALL. There is no warranty - see COPYING and COPYING.LIB. Tarballs are available from: ftp://sourceware.org/pub/lvm2/ https://github.com/lvmteam/lvm2/releases The source code is stored in git: https://sourceware.org/git/?p=lvm2.git git clone git://sourceware.org/git/lvm2.git mirrored to: https://github.com/lvmteam/lvm2 git clone https://github.com/lvmteam/lvm2.git git clone git@github.com:lvmteam/lvm2.git Mailing list for general discussion related to LVM2: linux-lvm@redhat.com Subscribe from https://www.redhat.com/mailman/listinfo/linux-lvm Mailing lists for LVM2 development, patches and commits: lvm-devel@redhat.com Subscribe from https://www.redhat.com/mailman/listinfo/lvm-devel lvm2-commits@lists.fedorahosted.org (Read-only archive of commits) Subscribe from https://fedorahosted.org/mailman/listinfo/lvm2-commits Mailing list for device-mapper development, including kernel patches and multipath-tools: dm-devel@redhat.com Subscribe from https://www.redhat.com/mailman/listinfo/dm-devel Website: https://sourceware.org/lvm2/ Report upstream bugs at: https://bugzilla.redhat.com/enter_bug.cgi?product=LVM%20and%20device-mapper or open issues at: https://github.com/lvmteam/lvm2/issues The source code repository used until 7th June 2012 is accessible using CVS: cvs -d :pserver:cvs@sourceware.org:/cvs/lvm2 login cvs cvs -d :pserver:cvs@sourceware.org:/cvs/lvm2 checkout LVM2 The password is cvs. usr/share/doc/elinks/README000064400000005043152533273760011410 0ustar00ELinks - an advanced web browser ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ELinks is an advanced and well-established feature-rich text mode web (HTTP/FTP/..) browser. ELinks can render both frames and tables, is highly customizable and can be extended via scripts. It is very portable and runs on a variety of platforms. The ELinks official website is available at http://elinks.cz/ Please see the SITES file for mirrors or other recommended sites. If you want to install ELinks on your computer, see the INSTALL file for further instructions. A good start point is documentation files available in doc/, especially the file named index.txt. If you want to request features or report bugs, see community information at http://elinks.cz/community.html and feedback information available at http://elinks.cz/feedback.html. If you want to write some patches, please first read the doc/hacking.txt document. If you want to add a new language or update the translation for an existing one, please read po/README document. If you want to write some documentation, well, you're welcome! ;) Historical notes ~~~~~~~~~~~~~~~~ Initially, ELinks was a development version of Links (Lynx-like text WWW browser), with more liberal features policy and development style. Its purpose was to provide an alternative to Links, and to test and tune various new features, but still provide good rock-solid releases inside stable branches. Why not contribute to Links instead? Well, first I made a bunch of patches for the original Links, but Mikulas wasn't around to integrate them, so I started releasing my fork. When he came back, a significant number of them got refused because Mikulas did not like them, as he just wouldn't have any use for them himself. He wants to keep Links with a relatively closed feature set and merge only new features which he himself needs. It has advantages that the tree is very narrow and the code is small and contains very little bloat. ELinks, on the contrary, aims to provide a full-featured web browser, superior to both lynx and w3m and with the power (but not slowness and memory usage) of Mozilla, Konqueror and similar browsers. However, to prevent drastic bloating of the code, the development is driven in the course of modularization and separation of add-on modules (like cookies, bookmarks, ssl, scripting etc). For more details about ELinks history, please see http://elinks.cz/history.html If you are more interested in the history and various Links clones and versions, you can examine the website at http://links.sf.net/ vim: textwidth=80 usr/share/doc/perl-NTLM/README000064400000010171152533366370011633 0ustar00NTLM Authentication Scheme ========================== This module implements the NTLM authentication mechanism. It can be used to perform NTLM style authentication for any desired protocol. The module works well with the Mail::IMAPClient module in the "authenticate" method, however I had to make a change to that method for it to work. The following line (2511 in version 2.1.4): ($code) = $o->[DATA] =~ /^\+ (.*)$/ ; needed to be changed to: ($code) = $o->[DATA] =~ /^\+(.*)$/ ; as the initial NTLM challenge is empty. This module also works well with LWP::Authen::Ntlm , allowing LWP::UserAgent and/or WWW::Mechanise to automate/browse/fetch/etc remote Microsoft Windows servers running NTLM authentication. Example use is like this(note the fact that NTLM.pm is NOT explicitly used!): use WWW::Mechanize; $mech = WWW::Mechanize->new(keep_alive=>1); $mech->no_proxy('my.server'); $mech->credentials('my.server:80', '', "my_domain\\my_user", my_pass); $response = $mech->get( $url ); INSTALLATION To install this application: perl Makefile.PL make make test make install DEPENDENCIES This module requires the MIME::Base64 module, and Digest::HMAC_MD5 COPYRIGHT AND LICENSE This program is free software; you can redistribute it and/or modify it under the terms of either: a) the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version, or b) the "Artistic License" which comes with this Kit. 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 either the GNU General Public License or the Artistic License for more details. You should have received a copy of the Artistic License with this Kit, in the file named "COPYING-Artistic". If not, I'll be glad to provide one. You should also have received a copy of the GNU General Public License version 1 along with this program in the file named "COPYING-GPL". If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA or visit their web page on the internet at http://www.gnu.org/copyleft/gpl.html. For those of you that choose to use the GNU General Public License, my interpretation of the GNU General Public License is that no Perl script falls under the terms of the GPL unless you explicitly put said script under the terms of the GPL yourself. Furthermore, any object code linked with perl does not automatically fall under the terms of the GPL, provided such object code only adds definitions of subroutines and variables, and does not otherwise impair the resulting interpreter from executing any standard Perl script. I consider linking in C subroutines in this manner to be the moral equivalent of defining subroutines in the Perl language itself. You may sell such an object file as proprietary provided that you provide or offer to provide the Perl source, as specified by the GNU General Public License. (This is merely an alternate way of specifying input to the program.) You may also sell a binary produced by the dumping of a running Perl script that belongs to you, provided that you provide or offer to provide the Perl source as specified by the GPL. (The fact that a Perl interpreter and your code are in the same binary file is, in this case, a form of mere aggregation.) This is my interpretation of the GPL. If you still have concerns or difficulties understanding my intent, feel free to contact me. Of course, the Artistic License spells all this out for your protection, so you may prefer to use that. License clarified by Nick Bebout per email from David Bussenschutt. Parts of this code Copyright (C) 2007 David (Buzz) Bussenschutt. Perl port of this code is Copyright (C) 2001 Mark Bush. The code is originally based on fetchmail code which is Copyright (C) 1997 Eric S. Raymond. Fetchmail uses SMB/Netbios code from samba which is Copyright (C) Andrew Tridgell 1992-1998 with modifications from Jeremy Allison. usr/share/doc/libXcursor/README000064400000001264152533416350012252 0ustar00libXcursor - X Window System Cursor management library All questions regarding this software should be directed at the Xorg mailing list: http://lists.freedesktop.org/mailman/listinfo/xorg Please submit bug reports to the Xorg bugzilla: https://bugs.freedesktop.org/enter_bug.cgi?product=xorg The master development code repository can be found at: git://anongit.freedesktop.org/git/xorg/lib/libXcursor http://cgit.freedesktop.org/xorg/lib/libXcursor For patch submission instructions, see: http://www.x.org/wiki/Development/Documentation/SubmittingPatches For more information on the git code manager, see: http://wiki.x.org/wiki/GitPage usr/share/doc/systemd/README000064400000033002152533432730011601 0ustar00systemd System and Service Manager DETAILS: http://0pointer.de/blog/projects/systemd.html WEB SITE: https://www.freedesktop.org/wiki/Software/systemd GIT: git@github.com:systemd/systemd.git https://github.com/systemd/systemd MAILING LIST: https://lists.freedesktop.org/mailman/listinfo/systemd-devel IRC: #systemd on irc.freenode.org BUG REPORTS: https://github.com/systemd/systemd/issues AUTHOR: Lennart Poettering Kay Sievers ...and many others LICENSE: LGPLv2.1+ for all code - except src/basic/MurmurHash2.c which is Public Domain - except src/basic/siphash24.c which is CC0 Public Domain - except src/journal/lookup3.c which is Public Domain - except src/udev/* which is (currently still) GPLv2, GPLv2+ REQUIREMENTS: Linux kernel >= 3.13 Linux kernel >= 4.2 for unified cgroup hierarchy support Kernel Config Options: CONFIG_DEVTMPFS CONFIG_CGROUPS (it is OK to disable all controllers) CONFIG_INOTIFY_USER CONFIG_SIGNALFD CONFIG_TIMERFD CONFIG_EPOLL CONFIG_NET CONFIG_SYSFS CONFIG_PROC_FS CONFIG_FHANDLE (libudev, mount and bind mount handling) Kernel crypto/hash API CONFIG_CRYPTO_USER_API_HASH CONFIG_CRYPTO_HMAC CONFIG_CRYPTO_SHA256 udev will fail to work with the legacy sysfs layout: CONFIG_SYSFS_DEPRECATED=n Legacy hotplug slows down the system and confuses udev: CONFIG_UEVENT_HELPER_PATH="" Userspace firmware loading is not supported and should be disabled in the kernel: CONFIG_FW_LOADER_USER_HELPER=n Some udev rules and virtualization detection relies on it: CONFIG_DMIID Support for some SCSI devices serial number retrieval, to create additional symlinks in /dev/disk/ and /dev/tape: CONFIG_BLK_DEV_BSG Required for PrivateNetwork= in service units: CONFIG_NET_NS Note that systemd-localed.service and other systemd units use PrivateNetwork so this is effectively required. Required for PrivateUsers= in service units: CONFIG_USER_NS Optional but strongly recommended: CONFIG_IPV6 CONFIG_AUTOFS4_FS CONFIG_TMPFS_XATTR CONFIG_{TMPFS,EXT4_FS,XFS,BTRFS_FS,...}_POSIX_ACL CONFIG_SECCOMP CONFIG_SECCOMP_FILTER (required for seccomp support) CONFIG_CHECKPOINT_RESTORE (for the kcmp() syscall) Required for CPUShares= in resource control unit settings CONFIG_CGROUP_SCHED CONFIG_FAIR_GROUP_SCHED Required for CPUQuota= in resource control unit settings CONFIG_CFS_BANDWIDTH Required for IPAddressDeny= and IPAddressAllow= in resource control unit settings CONFIG_CGROUP_BPF For UEFI systems: CONFIG_EFIVAR_FS CONFIG_EFI_PARTITION We recommend to turn off Real-Time group scheduling in the kernel when using systemd. RT group scheduling effectively makes RT scheduling unavailable for most userspace, since it requires explicit assignment of RT budgets to each unit whose processes making use of RT. As there's no sensible way to assign these budgets automatically this cannot really be fixed, and it's best to disable group scheduling hence. CONFIG_RT_GROUP_SCHED=n It's a good idea to disable the implicit creation of networking bonding devices by the kernel networking bonding module, so that the automatically created "bond0" interface doesn't conflict with any such device created by systemd-networkd (or other tools). Ideally there would be a kernel compile-time option for this, but there currently isn't. The next best thing is to make this change through a modprobe.d drop-in. This is shipped by default, see modprobe.d/systemd.conf. Required for systemd-nspawn: CONFIG_DEVPTS_MULTIPLE_INSTANCES or Linux kernel >= 4.7 Note that kernel auditing is broken when used with systemd's container code. When using systemd in conjunction with containers, please make sure to either turn off auditing at runtime using the kernel command line option "audit=0", or turn it off at kernel compile time using: CONFIG_AUDIT=n If systemd is compiled with libseccomp support on architectures which do not use socketcall() and where seccomp is supported (this effectively means x86-64 and ARM, but excludes 32-bit x86!), then nspawn will now install a work-around seccomp filter that makes containers boot even with audit being enabled. This works correctly only on kernels 3.14 and newer though. TL;DR: turn audit off, still. glibc >= 2.16 libcap libmount >= 2.30 (from util-linux) (util-linux *must* be built without --enable-libmount-support-mtab) libseccomp >= 2.3.1 (optional) libblkid >= 2.24 (from util-linux) (optional) libkmod >= 15 (optional) PAM >= 1.1.2 (optional) libcryptsetup (optional) libaudit (optional) libacl (optional) libselinux (optional) liblzma (optional) liblz4 >= 1.3.0 / 130 (optional) libgcrypt (optional) libqrencode (optional) libmicrohttpd (optional) libpython (optional) libidn2 or libidn (optional) gnutls >= 3.1.4 (optional, >= 3.5.3 is necessary to support DNS-over-TLS) elfutils >= 158 (optional) polkit (optional) pkg-config gperf docbook-xsl (optional, required for documentation) xsltproc (optional, required for documentation) python-lxml (optional, required to build the indices) python >= 3.4, meson >= 0.44, ninja gcc, awk, sed, grep, m4, and similar tools During runtime, you need the following additional dependencies: util-linux >= v2.27.1 required dbus >= 1.4.0 (strictly speaking optional, but recommended) NOTE: If using dbus < 1.9.18, you should override the default policy directory (--with-dbuspolicydir=/etc/dbus-1/system.d). dracut (optional) PolicyKit (optional) To build in directory build/: meson build/ && ninja -C build Any configuration options can be specfied as -Darg=value... arguments to meson. After the build directory is initially configured, meson will refuse to run again, and options must be changed with: mesonconf -Darg=value... mesonconf without any arguments will print out available options and their current values. Useful commands: ninja -v some/target ninja test sudo ninja install DESTDIR=... ninja install A tarball can be created with: git archive --format=tar --prefix=systemd-222/ v222 | xz > systemd-222.tar.xz When systemd-hostnamed is used, it is strongly recommended to install nss-myhostname to ensure that, in a world of dynamically changing hostnames, the hostname stays resolvable under all circumstances. In fact, systemd-hostnamed will warn if nss-myhostname is not installed. nss-systemd must be enabled on systemd systems, as that's required for DynamicUser= to work. Note that we ship services out-of-the-box that make use of DynamicUser= now, hence enabling nss-systemd is not optional. Note that the build prefix for systemd must be /usr. -Dsplit-usr=false (which is the default and does not need to be specified) is the recommended setting, and -Dsplit-usr=true should be used on systems which have /usr on a separate partition. Additional packages are necessary to run some tests: - busybox (used by test/TEST-13-NSPAWN-SMOKE) - nc (used by test/TEST-12-ISSUE-3171) - python3-pyparsing - python3-evdev (used by hwdb parsing tests) - strace (used by test/test-functions) - capsh (optional, used by test-execute) USERS AND GROUPS: Default udev rules use the following standard system group names, which need to be resolvable by getgrnam() at any time, even in the very early boot stages, where no other databases and network are available: audio, cdrom, dialout, disk, input, kmem, kvm, lp, render, tape, tty, video During runtime, the journal daemon requires the "systemd-journal" system group to exist. New journal files will be readable by this group (but not writable), which may be used to grant specific users read access. In addition, system groups "wheel" and "adm" will be given read-only access to journal files using systemd-tmpfiles.service. The journal remote daemon requires the "systemd-journal-remote" system user and group to exist. During execution this network facing service will drop privileges and assume this uid/gid for security reasons. Similarly, the network management daemon requires the "systemd-network" system user and group to exist. Similarly, the name resolution daemon requires the "systemd-resolve" system user and group to exist. Similarly, the coredump support requires the "systemd-coredump" system user and group to exist. NSS: systemd ships with four glibc NSS modules: nss-myhostname resolves the local hostname to locally configured IP addresses, as well as "localhost" to 127.0.0.1/::1. nss-resolve enables DNS resolution via the systemd-resolved DNS/LLMNR caching stub resolver "systemd-resolved". nss-mymachines enables resolution of all local containers registered with machined to their respective IP addresses. It also maps UID/GIDs ranges used by containers to useful names. nss-systemd enables resolution of all dynamically allocated service users. (See the DynamicUser= setting in unit files.) To make use of these NSS modules, please add them to the "hosts:", "passwd:" and "group:" lines in /etc/nsswitch.conf. The "resolve" module should replace the glibc "dns" module in this file (and don't worry, it chain-loads the "dns" module if it can't talk to resolved). The four modules should be used in the following order: passwd: compat mymachines systemd group: compat mymachines systemd hosts: files mymachines resolve [!UNAVAIL=return] dns myhostname SYSV INIT.D SCRIPTS: When calling "systemctl enable/disable/is-enabled" on a unit which is a SysV init.d script, it calls /usr/lib/systemd/systemd-sysv-install; this needs to translate the action into the distribution specific mechanism such as chkconfig or update-rc.d. Packagers need to provide this script if you need this functionality (you don't if you disabled SysV init support). Please see src/systemctl/systemd-sysv-install.SKELETON for how this needs to look like, and provide an implementation at the marked places. WARNINGS: systemd will warn during early boot if /usr is not already mounted at this point (that means: either located on the same file system as / or already mounted in the initrd). While in systemd itself very little will break if /usr is on a separate, late-mounted partition, many of its dependencies very likely will break sooner or later in one form or another. For example, udev rules tend to refer to binaries in /usr, binaries that link to libraries in /usr or binaries that refer to data files in /usr. Since these breakages are not always directly visible, systemd will warn about this, since this kind of file system setup is not really supported anymore by the basic set of Linux OS components. systemd requires that the /run mount point exists. systemd also requires that /var/run is a symlink to /run. For more information on this issue consult https://www.freedesktop.org/wiki/Software/systemd/separate-usr-is-broken To run systemd under valgrind, compile with meson option -Dvalgrind=true and have valgrind development headers installed (i.e. valgrind-devel or equivalent). Otherwise, false positives will be triggered by code which violates some rules but is actually safe. Note that valgrind generates nice output only on exit(), hence on shutdown we don't execve() systemd-shutdown. STABLE BRANCHES AND BACKPORTS Stable branches with backported patches are available in the systemd-stable repo at https://github.com/systemd/systemd-stable. Stable branches are started for certain releases of systemd and named after them, e.g. v238-stable. Stable branches are managed by distribution maintainers on an as needed basis. See https://www.freedesktop.org/wiki/Software/systemd/Backports/ for some more information and examples. ENGINEERING AND CONSULTING SERVICES: Kinvolk (https://kinvolk.io) offers professional engineering and consulting services for systemd. Please contact Chris Kühl for more information. usr/share/doc/os-prober/README000064400000006603152533436450012033 0ustar00This is a small package that may be depended on by any bootloader installer package to detect other filesystems with operating systems on them, and work out how to boot other linux installs. os-prober --------- All one has to do is Depend on os-prober, and then run the os-prober command. This command takes no arguments: it will scan all disks available on the system for other operating systems, and output a list of strings such as: /dev/sda1:Windows NT/2000/XP:WinNT:chain ^-------^ ^----------------^ ^---^ ^---^ part. OS name for boot short May change: type of boot loader loader's pretty name required. Usually there is only output a 'linux' style bootloader or a chain one for other partitions with their own boot sectors. Tests are executable programs in the directory /usr/libexec/os-probes/. Each test is called once per partition, with the partition to check as its parameter, and may output a string as described above, or nothing if it does not recognise an OS on that partition. Tests return an exit code of 0 if they successfully found an OS, and no further tests will be run on that partition; or return an exit code of 1 to indicate that no OS was found, and let the next test run. Tests that require the partition to be mounted can be placed in /usr/libexec/os-probes/mounted/. These tests are passed the following parameters: partition, mount point, filesystem. Bootloader installer packages will then have to process this output (fairly trivial) to create valid configuration entries for the bootloader. Note that os-prober can find other Linux installations, as well as other operating systems. It does not try to work out all the information needed to boot Linux (initrd, kernel params, etc). That task is left to linux-boot-prober. linux-boot-prober ----------------- The linux-boot-prober command should be run with a single argument consisting of a partition that is known to have a linux root filesystem on it, as returned by the os-prober command. It will try to work out how to boot that linux installation, and if it is successful, will output one or more lines in the form: /dev/sda2:/dev/sda1:Linux:/vmlinuz:/initrd.gz:root=/dev/sda1 ^-------^ ^-------^ ^---^ ^------^ ^--------^ ^------------^ root boot label kernel initrd kernel params part. part. The root partition and boot partition may of course be the same. No guarantee is made that any partitions referred to in the kernel parameters will still be in the same place after Debian is installed, or that the /etc/fstab of the system will be right, or that the system will even boot. The initrd field may be empty if there is no initrd. The label is whatever label was used in the boot loader for this linux installation, and it may be quite long or very short (or nonexistent), and may be inaccurate, confusing, or non-unique. See TODO for other limitations. The tests used by linux-boot-prober are in the directory /usr/libexec/linux-boot-probes/ and also in /usr/libexec/linux-boot-probes/mounted, and they are called in a similar way as the os-probes described above. The mounted probes are passed parameters for the root partition, the boot partition, and the directory the filesystems are mounted in. linux-boot-prober skips over partitions that are currently mounted on /, /target, or /target/boot. usr/share/doc/perl-Module-CoreList/README000064400000002070152533503010014007 0ustar00README for Module::CoreList 2.20 =head1 NAME Module::CoreList - what modules shipped with versions of perl =head1 SYNOPSIS use Module::CoreList; print $Module::CoreList::version{5.00503}{CPAN}; # prints 1.48 print Module::CoreList->first_release('File::Spec'); # prints 5.00503 print Module::CoreList->first_release('File::Spec', 0.82); # prints 5.006001 print join ", ", @{ $Module::CoreList::families{5.005} }; # prints "5.005, 5.00503, 5.00504" =head1 DEPENDENCIES This module has external dependencies on the following modules: Test::More =head1 INSTALLATION perl Makefile.PL make make test and if all goes well make install =head1 HISTORY See the F file. =head1 AUTHOR Richard Clamp Erichardc@unixbeard.netE Currently maintained by the perl 5 porters Eperl5-porters@perl.orgE. =head1 COPYRIGHT Copyright (C) 2002-2009 Richard Clamp. All Rights Reserved. This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =head1 SEE ALSO L, L usr/share/doc/findutils/README000064400000006151152533505760012123 0ustar00This package contains the GNU find, xargs, and locate programs. find and xargs comply with POSIX 1003.2, as far as I know (with the exception of the "+" modifier for the "-exec" action, which isn't implemented yet). They also support a large number of additional options, some borrowed from Unix and some unique to GNU. See the file NEWS for a list of major changes in the current release. See the file INSTALL for compilation and installation instructions. To verify the GPG signature of the release, you will need the public key of the findutils maintainer. You can download this from ftp://ftp.gnu.org/gnu/gnu-keyring.gpg. Alternatively, you could query a PGP keyserver, but you will need to use one that can cope with subkeys containing photos. Many older key servers cannot do this. I use subkeys.pgp.net. I think that one works. See also the "Downloading" section of http://www.gnu.org/software/findutils/. Special configure options: --with-afs Make find support "-fstype afs". Requires /afs, /usr/afsws/lib, and /usr/afsws/include. configure doesn't add AFS support automatically because it adds considerably to find's size, and the AFS libraries need -lucb on Solaris, which breaks find. --enable-id-cache Make tables of used UIDs and GIDs at startup instead of using getpwuid or getgrgid when needed. Speeds up -nouser and -nogroup unless you are running NIS or Hesiod, which make password and group calls very expensive. --enable-debug Produce output on the standard error output indicating what find is doing. This information includes details about how the command line has been parsed and what files have been stat()ed. This output is normally interesting only to the maintainer, and so is off by default. DEFAULT_ARG_SIZE= If this environment variable is defined to a numeric expression during configure, it determines the default argument size limits used by xargs without -s, and by find, when spawning child processes. Otherwise, the default is set at 128 kibibytes. If the system cannot support the default limit, the system's limit will be used instead. To gain speed, GNU find avoids statting files whenever possible. It does this by: 1. Checking the number of links to directories and not statting files that it knows aren't directories until it encounters a test or action that needs the stat info. 2. Rearranging the command line, where possible, so that it can do tests that don't require a stat before tests that do, in hopes that the latter will be skipped because of a -o/-a conjunction. (But it only does this where it will leave the output unchanged.) The locate program and its helper programs are derived (heavily modified) from James Woods' public domain fast-find code, which is also distributed with the 4.3BSD find. Because POSIX.2 requires `find foo' to have the same effect as `find foo -print', the fast-find searching has been moved to a separate program, `locate'; the same thing has been done in 4.4BSD. If you use locate, you should run the included `updatedb' script from cron periodically (typically nightly). Mail suggestions and bug reports for these programs to bug-findutils@gnu.org. usr/lib64/python2.7/Demo/embed/README000064400000001466152533506050012700 0ustar00This directory show how to embed the Python interpreter in your own application. The file demo.c shows you all that is needed in your C code. To build it, you may have to edit the Makefile: 1) set blddir to the directory where you built Python, if it isn't in the source directory (../..) 2) change the variables that together define the list of libraries (MODLIBS, LIBS, SYSLIBS) to link with, to match their definitions in $(blddir)/Modules/Makefile An additional test program, loop.c, is used to experiment with memory leakage caused by repeated initialization and finalization of the interpreter. It can be build by saying "make loop" and tested with "make looptest". Command line usage is "./loop ", e.g. "./loop 'print 2+2'" should spit out an endless number of lines containing the number 4. usr/share/doc/jbig2dec-libs/README000064400000001775152533527110012522 0ustar00jbig2dec is a decoder library and example utility implementing the JBIG2 bi-level image compression spec. Also known as ITU T.88 and ISO IEC 14492, and included by reference in Adobe's PDF version 1.4 and later. The basic invocation is: jbig2dec [-o ] file.jbig2 It also supports separate 'global' and 'page' streams, generally extracted from some embedded format: jbig2dec [-o ] The program is only partially functional at this time, but should be useful in some limited contexts. We welcome files that the decoder can't handle, or renders incorrectly. A set of example files is available from http://www.ece.ubc.ca/spmg/jbig2/bitstreams/main.html More information about this project and updated versions are available from: https://artifex.com/developers-ghostscript-jbig2dec/ Development source code is kept in a git repository at: http://git.ghostscript.com/?p=jbig2dec.git The contact address for the project is . usr/share/doc/libtiff/README000064400000004500152533531500011524 0ustar00$Header: /cvs/maptools/cvsroot/libtiff/README,v 1.7 2012-02-18 21:53:27 bfriesen Exp $ TIFF Software Distribution -------------------------- This file is just a placeholder; all the documentation is now in HTML in the html directory. To view the documentation point your favorite WWW viewer at html/index.html; e.g. firefox html/index.html If you don't have an HTML viewer then you can read the HTML source or fetch a PostScript version of this documentation from the directory ftp://ftp.remotesensing.org/pub/libtiff/ If you can't hack either of these options then basically what you want to do is: % ./configure % make % su # make install More information, email contacts, and mailing list information can be found online at http://www.remotesensing.org/libtiff/. Use and Copyright ----------------- Silicon Graphics has seen fit to allow us to give this work away. It is free. There is no support or guarantee of any sort as to its operations, correctness, or whatever. If you do anything useful with all or parts of it you need to honor the copyright notices. I would also be interested in knowing about it and, hopefully, be acknowledged. The legal way of saying that is: Copyright (c) 1988-1997 Sam Leffler Copyright (c) 1991-1997 Silicon Graphics, Inc. Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that (i) the above copyright notices and this permission notice appear in all copies of the software and related documentation, and (ii) the names of Sam Leffler and Silicon Graphics may not be used in any advertising or publicity relating to the software without the specific, prior written permission of Sam Leffler and Silicon Graphics. THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. usr/share/doc/perl-Pod-Usage/README000064400000004647152533561530012653 0ustar00Pod::Usage ---------- The Perl5 module "Pod::Usage" which provides the function "pod2usage()" to print usage messages for a Perl script based on its embedded pod documentation. Pod::Usage is a subclass of Pod::PlainText. Please see the POD documentation for this module (embedded in the file "Usage.pm") for more details. The pod2usage() function is probably the most generally useful function in this entire distribution since it is useful to just about any Perl5 script that is invoked from the command-line. See the POD documentation for more details. This separate distribution was created to allow refactoring of Pod::Usage to use Pod::Simple instead of Pod::Parser, such that Pod::Parser can be discontinued from the Perl Core in the near future. AUTHORS/CONTRIBUTORS ==================== Marek Rouchal Brad Appleton http://www.enteract.com/~bradapp/ rjbs for driving the transition to Pod::Simple LICENSE ======= Pod-Usage is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 interpreter. Please refer to http://dev.perl.org/licenses/ for more details. DISCLAIMER =========== This software is distributed in the hope that it will be useful, but is provided "AS IS" WITHOUT WARRANTY OF ANY KIND, either expressed or implied, INCLUDING, without limitation, the implied warranties of MERCHANTABILITY and FITNESS FOR A PARTICULAR PURPOSE. The ENTIRE RISK as to the quality and performance of the software IS WITH YOU (the holder of the software). Should the software prove defective, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. IN NO EVENT WILL ANY COPYRIGHT HOLDER OR ANY OTHER PARTY WHO MAY CREATE, MODIFY, OR DISTRIBUTE THE SOFTWARE BE LIABLE OR RESPONSIBLE TO YOU OR TO ANY OTHER ENTITY FOR ANY KIND OF DAMAGES (no matter how awful - not even if they arise from known or unknown flaws in the software). REQUIREMENTS ============ * Perl version 5.005 or later * Pod::Simple from CPAN (already bundled in recent Perl 5 releases) BUILDING & INSTALLING ===================== Please see the perl "ExtUtils::MakeMaker" manpage for how to build and install using the Makefile.PL template. In a nutshell, simply typing: perl Makefile.PL should build a Makefile with the usual targets like "all", "clean", "test", and "install". BUGS ==== Please use the CPAN bug tracking to report bugs: http://rt.cpan.org/NoAuth/Bugs.html?Dist=Pod-Usage usr/share/doc/dpkg/README000064400000006731152533561650011053 0ustar00dpkg - Debian's package maintenance system The primary interface for the dpkg suite is the ‘dselect’ program; a more low-level and less user-friendly interface is available in the form of the ‘dpkg’ command. Releases -------- The current legacy, stable and development releases can be found at: For older releases check: Mailing List ------------ The subscription interface and web archives can be found at: The mailing list address is (no subscription required to post): debian-dpkg@lists.debian.org Source Repository ----------------- Building from git source ------------------------ To prepare the dpkg source tree from git before starting the build process some required software needs to be installed: GNU autoconf >= 2.60 GNU automake >= 1.11 GNU libtool >= 2.0 GNU autopoint >= 0.19.7 (from GNU gettext) GNU gettext >= 0.19.7 (only with --enable-nls) After installing the needed software, and running the following command on the git tree: $ ./autogen the source should be roughly equivalent to the distributed tar source. To enable translated documentation this software will be needed: po4a >= 0.59 Building from tar source ------------------------ The minimum software required to configure and build dpkg from a tarball is: C89 compiler with few C99 extensions (see doc/coding-style.txt) perl (see doc/coding-style.txt) pkg-config GNU make To enable optional functionality or programs, this software might be needed: libmd (used by libdpkg, currently falling back to embedded code) libz (from zlib, used instead of gzip command-line tool) liblzma (from xz utils, used instead of xz command-line tool) libbz2 (from bzip2, used instead of bzip2 command-line tool) libselinux curses compatible library (needed on --enable-dselect) To run the test suite («make check»): Test::MinimumVersion perl module (optional, author) Test::Pod perl module (optional) Test::Pod::Coverage perl module (optional, author) Test::Spelling perl module (optional, author) Test::Strict perl module (optional) Test::Synopsis perl module (optional, author) Test::Perl::Critic perl module (optional, author) aspell (optional, author) aspell-en (optional, author) codespell (optional, author) cppcheck (optional, author) fakeroot (optional) gpg (optional) i18nspector (optional, author) shellcheck (optional, author) Define the environment variable DPKG_DEVEL_MODE or AUTHOR_TESTING to run the test suite in development mode, to include tests that might not be pertinent during normal release builds. To enable additional developer's documentation («make doc») this software will be needed: pod2man doxygen dot To enable code coverage («./configure --enable-coverage; make coverage») this software is needed: lcov (from the Linux Test Project) Devel-Cover perl module The build process is done by running the usual «./configure; make». To see all available configuration options please run «./configure --help». The following configure options might be of interest to disable specific programs: --disable-dselect --disable-start-stop-daemon --disable-update-alternatives And the following to disable modifications to the build flags: --disable-compiler-warnings --disable-compiler-optimizations --disable-linker-optimizations usr/share/doc/perl-Text-Diff/README000064400000025404152533611730012651 0ustar00NAME Text::Diff - Perform diffs on files and record sets SYNOPSIS use Text::Diff; ## Mix and match filenames, strings, file handles, producer subs, ## or arrays of records; returns diff in a string. ## WARNING: can return B diffs for large files. my $diff = diff "file1.txt", "file2.txt", { STYLE => "Context" }; my $diff = diff \$string1, \$string2, \%options; my $diff = diff \*FH1, \*FH2; my $diff = diff \&reader1, \&reader2; my $diff = diff \@records1, \@records2; ## May also mix input types: my $diff = diff \@records1, "file_B.txt"; DESCRIPTION "diff()" provides a basic set of services akin to the GNU "diff" utility. It is not anywhere near as feature complete as GNU "diff", but it is better integrated with Perl and available on all platforms. It is often faster than shelling out to a system's "diff" executable for small files, and generally slower on larger files. Relies on Algorithm::Diff for, well, the algorithm. This may not produce the same exact diff as a system's local "diff" executable, but it will be a valid diff and comprehensible by "patch". We haven't seen any differences between Algorithm::Diff's logic and GNU diff's, but we have not examined them to make sure they are indeed identical. Note: If you don't want to import the "diff" function, do one of the following: use Text::Diff (); require Text::Diff; That's a pretty rare occurence, so "diff()" is exported by default. =head1 OPTIONS diff() takes two parameters from which to draw input and a set of options to control it's output. The options are: FILENAME_A, MTIME_A, FILENAME_B, MTIME_B The name of the file and the modification time "files" These are filled in automatically for each file when diff() is passed a filename, unless a defined value is passed in. If a filename is not passed in and FILENAME_A and FILENAME_B are not provided or "undef", the header will not be printed. Unused on "OldStyle" diffs. OFFSET_A, OFFSET_B The index of the first line / element. These default to 1 for all parameter types except ARRAY references, for which the default is 0. This is because ARRAY references are presumed to be data structures, while the others are line oriented text. STYLE "Unified", "Context", "OldStyle", or an object or class reference for a class providing "file_header()", "hunk_header()", "hunk()", "hunk_footer()" and "file_footer()" methods. The two footer() methods are provided for overloading only; none of the formats provide them. Defaults to "Unified" (unlike standard "diff", but Unified is what's most often used in submitting patches and is the most human readable of the three. If the package indicated by the STYLE has no hunk() method, c will load it automatically (lazy loading). Since all such packages should inherit from Text::Diff::Base, this should be marvy. Styles may be specified as class names ("STYLE =" "Foo"), in which case they will be "new()"ed with no parameters, or as objects ("STYLE =" Foo->new>). CONTEXT How many lines before and after each diff to display. Ignored on old-style diffs. Defaults to 3. OUTPUT Examples and their equivalent subroutines: OUTPUT => \*FOOHANDLE, # like: sub { print FOOHANDLE shift() } OUTPUT => \$output, # like: sub { $output .= shift } OUTPUT => \@output, # like: sub { push @output, shift } OUTPUT => sub { $output .= shift }, If no "OUTPUT" is supplied, returns the diffs in a string. If "OUTPUT" is a "CODE" ref, it will be called once with the (optional) file header, and once for each hunk body with the text to emit. If "OUTPUT" is an IO::Handle, output will be emitted to that handle. FILENAME_PREFIX_A, FILENAME_PREFIX_B The string to print before the filename in the header. Unused on "OldStyle" diffs. Defaults are "---", "+++" for Unified and "***", "+++" for Context. KEYGEN, KEYGEN_ARGS These are passed to "traverse_sequences" in Algorithm::Diff. Note: if neither "FILENAME_" option is defined, the header will not be printed. If at one is present, the other and both MTIME_ options must be present or "Use of undefined variable" warnings will be generated (except on "OldStyle" diffs, which ignores these options). Formatting Classes These functions implement the output formats. They are grouped in to classes so diff() can use class names to call the correct set of output routines and so that you may inherit from them easily. There are no constructors or instance methods for these classes, though subclasses may provide them if need be. Each class has file_header(), hunk_header(), hunk(), and footer() methods identical to those documented in the Text::Diff::Unified section. header() is called before the hunk() is first called, footer() afterwards. The default footer function is an empty method provided for overloading: sub footer { return "End of patch\n" } Some output formats are provided by external modules (which are loaded automatically), such as Text::Diff::Table. These are are documented here to keep the documentation simple. Text::Diff::Base Returns "" for all methods (other than "new()"). Text::Diff::Unified --- A Mon Nov 12 23:49:30 2001 +++ B Mon Nov 12 23:49:30 2001 @@ -2,13 +2,13 @@ 2 3 4 -5d +5a 6 7 8 9 +9a 10 11 -11d 12 13 file_header $s = Text::Diff::Unified->file_header( $options ); Returns a string containing a unified header. The sole parameter is the options hash passed in to diff(), containing at least: FILENAME_A => $fn1, MTIME_A => $mtime1, FILENAME_B => $fn2, MTIME_B => $mtime2 May also contain FILENAME_PREFIX_A => "---", FILENAME_PREFIX_B => "+++", to override the default prefixes (default values shown). hunk_header Text::Diff::Unified->hunk_header( \@ops, $options ); Returns a string containing the output of one hunk of unified diff. Text::Diff::Unified::hunk Text::Diff::Unified->hunk( \@seq_a, \@seq_b, \@ops, $options ); Returns a string containing the output of one hunk of unified diff. Text::Diff::Table +--+----------------------------------+--+------------------------------+ | |../Test-Differences-0.2/MANIFEST | |../Test-Differences/MANIFEST | | |Thu Dec 13 15:38:49 2001 | |Sat Dec 15 02:09:44 2001 | +--+----------------------------------+--+------------------------------+ | | * 1|Changes * | 1|Differences.pm | 2|Differences.pm | | 2|MANIFEST | 3|MANIFEST | | | * 4|MANIFEST.SKIP * | 3|Makefile.PL | 5|Makefile.PL | | | * 6|t/00escape.t * | 4|t/00flatten.t | 7|t/00flatten.t | | 5|t/01text_vs_data.t | 8|t/01text_vs_data.t | | 6|t/10test.t | 9|t/10test.t | +--+----------------------------------+--+------------------------------+ This format also goes to some pains to highlight "invisible" characters on differing elements by selectively escaping whitespace: +--+--------------------------+--------------------------+ | |demo_ws_A.txt |demo_ws_B.txt | | |Fri Dec 21 08:36:32 2001 |Fri Dec 21 08:36:50 2001 | +--+--------------------------+--------------------------+ | 1|identical |identical | * 2| spaced in | also spaced in * * 3|embedded space |embedded tab * | 4|identical |identical | * 5| spaced in |\ttabbed in * * 6|trailing spaces\s\s\n |trailing tabs\t\t\n * | 7|identical |identical | * 8|lf line\n |crlf line\r\n * * 9|embedded ws |embedded\tws * +--+--------------------------+--------------------------+ See "Text::Diff::Table" for more details, including how the whitespace escaping works. Text::Diff::Context *** A Mon Nov 12 23:49:30 2001 --- B Mon Nov 12 23:49:30 2001 *************** *** 2,14 **** 2 3 4 ! 5d 6 7 8 9 10 11 - 11d 12 13 --- 2,14 ---- 2 3 4 ! 5a 6 7 8 9 + 9a 10 11 12 13 Note: hunk_header() returns only "***************\n". Text::Diff::OldStyle 5c5 < 5d --- > 5a 9a10 > 9a 12d12 < 11d Note: no file_header(). LIMITATIONS Must suck both input files entirely in to memory and store them with a normal amount of Perlish overhead (one array location) per record. This is implied by the implementation of Algorithm::Diff, which takes two arrays. If Algorithm::Diff ever offers an incremental mode, this can be changed (contact the maintainers of Algorithm::Diff and Text::Diff if you need this; it shouldn't be too terribly hard to tie arrays in this fashion). Does not provide most of the more refined GNU diff options: recursive directory tree scanning, ignoring blank lines / whitespace, etc., etc. These can all be added as time permits and need arises, many are rather easy; patches quite welcome. Uses closures internally, this may lead to leaks on "perl" versions 5.6.1 and prior if used many times over a process' life time. AUTHOR Adam Kennedy Barrie Slaymaker COPYRIGHT Some parts copyright 2009 Adam Kennedy. Copyright 2001 Barrie Slaymaker. All Rights Reserved. You may use this under the terms of either the Artistic License or GNU Public License v 2.0 or greater. etc/pki/ca-trust/extracted/pem/README000064400000001602152533615160013276 0ustar00This directory /etc/pki/ca-trust/extracted/pem/ contains CA certificate bundle files which are automatically created based on the information found in the /usr/share/pki/ca-trust-source/ and /etc/pki/ca-trust/source/ directories. All files are in the BEGIN/END CERTIFICATE file format, as described in the x509(1) manual page. Distrust information cannot be represented in this file format, and distrusted certificates are missing from these files. If your application isn't able to load the PKCS#11 module p11-kit-trust.so, then you can use these files in your application to load a list of global root CA certificates. Please never manually edit the files stored in this directory, because your changes will be lost and the files automatically overwritten, each time the update-ca-trust command gets executed. Please refer to the update-ca-trust(8) manual page for additional information. usr/share/authselect/default/nis/README000064400000006115152533615670013735 0ustar00Enable NIS for system authentication ==================================== Selecting this profile will enable Network Information Services as the source of identity and authentication providers. NIS CONFIGURATION ----------------- Authselect does not touch NIS configuration. Please, read NIS' documentation to see how to configure it manually. AVAILABLE OPTIONAL FEATURES --------------------------- with-faillock:: Enable account locking in case of too many consecutive authentication failures. with-mkhomedir:: Enable automatic creation of home directories for users on their first login. with-fingerprint:: Enable authentication with fingerprint reader through *pam_fprintd*. with-pam-gnome-keyring:: Enable pam-gnome-keyring support. with-pam-u2f:: Enable authentication via u2f dongle through *pam_u2f*. with-pam-u2f-2fa:: Enable 2nd factor authentication via u2f dongle through *pam_u2f*. without-pam-u2f-nouserok:: Module argument nouserok is omitted if also with-pam-u2f-2fa is used. *WARNING*: Omitting nouserok argument means that users without pam-u2f authentication configured will not be able to log in *INCLUDING* root. Make sure you are able to log in before losing root privileges. with-silent-lastlog:: Do not produce pam_lastlog message during login. with-pamaccess:: Check access.conf during account authorization. with-pwhistory:: Enable pam_pwhistory module for local users. with-nispwquality:: If this option is set pam_pwquality module will check password quality for NIS users as well as local users during password change. Without this option only local users passwords are checked. without-nullok:: Do not add nullok parameter to pam_unix. DISABLE SPECIFIC NSSWITCH DATABASES ----------------------------------- Normally, nsswitch databases set by the profile overwrites values set in user-nsswitch.conf. The following options can force authselect to ignore value set by the profile and use the one set in user-nsswitch.conf instead. with-custom-aliases:: Ignore "aliases" map set by the profile. with-custom-automount:: Ignore "automount" map set by the profile. with-custom-ethers:: Ignore "ethers" map set by the profile. with-custom-group:: Ignore "group" map set by the profile. with-custom-hosts:: Ignore "hosts" map set by the profile. with-custom-initgroups:: Ignore "initgroups" map set by the profile. with-custom-netgroup:: Ignore "netgroup" map set by the profile. with-custom-networks:: Ignore "networks" map set by the profile. with-custom-passwd:: Ignore "passwd" map set by the profile. with-custom-protocols:: Ignore "protocols" map set by the profile. with-custom-publickey:: Ignore "publickey" map set by the profile. with-custom-rpc:: Ignore "rpc" map set by the profile. with-custom-services:: Ignore "services" map set by the profile. with-custom-shadow:: Ignore "shadow" map set by the profile. EXAMPLES -------- * Enable NIS with no additional modules authselect select nis * Enable NIS and create home directories for users on their first login authselect select nis with-mkhomedir etc/pki/ca-trust/extracted/openssl/README000064400000001423152533617440014204 0ustar00This directory /etc/pki/ca-trust/extracted/openssl/ contains CA certificate bundle files which are automatically created based on the information found in the /usr/share/pki/ca-trust-source/ and /etc/pki/ca-trust/source/ directories. All files are in the BEGIN/END TRUSTED CERTIFICATE file format, as described in the x509(1) manual page. If your application isn't able to load the PKCS#11 module p11-kit-trust.so, then you can use these files in your application to load a list of global root CA certificates. Please never manually edit the files stored in this directory, because your changes will be lost and the files automatically overwritten, each time the update-ca-trust command gets executed. Please refer to the update-ca-trust(8) manual page for additional information. usr/share/doc/json-c/README000064400000000035152533704770011310 0ustar00See README.md or README.html usr/share/doc/perl-IO-Socket-IP/README000064400000046220152533714160013122 0ustar00NAME IO::Socket::IP - Family-neutral IP socket supporting both IPv4 and IPv6 SYNOPSIS use IO::Socket::IP; my $sock = IO::Socket::IP->new( PeerHost => "www.google.com", PeerPort => "http", Type => SOCK_STREAM, ) or die "Cannot construct socket - $@"; my $familyname = ( $sock->sockdomain == PF_INET6 ) ? "IPv6" : ( $sock->sockdomain == PF_INET ) ? "IPv4" : "unknown"; printf "Connected to google via %s\n", $familyname; DESCRIPTION This module provides a protocol-independent way to use IPv4 and IPv6 sockets, intended as a replacement for IO::Socket::INET. Most constructor arguments and methods are provided in a backward-compatible way. For a list of known differences, see the IO::Socket::INET INCOMPATIBILITES section below. It uses the getaddrinfo(3) function to convert hostnames and service names or port numbers into sets of possible addresses to connect to or listen on. This allows it to work for IPv6 where the system supports it, while still falling back to IPv4-only on systems which don't. REPLACING IO::Socket DEFAULT BEHAVIOUR By placing -register in the import list, IO::Socket uses IO::Socket::IP rather than IO::Socket::INET as the class that handles PF_INET. IO::Socket will also use IO::Socket::IP rather than IO::Socket::INET6 to handle PF_INET6, provided that the AF_INET6 constant is available. Changing IO::Socket's default behaviour means that calling the IO::Socket constructor with either PF_INET or PF_INET6 as the Domain parameter will yield an IO::Socket::IP object. use IO::Socket::IP -register; my $sock = IO::Socket->new( Domain => PF_INET6, LocalHost => "::1", Listen => 1, ) or die "Cannot create socket - $@\n"; print "Created a socket of type " . ref($sock) . "\n"; Note that -register is a global setting that applies to the entire program; it cannot be applied only for certain callers, removed, or limited by lexical scope. CONSTRUCTORS $sock = IO::Socket::IP->new( %args ) Creates a new IO::Socket::IP object, containing a newly created socket handle according to the named arguments passed. The recognised arguments are: PeerHost => STRING PeerService => STRING Hostname and service name for the peer to connect() to. The service name may be given as a port number, as a decimal string. PeerAddr => STRING PeerPort => STRING For symmetry with the accessor methods and compatibility with IO::Socket::INET, these are accepted as synonyms for PeerHost and PeerService respectively. PeerAddrInfo => ARRAY Alternate form of specifying the peer to connect() to. This should be an array of the form returned by Socket::getaddrinfo. This parameter takes precedence over the Peer*, Family, Type and Proto arguments. LocalHost => STRING LocalService => STRING Hostname and service name for the local address to bind() to. LocalAddr => STRING LocalPort => STRING For symmetry with the accessor methods and compatibility with IO::Socket::INET, these are accepted as synonyms for LocalHost and LocalService respectively. LocalAddrInfo => ARRAY Alternate form of specifying the local address to bind() to. This should be an array of the form returned by Socket::getaddrinfo. This parameter takes precedence over the Local*, Family, Type and Proto arguments. Family => INT The address family to pass to getaddrinfo (e.g. AF_INET, AF_INET6). Normally this will be left undefined, and getaddrinfo will search using any address family supported by the system. Type => INT The socket type to pass to getaddrinfo (e.g. SOCK_STREAM, SOCK_DGRAM). Normally defined by the caller; if left undefined getaddrinfo may attempt to infer the type from the service name. Proto => STRING or INT The IP protocol to use for the socket (e.g. 'tcp', IPPROTO_TCP, 'udp',IPPROTO_UDP). Normally this will be left undefined, and either getaddrinfo or the kernel will choose an appropriate value. May be given either in string name or numeric form. GetAddrInfoFlags => INT More flags to pass to the getaddrinfo() function. If not supplied, a default of AI_ADDRCONFIG will be used. These flags will be combined with AI_PASSIVE if the Listen argument is given. For more information see the documentation about getaddrinfo() in the Socket module. Listen => INT If defined, puts the socket into listening mode where new connections can be accepted using the accept method. The value given is used as the listen(2) queue size. ReuseAddr => BOOL If true, set the SO_REUSEADDR sockopt ReusePort => BOOL If true, set the SO_REUSEPORT sockopt (not all OSes implement this sockopt) Broadcast => BOOL If true, set the SO_BROADCAST sockopt Sockopts => ARRAY An optional array of other socket options to apply after the three listed above. The value is an ARRAY containing 2- or 3-element ARRAYrefs. Each inner array relates to a single option, giving the level and option name, and an optional value. If the value element is missing, it will be given the value of a platform-sized integer 1 constant (i.e. suitable to enable most of the common boolean options). For example, both options given below are equivalent to setting ReuseAddr. Sockopts => [ [ SOL_SOCKET, SO_REUSEADDR ], [ SOL_SOCKET, SO_REUSEADDR, pack( "i", 1 ) ], ] V6Only => BOOL If defined, set the IPV6_V6ONLY sockopt when creating PF_INET6 sockets to the given value. If true, a listening-mode socket will only listen on the AF_INET6 addresses; if false it will also accept connections from AF_INET addresses. If not defined, the socket option will not be changed, and default value set by the operating system will apply. For repeatable behaviour across platforms it is recommended this value always be defined for listening-mode sockets. Note that not all platforms support disabling this option. Some, at least OpenBSD and MirBSD, will fail with EINVAL if you attempt to disable it. To determine whether it is possible to disable, you may use the class method if( IO::Socket::IP->CAN_DISABLE_V6ONLY ) { ... } else { ... } If your platform does not support disabling this option but you still want to listen for both AF_INET and AF_INET6 connections you will have to create two listening sockets, one bound to each protocol. MultiHomed This IO::Socket::INET-style argument is ignored, except if it is defined but false. See the IO::Socket::INET INCOMPATIBILITES section below. However, the behaviour it enables is always performed by IO::Socket::IP. Blocking => BOOL If defined but false, the socket will be set to non-blocking mode. Otherwise it will default to blocking mode. See the NON-BLOCKING section below for more detail. Timeout => NUM If defined, gives a maximum time in seconds to block per connect() call when in blocking mode. If missing, no timeout is applied other than that provided by the underlying operating system. When in non-blocking mode this parameter is ignored. Note that if the hostname resolves to multiple address candidates, the same timeout will apply to each connection attempt individually, rather than to the operation as a whole. Further note that the timeout does not apply to the initial hostname resolve operation, if connecting by hostname. This behviour is copied inspired by IO::Socket::INET; for more fine grained control over connection timeouts, consider performing a nonblocking connect directly. If neither Type nor Proto hints are provided, a default of SOCK_STREAM and IPPROTO_TCP respectively will be set, to maintain compatibility with IO::Socket::INET. Other named arguments that are not recognised are ignored. If neither Family nor any hosts or addresses are passed, nor any *AddrInfo, then the constructor has no information on which to decide a socket family to create. In this case, it performs a getaddinfo call with the AI_ADDRCONFIG flag, no host name, and a service name of "0", and uses the family of the first returned result. If the constructor fails, it will set $@ to an appropriate error message; this may be from $! or it may be some other string; not every failure necessarily has an associated errno value. $sock = IO::Socket::IP->new( $peeraddr ) As a special case, if the constructor is passed a single argument (as opposed to an even-sized list of key/value pairs), it is taken to be the value of the PeerAddr parameter. This is parsed in the same way, according to the behaviour given in the PeerHost AND LocalHost PARSING section below. METHODS As well as the following methods, this class inherits all the methods in IO::Socket and IO::Handle. ( $host, $service ) = $sock->sockhost_service( $numeric ) Returns the hostname and service name of the local address (that is, the socket address given by the sockname method). If $numeric is true, these will be given in numeric form rather than being resolved into names. The following four convenience wrappers may be used to obtain one of the two values returned here. If both host and service names are required, this method is preferable to the following wrappers, because it will call getnameinfo(3) only once. $addr = $sock->sockhost Return the numeric form of the local address as a textual representation $port = $sock->sockport Return the numeric form of the local port number $host = $sock->sockhostname Return the resolved name of the local address $service = $sock->sockservice Return the resolved name of the local port number $addr = $sock->sockaddr Return the local address as a binary octet string ( $host, $service ) = $sock->peerhost_service( $numeric ) Returns the hostname and service name of the peer address (that is, the socket address given by the peername method), similar to the sockhost_service method. The following four convenience wrappers may be used to obtain one of the two values returned here. If both host and service names are required, this method is preferable to the following wrappers, because it will call getnameinfo(3) only once. $addr = $sock->peerhost Return the numeric form of the peer address as a textual representation $port = $sock->peerport Return the numeric form of the peer port number $host = $sock->peerhostname Return the resolved name of the peer address $service = $sock->peerservice Return the resolved name of the peer port number $addr = $peer->peeraddr Return the peer address as a binary octet string $inet = $sock->as_inet Returns a new IO::Socket::INET instance wrapping the same filehandle. This may be useful in cases where it is required, for backward-compatibility, to have a real object of IO::Socket::INET type instead of IO::Socket::IP. The new object will wrap the same underlying socket filehandle as the original, so care should be taken not to continue to use both objects concurrently. Ideally the original $sock should be discarded after this method is called. This method checks that the socket domain is PF_INET and will throw an exception if it isn't. NON-BLOCKING If the constructor is passed a defined but false value for the Blocking argument then the socket is put into non-blocking mode. When in non-blocking mode, the socket will not be set up by the time the constructor returns, because the underlying connect(2) syscall would otherwise have to block. The non-blocking behaviour is an extension of the IO::Socket::INET API, unique to IO::Socket::IP, because the former does not support multi-homed non-blocking connect. When using non-blocking mode, the caller must repeatedly check for writeability on the filehandle (for instance using select or IO::Poll). Each time the filehandle is ready to write, the connect method must be called, with no arguments. Note that some operating systems, most notably MSWin32 do not report a connect() failure using write-ready; so you must also select() for exceptional status. While connect returns false, the value of $! indicates whether it should be tried again (by being set to the value EINPROGRESS, or EWOULDBLOCK on MSWin32), or whether a permanent error has occurred (e.g. ECONNREFUSED). Once the socket has been connected to the peer, connect will return true and the socket will now be ready to use. Note that calls to the platform's underlying getaddrinfo(3) function may block. If IO::Socket::IP has to perform this lookup, the constructor will block even when in non-blocking mode. To avoid this blocking behaviour, the caller should pass in the result of such a lookup using the PeerAddrInfo or LocalAddrInfo arguments. This can be achieved by using Net::LibAsyncNS, or the getaddrinfo(3) function can be called in a child process. use IO::Socket::IP; use Errno qw( EINPROGRESS EWOULDBLOCK ); my @peeraddrinfo = ... # Caller must obtain the getaddinfo result here my $socket = IO::Socket::IP->new( PeerAddrInfo => \@peeraddrinfo, Blocking => 0, ) or die "Cannot construct socket - $@"; while( !$socket->connect and ( $! == EINPROGRESS || $! == EWOULDBLOCK ) ) { my $wvec = ''; vec( $wvec, fileno $socket, 1 ) = 1; my $evec = ''; vec( $evec, fileno $socket, 1 ) = 1; select( undef, $wvec, $evec, undef ) or die "Cannot select - $!"; } die "Cannot connect - $!" if $!; ... The example above uses select(), but any similar mechanism should work analogously. IO::Socket::IP takes care when creating new socket filehandles to preserve the actual file descriptor number, so such techniques as poll or epoll should be transparent to its reallocation of a different socket underneath, perhaps in order to switch protocol family between PF_INET and PF_INET6. For another example using IO::Poll and Net::LibAsyncNS, see the examples/nonblocking_libasyncns.pl file in the module distribution. PeerHost AND LocalHost PARSING To support the IO::Socket::INET API, the host and port information may be passed in a single string rather than as two separate arguments. If either LocalHost or PeerHost (or their ...Addr synonyms) have any of the following special forms then special parsing is applied. The value of the ...Host argument will be split to give both the hostname and port (or service name): hostname.example.org:http # Host name 192.0.2.1:80 # IPv4 address [2001:db8::1]:80 # IPv6 address In each case, the port or service name (e.g. 80) is passed as the LocalService or PeerService argument. Either of LocalService or PeerService (or their ...Port synonyms) can be either a service name, a decimal number, or a string containing both a service name and number, in a form such as http(80) In this case, the name (http) will be tried first, but if the resolver does not understand it then the port number (80) will be used instead. If the ...Host argument is in this special form and the corresponding ...Service or ...Port argument is also defined, the one parsed from the ...Host argument will take precedence and the other will be ignored. ( $host, $port ) = IO::Socket::IP->split_addr( $addr ) Utility method that provides the parsing functionality described above. Returns a 2-element list, containing either the split hostname and port description if it could be parsed, or the given address and undef if it was not recognised. IO::Socket::IP->split_addr( "hostname:http" ) # ( "hostname", "http" ) IO::Socket::IP->split_addr( "192.0.2.1:80" ) # ( "192.0.2.1", "80" ) IO::Socket::IP->split_addr( "[2001:db8::1]:80" ) # ( "2001:db8::1", "80" ) IO::Socket::IP->split_addr( "something.else" ) # ( "something.else", undef ) $addr = IO::Socket::IP->join_addr( $host, $port ) Utility method that performs the reverse of split_addr, returning a string formed by joining the specified host address and port number. The host address will be wrapped in [] brackets if required (because it is a raw IPv6 numeric address). This can be especially useful when combined with the sockhost_service or peerhost_service methods. say "Connected to ", IO::Socket::IP->join_addr( $sock->peerhost_service ); IO::Socket::INET INCOMPATIBILITES * The behaviour enabled by MultiHomed is in fact implemented by IO::Socket::IP as it is required to correctly support searching for a useable address from the results of the getaddrinfo(3) call. The constructor will ignore the value of this argument, except if it is defined but false. An exception is thrown in this case, because that would request it disable the getaddrinfo(3) search behaviour in the first place. * IO::Socket::IP implements both the Blocking and Timeout parameters, but it implements the interaction of both in a different way. In ::INET, supplying a timeout overrides the non-blocking behaviour, meaning that the connect() operation will still block despite that the caller asked for a non-blocking socket. This is not explicitly specified in its documentation, nor does this author believe that is a useful behaviour - it appears to come from a quirk of implementation. In ::IP therefore, the Blocking parameter takes precedence - if a non-blocking socket is requested, no operation will block. The Timeout parameter here simply defines the maximum time that a blocking connect() call will wait, if it blocks at all. In order to specifically obtain the "blocking connect then non-blocking send and receive" behaviour of specifying this combination of options to ::INET when using ::IP, perform first a blocking connect, then afterwards turn the socket into nonblocking mode. my $sock = IO::Socket::IP->new( PeerHost => $peer, Timeout => 20, ) or die "Cannot connect - $@"; $sock->blocking( 0 ); This code will behave identically under both IO::Socket::INET and IO::Socket::IP. TODO * Investigate whether POSIX::dup2 upsets BSD's kqueue watchers, and if so, consider what possible workarounds might be applied. AUTHOR Paul Evans usr/share/doc/perl-Params-Check/README000064400000001767152533732360013326 0ustar00This is the README file for Params::Check, a perl module for powerful template based param validation Please refer to 'perldoc Params::Check' after installation for details. ##################################################################### * Description Params::Check Allows for generic input checking and validating using a powerfull templating system, providing default values and so on. ##################################################################### * Installation Params::Check follows the standard perl module install process perl Makefile.PL make make test make install The module uses no C or XS parts, so no c-compiler is required. ###################################################################### AUTHOR This module by Jos Boumans . COPYRIGHT This module is copyright (c) 2002 Jos Boumans . All rights reserved. This library is free software; you may redistribute and/or modify it under the same terms as Perl itself. usr/lib64/libdnf/plugins/README000064400000000302152533755750012110 0ustar00 This directory holds plugins for the libdnf library. Any files in this directory which have the ".so" extension will be processed as libdnf plugins. Files are processed in alphabetical order. usr/share/doc/python36-devel/README000064400000000560152533774270012713 0ustar00The python36, python36-devel, and python36-debug packages contain symlinks that enable users to access the underlying Platform-Python implementation present in the RHEL8 system in packages platform-python, platform-python-devel and platform-python-debug. The python36-rpm-macros package contains RPM macros for building RPMs with Python 3.6 from the python36 module. usr/share/doc/perl-ExtUtils-MakeMaker/README000064400000001370152534001360014460 0ustar00This is a CPAN distribution of the venerable MakeMaker module. It has been backported to work with Perl 5.6.0 and up. Please note that while this module works on Perl 5.6, it is no longer being routinely tested on 5.6. However, patches to repair any breakage on 5.6 are still being accepted. See INSTALL for installation instructions. Run "perldoc ExtUtils::MakeMaker" (while in this source directory before installation) for more documentation. See http://rt.cpan.org or https://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker/issues for a full list of open problems. Please report your bugs via http://rt.cpan.org or https://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker/issues or by mailing to makemaker@perl.org. RT or GitHub are preferred. usr/share/doc/perl-CPAN/README000064400000277251152534037710011612 0ustar00NAME CPAN - query, download and build perl modules from CPAN sites SYNOPSIS Interactive mode: perl -MCPAN -e shell --or-- cpan Basic commands: # Modules: cpan> install Acme::Meta # in the shell CPAN::Shell->install("Acme::Meta"); # in perl # Distributions: cpan> install NWCLARK/Acme-Meta-0.02.tar.gz # in the shell CPAN::Shell-> install("NWCLARK/Acme-Meta-0.02.tar.gz"); # in perl # module objects: $mo = CPAN::Shell->expandany($mod); $mo = CPAN::Shell->expand("Module",$mod); # same thing # distribution objects: $do = CPAN::Shell->expand("Module",$mod)->distribution; $do = CPAN::Shell->expandany($distro); # same thing $do = CPAN::Shell->expand("Distribution", $distro); # same thing DESCRIPTION The CPAN module automates or at least simplifies the make and install of perl modules and extensions. It includes some primitive searching capabilities and knows how to use LWP, HTTP::Tiny, Net::FTP and certain external download clients to fetch distributions from the net. These are fetched from one or more mirrored CPAN (Comprehensive Perl Archive Network) sites and unpacked in a dedicated directory. The CPAN module also supports named and versioned *bundles* of modules. Bundles simplify handling of sets of related modules. See Bundles below. The package contains a session manager and a cache manager. The session manager keeps track of what has been fetched, built, and installed in the current session. The cache manager keeps track of the disk space occupied by the make processes and deletes excess space using a simple FIFO mechanism. All methods provided are accessible in a programmer style and in an interactive shell style. CPAN::shell([$prompt, $command]) Starting Interactive Mode Enter interactive mode by running perl -MCPAN -e shell or cpan which puts you into a readline interface. If "Term::ReadKey" and either of "Term::ReadLine::Perl" or "Term::ReadLine::Gnu" are installed, history and command completion are supported. Once at the command line, type "h" for one-page help screen; the rest should be self-explanatory. The function call "shell" takes two optional arguments: one the prompt, the second the default initial command line (the latter only works if a real ReadLine interface module is installed). The most common uses of the interactive modes are Searching for authors, bundles, distribution files and modules There are corresponding one-letter commands "a", "b", "d", and "m" for each of the four categories and another, "i" for any of the mentioned four. Each of the four entities is implemented as a class with slightly differing methods for displaying an object. Arguments to these commands are either strings exactly matching the identification string of an object, or regular expressions matched case-insensitively against various attributes of the objects. The parser only recognizes a regular expression when you enclose it with slashes. The principle is that the number of objects found influences how an item is displayed. If the search finds one item, the result is displayed with the rather verbose method "as_string", but if more than one is found, each object is displayed with the terse method "as_glimpse". Examples: cpan> m Acme::MetaSyntactic Module id = Acme::MetaSyntactic CPAN_USERID BOOK (Philippe Bruhat (BooK) <[...]>) CPAN_VERSION 0.99 CPAN_FILE B/BO/BOOK/Acme-MetaSyntactic-0.99.tar.gz UPLOAD_DATE 2006-11-06 MANPAGE Acme::MetaSyntactic - Themed metasyntactic variables names INST_FILE /usr/local/lib/perl/5.10.0/Acme/MetaSyntactic.pm INST_VERSION 0.99 cpan> a BOOK Author id = BOOK EMAIL [...] FULLNAME Philippe Bruhat (BooK) cpan> d BOOK/Acme-MetaSyntactic-0.99.tar.gz Distribution id = B/BO/BOOK/Acme-MetaSyntactic-0.99.tar.gz CPAN_USERID BOOK (Philippe Bruhat (BooK) <[...]>) CONTAINSMODS Acme::MetaSyntactic Acme::MetaSyntactic::Alias [...] UPLOAD_DATE 2006-11-06 cpan> m /lorem/ Module = Acme::MetaSyntactic::loremipsum (BOOK/Acme-MetaSyntactic-0.99.tar.gz) Module Text::Lorem (ADEOLA/Text-Lorem-0.3.tar.gz) Module Text::Lorem::More (RKRIMEN/Text-Lorem-More-0.12.tar.gz) Module Text::Lorem::More::Source (RKRIMEN/Text-Lorem-More-0.12.tar.gz) cpan> i /berlin/ Distribution BEATNIK/Filter-NumberLines-0.02.tar.gz Module = DateTime::TimeZone::Europe::Berlin (DROLSKY/DateTime-TimeZone-0.7904.tar.gz) Module Filter::NumberLines (BEATNIK/Filter-NumberLines-0.02.tar.gz) Author [...] The examples illustrate several aspects: the first three queries target modules, authors, or distros directly and yield exactly one result. The last two use regular expressions and yield several results. The last one targets all of bundles, modules, authors, and distros simultaneously. When more than one result is available, they are printed in one-line format. "get", "make", "test", "install", "clean" modules or distributions These commands take any number of arguments and investigate what is necessary to perform the action. Argument processing is as follows: known module name in format Foo/Bar.pm module other embedded slash distribution - with trailing slash dot directory enclosing slashes regexp known module name in format Foo::Bar module If the argument is a distribution file name (recognized by embedded slashes), it is processed. If it is a module, CPAN determines the distribution file in which this module is included and processes that, following any dependencies named in the module's META.yml or Makefile.PL (this behavior is controlled by the configuration parameter "prerequisites_policy"). If an argument is enclosed in slashes it is treated as a regular expression: it is expanded and if the result is a single object (distribution, bundle or module), this object is processed. Example: install Dummy::Perl # installs the module install AUXXX/Dummy-Perl-3.14.tar.gz # installs that distribution install /Dummy-Perl-3.14/ # same if the regexp is unambiguous "get" downloads a distribution file and untars or unzips it, "make" builds it, "test" runs the test suite, and "install" installs it. Any "make" or "test" is run unconditionally. An install is also run unconditionally. But for install CPAN checks whether an install is needed and prints *module up to date* if the distribution file containing the module doesn't need updating. CPAN also keeps track of what it has done within the current session and doesn't try to build a package a second time regardless of whether it succeeded or not. It does not repeat a test run if the test has been run successfully before. Same for install runs. The "force" pragma may precede another command (currently: "get", "make", "test", or "install") to execute the command from scratch and attempt to continue past certain errors. See the section below on the "force" and the "fforce" pragma. The "notest" pragma skips the test part in the build process. Example: cpan> notest install Tk A "clean" command results in a make clean being executed within the distribution file's working directory. "readme", "perldoc", "look" module or distribution "readme" displays the README file of the associated distribution. "Look" gets and untars (if not yet done) the distribution file, changes to the appropriate directory and opens a subshell process in that directory. "perldoc" displays the module's pod documentation in html or plain text format. "ls" author "ls" globbing_expression The first form lists all distribution files in and below an author's CPAN directory as stored in the CHECKSUMS files distributed on CPAN. The listing recurses into subdirectories. The second form limits or expands the output with shell globbing as in the following examples: ls JV/make* ls GSAR/*make* ls */*make* The last example is very slow and outputs extra progress indicators that break the alignment of the result. Note that globbing only lists directories explicitly asked for, for example FOO/* will not list FOO/bar/Acme-Sthg-n.nn.tar.gz. This may be regarded as a bug that may be changed in some future version. "failed" The "failed" command reports all distributions that failed on one of "make", "test" or "install" for some reason in the currently running shell session. Persistence between sessions If the "YAML" or the "YAML::Syck" module is installed a record of the internal state of all modules is written to disk after each step. The files contain a signature of the currently running perl version for later perusal. If the configurations variable "build_dir_reuse" is set to a true value, then CPAN.pm reads the collected YAML files. If the stored signature matches the currently running perl, the stored state is loaded into memory such that persistence between sessions is effectively established. The "force" and the "fforce" pragma To speed things up in complex installation scenarios, CPAN.pm keeps track of what it has already done and refuses to do some things a second time. A "get", a "make", and an "install" are not repeated. A "test" is repeated only if the previous test was unsuccessful. The diagnostic message when CPAN.pm refuses to do something a second time is one of *Has already been *"unwrapped|made|tested successfully" or something similar. Another situation where CPAN refuses to act is an "install" if the corresponding "test" was not successful. In all these cases, the user can override this stubborn behaviour by prepending the command with the word force, for example: cpan> force get Foo cpan> force make AUTHOR/Bar-3.14.tar.gz cpan> force test Baz cpan> force install Acme::Meta Each *forced* command is executed with the corresponding part of its memory erased. The "fforce" pragma is a variant that emulates a "force get" which erases the entire memory followed by the action specified, effectively restarting the whole get/make/test/install procedure from scratch. Lockfile Interactive sessions maintain a lockfile, by default "~/.cpan/.lock". Batch jobs can run without a lockfile and not disturb each other. The shell offers to run in *downgraded mode* when another process is holding the lockfile. This is an experimental feature that is not yet tested very well. This second shell then does not write the history file, does not use the metadata file, and has a different prompt. Signals CPAN.pm installs signal handlers for SIGINT and SIGTERM. While you are in the cpan-shell, it is intended that you can press "^C" anytime and return to the cpan-shell prompt. A SIGTERM will cause the cpan-shell to clean up and leave the shell loop. You can emulate the effect of a SIGTERM by sending two consecutive SIGINTs, which usually means by pressing "^C" twice. CPAN.pm ignores SIGPIPE. If the user sets "inactivity_timeout", a SIGALRM is used during the run of the "perl Makefile.PL" or "perl Build.PL" subprocess. A SIGALRM is also used during module version parsing, and is controlled by "version_timeout". CPAN::Shell The commands available in the shell interface are methods in the package CPAN::Shell. If you enter the shell command, your input is split by the Text::ParseWords::shellwords() routine, which acts like most shells do. The first word is interpreted as the method to be invoked, and the rest of the words are treated as the method's arguments. Continuation lines are supported by ending a line with a literal backslash. autobundle "autobundle" writes a bundle file into the "$CPAN::Config->{cpan_home}/Bundle" directory. The file contains a list of all modules that are both available from CPAN and currently installed within @INC. Duplicates of each distribution are suppressed. The name of the bundle file is based on the current date and a counter, e.g. Bundle/Snapshot_2012_05_21_00.pm. This is installed again by running "cpan Bundle::Snapshot_2012_05_21_00", or installing "Bundle::Snapshot_2012_05_21_00" from the CPAN shell. Return value: path to the written file. hosts Note: this feature is still in alpha state and may change in future versions of CPAN.pm This commands provides a statistical overview over recent download activities. The data for this is collected in the YAML file "FTPstats.yml" in your "cpan_home" directory. If no YAML module is configured or YAML not installed, no stats are provided. install_tested Install all distributions that have been tested successfully but have not yet been installed. See also "is_tested". is_tested List all build directories of distributions that have been tested successfully but have not yet been installed. See also "install_tested". mkmyconfig mkmyconfig() writes your own CPAN::MyConfig file into your "~/.cpan/" directory so that you can save your own preferences instead of the system-wide ones. r [Module|/Regexp/]... scans current perl installation for modules that have a newer version available on CPAN and provides a list of them. If called without argument, all potential upgrades are listed; if called with arguments the list is filtered to the modules and regexps given as arguments. The listing looks something like this: Package namespace installed latest in CPAN file CPAN 1.94_64 1.9600 ANDK/CPAN-1.9600.tar.gz CPAN::Reporter 1.1801 1.1902 DAGOLDEN/CPAN-Reporter-1.1902.tar.gz YAML 0.70 0.73 INGY/YAML-0.73.tar.gz YAML::Syck 1.14 1.17 AVAR/YAML-Syck-1.17.tar.gz YAML::Tiny 1.44 1.50 ADAMK/YAML-Tiny-1.50.tar.gz CGI 3.43 3.55 MARKSTOS/CGI.pm-3.55.tar.gz Module::Build::YAML 1.40 1.41 DAGOLDEN/Module-Build-0.3800.tar.gz TAP::Parser::Result::YAML 3.22 3.23 ANDYA/Test-Harness-3.23.tar.gz YAML::XS 0.34 0.35 INGY/YAML-LibYAML-0.35.tar.gz It suppresses duplicates in the column "in CPAN file" such that distributions with many upgradeable modules are listed only once. Note that the list is not sorted. recent ***EXPERIMENTAL COMMAND*** The "recent" command downloads a list of recent uploads to CPAN and displays them *slowly*. While the command is running, a $SIG{INT} exits the loop after displaying the current item. Note: This command requires XML::LibXML installed. Note: This whole command currently is just a hack and will probably change in future versions of CPAN.pm, but the general approach will likely remain. Note: See also smoke recompile recompile() is a special command that takes no argument and runs the make/test/install cycle with brute force over all installed dynamically loadable extensions (a.k.a. XS modules) with 'force' in effect. The primary purpose of this command is to finish a network installation. Imagine you have a common source tree for two different architectures. You decide to do a completely independent fresh installation. You start on one architecture with the help of a Bundle file produced earlier. CPAN installs the whole Bundle for you, but when you try to repeat the job on the second architecture, CPAN responds with a "Foo up to date" message for all modules. So you invoke CPAN's recompile on the second architecture and you're done. Another popular use for "recompile" is to act as a rescue in case your perl breaks binary compatibility. If one of the modules that CPAN uses is in turn depending on binary compatibility (so you cannot run CPAN commands), then you should try the CPAN::Nox module for recovery. report Bundle|Distribution|Module The "report" command temporarily turns on the "test_report" config variable, then runs the "force test" command with the given arguments. The "force" pragma reruns the tests and repeats every step that might have failed before. smoke ***EXPERIMENTAL COMMAND*** *** WARNING: this command downloads and executes software from CPAN to your computer of completely unknown status. You should never do this with your normal account and better have a dedicated well separated and secured machine to do this. *** The "smoke" command takes the list of recent uploads to CPAN as provided by the "recent" command and tests them all. While the command is running $SIG{INT} is defined to mean that the current item shall be skipped. Note: This whole command currently is just a hack and will probably change in future versions of CPAN.pm, but the general approach will likely remain. Note: See also recent upgrade [Module|/Regexp/]... The "upgrade" command first runs an "r" command with the given arguments and then installs the newest versions of all modules that were listed by that. The four "CPAN::*" Classes: Author, Bundle, Module, Distribution Although it may be considered internal, the class hierarchy does matter for both users and programmer. CPAN.pm deals with the four classes mentioned above, and those classes all share a set of methods. Classical single polymorphism is in effect. A metaclass object registers all objects of all kinds and indexes them with a string. The strings referencing objects have a separated namespace (well, not completely separated): Namespace Class words containing a "/" (slash) Distribution words starting with Bundle:: Bundle everything else Module or Author Modules know their associated Distribution objects. They always refer to the most recent official release. Developers may mark their releases as unstable development versions (by inserting an underscore into the module version number which will also be reflected in the distribution name when you run 'make dist'), so the really hottest and newest distribution is not always the default. If a module Foo circulates on CPAN in both version 1.23 and 1.23_90, CPAN.pm offers a convenient way to install version 1.23 by saying install Foo This would install the complete distribution file (say BAR/Foo-1.23.tar.gz) with all accompanying material. But if you would like to install version 1.23_90, you need to know where the distribution file resides on CPAN relative to the authors/id/ directory. If the author is BAR, this might be BAR/Foo-1.23_90.tar.gz; so you would have to say install BAR/Foo-1.23_90.tar.gz The first example will be driven by an object of the class CPAN::Module, the second by an object of class CPAN::Distribution. Integrating local directories Note: this feature is still in alpha state and may change in future versions of CPAN.pm Distribution objects are normally distributions from the CPAN, but there is a slightly degenerate case for Distribution objects, too, of projects held on the local disk. These distribution objects have the same name as the local directory and end with a dot. A dot by itself is also allowed for the current directory at the time CPAN.pm was used. All actions such as "make", "test", and "install" are applied directly to that directory. This gives the command "cpan ." an interesting touch: while the normal mantra of installing a CPAN module without CPAN.pm is one of perl Makefile.PL perl Build.PL ( go and get prerequisites ) make ./Build make test ./Build test make install ./Build install the command "cpan ." does all of this at once. It figures out which of the two mantras is appropriate, fetches and installs all prerequisites, takes care of them recursively, and finally finishes the installation of the module in the current directory, be it a CPAN module or not. The typical usage case is for private modules or working copies of projects from remote repositories on the local disk. Redirection The usual shell redirection symbols " | " and ">" are recognized by the cpan shell only when surrounded by whitespace. So piping to pager or redirecting output into a file works somewhat as in a normal shell, with the stipulation that you must type extra spaces. Plugin support ***EXPERIMENTAL*** Plugins are objects that implement any of currently eight methods: pre_get post_get pre_make post_make pre_test post_test pre_install post_install The "plugin_list" configuration parameter holds a list of strings of the form Modulename=arg0,arg1,arg2,arg3,... eg: CPAN::Plugin::Flurb=dir,/opt/pkgs/flurb/raw,verbose,1 At run time, each listed plugin is instantiated as a singleton object by running the equivalent of this pseudo code: my $plugin = ; ; my $p = $instance{$plugin} ||= Modulename->new($arg0,$arg1,...); The generated singletons are kept around from instantiation until the end of the shell session. can be reconfigured at any time at run time. While the cpan shell is running, it checks all activated plugins at each of the 8 reference points listed above and runs the respective method if it is implemented for that object. The method is called with the active CPAN::Distribution object passed in as an argument. CONFIGURATION When the CPAN module is used for the first time, a configuration dialogue tries to determine a couple of site specific options. The result of the dialog is stored in a hash reference $CPAN::Config in a file CPAN/Config.pm. Default values defined in the CPAN/Config.pm file can be overridden in a user specific file: CPAN/MyConfig.pm. Such a file is best placed in "$HOME/.cpan/CPAN/MyConfig.pm", because "$HOME/.cpan" is added to the search path of the CPAN module before the use() or require() statements. The mkmyconfig command writes this file for you. The "o conf" command has various bells and whistles: completion support If you have a ReadLine module installed, you can hit TAB at any point of the commandline and "o conf" will offer you completion for the built-in subcommands and/or config variable names. displaying some help: o conf help Displays a short help displaying current values: o conf [KEY] Displays the current value(s) for this config variable. Without KEY, displays all subcommands and config variables. Example: o conf shell If KEY starts and ends with a slash, the string in between is treated as a regular expression and only keys matching this regexp are displayed Example: o conf /color/ changing of scalar values: o conf KEY VALUE Sets the config variable KEY to VALUE. The empty string can be specified as usual in shells, with '' or "" Example: o conf wget /usr/bin/wget changing of list values: o conf KEY SHIFT|UNSHIFT|PUSH|POP|SPLICE|LIST If a config variable name ends with "list", it is a list. "o conf KEY shift" removes the first element of the list, "o conf KEY pop" removes the last element of the list. "o conf KEYS unshift LIST" prepends a list of values to the list, "o conf KEYS push LIST" appends a list of valued to the list. Likewise, "o conf KEY splice LIST" passes the LIST to the corresponding splice command. Finally, any other list of arguments is taken as a new list value for the KEY variable discarding the previous value. Examples: o conf urllist unshift http://cpan.dev.local/CPAN o conf urllist splice 3 1 o conf urllist http://cpan1.local http://cpan2.local ftp://ftp.perl.org reverting to saved: o conf defaults Reverts all config variables to the state in the saved config file. saving the config: o conf commit Saves all config variables to the current config file (CPAN/Config.pm or CPAN/MyConfig.pm that was loaded at start). The configuration dialog can be started any time later again by issuing the command " o conf init " in the CPAN shell. A subset of the configuration dialog can be run by issuing "o conf init WORD" where WORD is any valid config variable or a regular expression. Config Variables The following keys in the hash reference $CPAN::Config are currently defined: applypatch path to external prg auto_commit commit all changes to config variables to disk build_cache size of cache for directories to build modules build_dir locally accessible directory to build modules build_dir_reuse boolean if distros in build_dir are persistent build_requires_install_policy to install or not to install when a module is only needed for building. yes|no|ask/yes|ask/no bzip2 path to external prg cache_metadata use serializer to cache metadata check_sigs if signatures should be verified cleanup_after_install remove build directory immediately after a successful install colorize_debug Term::ANSIColor attributes for debugging output colorize_output boolean if Term::ANSIColor should colorize output colorize_print Term::ANSIColor attributes for normal output colorize_warn Term::ANSIColor attributes for warnings commandnumber_in_prompt boolean if you want to see current command number commands_quote preferred character to use for quoting external commands when running them. Defaults to double quote on Windows, single tick everywhere else; can be set to space to disable quoting connect_to_internet_ok whether to ask if opening a connection is ok before urllist is specified cpan_home local directory reserved for this package curl path to external prg dontload_hash DEPRECATED dontload_list arrayref: modules in the list will not be loaded by the CPAN::has_inst() routine ftp path to external prg ftp_passive if set, the environment variable FTP_PASSIVE is set for downloads ftp_proxy proxy host for ftp requests ftpstats_period max number of days to keep download statistics ftpstats_size max number of items to keep in the download statistics getcwd see below gpg path to external prg gzip location of external program gzip halt_on_failure stop processing after the first failure of queued items or dependencies histfile file to maintain history between sessions histsize maximum number of lines to keep in histfile http_proxy proxy host for http requests inactivity_timeout breaks interactive Makefile.PLs or Build.PLs after this many seconds inactivity. Set to 0 to disable timeouts. index_expire refetch index files after this many days inhibit_startup_message if true, suppress the startup message keep_source_where directory in which to keep the source (if we do) load_module_verbosity report loading of optional modules used by CPAN.pm lynx path to external prg make location of external make program make_arg arguments that should always be passed to 'make' make_install_make_command the make command for running 'make install', for example 'sudo make' make_install_arg same as make_arg for 'make install' makepl_arg arguments passed to 'perl Makefile.PL' mbuild_arg arguments passed to './Build' mbuild_install_arg arguments passed to './Build install' mbuild_install_build_command command to use instead of './Build' when we are in the install stage, for example 'sudo ./Build' mbuildpl_arg arguments passed to 'perl Build.PL' ncftp path to external prg ncftpget path to external prg no_proxy don't proxy to these hosts/domains (comma separated list) pager location of external program more (or any pager) password your password if you CPAN server wants one patch path to external prg patches_dir local directory containing patch files perl5lib_verbosity verbosity level for PERL5LIB additions plugin_list list of active hooks (see Plugin support above and the CPAN::Plugin module) prefer_external_tar per default all untar operations are done with Archive::Tar; by setting this variable to true the external tar command is used if available prefer_installer legal values are MB and EUMM: if a module comes with both a Makefile.PL and a Build.PL, use the former (EUMM) or the latter (MB); if the module comes with only one of the two, that one will be used no matter the setting prerequisites_policy what to do if you are missing module prerequisites ('follow' automatically, 'ask' me, or 'ignore') For 'follow', also sets PERL_AUTOINSTALL and PERL_EXTUTILS_AUTOINSTALL for "--defaultdeps" if not already set prefs_dir local directory to store per-distro build options proxy_user username for accessing an authenticating proxy proxy_pass password for accessing an authenticating proxy randomize_urllist add some randomness to the sequence of the urllist recommends_policy whether recommended prerequisites should be included scan_cache controls scanning of cache ('atstart', 'atexit' or 'never') shell your favorite shell show_unparsable_versions boolean if r command tells which modules are versionless show_upload_date boolean if commands should try to determine upload date show_zero_versions boolean if r command tells for which modules $version==0 suggests_policy whether suggested prerequisites should be included tar location of external program tar tar_verbosity verbosity level for the tar command term_is_latin deprecated: if true Unicode is translated to ISO-8859-1 (and nonsense for characters outside latin range) term_ornaments boolean to turn ReadLine ornamenting on/off test_report email test reports (if CPAN::Reporter is installed) trust_test_report_history skip testing when previously tested ok (according to CPAN::Reporter history) unzip location of external program unzip urllist arrayref to nearby CPAN sites (or equivalent locations) use_prompt_default set PERL_MM_USE_DEFAULT for configure/make/test/install use_sqlite use CPAN::SQLite for metadata storage (fast and lean) username your username if you CPAN server wants one version_timeout stops version parsing after this many seconds. Default is 15 secs. Set to 0 to disable. wait_list arrayref to a wait server to try (See CPAN::WAIT) wget path to external prg yaml_load_code enable YAML code deserialisation via CPAN::DeferredCode yaml_module which module to use to read/write YAML files You can set and query each of these options interactively in the cpan shell with the "o conf" or the "o conf init" command as specified below. "o conf " prints the current value of the *scalar option* "o conf " Sets the value of the *scalar option* to *value* "o conf " prints the current value of the *list option* in MakeMaker's neatvalue format. "o conf [shift|pop]" shifts or pops the array in the *list option* variable "o conf [unshift|push|splice] " works like the corresponding perl commands. interactive editing: o conf init [MATCH|LIST] Runs an interactive configuration dialog for matching variables. Without argument runs the dialog over all supported config variables. To specify a MATCH the argument must be enclosed by slashes. Examples: o conf init ftp_passive ftp_proxy o conf init /color/ Note: this method of setting config variables often provides more explanation about the functioning of a variable than the manpage. CPAN::anycwd($path): Note on config variable getcwd CPAN.pm changes the current working directory often and needs to determine its own current working directory. By default it uses Cwd::cwd, but if for some reason this doesn't work on your system, configure alternatives according to the following table: cwd Calls Cwd::cwd getcwd Calls Cwd::getcwd fastcwd Calls Cwd::fastcwd getdcwd Calls Cwd::getdcwd backtickcwd Calls the external command cwd. Note on the format of the urllist parameter urllist parameters are URLs according to RFC 1738. We do a little guessing if your URL is not compliant, but if you have problems with "file" URLs, please try the correct format. Either: file://localhost/whatever/ftp/pub/CPAN/ or file:///home/ftp/pub/CPAN/ The urllist parameter has CD-ROM support The "urllist" parameter of the configuration table contains a list of URLs used for downloading. If the list contains any "file" URLs, CPAN always tries there first. This feature is disabled for index files. So the recommendation for the owner of a CD-ROM with CPAN contents is: include your local, possibly outdated CD-ROM as a "file" URL at the end of urllist, e.g. o conf urllist push file://localhost/CDROM/CPAN CPAN.pm will then fetch the index files from one of the CPAN sites that come at the beginning of urllist. It will later check for each module to see whether there is a local copy of the most recent version. Another peculiarity of urllist is that the site that we could successfully fetch the last file from automatically gets a preference token and is tried as the first site for the next request. So if you add a new site at runtime it may happen that the previously preferred site will be tried another time. This means that if you want to disallow a site for the next transfer, it must be explicitly removed from urllist. Maintaining the urllist parameter If you have YAML.pm (or some other YAML module configured in "yaml_module") installed, CPAN.pm collects a few statistical data about recent downloads. You can view the statistics with the "hosts" command or inspect them directly by looking into the "FTPstats.yml" file in your "cpan_home" directory. To get some interesting statistics, it is recommended that "randomize_urllist" be set; this introduces some amount of randomness into the URL selection. The "requires" and "build_requires" dependency declarations Since CPAN.pm version 1.88_51 modules declared as "build_requires" by a distribution are treated differently depending on the config variable "build_requires_install_policy". By setting "build_requires_install_policy" to "no", such a module is not installed. It is only built and tested, and then kept in the list of tested but uninstalled modules. As such, it is available during the build of the dependent module by integrating the path to the "blib/arch" and "blib/lib" directories in the environment variable PERL5LIB. If "build_requires_install_policy" is set ti "yes", then both modules declared as "requires" and those declared as "build_requires" are treated alike. By setting to "ask/yes" or "ask/no", CPAN.pm asks the user and sets the default accordingly. Configuration for individual distributions (*Distroprefs*) (Note: This feature has been introduced in CPAN.pm 1.8854) Distributions on CPAN usually behave according to what we call the CPAN mantra. Or since the advent of Module::Build we should talk about two mantras: perl Makefile.PL perl Build.PL make ./Build make test ./Build test make install ./Build install But some modules cannot be built with this mantra. They try to get some extra data from the user via the environment, extra arguments, or interactively--thus disturbing the installation of large bundles like Phalanx100 or modules with many dependencies like Plagger. The distroprefs system of "CPAN.pm" addresses this problem by allowing the user to specify extra informations and recipes in YAML files to either * pass additional arguments to one of the four commands, * set environment variables * instantiate an Expect object that reads from the console, waits for some regular expressions and enters some answers * temporarily override assorted "CPAN.pm" configuration variables * specify dependencies the original maintainer forgot * disable the installation of an object altogether See the YAML and Data::Dumper files that come with the "CPAN.pm" distribution in the "distroprefs/" directory for examples. Filenames The YAML files themselves must have the ".yml" extension; all other files are ignored (for two exceptions see *Fallback Data::Dumper and Storable* below). The containing directory can be specified in "CPAN.pm" in the "prefs_dir" config variable. Try "o conf init prefs_dir" in the CPAN shell to set and activate the distroprefs system. Every YAML file may contain arbitrary documents according to the YAML specification, and every document is treated as an entity that can specify the treatment of a single distribution. Filenames can be picked arbitrarily; "CPAN.pm" always reads all files (in alphabetical order) and takes the key "match" (see below in *Language Specs*) as a hashref containing match criteria that determine if the current distribution matches the YAML document or not. Fallback Data::Dumper and Storable If neither your configured "yaml_module" nor YAML.pm is installed, CPAN.pm falls back to using Data::Dumper and Storable and looks for files with the extensions ".dd" or ".st" in the "prefs_dir" directory. These files are expected to contain one or more hashrefs. For Data::Dumper generated files, this is expected to be done with by defining $VAR1, $VAR2, etc. The YAML shell would produce these with the command ysh < somefile.yml > somefile.dd For Storable files the rule is that they must be constructed such that "Storable::retrieve(file)" returns an array reference and the array elements represent one distropref object each. The conversion from YAML would look like so: perl -MYAML=LoadFile -MStorable=nstore -e ' @y=LoadFile(shift); nstore(\@y, shift)' somefile.yml somefile.st In bootstrapping situations it is usually sufficient to translate only a few YAML files to Data::Dumper for crucial modules like "YAML::Syck", "YAML.pm" and "Expect.pm". If you prefer Storable over Data::Dumper, remember to pull out a Storable version that writes an older format than all the other Storable versions that will need to read them. Blueprint The following example contains all supported keywords and structures with the exception of "eexpect" which can be used instead of "expect". --- comment: "Demo" match: module: "Dancing::Queen" distribution: "^CHACHACHA/Dancing-" not_distribution: "\.zip$" perl: "/usr/local/cariba-perl/bin/perl" perlconfig: archname: "freebsd" not_cc: "gcc" env: DANCING_FLOOR: "Shubiduh" disabled: 1 cpanconfig: make: gmake pl: args: - "--somearg=specialcase" env: {} expect: - "Which is your favorite fruit" - "apple\n" make: args: - all - extra-all env: {} expect: [] commandline: "echo SKIPPING make" test: args: [] env: {} expect: [] install: args: [] env: WANT_TO_INSTALL: YES expect: - "Do you really want to install" - "y\n" patches: - "ABCDE/Fedcba-3.14-ABCDE-01.patch" depends: configure_requires: LWP: 5.8 build_requires: Test::Exception: 0.25 requires: Spiffy: 0.30 Language Specs Every YAML document represents a single hash reference. The valid keys in this hash are as follows: comment [scalar] A comment cpanconfig [hash] Temporarily override assorted "CPAN.pm" configuration variables. Supported are: "build_requires_install_policy", "check_sigs", "make", "make_install_make_command", "prefer_installer", "test_report". Please report as a bug when you need another one supported. depends [hash] *** EXPERIMENTAL FEATURE *** All three types, namely "configure_requires", "build_requires", and "requires" are supported in the way specified in the META.yml specification. The current implementation *merges* the specified dependencies with those declared by the package maintainer. In a future implementation this may be changed to override the original declaration. disabled [boolean] Specifies that this distribution shall not be processed at all. features [array] *** EXPERIMENTAL FEATURE *** Experimental implementation to deal with optional_features from META.yml. Still needs coordination with installer software and currently works only for META.yml declaring "dynamic_config=0". Use with caution. goto [string] The canonical name of a delegate distribution to install instead. Useful when a new version, although it tests OK itself, breaks something else or a developer release or a fork is already uploaded that is better than the last released version. install [hash] Processing instructions for the "make install" or "./Build install" phase of the CPAN mantra. See below under *Processing Instructions*. make [hash] Processing instructions for the "make" or "./Build" phase of the CPAN mantra. See below under *Processing Instructions*. match [hash] A hashref with one or more of the keys "distribution", "module", "perl", "perlconfig", and "env" that specify whether a document is targeted at a specific CPAN distribution or installation. Keys prefixed with "not_" negates the corresponding match. The corresponding values are interpreted as regular expressions. The "distribution" related one will be matched against the canonical distribution name, e.g. "AUTHOR/Foo-Bar-3.14.tar.gz". The "module" related one will be matched against *all* modules contained in the distribution until one module matches. The "perl" related one will be matched against $^X (but with the absolute path). The value associated with "perlconfig" is itself a hashref that is matched against corresponding values in the %Config::Config hash living in the "Config.pm" module. Keys prefixed with "not_" negates the corresponding match. The value associated with "env" is itself a hashref that is matched against corresponding values in the %ENV hash. Keys prefixed with "not_" negates the corresponding match. If more than one restriction of "module", "distribution", etc. is specified, the results of the separately computed match values must all match. If so, the hashref represented by the YAML document is returned as the preference structure for the current distribution. patches [array] An array of patches on CPAN or on the local disk to be applied in order via an external patch program. If the value for the "-p" parameter is 0 or 1 is determined by reading the patch beforehand. The path to each patch is either an absolute path on the local filesystem or relative to a patch directory specified in the "patches_dir" configuration variable or in the format of a canonical distro name. For examples please consult the distroprefs/ directory in the CPAN.pm distribution (these examples are not installed by default). Note: if the "applypatch" program is installed and "CPAN::Config" knows about it and a patch is written by the "makepatch" program, then "CPAN.pm" lets "applypatch" apply the patch. Both "makepatch" and "applypatch" are available from CPAN in the "JV/makepatch-*" distribution. pl [hash] Processing instructions for the "perl Makefile.PL" or "perl Build.PL" phase of the CPAN mantra. See below under *Processing Instructions*. test [hash] Processing instructions for the "make test" or "./Build test" phase of the CPAN mantra. See below under *Processing Instructions*. Processing Instructions args [array] Arguments to be added to the command line commandline A full commandline to run via "system()". During execution, the environment variable PERL is set to $^X (but with an absolute path). If "commandline" is specified, "args" is not used. eexpect [hash] Extended "expect". This is a hash reference with four allowed keys, "mode", "timeout", "reuse", and "talk". You must install the "Expect" module to use "eexpect". CPAN.pm does not install it for you. "mode" may have the values "deterministic" for the case where all questions come in the order written down and "anyorder" for the case where the questions may come in any order. The default mode is "deterministic". "timeout" denotes a timeout in seconds. Floating-point timeouts are OK. With "mode=deterministic", the timeout denotes the timeout per question; with "mode=anyorder" it denotes the timeout per byte received from the stream or questions. "talk" is a reference to an array that contains alternating questions and answers. Questions are regular expressions and answers are literal strings. The Expect module watches the stream from the execution of the external program ("perl Makefile.PL", "perl Build.PL", "make", etc.). For "mode=deterministic", the CPAN.pm injects the corresponding answer as soon as the stream matches the regular expression. For "mode=anyorder" CPAN.pm answers a question as soon as the timeout is reached for the next byte in the input stream. In this mode you can use the "reuse" parameter to decide what will happen with a question-answer pair after it has been used. In the default case (reuse=0) it is removed from the array, avoiding being used again accidentally. If you want to answer the question "Do you really want to do that" several times, then it must be included in the array at least as often as you want this answer to be given. Setting the parameter "reuse" to 1 makes this repetition unnecessary. env [hash] Environment variables to be set during the command expect [array] You must install the "Expect" module to use "expect". CPAN.pm does not install it for you. "expect: " is a short notation for this "eexpect": eexpect: mode: deterministic timeout: 15 talk: Schema verification with "Kwalify" If you have the "Kwalify" module installed (which is part of the Bundle::CPANxxl), then all your distroprefs files are checked for syntactic correctness. Example Distroprefs Files "CPAN.pm" comes with a collection of example YAML files. Note that these are really just examples and should not be used without care because they cannot fit everybody's purpose. After all, the authors of the packages that ask questions had a need to ask, so you should watch their questions and adjust the examples to your environment and your needs. You have been warned:-) PROGRAMMER'S INTERFACE If you do not enter the shell, shell commands are available both as methods ("CPAN::Shell->install(...)") and as functions in the calling package ("install(...)"). Before calling low-level commands, it makes sense to initialize components of CPAN you need, e.g.: CPAN::HandleConfig->load; CPAN::Shell::setup_output; CPAN::Index->reload; High-level commands do such initializations automatically. There's currently only one class that has a stable interface - CPAN::Shell. All commands that are available in the CPAN shell are methods of the class CPAN::Shell. The arguments on the commandline are passed as arguments to the method. So if you take for example the shell command notest install A B C the actually executed command is CPAN::Shell->notest("install","A","B","C"); Each of the commands that produce listings of modules ("r", "autobundle", "u") also return a list of the IDs of all modules within the list. expand($type,@things) The IDs of all objects available within a program are strings that can be expanded to the corresponding real objects with the "CPAN::Shell->expand("Module",@things)" method. Expand returns a list of CPAN::Module objects according to the @things arguments given. In scalar context, it returns only the first element of the list. expandany(@things) Like expand, but returns objects of the appropriate type, i.e. CPAN::Bundle objects for bundles, CPAN::Module objects for modules, and CPAN::Distribution objects for distributions. Note: it does not expand to CPAN::Author objects. Programming Examples This enables the programmer to do operations that combine functionalities that are available in the shell. # install everything that is outdated on my disk: perl -MCPAN -e 'CPAN::Shell->install(CPAN::Shell->r)' # install my favorite programs if necessary: for $mod (qw(Net::FTP Digest::SHA Data::Dumper)) { CPAN::Shell->install($mod); } # list all modules on my disk that have no VERSION number for $mod (CPAN::Shell->expand("Module","/./")) { next unless $mod->inst_file; # MakeMaker convention for undefined $VERSION: next unless $mod->inst_version eq "undef"; print "No VERSION in ", $mod->id, "\n"; } # find out which distribution on CPAN contains a module: print CPAN::Shell->expand("Module","Apache::Constants")->cpan_file Or if you want to schedule a *cron* job to watch CPAN, you could list all modules that need updating. First a quick and dirty way: perl -e 'use CPAN; CPAN::Shell->r;' If you don't want any output should all modules be up to date, parse the output of above command for the regular expression "/modules are up to date/" and decide to mail the output only if it doesn't match. If you prefer to do it more in a programmerish style in one single process, something like this may better suit you: # list all modules on my disk that have newer versions on CPAN for $mod (CPAN::Shell->expand("Module","/./")) { next unless $mod->inst_file; next if $mod->uptodate; printf "Module %s is installed as %s, could be updated to %s from CPAN\n", $mod->id, $mod->inst_version, $mod->cpan_version; } If that gives too much output every day, you may want to watch only for three modules. You can write for $mod (CPAN::Shell->expand("Module","/Apache|LWP|CGI/")) { as the first line instead. Or you can combine some of the above tricks: # watch only for a new mod_perl module $mod = CPAN::Shell->expand("Module","mod_perl"); exit if $mod->uptodate; # new mod_perl arrived, let me know all update recommendations CPAN::Shell->r; Methods in the other Classes CPAN::Author::as_glimpse() Returns a one-line description of the author CPAN::Author::as_string() Returns a multi-line description of the author CPAN::Author::email() Returns the author's email address CPAN::Author::fullname() Returns the author's name CPAN::Author::name() An alias for fullname CPAN::Bundle::as_glimpse() Returns a one-line description of the bundle CPAN::Bundle::as_string() Returns a multi-line description of the bundle CPAN::Bundle::clean() Recursively runs the "clean" method on all items contained in the bundle. CPAN::Bundle::contains() Returns a list of objects' IDs contained in a bundle. The associated objects may be bundles, modules or distributions. CPAN::Bundle::force($method,@args) Forces CPAN to perform a task that it normally would have refused to do. Force takes as arguments a method name to be called and any number of additional arguments that should be passed to the called method. The internals of the object get the needed changes so that CPAN.pm does not refuse to take the action. The "force" is passed recursively to all contained objects. See also the section above on the "force" and the "fforce" pragma. CPAN::Bundle::get() Recursively runs the "get" method on all items contained in the bundle CPAN::Bundle::inst_file() Returns the highest installed version of the bundle in either @INC or "$CPAN::Config->{cpan_home}". Note that this is different from CPAN::Module::inst_file. CPAN::Bundle::inst_version() Like CPAN::Bundle::inst_file, but returns the $VERSION CPAN::Bundle::uptodate() Returns 1 if the bundle itself and all its members are up-to-date. CPAN::Bundle::install() Recursively runs the "install" method on all items contained in the bundle CPAN::Bundle::make() Recursively runs the "make" method on all items contained in the bundle CPAN::Bundle::readme() Recursively runs the "readme" method on all items contained in the bundle CPAN::Bundle::test() Recursively runs the "test" method on all items contained in the bundle CPAN::Distribution::as_glimpse() Returns a one-line description of the distribution CPAN::Distribution::as_string() Returns a multi-line description of the distribution CPAN::Distribution::author Returns the CPAN::Author object of the maintainer who uploaded this distribution CPAN::Distribution::pretty_id() Returns a string of the form "AUTHORID/TARBALL", where AUTHORID is the author's PAUSE ID and TARBALL is the distribution filename. CPAN::Distribution::base_id() Returns the distribution filename without any archive suffix. E.g "Foo-Bar-0.01" CPAN::Distribution::clean() Changes to the directory where the distribution has been unpacked and runs "make clean" there. CPAN::Distribution::containsmods() Returns a list of IDs of modules contained in a distribution file. Works only for distributions listed in the 02packages.details.txt.gz file. This typically means that just most recent version of a distribution is covered. CPAN::Distribution::cvs_import() Changes to the directory where the distribution has been unpacked and runs something like cvs -d $cvs_root import -m $cvs_log $cvs_dir $userid v$version there. CPAN::Distribution::dir() Returns the directory into which this distribution has been unpacked. CPAN::Distribution::force($method,@args) Forces CPAN to perform a task that it normally would have refused to do. Force takes as arguments a method name to be called and any number of additional arguments that should be passed to the called method. The internals of the object get the needed changes so that CPAN.pm does not refuse to take the action. See also the section above on the "force" and the "fforce" pragma. CPAN::Distribution::get() Downloads the distribution from CPAN and unpacks it. Does nothing if the distribution has already been downloaded and unpacked within the current session. CPAN::Distribution::install() Changes to the directory where the distribution has been unpacked and runs the external command "make install" there. If "make" has not yet been run, it will be run first. A "make test" is issued in any case and if this fails, the install is cancelled. The cancellation can be avoided by letting "force" run the "install" for you. This install method only has the power to install the distribution if there are no dependencies in the way. To install an object along with all its dependencies, use CPAN::Shell->install. Note that install() gives no meaningful return value. See uptodate(). CPAN::Distribution::isa_perl() Returns 1 if this distribution file seems to be a perl distribution. Normally this is derived from the file name only, but the index from CPAN can contain a hint to achieve a return value of true for other filenames too. CPAN::Distribution::look() Changes to the directory where the distribution has been unpacked and opens a subshell there. Exiting the subshell returns. CPAN::Distribution::make() First runs the "get" method to make sure the distribution is downloaded and unpacked. Changes to the directory where the distribution has been unpacked and runs the external commands "perl Makefile.PL" or "perl Build.PL" and "make" there. CPAN::Distribution::perldoc() Downloads the pod documentation of the file associated with a distribution (in HTML format) and runs it through the external command *lynx* specified in "$CPAN::Config->{lynx}". If *lynx* isn't available, it converts it to plain text with the external command *html2text* and runs it through the pager specified in "$CPAN::Config->{pager}". CPAN::Distribution::prefs() Returns the hash reference from the first matching YAML file that the user has deposited in the "prefs_dir/" directory. The first succeeding match wins. The files in the "prefs_dir/" are processed alphabetically, and the canonical distro name (e.g. AUTHOR/Foo-Bar-3.14.tar.gz) is matched against the regular expressions stored in the $root->{match}{distribution} attribute value. Additionally all module names contained in a distribution are matched against the regular expressions in the $root->{match}{module} attribute value. The two match values are ANDed together. Each of the two attributes are optional. CPAN::Distribution::prereq_pm() Returns the hash reference that has been announced by a distribution as the "requires" and "build_requires" elements. These can be declared either by the "META.yml" (if authoritative) or can be deposited after the run of "Build.PL" in the file "./_build/prereqs" or after the run of "Makfile.PL" written as the "PREREQ_PM" hash in a comment in the produced "Makefile". *Note*: this method only works after an attempt has been made to "make" the distribution. Returns undef otherwise. CPAN::Distribution::readme() Downloads the README file associated with a distribution and runs it through the pager specified in "$CPAN::Config->{pager}". CPAN::Distribution::reports() Downloads report data for this distribution from www.cpantesters.org and displays a subset of them. CPAN::Distribution::read_yaml() Returns the content of the META.yml of this distro as a hashref. Note: works only after an attempt has been made to "make" the distribution. Returns undef otherwise. Also returns undef if the content of META.yml is not authoritative. (The rules about what exactly makes the content authoritative are still in flux.) CPAN::Distribution::test() Changes to the directory where the distribution has been unpacked and runs "make test" there. CPAN::Distribution::uptodate() Returns 1 if all the modules contained in the distribution are up-to-date. Relies on containsmods. CPAN::Index::force_reload() Forces a reload of all indices. CPAN::Index::reload() Reloads all indices if they have not been read for more than "$CPAN::Config->{index_expire}" days. CPAN::InfoObj::dump() CPAN::Author, CPAN::Bundle, CPAN::Module, and CPAN::Distribution inherit this method. It prints the data structure associated with an object. Useful for debugging. Note: the data structure is considered internal and thus subject to change without notice. CPAN::Module::as_glimpse() Returns a one-line description of the module in four columns: The first column contains the word "Module", the second column consists of one character: an equals sign if this module is already installed and up-to-date, a less-than sign if this module is installed but can be upgraded, and a space if the module is not installed. The third column is the name of the module and the fourth column gives maintainer or distribution information. CPAN::Module::as_string() Returns a multi-line description of the module CPAN::Module::clean() Runs a clean on the distribution associated with this module. CPAN::Module::cpan_file() Returns the filename on CPAN that is associated with the module. CPAN::Module::cpan_version() Returns the latest version of this module available on CPAN. CPAN::Module::cvs_import() Runs a cvs_import on the distribution associated with this module. CPAN::Module::description() Returns a 44 character description of this module. Only available for modules listed in The Module List (CPAN/modules/00modlist.long.html or 00modlist.long.txt.gz) CPAN::Module::distribution() Returns the CPAN::Distribution object that contains the current version of this module. CPAN::Module::dslip_status() Returns a hash reference. The keys of the hash are the letters "D", "S", "L", "I", and

, for development status, support level, language, interface and public licence respectively. The data for the DSLIP status are collected by pause.perl.org when authors register their namespaces. The values of the 5 hash elements are one-character words whose meaning is described in the table below. There are also 5 hash elements "DV", "SV", "LV", "IV", and that carry a more verbose value of the 5 status variables. Where the 'DSLIP' characters have the following meanings: D - Development Stage (Note: *NO IMPLIED TIMESCALES*): i - Idea, listed to gain consensus or as a placeholder c - under construction but pre-alpha (not yet released) a/b - Alpha/Beta testing R - Released M - Mature (no rigorous definition) S - Standard, supplied with Perl 5 S - Support Level: m - Mailing-list d - Developer u - Usenet newsgroup comp.lang.perl.modules n - None known, try comp.lang.perl.modules a - abandoned; volunteers welcome to take over maintenance L - Language Used: p - Perl-only, no compiler needed, should be platform independent c - C and perl, a C compiler will be needed h - Hybrid, written in perl with optional C code, no compiler needed + - C++ and perl, a C++ compiler will be needed o - perl and another language other than C or C++ I - Interface Style f - plain Functions, no references used h - hybrid, object and function interfaces available n - no interface at all (huh?) r - some use of unblessed References or ties O - Object oriented using blessed references and/or inheritance P - Public License p - Standard-Perl: user may choose between GPL and Artistic g - GPL: GNU General Public License l - LGPL: "GNU Lesser General Public License" (previously known as "GNU Library General Public License") b - BSD: The BSD License a - Artistic license alone 2 - Artistic license 2.0 or later o - open source: approved by www.opensource.org d - allows distribution without restrictions r - restricted distribution n - no license at all CPAN::Module::force($method,@args) Forces CPAN to perform a task it would normally refuse to do. Force takes as arguments a method name to be invoked and any number of additional arguments to pass that method. The internals of the object get the needed changes so that CPAN.pm does not refuse to take the action. See also the section above on the "force" and the "fforce" pragma. CPAN::Module::get() Runs a get on the distribution associated with this module. CPAN::Module::inst_file() Returns the filename of the module found in @INC. The first file found is reported, just as perl itself stops searching @INC once it finds a module. CPAN::Module::available_file() Returns the filename of the module found in PERL5LIB or @INC. The first file found is reported. The advantage of this method over "inst_file" is that modules that have been tested but not yet installed are included because PERL5LIB keeps track of tested modules. CPAN::Module::inst_version() Returns the version number of the installed module in readable format. CPAN::Module::available_version() Returns the version number of the available module in readable format. CPAN::Module::install() Runs an "install" on the distribution associated with this module. CPAN::Module::look() Changes to the directory where the distribution associated with this module has been unpacked and opens a subshell there. Exiting the subshell returns. CPAN::Module::make() Runs a "make" on the distribution associated with this module. CPAN::Module::manpage_headline() If module is installed, peeks into the module's manpage, reads the headline, and returns it. Moreover, if the module has been downloaded within this session, does the equivalent on the downloaded module even if it hasn't been installed yet. CPAN::Module::perldoc() Runs a "perldoc" on this module. CPAN::Module::readme() Runs a "readme" on the distribution associated with this module. CPAN::Module::reports() Calls the reports() method on the associated distribution object. CPAN::Module::test() Runs a "test" on the distribution associated with this module. CPAN::Module::uptodate() Returns 1 if the module is installed and up-to-date. CPAN::Module::userid() Returns the author's ID of the module. Cache Manager Currently the cache manager only keeps track of the build directory ($CPAN::Config->{build_dir}). It is a simple FIFO mechanism that deletes complete directories below "build_dir" as soon as the size of all directories there gets bigger than $CPAN::Config->{build_cache} (in MB). The contents of this cache may be used for later re-installations that you intend to do manually, but will never be trusted by CPAN itself. This is due to the fact that the user might use these directories for building modules on different architectures. There is another directory ($CPAN::Config->{keep_source_where}) where the original distribution files are kept. This directory is not covered by the cache manager and must be controlled by the user. If you choose to have the same directory as build_dir and as keep_source_where directory, then your sources will be deleted with the same fifo mechanism. Bundles A bundle is just a perl module in the namespace Bundle:: that does not define any functions or methods. It usually only contains documentation. It starts like a perl module with a package declaration and a $VERSION variable. After that the pod section looks like any other pod with the only difference being that *one special pod section* exists starting with (verbatim): =head1 CONTENTS In this pod section each line obeys the format Module_Name [Version_String] [- optional text] The only required part is the first field, the name of a module (e.g. Foo::Bar, i.e. *not* the name of the distribution file). The rest of the line is optional. The comment part is delimited by a dash just as in the man page header. The distribution of a bundle should follow the same convention as other distributions. Bundles are treated specially in the CPAN package. If you say 'install Bundle::Tkkit' (assuming such a bundle exists), CPAN will install all the modules in the CONTENTS section of the pod. You can install your own Bundles locally by placing a conformant Bundle file somewhere into your @INC path. The autobundle() command which is available in the shell interface does that for you by including all currently installed modules in a snapshot bundle file. PREREQUISITES The CPAN program is trying to depend on as little as possible so the user can use it in hostile environment. It works better the more goodies the environment provides. For example if you try in the CPAN shell install Bundle::CPAN or install Bundle::CPANxxl you will find the shell more convenient than the bare shell before. If you have a local mirror of CPAN and can access all files with "file:" URLs, then you only need a perl later than perl5.003 to run this module. Otherwise Net::FTP is strongly recommended. LWP may be required for non-UNIX systems, or if your nearest CPAN site is associated with a URL that is not "ftp:". If you have neither Net::FTP nor LWP, there is a fallback mechanism implemented for an external ftp command or for an external lynx command. UTILITIES Finding packages and VERSION This module presumes that all packages on CPAN * declare their $VERSION variable in an easy to parse manner. This prerequisite can hardly be relaxed because it consumes far too much memory to load all packages into the running program just to determine the $VERSION variable. Currently all programs that are dealing with version use something like this perl -MExtUtils::MakeMaker -le \ 'print MM->parse_version(shift)' filename If you are author of a package and wonder if your $VERSION can be parsed, please try the above method. * come as compressed or gzipped tarfiles or as zip files and contain a "Makefile.PL" or "Build.PL" (well, we try to handle a bit more, but with little enthusiasm). Debugging Debugging this module is more than a bit complex due to interference from the software producing the indices on CPAN, the mirroring process on CPAN, packaging, configuration, synchronicity, and even (gasp!) due to bugs within the CPAN.pm module itself. For debugging the code of CPAN.pm itself in interactive mode, some debugging aid can be turned on for most packages within CPAN.pm with one of o debug package... sets debug mode for packages. o debug -package... unsets debug mode for packages. o debug all turns debugging on for all packages. o debug number which sets the debugging packages directly. Note that "o debug 0" turns debugging off. What seems a successful strategy is the combination of "reload cpan" and the debugging switches. Add a new debug statement while running in the shell and then issue a "reload cpan" and see the new debugging messages immediately without losing the current context. "o debug" without an argument lists the valid package names and the current set of packages in debugging mode. "o debug" has built-in completion support. For debugging of CPAN data there is the "dump" command which takes the same arguments as make/test/install and outputs each object's Data::Dumper dump. If an argument looks like a perl variable and contains one of "$", "@" or "%", it is eval()ed and fed to Data::Dumper directly. Floppy, Zip, Offline Mode CPAN.pm works nicely without network access, too. If you maintain machines that are not networked at all, you should consider working with "file:" URLs. You'll have to collect your modules somewhere first. So you might use CPAN.pm to put together all you need on a networked machine. Then copy the $CPAN::Config->{keep_source_where} (but not $CPAN::Config->{build_dir}) directory on a floppy. This floppy is kind of a personal CPAN. CPAN.pm on the non-networked machines works nicely with this floppy. See also below the paragraph about CD-ROM support. Basic Utilities for Programmers has_inst($module) Returns true if the module is installed. Used to load all modules into the running CPAN.pm that are considered optional. The config variable "dontload_list" intercepts the "has_inst()" call such that an optional module is not loaded despite being available. For example, the following command will prevent "YAML.pm" from being loaded: cpan> o conf dontload_list push YAML See the source for details. use_inst($module) Similary to has_inst() tries to load optional library but also dies if library is not available has_usable($module) Returns true if the module is installed and in a usable state. Only useful for a handful of modules that are used internally. See the source for details. instance($module) The constructor for all the singletons used to represent modules, distributions, authors, and bundles. If the object already exists, this method returns the object; otherwise, it calls the constructor. frontend() frontend($new_frontend) Getter/setter for frontend object. Method just allows to subclass CPAN.pm. SECURITY There's no strong security layer in CPAN.pm. CPAN.pm helps you to install foreign, unmasked, unsigned code on your machine. We compare to a checksum that comes from the net just as the distribution file itself. But we try to make it easy to add security on demand: Cryptographically signed modules Since release 1.77, CPAN.pm has been able to verify cryptographically signed module distributions using Module::Signature. The CPAN modules can be signed by their authors, thus giving more security. The simple unsigned MD5 checksums that were used before by CPAN protect mainly against accidental file corruption. You will need to have Module::Signature installed, which in turn requires that you have at least one of Crypt::OpenPGP module or the command-line gpg tool installed. You will also need to be able to connect over the Internet to the public key servers, like pgp.mit.edu, and their port 11731 (the HKP protocol). The configuration parameter check_sigs is there to turn signature checking on or off. EXPORT Most functions in package CPAN are exported by default. The reason for this is that the primary use is intended for the cpan shell or for one-liners. ENVIRONMENT When the CPAN shell enters a subshell via the look command, it sets the environment CPAN_SHELL_LEVEL to 1, or increments that variable if it is already set. When CPAN runs, it sets the environment variable PERL5_CPAN_IS_RUNNING to the ID of the running process. It also sets PERL5_CPANPLUS_IS_RUNNING to prevent runaway processes which could happen with older versions of Module::Install. When running "perl Makefile.PL", the environment variable "PERL5_CPAN_IS_EXECUTING" is set to the full path of the "Makefile.PL" that is being executed. This prevents runaway processes with newer versions of Module::Install. When the config variable ftp_passive is set, all downloads will be run with the environment variable FTP_PASSIVE set to this value. This is in general a good idea as it influences both Net::FTP and LWP based connections. The same effect can be achieved by starting the cpan shell with this environment variable set. For Net::FTP alone, one can also always set passive mode by running libnetcfg. POPULATE AN INSTALLATION WITH LOTS OF MODULES Populating a freshly installed perl with one's favorite modules is pretty easy if you maintain a private bundle definition file. To get a useful blueprint of a bundle definition file, the command autobundle can be used on the CPAN shell command line. This command writes a bundle definition file for all modules installed for the current perl interpreter. It's recommended to run this command once only, and from then on maintain the file manually under a private name, say Bundle/my_bundle.pm. With a clever bundle file you can then simply say cpan> install Bundle::my_bundle then answer a few questions and go out for coffee (possibly even in a different city). Maintaining a bundle definition file means keeping track of two things: dependencies and interactivity. CPAN.pm sometimes fails on calculating dependencies because not all modules define all MakeMaker attributes correctly, so a bundle definition file should specify prerequisites as early as possible. On the other hand, it's annoying that so many distributions need some interactive configuring. So what you can try to accomplish in your private bundle file is to have the packages that need to be configured early in the file and the gentle ones later, so you can go out for coffee after a few minutes and leave CPAN.pm to churn away unattended. WORKING WITH CPAN.pm BEHIND FIREWALLS Thanks to Graham Barr for contributing the following paragraphs about the interaction between perl, and various firewall configurations. For further information on firewalls, it is recommended to consult the documentation that comes with the *ncftp* program. If you are unable to go through the firewall with a simple Perl setup, it is likely that you can configure *ncftp* so that it works through your firewall. Three basic types of firewalls Firewalls can be categorized into three basic types. http firewall This is when the firewall machine runs a web server, and to access the outside world, you must do so via that web server. If you set environment variables like http_proxy or ftp_proxy to values beginning with http://, or in your web browser you've proxy information set, then you know you are running behind an http firewall. To access servers outside these types of firewalls with perl (even for ftp), you need LWP or HTTP::Tiny. ftp firewall This where the firewall machine runs an ftp server. This kind of firewall will only let you access ftp servers outside the firewall. This is usually done by connecting to the firewall with ftp, then entering a username like "user@outside.host.com". To access servers outside these type of firewalls with perl, you need Net::FTP. One-way visibility One-way visibility means these firewalls try to make themselves invisible to users inside the firewall. An FTP data connection is normally created by sending your IP address to the remote server and then listening for the return connection. But the remote server will not be able to connect to you because of the firewall. For these types of firewall, FTP connections need to be done in a passive mode. There are two that I can think off. SOCKS If you are using a SOCKS firewall, you will need to compile perl and link it with the SOCKS library. This is what is normally called a 'socksified' perl. With this executable you will be able to connect to servers outside the firewall as if it were not there. IP Masquerade This is when the firewall implemented in the kernel (via NAT, or networking address translation), it allows you to hide a complete network behind one IP address. With this firewall no special compiling is needed as you can access hosts directly. For accessing ftp servers behind such firewalls you usually need to set the environment variable "FTP_PASSIVE" or the config variable ftp_passive to a true value. Configuring lynx or ncftp for going through a firewall If you can go through your firewall with e.g. lynx, presumably with a command such as /usr/local/bin/lynx -pscott:tiger then you would configure CPAN.pm with the command o conf lynx "/usr/local/bin/lynx -pscott:tiger" That's all. Similarly for ncftp or ftp, you would configure something like o conf ncftp "/usr/bin/ncftp -f /home/scott/ncftplogin.cfg" Your mileage may vary... FAQ 1) I installed a new version of module X but CPAN keeps saying, I have the old version installed Probably you do have the old version installed. This can happen if a module installs itself into a different directory in the @INC path than it was previously installed. This is not really a CPAN.pm problem, you would have the same problem when installing the module manually. The easiest way to prevent this behaviour is to add the argument "UNINST=1" to the "make install" call, and that is why many people add this argument permanently by configuring o conf make_install_arg UNINST=1 2) So why is UNINST=1 not the default? Because there are people who have their precise expectations about who may install where in the @INC path and who uses which @INC array. In fine tuned environments "UNINST=1" can cause damage. 3) I want to clean up my mess, and install a new perl along with all modules I have. How do I go about it? Run the autobundle command for your old perl and optionally rename the resulting bundle file (e.g. Bundle/mybundle.pm), install the new perl with the Configure option prefix, e.g. ./Configure -Dprefix=/usr/local/perl-5.6.78.9 Install the bundle file you produced in the first step with something like cpan> install Bundle::mybundle and you're done. 4) When I install bundles or multiple modules with one command there is too much output to keep track of. You may want to configure something like o conf make_arg "| tee -ai /root/.cpan/logs/make.out" o conf make_install_arg "| tee -ai /root/.cpan/logs/make_install.out" so that STDOUT is captured in a file for later inspection. 5) I am not root, how can I install a module in a personal directory? As of CPAN 1.9463, if you do not have permission to write the default perl library directories, CPAN's configuration process will ask you whether you want to bootstrap , which makes keeping a personal perl library directory easy. Another thing you should bear in mind is that the UNINST parameter can be dangerous when you are installing into a private area because you might accidentally remove modules that other people depend on that are not using the private area. 6) How to get a package, unwrap it, and make a change before building it? Have a look at the "look" (!) command. 7) I installed a Bundle and had a couple of fails. When I retried, everything resolved nicely. Can this be fixed to work on first try? The reason for this is that CPAN does not know the dependencies of all modules when it starts out. To decide about the additional items to install, it just uses data found in the META.yml file or the generated Makefile. An undetected missing piece breaks the process. But it may well be that your Bundle installs some prerequisite later than some depending item and thus your second try is able to resolve everything. Please note, CPAN.pm does not know the dependency tree in advance and cannot sort the queue of things to install in a topologically correct order. It resolves perfectly well if all modules declare the prerequisites correctly with the PREREQ_PM attribute to MakeMaker or the "requires" stanza of Module::Build. For bundles which fail and you need to install often, it is recommended to sort the Bundle definition file manually. 8) In our intranet, we have many modules for internal use. How can I integrate these modules with CPAN.pm but without uploading the modules to CPAN? Have a look at the CPAN::Site module. 9) When I run CPAN's shell, I get an error message about things in my "/etc/inputrc" (or "~/.inputrc") file. These are readline issues and can only be fixed by studying readline configuration on your architecture and adjusting the referenced file accordingly. Please make a backup of the "/etc/inputrc" or "~/.inputrc" and edit them. Quite often harmless changes like uppercasing or lowercasing some arguments solves the problem. 10) Some authors have strange characters in their names. Internally CPAN.pm uses the UTF-8 charset. If your terminal is expecting ISO-8859-1 charset, a converter can be activated by setting term_is_latin to a true value in your config file. One way of doing so would be cpan> o conf term_is_latin 1 If other charset support is needed, please file a bug report against CPAN.pm at rt.cpan.org and describe your needs. Maybe we can extend the support or maybe UTF-8 terminals become widely available. Note: this config variable is deprecated and will be removed in a future version of CPAN.pm. It will be replaced with the conventions around the family of $LANG and $LC_* environment variables. 11) When an install fails for some reason and then I correct the error condition and retry, CPAN.pm refuses to install the module, saying "Already tried without success". Use the force pragma like so force install Foo::Bar Or you can use look Foo::Bar and then "make install" directly in the subshell. 12) How do I install a "DEVELOPER RELEASE" of a module? By default, CPAN will install the latest non-developer release of a module. If you want to install a dev release, you have to specify the partial path starting with the author id to the tarball you wish to install, like so: cpan> install KWILLIAMS/Module-Build-0.27_07.tar.gz Note that you can use the "ls" command to get this path listed. 13) How do I install a module and all its dependencies from the commandline, without being prompted for anything, despite my CPAN configuration (or lack thereof)? CPAN uses ExtUtils::MakeMaker's prompt() function to ask its questions, so if you set the PERL_MM_USE_DEFAULT environment variable, you shouldn't be asked any questions at all (assuming the modules you are installing are nice about obeying that variable as well): % PERL_MM_USE_DEFAULT=1 perl -MCPAN -e 'install My::Module' 14) How do I create a Module::Build based Build.PL derived from an ExtUtils::MakeMaker focused Makefile.PL? http://search.cpan.org/dist/Module-Build-Convert/ 15) I'm frequently irritated with the CPAN shell's inability to help me select a good mirror. CPAN can now help you select a "good" mirror, based on which ones have the lowest 'ping' round-trip times. From the shell, use the command 'o conf init urllist' and allow CPAN to automatically select mirrors for you. Beyond that help, the urllist config parameter is yours. You can add and remove sites at will. You should find out which sites have the best up-to-dateness, bandwidth, reliability, etc. and are topologically close to you. Some people prefer fast downloads, others up-to-dateness, others reliability. You decide which to try in which order. Henk P. Penning maintains a site that collects data about CPAN sites: http://mirrors.cpan.org/ Also, feel free to play with experimental features. Run o conf init randomize_urllist ftpstats_period ftpstats_size and choose your favorite parameters. After a few downloads running the "hosts" command will probably assist you in choosing the best mirror sites. 16) Why do I get asked the same questions every time I start the shell? You can make your configuration changes permanent by calling the command "o conf commit". Alternatively set the "auto_commit" variable to true by running "o conf init auto_commit" and answering the following question with yes. 17) Older versions of CPAN.pm had the original root directory of all tarballs in the build directory. Now there are always random characters appended to these directory names. Why was this done? The random characters are provided by File::Temp and ensure that each module's individual build directory is unique. This makes running CPAN.pm in concurrent processes simultaneously safe. 18) Speaking of the build directory. Do I have to clean it up myself? You have the choice to set the config variable "scan_cache" to "never". Then you must clean it up yourself. The other possible values, "atstart" and "atexit" clean up the build directory when you start (or more precisely, after the first extraction into the build directory) or exit the CPAN shell, respectively. If you never start up the CPAN shell, you probably also have to clean up the build directory yourself. COMPATIBILITY OLD PERL VERSIONS CPAN.pm is regularly tested to run under 5.005 and assorted newer versions. It is getting more and more difficult to get the minimal prerequisites working on older perls. It is close to impossible to get the whole Bundle::CPAN working there. If you're in the position to have only these old versions, be advised that CPAN is designed to work fine without the Bundle::CPAN installed. To get things going, note that GBARR/Scalar-List-Utils-1.18.tar.gz is compatible with ancient perls and that File::Temp is listed as a prerequisite but CPAN has reasonable workarounds if it is missing. CPANPLUS This module and its competitor, the CPANPLUS module, are both much cooler than the other. CPAN.pm is older. CPANPLUS was designed to be more modular, but it was never intended to be compatible with CPAN.pm. CPANMINUS In the year 2010 App::cpanminus was launched as a new approach to a cpan shell with a considerably smaller footprint. Very cool stuff. SECURITY ADVICE This software enables you to upgrade software on your computer and so is inherently dangerous because the newly installed software may contain bugs and may alter the way your computer works or even make it unusable. Please consider backing up your data before every upgrade. BUGS Please report bugs via Before submitting a bug, please make sure that the traditional method of building a Perl module package from a shell by following the installation instructions of that package still works in your environment. AUTHOR Andreas Koenig "" LICENSE This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See TRANSLATIONS Kawai,Takanori provides a Japanese translation of a very old version of this manpage at SEE ALSO Many people enter the CPAN shell by running the cpan utility program which is installed in the same directory as perl itself. So if you have this directory in your PATH variable (or some equivalent in your operating system) then typing "cpan" in a console window will work for you as well. Above that the utility provides several commandline shortcuts. melezhik (Alexey) sent me a link where he published a chef recipe to work with CPAN.pm: http://community.opscode.com/cookbooks/cpan. usr/share/doc/python3-pyyaml/README000064400000002471152534071470013035 0ustar00PyYAML - The next generation YAML parser and emitter for Python. To install, type 'python setup.py install'. By default, the setup.py script checks whether LibYAML is installed and if so, builds and installs LibYAML bindings. To skip the check and force installation of LibYAML bindings, use the option '--with-libyaml': 'python setup.py --with-libyaml install'. To disable the check and skip building and installing LibYAML bindings, use '--without-libyaml': 'python setup.py --without-libyaml install'. When LibYAML bindings are installed, you may use fast LibYAML-based parser and emitter as follows: >>> yaml.load(stream, Loader=yaml.CLoader) >>> yaml.dump(data, Dumper=yaml.CDumper) PyYAML includes a comprehensive test suite. To run the tests, type 'python setup.py test'. For more information, check the PyYAML homepage: 'http://pyyaml.org/wiki/PyYAML'. For PyYAML tutorial and reference, see: 'http://pyyaml.org/wiki/PyYAMLDocumentation'. Post your questions and opinions to the YAML-Core mailing list: 'http://lists.sourceforge.net/lists/listinfo/yaml-core'. Submit bug reports and feature requests to the PyYAML bug tracker: 'https://bitbucket.org/xi/pyyaml/issues/new'. PyYAML is written by Kirill Simonov . It is released under the MIT license. See the file LICENSE for more details. usr/share/doc/xkeyboard-config/README000064400000003133152534073300013341 0ustar00X Keyboard Extension -------------------- The X Keyboard (XKB) Extension essentially replaces the core protocol definition of a keyboard. The extension makes it possible to specify clearly and explicitly most aspects of keyboard behaviour on a per-key basis, and to track more closely the logical and physical state of a keyboard. It also includes a number of keyboard controls designed to make keyboards more accessible to people with physical impairments. There are five components that define a complete keyboard mapping: symbols, geometry, keycodes, compat, and types; these five components can be combined together using the 'rules' component of the database provided by this project, xkeyboard-config. The complete specification for the XKB Extension can be found here: http://xfree86.org/current/XKBproto.pdf xkeyboard-config ---------------- This project provides a consistent, well-structured, frequently released, open source database of keyboard configuration data. The project is targeted to XKB-based systems. For XKB configuration information, see: docs/README.config For information on how to enhance the database itself, see: docs/README.enhancing For information on how to replace an older XKB configuration database with the one provided by this project, see: docs/HOWTO.transition For guidelines to making contributions to this project, see: http://www.freedesktop.org/wiki/Software/XKeyboardConfig/Rules To submit bug reports (and patches), please use the issue system in freedesktop.org's gitlab instance: https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/issues usr/share/doc/perl-common-sense/README000064400000042120152534107270013454 0ustar00NAME common::sense - save a tree AND a kitten, use common::sense! SYNOPSIS use common::sense; # Supposed to be mostly the same, with much lower memory usage, as: # use utf8; # use strict qw(vars subs); # use feature qw(say state switch); # use feature qw(unicode_strings unicode_eval current_sub fc evalbytes); # no feature qw(array_base); # no warnings; # use warnings qw(FATAL closed threads internal debugging pack # portable prototype inplace io pipe unpack malloc # glob digit printf layer reserved taint closure # semicolon); # no warnings qw(exec newline unopened); DESCRIPTION “Nothing is more fairly distributed than common sense: no one thinks he needs more of it than he already has.” – René Descartes This module implements some sane defaults for Perl programs, as defined by two typical (or not so typical - use your common sense) specimens of Perl coders. In fact, after working out details on which warnings and strict modes to enable and make fatal, we found that we (and our code written so far, and others) fully agree on every option, even though we never used warnings before, so it seems this module indeed reflects a "common" sense among some long-time Perl coders. The basic philosophy behind the choices made in common::sense can be summarised as: "enforcing strict policies to catch as many bugs as possible, while at the same time, not limiting the expressive power available to the programmer". Two typical examples of how this philosophy is applied in practise is the handling of uninitialised and malloc warnings: *uninitialised* "undef" is a well-defined feature of perl, and enabling warnings for using it rarely catches any bugs, but considerably limits you in what you can do, so uninitialised warnings are disabled. *malloc* Freeing something twice on the C level is a serious bug, usually causing memory corruption. It often leads to side effects much later in the program and there are no advantages to not reporting this, so malloc warnings are fatal by default. Unfortunately, there is no fine-grained warning control in perl, so often whole groups of useful warnings had to be excluded because of a single useless warning (for example, perl puts an arbitrary limit on the length of text you can match with some regexes before emitting a warning, making the whole "regexp" category useless). What follows is a more thorough discussion of what this module does, and why it does it, and what the advantages (and disadvantages) of this approach are. RATIONALE use utf8 While it's not common sense to write your programs in UTF-8, it's quickly becoming the most common encoding, is the designated future default encoding for perl sources, and the most convenient encoding available (you can do really nice quoting tricks...). Experience has shown that our programs were either all pure ascii or utf-8, both of which will stay the same. There are few drawbacks to enabling UTF-8 source code by default (mainly some speed hits due to bugs in older versions of perl), so this module enables UTF-8 source code encoding by default. use strict qw(subs vars) Using "use strict" is definitely common sense, but "use strict 'refs'" definitely overshoots its usefulness. After almost two decades of Perl hacking, we decided that it does more harm than being useful. Specifically, constructs like these: @{ $var->[0] } Must be written like this (or similarly), when "use strict 'refs'" is in scope, and $var can legally be "undef": @{ $var->[0] || [] } This is annoying, and doesn't shield against obvious mistakes such as using "", so one would even have to write (at least for the time being): @{ defined $var->[0] ? $var->[0] : [] } ... which nobody with a bit of common sense would consider writing: clear code is clearly something else. Curiously enough, sometimes perl is not so strict, as this works even with "use strict" in scope: for (@{ $var->[0] }) { ... If that isn't hypocrisy! And all that from a mere program! use feature qw(say state given ...) We found it annoying that we always have to enable extra features. If something breaks because it didn't anticipate future changes, so be it. 5.10 broke almost all our XS modules and nobody cared either (or at least I know of nobody who really complained about gratuitous changes - as opposed to bugs). Few modules that are not actively maintained work with newer versions of Perl, regardless of use feature or not, so a new major perl release means changes to many modules - new keywords are just the tip of the iceberg. If your code isn't alive, it's dead, Jim - be an active maintainer. But nobody forces you to use those extra features in modules meant for older versions of perl - common::sense of course works there as well. There is also an important other mode where having additional features by default is useful: commandline hacks and internal use scripts: See "much reduced typing", below. There is one notable exception: "unicode_eval" is not enabled by default. In our opinion, "use feature" had one main effect - newer perl versions don't value backwards compatibility and the ability to write modules for multiple perl versions much, after all, you can use feature. "unicode_eval" doesn't add a new feature, it breaks an existing function. no warnings, but a lot of new errors Ah, the dreaded warnings. Even worse, the horribly dreaded "-w" switch: Even though we don't care if other people use warnings (and certainly there are useful ones), a lot of warnings simply go against the spirit of Perl. Most prominently, the warnings related to "undef". There is nothing wrong with "undef": it has well-defined semantics, it is useful, and spitting out warnings you never asked for is just evil. The result was that every one of our modules did "no warnings" in the past, to avoid somebody accidentally using and forcing his bad standards on our code. Of course, this switched off all warnings, even the useful ones. Not a good situation. Really, the "-w" switch should only enable warnings for the main program only. Funnily enough, perllexwarn explicitly mentions "-w" (and not in a favourable way, calling it outright "wrong"), but standard utilities, such as prove, or MakeMaker when running "make test", still enable them blindly. For version 2 of common::sense, we finally sat down a few hours and went through *every single warning message*, identifying - according to common sense - all the useful ones. This resulted in the rather impressive list in the SYNOPSIS. When we weren't sure, we didn't include the warning, so the list might grow in the future (we might have made a mistake, too, so the list might shrink as well). Note the presence of "FATAL" in the list: we do not think that the conditions caught by these warnings are worthy of a warning, we *insist* that they are worthy of *stopping* your program, *instantly*. They are *bugs*! Therefore we consider "common::sense" to be much stricter than "use warnings", which is good if you are into strict things (we are not, actually, but these things tend to be subjective). After deciding on the list, we ran the module against all of our code that uses "common::sense" (that is almost all of our code), and found only one occurrence where one of them caused a problem: one of elmex's (unreleased) modules contained: $fmt =~ s/([^\s\[]*)\[( [^\]]* )\]/\x0$1\x1$2\x0/xgo; We quickly agreed that indeed the code should be changed, even though it happened to do the right thing when the warning was switched off. much reduced typing Especially with version 2.0 of common::sense, the amount of boilerplate code you need to add to get *this* policy is daunting. Nobody would write this out in throwaway scripts, commandline hacks or in quick internal-use scripts. By using common::sense you get a defined set of policies (ours, but maybe yours, too, if you accept them), and they are easy to apply to your scripts: typing "use common::sense;" is even shorter than "use warnings; use strict; use feature ...". And you can immediately use the features of your installed perl, which is more difficult in code you release, but not usually an issue for internal-use code (downgrades of your production perl should be rare, right?). mucho reduced memory usage Just using all those pragmas mentioned in the SYNOPSIS together wastes *776 kilobytes* of precious memory in my perl, for *every single perl process using our code*, which on our machines, is a lot. In comparison, this module only uses *four* kilobytes (I even had to write it out so it looks like more) of memory on the same platform. The money/time/effort/electricity invested in these gigabytes (probably petabytes globally!) of wasted memory could easily save 42 trees, and a kitten! Unfortunately, until everybody applies more common sense, there will still often be modules that pull in the monster pragmas. But one can hope... THERE IS NO 'no common::sense'!!!! !!!! !! This module doesn't offer an unimport. First of all, it wastes even more memory, second, and more importantly, who with even a bit of common sense would want no common sense? STABILITY AND FUTURE VERSIONS Future versions might change just about everything in this module. We might test our modules and upload new ones working with newer versions of this module, and leave you standing in the rain because we didn't tell you. In fact, we did so when switching from 1.0 to 2.0, which enabled gobs of warnings, and made them FATAL on top. Maybe we will load some nifty modules that try to emulate "say" or so with perls older than 5.10 (this module, of course, should work with older perl versions - supporting 5.8 for example is just common sense at this time. Maybe not in the future, but of course you can trust our common sense to be consistent with, uhm, our opinion). WHAT OTHER PEOPLE HAD TO SAY ABOUT THIS MODULE apeiron "... wow" "I hope common::sense is a joke." crab "i wonder how it would be if joerg schilling wrote perl modules." Adam Kennedy "Very interesting, efficient, and potentially something I'd use all the time." [...] "So no common::sense for me, alas." H.Merijn Brand "Just one more reason to drop JSON::XS from my distribution list" Pista Palo "Something in short supply these days..." Steffen Schwigon "This module is quite for sure *not* just a repetition of all the other 'use strict, use warnings'-approaches, and it's also not the opposite. [...] And for its chosen middle-way it's also not the worst name ever. And everything is documented." BKB "[Deleted - thanks to Steffen Schwigon for pointing out this review was in error.]" Somni "the arrogance of the guy" "I swear he tacked somenoe else's name onto the module just so he could use the royal 'we' in the documentation" Anonymous Monk "You just gotta love this thing, its got META.json!!!" dngor "Heh. '""' The quotes are semantic distancing from that e-mail address." Jerad Pierce "Awful name (not a proper pragma), and the SYNOPSIS doesn't tell you anything either. Nor is it clear what features have to do with "common sense" or discipline." acme "THERE IS NO 'no common::sense'!!!! !!!! !!" apeiron (meta-comment about us commenting^Wquoting his comment) "How about quoting this: get a clue, you fucktarded amoeba." quanth "common sense is beautiful, json::xs is fast, Anyevent, EV are fast and furious. I love mlehmannware ;)" apeiron "... it's mlehmann's view of what common sense is. His view of common sense is certainly uncommon, insofar as anyone with a clue disagrees with him." apeiron (another meta-comment) "apeiron wonders if his little informant is here to steal more quotes" ew73 "... I never got past the SYNOPSIS before calling it shit." [...] How come no one ever quotes me. :(" chip (not willing to explain his cryptic questions about links in Changes files) "I'm willing to ask the question I've asked. I'm not willing to go through the whole dance you apparently have choreographed. Either answer the completely obvious question, or tell me to fuck off again." FREQUENTLY ASKED QUESTIONS Or frequently-come-up confusions. Is this module meant to be serious? Yes, we would have put it under the "Acme::" namespace otherwise. But the manpage is written in a funny/stupid/... way? This was meant to make it clear that our common sense is a subjective thing and other people can use their own notions, taking the steam out of anybody who might be offended (as some people are always offended no matter what you do). This was a failure. But we hope the manpage still is somewhat entertaining even though it explains boring rationale. Why do you impose your conventions on my code? For some reason people keep thinking that "common::sense" imposes process-wide limits, even though the SYNOPSIS makes it clear that it works like other similar modules - i.e. only within the scope that "use"s them. So, no, we don't - nobody is forced to use this module, and using a module that relies on common::sense does not impose anything on you. Why do you think only your notion of common::sense is valid? Well, we don't, and have clearly written this in the documentation to every single release. We were just faster than anybody else w.r.t. to grabbing the namespace. But everybody knows that you have to use strict and use warnings, why do you disable them? Well, we don't do this either - we selectively disagree with the usefulness of some warnings over others. This module is aimed at experienced Perl programmers, not people migrating from other languages who might be surprised about stuff such as "undef". On the other hand, this does not exclude the usefulness of this module for total newbies, due to its strictness in enforcing policy, while at the same time not limiting the expressive power of perl. This module is considerably *more* strict than the canonical "use strict; use warnings", as it makes all its warnings fatal in nature, so you can not get away with as many things as with the canonical approach. This was not implemented in version 1.0 because of the daunting number of warning categories and the difficulty in getting exactly the set of warnings you wish (i.e. look at the SYNOPSIS in how complicated it is to get a specific set of warnings - it is not reasonable to put this into every module, the maintenance effort would be enormous). But many modules "use strict" or "use warnings", so the memory savings do not apply? I suddenly feel sad... But yes, that's true. Fortunately "common::sense" still uses only a miniscule amount of RAM. But it adds another dependency to your modules! It's a fact, yeah. But it's trivial to install, most popular modules have many more dependencies. And we consider dependencies a good thing - it leads to better APIs, more thought about interworking of modules and so on. Why do you use JSON and not YAML for your META.yml? This is not true - YAML supports a large subset of JSON, and this subset is what META.yml is written in, so it would be correct to say "the META.yml is written in a common subset of YAML and JSON". The META.yml follows the YAML, JSON and META.yml specifications, and is correctly parsed by CPAN, so if you have trouble with it, the problem is likely on your side. But! But! Yeah, we know. AUTHOR Marc Lehmann http://home.schmorp.de/ Robin Redeker, "". usr/lib64/python2.7/Demo/tkinter/matt/README000064400000001001152534121050014224 0ustar00This directory contains some ad-hoc examples of Tkinter widget creation. The files named *-simple.py are the ones to start with if you're looking for a bare-bones usage of a widget. The other files are meant to show common usage patters that are a tad more involved. If you have a suggestion for an example program, please send mail to conway@virginia.edu and I'll include it. matt TODO ------- The X selection Dialog Boxes More canvas examples Message widgets Text Editors Scrollbars Listboxes usr/share/doc/util-linux/README000064400000010615152534136530012230 0ustar00 util-linux util-linux is a random collection of Linux utilities Note: for the years 2006-2010 this project was named "util-linux-ng". MAILING LIST: E-MAIL: util-linux@vger.kernel.org URL: http://vger.kernel.org/vger-lists.html#util-linux The mailing list will reject email messages that contain: - more than 100K characters - html - spam phrases/keywords See: http://vger.kernel.org/majordomo-info.html#taboo IRC CHANNEL: #util-linux at freenode.net: irc://chat.freenode.net/util-linux The IRC channel and Mailing list are for developers and project maintainers. For end users it is recommended to utilize the distribution's support system. BUG REPORTING: E-MAIL: util-linux@vger.kernel.org Web: https://github.com/karelzak/util-linux/issues This project has no resources to provide support for distribution specific issues. For end users it is recommended to utilize the distribution's support system. NLS (PO TRANSLATIONS): PO files are maintained by: http://translationproject.org/domain/util-linux.html VERSION SCHEMA: Standard releases: .[.] major = fatal and deep changes minor = typical release with new features maint = maintenance releases; bug fixes only Development releases: .-rc SOURCE CODE: Download archive: https://www.kernel.org/pub/linux/utils/util-linux/ SCM (Source Code Management) Repository: Primary repository: git clone git://git.kernel.org/pub/scm/utils/util-linux/util-linux.git Backup repository: git clone git://github.com/karelzak/util-linux.git Web interfaces: http://git.kernel.org/cgit/utils/util-linux/util-linux.git https://github.com/karelzak/util-linux Note: the GitHub repository may contain temporary development branches too. The kernel.org repository contains master (current development) and stable/* (maintenance) branches only. All master or stable/* changes are always pushed to both repositories at the same time. Repository Branches: 'git branch -a' master branch - current development - the source for stable releases when deemed ready. - day-to-day status is: 'it works for me'. This means that its normal state is useful but not well tested. - long-term development or invasive changes in active development are forked into separate 'topic' branches from the tip of 'master'. stable/ branches - public releases - branch name: stable/v.. - created from the 'master' branch after two or more release candidates and the final public release. This means that the stable releases are committed, tagged, and reachable in 'master'. - these branches then become forked development branches. This means that any changes made to them diverge from the 'master' branch. - maintenance releases are part of, and belong to, their respective stable branch. As such, they are tags(..) and not branches of their own. They are not part of, visible in, or have anything to do with the 'master' development branch. In git terminology: maintenance releases are not reachable from 'master'. - when initially cloned (as with the 'git clone' command given above) these branches are created as 'remote tracking branches' and are only visible by using the -a or -r options to 'git branch'. To create a local branch use the desired tag with this command: 'git checkout -b v2.29.2 v2.29.2' Tags: 'git tag' - a new tag object is created for every release. - tag name: v. - all tags are signed by the maintainer's PGP key. Known Bugs: - don't use tag v2.13.1 (created and published by mistake), use v2.13.1-REAL instead. WORKFLOW EXAMPLE: 1) development (branch: ) 2) master release (tags: v2.29-rc1, v2.29-rc2, v2.29, branch: ) 3) development (work on v2.30, branch: ) 4) fork -- create a new branch based on tag v2.29 4a) new patches or cherry-pick patches from (branch: ) 4b) stable release (tag: v2.29.1, branch: ) 4c) more patches; another release (tag: v2.29.2, branch: ) 5) master release v2.30 (branch: ) ... where 3) and 4) happen simultaneously. usr/share/doc/libuser/README000064400000001070152534223620011553 0ustar00About ===== The libuser library implements a standardized interface for manipulating and administering user and group accounts. The library uses pluggable back-ends to interface to its data sources. Sample applications modeled after those included with the shadow password suite are included. New releases will be available at https://fedorahosted.org/libuser/ . Bugs ==== Please consider reporting the bug to your distribution's bug tracking system. Otherwise, report bugs at https://fedorahosted.org/libuser/ . Bug reports with patches are especially welcome. opt/alt/openldap11/share/doc/alt-openldap11/README000064400000006647152534223650015367 0ustar00OpenLDAP 2.4 README For a description of what this distribution contains, see the ANNOUNCEMENT file in this directory. For a description of changes from previous releases, see the CHANGES file in this directory. This is 2.4 release, it includes significant changes from prior releases. REQUIRED SOFTWARE Building OpenLDAP Software requires a number of software packages to be preinstalled. Additional information regarding prerequisite software can be found in the OpenLDAP Administrator's Guide. Base system (libraries and tools): Standard C compiler (required) Cyrus SASL 2.1.21+ (recommended) OpenSSL 0.9.7+ (recommended) Reentrant POSIX REGEX software (required) SLAPD: BDB and HDB backends require Oracle Berkeley DB 4.4 - 4.8, or 5.0 - 5.1. It is highly recommended to apply the patches from Oracle for a given release. CLIENTS/CONTRIB ware: Depends on package. See per package README. MAKING AND INSTALLING THE DISTRIBUTION Please see the INSTALL file for basic instructions. More detailed instructions can be found in the OpenLDAP Administrator's Guide (see DOCUMENTATION section). DOCUMENTATION The OpenLDAP Administrator's Guide is available in the guide.html file in the doc/guide/admin directory. The guide and a number of other documents are available at . The distribution also includes manual pages for most programs and library APIs. See ldap(3) for details. The OpenLDAP website is available and contains the latest LDAP news, releases announcements, pointers to other LDAP resources, etc.. It is located at . The OpenLDAP Software FAQ is available at . SUPPORT / FEEDBACK / PROBLEM REPORTS / DISCUSSIONS OpenLDAP Software is user supported. If you have problems, please review the OpenLDAP FAQ and archives of the OpenLDAP-software and OpenLDAP-bugs mailing lists . If you cannot find the answer, please enquire on the OpenLDAP-software list. Issues, such as bug reports, should be reported using our Issue Tracking System . Do not use this system for software enquiries. Please direct these to an appropriate mailing list. CONTRIBUTING See for information regarding how to contribute code or documentation to the OpenLDAP Project for inclusion in OpenLDAP Software. While you are encouraged to coordinate and discuss the development activities on the mailing list prior to submission, it is noted that contributions must be submitted using the Issue Tracking System to be considered. --- $OpenLDAP$ This work is part of OpenLDAP Software . Copyright 1998-2021 The OpenLDAP Foundation. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted only as authorized by the OpenLDAP Public License. A copy of this license is available in the file LICENSE in the top-level directory of the distribution or, alternatively, at . OpenLDAP is a registered trademark of the OpenLDAP Foundation. usr/lib/dracut/modules.d/98syslog/README000064400000001501152534232340013660 0ustar00Syslog support for dracut This module provides syslog functionality in the initrd. This is especially interesting when complex configuration being used to provide access to the device the rootfs resides on. When this module is installed into the ramfs it is triggered by the udev event from the nic being setup (online). Then if syslog is configured it is started and will forward all kernel messages to the given syslog server. The syslog implementation is detected automatically by finding the appropriate binary with the following order: rsyslogd syslogd syslog-ng Then if detected the syslog.conf is generated and syslog is started. Bootparameters: syslogserver=ip Where to syslog to sysloglevel=level What level has to be logged syslogtype=rsyslog|syslog|syslogng Don't auto detect syslog but set it usr/share/doc/perl-IPC-SysV/README000064400000001172152534325740012374 0ustar00Version 2.x, Copyright (C) 2007-2013, Marcus Holland-Moritz. Version 1.x, Copyright (c) 1997, Graham Barr. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The SysV-IPC contains three packages IPC::Semaphore - Provides an object interface to using SysV IPC semaphores IPC::Msg - Provides an object interface to using SysV IPC messages IPC::SysV - Provides the constants required to use the system SysV IPC calls. Currently there is not object support for SysV shared memory, but SysV::SharedMem is a project for the future. Share and enjoy! usr/share/doc/perl-experimental/README000064400000000563152534334240013552 0ustar00 This archive contains the distribution experimental, version 0.019: Experimental features made easy This software is copyright (c) 2013 by Leon Timmermans. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. This README file was generated by Dist::Zilla::Plugin::Readme v6.010. usr/share/doc/dmidecode/README000064400000011052152534417240012027 0ustar00** INTRODUCTION ** Dmidecode reports information about your system's hardware as described in your system BIOS according to the SMBIOS/DMI standard. This information typically includes system manufacturer, model name, serial number, BIOS version, asset tag as well as a lot of other details of varying level of interest and reliability depending on the manufacturer. This will often include usage status for the CPU sockets, expansion slots (e.g. AGP, PCI, ISA) and memory module slots, and the list of I/O ports (e.g. serial, parallel, USB). DMI data can be used to enable or disable specific portions of kernel code depending on the specific hardware. Thus, one use of dmidecode is for kernel developers to detect system "signatures" and add them to the kernel source code when needed. Beware that DMI data have proven to be too unreliable to be blindly trusted. Dmidecode does not scan your hardware, it only reports what the BIOS told it to. ** INSTALLATION ** The home web page for dmidecode is hosted on Savannah: http://www.nongnu.org/dmidecode/ You will find the latest version (including CVS) there, as well as fresh news and other interesting material, such as a list of related projects and articles. This program was first written for Linux, and has since been reported to work on FreeBSD, NetBSD, OpenBSD, BeOS and Solaris as well. There's no configure script, so simply run "make" to build dmidecode, and "make install" to install it. You also can use "make uninstall" to remove all the files you installed. By default, files are installed in /usr/local but you can change this behavior by editing the Makefile file and setting prefix to wherever you want. You may change the C compiler and the compilation flags as well. Optionally, you can run "make strip" prior to "make install" if you want smaller binaries. However, be aware that this will prevent any further attempt to debug the programs. Two parameters can be set in the Makefile file to make dmidecode work on non-i386 systems. They should be used if your system uses the big endian byte ordering (Motorola) or doesn't support unaligned memory accesses, respectively. For example, compiling for a SPARC processor would require both (but I am not aware of SPARC-based systems implementing SMBIOS). Compiling for an IA64 processor requires the memory alignment workaround, and it is enabled automatically. ** DOCUMENTATION ** Each tool has a manual page, found in the "man" subdirectory. Manual pages are installed by "make install". See these manual pages for command line interface details and tool specific information. For an history of the changes made to dmidecode, see the NEWS file. If you need help, your best chances are to visit the web page (see the INSTALLATION section above) or to get in touch with the developers directly. Have a look at the AUTHORS file and contact one of the maintainers. If you want to help with the development of dmidecode, please consider joining the dmidecode-devel discussion list: http://lists.nongnu.org/mailman/listinfo/dmidecode-devel ** COMMON PROBLEMS ** IA-64 Non-Linux systems are not yet supported. MMAP Note that mmap() is now used by default wherever possible, since this seems to solve a number of problems. This default behavior can be changed in config.h. Just to make sure this is clear, mmap() is not used for performance reasons but to increase the number of systems on which dmidecode can be successfully run. CYGWIN Dmidecode used to work under Cygwin. However the /dev/mem interface was removed at some point in time so it no longer works. ** MISCELLANEOUS TOOLS ** Three other tools come along with dmidecode: biosdecode, ownership and vpddecode. These tools are only useful on systems with a BIOS, so they are not built on IA-64 by default. BIOSDECODE This one prints all BIOS related information it can find in /dev/mem. It used to be part of dmidecode itself, but as dmidecode was growing, we felt that the non-DMI part had to be moved to a separate tool. OWNERSHIP This tool was written on a request by Luc Van de Velde for use with Novell tools in his company. It retrieves the "ownership tag" that can be set on most Compaq computers. Since it uses the same mechanisms dmidecode and biosdecode use, and could be of some use for other people as well, we decided to make it part of the project. VPDDECODE This tool prints the contents of the "vital product data" structure as found in most IBM and Lenovo computers. It used to have a lookup table for the machine name, but it was unreliable and hard to maintain so it was ultimately dropped. It has a command line interface. usr/lib64/python2.7/Demo/threads/README000064400000000670152534441470013257 0ustar00This directory contains some demonstrations of the thread module. These are mostly "proof of concept" type applications: Generator.py Generator class implemented with threads. sync.py Condition variables primitives by Tim Peters. telnet.py Version of ../sockets/telnet.py using threads. Coroutine.py Coroutines using threads, by Tim Peters (22 May 94) fcmp.py Example of above, by Tim squasher.py Another example of above, also by Tim usr/share/licenses/zlib/README000064400000012103152534462100012103 0ustar00ZLIB DATA COMPRESSION LIBRARY zlib 1.2.11 is a general purpose data compression library. All the code is thread safe. The data format used by the zlib library is described by RFCs (Request for Comments) 1950 to 1952 in the files http://tools.ietf.org/html/rfc1950 (zlib format), rfc1951 (deflate format) and rfc1952 (gzip format). All functions of the compression library are documented in the file zlib.h (volunteer to write man pages welcome, contact zlib@gzip.org). A usage example of the library is given in the file test/example.c which also tests that the library is working correctly. Another example is given in the file test/minigzip.c. The compression library itself is composed of all source files in the root directory. To compile all files and run the test program, follow the instructions given at the top of Makefile.in. In short "./configure; make test", and if that goes well, "make install" should work for most flavors of Unix. For Windows, use one of the special makefiles in win32/ or contrib/vstudio/ . For VMS, use make_vms.com. Questions about zlib should be sent to , or to Gilles Vollant for the Windows DLL version. The zlib home page is http://zlib.net/ . Before reporting a problem, please check this site to verify that you have the latest version of zlib; otherwise get the latest version and check whether the problem still exists or not. PLEASE read the zlib FAQ http://zlib.net/zlib_faq.html before asking for help. Mark Nelson wrote an article about zlib for the Jan. 1997 issue of Dr. Dobb's Journal; a copy of the article is available at http://marknelson.us/1997/01/01/zlib-engine/ . The changes made in version 1.2.11 are documented in the file ChangeLog. Unsupported third party contributions are provided in directory contrib/ . zlib is available in Java using the java.util.zip package, documented at http://java.sun.com/developer/technicalArticles/Programming/compression/ . A Perl interface to zlib written by Paul Marquess is available at CPAN (Comprehensive Perl Archive Network) sites, including http://search.cpan.org/~pmqs/IO-Compress-Zlib/ . A Python interface to zlib written by A.M. Kuchling is available in Python 1.5 and later versions, see http://docs.python.org/library/zlib.html . zlib is built into tcl: http://wiki.tcl.tk/4610 . An experimental package to read and write files in .zip format, written on top of zlib by Gilles Vollant , is available in the contrib/minizip directory of zlib. Notes for some targets: - For Windows DLL versions, please see win32/DLL_FAQ.txt - For 64-bit Irix, deflate.c must be compiled without any optimization. With -O, one libpng test fails. The test works in 32 bit mode (with the -n32 compiler flag). The compiler bug has been reported to SGI. - zlib doesn't work with gcc 2.6.3 on a DEC 3000/300LX under OSF/1 2.1 it works when compiled with cc. - On Digital Unix 4.0D (formely OSF/1) on AlphaServer, the cc option -std1 is necessary to get gzprintf working correctly. This is done by configure. - zlib doesn't work on HP-UX 9.05 with some versions of /bin/cc. It works with other compilers. Use "make test" to check your compiler. - gzdopen is not supported on RISCOS or BEOS. - For PalmOs, see http://palmzlib.sourceforge.net/ Acknowledgments: The deflate format used by zlib was defined by Phil Katz. The deflate and zlib specifications were written by L. Peter Deutsch. Thanks to all the people who reported problems and suggested various improvements in zlib; they are too numerous to cite here. Copyright notice: (C) 1995-2017 Jean-loup Gailly and Mark Adler This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. Jean-loup Gailly Mark Adler jloup@gzip.org madler@alumni.caltech.edu If you use the zlib library in a product, we would appreciate *not* receiving lengthy legal documents to sign. The sources are provided for free but without warranty of any kind. The library has been entirely written by Jean-loup Gailly and Mark Adler; it does not include third-party code. If you redistribute modified sources, we would appreciate that you include in the file ChangeLog history information documenting your changes. Please read the FAQ for more information on the distribution of modified source versions. usr/share/doc/perl-libs/README000064400000013055152534462440012012 0ustar00Perl is Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 by Larry Wall and others. All rights reserved. ABOUT PERL ========== Perl is a general-purpose programming language originally developed for text manipulation and now used for a wide range of tasks including system administration, web development, network programming, GUI development, and more. The language is intended to be practical (easy to use, efficient, complete) rather than beautiful (tiny, elegant, minimal). Its major features are that it's easy to use, supports both procedural and object-oriented (OO) programming, has powerful built-in support for text processing, and has one of the world's most impressive collections of third-party modules. For an introduction to the language's features, see pod/perlintro.pod. For a discussion of the important changes in this release, see pod/perldelta.pod. There are also many Perl books available, covering a wide variety of topics, from various publishers. See pod/perlbook.pod for more information. INSTALLATION ============ If you're using a relatively modern operating system and want to install this version of Perl locally, run the following commands: ./Configure -des -Dprefix=$HOME/localperl make test make install This will configure and compile perl for your platform, run the regression tests, and install perl in a subdirectory "localperl" of your home directory. If you run into any trouble whatsoever or you need to install a customized version of Perl, you should read the detailed instructions in the "INSTALL" file that came with this distribution. Additionally, there are a number of "README" files with hints and tips about building and using Perl on a wide variety of platforms, some more common than others. Once you have Perl installed, a wealth of documentation is available to you through the 'perldoc' tool. To get started, run this command: perldoc perl IF YOU RUN INTO TROUBLE ======================= Perl is a large and complex system that's used for everything from knitting to rocket science. If you run into trouble, it's quite likely that someone else has already solved the problem you're facing. Once you've exhausted the documentation, please report bugs to us using the 'perlbug' tool. For more information about perlbug, either type 'perldoc perlbug' or just 'perlbug' on a line by itself. While it was current when we made it available, Perl is constantly evolving and there may be a more recent version that fixes bugs you've run into or adds new features that you might find useful. You can always find the latest version of perl on a CPAN (Comprehensive Perl Archive Network) site near you at http://www.cpan.org/src/ If you want to submit a simple patch to the perl source, see the "SUPER QUICK PATCH GUIDE" in pod/perlhack.pod. Just a personal note: I want you to know that I create nice things like this because it pleases the Author of my story. If this bothers you, then your notion of Authorship needs some revision. But you can use perl anyway. :-) The author. LICENSING ========= This program is free software; you can redistribute it and/or modify it under the terms of either: a) the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version, or b) the "Artistic License" which comes with this Kit. 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 either the GNU General Public License or the Artistic License for more details. You should have received a copy of the Artistic License with this Kit, in the file named "Artistic". If not, I'll be glad to provide one. You should also have received a copy of the GNU General Public License along with this program in the file named "Copying". If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA or visit their web page on the internet at http://www.gnu.org/copyleft/gpl.html. For those of you that choose to use the GNU General Public License, my interpretation of the GNU General Public License is that no Perl script falls under the terms of the GPL unless you explicitly put said script under the terms of the GPL yourself. Furthermore, any object code linked with perl does not automatically fall under the terms of the GPL, provided such object code only adds definitions of subroutines and variables, and does not otherwise impair the resulting interpreter from executing any standard Perl script. I consider linking in C subroutines in this manner to be the moral equivalent of defining subroutines in the Perl language itself. You may sell such an object file as proprietary provided that you provide or offer to provide the Perl source, as specified by the GNU General Public License. (This is merely an alternate way of specifying input to the program.) You may also sell a binary produced by the dumping of a running Perl script that belongs to you, provided that you provide or offer to provide the Perl source as specified by the GPL. (The fact that a Perl interpreter and your code are in the same binary file is, in this case, a form of mere aggregation.) This is my interpretation of the GPL. If you still have concerns or difficulties understanding my intent, feel free to contact me. Of course, the Artistic License spells all this out for your protection, so you may prefer to use that. usr/share/doc/perl-File-Path/README000064400000002401152534463020012616 0ustar00NAME File::Path - Create or remove directory trees INSTALLATION perl Makefile.PL make make test make install PREREQUISITES All prerequisites are found in the Perl 5 core distribution. To configure: ExtUtils::MakeMaker To build: Cwd File::Basename Exporter File::Spec To test: Carp File::Spec::Functions Config SelectSaver Cwd Test::More Errno Win32 # Windows only Fcntl BUGS The File-Path bug tracker is located at: File reports by sending email to: bug-File-Path@rt.cpan.org Include test programs or patches as email attachments. AUTHORS Prior authors and maintainers: Tim Bunce, Charles Bailey, and David Landgren (david at landgren dot net). Current maintainers are Richard Elberger (riche at cpan dot org) and James E Keenan (jkeenan at cpan dot org). COPYRIGHT This module is copyright (C) Charles Bailey, Tim Bunce, David Landgren, James Keenan, and Richard Elberger 1995-2017. All rights reserved. LICENSE This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. usr/share/doc/perl-podlators/README000064400000015612152534471470013074 0ustar00 podlators 4.11 (format POD source into various output formats) Maintained by Russ Allbery Copyright 1999-2010, 2012-2018 Russ Allbery . This software is distributed under the same terms as Perl itself. Please see the section LICENSE below for more information. BLURB podlators contains Pod::Man and Pod::Text modules which convert POD input to *roff source output, suitable for man pages, or plain text. It also includes several subclasses of Pod::Text for formatted output to terminals with various capabilities. It is the source package for the Pod::Man and Pod::Text modules included with Perl. DESCRIPTION POD is the Plain Old Documentation format, the documentation language used for all of Perl's documentation. I learned it to document Perl modules, started using it for Perl scripts as well, and discovered it was the most convenient way I've found to write program documentation. It's extremely simple, well-designed for writing Unix manual pages (and I'm a traditionalist who thinks that any program should have a regular manual page), and easily readable in the raw format by humans. The translators into text and nroff (for manual pages) included in the Perl distribution had various bugs, however, and used their own ad hoc parsers, so when I started running into those bugs and when a new generic parser (Pod::Parser) was written, I decided to rewrite the two translators that I use the most and fix the bugs that were bothering me. This package is the result. podlators contains two main modules, Pod::Man and Pod::Text. The former converts POD into nroff/troff source and the latter into plain text (with various options controlling some of the formatting). There are also several subclasses of Pod::Text for generating slightly formatted text using color or other terminal control escapes, and a general utility module, Pod::ParseLink, for parsing the POD L<> formatting sequences. Also included in this package are the pod2text and pod2man driver scripts. Both Pod::Text and Pod::Man provide a variety of options for fine-tuning their output. Pod::Man also tries to massage input text where appropriate to produce better output when run through nroff or troff, such as distinguishing between different types of hyphens and using slightly smaller case for acronyms. As of Perl 5.6.0, my implementation was included in Perl core, and each release of Perl will have the at-the-time most current version of podlators included. You therefore only need to install this package yourself if you have an old version of Perl or need a newer version than came with Perl (to get some bug fixes, for example). REQUIREMENTS Perl 5.6.0 or later and Module::Build are required to build this module. Both Pod::Man and Pod::Text are built on Pod::Simple, which handles the basic POD parsing and character set conversion. Pod::Simple 3.06 or later is required (and Pod::Simple 3.07 is recommended). It is available from CPAN and part of Perl core as of 5.10.0. Encode is also required (included in Perl core since 5.8.0). The troff/nroff generated by Pod::Man should be compatible with any troff or nroff implementation with the -man macro set. It is primarily tested by me under GNU groff, but Perl users send bug reports for a wide variety of implementations and Pod::Man is used to generate all of Perl's own manual pages, so most of the bugs have been weeded out. The test suite requires Test::More (part of Perl since 5.6.2). The following additional Perl modules will be used by the test suite if present: * Test::MinimumVersion * Test::Pod * Test::Spelling * Test::Strict * Test::Synopsis All are available on CPAN. Those tests will be skipped if the modules are not available. BUILDING AND INSTALLATION podlators uses ExtUtils::MakeMaker and can be installed using the same process as any other ExtUtils::MakeMaker module: perl Makefile.PL make make test make install You'll probably need to do the last as root unless you're installing into a local Perl module tree in your home directory. To enable tests that don't detect functionality problems but are used to sanity-check the release, set the environment variable RELEASE_TESTING to a true value. To enable tests that may be sensitive to the local environment or that produce a lot of false positives without uncovering many problems, set the environment variable AUTHOR_TESTING to a true value. SUPPORT The podlators web page at: https://www.eyrie.org/~eagle/software/podlators/ will always have the current version of this package, the current documentation, and pointers to any additional resources. For bug tracking, use the CPAN bug tracker at: https://rt.cpan.org/Dist/Display.html?Name=podlators However, please be aware that I tend to be extremely busy and work projects often take priority. I'll save your report and get to it as soon as I can, but it may take me a couple of months. SOURCE REPOSITORY podlators is maintained using Git. You can access the current source on GitHub at: https://github.com/rra/podlators or by cloning the repository at: https://git.eyrie.org/git/perl/podlators.git or view the repository via the web at: https://git.eyrie.org/?p=perl/podlators.git The eyrie.org repository is the canonical one, maintained by the author, but using GitHub is probably more convenient for most purposes. Pull requests are gratefully reviewed and normally accepted. It's probably better to use the CPAN bug tracker than GitHub issues, though, to keep all Perl module issues in the same place. LICENSE The podlators package as a whole is covered by the following copyright statement and license: Copyright 1999-2010, 2012-2018 Russ Allbery This program is free software; you may redistribute it and/or modify it under the same terms as Perl itself. This means that you may choose between the two licenses that Perl is released under: the GNU GPL and the Artistic License. Please see your Perl distribution for the details and copies of the licenses. Some files in this distribution are individually released under different licenses, all of which are compatible with the above general package license but which may require preservation of additional notices. All required notices, and detailed information about the licensing of each file, are recorded in the LICENSE file. Files covered by a license with an assigned SPDX License Identifier include SPDX-License-Identifier tags to enable automated processing of license information. See https://spdx.org/licenses/ for more information. For any copyright range specified by files in this package as YYYY-ZZZZ, the range specifies every single year in that closed interval. usr/share/doc/libXfixes/README000064400000001540152534472540012054 0ustar00 Xfixes XFIXES Extension Version 2.0.1 2002-10-4 This package contains header files and documentation for the XFIXES extension. Library and server implementations are separate. Keith Packard keithp@keithp.com All questions regarding this software should be directed at the Xorg mailing list: http://lists.freedesktop.org/mailman/listinfo/xorg Please submit bug reports to the Xorg bugzilla: https://bugs.freedesktop.org/enter_bug.cgi?product=xorg The master development code repository can be found at: git://anongit.freedesktop.org/git/xorg/lib/libXfixes http://cgit.freedesktop.org/xorg/lib/libXfixes For patch submission instructions, see: http://www.x.org/wiki/Development/Documentation/SubmittingPatches For more information on the git code manager, see: http://wiki.x.org/wiki/GitPage usr/share/doc/libidn-devel/examples/README000064400000002176152534561150014275 0ustar00Libidn examples/README -- Information about files in examples/ directory. Copyright (C) 2003-2016 Simon Josefsson See the end for copying conditions. This directory contains examples on how to use Libidn. * Example 1:: Example using stringprep. This example demonstrates how the stringprep functions are used. * Example 2:: Example using punycode. This example demonstrates how the punycode functions are used. * Example 3:: Example using IDNA ToASCII. This example demonstrates how the library is used to convert internationalized domain names into ASCII compatible names. * Example 4:: Example using IDNA ToUnicode. This example demonstrates how the library is used to convert ASCII compatible names to internationalized domain names. * Example 5:: Example using TLD checking. This example demonstrates how the library is used to check a string for invalid characters within a specific TLD. ---------------------------------------------------------------------- Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. usr/share/doc/coreutils-common/README000064400000025023152534572550013422 0ustar00These are the GNU core utilities. This package is the union of the GNU fileutils, sh-utils, and textutils packages. Most of these programs have significant advantages over their Unix counterparts, such as greater speed, additional options, and fewer arbitrary limits. The programs that can be built with this package are: [ arch b2sum base32 base64 basename cat chcon chgrp chmod chown chroot cksum comm coreutils cp csplit cut date dd df dir dircolors dirname du echo env expand expr factor false fmt fold groups head hostid hostname id install join kill link ln logname ls md5sum mkdir mkfifo mknod mktemp mv nice nl nohup nproc numfmt od paste pathchk pinky pr printenv printf ptx pwd readlink realpath rm rmdir runcon seq sha1sum sha224sum sha256sum sha384sum sha512sum shred shuf sleep sort split stat stdbuf stty sum sync tac tail tee test timeout touch tr true truncate tsort tty uname unexpand uniq unlink uptime users vdir wc who whoami yes See the file NEWS for a list of major changes in the current release. If you obtained this file as part of a "git clone", then see the README-hacking file. If this file came to you as part of a tar archive, then see the file INSTALL for compilation and installation instructions. Like the rest of the GNU system, these programs mostly conform to POSIX, with BSD and other extensions. For closer conformance, or conformance to a particular POSIX version, set the POSIXLY_CORRECT and the _POSIX2_VERSION environment variables, as described in the documentation under "Standards conformance". The ls, dir, and vdir commands are all separate executables instead of one program that checks argv[0] because people often rename these programs to things like gls, gnuls, l, etc. Renaming a program file shouldn't affect how it operates, so that people can get the behavior they want with whatever name they want. Special thanks to Paul Eggert, Brian Matthews, Bruce Evans, Karl Berry, Kaveh Ghazi, and François Pinard for help with debugging and porting these programs. Many thanks to all of the people who have taken the time to submit problem reports and fixes. All contributed changes are attributed in the commit logs. And thanks to the following people who have provided accounts for portability testing on many different types of systems: Bob Proulx, Christian Robert, François Pinard, Greg McGary, Harlan Stenn, Joel N. Weber, Mark D. Roth, Matt Schalit, Nelson H. F. Beebe, Réjean Payette, Sam Tardieu. Thanks to Michael Stone for inflicting test releases of this package on Debian's unstable distribution, and to all the kind folks who used that distribution and found and reported bugs. Note that each man page is now automatically generated from a template and from the corresponding --help usage message. Patches to the template files (man/*.x) are welcome. However, the authoritative documentation is in texinfo form in the doc directory. ********************* Pre-C99 build failure --------------------- In 2009 we added this requirement: To build the coreutils from source, you must have a C99-conforming compiler, due to the use of declarations after non-declaration statements in several files in src/. There is code in configure to find and, if possible, enable an appropriate compiler. However, if configure doesn't find a C99 compiler, it continues nonetheless, and your build will fail. There used to be a "c99-to-c89.diff" patch you could apply to convert to code that even an old pre-c99 compiler can handle, but it was too tedious to maintain, so has been removed. *********************** HPUX 11.x build failure ----------------------- A known problem exists when compiling on HPUX on both hppa and ia64 in 64-bit mode (i.e., +DD64) on HP-UX 11.0, 11.11, and 11.23. This is not due to a bug in the package but instead due to a bug in the system header file which breaks things in 64-bit mode. The default compilation mode is 32-bit and the software compiles fine using the default mode. To build this software in 64-bit mode you will need to fix the system /usr/include/inttypes.h header file. After correcting that file the software also compiles fine in 64-bit mode. Here is one possible patch to correct the problem: --- /usr/include/inttypes.h.orig Thu May 30 01:00:00 1996 +++ /usr/include/inttypes.h Sun Mar 23 00:20:36 2003 @@ -489 +489 @@ -#ifndef __STDC_32_MODE__ +#ifndef __LP64__ ************************ OSF/1 4.0d and AIX build failures ------------------------ If you use /usr/bin/make on these systems, the build will fail due to the presence of the "[" target. OSF/1 make(1) appears to treat "[" as some syntax relating to locks, while AIX make(1) appears to skip the "[" target. To work around these issues the best solution is to use GNU make. Otherwise, simply remove all mention of "[$(EXEEXT)" from src/Makefile. ************************ 32 bit time_t build failures ------------------------ On systems where it's determined that 64 bit time_t is supported (indicated by touch -t ), but that coreutils would be built with a narrower time_t, the build will fail. This can be allowed by passing TIME_T_32_BIT_OK=yes to configure, or avoided by enabling 64 bit builds. For example GCC on AIX defaults to 32 bit, and to enable the 64 bit ABI one can use: ./configure CFLAGS=-maix64 LDFLAGs=-maix64 AR='ar -X64' ************************************************* "make check" failure on IRIX 6.5 and Solaris <= 9 ------------------------------------------------- Using the vendor make program to run "make check" fails on these two systems. If you want to run all of the tests there, use GNU make. ********************** Running tests as root: ---------------------- If you run the tests as root, note that a few of them create files and/or run programs as a non-root user, 'nobody' by default. If you want to use some other non-root username, specify it via the NON_ROOT_USERNAME environment variable. Depending on the permissions with which the working directories have been created, using 'nobody' may fail, because that user won't have the required read and write access to the build and test directories. I find that it is best to unpack and build as a non-privileged user, and then to run the following command as that user in order to run the privilege-requiring tests: sudo env PATH="$PATH" NON_ROOT_USERNAME=$USER make -k check-root If you can run the tests as root, please do so and report any problems. We get much less test coverage in that mode, and it's arguably more important that these tools work well when run by root than when run by less privileged users. *************** Reporting bugs: --------------- Send bug reports, questions, comments, etc. to bug-coreutils@gnu.org. To suggest a patch, see the files README-hacking and HACKING for tips. If you have a problem with 'sort', try running 'sort --debug', as it can can often help find and fix problems without having to wait for an answer to a bug report. If the debug output does not suffice to fix the problem on your own, please compress and attach it to the rest of your bug report. IMPORTANT: if you take the time to report a test failure, please be sure to include the output of running 'make check' in verbose mode for each failing test. For example, if the test that fails is tests/df/df-P.sh, then you would run this command: make check TESTS=tests/df/df-P.sh VERBOSE=yes SUBDIRS=. >> log 2>&1 For some tests, you can get even more detail by adding DEBUG=yes. Then include the contents of the file 'log' in your bug report. *************************************** There are many tests, but nowhere near as many as we need. Additions and corrections are very welcome. If you see a problem that you've already reported, feel free to re-report it -- it won't bother me to get a reminder. Besides, the more messages I get regarding a particular problem the sooner it'll be fixed -- usually. If you sent a complete patch and, after a couple weeks you haven't received any acknowledgement, please ping us. A complete patch includes a well-written ChangeLog entry, unified (diff -u format) diffs relative to the most recent test release (or, better, relative to the latest sources in the public repository), an explanation for why the patch is necessary or useful, and if at all possible, enough information to reproduce whatever problem prompted it. Plus, you'll earn lots of karma if you include a test case to exercise any bug(s) you fix. Here are instructions for checking out the latest development sources: https://savannah.gnu.org/git/?group=coreutils If your patch adds a new feature, please try to get some sort of consensus that it is a worthwhile change. One way to do that is to send mail to coreutils@gnu.org including as much description and justification as you can. Based on the feedback that generates, you may be able to convince us that it's worth adding. Please also consult the list of previously discussed but ultimately rejected feature requests at: https://www.gnu.org/software/coreutils/rejected_requests.html WARNING: Now that we use the ./bootstrap script, you should not run autoreconf manually. Doing that will overwrite essential source files with older versions, which may make the package unbuildable or introduce subtle bugs. WARNING: If you modify files like configure.in, m4/*.m4, aclocal.m4, or any Makefile.am, then don't be surprised if what gets regenerated no longer works. To make things work, you'll have to be using appropriate versions of the tools listed in bootstrap.conf's buildreq string. All of these programs except 'test' recognize the '--version' option. When reporting bugs, please include in the subject line both the package name/version and the name of the program for which you found a problem. For general documentation on the coding and usage standards this distribution follows, see the GNU Coding Standards at: https://www.gnu.org/prep/standards/ For any copyright year range specified as YYYY-ZZZZ in this package note that the range specifies every single year in that closed interval. Mail suggestions and bug reports for these programs to the address on the last line of --help output. ======================================================================== Copyright (C) 1998-2018 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the "GNU Free Documentation License" file as part of this distribution. usr/lib64/python2.7/Demo/pdist/README000064400000010250152534757530012752 0ustar00Filesystem, RCS and CVS client and server classes ================================================= *** See the security warning at the end of this file! *** This directory contains various modules and classes that support remote file system operations. CVS stuff --------- rcvs Script to put in your bin directory rcvs.py Remote CVS client command line interface cvslib.py CVS admin files classes (used by rrcs) cvslock.py CVS locking algorithms RCS stuff --------- rrcs Script to put in your bin directory rrcs.py Remote RCS client command line interface rcsclient.py Return an RCSProxyClient instance (has reasonable default server/port/directory) RCSProxy.py RCS proxy and server classes (on top of rcslib.py) rcslib.py Local-only RCS base class (affects stdout & local work files) FSProxy stuff ------------- sumtree.py Old demo for FSProxy cmptree.py First FSProxy client (used to sync from the Mac) FSProxy.py Filesystem interface classes Generic client/server stuff --------------------------- client.py Client class server.py Server class security.py Security mix-in class (not very secure I think) Other generic stuff ------------------- cmdfw.py CommandFrameWork class (used by rcvs, should be used by rrcs as well) Client/Server operation ----------------------- The Client and Server classes implement a simple-minded RPC protocol, using Python's pickle module to transfer arguments, return values and exceptions with the most generality. The Server class is instantiated with a port number on which it should listen for requests; the Client class is instantiated with a host name and a port number where it should connect to. Once a client is connected, a TCP connection is maintained between client and server. The Server class currently handles only one connection at a time; however it could be rewritten to allow various modes of operations, using multiple threads or processes or the select() system call as desired to serve multiple clients simultaneously (when using select(), still handling one request at a time). This would not require rewriting of the Client class. It may also be possible to adapt the code to use UDP instead of TCP, but then both classes will have to be rewritten (and unless extensive acknowlegements and request serial numbers are used, the server should handle duplicate requests, so its semantics should be idempotent -- shrudder). Even though the FSProxy and RCSProxy modules define client classes, the client class is fully generic -- what methods it supports is determined entirely by the server. The server class, however, must be derived from. This is generally done as follows: from server import Server from client import Client # Define a class that performs the operations locally class MyClassLocal: def __init__(self): ... def _close(self): ... # Derive a server class using multiple inheritance class MyClassServer(MyClassLocal, Server): def __init__(self, address): # Must initialize MyClassLocal as well as Server MyClassLocal.__init__(self) Server.__init__(self, address) def _close(self): Server._close() MyClassLocal._close() # A dummy client class class MyClassClient(Client): pass Note that because MyClassLocal isn't used in the definition of MyClassClient, it would actually be better to place it in a separate module so the definition of MyClassLocal isn't executed when we only instantiate a client. The modules client and server should probably be renamed to Client and Server in order to match the class names. *** Security warning: this version requires that you have a file $HOME/.python_keyfile at the server and client side containing two comma- separated numbers. The security system at the moment makes no guarantees of actuallng being secure -- however it requires that the key file exists and contains the same numbers at both ends for this to work. (You can specify an alternative keyfile in $PYTHON_KEYFILE). Have a look at the Security class in security.py for details; basically, if the key file contains (x, y), then the security server class chooses a random number z (the challenge) in the range 10..100000 and the client must be able to produce pow(z, x, y) (i.e. z**x mod y). usr/share/doc/perl-Time-HiRes/README000064400000002423152535113270012757 0ustar00Time::HiRes module: High resolution time, sleep, and alarm. Implement usleep, ualarm, and gettimeofday for Perl, as well as wrappers to implement time, sleep, and alarm that know about non-integral seconds. Note: the tests of this module are by definition time sensitive: under heavy loads the tests may fail. Reasonable relaxed criteria are being used for the tests but sometimes you may still see transient failures. Rerun the tests (make test) a couple of times, preferably with less load on the testing machine. Also, older versions of Perl do not support '-nolinenumbers' on the XSUBPP command, however, 5.004_03 requires it (on my box, anyway) since the #line generating code in XSUBPP appears to have problems with #ifdef'd .xs code. If xsubpp complains about usage when you do a make, look at the top of the Makefile.PL and comment out the "$XSOPT=" line. Or upgrade to a newer version of Perl. POD documentation is embedded. Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002 Douglas E. Wegscheid. Copyright (c) 2002, 2003, 2004, 2005 Jarkko Hietaniemi. All rights reserved. Copyright (C) 2011, 2012, 2013 Andrew Main (Zefram) All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. usr/share/doc/perl-Mozilla-CA/README000064400000002323152535156360012747 0ustar00NAME Mozilla::CA - Mozilla's CA cert bundle in PEM format SYNOPSIS use IO::Socket::SSL; use Mozilla::CA; my $host = "www.paypal.com"; my $client = IO::Socket::SSL->new( PeerHost => "$host:443", SSL_verify_mode => 0x02, SSL_ca_file => Mozilla::CA::SSL_ca_file(), ) || die "Can't connect: $@"; $client->verify_hostname($host, "http") || die "hostname verification failure"; DESCRIPTION Mozilla::CA provides a copy of Mozilla's bundle of Certificate Authority certificates in a form that can be consumed by modules and libraries based on OpenSSL. The module provide a single function: SSL_ca_file() Returns the absolute path to the Mozilla's CA cert bundle PEM file. SEE ALSO LICENSE For the bundled Mozilla CA PEM file the following applies: This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. The Mozilla::CA distribution itself is available under the same license. usr/share/doc/perl-Carp/README000064400000002254152535156500011743 0ustar00NAME Carp - alternative warn and die for modules DESCRIPTION The Carp routines are useful in your own modules because they act like die() or warn(), but with a message which is more likely to be useful to a user of your module. In the case of cluck, confess, and longmess that context is a summary of every call in the call-stack. For a shorter message you can use carp or croak which report the error as being from where your module was called. There is no guarantee that that is where the error was, but it is a good educated guess. You can also alter the way the output and logic of Carp works, by changing some global variables in the Carp namespace. INSTALLATION perl Makefile.PL make make test make install AUTHOR The Carp module first appeared in Larry Wall's perl 5.000 distribution. Since then it has been modified by several of the perl 5 porters. Andrew Main (Zefram) divested Carp into an independent distribution. COPYRIGHT Copyright (C) 1994-2013 Larry Wall Copyright (C) 2011, 2012, 2013 Andrew Main (Zefram) LICENSE This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. usr/share/doc/perl-Pod-Perldoc/README000064400000001644152535307060013167 0ustar00README for Perldoc Version: 3.28 Perldoc This is the distribution of Perldoc, the program for reading Pod documentation. INSTALLATION You install this module-suite, as you would install any perl module library, by running these commands: perl Makefile.PL make make test make install If you want to install a private copy of this module-suite in your home directory, then you should try to produce the initial Makefile with something like this command: perl Makefile.PL PREFIX=~/perl See perldoc perlmodinstall for more information on installing modules. SUPPORT Questions, bug reports, useful code bits, and suggestions for this module should just be sent to http://rt.cpan.org/NoAuth/Bugs.html?Dist=Pod-Perldoc AVAILABILITY The latest version of this module is available from the Comprehensive Perl Archive Network (CPAN). Visit to find a CPAN site near you. usr/share/doc/systemtap-sdt-devel/README000064400000012626152535311300014027 0ustar00systemtap: a linux trace/probe tool Visit the project web site at , for documentation and mailing lists for developers and users. This is free software. See the COPYING file for redistribution/modification terms. See the INSTALL file for generic build instructions. See the HACKING file for contribution advice. Prerequisites: - linux kernel - kernel module build environment (kernel-devel rpm) and/or dyninst - optionally, debugging information for kernel/user-space being instrumented - C compiler (same as what kernel was compiled with), to build kernel modules - C++11 compiler such as gcc 4.8+, to build systemtap itself - elfutils 0.151+ with libdwfl for debugging information parsing - Python for tools which are scripts, such as dtrace(1) - root privileges Installation steps: - If equipped with elfutils version 0.178 or later, try using debuginfod for automatic debuginfo downloading. This experimental public server may be enough: % export DEBUGINFOD_URLS=https://debuginfod.elfutils.org/ % export DEBUGINFOD_PROGRESS=1 See https://sourceware.org/elfutils/Debuginfod.html for more details. - Otherwise, install any debuginfo packages you need, for kernel and/or userspace. On modern Fedora, # debuginfo-install kernel [...] (Beware of confusion between kernel vs. kernel-debug vs kernel-PAE etc. variants. Each likely has a corresponding development and debuginfo package.) - Install the systemtap package. On modern Fedora, # yum install systemtap systemtap-runtime Build steps: - Consider installing the kernel-debuginfo, kernel-devel, gcc and dependent packages (or see below if you are building your own kernels from source). If using only the pure-userspace dyninst backend, install gcc and dyninst-devel. - If available, install your distribution's copy of elfutils and its development headers/libraries. Or if desired, build elfutils separately one time, and install it to /usr/local. See https://elfutils.org/ elfutils version 0.178 introduces automatic debuginfo downloading, which can makes systemtap usage easier. - On modern Fedora, install general optional build-requisites: # yum-builddep systemtap On modern Debian/Ubuntu, similarly: # apt-get build-dep systemtap - Download systemtap sources: https://sourceware.org/systemtap/ftp/releases/ https://sourceware.org/systemtap/ftp/snapshots/ (or) git clone git://sourceware.org/git/systemtap.git (or) https://sourceware.org/git/systemtap.git - Build systemtap normally: % .../configure [other autoconf options] Add env LDFLAGS=-L/path/ CPPFLAGS=-I/path/ before configure to locate libraries in non-system directories. Consider configuring with "--prefix=DIRECTORY" to specify an installation directory other than /usr/local. It can be an ordinary personal directory. % make all # make install To uninstall systemtap: # make uninstall Alternately, on a Fedora-like system: % make rpm # rpm -i /path/to/rpmbuild/.../systemtap*rpm - Run systemtap: To run systemtap after installation, add $prefix/bin to your $PATH, or refer to $prefix/bin/stap directly. If you keep your build tree around, you can also use the "stap" binary there. Some samples should be available under $prefix/share/doc/systemtap/examples. For the normal linux-kernel-module based backend, run "stap" as root. If desired, create "stapdev" and "stapusr" entries in /etc/groups. Any users in "stapdev"+"stapusr" will be able to run systemtap as if with root privileges. Users in "stapusr" only may launch (with "staprun") pre-compiled probe modules (created by "stap -p4 ...") that a system administrator copied under /lib/modules/`uname -r`/systemtap. "stapusr" may also be permitted to create arbitrary unprivileged systemtap scripts of their own. See README.unprivileged for additional setup instructions. To run a simple test. # stap -v -e 'probe vfs.read {printf("read performed\n"); exit()}' To run the full test suite from the build tree, install dejagnu, then run with root privileges: # make installcheck For the prototype dyninst pure-userspace backend, run "stap" as any user. % stap --runtime=dyninst -e 'probe process.function("*") { println(pn(), ":", $$parms) }' -c 'ls' For the prototype bpf backend, run "stap" as "root" # stap --runtime=bpf -e 'probe kernel.function("do_exit") { printf("bye %d\n", pid()) }' Tips: - By default, systemtap looks for the debug info in these locations: /boot/vmlinux-`uname -r` /usr/lib/debug/lib/modules/`uname -r`/vmlinux /lib/modules/`uname -r`/vmlinux /lib/modules/`uname -r`/build/vmlinux Building a kernel.org kernel: - Build the kernel using your normal procedures. Enable CONFIG_DEBUG_INFO, CONFIG_KPROBES, CONFIG_RELAY, CONFIG_DEBUG_FS, CONFIG_MODULES, CONFIG_MODULE_UNLOAD, CONFIG_UPROBES if able - % make modules_install install headers_install - Boot into the kernel. - If you wish to leave the kernel build tree in place, simply run % stap -r /path/to/kernel/build/tree [...] You're done. - Or else, if you wish to install the kernel build/debuginfo data into a place where systemtap will find it without the "-r" option: % ln -s /path/to/kernel/build/tree /lib/modules/RELEASE/build - Instead of using the "-r" option, you can also use the environment variable SYSTEMTAP_RELEASE to direct systemtap to the kernel data. usr/lib64/python2.7/site-packages/README000064400000000167152535352770013467 0ustar00This directory exists so that 3rd party packages can be installed here. Read the source for site.py for more details. usr/share/doc/perl-TermReadKey/README000064400000015723152535355550013245 0ustar00 Term::ReadKey 2.36 - Change terminal modes, and perform non-blocking reads. Copyright (C) 1994-1999 Kenneth Albanowski. 2001-2016 Jonathan Stowe and others This package is dual licensed. You can either choose to license it under the original terms which were: Unlimited distribution and/or modification is allowed as long as this copyright notice remains intact. Or the standard Perl terms: This module is free software; you can redistribute it and/or modify it under the terms of the Artistic License. For details, see the full text of the license in the file "Artistic" that should have been provided with the version of perl you are using. 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. This module, ReadKey, provides ioctl control for terminals and Win32 consoles so the input modes can be changed (thus allowing reads of a single character at a time), and also provides non-blocking reads of stdin, as well as several other terminal related features, including retrieval/modification of the screen size, and retrieval/modification of the control characters. Installation requires MakeMaker 3.5 or higher (MakeMaker 3.7 is included with perl 5.001, so now is a good time to upgrade if you haven't already.) To install, unpack somewhere, type "perl Makefile.PL", and then "make test". If the compilation and the tests are successful, then change to root and run "make install". As of 2.17 the interactive test has been removed as the default for the convenience of automated installers, CPAN-Testers and so on. The non interactive tests whilst confirming that the module has built correctly and has a good chance of working correctly cannot determine whether the effect as observed on the screen is correct so you might want to run: perl -Mblib example/test.pl interactive before you run 'make install'. Also from 2.17 this module has to provide its own support for compilers that can't take function prototypes as with Perl 5.8.0 this last vestige of support for non-ANSI compilers will disappear. The requirement for an ANSI C compiler has been present since Perl 5.005 so it is likely that at some point in the future this module will follow that requirement too. If you have any difficulties with older Perl's please contact the maintainer. The module has support for Win32 since version 2.10. Version 2.17 has been tested with ActivePerl build 623 and Visual Studio 6 and found to work as expected, but do not be surprised if it fails with another compiler or distribution. There are some limitations, with the ReadLine call being unavailable, and ReadKey possibly generating bad results if you are reading from multiple consoles, and key repeat is used. For Win32 users without a C compiler there is a precompiled version of this module available as a package for ActivePerl, it is probably a few versions behind the latest release but has been reported to work well. VERY IMPORTANT: In 2.00, the ReadKey/ReadLine arguments changed. Now, if you want a call that is non-blocking and returns immediately if no character is waiting, please call it with -1, instead of 1. Positive arguments now indicate a timeout, so 1 would wait a second before timing out. As older versions will accept -1, it is reccomended to change all code that uses ReadMode. The terminal mode function is controlled by the "ReadMode" function, which takes a single numeric argument, and an optional filehandle. This argument should be one of the following: 0: (Reset) Restore original settings. 1: (Cooked) Change to what is commonly the default mode, echo on, buffered, signals enabled, Xon/Xoff possibly enabled, and 8-bit mode possibly disabled. 2: (Cooked-Invisible) Same as 1, just with echo off. Nice for reading passwords. 3: (CBreak) Echo off, unbuffered, signals enabled, Xon/Xoff possibly enabled, and 8-bit mode possibly enabled. 4: (Raw) Echo off, unbuffered, signals disabled, Xon/Xoff disabled, and 8-bit mode possibly disabled. 5: (Really-Raw) Echo off, unbuffered, signals disabled, Xon/Xoff disabled, 8-bit mode enabled if parity permits, and CR to CR/LF translation turned off. If you just need to read a key at a time, then modes 3 or 4 are probably sufficient. Mode 4 is a tad more flexible, but needs a bit more work to control. If you use ReadMode 3, then you should install a SIGINT or END handler to reset the terminal (via ReadMode 0) if the user aborts the program via ^C. (For any mode, an END handler consisting of "ReadMode 0" is actually a good idea.) Non-blocking support is provided via the ReadKey and ReadLine functions. If they are passed no argument, or an argument of zero, they will act like a normal getc(STDIN) or scalar(). If they are passed a negative argument, then they will immediatly return undef if no input is present. If passed a positive argument, then they will wait until that time in seconds has passed before returning undef. In most situations, you will probably want to use "ReadKey -1". Note that a non-blocking ReadLine probably won't do what you expect, although it is perfectly predictable, and that the ReadMode will have to be 1 or 0 for it to make sense at all. A routine is also provided to get the current terminal size, "GetTerminalSize". This will either return a four value array containing the width and height of the screen in characters and then in pixels, or nothing ( if the OS can't return that info). SetTerminalSize allows the stored settings to be modified. Note that this does _not_ change the physical size of the screen, it will only change the size reported by GetTerminalSize, and other programs that check the terminal size in the same manner. GetControlChars returns a hash containing all of the valid control characters, such as ("INTERRUPT" => "\x3", etc.). SetControlChars takes an array (or a hash) as a parameter that should consist of similar name/value pairs and will modify the control character settings. Note that it is entirely possible that there are portability problems with the routines in ReadKey.xs. If you find any problems, including compilation failures, or control characters not supported by Set/GetControlChars, _please_ tell me about them, by mailing the maintainer at jns@gellyfish.co.uk, or lastly contacting perl5-porters@perl.org. Any problems will get fixed if at all possible, but that's not going to happen if I don't know about them. The code is available at https://github.com/jonathanstowe/TermReadKey so as ever patches are kindly welcomed, especially for platforms such as Windows that I am unable to test on. Oh, you may also be interested in the Configure.pm module. It provides tools to make porting stuff easier -- calling the compiler, finding headers, etc. It contains documentation inside it, and you are welcome to use it in your own modules. If you make use of it, I'd be grateful for a message sent to the above address. usr/share/doc/perl-Unicode-Normalize/README000064400000004450152535403410014375 0ustar00Unicode/Normalize version 1.21 =================================== Unicode::Normalize - Unicode Normalization Forms SYNOPSIS (1) using function names exported by default: use Unicode::Normalize; $NFD_string = NFD($string); # Normalization Form D $NFC_string = NFC($string); # Normalization Form C $NFKD_string = NFKD($string); # Normalization Form KD $NFKC_string = NFKC($string); # Normalization Form KC (2) using function names exported on request: use Unicode::Normalize 'normalize'; $NFD_string = normalize('D', $string); # Normalization Form D $NFC_string = normalize('C', $string); # Normalization Form C $NFKD_string = normalize('KD', $string); # Normalization Form KD $NFKC_string = normalize('KC', $string); # Normalization Form KC INSTALLATION Perl 5.6.1 or later is required. Perl 5.8.1 or later is recommended. To install this module (XSUB: needs a C compiler), type the following: perl Makefile.PL make make test make install If you want to install pure Perl (i.e. no-XSUB), type the following (!! "disableXS" must run before "Makefile.PL" !!): perl disableXS perl Makefile.PL make make test make install After building no-XSUB, if you decide to install XSUB, type the following (!! "enableXS" must run before "Makefile.PL" !!): make clean perl enableXS perl Makefile.PL make make test make install DEPENDENCIES This module requires some core modules and pragmas, and the following files from Unicode Character Database, which are included in recent perl core distributions. - unicore/CombiningClass.pl (or unicode/CombiningClass.pl) - unicore/Decomposition.pl (or unicode/Decomposition.pl) NOTES (1) After these unicore/*.* files are updated: In the case of XSUB: You must rebuild the module, as the data will be compiled on building. In the case of pure perl: Rebuilding is not necessary, as the data will be read on requirement. (2) Normalize.pmN (a pure perl module) may work without any other file in this distribution. It must be renamed Normalize.pm, though. COPYRIGHT AND LICENSE SADAHIRO Tomoyuki Copyright(C) 2001-2012, SADAHIRO Tomoyuki. Japan. All rights reserved. This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. usr/lib/dracut/modules.d/98ecryptfs/README000064400000004447152535404400014212 0ustar00# Directions for creating the encrypted key that will be used to mount an # eCryptfs filesystem # Create the eCryptfs key (encrypted key type) # # The encrypted key type supports two formats: the 'default' format allows # to generate a random symmetric key of the length specified, the 'ecryptfs' # format generates an authentication token for the eCryptfs filesystem, # which contains a randomly generated key. Two requirements for the latter # format is that the key description must contain exactly 16 hexadecimal # characters and that the encrypted key length must be equal to 64. $ keyctl add encrypted 1000100010001000 "new ecryptfs trusted:kmk-trusted 64" @u 782117972 # Save the encrypted key $ su -c 'keyctl pipe `keyctl search @u encrypted 1000100010001000` > /etc/keys/ecryptfs-trusted.blob' # The eCryptfs key path name can be set in one of the following ways (specified in # the order in which the variable is overwritten): 1) use the default value: -------------------------------------------------------------------------- ECRYPTFSKEY="/etc/keys/ecryptfs-trusted.blob" -------------------------------------------------------------------------- 2) create the configuration file '/etc/sysconfig/ecryptfs' and set the ECRYPTFSKEY variable; 3) specify the eCryptfs key path name in the 'ecryptfskey=' parameter of the kernel command line. # The configuration file '/etc/sysconfig/ecryptfs' is also used to specify # more options for mounting the eCryptfs filesystem: ECRYPTFSSRCDIR: existent directory in the lower root filesystem; ECRYPTFSDSTDIR: mount point directory for the eCryptfs filesystem (the directory must be created in the root filesystem before rebooting the platform); ECRYPTFS_EXTRA_MOUNT_OPTS: extra mount options for the eCryptfs filesystem (the 'ecryptfs_sig' option is automatically added by the dracut script). # Example of the configuration file: ----------- '/etc/sysconfig/ecryptfs' (with default values) ----------- ECRYPTFS_KEY="/etc/keys/ecryptfs-trusted.blob" ECRYPTFSSRCDIR="/secret" ECRYPTFSDSTDIR="${ECRYPTFSSRCDIR}" ECRYPTFS_EXTRA_MOUNT_OPTS="" ----------------------------------------------------------------------- # If the variable ECRYPTFSDSTDIR is not specified in the configuration file, # its value will be equal to that of ECRYPTFSSRCDIR. usr/share/doc/perl-TimeDate/README000064400000001453152535453660012561 0ustar00This is the perl5 TimeDate distribution. It requires perl version 5.003 or later This distribution replaces my earlier GetDate distribution, which was only a date parser. The date parser contained in this distribution is far superior to the yacc based parser, and a *lot* fatser. The parser contained here will only parse absolute dates, if you want a date parser that can parse relative dates then take a look at the Time modules by David Muir on CPAN. You install the library by running these commands: perl Makefile.PL make make test make install Please report any bugs/suggestions to Copyright 1995-2009 Graham Barr. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. Share and Enjoy! Graham usr/share/X11/xkb/geometry/README000064400000000715152535546230012344 0ustar00The geometry component of a keyboard mapping specifies primarily the geometry of the keyboard. It contains the geometry symbolic name and the keyboard geometry description. The geometry component might also contain aliases for some keys or symbolic names for some indicators and might affect the set of indicators that are physically present. Key aliases defined in the geometry component of a keyboard mapping override those defined in the keycodes component. usr/share/doc/fontconfig/README000064400000246261152535547300012264 0ustar00 Fontconfig Font configuration and customization library Version 2.13.1 2018-08-30 Check INSTALL for compilation and installation instructions. Report bugs to https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/new. 2.13.1 Akira TAGOH (48): Use the builtin uuid for OSX Fix the build issue again on MinGW with enabling nls Add uuid to Requires.private in .pc only when pkgconfig macro found it Allow the constant names in the range Do not override locale if already set by app Add the value of the constant name to the implicit object in the pattern Add a testcase for FcNameParse Leave the locale setting to applications call setlocale Fix make check fail when srcdir != builddir. Do not ship fcobjshash.h Fix typo in doc Change the emboldening logic again Bug 43367 - RFE: iterator to peek objects in FcPattern Add a testrunner for conf Add a test case for 90-synthetic.conf Bug 106497 - better error description when problem reading font configuration Bug 106459 - fc-cache doesn't use -y option for .uuid files Fix leaks Fix -Wstringop-truncation warning Fix double-free Add a test case for bz#106618 Update CaseFolding.txt to Unicode 11 Remove .uuid when no font files exists on a directory Fix the leak of file handle Fix memory leak Fix memory leaks Fix memory leak Fix memory leak Fix memory leak Fix unterminated string issue Fix array access in a null pointer dereference Fix access in a null pointer dereference do not pass null pointer to memcpy Fix dereferencing null pointer Fix a typo Fix possibly dereferencing a null pointer Fix allocating insufficient memory for terminating null of the string Make a call fail on ENOMEM Allocate sufficient memory to terminate with null Drop the redundant code Fix memory leak Fix the build issue with gperf Fix missing closing bracket in FcStrIsAbsoluteFilename() Update the issue tracker URL Fix distcheck fail Add .gitlab-ci.yml Bump the libtool revision Alexander Larsson (3): Add FcCacheAllocate() helper Cache: Rewrite relocated paths in earlier Cache: Remove alias_table Behdad Esfahbod (4): Minor: fix warnings Fix name scanning Share name-mapping across instances Use FT_HAS_COLOR Chris Lamb (1): Ensure cache checksums are deterministic Matthieu Herrb (1): FcCacheFindByStat(): fix checking of nanoseconds field. Tom Anderson (7): Fix undefined-shift UBSAN errors Use realfilename for FcOpen in _FcConfigParse Add FONTCONFIG_SYSROOT environment variable Fix CFI builds Fix heap use-after-free Return canonicalized paths from FcConfigRealFilename Fix build with CFLAGS="-std=c11 -D_GNU_SOURCE" 2.13 Akira TAGOH (4): Add Simplified Chinese translations Fix a build issue on MinGW with enabling nls Initialize an array explicitly Bump the libtool revision 2.12.93 (2.13 RC3) Akira TAGOH (12): trivial fix Add files to enable ITS support in gettext Use the native ITS support in gettext Remove POTFILES.in until new release of gettext is coming... export GETTEXTDATADIR to refer the local .its/.loc file instead of using --its option clean up Do not add cflags and libs coming from pkg-config file. Revert some removal from 7ac6af6 Take effects on dir, cachedir, acceptfont, and rejectfont only when loading Do not mix up font dirs into the list of config dirs Ensure the user config dir is available in the list of config dirs on the fallback config Add missing files to ship Alexander Larsson (1): FcHashTableAddInternal: Compare against the right key Behdad Esfahbod (5): Remove hack for OS/2 weights 1..9 Support FC_WIDTH as double as well Fix leak Use FT_Done_MM_Var if available Fix undefined-behavior signed shifts Olivier Crête (1): Fix cross-compilation by passing CPPFLAGS to CPP Tom Anderson (1): Allow overriding symbol visibility. 2.12.92 (2.13 RC2) Akira TAGOH (13): cleanup files Update .uuid only when -r is given but not -f. Returns false if key is already available in the table Add missing doc of FcDirCacheCreateUUID Replace uuid in the table properly when -r Add a test case for uuid creation Do not update mtime with creating .uuid Disable uuid related code on Win32 Try to get current instance of FcConfig as far as possible do not check the existence of itstool on win32 Fix the mis-ordering of ruleset evaluation in a file with include element Fix compiler warnings Add FcReadLink to wrap up readlink impl. Alexander Larsson (1): fchash: Fix replace Behdad Esfahbod (7): Don't crash Remove a debug abort() Minor Set font-variations settings for standard axes in variable fonts Let pattern FC_FONT_VARIATIONS override standard axis variations Put back accidentally removed code Add FcWeightTo/FromOpenTypeDouble() 2.12.91 (2.13 RC1) Akira TAGOH (37): und_zsye.orth: polish to get for NotoEmoji-Regular.ttf Revert "Keep the same behavior to the return value of FcConfigParseAndLoad" Fix again to keep the same behavior to the return value of FcConfigParseAndLoad cleanup Fix a compiler warning Update libtool revision Bump version to 2.12.6 doc: trivial update Add the ruleset description support workaround to avoid modifying by gettextize missing an open parenthesis another workaround to avoid modifying by gettextize... Validate cache more carefully Allow autoreconf through autopoint for gettext things Correct debugging messages to load/scan config Add the check of PCF_CONFIG_OPTION_LONG_FAMILY_NAMES back Use uuid-based cache filename if uuid is assigned to dirs Add new API to find out a font from current search path Replace the font path in FcPattern to what it is actually located. Replace the original path to the new one Replace the path of subdirs in caches as well Don't call FcStat when the alias has already been added Destroy the alias and UUID tables when all of caches is unloaded cleanup abstract hash table functions update Fix memory leak Fix a typo Don't call FcStat when the alias has already been added Add a testcase for bind-mounted cachedir cleanup Use smaller prime for hash size Fix the testcase for env not enabled PCF_CONFIG_OPTION_LONG_FAMILY_NAMES in freetype thread-safe functions in fchash.c Fix distcheck error Fix "make check" fail again Bump the libtool revision Alban Browaeys (1): Fixes cleanup Alexander Kanavin (1): src/fcxml.c: avoid double free() of filename Bastien Nocera (1): conf: Prefer system emoji fonts to third-party ones Behdad Esfahbod (76): Minor Remove stray printf() [fc-query] Fix linking order Instead of loading glyphs (with FreeType), just check loca table Don't even check loca for glyph outline detection Check for non-empty outline for U+0000..U+001F Add back code for choosing strike, and cleanup Minor: adjust debug output Remove unnecessary check Remove a few unused blanks parameters Remove check that cannot fail Remove use of psnames for charset construction Remove unused variable Remove fc-glyphname Remove blanks facility from the library Remove blanks support from fc-scan Mark more parameters FC_UNUSED Move variables to narrower scope and indent Remove unneeded check Use multiplication instead of division Use inline functions instead of macros for a couple of things Simplify advance-width calculations Inline FcFreeTypeCheckGlyph() Call FT_Get_Advance() only as long as we need to determine font width type Minor Update documentation for removal of blanks Merge branch 'faster' Add FcFreeTypeQueryAll() Document FcFreeTypeQueryAll() Accept NULL in for spacing in FcFreeTypeCharSetAndSpacing() Remove FcCompareSize() Rename FcCompareSizeRange() to FcCompareRange() Rewrite FcCompareRange() In FcSubstituteDefault(), handle size range Check instance-index before accessing array Indent [varfonts] Add FC_FONT_VARIATIONS [varfonts] Add FC_VARIABLE [varfonts] Change id argument in FcFreeTypeQuery* to unsigned int Print ranges as closed as opposed to half-open [varfonts] Change FC_WEIGHT and FC_WIDTH into ranges [varfonts] Query varfonts if id >> 16 == 0x8000 Fix instance-num handling in collections [varfonts] Query variable font in FcFreeTypeQueryAll() [varfonts] Fetch optical-size for named instances In RenderPrepare(), handle ranges smartly [fc-query] Remove --ignore-blanks / -b [fc-match/fc-list/fc-query/fc-scan] Add --brief that is like --verbose without charset Add separate match compare function for size Fix range comparision operators implementation Adjust emboldening logic [varfonts] Map from OpenType to Fontconfig weight values Add FcDontCare value to FcBool Implement more config bool operations for boolean types Fix possible div-by-zero [varfonts] Use fvar data even if there's no variation in it Minor Revert "[varfonts] Use fvar data even if there's no variation in it" [varfonts] Minor [varfonts] Comment [varfonts] Don't set style for variable-font pattern [varfonts] Skip named-instance that is equivalent to base font [varfonts] Do not set postscriptname for varfont pattern [varfonts] Don't reopen face for each named instance Separate charset and spacing code [varfonts] Reuse charset for named instances Move whitespace-trimming code to apply to all name-table strings Fix whitespace-trimming loop and empty strings... Whitespace Don't convert nameds to UTF-8 unless we are going to use them Simplify name-table platform mathcing logic Use binary-search for finding name table entries [varfonts] Share lang across named-instances Merge branch 'varfonts2' Require freetype >= 2.8.1 Remove assert David Kaspar [Dee'Kej] (1): conf.d: Drop aliases for (URW)++ fonts Florian Müllner (1): build: Remove references to deleted file 2.12.6 Akira TAGOH (4): und_zsye.orth: polish to get for NotoEmoji-Regular.ttf Revert "Keep the same behavior to the return value of FcConfigParseAndLoad" Fix again to keep the same behavior to the return value of FcConfigParseAndLoad Update libtool revision Behdad Esfahbod (2): Minor [fc-query] Fix linking order David Kaspar [Dee'Kej] (1): conf.d: Drop aliases for (URW)++ fonts Florian Müllner (1): build: Remove references to deleted file 2.12.5 Akira TAGOH (17): Add FcPatternGetWithBinding() to obtain the binding type of the value in FcPattern. Add FcConfigParseAndLoadFromMemory() to load a configuration from memory. Bug 101726 - Sans config pulls in Microsoft Serifed font Fix gcc warnings with enabling libxml2 Add und-zsye.orth to support emoji in lang Add more code points to und-zsye.orth Keep the same behavior to the return value of FcConfigParseAndLoad Do not ship fcobjshash.gperf in archive Accept 4 digit script tag in FcLangNormalize(). Fix to work the debugging option on fc-validate Add und_zmth.orth to support Math in lang Polish und_zmth.orth for Libertinus Math Polish und_zmth.orth more for Cambria Math and Minion Math Update similar to emoji's fc-blanks: fall back to the static data available in repo if downloaded data is corrupted Update docs Update libtool versioning Behdad Esfahbod (14): Pass --pic to gperf Add generic family matching for "emoji" and "math" [fc-query] Support listing named instances Add Twitter Color Emoji Add EmojiOne Mozilla font [fc-lang] Allow using ".." instead of "-" in ranges Minor Remove unneeded codepoints Adjust color emoji config some more Ignore 'und-' prefix for in FcLangCompare Minor Fix sign-difference compare warning Fix warning Fix weight mapping 2.12.4 Akira TAGOH (5): Force regenerate fcobjshash.h when updating Makefile Fix the build failure when srcdir != builddir and have gperf 3.1 or later installed Add a testcase for Bug#131804 Update libtool revision Fix distcheck error Florent Rougon (6): FcCharSetHash(): use the 'numbers' values to compute the hash fc-lang: gracefully handle the case where the last language initial is < 'z' Fix an off-by-one error in FcLangSetIndex() Fix erroneous test on language id in FcLangSetPromote() FcLangSetCompare(): fix bug when two charsets come from different "buckets" FcCharSetFreezeOrig(), FcCharSetFindFrozen(): use all buckets of freezer->orig_hash_table Helmut Grohne (1): fix cross compilation Jan Alexander Steffens (heftig) (1): Fix testing PCF_CONFIG_OPTION_LONG_FAMILY_NAMES (CFLAGS need to be right) Josselin Mouette (1): Treat C.UTF-8 and C.utf8 locales as built in the C library. Masamichi Hosoda (1): Bug 99360 - Fix cache file update on MinGW 2.12.3 Akira TAGOH (1): Fix make check fail with freetype-2.7.1 and 2.8 with PCF_CONFIG_OPTION_LONG_FAMILY_NAMES enabled. 2.12.2 Akira TAGOH (8): Don't call perror() if no changes happens in errno Fix FcCacheOffsetsValid() Fix the build issue with gperf 3.1 Fix the build issue on GNU/Hurd Update a bit for the changes in FreeType 2.7.1 Add the description of FC_LANG envvar to the doc Bug 101202 - fontconfig FTBFS if docbook-utils is installed Update libtool revision Alan Coopersmith (1): Correct cache version info in doc/fontconfig-user.sgml Khem Raj (1): Avoid conflicts with integer width macros from TS 18661-1:2014 Masamichi Hosoda (2): Fix PostScript font alias name Update aliases for URW June 2016 2.12.1 Akira TAGOH (6): Add --with-default-hinting to configure Update CaseFolding.txt to Unicode 9.0 Check python installed in autogen.sh Fix some errors related to python3 Bug 96676 - Check range of FcWeightFromOpenType argument Update libtool revision Tobias Stoeckmann (1): Properly validate offsets in cache files. 2.12 Akira TAGOH (8): Modernize fc-blanks.py Update URL Bug 95477 - FcAtomicLock fails when SELinux denies link() syscall with EACCES 45-latin.conf: Add some Windows fonts to categorize them properly Correct one for the previous change Bug 95481 - Build fails on Android due to broken lconv struct Add the static raw data to generate fcblanks.h Remove unused code Erik de Castro Lopo (1): Fix a couple of minor memory leaks Petr Filipsky (1): Fix memory leak in FcDirCacheLock 2.11.95 (2.12 RC5) Akira TAGOH (22): Add one more debugging option to see transformation on font-matching Fix a crash when no objects are available after filtering No need to be public mark as private at this moment Don't return FcFalse even when no fonts dirs is configured Add a warning for blank in fonts.conf Fix a memory leak in FcFreeTypeQueryFace Update CaseFolding.txt to Unicode 8.0 Bug 90867 - Memory Leak during error case in fccharset Fix the broken cache more. Fail on make runtime as needed instead of configure if no python installed Use long long to see the same size between LP64 and LLP64 Fix build issue on MinGW Use int64_t instead of long long Fix compiler warnings on MinGW Fix assertion on 32bit arch remomve unnecessary code Bug 93075 - Possible fix for make check failure on msys/MinGW... Avoid an error message on testing when no fonts.conf installed Add hintstyle templates and make hintslight default Revert "Workaround another race condition issue" Update libtool revision Behdad Esfahbod (6): Revert changes made to FcConfigAppFontAddDir() recently Call FcFreeTypeQueryFace() from fcdir.c, instead of FcFreeTypeQuery() [GX] Support instance weight, width, and style name [GX] Enumerate all named-instances in TrueType GX fonts Improve OpenType to Fontconfig weight mapping [GX] Improve weight mapping Patrick Haller (1): Optimizations in FcStrSet 2.11.94 (2.12 RC4) Akira TAGOH (16): Remove the dead code Bug 89617 - FcConfigAppFontAddFile() returns false on any font file Fix unknown attribute in Win32 Fix SIGFPE Fix a typo for the latest cache version Fix a typo in fontconfig-user.sgml Drop unmaintained code Observe blanks to compute correct languages in fc-query/fc-scan Add missing description for usage Make FC_SCALE deprecated Bug 90148 - Don't warn if cachedir isn't specified Fix memory leaks after FcFini() Fix a typo Fix a crash Detect the overflow for the object ID Revert the previous change Behdad Esfahbod (11): Fix bitmap scaling Add su[pport for symbol fonts Write ranges using a [start finish) format Only set FC_SIZE for scalable fonts if OS/2 version 5 is present Add bitmap-only font size as Double, not Range Accept Integer for FC_SIZE Don't set FC_SIZE for bitmap fonts Fix compiler warnings Simplify FcRange Reduce number of places that cache version is specified to 1 Bump cache version number to 6, because of recent FcRange changes Руслан Ижбулатов (1): W32: Support cache paths relative to the root directory 2.11.93 (2.12 RC3) Akira TAGOH (18): Fix a typo in docs Add pkg.m4 to git Fix a build fail on some non-POSIX platforms ifdef'd the unnecessary code for win32 Fix pointer cast warning on win32 filter can be null Copy the real size of struct dirent Rework again to copy the struct dirent Hardcode the blanks in the library Update the script to recognize the escaped space Fix a build issue when $(srcdir) != $(builddir) Don't add FC_LANG when it has "und" Fix the array allocation Improve the performance on searching blanks Fix a segfault when OOM happened. Fix a bug in the previous change forFcBlanksIsMember() Fix an infinite loop in FcBlanksIsMember() Fix a trivial bug for dist Alan Coopersmith (1): Fix configure to work with Solaris Studio compilers Behdad Esfahbod (3): Fix symbol cmap handling Remove dead code after previous commit Simplify some more Michael Haubenwallner (1): Ensure config.h is included first, bug#89336. 2.11.92 (2.12 RC2) Akira TAGOH (1): Add missing docs 2.11.91 (2.12 RC1) Akira TAGOH (28): Bug 71287 - size specific design selection support in OS/2 table version 5 Fix a build issue with freetype <2.5.1 Fix missing docs Fix a typo Fix fc-cache fail with -r Rebase ja.orth against Joyo kanji characters Allow the modification on FcTypeVoid with FcTypeLangSet and FcTypeCharSet Workaround another race condition issue Read the config files and fonts on the sysroot when --sysroot is given to fc-cache Fix a segfault Update CaseFolding.txt to Unicode 7.0 Don't read/write from/to the XDG dirs if the home directory is disabled Rework for 5004e8e01f5de30ad01904e57ea0eda006ab3a0c Fix a crash when no sysroot is given and failed to load the default fonts.conf Fix a gcc warning Don't add duplicate lang fallback to the another method to lock when link() failed Increase the refcount in FcConfigSetCurrent() Fix the memory leak in fc-cat Note FcConfigSetCurrent() increases the refcount in document Add FcRangeGetDouble() Revert "Bug 73291 - poppler does not show fl ligature" Update aliases for new URW fonts Returns False if no fonts found fc-cache: make a fail if no fonts processed on a given path fc-cache: Add an option to raise an error if no fonts found Bump the cache version to 5 Fix a typo Behdad Esfahbod (39): Remove unused code Simplify hash code Further simplify hash code Rewrite hashing to use FT_Stream directly Allow passing NULL for file to FcFreeTypeQueryFace() [ko.orth] Remove U+3164 HANGUL FILLER Deprecate FC_HASH and don't compute it Remove unused FcHash code now that FC_HASH is deprecated Update list of blanks to Unicode 6.3.0 Update blanks to Unicode 7.0 Change charset parse/unparse format to be human readable Minor Fix charset unparse after recent changes Comments Remove HASH from matching priorities Fixup previous commit Update mingw32 MemoryBarrier from HarfBuzz More mingw32 MemoryBarrier() fixup Symlinks fix for DESTDIR Revert "Symlinks fix for DESTDIR" Call FcInitDebug from FcFreeTypeQueryFace Decode MacRoman encoding in name table without iconv Ouch, fix buffer Use lang=und instead of lang=xx for "undetermined" Remove unused regex code Improve / cleanup namelang matching Add FC_WEIGHT_DEMILIGHT Change DemiLight from 65 to 55 Linearly interpolate weight values Export recently added API Remove unneeded FcPublic Fix assertion failure If OS/2 table says weight is 1 to 9, multiply by 100 Trebuchet MS is a sans-serif font, not serif Fix previous commit Revert "[fcmatch] When matching, reserve score 0 for when elements don't exist" Fix buffer overflow in copying PS name Add FC_COLOR Treat color fonts as scalable Nick Alcock (1): Generate documentation for FcWeight* functions. 2.11.1 Akira TAGOH (31): do not build test-migration for Win32 Fix build issue on Debian/kFreeBSD 7.0 Update ax_pthread.m4 to the latest version Fix the dynamic loading issue on NetBSD Use stat() if there are no d_type in struct dirent Fix a build issue on Solaris 10 Change the default weight on match to FC_WEIGHT_NORMAL Warn if no nor elements in Correct DTD Re-scan font directories only when it contains subdirs Fix typo Bug 72086 - Check for gperf in autogen.sh Simplify to validate the availability of posix_fadvise Simplify to validate the availability of scandir Fix a typo Fix a build issue on platforms where doesn't support readlink() Improve the performance issue on rescanning directories Bug 73686 - confdir is not set correctly in fontconfig.pc Update zh_hk.orth clean up the unused files Add missing license headers Update the use of autotools' macro Fix a crash issue when empty strings are set to the BDF properties Add a doc for FcDirCacheRescan Add missing #include in fcstat.c Fix incompatible API on AIX with random_r and initstate_r Fallback to lstat() in case the filesystem doesn't support d_type in struct dirent Update doc to include the version info of `since when' Bug 73291 - poppler does not show fl ligature Add README describes the criteria to add/modify the orthography files Fix autoconf warning, warning: AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS Alan Coopersmith (3): Leave room for null terminators in arrays Avoid memory leak when NULL path passed to FcStrBuildFilename Avoid null pointer dereference in FcNameParse if malloc fails Behdad Esfahbod (1): Bug 72380 - Never drop first font when trimming Frederic Crozat (2): Fix inversion between Tinos and Cousine in the comment Add metric aliases for additional Google ChromeOS fonts Jehan (1): Defaulting to LOCAL_APPDATA_FONTCONFIG_CACHE for Win32 build Ross Burton (1): fc-cache: --sysroot option takes an argument 2.11 Akira TAGOH (15): Do not create a config dir for migration when no config files nor dirs Add a test case of the migration for config place Fix memory leaks in FcFreeTypeQueryFace Bug 68955 - Deprecate / remove FC_RASTERIZER Copy all values from the font to the pattern if the pattern doesn't have the element Fix a crash when FcPattern is set to null on FcFontSetList() and FcFontList() Add the description of -q option to the man page avoid reading config.h twice clean up Add the relative path for to fonts.conf if the parent path is same to fonts.conf Workaround the race condition issue on updating cache exit with the error code when FcNameParse() failed Add missing doc for FcStrListFirst and fix a typo Bump libtool revision Update CaseFolding.txt to Unicode 6.3 Jan Alexander Steffens (heftig) (1): Further changes to 30-metric-aliases.conf W. Trevor King (1): doc/fccharset.fncs: Describe the map format in more detail 2.10.95 (2.11 RC5) Akira TAGOH (2): Fix a typo Fix a crash 2.10.94 (2.11 RC4) Akira TAGOH (25): Bug 64906 - FcNameParse() should ignore leading whitespace in parameters Fix a comparison of constant warning with clang Fix a shift count overflow on 32bit box Fix a incompatible pointer warning on NetBSD Add FcTypeUnknown to FcType to avoid comparison of constant -1 Fix the behavior of intermixed tests end edits in match Ignore scandir() check on mingw Use INT_MAX instead of unreliable hardcoding value Add FC_UNUSED to FC_ASSERT_STATIC macro to avoid compiler warning Rework to apply the intermixed test and edit elements in one-pass trivial code optimization Correct fontconfig.pc to add certain dependencies for build Correct fontconfig.pc to add certain dependencies for static build Fix wrong edit position Bug 67809 - Invalid read/write with valgrind when assigning something twice warn deprecated only when migration failed Bug 67845 - Match on FC_SCALABLE Bug 16818 - fontformat in match pattern is not respected? Bug 68340 - More metric compat fonts Bug 63399 - Add default aliases for Georgia, Garamond, Palatino Linotype, Trebuchet MS Fix a typo Fix a crash when non-builtin objects are edited Fix a wrong edit position when 'kind' is different Bug 68587 - copy qu.orth to quz.orth Add quz.orth to Makefile.am Behdad Esfahbod (2): Minor Fix assertion 2.10.93 (2.11 RC3) Akira TAGOH (10): Bug 62980 - matching native fonts with even :lang=en Ensure closing fp on error Obtain fonts data via FT_Face instead of opening a file directly Revert the previous change and rework to not export freetype API outside fcfreetype.c documented FC_HASH and FC_POSTSCRIPT_NAME Bug 63329 - make check fails: .. contents:: :depth: 2 Use the glob matching for filename Bug 63452 - conf.d/README outdated Fix missing OSAtomicCompareAndSwapPtrBarrier() on Mac OS X 10.4 Bug 63922 - FcFreeTypeQueryFace fails on postscripts fonts loaded from memory Sebastian Freundt (1): build-chain, replace INCLUDES directive by AM_CPPFLAGS 2.10.92 (2.11 RC2) Akira TAGOH (33): Fix the build fail on MinGW Bug 50497 - RFE: Add OpenType feature tags support Improve FcGetPrgname() to work on BSD Better fix for 2fe5ddfd Add missing file descriptor to F_DUPFD_CLOEXEC Fix mkstemp absence for some platform Fix installation on MinGW32 Add another approach to FC_PRGNAME for Solaris 10 or before remove the unnecessary code Bug 59385 - Do the right thing for intermixed edit and test elements Bug 23757 - Add mode="delete" to Modernize configure.ac Use AM_MISSING_PROG instead of hardcoding missing Revert "test: Use SH_LOG_COMPILER and AM_TESTS_ENVIRONMENT" Use AM_MISSING_PROG instead of hardcoding missing Bug 50733 - Add font-file hash? Bug 60312 - DIST_SUBDIRS should never appear in a conditional Update _FcMatchers definition logic Bump the cache version to 4 Add Culmus foundry to the vendor list Bug 60748 - broken conf.d/10-autohint.conf and conf.d/10-unhinted.conf Bug 60783 - Add Liberation Sans Narrow to 30-metric-aliases.conf Fix a typo Fix a crash when the object is non-builtin object Fix broken sort order with FcFontSort() Fix a memory leak Bug 59456 - Adding a --sysroot like option to fc-cache Do not copy FC_*LANG_OBJECT even if it's not available on the pattern Fix a SIGSEGV on FcPatternGet* with NULL pattern Bug 38737 - Wishlist: support FC_POSTSCRIPT_NAME Minor cleanup Bump libtool revision Minor fix Behdad Esfahbod (12): Resepct $NOCONFIGURE Ensure we find the uninstalled fontconfig header Copy all values from pattern to font if the font doesn't have the element Minor Bug 59379 - FC_PRGNAME Remove unused checks for common functions Minor Fix fc-cache crash caused by looking up NULL object incorrectly Fix FC_PRGNAME default Fix readlink failure Accept digits as part of OpenType script tags Fix crash with FcConfigSetCurrent(NULL) Christoph J. Thompson (1): Use the PKG_INSTALLDIR macro. Colin Walters (1): build: Only use PKG_INSTALLDIR if available Quentin Glidic (2): test: Use SH_LOG_COMPILER and AM_TESTS_ENVIRONMENT Use LOG_COMPILER and AM_TESTS_ENVIRONMENT 2.10.91 (2.11 RC1) Akira TAGOH (19): Fix a potability issue about stdint.h Fix build issues on clean tree Do not show the deprecation warning if it is a symlink Fix a typo Fix the wrong estimation for the memory usage information in fontconfig Remove the duplicate null-check Remove the dead code clean up Fix a typo that accessing to the out of array Fix a memory leak Check the system font to be initialized Missing header file for _mkdir declaration Clean up the unused variable Bug 47705 - Using O_CLOEXEC missing header file to declare _mkdir Fix a build fail on mingw Fix a typo in the manpages template Bug 29312 - RFE: feature to indicate which characters are missing to satisfy the language support Update the date in README properly Behdad Esfahbod (73): Fix typo Parse matrices of expressions Fix compiler warnings Fix unused-parameter warnings Fix more warnings Fix sign-compare warnings Fix warning Fix more warnings Fixup from 4f6767470f52b287a2923e7e6d8de5fae1993f67 Remove memory accounting and reporting Allow target="font/pattern/default" in elements Don't warn if an unknown element is used in an expression Unbreak build when FC_ARCHITECTURE is defined Remove unneeded stuff Enable fcarch assert checks even when FC_ARCHITECTURE is explicitly given Make tests run on Windows Initialize matrix during name parsing Adjust docs for recent changes Warn if appears in Make FC_DBG_OBJTYPES debug messages into warnings Refuse to set value to unsupported types during config too Add NULL check Don't crash in FcPatternDestroy with NULL pattern Don't crash in FcPatternFormat() with NULL pattern Minor Whitespace Deprecate FcName(Un)RegisterObjectTypes / FcName(Un)RegisterConstants Use a static perfect hash table for object-name lookup Switch .gitignore to git.mk Remove shared-str pool Fix build stuff Add build stuff for threadsafety primitives Add thread-safety primitives Make refcounts, patterns, charsets, strings, and FcLang thread-safe Make FcGetDefaultLang and FcGetDefaultLangs thread-safe Make FcInitDebug() idempotent Make FcDefaultFini() threadsafe Refactor; contain default config in fccfg.c Minor Make default-FcConfig threadsafe Minor Make FcCacheIsMmapSafe() threadsafe Minor Make cache refcounting threadsafe Add a big cache lock Make random-state initialization threadsafe Make cache hash threadsafe Make FcDirCacheDispose() threadsafe Make fcobjs.c thread-safe Warn about undefined/invalid attributes during config parsing Fixup fcobjs.c Remove FcSharedStr* Fix compiler warnings Minor Fix build and warnings on win32 Use CC_FOR_BUILD to generate source files Fix more warnings. Trying to fix distcheck Fix build around true/false Work around Sun CPP Really fix cross-compiling and building of tools this time Second try to make Sun CPP happy Ugh, add Tools.mk Minor Don't use blanks for fc-query Remove FcInit() calls from tools Add 10-scale-bitmap-fonts.conf and enable by default Oops, add the actual file Fix pthreads setup Fix memory corruption! Add pthread test Add atomic ops for Solaris Make linker happy Jon TURNEY (1): Fix build when srcdir != builddir 2.10.2 Akira TAGOH (13): Bug 53585 - Two highly-visible typos in src/fcxml.c Fix for libtoolize's warnings Bug 54138 - X_OK permission is invalid for win32 access(..) calls Bug 52573 - patch required to build 2.10.x with oldish GNU C library headers deal with warnings as errors for the previous change Fix wrongly squashing for the network path on Win32. Fix syntax errors in fonts.dtd. autogen.sh: Add -I option to tell aclocal a place for external m4 files Use automake variable instead of cleaning files in clean-local Bug 56531 - autogen.sh fails due to missing 'm4' directory Bug 57114 - regression on FcFontMatch with namelang Update CaseFolding.txt to Unicode 6.2 Bug 57286 - Remove UnBatang and Baekmuk Batang from monospace in 65-nonlatin.conf Behdad Esfahbod (1): Fix N'ko orthography Jeremy Huddleston Sequoia (1): Remove _CONFIG_FIXUPS_H_ guards, so multiple includes of "config.h" result in the correct values 2.10.1 Akira TAGOH (2): Fix a typo in fontconfig.pc Install config files first 2.10.0 Akira TAGOH (5): Bug 34266 - configs silently ignored if libxml2 doesn't support SAX1 interface Update CaseFolding.txt to Unicode 6.1 Fix a build fail with gcc 2.95, not supporting the flexible array members. Bump libtool revision Update INSTALL 2.9.92 (2.10 RC2) Akira TAGOH (9): Bug 50835 - Deprecate FC_GLOBAL_ADVANCE Fix a typo and build fail. Fix a build fail on MINGW Fix the fail of make install with --disable-shared on Win32 clean up the lock file properly on even hardlink-not-supported filesystem. Rename configure.in to configure.ac Bug 18726 - RFE: help write locale-specific tests Bump libtool revision Update INSTALL Marius Tolzmann (2): Fix newline in warning about deprecated config includes Fix warning about deprecated, non-existent config includes 2.9.91 (2.10 RC1) Akira TAGOH (60): [doc] Update the path for cache files and the version. [doc] Update for cachedir. Revert "Fix a build fail on some environment." Revert "Fix a build fail on some environment" Fix a build issue due to the use of non-portable variables Get rid of the prerequisites from the sufix rules Bug 39914 - Please tag the cache directory with CACHEDIR.TAG fc-cache: improvement of the fix for Bug#39914. fcmatch: Set FcResultMatch at the end if the return value is valid. Bug 47703 - SimSun default family Bug 17722 - Don't overwrite user's configurations in default config Fix a memory leak in FcDirScanConfig() Bug 17832 - Memory leaks due to FcStrStaticName use for external patterns fcpat: Increase the number of buckets in the shared string hash table Fix the hardcoded cache file suffix Move workaround macros for fat binaries into the separate header file Bug 48020 - Fix for src/makealias on Solaris 10 Bug 24729 - [ne_NP] Fix ortho file doc: Add contains and not_contains operators and elements Use AC_HELP_STRING instead of formatting manually Use pkgconfig to check builddeps Bug 29341 - Make some fontconfig paths configurable Bug 22862 - ignores s Bug 26830 - Add search for libiconv non-default directory Bug 28491 - Allow matching on FC_FILE Bug 48573 - platform without regex do not have also REG_XXX defines Bug 27526 - Compatibility fix for old windows sytems Add --with-expat, --with-expat-includes and --with-expat-lib back. doc: Fix a typo of the environment variable name. Bug 25151 - Move cleanCacheDirectory() from fc-cache.c into Rework to avoid adding the unexpected value to ICONV_CFLAGS and ICONV_LIBS Fix a build issue again when no regex functions available C++11 requires a space between literal and identifier Bug 47721 - Add ChromeOS fonts to 30-metric-aliases.conf Create CACHEDIR.TAG when fc-cache is run or only when the cache directory is created at the runtime. Add --enable-iconv option to configure Bug 27765 - FcMatch() returns style in wrong language Disable iconv support anyway... Bug 39278 - make usage of mmap optional Output more verbose debugging log to show where to insert the element into the value list fonts.conf: keeps same binding for alternatives fcarch.c: get rid of the duplicate definition of FC_MAX Bug 19128 - Handling whitespace in aliases Bug 20411 - fontconfig doesn't match FreeDesktop directories specs Correct the example Bug 33644 - Fontconfig doesn't match correctly in fcatomic: fallback to create a directory with FcAtomicLock Move statfs/statvfs wrapper to fcstat.c and add a test for the mtime broken fs Fix the build fail on Solaris Fix a typo and polish the previous change Fix the wrong estimation for the memory usage information in fontconfig Bug 32853 - Export API to get the default language fcdefault: fallback if the environment variables are empty Add the default language to the pattern prior to do build the substitution fcdefault: no need to set FC_LANG in FcDefaultSubstitute() anymore fcdefault: Add the lang object at FcConfigSubstituteWithPat() only when kind is FcMatchPattern Bug 50525 - superfluous whitespace in the style Bump libtool revision doc: Fix distcheck error again... Generate bzip2-compressed tarball too Jeremy Huddleston (1): fcarch: Check for architecture signature at compile time rather than configure time Keith Packard (3): Use posix_fadvise to speed startup Extra ',' in AC_ARG_WITH(arch causes arch to never be autodetected Deal with architectures where ALIGNOF_DOUBLE < 4 Mark Brand (1): fix building for WIN32 Mikhail Gusarov (2): Move FcStat to separate compilation unit Fix cache aging for fonts on FAT filesystem under Linux 2.9 Akira TAGOH (28): Add charset editing feature. add some document for range and charset. Add the range support in blank element Add editing langset feature. add some documents Bug 24744 - No n'ko orthography Remove the unnecessary comment in ks.orth Bug 32965 - Asturian (ast-ES) language matching missing ḷḷḥ Add a missing file Bug 35517 - Remove Apple Roman cmap support Bug 40452 - Running 'fc-match --all' core dumps when no fonts are installed Get rid of the unexpected family name Bug 44826 - must contain only a single Bug 46169 - Pointer error in FcConfigGlobMatch Do not update stream->pos when seeking is failed. Bug 27385 - lcdfilter settings for freetype-2.3.12 not available in fontconfig-2.8.0 Add brx.orth and sat.orth Bug 41694 - FcCache functions have random-number-generator side effects Bug 23336 - unable to display bitmap-only (SFNT) TrueType or OpenType Check null value for given object to avoid possibly segfaulting Bug 19128 - Handling whitespace in aliases Fix distcheck error Update the version info Update to detect the uncommited changes properly Fix a build issue Fix a build fail on some environment Fix a build fail on some environment. Get rid of $< from Makefile.am Alan Coopersmith (1): Fix compiler warnings Behdad Esfahbod (54): [fc-cache] Document -r argument in man page [doc] Fix typo Bug 25508 configure assumes bash > 2.0 is on system Update INSTALL Add note about autogen.sh to INSTALL Fix doc typo More doc typo fixes Bug 18886 installation crashes if fontconfig already installed Bug 26157 Solaris/Sun C 5.8: compilation of 2.8.0 and 2.7.3 fails Bug 25152 Don't sleep(2) if all caches were uptodate Don't include unistd.h in fontconfig.h Accept TT_PLATFORM_MICROSOFT, TT_MS_ID_SYMBOL_CS from name table Whitespace More whitespace Remove all training whitespaces Fix comment Add fc-pattern cmdline tool Bug 29338 - fc-pattern.sgml, open para tag Add comments Bug 29995 - fc-cat does not invoke FcFini() Add new public API: FcCharSetDelChar() [fc-lang] Support excluding characters Bug 24729 - [ne_NP] Fix ortho file Add more copyright owners Cleanup copyright notices to replace "Keith Packard" with "the author(s)" Fix returned value Bug 28958 - lang=en matches other langs Make most generated-files cross-compiling-safe Make fc-arch stuff cross-compiling-safe Bump version Allow editing charset and lang in target="scan" Add support for into the DTD Skip elements with begin > end Doc nit Fix assertion failure on le32d4 Remove AM_MAINTAINER_MODE Update CaseFolding.txt to Unicode 6.0 Remove --enable-maintainer-mode from autogen.sh Bug 20113 - Uighur (ug) orthography incomplete Bug 30566 - fcformat.c:interpret_enumerate() passes uninitialized idx to FcPatternGetLangSet() Mark constant strings as constant More doc typo fixes Always define FcStat as a function Fix warning Bug 35587 - Add padding to make valgrind and glibc not hate each other [.gitignore] Update Bug 36577 - Updating cache with no-bitmaps disables bitmap fonts... Bug 26718 - "fc-match sans file" doesn't work Switch fc-match to use FcPatternFormat() Switch fc-cat to use FcPatternFormat() Fix stupid bug in FcFontSort() Bug 41171 - Invalid use of memset Fix parallel build Add FcPublic to FcLangSetUnion and FcLangSetSubtract Brad Hards (1): Documentation fixes Jeremy Huddleston (2): fontconfig.pc: Add variables for confdir and cachedir fontconfig.pc.in: Add sysconfdir, localstatedir, and PACKAGE Jinkyu Yi (1): Bug 42423 - make default Korean font from Un to Nanum MINAMI Hirokazu (1): Bug 43406 - typo of Japanese font name in conf.d/65-nonlatin.conf Mike Frysinger (9): FcStrPlus: optimize a little delete unused variables FcStat: change to FcChar8 for first arg fc-cat: fix pointer warning FcName{,Get}Constant: constify string input fc-{list,match}: constify format string fix build warnings when using --with-arch FcObjectValidType: tweak -1 checking makealias: handle missing funcs better Parag Nemade (2): Bug 25651 - Add ortho file for locale brx_IN Bug 25650 - Add ortho file for locale sat_IN Pravin Satpute (4): Bug 27195 - need updates to ks.orth file Bug 43321 - Required corrections in urdu.orth file Bug 25653 - Add ortho file for locale doi_IN Bug 25652 - Add ortho file for locale mni_IN 2.8 Behdad Esfahbod (24): Clarify default confdir and cachedir better. Move FcAlign to fcint.h [fc-arch] Add FcAlign to arch signature [int] Define MIN/MAX/ABS macros Bump cache version up from 2 to 3 and fix FcLangSet caching/crash Remove unused macros [int] Remove fc_storage_type() in favor of direct access to v->type [int] Remove fc_value_* macros that did nothing other than renaming Enable automake silent rules [int] Remove more unused macros [xml] Remove unused code [arch] Try to ensure proper FcLangSet alignment in arch [lang] Fix serializing LangSet from older versions Make sure fclang.h and fcarch.h are built Remove bogus comment [fc-glyphname] Cleanup Makefile.am [src] Create fcglyphname.h automatically [fc-glyphname] Rename internal arrays to prefix with _fc_ Clean up Makefile's a bit [fc-glyphname] Remove Adobe glyphlist [fc-case] Update CaseFolding.txt to Unicode 5.2.0 [fc-arch] Beautify the arch template [fc-arch] Rename architecture names to better reflect what they are Bump libtool revision in preparation for release 2.7.3 Behdad Esfahbod (2): Use default config in FcFileScan() and FcDirScan() Bump libtool version in preparation for release Roozbeh Pournader (2): Correct Ewe (ee) orthography to use U+025B (bug #20711) Updated Arabic, Persian, and Urdu orthographies 2.7.2 Behdad Esfahbod (6): Improve charset printing [ja.orth] Comment out FULLWIDTH YEN SIGN (#22942) Bug 22037 - No Fonts installed on a default install on Windows Server 2003 Bug 23419 - "contains" expression seems not working on the fontconfig rule Revert "Fix FcNameUnparseLangSet()" and redo it Bump libtool version for release Tor Lillqvist (3): Fix MinGW compilation Fix heap corruption on Windows in FcEndElement() Use multi-byte codepage aware string function on Windows 2.7.1 Behdad Esfahbod (16): git-tag -s again Fix win32 build Replace spaces with tabs in conf files Remove unused ftglue code Add Inconsolata to monospace config (#22710) Fix leak with string VStack objects Improve libtool version parsing (#22122) Use GetSystemWindowsDirectory() instead of GetWindowsDirectory() (#22037) Remove unused macros Fix FcNameUnparseLangSet() Fix doc syntax (#22902) TT_MS_ID_UCS_4 is really UTF-16BE, not UTF-32 [doc] Add ~/fonts.conf.d to user docs Hardcode /etc/fonts instead of @CONFDIR@ in docs (#22911) Bump libtool versions that 2.7.0 (I forgot to do back then) Update .gitignore Karl Tomlinson (1): Don't change the order of names unnecessarily (#20128) 2.7 Alexey Khoroshilov (1): Use human-readable file names in the docs (bug #16278) Behdad Esfahbod (119): Avoid C99ism in Win32 code (#16651) [doc] Fix inaccuracy in FcFontRenderPrepare docs (#16985) When canonizing filenames, squash // and remove final / (#bug 16286) Add orth file for Maithili mai.orth (#15821) Replace RCS Id tags with the file name [doc] Fix signatures of FcPatternGetFTFace and FcPatternGetLangSet (#16272) Update Thai default families (#16223) Add ~/.fonts.conf.d to default config (#17100) [fc-match] Fix list of getopt options in --help Update man pages Add fc-query (#13019) Implement fc-list --verbose (#13015) [doc] Add const decorator for FcPatternDuplicate() Add FcPatternFilter() (#13016) [doc] Document that a zero rescanInterval disables automatic checks (#17103) Get rid of $Id$ tags [doc] Fix signature of FcConfigHome() Fix docs re 'orig' argument of FcPatternBuild and family Update sr.orth to actul subset of Cyrillic used by Serbian (#17208) Add Sindhi .orth file. (#17140) Add WenQuanYi fonts to default conf (#17262, from Mandriva) Handle -h and --help according to GNU Coding Standards (#17104) Document when config can be NULL (#17105) Add FcConfigReference() (#17124) Document how to free return value of FcNameUnparse() Don't leak FcValues string loaded through fcxml.c (#17661) Don't call FcPatternGetCharSet in FcSortWalk unless we need to (#17361) Fix two more doc typos [.gitignore] Update Cleanup symlinks in "make uninstall" (bug #18885) [fccache] Consistently use FcStat() over stat() (bug #18195) Consistently use FcStat() over stat() in all places Use __builtin_popcount() when available (bug #17592) Fix compile with old FreeType that doesn't have FT_Select_Size() (bug #17498) Implement fc-list --quiet ala grep (bug #17141) [65-fonts-persian.conf] Set foundry in target=scan instead of target=font Don't use identifier named complex Explicitly chmod() directories (bug #18934) Remove special-casing of FC_FILE in FcPatternPrint() [.gitignore] Update Implement FcPatternFormat and use it in cmdline tools (bug #17107) Fix comparison of family names to ignore leading space properly [fcmatch.c] Fix debug formatting [fcmatch] Use larger multipliers to enforce order [fcmatch] When matching, reserve score 0 for when elements don't exist [fcmatch] Move FcFontSetMatch() functionality into FcFontSetMatchInternal() [doc] Note that fontset returned by FcConfigGetFonts should not be modified Make FcCharSetMerge() public Don't use FcCharSetCopy in FcCharSetMerge Oops. Fix usage output. Revive FcConfigScan() (bug #17121) Add fc-scan too that runs FcFileScan/FcDirScan Oops, fix FcPatternFilter [fc-match] Accept list of elements like fc-list (bug #13017) Cleanup all manpage.* files [fcmatch] Fix crash when no fonts are available. [fcfreetype] Fix typo in GB2312 encoding name string (#19845) Add ICONV_LIBS to fontconfig.pc.in (#19606) [win32] Fix usage of GetFullPathName() [win32] Expand "APPSHAREFONTDIR" to ../share/fonts relative to binary location [win32] Do not remove leading '\\' such that network paths work [fccache] Make sure the cache is current when reusing from open caches Update Sinhala orthography (#19288) [cache] After writing cache to file, update the internal copy to reflect this Further update Sinhala orthography (#19288) [fcformat] Add support for width modifiers [fcformat] Refactor and restructure code for upcoming changes [fcformat] Add support for subexpressions [fcformat] Add element filtering and deletion [fcformat] Add conditionals [fcformat] Add simple converters [fcformat] Implement 'cescape', 'shescape', and 'xmlescape' converters [FcStrBuf] better handle malloc failure [fcformat] Add value-count syntax [fcformat] Implement 'delete', 'escape', and 'translate' filter functions [fcformat] Start adding builtins [fcformat] Refactor code to avoid malloc [fcformat] Add support for builtin formats [fcformat] Support indexing simple tags [fcformat] Support 'default value' for simple tags [fcformat] Implement array enumeration [fclang] Implement FcLangSetGetLangs() (#18846) [fcformat] Enumerate langsets like we do arrays of values [fcformat] Add a 'pkgkit' builtin that prints tags for font packages [fcformat] Add list of undocumented language features [fc-lang] Continue parsing after an "include" (#20179) Fix Fanti (fat) orth file (#20390) Fix Makefile's to not create target file in case of failure [fcstr.c] Embed a static 64-byte buffer in FcStrBuf [fcstr,fcxml] Don't copy FcStrBuf contents when we would free it soon [fcxml] Don't allocate attr array if there are no attributes [fcxml] Embed 8 static FcPStack objects in FcConfigParse [fcxml] Embed 64 static FcVStack objects in FcConfigParse [fcxml.c] Embed a static 64-byte attr buffer in FcPStack Call git tools using "git cmd" instead of "git-cmd" syntax Replace 'KEITH PACKARD' with 'THE AUTHOR(S)' in license text in all files [fcformat] Fix default-value handling Document FcPatternFormat() format [Makefile.am] Don't clean ChangeLog in distclean Revert "[conf] Disable hinting when emboldening (#19904)" (#20599) [fc-lang] Fix bug in country map generation [fcstr] Remove unused variable [fc-lang] Make LangSet representation in the cache files stable [fc-cache] Remove obsolete sentence from man page Detect TrueType Collections by checking the font data header Mark matchers array const (#21935) Use/prefer WWS family/style (name table id 21/22) Simplify FcValueSave() semantics Add XXX note about Unicode Plane 16 Always set *changed in FcCharsetMerge [charset] Grow internal FcCharset arrays exponentially Remove unused prototypes and function [xml] Centralize FcExpr allocation [xml] Mark more symbols static [xml] Allocate FcExpr's in a pool in FcConfig [xml] Intern more strings Bug 22154 -- fontconfig.pc doesn't include libxml2 link flags Fix distcheck Remove keithp's GPG key id Benjamin Close (1): Remove build manpage logfile if it exists Chris Wilson (1): Reduce number of allocations during FcSortWalk(). Dan Nicholson (1): Let make expand fc_cachedir/FC_CACHEDIR (bug #18675) Harald Fernengel (1): Don't use variables named 'bool' (bug #18851) Harshula Jayasuriya (1): Fix Sinhala coverage (bug #19288) Karl Tomlinson (1): Change FcCharSetMerge API Mike FABIAN (1): [conf] Disable hinting when emboldening (#19904) Peter (1): Make sure alias files are built first (bug 16464) Rahul Bhalerao (1): Add config for new Indic fonts (bug #17856) Roozbeh Pournader (60): Correct Sindhi orthography to use Arabic script (bug #17140) Remove Sinhala characters not in modern use (bug #19288) Add Filipino orth, alias Tagalog to Filipino (bug #19846) Split Mongolian orth to Mongolia and China (bug #19847) Fix doubly encoded UTF-8 in comments (bug #19848) Change Turkmen orth from Cyrillic to Latin (bug #19849) Rename Venda from "ven" to "ve" (bug #19852) Rename "ku" to "ku_am", add "ku_iq" (bug #19853). Add Kashubian (csb) orth file (bug #19866) Add Malay (ms) orthography (bug #19867) Add Kinyarwanda (rw) orthography (bug #19868) Add Upper Sorbian (hsb) orthography (bug #19870) Add Berber orthographies in Latin and Tifinagh scripts (bug #19881) Renamed az to az_az (bug #19889) Rename Igbo from "ibo" to "ig" (bug #19892) Remove punctuation symbols from Asturian orthography (bug #19893) Add Chhattisgarhi (hne) orthography (bug #19891) Use newly added Cyrillic letters for Kurdish (bug #20049) Add Kurdish in Turkey (ku_tr) orthography (bug #19891) Add Aragonese (an) orthography (bug #19891) Add Haitian Creole (ht) orthography (bug #19891) Ad Ganda (lg) orthography (bug #19891) Add Limburgan (li) orthography (bug #19891) Add Sardinian (sc) orthography (bug #19891) Add Sidamo (sid) and Wolaitta (wal) orthographies (bug #19891) Fix Bengali (bn) and Assamese (as) orthographies (bug #22924) Remove Euro Sign from all orthographies (bug #19865) Add Ottoman Turkish (ota) orthography (bug #20114) Divide Panjabi (pa) to that of Pakistan and India (bug #19890) Add Blin (byn) orthography (bug #19891) Add Papiamento (pap_aw, pap_an) orthographies (bug #19891) Add Crimean Tatar (crh) orthography (bug #19891) Switch Uzbek (uz) orthography to Latin (bug #19851) Update Azerbaijani in Latin (az_az) to present usage (bug #20173) Rename Avaric orthography from 'ava' to 'av' (bug #20174) Rename Bambara orthography from 'bam' to 'bm' (bug #20175) Rename Fulah orthography from 'ful' to 'ff' (bug #20177) Change Kashmiri (ks) orthography to Arabic script (bug #20200) Tighten Central Khmer (km) orthography (bug #20202) Remove digits and symbols from some Indic orthographies (bug #20204) Add Divehi (dv) orthography (bug #20207) Extend Crimean Tatar (crh) orthography (bug #19891) Update Serbo-Croatian (sh) orthography (bug #20368) Add Ewe (ee) orthography (bug #20386) Add Herero (hz) orthograhy (bug #20387) Add Akan (ak) and Fanti (fat) orthographies (bug #20390) Added Quechua (qu) orthography (bug #20392) Add Sango (sg) orthography (bug #20393) Add Tahitian (ty) orthography (bug #20391) Add Navajo (nv) orthography (bug #20395) Add Rundi (rn) orthography (bug #20398) Add Zhuang (za) orthography (bug #20399) Add orthographies for Oshiwambo languages (bug #20401) Add Shona (sn) orthography (bug #20394) Add Sichuan Yi (ii) orthography (bug #20402) Add Javanese (jv) orthography (bug #20403) Add Nauru (na) orthography (bug #20418) Add Kanuri (kr) orthography (bug #20438) Add Sundanese (su) orthography (bug #20440) Reorganize Panjabi/Punjabi and Lahnda orthographies (bug #19890) Serge van den Boom (1): Correctly handle mmap() failure (#21062) 2.6 2.5.93 (2.6 RC3) Alexey Khoroshilov (1): Fix FcStrDirname documentation. (bug 16068) Behdad Esfahbod (1): Persian conf update. (bug 16066). Evgeniy Stepanov (1): Fix index/offset for 'decorative' matcher. Bug 15890. Glen Low (1): Fix Win32 build error: install tries to run fc-cache locally (bug 15928). Keith Packard (8): Call FcFini to make memory debugging easier Fix a few memory tracking mistakes. Add extended, caps, dunhill style mappings. Freetype 2.3.5 (2007-jul-02) fixes indic font hinting. re-enable (bug 15822) Add a copy of dolt.m4 to acinclude.m4. Libs.private needs freetype libraries Oops. Fix for bug 15928 used wrong path for installed fc-cache. Ignore empty

elements Neskie Manuel (1): Add Secwepemctsin Orthography. Bug 15996. Sayamindu Dasgupta (1): FcConfigUptoDate breaks if directory mtime is in the future. Bug 14424. 2.5.92 (2.6 RC2) Carlo Bramini (1): Add FreeType-dependent functions to fontconfig.def file. (bug 15415) Changwoo Ryu (1): Korean font in the default config - replacing baekmuk with un (bug 13569) Dennis Schridde (1): Proper config path for static libraries in win32 Eric Anholt (1): Fix build with !ENABLE_DOCS and no built manpages. Frederic Crozat (1): Merge some of Mandriva configuration into upstream configuration. Bug 13247 Keith Packard (11): Use DOLT if available Work around for bitmap-only TrueType fonts that are missing the glyf table. Remove size and dpi values from bitmap fonts. Bug 8765. Add some sample cursive and fantasy families. Add --all flag to fc-match to show the untrimmed list. Bug 13018. Remove doltcompile in distclean Use of ":=" in src/Makefile.am is unportable (bug 14420) Make fc-match behave better when style is unknown (bug 15332) Deal with libtool 2.2 which doesn't let us use LT_ variables. (bug 15692) Allow for RC versions in README update git ignore doltcompile Ryan Schmidt (1): fontconfig build fails if "head" is missing or unusable (bug 14304) Sylvain Pasche (1): Fontconfig options for freetype sub-pixel filter configuration 2.5.91 (2.6 RC1) Hongbo Zhao (1): Not_contain should use strstr, not strcmp on strings. (bug 13632) Keith Packard (11): Move conf.avail/README to conf.d/README (bug 13392) Fix OOM failure case in FcPStackPush. Remove freetype requirement for build-time applications. Include fcftaliastail.h so that the freetype funcs are exported. Eliminate references to freetype from utility Makefile.am's Distribute new fcftint.h file Create new-version.sh to help with releases, update INSTALL instructions Distribute khmer font aliases Add more files to .gitignore new-version.sh was mis-editing files git-tag requires space after -m flag 2.5 Keith Packard (4): Document several function return values (Bug 13145). Document that Match calls FcFontRenderPrepare (bug 13162). Document that FcConfigGetFonts returns the internal fontset (bug 13197) Revert "Remove fcprivate.h, move the remaining macros to fcint.h." Tor Lillqvist (1): Workaround for stat() brokenness in Microsoft's C library (bug 8526) 2.4.92 (2.5 RC2) Behdad Esfahbod (14): Make fc-match --sort call FcFontRenderPrepare. Port fonts-persian.conf to new alias syntax with binding="same" Fix trivial bugs in edit-sgml.c Add FcGetLangs() and FcLangGetCharSet(). Add/update config files from Fedora. Split 40-generic.conf into 40-nonlatin.conf and 45-latin.conf Use binding="same" in 30-urw-aliases.conf and remove duplicate entries. Remove redundant/obsolete comments from conf files. Remove 20-lohit-gujarati.conf. It's covered by 25-unhint-nonlatin.conf now. Oops, fix Makefile.am. Remove 25-unhint-nonlatin.conf from default configuration by not linking it. Fix documented conf-file naming format in README Remove list of available conf files from README. Simplify/improve 30-metric-aliases.conf Keith Packard (25): Also check configDirs mtimes in FcConfigUptoDate Respect "binding" attribute in entries. Correct documentation for FcAtomicLock (Bug 12947). Remove fcprivate.h, move the remaining macros to fcint.h. Correct documentation for FcConfigUptoDate (bug 12948). Document skipping of fonts from FcFileScan/FcDirScan. Make file_stat argument to FcDirCacheLoadFile optional. Clean up exported names in fontconfig.h. Track line numbers in sgml edit tool input. Typo error in function name: Inverval -> interval Don't check cache file time stamps when cleaning cache dir. Use FcLangDifferentTerritory instead of FcLangDifferentCountry. Verify documentation covers exposed symbols. Document previously undocumented functions. (bug 12963) Update documentation for FcStrCopyFilename (bug 12964). Update documentation for stale FcConfigGetConfig function. Have FcConfigSetCurrent accept the current configuration and simply return Remove references to FcConfigParse and FcConfigLoad. Replace incorrect documentation uses of 'char' with 'FcChar8' (bug 13002). Fix formatting syntax in doc/fccache.fncs Generate fccache.sgml, fcdircache.sgml and fclangset.sgml. Formatting syntax mistake in doc/fclangset.fncs. Link new function documentation into the fontconfig-devel.sgml Ignore new generated documentation Export FcConfig{G,S}etRescanInverval from .so, mark as deprecated. 2.4.91 (2.5 RC1) Behdad Esfahbod (1): Update CaseFolding.txt to Unicode 5.1.0 Dwayne Bailey (1): Add/fix *.orth files for South African languages Hideki Yamane (1): Handle Japanese fonts better. (debian bug #435971) Keith Packard (32): rehash increment could be zero, causing rehash infinite loop. Work around FreeType bug when glyph name buffer is too small. Free temporary string in FcDirCacheUnlink (Bug #11758) Fix ChangeLog generation to avoid circular make dependency Store font directory mtime in cache file. Comment about mmaping cache files was misleading. Make FC_FULLNAME include all fullname entries, elide nothing. [bug 12827] Remove unneeded call to access(2) in fc-cache. Improve verbose messages from fc-cache. Verbose message about cleaning directories was imprecise Don't use X_OK bit when checking for writable directories (bug 12438) Have fc-cache remove invalid cache files from cache directories. FcConfigParseAndLoad doc was missing the last param. Place language name in constant array instead of pointer. Must not insert cache into hash table before completely validating. Eliminate relocations for glyph name table. Eliminate relocations from FcCodePageRange structure (bug 10982). Leave generated headers out of distribution (bug 12734). Move elements to the end of fonts.conf. Add BRAILLE PATTERN BLANK to list of blank glyphs. Replace makealias pattern with something supported by POSIX grep (bug 11083) FcInit should return FcFalse when FcInitLoadConfigAndFonts fails. (bug 10976) There is no U+1257 (bug 10899). Spelling errors in documentation. (bug 10879). Oops. Left debugging printf in previous commit. Handle UltraBlack weight. Fix parallel build in fontconfig/docs (bug 10481). Distribute man source files for command line programs (bug 9678). Ensure weight/slant values present even when style is supplied (bug 9313). fontconfig needs configure option to use gnu iconv (bug 4083). Match 'ultra' on word boundaries to detect ultra bold fonts. (bug 2511) Build fix for Solaris 10 with GCC. Mike FABIAN (1): Avoid crashes if config files contain junk. Stephan Kulow (1): Make FcPatternDuplicate copy the binding instead of always using Strong. Tilman Sauerbeck (2): Store FcNoticeFoundries in read-only memory. Store FcVendorFoundries in read-only memory. 2.4.2 Han-Wen Nienhuys: FcStrCanonFileName buggy for mingw. (bug 8311) More fixes for Win32 building (bug 8311) Kean Johnston: Don't use varargs CPP macros in fccache.c. (bug 8733) Keith Packard: Remove documentation for non-existant FcConfigNormalizeFontDir. Build fontconfig.def from header files when needed. Detect and use available random number generator (bug 8308) Add sparc64 architecture string. FcStrCanonAbsoluteFilename should be static. Use explicit platform/nameid order when scanning ttf files. Warn (and recover) from config file without elements. Avoid writing uninitialized structure pad bytes to cache files. Fix grep pattern in makealias to work on non-Gnu grep (bug 8368). Add FcFreeTypeQueryFace external API. Bug #7311. Segfault scanning non-font files. Disallow scan edit of user vars. (#8767) Add space between type and formal in devel man pages (bug 8935) Mike FABIAN: Do not clean cache files for different architectures Peter Breitenlohner: A VPATH build of fontconfig-2.4.1 fails for various reasons. Bug 8933. Use instead of when documenting fonts.conf. Bug 8935. Fix fc-cat documentation (bug 8935). 2.4.1 Keith Packard: Update installation notes for 2.4 base. Add ppc64 signature. Bug 8227 Add signatures for m68k and mipsel (thanks debian buildd) Add warning flags to fc-cache build. Clean up warnings in fc-cache. Reimplement FcConfigAppFontAddDir; function was lost in 2.4.0. 2.4.0 David Turner: Replace character discovery loop with simpler, faster version. James Cloos: Move files from conf.d to conf.avail Standardize conf.avail number prefixing convention Support all five possibilities for sub-pixel Move user and local conf file loading into conf.avail files Number the remaining conf.avail files Update Makefile.am to match conf.avail changes Replace load of conf.d in fonts.conf.in Make room for chunks from fonts.conf in conf.avail Re-order old conf.d files Move some section from fonts.conf into conf.avail files Update Makefile.am files Make conf.avail and conf.d work Keith Packard: Create fc_cachedir at install time. Bug 8157. Reference patterns in FcCacheCopySet. Replace gnu-specific sed command with simple grep. Attempt to fix makealias usage for build on Mac OS X. Accept locale environment variables that do not contain territory. Merge branch 'jhcloos' Insert newly created caches into reference data structure. Add XML headers to new conf files. Move link make commands to conf.avail dir Rename conf.avail to conf.d Fix conf.d directory sorting. Include cachedir in fonts.dtd. Don't display tests for DESTDIR on make install. Split much of the configuration into separate files. Renumber files 2.3.97 Carl Worth: Rename FcPatternThawAll to FcPatternFini. Add a configuration file that disables hinting for the Lohit Gujarati font Keith Packard: Various GCC 4 cleanups for signed vs unsigned char Finish INSTALL changes. .gitignore ChangeLog Merge branch 'fc-2_4_branch' to master Remove all .cvsignore files Hide private functions in shared library. Export functionality for utilities. Hide FreeType glue code from library ABI. Can't typecheck values for objects with no known type. Leave cache files mapped permanently. Reference count cache objects. Make cache reference counting more efficient. Oops, fc-lang broke when I added cache referencing. Correct reference count when sharing cache file objects. Eliminate .so PLT entries for local symbols. (thanks to Arjan van de Ven) Update architecture signatures for x86-64 and ppc. Parallel build fix for fcalias.h and fcaliastail.h Charset hashing depended on uniqueness of leaves. Patrick Lam: file Makefile.am was initially added on branch fc-2_4_branch. Modify config file to use Greek fonts before Asian fonts with Greek glyphs. Use libtool -no-undefined flag on all platforms. file ftglue.c was initially added on branch fc-2_4_branch. 2005-11-23 Frederic Crozat : reviewed by: plam file 10-fonts-persian.conf was initially added on branch fc-2_4_branch. Sort directory entries while scanning them from disk; prevents Heisenbugs file ln.orth was initially added on branch fc-2_4_branch. Fix typos in orth files. Reported by Denis Jacquerye. On Windows, unlink before rename. Reported by Tim Evans. file fc-match.sgml was initially added on branch fc-2_4_branch. 2.3.96 Keith Packard: Make path names in cache files absolute (NB, cache format change) Stop Eliminate pattern freezing Add .gitignore Construct short architecture name from architecture signature. Write caches to first directory with permission. Valid cache in FcDirCacheOpen. Eliminate NormalizeDir. Eliminate gratuitous stat/access calls per dir. Add architecture to cache filename. Eliminate global cache. Eliminate multi-arch cache code. Fix up fc-cache and fc-cat for no global cache changes. Eliminate ./ and ../ elements from font directory names when scanning. Regenerate x86 line in fcarch.tmpl.h to match change in cache data. Add x86-64 architecture and signature. During test run, remove cache directory to avoid stale cache usage. Add ppc architecture Revert to original FcFontSetMatch algorithm to avoid losing fonts. Rework cache files to use offsets for all data structures. Fix build problems caused by cache rework. FcCharSetSerialize was using wrong offset for leaves. Make fc-cat work. Rework Object name database to unify typechecking and object lookup. Skip broken caches. Cache files are auto-written, don't rewrite in fc-cache. Fix fc-cat again. Sigh. Use intptr_t instead of off_t inside FcCache structure. Serialized value lists were only including one value. Automatically remove invalid cache files. With no args, fc-cat now dumps all directories. Revert ABI changes from version 2.3 Change $(pkgcachedir) to $(fc_cachedir) in fc-cat and fc-cache Makefile.am Allow FcTypeLangSet to match either FcTypeLangSet or FcTypeString. Remove stale architecture signatures. Pass directory information around in FcCache structure. Freeze charsets. Fix fc-lang to use new charset freezer API. Fontset pattern references are relative to fontset, not array. Add some ignores Only rebuild caches for system fonts at make install time. Fix memory leaks in fc-cache directory cleaning code. Add @EXPAT_LIBS@ to Libs.private in fontconfig.pc (bug 7683) Avoid #warning directives on non-GCC compilers. (bug 7683) Chinese/Macau needs the Hong Kong orthography instead of Taiwan (bug 7884) Add Assamese orthography (as.orth). Bug #8050 Really only rebuild caches for system fonts at make install time. Fonts matching lang not territory should satisfy sort pattern lang. Prefer Bitstream Vera to DejaVu families. Guess that mac roman names with lots of high bits are actually SJIS. Document FC_DEBUG values (bug 6393). Document name \ escape syntax. Move Free family names to bottom of respective aliases. (bug 7429) Unify directory canonicalization into FcStrAddFilename. Allow font caches to contain newer version numbers Add FcMatchScan to resolve Delicious font matching issues (bug #6769) Fix missing initialization/destruction of new 'scan' target subst list. Don't segfault when string values can't be parsed as charsets or langsets. Using uninitialized (and wrong) variable in FcStrCopyFilename. Oops; missed the 60-delicious.conf file. Patrick Lam: Keith Packard 2006-04-27 Paolo Borelli (pborelli@katamail.com) reviewed by: plam 2006-05-31 Yong Li (rigel863@gmail.com) reviewed by: plam, Bedhad Esfahbod 2006-07-19 Jon Burgess (jburgess@uklinux.net) reviewed by: plam 2006-08-04 Keith Packard (keithp@keithp.com) reviewed by: plam 2.3.95 Match 'Standard Symbols L' for 'Symbol'. Add URW fonts as aliases for all of the PostScript fonts. (reported by Miguel Rodriguez). Fix a number of Coverity defects (Frederic Crozat). Speed up FcFontSort (fix suggested by Kenichi Handa). Fix error with charsets. Survive missing docbook2pdf. Compile on HP-UX, AIX, SGI and Windows (Cygwin, MinGW). Fix intel compiler warnings. Fix multiarch support (don't destroy multiarch files!) Require pkg-config. (Thanks Behdad; better solution wanted for libxml2 detection!) Fix typos in orth files and add orth for Lingala (reported by Denis Jacquerye). Remove debian/ directory. Add a configuration file that disables hinting for the Lohit Gujarati font (since the hinting distorts some glyphs quite badly). Sort directory entries while scanning them from disk; prevents Heisenbugs due to file ordering in a directory (due to Egmont Koblinger). Fix Wine's problem with finding fonts. (Reported by Bernhard Rosenkraenzer.) Fix the issues with GNU libiconv vs. libc iconv (which especially appear on Solarii); patch by Behdad Esfahbod, approach suggested by Tim Mooney. 2.3.94 fc-cat can take directories as input and creates old-style fonts.cache listings. fc-cache takes -r --really-force which blows away all old caches and regenerates. Robustness fixes, integer overflow fixes (notably to cache handling code), toast broken global cache files. Change binary format to make it compatible with static langset information (thanks to Takashi Iwai). Open hashed caches before fonts.cache-2 (Takashi Iwai). Fix FcFontSetMatch's algorithm, which used to unjustly kill fonts for not declaring certain elements (Takashi Iwai). Fix matching bug when multiple elements match; don't use the sum of all scores, but the best score (James Su). Make fc-lang more friendly to Windows systems. Remove archaic chars from Georgian charset; add Euro character to charsets for European languages. Fix treatment of broken PCF fonts that don't declare family names. Pass O_BINARY to open if appropriate (reported by Doodle). Normalize font directories to the form in which they appear in config files. Add a record of the cached directory to the cache file. Perf optimizations (Dirk Mueller; some reported by Michael Meeks.) Don't loop infinitely on recursive symlinks. Make 'make distcheck' work with automake 1.6.3. Replace 'stamp' target with mkinstalldirs. Don't stop scanning if a directory in fonts.conf doesn't exist, because subsequent directories might exist. Put directory names into global cache (reported by Ronny V. Vindenes). Treat zh-hk fonts differently from zh-tw fonts. This patch may cause fontconfig to treat A-X fonts differently from A-Y fonts; please mail the fontconfig list if this causes any problems. Fix for unaligned memory accesses (Andreas Schwab). Fix treatment of cache directory as read from cache file; don't use string equality to determine if we have the right file, use inode equality. Properly skip past dir caches that contain zero fonts, as occurs in global caches (reported by Mike Fabian). Print out full pathname in fc-match -v (reported by Frederic Crozat). Fix bug where fc-match crashes when given __DUMMY__ property to match on. 2.3.93 Create cache files in /var/cache/fontconfig with hashed filenames, if possible, for added FHS compliance. Make fc-cat read both per-directory and global cache files. Add config file for Persian fonts from Sharif FarsiWeb, Inc. Major performance improvements by Dirk Mueller, Stephen Kulow, and Michael Matz at SuSE: in particular, speed up FcFontSetMatch, and inline many functions. Fix treatment of globs in config files, broken since 2.3.2 and discovered by Mathias Clasen. Don't use freetype internal headers (patch by Matthias Clasen). Further space improvements: create langsets statically, so that they can live in .rodata. Properly align mmapped data structures to make e.g. ia64 happy. Bug fixes. 2.3.92 Fix corrupted caches bugs from 2.3.91 (reported by Mike Fabian). Store only basename in the cache, reconstitute on demand (reported by James Cloos). Change the rule for artificial emboldening in fonts.conf.in. This enables the support for artificial emboldening included in cairo (patch by Zhe Su). Add FC_EMBEDDED_BITMAP object type to tell Xft/Cairo whether to load embedded bitmaps or not (patch by Jinghua Luo). Fix GCC4 warnings (some by Behdad Esfahbod). Support localized font family and style names; this has been reported to break old apps like xfd, but modern (gtk+/qt/mozilla) apps work fine (patch by Zhe Su). Prevent fc-list from escaping strings when printing them (reported by Matthias Clasen). Add valist sentinel markup for FcObjectSetBuild and FcPatternBuild (patch by Marcus Meissner). Add consts to variables so as to move arrays into .rodata (patch by Ross Burton). Modify config file to use Greek fonts before Asian fonts with Greek glyphs. (patch by Simos Xenitellis). Use libtool -no-undefined flag on all platforms (patch by Christian Biesinger). 2.3.91 Use libxml2 if requested or if expat not available. (Mathias Hasselmann) Fix multi-arch cache files: compute the position for the block to be added using info from OrigFile, not NewFile. (plam) Cast results of sizeof() to unsigned int to get rid of warnings on x86_64 (reported by Matthias Clasen). Use FcAtomic to rewrite cache files; don't unlink the fonts.cache-2 file even if there's no data to write; just write an empty cache file. (Reported by Lubos Lunak) Allocate room for the subdirectory names in each directory cache. (Reported by James Cloos) 2.3.90 Development release of mmap patch: load pattern information directly from cache files. (Patrick Lam) 2.3.2 Patch memory leaks in using iconv. (Reported by Chris Capoccia) Patch memory leaks in fc-cache. (Reported by Chris Capoccia) Fetch bitmap glyphs to get widths during font evaluation. (keithp) Share strings through FcObjectStaticName (Ross Burton) Windows build updates (Tor Lillqvist) 2.3.1 Be more careful about broken GSUB/GPOS tables (Manish Singh) Include debian packaging stuff in CVS (Josselin Mouette) Add more conf.d examples (Keith Packard) Make manuals build again (Keith Packard) Johap -> Johab (Funda Wang) 2.3.0 Fix memory leak of patterns rejected by configuration (#2518) Create prototype /etc/fonts/conf.d directory and populate it with a few sample files. These samples are unused as the file names don't start with numbers. Update documentation. 2.2.99 Verify cache for FC_FILE and FC_FAMILY in every entry (#2219) Update blanks list from recent Unicode docs (#86) Various small build fixes (#280, #2278, Documentation fixes (#2085, #2284, #2285) Add polite typechecking to config file loader (#229) 2.2.98 Share object name strings (Michael Meeks) Eliminate a couple of codepoints from Russian orthography (John Thacker) Add synthetic emboldening configuration changes (Jakub Pavelek) Change FcFontSetSort to ignore language after fonts with the requested languages have been found. (Owen Taylor) Add some RedHat font configuration changes (Owen Tayler). Add full Unicode case folding support to case-ignoring string functions (Keith Packard) Remove Han characters from Korean orthography (Tor Andersson) 2.2.97 Fc-cache sleeps before exiting to ensure filesystem timestamps are well ordered. Added Punjai orthography. The timestamp in fonts.conf is gone now. Too many problems. The default font path includes all of the X fonts; use selectfont/rejectfont to eliminate bitmaps, as shown in the sample local.conf file. configuration elements may now reference a directory. Files in that directory matching [0-9]* are loaded in UTF-8 collating sequence order. configuration added to control which fonts are used. fontformat font pattern elements built from the FT_Get_X11_Font_Format function in newer versions of FreeType. 'capability' list constructed from gsub/gpos and silf values in TrueType files. Multi-lingual names (style, family, fullname) extracted and stored with parallel lang properties marking language. 2.2.96 Fix FcConfigUpToDate to actually check all font directories and eliminate a typo which completely prevented it from working (Lubos Lunak ) Remove comma at end of FcResult enum definition for picky compilers. 2.2.95 Add FcResultOutOfMemory so FcFontSetMatch can return accurate error. Replace MIN/MAX/ABS macros which happened to be in old FreeType releases with FC_MIN/FC_MAX/FC_ABS macros owned by fontconfig. 2.2.94 The 2.2.93 release was prepared with a broken libtool which created the shared library without the '.so' in the file names. 2.2.93 This is the third prerelease of fontconfig 2.3. Significant changes from 2.2.92 are: o Use new FreeType #include syntax o use y_ppem field instead of 'height' in bitmap sizes rec - FreeType changed the semantics. Still uses height for older versions of FreeType o Don't construct program manuals unless docbook is available 2.2.92 o make distcheck work 2.2.91 o Switch to SGML manuals o Add FC_DUAL width spacing value o Add FcFini to close out fontconfig and release all memory 2.2 This is the third public release of fontconfig, a font configuration and customization library. Fontconfig is designed to locate fonts within the system and select them according to requirements specified by applications. Fontconfig is not a rasterization library, nor does it impose a particular rasterization library on the application. The X-specific library 'Xft' uses fontconfig along with freetype to specify and rasterize fonts. Keith Packard keithp@keithp.com usr/share/doc/nfs-utils/README000064400000004401152535555560012047 0ustar00 This package contains a greatly revised NFS implementation for Linux along with the necessary daemons and utilities. There are still several features missing that I'd want to include, and there are some recent improvements to the Linux NFS kernel client not reflected here (notably the attrtimeo fix). This thing has become much too large for me to handle all alone anymore. Originally, I had planned to have most of the NFS implementation running stably by August, so I could start to concentrate more on other jobs that are currently in the queue (like updating the NAG). As it turned out, it was much more work than I anticipated, and I fell short of my time goal. I'm therefore looking for volunteers who would like to work with me on finishing this package. Otherwise, this project could end up rusting in the corner of some FTP site... Ideally, I would want to hand over parts of the source tree to other hackers to maintain/enhance/etc. But that's not a requirement; if you feel you don't have that much time, you can also contribute by picking up one of the loose ends and finish what needs to be done (take a look at the TODO file...) And then, you can also be plainly a tester. There's currently a mailing list for lockd development at NRAO (lockd-statd@linux.nrao.edu --- mail majordomo@linux.nrao.edu to subscribe). If Jeff agress, we could turn this into a general linux-nfs mailing list. Hope this covers about what I wanted to say, Olaf ------------------------------------------------------------------ SOURCE TREE OVERVIEW support/ Support libraries for user-space programs support/nfs Generic library for nfsd utilities support/export Manipulation of /etc/exports and /var/lib/nfs/{xtab,rmtab} utils/ Code for various user-space programs. utils/exportfs Management of nfsd export table. utils/mount Modified mount command to support NFS over TCP. utils/mountd New rpc.mountd for kernel nfsd. utils/nfsd New nfsd (just starts kernel nfsd). utils/nfsstat Pretty-print NFS stats from /proc/net/rpc/nfs* utils/rquotad Marco van Wieringen's rquotad utils/showmount Rick Sladkey's showmount client utils/statd Jeff Uphoff's rpc.statd. tools/ Support tools for developers/debuggers/testers tools/rpcdebug This one sets/gets the debug flags for each of the kernel modules. usr/share/doc/perl-Test-Harness/examples/README000064400000004153152535555600015220 0ustar00=head1 EXAMPLES =head2 Running Tests in Multiple Languages If you have ruby installed in C, and also have C installed, you can cd into C (the directory where this README lives) and run the following command after installing the C utility: examples $ runtests --exec ./my_exec t -v - < test_urls.txt t/10-stuff..............Failed 1/6 tests (less 2 skipped tests: 3 okay) (1 test unexpectedly succeeded) t/ruby..................ok http://www.google.com/....ok http://www.yahoo.com/.....ok Test Summary Report ------------------- t/10-stuff.t (Wstat: 256 Tests: 6 Failed: 1) Failed tests: 2 TODO passed: 6 uests skipped: 3-4 Files=4, Tests=10, 3 wallclock secs ( 0.92 cusr + 0.23 csys = 1.15 CPU) The C is a Perl program which tells the test harness how to execute any tests it encounters. The C argument tells it to search in the C directory for any tests. One of the tests it finds is written in Ruby, but the C program tells it how to run this test. If you have Ruby installed but the test fails, try changing the path. If you don't have Ruby installed, you can simply comment out those lines in C, but the test will fail. The C<-> tells C to read from C and C is merely a list of URLs we wish to test. See the documentation for C and C for more information about how to use this. The C<-v> tells the harness to run in verbose mode. =head2 Custom Test Harnesses The C harnesses in the C directory are deprecated in favor of the new C/C tools. They are left in primary for curiosity sake, though you may find the C one useful as a reference for how to create a GUI interface for C. Instead, simple override the desired methods in C to create your own custom test harness. Don't like how the summary report is formatted? Just override the C<&TAP::Harness::summary> method and use your new subclass: runtests --harness TAP::Harness::MyHarness usr/share/doc/perl-Text-Balanced/README000064400000127547152535601140013501 0ustar00NAME Text::Balanced - Extract delimited text sequences from strings. SYNOPSIS use Text::Balanced qw ( extract_delimited extract_bracketed extract_quotelike extract_codeblock extract_variable extract_tagged extract_multiple gen_delimited_pat gen_extract_tagged ); # Extract the initial substring of $text that is delimited by # two (unescaped) instances of the first character in $delim. ($extracted, $remainder) = extract_delimited($text,$delim); # Extract the initial substring of $text that is bracketed # with a delimiter(s) specified by $delim (where the string # in $delim contains one or more of '(){}[]<>'). ($extracted, $remainder) = extract_bracketed($text,$delim); # Extract the initial substring of $text that is bounded by # an XML tag. ($extracted, $remainder) = extract_tagged($text); # Extract the initial substring of $text that is bounded by # a C...C pair. Don't allow nested C tags ($extracted, $remainder) = extract_tagged($text,"BEGIN","END",undef,{bad=>["BEGIN"]}); # Extract the initial substring of $text that represents a # Perl "quote or quote-like operation" ($extracted, $remainder) = extract_quotelike($text); # Extract the initial substring of $text that represents a block # of Perl code, bracketed by any of character(s) specified by $delim # (where the string $delim contains one or more of '(){}[]<>'). ($extracted, $remainder) = extract_codeblock($text,$delim); # Extract the initial substrings of $text that would be extracted by # one or more sequential applications of the specified functions # or regular expressions @extracted = extract_multiple($text, [ \&extract_bracketed, \&extract_quotelike, \&some_other_extractor_sub, qr/[xyz]*/, 'literal', ]); # Create a string representing an optimized pattern (a la Friedl) # that matches a substring delimited by any of the specified characters # (in this case: any type of quote or a slash) $patstring = gen_delimited_pat(q{'"`/}); # Generate a reference to an anonymous sub that is just like extract_tagged # but pre-compiled and optimized for a specific pair of tags, and consequently # much faster (i.e. 3 times faster). It uses qr// for better performance on # repeated calls, so it only works under Perl 5.005 or later. $extract_head = gen_extract_tagged('',''); ($extracted, $remainder) = $extract_head->($text); DESCRIPTION The various "extract_..." subroutines may be used to extract a delimited substring, possibly after skipping a specified prefix string. By default, that prefix is optional whitespace ("/\s*/"), but you can change it to whatever you wish (see below). The substring to be extracted must appear at the current "pos" location of the string's variable (or at index zero, if no "pos" position is defined). In other words, the "extract_..." subroutines *don't* extract the first occurrence of a substring anywhere in a string (like an unanchored regex would). Rather, they extract an occurrence of the substring appearing immediately at the current matching position in the string (like a "\G"-anchored regex would). General behaviour in list contexts In a list context, all the subroutines return a list, the first three elements of which are always: [0] The extracted string, including the specified delimiters. If the extraction fails "undef" is returned. [1] The remainder of the input string (i.e. the characters after the extracted string). On failure, the entire string is returned. [2] The skipped prefix (i.e. the characters before the extracted string). On failure, "undef" is returned. Note that in a list context, the contents of the original input text (the first argument) are not modified in any way. However, if the input text was passed in a variable, that variable's "pos" value is updated to point at the first character after the extracted text. That means that in a list context the various subroutines can be used much like regular expressions. For example: while ( $next = (extract_quotelike($text))[0] ) { # process next quote-like (in $next) } General behaviour in scalar and void contexts In a scalar context, the extracted string is returned, having first been removed from the input text. Thus, the following code also processes each quote-like operation, but actually removes them from $text: while ( $next = extract_quotelike($text) ) { # process next quote-like (in $next) } Note that if the input text is a read-only string (i.e. a literal), no attempt is made to remove the extracted text. In a void context the behaviour of the extraction subroutines is exactly the same as in a scalar context, except (of course) that the extracted substring is not returned. A note about prefixes Prefix patterns are matched without any trailing modifiers ("/gimsox" etc.) This can bite you if you're expecting a prefix specification like '.*?(?=

)' to skip everything up to the first

tag. Such a prefix pattern will only succeed if the

tag is on the current line, since . normally doesn't match newlines. To overcome this limitation, you need to turn on /s matching within the prefix pattern, using the "(?s)" directive: '(?s).*?(?=

)' "extract_delimited" The "extract_delimited" function formalizes the common idiom of extracting a single-character-delimited substring from the start of a string. For example, to extract a single-quote delimited string, the following code is typically used: ($remainder = $text) =~ s/\A('(\\.|[^'])*')//s; $extracted = $1; but with "extract_delimited" it can be simplified to: ($extracted,$remainder) = extract_delimited($text, "'"); "extract_delimited" takes up to four scalars (the input text, the delimiters, a prefix pattern to be skipped, and any escape characters) and extracts the initial substring of the text that is appropriately delimited. If the delimiter string has multiple characters, the first one encountered in the text is taken to delimit the substring. The third argument specifies a prefix pattern that is to be skipped (but must be present!) before the substring is extracted. The final argument specifies the escape character to be used for each delimiter. All arguments are optional. If the escape characters are not specified, every delimiter is escaped with a backslash ("\"). If the prefix is not specified, the pattern '\s*' - optional whitespace - is used. If the delimiter set is also not specified, the set "/["'`]/" is used. If the text to be processed is not specified either, $_ is used. In list context, "extract_delimited" returns a array of three elements, the extracted substring (*including the surrounding delimiters*), the remainder of the text, and the skipped prefix (if any). If a suitable delimited substring is not found, the first element of the array is the empty string, the second is the complete original text, and the prefix returned in the third element is an empty string. In a scalar context, just the extracted substring is returned. In a void context, the extracted substring (and any prefix) are simply removed from the beginning of the first argument. Examples: # Remove a single-quoted substring from the very beginning of $text: $substring = extract_delimited($text, "'", ''); # Remove a single-quoted Pascalish substring (i.e. one in which # doubling the quote character escapes it) from the very # beginning of $text: $substring = extract_delimited($text, "'", '', "'"); # Extract a single- or double- quoted substring from the # beginning of $text, optionally after some whitespace # (note the list context to protect $text from modification): ($substring) = extract_delimited $text, q{"'}; # Delete the substring delimited by the first '/' in $text: $text = join '', (extract_delimited($text,'/','[^/]*')[2,1]; Note that this last example is *not* the same as deleting the first quote-like pattern. For instance, if $text contained the string: "if ('./cmd' =~ m/$UNIXCMD/s) { $cmd = $1; }" then after the deletion it would contain: "if ('.$UNIXCMD/s) { $cmd = $1; }" not: "if ('./cmd' =~ ms) { $cmd = $1; }" See "extract_quotelike" for a (partial) solution to this problem. "extract_bracketed" Like "extract_delimited", the "extract_bracketed" function takes up to three optional scalar arguments: a string to extract from, a delimiter specifier, and a prefix pattern. As before, a missing prefix defaults to optional whitespace and a missing text defaults to $_. However, a missing delimiter specifier defaults to '{}()[]<>' (see below). "extract_bracketed" extracts a balanced-bracket-delimited substring (using any one (or more) of the user-specified delimiter brackets: '(..)', '{..}', '[..]', or '<..>'). Optionally it will also respect quoted unbalanced brackets (see below). A "delimiter bracket" is a bracket in list of delimiters passed as "extract_bracketed"'s second argument. Delimiter brackets are specified by giving either the left or right (or both!) versions of the required bracket(s). Note that the order in which two or more delimiter brackets are specified is not significant. A "balanced-bracket-delimited substring" is a substring bounded by matched brackets, such that any other (left or right) delimiter bracket *within* the substring is also matched by an opposite (right or left) delimiter bracket *at the same level of nesting*. Any type of bracket not in the delimiter list is treated as an ordinary character. In other words, each type of bracket specified as a delimiter must be balanced and correctly nested within the substring, and any other kind of ("non-delimiter") bracket in the substring is ignored. For example, given the string: $text = "{ an '[irregularly :-(] {} parenthesized >:-)' string }"; then a call to "extract_bracketed" in a list context: @result = extract_bracketed( $text, '{}' ); would return: ( "{ an '[irregularly :-(] {} parenthesized >:-)' string }" , "" , "" ) since both sets of '{..}' brackets are properly nested and evenly balanced. (In a scalar context just the first element of the array would be returned. In a void context, $text would be replaced by an empty string.) Likewise the call in: @result = extract_bracketed( $text, '{[' ); would return the same result, since all sets of both types of specified delimiter brackets are correctly nested and balanced. However, the call in: @result = extract_bracketed( $text, '{([<' ); would fail, returning: ( undef , "{ an '[irregularly :-(] {} parenthesized >:-)' string }" ); because the embedded pairs of '(..)'s and '[..]'s are "cross-nested" and the embedded '>' is unbalanced. (In a scalar context, this call would return an empty string. In a void context, $text would be unchanged.) Note that the embedded single-quotes in the string don't help in this case, since they have not been specified as acceptable delimiters and are therefore treated as non-delimiter characters (and ignored). However, if a particular species of quote character is included in the delimiter specification, then that type of quote will be correctly handled. for example, if $text is: $text = 'link'; then @result = extract_bracketed( $text, '<">' ); returns: ( '', 'link', "" ) as expected. Without the specification of """ as an embedded quoter: @result = extract_bracketed( $text, '<>' ); the result would be: ( 'link', "" ) In addition to the quote delimiters "'", """, and "`", full Perl quote-like quoting (i.e. q{string}, qq{string}, etc) can be specified by including the letter 'q' as a delimiter. Hence: @result = extract_bracketed( $text, '' ); would correctly match something like this: $text = ''; See also: "extract_quotelike" and "extract_codeblock". "extract_variable" "extract_variable" extracts any valid Perl variable or variable-involved expression, including scalars, arrays, hashes, array accesses, hash look-ups, method calls through objects, subroutine calls through subroutine references, etc. The subroutine takes up to two optional arguments: 1. A string to be processed ($_ if the string is omitted or "undef") 2. A string specifying a pattern to be matched as a prefix (which is to be skipped). If omitted, optional whitespace is skipped. On success in a list context, an array of 3 elements is returned. The elements are: [0] the extracted variable, or variablish expression [1] the remainder of the input text, [2] the prefix substring (if any), On failure, all of these values (except the remaining text) are "undef". In a scalar context, "extract_variable" returns just the complete substring that matched a variablish expression. "undef" is returned on failure. In addition, the original input text has the returned substring (and any prefix) removed from it. In a void context, the input text just has the matched substring (and any specified prefix) removed. "extract_tagged" "extract_tagged" extracts and segments text between (balanced) specified tags. The subroutine takes up to five optional arguments: 1. A string to be processed ($_ if the string is omitted or "undef") 2. A string specifying a pattern to be matched as the opening tag. If the pattern string is omitted (or "undef") then a pattern that matches any standard XML tag is used. 3. A string specifying a pattern to be matched at the closing tag. If the pattern string is omitted (or "undef") then the closing tag is constructed by inserting a "/" after any leading bracket characters in the actual opening tag that was matched (*not* the pattern that matched the tag). For example, if the opening tag pattern is specified as '{{\w+}}' and actually matched the opening tag "{{DATA}}", then the constructed closing tag would be "{{/DATA}}". 4. A string specifying a pattern to be matched as a prefix (which is to be skipped). If omitted, optional whitespace is skipped. 5. A hash reference containing various parsing options (see below) The various options that can be specified are: "reject => $listref" The list reference contains one or more strings specifying patterns that must *not* appear within the tagged text. For example, to extract an HTML link (which should not contain nested links) use: extract_tagged($text, '', '', undef, {reject => ['']} ); "ignore => $listref" The list reference contains one or more strings specifying patterns that are *not* be be treated as nested tags within the tagged text (even if they would match the start tag pattern). For example, to extract an arbitrary XML tag, but ignore "empty" elements: extract_tagged($text, undef, undef, undef, {ignore => ['<[^>]*/>']} ); (also see "gen_delimited_pat" below). "fail => $str" The "fail" option indicates the action to be taken if a matching end tag is not encountered (i.e. before the end of the string or some "reject" pattern matches). By default, a failure to match a closing tag causes "extract_tagged" to immediately fail. However, if the string value associated with is "MAX", then "extract_tagged" returns the complete text up to the point of failure. If the string is "PARA", "extract_tagged" returns only the first paragraph after the tag (up to the first line that is either empty or contains only whitespace characters). If the string is "", the the default behaviour (i.e. failure) is reinstated. For example, suppose the start tag "/para" introduces a paragraph, which then continues until the next "/endpara" tag or until another "/para" tag is encountered: $text = "/para line 1\n\nline 3\n/para line 4"; extract_tagged($text, '/para', '/endpara', undef, {reject => '/para', fail => MAX ); # EXTRACTED: "/para line 1\n\nline 3\n" Suppose instead, that if no matching "/endpara" tag is found, the "/para" tag refers only to the immediately following paragraph: $text = "/para line 1\n\nline 3\n/para line 4"; extract_tagged($text, '/para', '/endpara', undef, {reject => '/para', fail => MAX ); # EXTRACTED: "/para line 1\n" Note that the specified "fail" behaviour applies to nested tags as well. On success in a list context, an array of 6 elements is returned. The elements are: [0] the extracted tagged substring (including the outermost tags), [1] the remainder of the input text, [2] the prefix substring (if any), [3] the opening tag [4] the text between the opening and closing tags [5] the closing tag (or "" if no closing tag was found) On failure, all of these values (except the remaining text) are "undef". In a scalar context, "extract_tagged" returns just the complete substring that matched a tagged text (including the start and end tags). "undef" is returned on failure. In addition, the original input text has the returned substring (and any prefix) removed from it. In a void context, the input text just has the matched substring (and any specified prefix) removed. "gen_extract_tagged" (Note: This subroutine is only available under Perl5.005) "gen_extract_tagged" generates a new anonymous subroutine which extracts text between (balanced) specified tags. In other words, it generates a function identical in function to "extract_tagged". The difference between "extract_tagged" and the anonymous subroutines generated by "gen_extract_tagged", is that those generated subroutines: * do not have to reparse tag specification or parsing options every time they are called (whereas "extract_tagged" has to effectively rebuild its tag parser on every call); * make use of the new qr// construct to pre-compile the regexes they use (whereas "extract_tagged" uses standard string variable interpolation to create tag-matching patterns). The subroutine takes up to four optional arguments (the same set as "extract_tagged" except for the string to be processed). It returns a reference to a subroutine which in turn takes a single argument (the text to be extracted from). In other words, the implementation of "extract_tagged" is exactly equivalent to: sub extract_tagged { my $text = shift; $extractor = gen_extract_tagged(@_); return $extractor->($text); } (although "extract_tagged" is not currently implemented that way, in order to preserve pre-5.005 compatibility). Using "gen_extract_tagged" to create extraction functions for specific tags is a good idea if those functions are going to be called more than once, since their performance is typically twice as good as the more general-purpose "extract_tagged". "extract_quotelike" "extract_quotelike" attempts to recognize, extract, and segment any one of the various Perl quotes and quotelike operators (see perlop(3)) Nested backslashed delimiters, embedded balanced bracket delimiters (for the quotelike operators), and trailing modifiers are all caught. For example, in: extract_quotelike 'q # an octothorpe: \# (not the end of the q!) #' extract_quotelike ' "You said, \"Use sed\"." ' extract_quotelike ' s{([A-Z]{1,8}\.[A-Z]{3})} /\L$1\E/; ' extract_quotelike ' tr/\\\/\\\\/\\\//ds; ' the full Perl quotelike operations are all extracted correctly. Note too that, when using the /x modifier on a regex, any comment containing the current pattern delimiter will cause the regex to be immediately terminated. In other words: 'm / (?i) # CASE INSENSITIVE [a-z_] # LEADING ALPHABETIC/UNDERSCORE [a-z0-9]* # FOLLOWED BY ANY NUMBER OF ALPHANUMERICS /x' will be extracted as if it were: 'm / (?i) # CASE INSENSITIVE [a-z_] # LEADING ALPHABETIC/' This behaviour is identical to that of the actual compiler. "extract_quotelike" takes two arguments: the text to be processed and a prefix to be matched at the very beginning of the text. If no prefix is specified, optional whitespace is the default. If no text is given, $_ is used. In a list context, an array of 11 elements is returned. The elements are: [0] the extracted quotelike substring (including trailing modifiers), [1] the remainder of the input text, [2] the prefix substring (if any), [3] the name of the quotelike operator (if any), [4] the left delimiter of the first block of the operation, [5] the text of the first block of the operation (that is, the contents of a quote, the regex of a match or substitution or the target list of a translation), [6] the right delimiter of the first block of the operation, [7] the left delimiter of the second block of the operation (that is, if it is a "s", "tr", or "y"), [8] the text of the second block of the operation (that is, the replacement of a substitution or the translation list of a translation), [9] the right delimiter of the second block of the operation (if any), [10] the trailing modifiers on the operation (if any). For each of the fields marked "(if any)" the default value on success is an empty string. On failure, all of these values (except the remaining text) are "undef". In a scalar context, "extract_quotelike" returns just the complete substring that matched a quotelike operation (or "undef" on failure). In a scalar or void context, the input text has the same substring (and any specified prefix) removed. Examples: # Remove the first quotelike literal that appears in text $quotelike = extract_quotelike($text,'.*?'); # Replace one or more leading whitespace-separated quotelike # literals in $_ with "" do { $_ = join '', (extract_quotelike)[2,1] } until $@; # Isolate the search pattern in a quotelike operation from $text ($op,$pat) = (extract_quotelike $text)[3,5]; if ($op =~ /[ms]/) { print "search pattern: $pat\n"; } else { print "$op is not a pattern matching operation\n"; } "extract_quotelike" and "here documents" "extract_quotelike" can successfully extract "here documents" from an input string, but with an important caveat in list contexts. Unlike other types of quote-like literals, a here document is rarely a contiguous substring. For example, a typical piece of code using here document might look like this: <<'EOMSG' || die; This is the message. EOMSG exit; Given this as an input string in a scalar context, "extract_quotelike" would correctly return the string "<<'EOMSG'\nThis is the message.\nEOMSG", leaving the string " || die;\nexit;" in the original variable. In other words, the two separate pieces of the here document are successfully extracted and concatenated. In a list context, "extract_quotelike" would return the list [0] "<<'EOMSG'\nThis is the message.\nEOMSG\n" (i.e. the full extracted here document, including fore and aft delimiters), [1] " || die;\nexit;" (i.e. the remainder of the input text, concatenated), [2] "" (i.e. the prefix substring -- trivial in this case), [3] "<<" (i.e. the "name" of the quotelike operator) [4] "'EOMSG'" (i.e. the left delimiter of the here document, including any quotes), [5] "This is the message.\n" (i.e. the text of the here document), [6] "EOMSG" (i.e. the right delimiter of the here document), [7..10] "" (a here document has no second left delimiter, second text, second right delimiter, or trailing modifiers). However, the matching position of the input variable would be set to "exit;" (i.e. *after* the closing delimiter of the here document), which would cause the earlier " || die;\nexit;" to be skipped in any sequence of code fragment extractions. To avoid this problem, when it encounters a here document whilst extracting from a modifiable string, "extract_quotelike" silently rearranges the string to an equivalent piece of Perl: <<'EOMSG' This is the message. EOMSG || die; exit; in which the here document *is* contiguous. It still leaves the matching position after the here document, but now the rest of the line on which the here document starts is not skipped. To prevent from mucking about with the input in this way (this is the only case where a list-context "extract_quotelike" does so), you can pass the input variable as an interpolated literal: $quotelike = extract_quotelike("$var"); "extract_codeblock" "extract_codeblock" attempts to recognize and extract a balanced bracket delimited substring that may contain unbalanced brackets inside Perl quotes or quotelike operations. That is, "extract_codeblock" is like a combination of "extract_bracketed" and "extract_quotelike". "extract_codeblock" takes the same initial three parameters as "extract_bracketed": a text to process, a set of delimiter brackets to look for, and a prefix to match first. It also takes an optional fourth parameter, which allows the outermost delimiter brackets to be specified separately (see below). Omitting the first argument (input text) means process $_ instead. Omitting the second argument (delimiter brackets) indicates that only '{' is to be used. Omitting the third argument (prefix argument) implies optional whitespace at the start. Omitting the fourth argument (outermost delimiter brackets) indicates that the value of the second argument is to be used for the outermost delimiters. Once the prefix an dthe outermost opening delimiter bracket have been recognized, code blocks are extracted by stepping through the input text and trying the following alternatives in sequence: 1. Try and match a closing delimiter bracket. If the bracket was the same species as the last opening bracket, return the substring to that point. If the bracket was mismatched, return an error. 2. Try to match a quote or quotelike operator. If found, call "extract_quotelike" to eat it. If "extract_quotelike" fails, return the error it returned. Otherwise go back to step 1. 3. Try to match an opening delimiter bracket. If found, call "extract_codeblock" recursively to eat the embedded block. If the recursive call fails, return an error. Otherwise, go back to step 1. 4. Unconditionally match a bareword or any other single character, and then go back to step 1. Examples: # Find a while loop in the text if ($text =~ s/.*?while\s*\{/{/) { $loop = "while " . extract_codeblock($text); } # Remove the first round-bracketed list (which may include # round- or curly-bracketed code blocks or quotelike operators) extract_codeblock $text, "(){}", '[^(]*'; The ability to specify a different outermost delimiter bracket is useful in some circumstances. For example, in the Parse::RecDescent module, parser actions which are to be performed only on a successful parse are specified using a "" directive. For example: sentence: subject verb object Parse::RecDescent uses "extract_codeblock($text, '{}<>')" to extract the code within the "" directive, but there's a problem. A deferred action like this: 10) {$count--}} > will be incorrectly parsed as: because the "less than" operator is interpreted as a closing delimiter. But, by extracting the directive using "extract_codeblock($text, '{}', undef, '<>')" the '>' character is only treated as a delimited at the outermost level of the code block, so the directive is parsed correctly. "extract_multiple" The "extract_multiple" subroutine takes a string to be processed and a list of extractors (subroutines or regular expressions) to apply to that string. In an array context "extract_multiple" returns an array of substrings of the original string, as extracted by the specified extractors. In a scalar context, "extract_multiple" returns the first substring successfully extracted from the original string. In both scalar and void contexts the original string has the first successfully extracted substring removed from it. In all contexts "extract_multiple" starts at the current "pos" of the string, and sets that "pos" appropriately after it matches. Hence, the aim of of a call to "extract_multiple" in a list context is to split the processed string into as many non-overlapping fields as possible, by repeatedly applying each of the specified extractors to the remainder of the string. Thus "extract_multiple" is a generalized form of Perl's "split" subroutine. The subroutine takes up to four optional arguments: 1. A string to be processed ($_ if the string is omitted or "undef") 2. A reference to a list of subroutine references and/or qr// objects and/or literal strings and/or hash references, specifying the extractors to be used to split the string. If this argument is omitted (or "undef") the list: [ sub { extract_variable($_[0], '') }, sub { extract_quotelike($_[0],'') }, sub { extract_codeblock($_[0],'{}','') }, ] is used. 3. An number specifying the maximum number of fields to return. If this argument is omitted (or "undef"), split continues as long as possible. If the third argument is *N*, then extraction continues until *N* fields have been successfully extracted, or until the string has been completely processed. Note that in scalar and void contexts the value of this argument is automatically reset to 1 (under "-w", a warning is issued if the argument has to be reset). 4. A value indicating whether unmatched substrings (see below) within the text should be skipped or returned as fields. If the value is true, such substrings are skipped. Otherwise, they are returned. The extraction process works by applying each extractor in sequence to the text string. If the extractor is a subroutine it is called in a list context and is expected to return a list of a single element, namely the extracted text. It may optionally also return two further arguments: a string representing the text left after extraction (like $' for a pattern match), and a string representing any prefix skipped before the extraction (like $` in a pattern match). Note that this is designed to facilitate the use of other Text::Balanced subroutines with "extract_multiple". Note too that the value returned by an extractor subroutine need not bear any relationship to the corresponding substring of the original text (see examples below). If the extractor is a precompiled regular expression or a string, it is matched against the text in a scalar context with a leading '\G' and the gc modifiers enabled. The extracted value is either $1 if that variable is defined after the match, or else the complete match (i.e. $&). If the extractor is a hash reference, it must contain exactly one element. The value of that element is one of the above extractor types (subroutine reference, regular expression, or string). The key of that element is the name of a class into which the successful return value of the extractor will be blessed. If an extractor returns a defined value, that value is immediately treated as the next extracted field and pushed onto the list of fields. If the extractor was specified in a hash reference, the field is also blessed into the appropriate class, If the extractor fails to match (in the case of a regex extractor), or returns an empty list or an undefined value (in the case of a subroutine extractor), it is assumed to have failed to extract. If none of the extractor subroutines succeeds, then one character is extracted from the start of the text and the extraction subroutines reapplied. Characters which are thus removed are accumulated and eventually become the next field (unless the fourth argument is true, in which case they are discarded). For example, the following extracts substrings that are valid Perl variables: @fields = extract_multiple($text, [ sub { extract_variable($_[0]) } ], undef, 1); This example separates a text into fields which are quote delimited, curly bracketed, and anything else. The delimited and bracketed parts are also blessed to identify them (the "anything else" is unblessed): @fields = extract_multiple($text, [ { Delim => sub { extract_delimited($_[0],q{'"}) } }, { Brack => sub { extract_bracketed($_[0],'{}') } }, ]); This call extracts the next single substring that is a valid Perl quotelike operator (and removes it from $text): $quotelike = extract_multiple($text, [ sub { extract_quotelike($_[0]) }, ], undef, 1); Finally, here is yet another way to do comma-separated value parsing: @fields = extract_multiple($csv_text, [ sub { extract_delimited($_[0],q{'"}) }, qr/([^,]+)(.*)/, ], undef,1); The list in the second argument means: *"Try and extract a ' or " delimited string, otherwise extract anything up to a comma..."*. The undef third argument means: *"...as many times as possible..."*, and the true value in the fourth argument means *"...discarding anything else that appears (i.e. the commas)"*. If you wanted the commas preserved as separate fields (i.e. like split does if your split pattern has capturing parentheses), you would just make the last parameter undefined (or remove it). "gen_delimited_pat" The "gen_delimited_pat" subroutine takes a single (string) argument and > builds a Friedl-style optimized regex that matches a string delimited by any one of the characters in the single argument. For example: gen_delimited_pat(q{'"}) returns the regex: (?:\"(?:\\\"|(?!\").)*\"|\'(?:\\\'|(?!\').)*\') Note that the specified delimiters are automatically quotemeta'd. A typical use of "gen_delimited_pat" would be to build special purpose tags for "extract_tagged". For example, to properly ignore "empty" XML elements (which might contain quoted strings): my $empty_tag = '<(' . gen_delimited_pat(q{'"}) . '|.)+/>'; extract_tagged($text, undef, undef, undef, {ignore => [$empty_tag]} ); "gen_delimited_pat" may also be called with an optional second argument, which specifies the "escape" character(s) to be used for each delimiter. For example to match a Pascal-style string (where ' is the delimiter and '' is a literal ' within the string): gen_delimited_pat(q{'},q{'}); Different escape characters can be specified for different delimiters. For example, to specify that '/' is the escape for single quotes and '%' is the escape for double quotes: gen_delimited_pat(q{'"},q{/%}); If more delimiters than escape chars are specified, the last escape char is used for the remaining delimiters. If no escape char is specified for a given specified delimiter, '\' is used. "delimited_pat" Note that "gen_delimited_pat" was previously called "delimited_pat". That name may still be used, but is now deprecated. DIAGNOSTICS In a list context, all the functions return "(undef,$original_text)" on failure. In a scalar context, failure is indicated by returning "undef" (in this case the input text is not modified in any way). In addition, on failure in *any* context, the $@ variable is set. Accessing "$@->{error}" returns one of the error diagnostics listed below. Accessing "$@->{pos}" returns the offset into the original string at which the error was detected (although not necessarily where it occurred!) Printing $@ directly produces the error message, with the offset appended. On success, the $@ variable is guaranteed to be "undef". The available diagnostics are: "Did not find a suitable bracket: "%s"" The delimiter provided to "extract_bracketed" was not one of '()[]<>{}'. "Did not find prefix: /%s/" A non-optional prefix was specified but wasn't found at the start of the text. "Did not find opening bracket after prefix: "%s"" "extract_bracketed" or "extract_codeblock" was expecting a particular kind of bracket at the start of the text, and didn't find it. "No quotelike operator found after prefix: "%s"" "extract_quotelike" didn't find one of the quotelike operators "q", "qq", "qw", "qx", "s", "tr" or "y" at the start of the substring it was extracting. "Unmatched closing bracket: "%c"" "extract_bracketed", "extract_quotelike" or "extract_codeblock" encountered a closing bracket where none was expected. "Unmatched opening bracket(s): "%s"" "extract_bracketed", "extract_quotelike" or "extract_codeblock" ran out of characters in the text before closing one or more levels of nested brackets. "Unmatched embedded quote (%s)" "extract_bracketed" attempted to match an embedded quoted substring, but failed to find a closing quote to match it. "Did not find closing delimiter to match '%s'" "extract_quotelike" was unable to find a closing delimiter to match the one that opened the quote-like operation. "Mismatched closing bracket: expected "%c" but found "%s"" "extract_bracketed", "extract_quotelike" or "extract_codeblock" found a valid bracket delimiter, but it was the wrong species. This usually indicates a nesting error, but may indicate incorrect quoting or escaping. "No block delimiter found after quotelike "%s"" "extract_quotelike" or "extract_codeblock" found one of the quotelike operators "q", "qq", "qw", "qx", "s", "tr" or "y" without a suitable block after it. "Did not find leading dereferencer" "extract_variable" was expecting one of '$', '@', or '%' at the start of a variable, but didn't find any of them. "Bad identifier after dereferencer" "extract_variable" found a '$', '@', or '%' indicating a variable, but that character was not followed by a legal Perl identifier. "Did not find expected opening bracket at %s" "extract_codeblock" failed to find any of the outermost opening brackets that were specified. "Improperly nested codeblock at %s" A nested code block was found that started with a delimiter that was specified as being only to be used as an outermost bracket. "Missing second block for quotelike "%s"" "extract_codeblock" or "extract_quotelike" found one of the quotelike operators "s", "tr" or "y" followed by only one block. "No match found for opening bracket" "extract_codeblock" failed to find a closing bracket to match the outermost opening bracket. "Did not find opening tag: /%s/" "extract_tagged" did not find a suitable opening tag (after any specified prefix was removed). "Unable to construct closing tag to match: /%s/" "extract_tagged" matched the specified opening tag and tried to modify the matched text to produce a matching closing tag (because none was specified). It failed to generate the closing tag, almost certainly because the opening tag did not start with a bracket of some kind. "Found invalid nested tag: %s" "extract_tagged" found a nested tag that appeared in the "reject" list (and the failure mode was not "MAX" or "PARA"). "Found unbalanced nested tag: %s" "extract_tagged" found a nested opening tag that was not matched by a corresponding nested closing tag (and the failure mode was not "MAX" or "PARA"). "Did not find closing tag" "extract_tagged" reached the end of the text without finding a closing tag to match the original opening tag (and the failure mode was not "MAX" or "PARA"). AUTHOR Damian Conway (damian@conway.org) BUGS AND IRRITATIONS There are undoubtedly serious bugs lurking somewhere in this code, if only because parts of it give the impression of understanding a great deal more about Perl than they really do. Bug reports and other feedback are most welcome. COPYRIGHT Copyright 1997 - 2001 Damian Conway. All Rights Reserved. Some (minor) parts copyright 2009 Adam Kennedy. This module is free software. It may be used, redistributed and/or modified under the same terms as Perl itself. usr/share/doc/avahi-libs/README000064400000001171152535622720012134 0ustar00AVAHI SERVICE DISCOVERY SUITE Avahi is a free, LGPL implementation of DNS Service Discovery (DNS-SD RFC 6763) over Multicast DNS (mDNS RFC 6762), commonly known as and compatible with Apple Bonjour primarily targetting Linux. Copyright 2004-2015 by the Avahi developers. WEB SITE: http://avahi.org/ GIT: http://github.com/lathiat/avahi.git MAILING LIST: http://lists.freedesktop.org/mailman/listinfo/avahi IRC: #avahi on irc.freenode.org CIA: http://cia.navi.cx/stats/project/avahi FRESHMEAT: http://freshmeat.net/projects/avahi/ OHLOH: http://www.ohloh.net/projects/avahi/ AUTHORS: Lennart Poettering Trent Lloyd usr/share/doc/perl-LWP-MediaTypes/README000064400000005231152535626400013561 0ustar00NAME LWP::MediaTypes - guess media type for a file or a URL SYNOPSIS use LWP::MediaTypes qw(guess_media_type); $type = guess_media_type("/tmp/foo.gif"); DESCRIPTION This module provides functions for handling media (also known as MIME) types and encodings. The mapping from file extensions to media types is defined by the media.types file. If the ~/.media.types file exists it is used instead. For backwards compatibility we will also look for ~/.mime.types. The following functions are exported by default: guess_media_type( $filename ) guess_media_type( $uri ) guess_media_type( $filename_or_uri, $header_to_modify ) This function tries to guess media type and encoding for a file or a URI. It returns the content type, which is a string like `"text/html"'. In array context it also returns any content encodings applied (in the order used to encode the file). You can pass a URI object reference, instead of the file name. If the type can not be deduced from looking at the file name, then guess_media_type() will let the `-T' Perl operator take a look. If this works (and `-T' returns a TRUE value) then we return *text/plain* as the type, otherwise we return *application/octet-stream* as the type. The optional second argument should be a reference to a HTTP::Headers object or any object that implements the $obj->header method in a similar way. When it is present the values of the 'Content-Type' and 'Content-Encoding' will be set for this header. media_suffix( $type, ... ) This function will return all suffixes that can be used to denote the specified media type(s). Wildcard types can be used. In a scalar context it will return the first suffix found. Examples: @suffixes = media_suffix('image/*', 'audio/basic'); $suffix = media_suffix('text/html'); The following functions are only exported by explicit request: add_type( $type, @exts ) Associate a list of file extensions with the given media type. Example: add_type("x-world/x-vrml" => qw(wrl vrml)); add_encoding( $type, @ext ) Associate a list of file extensions with an encoding type. Example: add_encoding("x-gzip" => "gz"); read_media_types( @files ) Parse media types files and add the type mappings found there. Example: read_media_types("conf/mime.types"); COPYRIGHT Copyright 1995-1999 Gisle Aas. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. usr/share/doc/nano/README000064400000005370152535635210011053 0ustar00 GNU nano -- an enhanced clone of the Pico text editor Overview The nano project was started because of a few "problems" with the wonderfully easy-to-use and friendly Pico text editor. First and foremost was its license: the Pine suite does not use the GPL or a GPL-friendly license, and has unclear restrictions on redistribution. Because of this, Pine and Pico are not included with many GNU/Linux distributions. Also, other features (like go-to-line-number or search-and-replace) were unavailable until recently or require a command-line flag. Yuck. nano aims to solve these problems by emulating the functionality of Pico as closely as possible while addressing the problems above and providing other extra functionality. The nano editor is an official GNU package. For more information on GNU and the Free Software Foundation, please see http://www.gnu.org/. How to compile and install nano Download the nano source code, then: tar xvzf nano-x.y.z.tar.gz cd nano-x.y.z ./configure make make install It's that simple. Use --prefix with configure to override the default installation directory of /usr/local. If you haven't configured with the --disable-nanorc option, after installation you may want to copy the doc/sample.nanorc file to your home directory, rename it to ".nanorc", and then edit it according to your taste. Web Page https://nano-editor.org/ Mailing Lists There are three nano-related mailing-lists. + info-nano@gnu.org is a very low traffic list used to announce new nano versions or other important info about the project. + help-nano@gnu.org is for those seeking to get help without wanting to hear about the technical details of its development. + nano-devel@gnu.org is the list used by the people that make nano and a general development discussion list, with moderate traffic. To subscribe, send email to -request@gnu.org with a subject of "subscribe", where is the list you want to subscribe to. Bug Reports To report a bug, please file a description of the problem on nano's bug tracker (https://savannah.gnu.org/bugs/?group=nano -- hover on "Bugs", then click "Submit new"). The issue may have already been reported, so please look first. Current Status Since version 2.5.0, GNU nano has abandoned the distinction between a stable and a development branch: it is now on a "rolling" release -- fixing bugs and adding new features go hand in hand. Copyright Years When in any file of this package a copyright notice mentions a year range (such as 1999-2011), it is a shorthand for a list of all the years in that interval. usr/share/doc/perl-Getopt-Long/README000064400000015131152535654340013220 0ustar00Module Getopt::Long - extended processing of command line options ================================================================= Module Getopt::Long implements an extended getopt function called GetOptions(). This function implements the POSIX standard for command line options, with GNU extensions, while still capable of handling the traditional one-letter options. In general, this means that command line options can have long names instead of single letters, and are introduced with a double dash `--'. Optionally, Getopt::Long can support the traditional bundling of single-letter command line options. Getopt::Long is part of the Perl 5 distribution. It is the successor of newgetopt.pl that came with Perl 4. It is fully upward compatible. In fact, the Perl 5 version of newgetopt.pl is just a wrapper around the module. For complete documentation, see the Getopt::Long POD document or use the command perldoc Getopt::Long FEATURES ======== * Long option names Major advantage of using long option names is that it is much easier to memorize the option names. Using single-letter names one quickly runs into the problem that there is no logical relationship between the semantics of the selected option and its option letter. Disadvantage is that it requires more typing. Getopt::Long provides for option name abbreviation, so option names may be abbreviated to uniqueness. Also, modern shells like Cornell's tcsh support option name completion. As a rule of thumb, you can use abbreviations freely while running commands interactively but always use the full names in scripts. Examples (POSIX): --long --width=80 --height=24 Extensions: -long (convenience) +width=80 (deprecated) -height 24 (traditional) By default, long option names are case insensitive. * Single-letter options and bundling When single-letter options are requested, Getopt::Long allows the option names to be bundled, e.g. "-abc" is equivalent to "-a -b -c". In this case, long option names must be introduced with the POSIX "--" introducer. Examples: -lgAd (bundle) -xw 80 (bundle, w takes a value) -xw80 (same) even -l24w80 (l = 24 and w = 80) By default, single-letter option names are case sensitive. * Flexibility: - options can have alternative names, using an alternative name will behave as if the primary name was used; - options can be negatable, e.g. "debug" will switch it on, while "nodebug" will switch it off. - options can set values, but also add values producing an array of values instead of a single scalar value, or set values in a hash. - options can have multiple values, e.g., "--position 25 624". * Options linkage Using Getopt::Long gives the programmer ultimate control over the command line options and how they must be handled: - by setting a global variable in the calling program; - by setting a specified variable; - by entering the option name and the value in an associative array (hash) or object (if it is a blessed hash); - by calling a user-specified subroutine with the option name and the value as arguments (for hash options: the name, key and value); - combinations of the above. * Customization: The module can be customized by specifying settings in the 'use' directive, or by calling a special method, Getopt::Long::Configure. For example, the following two cases are functionally equal: use Getopt::Long qw(:config bundling no_ignore_case); and use Getopt::Long; Getopt::Long::Configure qw(bundling no_ignore_case); Some of the possible customizations. Most of them take a "no_" prefix to reverse the effect: - default Restore default settings. - auto_abbrev Allow option names to be abbreviated to uniqueness. - getopt_compat Allow '+' to start options. - gnu_compat Compatibility with GNU getopt_long(). - permute - require_order Whether non-options are allowed to be mixed with options. permute means that -foo arg1 -bar arg2 arg3 is equivalent to -foo -bar arg1 arg2 arg3 (provided -foo does not take an argument value). require_order means that options processing terminates when the first non-option is encountered. -foo arg1 -bar arg2 arg3 is equivalent to -foo -- arg1 -bar arg2 arg3 - bundling Setting this variable to a non-zero value will allow single-character options to be bundled. To distinguish bundles from long option names, long options must be introduced with "--" and single-character options (and bundles) with "-". - ignore_case Ignore case when matching options. - pass_through Do not issue error messages for unknown options, but leave them (pass-through) in @ARGV. - prefix The string that starts options. See also prefix_pattern. - prefix_pattern A Perl pattern that identifies the strings that introduce options. Default is --|-|\+ unless environment variable POSIXLY_CORRECT has been set, in which case it is --|-. - long_prefix_pattern A perl pattern that is used to identify which prefixes should be treated as long style. Any prefixes that don't match this pattern will have short option semantics. Defaults to --. - debug Enable copious debugging output. * Object oriented interface: Using the object oriented interface, multiple parser objects can be instantiated, each having their own configuration settings: $p1 = new Getopt::Long::Parser (config => ["bundling"]); $p2 = new Getopt::Long::Parser (config => ["posix"]); if ($p1->getoptions(...options descriptions...)) ... AVAILABILITY ============ The official version for module Getopt::Long comes with the Perl 5 distribution. Newer versions will be made available on the Comprehensive Perl Archive Network (CPAN), see "http://www.perl.com/CPAN/authors/Johan_Vromans". Or use the CPAN search engine: http://search.cpan.org/search?mode=module&query=Getopt::Long http://search.cpan.org/search?module=Getopt::Long COPYRIGHT AND DISCLAIMER ======================== Module Getopt::Long is Copyright 2013,1990 by Johan Vromans. This program is free software; you can redistribute it and/or modify it under the terms of the Perl Artistic License or 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. ------------------------------------------------------------------- Johan Vromans jvromans@squirrel.nl Squirrel Consultancy Exloo, the Netherlands http://www.squirrel.nl http://www.squirrel.nl/people/jvromans ------------------ "Arms are made for hugging" -------------------- usr/share/doc/lynx/README000064400000015407152535734070011120 0ustar00 Lynx README file Lynx Version 2.8.8 is the latest release (February 2014). See the CHANGES file for a complete record of all changes and bug fixes. New releases are announced on the lynx-dev mailing list (see below). FOR REAL NOVICES To use this package, you need a compiler & a bit of experience at very simple programming. If you just want something which will work `out-of-the-box', you can get pre-compiled versions of Lynx by following the links from ; For DOS or Windows, go to . WHAT IS LYNX? Lynx is a fully-featured World Wide Web (WWW) client for users running cursor-addressable, character-cell display devices such as vt100 terminals, vt100 emulators running on Windows 95/NT or Macintoshes, or any other character-cell display. It will display Hypertext Markup Language (HTML) documents containing links to files on the local system, as well as files on remote systems running http, gopher, ftp, wais, nntp, finger, or cso/ph/qi servers, and services accessible via logins to telnet, tn3270 or rlogin accounts. Current versions of Lynx run on Unix, VMS, Windows95 through Windows 8, 386DOS and OS/2 EMX. Lynx can be used to access information on the WWW, or to establish information systems intended primarily for local access. Lynx has been used to build several Campus Wide Information Systems (CWIS). Lynx can also be used to build systems isolated within a single LAN. HOW TO GET LYNX For the latest release of Lynx go to: ; ; The latest development version is at: . The Lynx homepage is . The on-line help page (enter `h') has links to many useful things. LICENSE Lynx is distributed under the GNU General Public License, version 2 (GPLv2) without restrictions on usage or redistribution. The Lynx copyright statement, "COPYHEADER", and GNU GPL, "COPYING", are included in the top-level directory of the distribution. Lynx is supported by the Lynx user community, an entirely volunteer (and unofficial) organization. Certain portions of the Lynx source distribution were originally created by CERN and have been modified during the development of Lynx. See WWW/FreeofCharge.html for copyright info regarding CERN products used in Lynx. Note that Lynx is not self-contained; typically it is built with a variety of add-on libraries, including those for compression, IPv6, SOCKS and SSL support. YEAR 2000 COMPLIANCE We believe Lynx works properly for the Year 2000 issues, since it does not store dates in 2-digit form. Since it must communicate with a wide range of web servers, it interprets dates in a variety of formats. In particular, if Lynx receives a date with a 2-digit year, it assumes that values less than 70 are in the range 2000-2069. INSTALLING LYNX To install Lynx, follow the steps in the INSTALLATION file, which is located in the top directory of the source distribution. DOCUMENTATION A users guide is included in this distribution along with a man page for Unix systems and a help file for VMS systems. All documentation is contained in the top directory and the docs, samples and lynx_help subdirectories. While running Lynx, type 'h', 'H', or '?' to invoke the help menu system. From the help menu you may access several useful documents pertaining to Lynx and the World Wide Web. The most important of these is the Lynx Users Guide. By default, Lynx will use the Lynx Enhanced Pages, which includes http links for help and FAQs concerning Lynx. It is recommended that you install your own help menu system at your site in order to lessen the load on http servers. This also will allow you to customize the help menu system for your site and greatly speed up access for those using Lynx over a slow connection. INSTALLING THE DOCUMENTATION For Unix and related systems which support the autoconf configure script, the help menu system is installed by the "make install-help" command. For other systems (such as VMS), copy COPYHEADER and COPYING into the lynx_help/ subdirectory. Then copy the lynx_help subdirectory to a public place on your system, or into your $HOME directory if you are a single user. Finally, edit the lynx.cfg file so that the HELPFILE line is defined as follows: HELPFILE:file://localhost/[public_path]/lynx_help/lynx_help_main.html where [public_path] is the absolute path to the lynx_help directory. Customizing the help menu system is just a matter of editing a set of HTML files. Additional information about installing and customizing the help file set is available at . INSTALLING LYNX To install Lynx, follow the steps in the INSTALLATION file, which is located in the top directory of the source distribution. Win32 users who need pre-compiled distributions should visit the site . PROBLEMS If you experience problems configuring, compiling or installing Lynx, please read Section VI. "General installation instructions" in the INSTALLATION file. Instructions are given there for reporting your problem to the "lynx-dev" mailing list, which is frequented by experienced Lynx users. LYNX-DEV MAILING LIST To subscribe to lynx-dev, send email to with "subscribe" for a subject line. If you wish to unsubscribe from lynx-dev, send email to with "unsubscribe" for a subject line. Any messages you wish to post should be sent to . PLEASE use the lynx-dev list, NOT private email to the developers, for questions or discussion about Lynx, or contributions of patches. Patches should use the unified diff format (diff -u). You need not be subscribed to the lynx-dev list in order to post. If you post without subscribing, though, you should read replies to your questions or comments in the archive since more often than not nobody will send a carbon copy to you. View the archives at: "lynx-dev Mailing list archives" ------------------------------------------------------------------------------ -- vile:txtmode fc=72 noti -- $LynxId: README,v 1.34 2018/07/08 15:22:44 tom Exp $ ------------------------------------------------------------------------------ etc/pki/ca-trust/extracted/edk2/README000064400000001066152535745270013356 0ustar00This directory /etc/pki/ca-trust/extracted/edk2/ contains a CA certificate bundle file which is automatically created based on the information found in the /usr/share/pki/ca-trust-source/ and /etc/pki/ca-trust/source/ directories. The file is in the EDK2 (EFI Development Kit II) file format. Please never manually edit the files stored in this directory, because your changes will be lost and the files automatically overwritten, each time the update-ca-trust command gets executed. Please refer to the update-ca-trust(8) manual page for additional information. usr/share/doc/curl/README000064400000003112152535746350011065 0ustar00 _ _ ____ _ ___| | | | _ \| | / __| | | | |_) | | | (__| |_| | _ <| |___ \___|\___/|_| \_\_____| README Curl is a command line tool for transferring data specified with URL syntax. Find out how to use curl by reading the curl.1 man page or the MANUAL document. Find out how to install Curl by reading the INSTALL document. libcurl is the library curl is using to do its job. It is readily available to be used by your software. Read the libcurl.3 man page to learn how! You find answers to the most frequent questions we get in the FAQ document. Study the COPYING file for distribution terms and similar. If you distribute curl binaries or other binaries that involve libcurl, you might enjoy the LICENSE-MIXING document. CONTACT If you have problems, questions, ideas or suggestions, please contact us by posting to a suitable mailing list. See https://curl.haxx.se/mail/ All contributors to the project are listed in the THANKS document. WEB SITE Visit the curl web site for the latest news and downloads: https://curl.haxx.se/ GIT To download the very latest source off the GIT server do this: git clone https://github.com/curl/curl.git (you'll get a directory named curl created, filled with the source code) NOTICE Curl contains pieces of source code that is Copyright (c) 1998, 1999 Kungliga Tekniska Högskolan. This notice is included here to comply with the distribution terms. usr/share/doc/python3-pyparsing/README000064400000004015152535777320013542 0ustar00==================================== PyParsing -- A Python Parsing Module ==================================== Introduction ============ The pyparsing module is an alternative approach to creating and executing simple grammars, vs. the traditional lex/yacc approach, or the use of regular expressions. The pyparsing module provides a library of classes that client code uses to construct the grammar directly in Python code. Here is a program to parse "Hello, World!" (or any greeting of the form ", !"): from pyparsing import Word, alphas greet = Word( alphas ) + "," + Word( alphas ) + "!" hello = "Hello, World!" print hello, "->", greet.parseString( hello ) The program outputs the following: Hello, World! -> ['Hello', ',', 'World', '!'] The Python representation of the grammar is quite readable, owing to the self-explanatory class names, and the use of '+', '|' and '^' operator definitions. The parsed results returned from parseString() can be accessed as a nested list, a dictionary, or an object with named attributes. The pyparsing module handles some of the problems that are typically vexing when writing text parsers: - extra or missing whitespace (the above program will also handle "Hello,World!", "Hello , World !", etc.) - quoted strings - embedded comments The .zip file includes examples of a simple SQL parser, simple CORBA IDL parser, a config file parser, a chemical formula parser, and a four- function algebraic notation parser. It also includes a simple how-to document, and a UML class diagram of the library's classes. Installation ============ Do the usual: python setup.py install (pyparsing requires Python 2.6 or later.) Or corresponding commands using pip, easy_install, or wheel: pip install pyparsing easy_install pyparsing wheel install pyparsing Documentation ============= See: HowToUsePyparsing.html License ======= MIT License. See header of pyparsing.py History ======= See CHANGES file. usr/share/doc/pinentry/README000064400000005576152536007260011777 0ustar00PINEntry --------- This is a collection of PIN or passphrase entry dialogs which utilize the Assuan protocol as specified in the Libassuan manual. There are programs for different toolkits available. For all GUIs it is automatically detected which modules can be built, but it can also be requested explicitly. GUI OPTION DEPENDENCIES -------------------------------------------------------------------------- GTK+ V2.0 --enable-pinentry-gtk2 Gimp Toolkit Library, Version 2.0 eg. libgtk-x11-2.0 and libglib-2.0 GNOME --enable-pinentry-gnome GNOME Qt --enable-pinentry-qt Qt (> 4.4.0) Curses --enable-pinentry-curses Curses library, for example ncurses TTY --enable-pinentry-tty Simple TTY version, no dependencies The GTK+, GNOME, and Qt pinentries can fall back to curses mode. The option to enable this is --enable-fallback-curses, but this is also detected automatically in the same way --enable-pinentry-curses is. The fallback to curses also works if --disable-pinentry-curses is specified. So to disable linking to curses completely you have to pass --disable-fallback-curses to the configure script as well. Examples: * To only build the GTK+ pinentry with curses support: ./configure --enable-pinentry-gtk2 --enable-fallback-curses \ --disable-pinentry-curses --disable-pinentry-qt * To build the Qt pinentry, and the other pinentries if they are supported: ./configure --enable-pinentry-qt * To build everything that is supported (complete auto-detection): ./configure Some of the code is taken from Robert Bihlmeyer's Quintuple-Agent. For security reasons, all internationalization has been removed. The client is expected to tell the PIN entry the text strings to be displayed. Curses Pinentry --------------- The curses pinentry supports colors if the terminal does. The colors can be specified by the --colors=FG,BG,SO option, which sets the foreground, background and standout colors respectively. The standout color is used for error messages. Colors can be named by any of "black", "red", "green", "yellow", "blue", "magenta", "cyan" and "white". The foreground and standout color can be prefixed by "bright-", "bright", "bold-" and "bold", and any of these prefixes has the same effect of making the color bolder or brighter. Two special color names are defined as well: "default" chooses the default color, and "none" disables use of colors. The name "none" is only meaningful for the standout color and in this case a reversed effect is used for error messages. For the other colors, disabling colors means the same as using the defaults. The default colors are as follows: Foreground: Terminal default Background: Terminal default Standout: Bright red Note that color support is limited by the capabilities of the display terminal. Some color combinations can be very difficult to read, and please know that colors are perceived differently by different people. usr/share/doc/perl-Text-ParseWords/README000064400000002433152536020450014063 0ustar00 Module: Text::ParseWords - ---------------------- This is a CORE module. If you installed perl 5.003 or above, an old version of this module is already available to you. This CPAN package is only here to update core distributions prior 5.10. The version provided is the same that comes with perl 5.10. If you run a newer version of perl, the version of Text::ParseWords included there may be newer. Please run "perldoc Text::ParseWords" to see what this module is for. Installation - ---------- To update your core, simply perform these usual steps: make make test make install Authors of Text::ParseWords - ------------------------- Maintainer: Alexandr Ciornii. Previous maintainer: Hal Pomeranz , 1994-1997 (Original author unknown). Much of the code for &parse_line() (including the primary regexp) from Joerk Behrends . Examples section another documentation provided by John Heidemann Bug reports, patches, and nagging provided by lots of folks-- thanks everybody! Special thanks to Michael Schwern for assuring me that a &nested_quotewords() would be useful, and to Jeff Friedl for telling me not to worry about error-checking (sort of-- you had to be there). usr/share/doc/guile/README000064400000040755152536060320011226 0ustar00This is version 2.0 of Guile, Project GNU's extension language library. Guile is an implementation of the Scheme programming language, packaged as a library that can be linked into applications to give them their own extension language. Guile supports other languages as well, giving users of Guile-based applications a choice of languages. Please send bug reports to bug-guile@gnu.org. See the LICENSE file for the specific terms that apply to Guile. Note that for any copyright year range specified as YYYY-ZZZZ in this package, the range specifies every single year in that closed interval. Additional INSTALL instructions =========================================== Generic instructions for configuring and compiling Guile can be found in the INSTALL file. Guile specific information and configure options can be found below, including instructions for installing SLIB. Guile depends on the following external libraries. - libgmp - libiconv - libintl - libltdl - libunistring - libgc - libffi It will also use the libreadline library if it is available. There is a corresponding `--with-XXX-prefix' option for each of these libraries (except for libgc and libffi which use `pkg-config', see below) that you can use when invoking ./configure, if you have these libraries installed in a location other than the standard places (/usr and /usr/local). These options are provided by the Gnulib `havelib' module, and details of how they work are documented in `Searching for Libraries' in the Gnulib manual (http://www.gnu.org/software/gnulib/manual). The extent to which they work on a given OS depends on whether that OS supports encoding full library path names in executables (aka `rpath'). Also note that using these options, and hence hardcoding full library path names (where that is supported), makes it impossible to later move the built executables and libraries to an installation location other than the one that was specified at build time. Another possible approach is to set CPPFLAGS and LDFLAGS on the configure command-line, so that they include -I options for all the non-standard places where you have installed header files and -L options for all the non-standard places where you have installed libraries. This will allow configure and make to find those headers and libraries during the build. E.g.: ../configure [...] CPPFLAGS='-I/my/include' LDFLAGS='-L/my/lib' The locations found will not be hardcoded into the build executables and libraries, so with this approach you will probably also need to set LD_LIBRARY_PATH correspondingly, to allow Guile to find the necessary libraries again at runtime. Required External Packages ================================================ Guile requires the following external packages: - GNU MP, at least version 4.2 GNU MP is used for bignum arithmetic. It is available from http://gmplib.org/ . - libltdl from GNU Libtool, at least version 1.5.6 libltdl is used for loading extensions at run-time. It is available from http://www.gnu.org/software/libtool/ . - GNU libunistring, at least version 0.9.3 libunistring is used for Unicode string operations, such as the `utf*->string' procedures. It is available from http://www.gnu.org/software/libunistring/ . - libgc, at least version 7.0 libgc (aka. the Boehm-Demers-Weiser garbage collector) is the conservative garbage collector used by Guile. It is available from http://www.hboehm.info/gc/ . - libffi libffi provides a "foreign function interface", used by the `(system foreign)' module. It is available from http://sourceware.org/libffi/ . - pkg-config Guile's ./configure script uses pkg-config to discover the correct compile and link options for libgc and libffi. For this to work, the `PKG_CONFIG_PATH' environment variable must be set to point to the places where libgc's and libffi's `.pc' files can be found: PKG_CONFIG_PATH=/path/to/libgc/lib/pkgconfig:/path/to/libffi/lib/pkgconfig Alternatively, when pkg-config is not installed, you can work around this by setting some variables as part of the configure command-line: - PKG_CONFIG=true - BDW_GC_CFLAGS= - BDW_GC_LIBS= Note that because you're bypassing all pkg-config checks, you will also have to specify libffi flags as well: - LIBFFI_CFLAGS= - LIBFFI_LIBS= Special Instructions For Some Systems ===================================== We would like Guile to build on all systems using the simple instructions above, but it seems that a few systems still need special treatment. If you can send us fixes for these problems, we'd be grateful. Guile specific flags Accepted by Configure ================================= If you run the configure script with no arguments, it should examine your system and set things up appropriately. However, there are a few switches specific to Guile you may find useful in some circumstances. --without-threads --- Build without thread support Build a Guile executable and library that supports multi-threading. The default is to enable threading support when your operating system offsers 'POSIX threads'. When you do not want threading, use `--without-threads'. --enable-deprecated=LEVEL Guile may contain features that are `deprecated'. When a feature is deprecated, it means that it is still there, but that there is a better way of achieving the same thing, and we'd rather have you use this better way. This allows us to eventually remove the old implementation and helps to keep Guile reasonably clean of historic baggage. See the file NEWS for a list of features that are currently deprecated. Each entry will also tell you what you should replace your code with. To give you some help with this process, and to encourage (OK, nudge) people to switch to the newer methods, Guile can emit warnings or errors when you use a deprecated feature. There is quite a range of possibilities, from being completely silent to giving errors at link time. What exactly happens is determined both by the value of the `--enable-deprecated' configuration option when Guile was built, and by the GUILE_WARN_DEPRECATED environment variable. It works like this: When Guile has been configured with `--enable-deprecated=no' (or, equivalently, with `--disable-deprecated') then all deprecated features are omitted from Guile. You will get "undefined reference", "variable unbound" or similar errors when you try to use them. When `--enable-deprecated=LEVEL' has been specified (for LEVEL not "no"), LEVEL will be used as the default value of the environment variable GUILE_WARN_DEPRECATED. A value of "yes" is changed to "summary" and "shutup" is changed to "no", however. When GUILE_WARN_DEPRECATED has the value "no", nothing special will happen when a deprecated feature is used. When GUILE_WARN_DEPRECATED has the value "summary", and a deprecated feature has been used, Guile will print this message at exit: Some deprecated features have been used. Set the environment variable GUILE_WARN_DEPRECATED to "detailed" and rerun the program to get more information. Set it to "no" to suppress this message. When GUILE_WARN_DEPRECATED has the value "detailed", a detailed warning is emitted immediatly for the first use of a deprecated feature. The default is `--enable-deprecated=yes'. In addition to setting GUILE_WARN_DEPRECATED in the environment, you can also use (debug-enable 'warn-deprecated) and (debug-disable 'warn-deprecated) to enable and disable the detailed messaged at run time. Additionally, if your toolchain is new enough, you will receive warnings at link time if you have a Guile extension that uses deprecated functions provided by Guile. --disable-shared --- Do not build shared libraries. --disable-static --- Do not build static libraries. Normally, both static and shared libraries will be built if your system supports them. --enable-debug-freelist --- Enable freelist debugging. This enables a debugging version of scm_cell and scm_double_cell, and also registers an extra primitive, the setter `gc-set-debug-check-freelist!'. Configure with the --enable-debug-freelist option to enable the gc-set-debug-check-freelist! primitive, and then use: (gc-set-debug-check-freelist! #t) # turn on checking of the freelist (gc-set-debug-check-freelist! #f) # turn off checking Checking of the freelist forces a traversal of the freelist and a garbage collection before each allocation of a cell. This can slow down the interpreter dramatically, so the setter should be used to turn on this extra processing only when necessary. --enable-debug-malloc --- Enable malloc debugging. Include code for debugging of calls to scm_malloc, scm_realloc, etc. It records the number of allocated objects of each kind. This is useful when searching for memory leaks. A Guile compiled with this option provides the primitive `malloc-stats' which returns an alist with pairs of kind and the number of objects of that kind. --enable-guile-debug --- Include internal debugging functions --disable-posix --- omit posix interfaces --disable-networking --- omit networking interfaces --disable-regex --- omit regular expression interfaces Cross building Guile ===================================================== As of Guile 2.0.x, the build process produces a library, libguile-2.0, along with Guile "object files" containing bytecode to be interpreted by Guile's virtual machine. The bytecode format depends on the endianness and word size of the host CPU. Thus, when cross building Guile, you first need to configure, build and install it for your build host. Then, you may configure Guile for cross building: ./configure --host=i686-pc-cygwin --disable-shared A C compiler for the build system is required. If that doesn't suit it can be specified with the CC_FOR_BUILD variable in the usual way, for instance: ./configure --host=m68k-unknown-linux-gnu CC_FOR_BUILD=/my/local/gcc Guile for the build system can be specified similarly with the GUILE_FOR_BUILD variable, which defaults to whatever `guile' executable is found in $PATH. It must have the exact same version has the Guile that you intend to cross-build. Using Guile Without Installing It ========================================= The "meta/" subdirectory of the Guile sources contains a script called "guile" that can be used to run the Guile that has just been built. Note that this is not the same "guile" as the one that is installed; this "guile" is a wrapper script that sets up the environment appropriately, then invokes the Guile binary. You may also build external packages against an uninstalled Guile build tree. The "uninstalled-env" script in the "meta/" subdirectory will set up an environment with a path including "meta/", a modified dynamic linker path, a modified PKG_CONFIG_PATH, etc. For example, you can enter this environment via invoking meta/uninstalled-env bash Within that shell, other packages should be able to build against uninstalled Guile. Installing SLIB =========================================================== In order to use SLIB from Guile you basically only need to put the `slib' directory _in_ one of the directories on Guile's load path. The standard installation is: 1. Obtain slib from http://www-swiss.ai.mit.edu/~jaffer/SLIB.html 2. Put it in Guile's data directory, that is the directory printed when you type guile-config info pkgdatadir at the shell prompt. This is normally `/usr/local/share/guile', so the directory will normally have full path `/usr/local/share/guile/slib'. 3. Start guile as a user with write access to the data directory and type (use-modules (ice-9 slib)) at the Guile prompt. This will generate the slibcat catalog next to the slib directory. SLIB's `require' is provided by the Guile module (ice-9 slib). Example: (use-modules (ice-9 slib)) (require 'primes) (prime? 7) Guile Documentation ================================================== The Guile Reference Manual (guile.info) is the primary documentation for Guile. A copy of the R5RS Scheme specification is included too (r5rs.info). Info format versions of this documentation are installed as part of the normal build process. The texinfo sources are under the doc directory, and other formats like Postscript, PDF, DVI or HTML can be generated from them with Tex and Texinfo tools. The doc directory also includes an example-smob subdirectory which has the example code from the "Defining New Types (Smobs)" chapter of the reference manual. The Guile WWW page is at http://www.gnu.org/software/guile/guile.html It contains a link to the Guile FAQ. About This Distribution ============================================== Interesting files include: - LICENSE, which contains the exact terms of the Guile license. - COPYING.LESSER, which contains the terms of the GNU Lesser General Public License. - COPYING, which contains the terms of the GNU General Public License. - INSTALL, which contains general instructions for building/installing Guile. - NEWS, which describes user-visible changes since the last release of Guile. Files are usually installed according to the prefix specified to configure, /usr/local by default. Building and installing gives you: Executables, in ${prefix}/bin: guile --- a stand-alone interpreter for Guile. With no arguments, this is a simple interactive Scheme interpreter. It can also be used as an interpreter for script files; see the NEWS file for details. guile-config --- a Guile script which provides the information necessary to link your programs against the Guile library. guile-snarf --- a script to parse declarations in your C code for Scheme-visible C functions, Scheme objects to be used by C code, etc. Libraries, in ${prefix}/lib. Depending on the platform and options given to configure, you may get shared libraries in addition to or instead of these static libraries: libguile.a --- an object library containing the Guile interpreter, You can use Guile in your own programs by linking against this. libguilereadline.a --- an object library containing glue code for the GNU readline library. libguile-srfi-*.a --- various SRFI support libraries Header files, in ${prefix}/include: libguile.h, guile/gh.h, libguile/*.h --- for libguile. guile-readline/readline.h --- for guile-readline. Support files, in ${prefix}/share/guile/: ice-9/* --- run-time support for Guile: the module system, read-eval-print loop, some R4RS code and other infrastructure. oop/* --- the Guile Object-Oriented Programming System (GOOPS) scripts/* --- executable modules, i.e., scheme programs that can be both called as an executable from the shell, and loaded and used as a module from scheme code. See scripts/README for more info. srfi/* --- SRFI support modules. See srfi/README for more info. Automake macros, in ${prefix}/share/aclocal: guile.m4 Documentation in Info format, in ${prefix}/info: guile --- Guile reference manual. guile-tut --- Guile tutorial. GOOPS --- GOOPS reference manual. r5rs --- Revised(5) Report on the Algorithmic Language Scheme. The Guile source tree is laid out as follows: libguile: The Guile Scheme interpreter --- both the object library for you to link with your programs, and the executable you can run. ice-9: Guile's module system, initialization code, and other infrastructure. guile-config: Source for the guile-config script. guile-readline: The glue code for using GNU readline with Guile. This will be build when configure can find a recent enough readline library on your system. doc: Documentation (see above). Git Repository Access ================================================ Guile's source code is stored in a Git repository at Savannah. Anyone can access it using `git-clone' from one of the following URLs: git://git.sv.gnu.org/guile.git http://git.sv.gnu.org/r/guile.git Developers with a Savannah SSH account can also access it from: ssh://git.sv.gnu.org/srv/git/guile.git The repository can also be browsed on-line at the following address: http://git.sv.gnu.org/gitweb/?p=guile.git For more information on Git, please see: http://git.or.cz/ Please send problem reports to . usr/share/doc/perl-Data-OptList/README000064400000000604152536131010013306 0ustar00 This archive contains the distribution Data-OptList, version 0.110: parse and validate simple name/value option pairs This software is copyright (c) 2006 by Ricardo Signes. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. This README file was generated by Dist::Zilla::Plugin::Readme v5.043. usr/lib64/python2.7/Demo/curses/README000064400000001524152536152230013123 0ustar00This is a collection of demos and tests for the curses module. ncurses demos ============= These demos are converted from the C versions in the ncurses distribution, and were contributed by Thomas Gellekum I didn't strive for a `pythonic' style, but bluntly copied the originals. I won't attempt to `beautify' the program anytime soon, but I wouldn't mind someone else making an effort in that direction, of course. ncurses.py -- currently only a panels demo rain.py -- raindrops keep falling on my desktop tclock.py -- ASCII clock, by Howard Jones xmas.py -- I'm dreaming of an ASCII christmas Please submit bugfixes and new contributions to the Python bug tracker. Other demos =========== life.py -- Simple game of Life repeat.py -- Repeatedly execute a shell command (like watch(1)) etc/pki/ca-trust/extracted/java/README000064400000001326152536155370013446 0ustar00This directory /etc/pki/ca-trust/extracted/java/ contains CA certificate bundle files which are automatically created based on the information found in the /usr/share/pki/ca-trust-source/ and /etc/pki/ca-trust/source/ directories. All files are in the java keystore file format. If your application isn't able to load the PKCS#11 module p11-kit-trust.so, then you can use these files in your application to load a list of global root CA certificates. Please never manually edit the files stored in this directory, because your changes will be lost and the files automatically overwritten, each time the update-ca-trust command gets executed. Please refer to the update-ca-trust(8) manual page for additional information. usr/lib64/python2.7/Demo/cgi/README000064400000000665152536160740012373 0ustar00CGI Examples ------------ Here are some example CGI programs. For a larger example, see ../../Tools/faqwiz/. cgi0.sh -- A shell script to test your server is configured for CGI cgi1.py -- A Python script to test your server is configured for CGI cgi2.py -- A Python script showing how to parse a form cgi3.py -- A Python script for driving an arbitrary CGI application wiki.py -- Sample CGI application: a minimal Wiki implementation usr/share/doc/automake/README000064400000005234152536167030011726 0ustar00This is Automake, a Makefile generator. It aims to be portable and to conform to the GNU Coding Standards for Makefile variables and targets. See the INSTALL file for detailed information about how to configure and install Automake. Automake is a Perl script. The input files are called Makefile.am. The output files are called Makefile.in; they are intended for use with Autoconf. Automake requires certain things to be done in your configure.ac. Automake comes with extensive documentation; please refer to it for more details about its purpose, features, and usage patterns. This package also includes the "aclocal" program, whose purpose is to generate an 'aclocal.m4' based on the contents of 'configure.ac'. It is useful as an extensible, maintainable mechanism for augmenting autoconf. It is intended that other package authors will write m4 macros which can be automatically used by aclocal. The documentation for aclocal is currently found in the Automake manual. Automake has a test suite. Use "make check" to run it. For more information, see the file t/README. Automake has a page on the web. See: https://www.gnu.org/software/automake/ Automake also has three mailing lists: * automake@gnu.org For general discussions of Automake and its interactions with other configuration/portability tools like Autoconf or Libtool. * bug-automake@gnu.org Where to send bug reports and feature requests. * automake-patches@gnu.org Where to send patches, and discuss the automake development process and the design of new features. To obtain more information about these list, or to subscribe to them, refer to New releases are announced to autotools-announce@gnu.org. If you want to be informed, subscribe to that list by following the instructions at . For any copyright year range specified as YYYY-ZZZZ in this package, that the range specifies every single year in that closed interval. ----- Copyright (C) 1994-2012 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . usr/share/doc/net-snmp/README000064400000033004152536203350011651 0ustar00 README file for net-snmp Version: 5.8 DISCLAIMER The Authors assume no responsibility for damage or loss of system performance as a direct or indirect result of the use of this software. This software is provided "as is" without express or implied warranty. TABLE OF CONTENTS Disclaimer Table Of Contents Introduction * Supported Architectures Availability Web Page * Installation Copying And Copyrights * Frequently Asked Questions Helping Out * Code Update Announcements * Mailing Lists Agent Extensibility Example Agent Configuration and Usage Configuration Submitting Bug Reports Closing Thanks * = Required Reading. INTRODUCTION This package was originally based on the CMU 2.1.2.1 snmp code. It has been greatly modified, restructured, enhanced and fixed. It hardly looks the same as anything that CMU has ever released. It was renamed from cmu-snmp to ucd-snmp in 1995 and later renamed from ucd-snmp to net-snmp in November 2000. This README file serves as a starting place to learn about the package, but very little of the documentation is contained within this file. The FAQ is an excellent place to start as well. Additionally, there are a bunch of README files for specific architectures and specific features. You might wish to look at some of these other files as well. SUPPORTED ARCHITECTURES Please see the FAQ for this information. Please let us know if you compile it on other OS versions and it works for you so we can add them to the above list. Porting: Please! read the PORTING file. Also note that many architecture have architecture specific README files, so you should check to see if there is one appropriate to your platform. AVAILABILITY Download: - http://www.net-snmp.org/download/ Web page: - http://www.net-snmp.org/ Project Wiki: - http://www.net-snmp.org/wiki/ Sourceforge Project page: - http://sourceforge.net/projects/net-snmp The old ucd-snmp.ucdavis.edu web site and ftp server is now offline and should not be accessed any longer. WEB PAGES http://www.net-snmp.org/ http://sourceforge.net/projects/net-snmp http://www.net-snmp.org/wiki/ INSTALLATION See the INSTALL file distributed with this package. COPYING AND COPYRIGHTS See the COPYING file distributed with this package. FREQUENTLY ASKED QUESTIONS See the FAQ file distributed with this package. This is also available on the project Wiki at http://www.net-snmp.org/wiki/index.php/FAQ so that the wider Net-SNMP community can help maintain it! HELPING OUT This is a project worked on by people around the net. We'd love your help, but please read the PORTING file first. Also, subscribe to the net-snmp-coders list described below and mention what you're going to work on to make sure no one else is already doing so! You'll also need to keep up to date with the latest code snap shot, which can be obtained from CVS using the information found at http://www.net-snmp.org/cvs/. Contributions to the Net-SNMP source code in any form are greatly appreciated. We expect the parties providing such contributions to have the right to contribute them to the Net-SNMP project or that the parties that do have the right have directed the person submitting the contribution to do so. In addition, all contributors need to be aware that if the contribution is accepted and incorporated into the Net-SNMP project, it will be redistributed under the terms of the license agreement used for the entire body of work that comprises the Net-SNMP project (see the COPYING file for details). If this license agreement ever changes the contribution will continue to be released under any new licenses as well. Thank you, in advance, for your gracious contributions. CODE UPDATE ANNOUNCEMENTS See the NEWS file and the ChangeLog file for details on what has changed between releases. We hate broadcasting announce messages to other mailing lists and newsgroups, so there is a mailing list set up to handle release announcements. Any time we put new software out for ftp, we'll mail this fact to net-snmp-announce@lists.sourceforge.net. See the MAILING LISTS section described below to sign up for these announcements. We will post new announcements on a very infrequent basis to the other channels (the other snmp mailing lists and newsgroups like comp.protocols.snmp), but only for major code revisions and not for bug-fix patches or small feature upgrades. MAILING LISTS The lists: A number of mailing lists have been created for support of the project: The main ones are: net-snmp-announce@lists.sourceforge.net -- For official announcements net-snmp-users@lists.sourceforge.net -- For usage discussions net-snmp-coders@lists.sourceforge.net -- For development discussions The -coders list is intended for discussion on development of code that will be shipped as part of the package. The -users list is for general discussion on configuring and using the package, including issues with coding user-developed applications (clients, managers, MIB modules, etc). Please do *NOT* send messages to both -users and -coders lists. This is completely unnecessary, and simply serves to further overload (and annoy) the core development team. If in doubt, just use the -users list. The other lists of possible interest are: net-snmp-cvs@lists.sourceforge.net -- For cvs update announcements net-snmp-bugs@lists.sourceforge.net -- For Bug database update announcements net-snmp-patches@lists.sourceforge.net -- For Patch database update announcements Please do NOT post messages to these lists (or to the announce list above). Bug reports and Patches should be submitted via the Source Forge tracker system. See the main project web pages for details. To subscribe to any of these lists, please see: http://www.net-snmp.org/lists/ Archives: The archives for these mailing lists can be found by following links at http://www.net-snmp.org/lists/ AGENT EXTENSIBILITY The agent that comes with this package is extensible through use of shell scripts and other methods. See the configuration manual pages (like snmpd.conf) and run the snmpconf perl script for further details. You can also extend the agent by writing C code directly. The agent is extremely modular in nature and you need only create new files, re-run configure and re-compile (or link against its libraries). No modification of the distributed source files are necessary. See the following files for details on how to go about this: http://www.net-snmp.org/tutorial-5/toolkit/, agent/mibgroup/examples/*.c Also, see the local/mib2c program and its README file for help in turning a textual mib description into a C code template. We now support AgentX for subagent extensibility. The net-snmp agent can run as both a master agent and a subagent. Additionally, a toolkit is provided that enables users of it to easily embed a agentx client into external applications. See the tutorial at http://www.net-snmp.org/tutorial-5/toolkit/ for an example of how go about doing this. CONFIGURATION See the man/snmp.conf.5 manual page. For the agent, additionally see the man/snmpd.conf.5 manual page. For the snmptrapd, see the man/snmptrapd.conf.5 manual page. You can also run the snmpconf perl script to help you create some of these files. SUBMITTING BUG REPORTS Important: *Please* include what version of the net-snmp (or ucd-snmp) package you are using and what architecture(s) you're using, as well as detailed information about exactly what is wrong. To submit a bug report, please use the web interface at http://www.net-snmp.org/bugs/. It is a full-fledged bug-tracking system that will allow you to search for already existing bug reports as well as track the status of your report as it is processed by the core developers. If you intend to submit a patch as well, please read the PORTING file before you do so and then submit it to http://www.net-snmp.org/patches/. CLOSING We love patches. Send some to us! But before you do, please see the 'PORTING' file for information on helping us out with the process of integrating your patches (regardless of whether its a new feature implementation or a new port). Also, We're interested if anyone actually uses/likes/hates/whatever this package... Mail us a note and let us know what you think of it! Have fun and may it make your life easier, The net-snmp developers THANKS The following people have contributed various patches and improvements. To them we owe our deepest thanks (and you do too!): Wes Hardaker Steve Waldbusser Dan A. Dickey Dave Shield Giovanni S. Marzot Niels Baggesen Simon Leinen David T. Perkins Mike Perik Sanjai Narain francus@metsny.delphi.com Gary Palmer Marc G. Fournier Gary A. Hayward Jennifer Bray Philip Guenther Elwyn B Davies Simon Burge David Paul Zimmerman Alan Batie Michael Douglass Ted Rule Craig Bevins Arther Hyun Cristian Estan Eugene Polovnikov Jakob Ellerstedt Michael J. Slifcak Jonas Olsson James H. Young Jeff Johnson Markku Laukkanen Derek Simkowiak David F. Newman Nick Amato Mike Baer Patrick Lawrence Russ Mundy Olafur Gudmundsson David Reeder Ed Lewis Bill Babson Chris Smith Mike Michaud Andy Hood Robert Story Bert Driehuis Juergen Schoenwaelder Frank Strauss Ragnar Kjørstad Jochen Kmietsch Jun-ichiro itojun Hagino John L Villalovos Christoph Mammitzsch Arne Oesleboe Jeff Cours Karl Schilke John Naylon Ken Hornstein Martin Oldfield Harrie Hazewinkel Mark Ferlatte Marus Meissner Stephan Wenzer Ron Mevissen T.J. Mather Craig Setera Katsuhisa ABE Axel Kittenberger Johannes Schmidt-Fischer Jeffrey Watson Bruce Shaw Stefan Radman Stephen J. Friedl Alex Burger Christophe Varoqui Srikanth Pindiproli Kevin Graham Xiaofeng Ling Brandon Knitter Andrew Findlay Ron Tabor Peter Warasin Bob Rowlands Peter Hicks Andy Smith Nick Barkas Noah Friedman Geert De Peuter Magnus Fromreide Marcus Meissner Andrew Rucker Jones Dai.H. Thomas Anders Vladislav Bogdanov Peter Martin Thomas Lackey Joe Buehler Anders Persson Rojer Bart Van Assche Pablo Carboni Bill Fenner Brian Sipos Eugene M. Kim Anders Wallin Andrew Stormont Keith Mendoza We've probably forgotten people on this list. Let us know if you've contributed code and we've left you out. usr/share/doc/perl-B-Debug/README000064400000003117152536261450012264 0ustar00NAME B::Debug - Walk Perl syntax tree, printing debug info about ops SYNOPSIS perl -MO=Debug foo.pl perl -MO=Debug,-exec foo.pl DESCRIPTION See ext/B/README and the newer B::Concise. OPTIONS With option -exec, walks tree in execute order, otherwise in basic order. AUTHOR Malcolm Beattie, "retired" Reini Urban "rurban@cpan.org" LICENSE Copyright (c) 1996, 1997 Malcolm Beattie Copyright (c) 2008, 2010, 2013, 2014 Reini Urban This program is free software; you can redistribute it and/or modify it under the terms of either: a) the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version, or b) the "Artistic License" which comes with this kit. 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 either the GNU General Public License or the Artistic License for more details. You should have received a copy of the Artistic License with this kit, in the file named "Artistic". If not, you can get one from the Perl distribution. You should also have received a copy of the GNU General Public License, in the file named "Copying". If not, you can get one from the Perl distribution or else write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. usr/share/doc/ilmbase/README000064400000003710152536343600011530 0ustar00ABOUT THE ILMBASE LIBRARIES ---------------------------- Half is a class that encapsulates our 16-bit floating-point format. IlmThread is a thread abstraction library for use with OpenEXR and other software packages. It currently supports pthreads and Windows threads. Imath implements 2D and 3D vectors, 3x3 and 4x4 matrices, quaternions and other useful 2D and 3D math functions. Iex is an exception-handling library. If you have questions about using the IlmBase libraries, you may want to join our developer mailing list. See http://www.openexr.com for details. LICENSE ------- The IlmBase source code distribution is free software. See the file named COPYING (included in this distribution) for details. BUILDING ILMBASE ---------------- To build IlmBase on GNU/Linux or other UNIX-like systems, do this: ./configure make make install unless you obtained IlmBase directly from git, in which case you should first read README.git Please type : ./configure --help for a list of options in relation to building IlmBase libraries. In particular, peruse README.namespaces for information regarding the use of namespaces in IlmBase and OpenEXR. See README.OSX for details on building IlmBase in MacOS X. Do `make check` to run the IlmBase confidence tests. They should all pass; if you find a test that does not pass on your system, please let us know. Other UNIX variants haven't been tested, but should be easy to build. Let us know if you're having problems porting IlmBase to a particular platform. All include files needed to use the IlmBase libraries are installed in the OpenEXR subdirectory of the install prefix, e.g. /usr/local/include/OpenEXR. USING ILMBASE IN YOUR APPLICATIONS ---------------------------------- On systems with support for pkg-config, use `pkg-config --cflags IlmBase` for the C++ flags required to compile against IlmBase headers; and `pkg-config --libs IlmBase` for the linker flags required to link against IlmBase libraries. usr/share/doc/acpid/README000064400000005720152536403220011172 0ustar00acpid for netlink ================= This branch of the acpid project includes support for netlink and the input layer. The latest version can be found here: http://sourceforge.net/projects/acpid2/ Previous (1.x) versions of acpid relied on /proc/acpi/event which is a deprecated kernel interface for ACPI events. Newer kernels use netlink and the input layer to send ACPI-related events. This branch of acpid uses these new interfaces. BUILD NOTES Before installing, the chances are pretty good that you are already running acpid. You'll want to kill it before installing the new version. While "sudo killall acpid" might work, it is likely that you'll need to work with init (e.g. upstart, systemd, ...) on your particular setup to stop acpid completely. For example, with systemd, the proper incantation is usually: $ sudo systemctl stop acpid acpid.socket acpid version 2.0.15 introduced autoconf. To build versions >= 2.0.15: $ ./configure --prefix=/usr $ make $ sudo make install If you want to start from scratch, use autoreconf to regenerate the configure script from configure.ac and Makefile.am. This is not normally needed, so be sure you understand autoreconf before using it. $ autoreconf --install --force Older versions (<= 2.0.14) of acpid simply required "make" to build: $ make $ sudo make install CONTACT Any comments or patches for this branch should be sent to Ted Felix: http://www.tedfelix.com ( ted -at- tedfelix -dot- com ) You can also fork the git repo on sourceforge and submit changes that way: http://sourceforge.net/u/tedfelix/acpid2/ -------------------------------------------------------------------- OLD README *********************************************************** * README for acpid * * * * Daemon for Advanced Configuration and Power Interface * * Tim Hockin * * * * * *********************************************************** Feb 13, 2004 Overview -------- ACPID used to try to handle events internally. Rather than try to climb an ever-growing mountain, ACPID now lets YOU define what events to handle. Any event that publishes itself to /proc/acpi/event can be handled. ACPID reads a set of configuration files which define event->action pairs. This is how you make it do stuff. See the man page for details. Implementation status --------------------- This version should have complete support for generic handling of events. Requirements ------------ For 2.6 and newer 2.4 kernels, ACPI seems to be fully integrated. That should be all you need. The ACPI kernel driver should be working on your system before trying ACPID. Verify ACPI is loaded by verifying the existence of /proc/acpi/event. Compiling ACPID --------------- type "make" usr/share/doc/gzip/README000064400000013766152536500150011074 0ustar00This is the file README for the gzip distribution. The GNU gzip home page is https://www.gnu.org/software/gzip. gzip (GNU zip) is a compression utility designed to be a replacement for 'compress'. Its main advantages over compress are much better compression and freedom from patented algorithms. The GNU Project uses it as the standard compression program for its system. gzip currently uses by default the LZ77 algorithm used in zip 1.9 (the portable pkzip compatible archiver). The gzip format was however designed to accommodate several compression algorithms. See below for a comparison of zip and gzip. gunzip can currently decompress files created by gzip, compress or pack. The detection of the input format is automatic. For the gzip format, gunzip checks a 32 bit CRC. For pack, gunzip checks the uncompressed length. The 'compress' format was not designed to allow consistency checks. However gunzip is sometimes able to detect a bad .Z file because there is some redundancy in the .Z compression format. If you get an error when uncompressing a .Z file, do not assume that the .Z file is correct simply because the standard uncompress does not complain. This generally means that the standard uncompress does not check its input, and happily generates garbage output. gzip produces files with a .gz extension. Previous versions of gzip used the .z extension, which was already used by the 'pack' Huffman encoder. gunzip is able to decompress .z files (packed or gzip'ed). Several planned features are not yet supported (see the file TODO). See the file NEWS for a summary of changes since the last release. See the file INSTALL for installation instructions. WARNING: gzip is sensitive to compiler bugs, particularly when optimizing. Use "make check" to check that gzip was compiled correctly. Try compiling gzip without any optimization if you have a problem. Please send all comments and bug reports by electronic mail to . Bug reports should ideally include: * The complete output of "gzip -V" (or the contents of revision.h if you can't get gzip to compile) * The hardware and operating system (try "uname -a") * The compiler used to compile (if it is gcc, use "gcc -v") * A description of the bug behavior * The input to gzip, that triggered the bug If you send me patches for machines I don't have access to, please test them very carefully. gzip is used for backups, it must be extremely reliable. The znew and gzexe shell scripts provided with gzip benefit from (but do not require) the (non-GNU) cpmod utility to transfer file attributes. The sample programs zread.c, sub.c and add.c in subdirectory sample are provided as examples of useful complements to gzip. Read the comments inside each source file. The perl script ztouch is also provided as example (not installed by default since it relies on perl). gzip is free software, you can redistribute it and/or modify it under the terms of the GNU General Public License, a copy of which is provided under the name COPYING. The latest version of gzip is always available from https://ftp.gnu.org/gnu/gzip or in any of the GNU mirror sites. Many thanks to those who provided me with bug reports and feedback. See the files THANKS and ChangeLog for more details. Note about zip vs. gzip: The name 'gzip' was a very unfortunate choice, because zip and gzip are two really different programs, although the actual compression and decompression sources were written by the same persons. A different name should have been used for gzip, but it is too late to change now. zip is an archiver: it compresses several files into a single archive file. gzip is a simple compressor: each file is compressed separately. Both share the same compression and decompression code for the 'deflate' method. unzip can also decompress old zip archives (implode, shrink and reduce methods). gunzip can also decompress files created by compress and pack. zip 1.9 and gzip do not support compression methods other than deflation. (zip 1.0 supports shrink and implode). Better compression methods may be added in future versions of gzip. zip will always stick to absolute compatibility with pkzip, it is thus constrained by PKWare, which is a commercial company. The gzip header format is deliberately different from that of pkzip to avoid such a constraint. On Unix, gzip is mostly useful in combination with tar. GNU tar 1.11.2 and later has a -z option to invoke gzip automatically. "tar -z" compresses better than zip, since gzip can then take advantage of redundancy between distinct files. The drawback is that you must scan the whole tar.gz file in order to extract a single file near the end; unzip can directly seek to the end of the zip file. There is no overhead when you extract the whole archive anyway. If a member of a .zip archive is damaged, other files can still be recovered. If a .tar.gz file is damaged, files beyond the failure point cannot be recovered. (Future versions of gzip will have error recovery features.) gzip and gunzip are distributed as a single program. zip and unzip are, for historical reasons, two separate programs, although the authors of these two programs work closely together in the Info-ZIP team. zip and unzip are not associated with the GNU project. See http://info-zip.org/ for more about zip and unzip. For any copyright year range specified as YYYY-ZZZZ in this package note that the range specifies every single year in that closed interval. ======================================================================== Copyright (C) 1999, 2001-2002, 2006-2007, 2009-2018 Free Software Foundation, Inc. Copyright (C) 1992, 1993 Jean-loup Gailly Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the ``GNU Free Documentation License'' file as part of this distribution. usr/share/doc/bind/README000064400000067517152536550610011050 0ustar00README BIND 9 Contents 1. Introduction 2. Reporting bugs and getting help 3. Contributing to BIND 4. BIND 9.11 features 5. Building BIND 6. macOS 7. Dependencies 8. Compile-time options 9. Automated testing 10. Documentation 11. Change log 12. Acknowledgments Introduction BIND (Berkeley Internet Name Domain) is a complete, highly portable implementation of the DNS (Domain Name System) protocol. The BIND name server, named, is able to serve as an authoritative name server, recursive resolver, DNS forwarder, or all three simultaneously. It implements views for split-horizon DNS, automatic DNSSEC zone signing and key management, catalog zones to facilitate provisioning of zone data throughout a name server constellation, response policy zones (RPZ) to protect clients from malicious data, response rate limiting (RRL) and recursive query limits to reduce distributed denial of service attacks, and many other advanced DNS features. BIND also includes a suite of administrative tools, including the dig and delv DNS lookup tools, nsupdate for dynamic DNS zone updates, rndc for remote name server administration, and more. BIND 9 is a complete re-write of the BIND architecture that was used in versions 4 and 8. Internet Systems Consortium (https://www.isc.org), a 501 (c)(3) public benefit corporation dedicated to providing software and services in support of the Internet infrastructure, developed BIND 9 and is responsible for its ongoing maintenance and improvement. BIND is open source software licensed under the terms of ISC License for all versions up to and including BIND 9.10, and the Mozilla Public License version 2.0 for all subsequent versions. For a summary of features introduced in past major releases of BIND, see the file HISTORY. For a detailed list of changes made throughout the history of BIND 9, see the file CHANGES. See below for details on the CHANGES file format. For up-to-date versions and release notes, see https://www.isc.org/ download/. Reporting bugs and getting help To report non-security-sensitive bugs or request new features, you may open an Issue in the BIND 9 project on the ISC GitLab server at https:// gitlab.isc.org/isc-projects/bind9. Please note that, unless you explicitly mark the newly created Issue as "confidential", it will be publicly readable. Please do not include any information in bug reports that you consider to be confidential unless the issue has been marked as such. In particular, if submitting the contents of your configuration file in a non-confidential Issue, it is advisable to obscure key secrets: this can be done automatically by using named-checkconf -px. If the bug you are reporting is a potential security issue, such as an assertion failure or other crash in named, please do NOT use GitLab to report it. Instead, send mail to security-officer@isc.org using our OpenPGP key to secure your message. (Information about OpenPGP and links to our key can be found at https://www.isc.org/pgpkey.) Please do not discuss the bug on any public mailing list. For a general overview of ISC security policies, read the Knowledge Base article at https://kb.isc.org/docs/aa-00861. Professional support and training for BIND are available from ISC at https://www.isc.org/support. To join the BIND Users mailing list, or view the archives, visit https:// lists.isc.org/mailman/listinfo/bind-users. If you're planning on making changes to the BIND 9 source code, you may also want to join the BIND Workers mailing list, at https://lists.isc.org/ mailman/listinfo/bind-workers. Contributing to BIND ISC maintains a public git repository for BIND; details can be found at http://www.isc.org/git/. Information for BIND contributors can be found in the following files: - General information: doc/dev/contrib.md - BIND 9 code style: doc/dev/ style.md - BIND architecture and developer guide: doc/dev/dev.md Patches for BIND may be submitted as merge requests in the ISC GitLab server at at https://gitlab.isc.org/isc-projects/bind9/merge_requests. By default, external contributors don't have ability to fork BIND in the GitLab server, but if you wish to contribute code to BIND, you may request permission to do so. Thereafter, you can create git branches and directly submit requests that they be reviewed and merged. If you prefer, you may also submit code by opening a GitLab Issue and including your patch as an attachment, preferably generated by git format-patch. BIND 9.11 features BIND 9.11.0 includes a number of changes from BIND 9.10 and earlier releases. New features include: • Added support for Catalog Zones, a new method for provisioning servers: a list of zones to be served is stored in a DNS zone, along with their configuration parameters. Changes to the catalog zone are propagated to slaves via normal AXFR/IXFR, whereupon the zones that are listed in it are automatically added, deleted or reconfigured. • Added support for "dnstap", a fast and flexible method of capturing and logging DNS traffic. • Added support for "dyndb", a new API for loading zone data from an external database, developed by Red Hat for the FreeIPA project. • "fetchlimit" quotas are now compiled in by default. These are for the use of recursive resolvers that are are under high query load for domains whose authoritative servers are nonresponsive or are experiencing a denial of service attack: □ fetches-per-server limits the number of simultaneous queries that can be sent to any single authoritative server. The configured value is a starting point; it is automatically adjusted downward if the server is partially or completely non-responsive. The algorithm used to adjust the quota can be configured via the "fetch-quota-params" option. □ fetches-per-zone limits the number of simultaneous queries that can be sent for names within a single domain. (Note: Unlike fetches-per-server, this value is not self-tuning.) □ New stats counters have been added to count queries spilled due to these quotas. • Added a new dnssec-keymgr key maintenance utility, which can generate or update keys as needed to ensure that a zone's keys match a defined DNSSEC policy. • The experimental "SIT" feature in BIND 9.10 has been renamed "COOKIE" and is no longer optional. EDNS COOKIE is a mechanism enabling clients to detect off-path spoofed responses, and servers to detect spoofed-source queries. Clients that identify themselves using COOKIE options are not subject to response rate limiting (RRL) and can receive larger UDP responses. • SERVFAIL responses can now be cached for a limited time (defaulting to 1 second, with an upper limit of 30). This can reduce the frequency of retries when a query is persistently failing. • Added an nsip-wait-recurse switch to RPZ. This causes NSIP rules to be skipped if a name server IP address isn't in the cache yet; the address will be looked up and the rule will be applied on future queries. • Added a Python RNDC module. This allows multiple commands to sent over a persistent RNDC channel, which saves time. • The controls block in named.conf can now grant read-only rndc access to specified clients or keys. Read-only clients could, for example, check rndc status but could not reconfigure or shut down the server. • rndc commands can now return arbitrarily large amounts of text to the caller. • The zone serial number of a dynamically updatable zone can now be set via rndc signing -serial . This allows inline-signing zones to be set to a specific serial number. • The new rndc nta command can be used to set a Negative Trust Anchor (NTA), disabling DNSSEC validation for a specific domain; this can be used when responses from a domain are known to be failing validation due to administrative error rather than because of a spoofing attack. Negative trust anchors are strictly temporary; by default they expire after one hour, but can be configured to last up to one week. • rndc delzone can now be used on zones that were not originally created by "rndc addzone". • rndc modzone reconfigures a single zone, without requiring the entire server to be reconfigured. • rndc showzone displays the current configuration of a zone. • rndc managed-keys can be used to check the status of RFC 5001 managed trust anchors, or to force trust anchors to be refreshed. • max-cache-size can now be set to a percentage of available memory. The default is 90%. • Update forwarding performance has been improved by allowing a single TCP connection to be shared by multiple updates. • The EDNS Client Subnet (ECS) option is now supported for authoritative servers; if a query contains an ECS option then ACLs containing geoip or ecs elements can match against the the address encoded in the option. This can be used to select a view for a query, so that different answers can be provided depending on the client network. • The EDNS EXPIRE option has been implemented on the client side, allowing a slave server to set the expiration timer correctly when transferring zone data from another slave server. • The key generation and manipulation tools (dnssec-keygen, dnssec-settime, dnssec-importkey, dnssec-keyfromlabel) now take -Psync and -Dsync options to set the publication and deletion times of CDS and CDNSKEY parent-synchronization records. Both named and dnssec-signzone can now publish and remove these records at the scheduled times. • A new minimal-any option reduces the size of UDP responses for query type ANY by returning a single arbitrarily selected RRset instead of all RRsets. • A new masterfile-style zone option controls the formatting of text zone files: When set to full, a zone file is dumped in single-line-per-record format. • serial-update-method can now be set to date. On update, the serial number will be set to the current date in YYYYMMDDNN format. • dnssec-signzone -N date sets the serial number to YYYYMMDDNN. • named -L causes named to send log messages to the specified file by default instead of to the system log. • dig +ttlunits prints TTL values with time-unit suffixes: w, d, h, m, s for weeks, days, hours, minutes, and seconds. • dig +unknownformat prints dig output in RFC 3597 "unknown record" presentation format. • dig +ednsopt allows dig to set arbitrary EDNS options on requests. • dig +ednsflags allows dig to set yet-to-be-defined EDNS flags on requests. • mdig is an alternate version of dig which sends multiple pipelined TCP queries to a server. Instead of waiting for a response after sending a query, it sends all queries immediately and displays responses in the order received. • serial-query-rate no longer controls NOTIFY messages. These are separately controlled by notify-rate and startup-notify-rate. • nsupdate now performs check-names processing by default on records to be added. This can be disabled with check-names no. • The statistics channel now supports DEFLATE compression, reducing the size of the data sent over the network when querying statistics. • New counters have been added to the statistics channel to track the sizes of incoming queries and outgoing responses in histogram buckets, as specified in RSSAC002. • A new NXDOMAIN redirect method (option nxdomain-redirect) has been added, allowing redirection to a specified DNS namespace instead of a single redirect zone. • When starting up, named now ensures that no other named process is already running. • Files created by named to store information, including mkeys and nzf files, are now named after their corresponding views unless the view name contains characters incompatible with use as a filename. Old style filenames (based on the hash of the view name) will still work. BIND 9.11.1 BIND 9.11.1 is a maintenance release, and addresses the security flaws disclosed in CVE-2016-6170, CVE-2016-8864, CVE-2016-9131, CVE-2016-9147, CVE-2016-9444, CVE-2016-9778, CVE-2017-3135, CVE-2017-3136, CVE-2017-3137 and CVE-2017-3138. BIND 9.11.2 BIND 9.11.2 is a maintenance release, and addresses the security flaws disclosed in CVE-2017-3140, CVE-2017-3141, CVE-2017-3142 and CVE-2017-3143. It also addresses several bugs related to the use of an LMDB database to store data related to zones added via rndc addzone or catalog zones. BIND 9.11.3 BIND 9.11.3 is a maintenance release, and addresses the security flaw disclosed in CVE-2017-3145. BIND 9.11.4 BIND 9.11.4 is a maintenance release, and addresses the security flaw disclosed in CVE-2018-5738. It also introduces "root key sentinel" support, enabling validating resolvers to indicate via a special query which trust anchors are configured for the root zone. BIND 9.11.5 BIND 9.11.5 is a maintenance release, and also addresses CVE-2018-5741 by correcting faulty documentation and introducing the following new feature: • New krb5-selfsub and ms-selfsub rule types for update-policy statements allow updating of subdomains based on a Kerberos or Active Directory machine principal. BIND 9.11.6 BIND 9.11.6 is a maintenance release, and also addresses the security flaws disclosed in CVE-2018-5743, CVE-2018-5745, CVE-2018-5744, and CVE-2019-6465. BIND 9.11.7 BIND 9.11.7 is a maintenance release, and also addresses the security flaw disclosed in CVE-2018-5743. BIND 9.11.8 BIND 9.11.8 is a maintenance release, and also addresses the security flaw disclosed in CVE-2019-6471. BIND 9.11.9 BIND 9.11.9 is a maintenance release, and also adds support for the new MaxMind GeoIP2 geolocation API when built with configure --with-geoip2. BIND 9.11.10 BIND 9.11.10 is a maintenance release. BIND 9.11.11 BIND 9.11.11 is a maintenance release. BIND 9.11.12 BIND 9.11.12 is a maintenance release. BIND 9.11.13 BIND 9.11.13 is a maintenance release, and also addresses the security vulnerability disclosed in CVE-2019-6477. BIND 9.11.14 BIND 9.11.14 is a maintenance release. BIND 9.11.15 BIND 9.11.15 is a maintenance release. BIND 9.11.16 BIND 9.11.16 is a maintenance release. BIND 9.11.17 BIND 9.11.17 is a maintenance release. BIND 9.11.18 BIND 9.11.18 is a maintenance release. BIND 9.11.19 BIND 9.11.19 is a maintenance release, and also addresses the security vulnerabilities disclosed in CVE-2020-8616 and CVE-2020-8617. BIND 9.11.20 BIND 9.11.20 is a maintenance release, and also addresses the security vulnerability disclosed in CVE-2020-8619. BIND 9.11.21 BIND 9.11.21 is a maintenance release. BIND 9.11.22 BIND 9.11.22 is a maintenance release, and also addresses the security vulnerabilities disclosed in CVE-2020-8622, CVE-2020-8623, and CVE-2020-8624. BIND 9.11.23 BIND 9.11.23 is a maintenance release. BIND 9.11.24 BIND 9.11.24 is a maintenance release. BIND 9.11.25 BIND 9.11.25 is a maintenance release. BIND 9.11.26 BIND 9.11.26 is a maintenance release. BIND 9.11.27 BIND 9.11.27 is a maintenance release. BIND 9.11.28 BIND 9.11.28 is a maintenance release, and also addresses the security vulnerability disclosed in CVE-2020-8625. BIND 9.11.29 BIND 9.11.29 is a maintenance release. BIND 9.11.30 This release was withdrawn. BIND 9.11.31 BIND 9.11.31 is a maintenance release, and also addresses the security vulnerabilities disclosed in CVE-2021-25214, CVE-2021-25215, and CVE-2021-25216. BIND 9.11.32 BIND 9.11.32 is a maintenance release. BIND 9.11.33 BIND 9.11.33 is a maintenance release. BIND 9.11.34 BIND 9.11.34 is a maintenance release. BIND 9.11.35 BIND 9.11.35 is a maintenance release. BIND 9.11.36 BIND 9.11.36 is a maintenance release, and also addresses the security vulnerability disclosed in CVE-2021-25219. Building BIND Minimally, BIND requires a UNIX or Linux system with an ANSI C compiler, basic POSIX support, and a 64-bit integer type. Successful builds have been observed on many versions of Linux and UNIX, including RHEL/CentOS/ Oracle Linux, Fedora, Debian, Ubuntu, SLES, openSUSE, Slackware, Alpine, FreeBSD, NetBSD, OpenBSD, macOS, Solaris, OpenIndiana, OmniOS CE, HP-UX, and OpenWRT. BIND is also available for Windows Server 2008 and higher. See win32utils/ build.txt for details on building for Windows systems. To build on a UNIX or Linux system, use: $ ./configure $ make If you're planning on making changes to the BIND 9 source, you should run make depend. If you're using Emacs, you might find make tags helpful. Several environment variables that can be set before running configure will affect compilation. Significant ones are: Variable Description CC The C compiler to use. configure tries to figure out the right one for supported systems. C compiler flags. Defaults to include -g and/or -O2 as CFLAGS supported by the compiler. Please include '-g' if you need to set CFLAGS. System header file directories. Can be used to specify STD_CINCLUDES where add-on thread or IPv6 support is, for example. Defaults to empty string. Any additional preprocessor symbols you want defined. STD_CDEFINES Defaults to empty string. For a list of possible settings, see the file OPTIONS. LDFLAGS Linker flags. Defaults to empty string. BUILD_CC Needed when cross-compiling: the native C compiler to use when building for the target system. BUILD_CFLAGS CFLAGS for the target system during cross-compiling. BUILD_CPPFLAGS CPPFLAGS for the target system during cross-compiling. BUILD_LDFLAGS LDFLAGS for the target system during cross-compiling. BUILD_LIBS LIBS for the target system during cross-compiling. Additional environment variables affecting the build are listed at the end of the configure help text, which can be obtained by running the command: $ ./configure --help On platforms where neither the C11 Atomic operations library nor custom ISC atomic operations are available, updating the statistics counters is not locked due to performance reasons and therefore the counters might be inaccurate. Anybody building BIND 9 is strongly advised to use a modern C11 compiler with C11 Atomic operations library support. macOS Building on macOS assumes that the "Command Tools for Xcode" is installed. This can be downloaded from https://developer.apple.com/download/more/ or, if you have Xcode already installed, you can run xcode-select --install. (Note that an Apple ID may be required to access the download page.) Dependencies Portions of BIND that are written in Python, including dnssec-keymgr, dnssec-coverage, dnssec-checkds, and some of the system tests, require the argparse, ply and distutils.core modules to be available. argparse is a standard module as of Python 2.7 and Python 3.2. ply is available from https://pypi.python.org/pypi/ply. distutils.core is required for installation. Compile-time options To see a full list of configuration options, run configure --help. On most platforms, BIND 9 is built with multithreading support, allowing it to take advantage of multiple CPUs. You can configure this by specifying --enable-threads or --disable-threads on the configure command line. The default is to enable threads, except on some older operating systems on which threads are known to have had problems in the past. (Note: Prior to BIND 9.10, the default was to disable threads on Linux systems; this has now been reversed. On Linux systems, the threaded build is known to change BIND's behavior with respect to file permissions; it may be necessary to specify a user with the -u option when running named.) To build shared libraries, specify --with-libtool on the configure command line. For the server to support DNSSEC, you need to build it with crypto support. To use OpenSSL, you should have OpenSSL 1.0.2e or newer installed. If the OpenSSL library is installed in a nonstandard location, specify the prefix using --with-openssl= on the configure command line. To use a PKCS#11 hardware service module for cryptographic operations, specify the path to the PKCS#11 provider library using --with-pkcs11=, and configure BIND with "--enable-native-pkcs11". To support the HTTP statistics channel, the server must be linked with at least one of the following libraries: libxml2 http://xmlsoft.org or json-c https://github.com/json-c/json-c. If these are installed at a nonstandard location, then: • for libxml2, specify the prefix using --with-libxml2=/prefix, • for json-c, adjust PKG_CONFIG_PATH. To support compression on the HTTP statistics channel, the server must be linked against libzlib. If this is installed in a nonstandard location, specify the prefix using --with-zlib=/prefix. To support storing configuration data for runtime-added zones in an LMDB database, the server must be linked with liblmdb. If this is installed in a nonstandard location, specify the prefix using with-lmdb=/prefix. To support GeoIP location-based ACLs, the server must be linked with libGeoIP. This is not turned on by default; BIND must be configured with "--with-geoip". If the library is installed in a nonstandard location, use specify the prefix using "--with-geoip=/prefix". For DNSTAP packet logging, you must have installed libfstrm https:// github.com/farsightsec/fstrm and libprotobuf-c https:// developers.google.com/protocol-buffers, and BIND must be configured with --enable-dnstap. Certain compiled-in constants and default settings can be increased to values better suited to large servers with abundant memory resources (e.g, 64-bit servers with 12G or more of memory) by specifying --with-tuning= large on the configure command line. This can improve performance on big servers, but will consume more memory and may degrade performance on smaller systems. On some platforms it is necessary to explicitly request large file support to handle files bigger than 2GB. This can be done by using --enable-largefile on the configure command line. Support for the "fixed" rrset-order option can be enabled or disabled by specifying --enable-fixed-rrset or --disable-fixed-rrset on the configure command line. By default, fixed rrset-order is disabled to reduce memory footprint. If your operating system has integrated support for IPv6, it will be used automatically. If you have installed KAME IPv6 separately, use --with-kame [=PATH] to specify its location. The --enable-querytrace option causes named to log every step of processing every query. This should only be enabled when debugging, because it has a significant negative impact on query performance. make install will install named and the various BIND 9 libraries. By default, installation is into /usr/local, but this can be changed with the --prefix option when running configure. You may specify the option --sysconfdir to set the directory where configuration files like named.conf go by default, and --localstatedir to set the default parent directory of run/named.pid. For backwards compatibility with BIND 8, --sysconfdir defaults to /etc and --localstatedir defaults to /var if no --prefix option is given. If there is a --prefix option, sysconfdir defaults to $prefix/etc and localstatedir defaults to $prefix/var. Automated testing A system test suite can be run with make test. The system tests require you to configure a set of virtual IP addresses on your system (this allows multiple servers to run locally and communicate with one another). These IP addresses can be configured by running the command bin/tests/system/ ifconfig.sh up as root. Some tests require Perl and the Net::DNS and/or IO::Socket::INET6 modules, and will be skipped if these are not available. Some tests require Python and the dnspython module and will be skipped if these are not available. See bin/tests/system/README for further details. Unit tests are implemented using the CMocka unit testing framework. To build them, use configure --with-cmocka. Execution of tests is done by the Kyua test execution engine; if the kyua command is available, then unit tests can be run via make test or make unit. Documentation The BIND 9 Administrator Reference Manual is included with the source distribution, in DocBook XML, HTML, and PDF format, in the doc/arm directory. Some of the programs in the BIND 9 distribution have man pages in their directories. In particular, the command line options of named are documented in bin/named/named.8. Frequently (and not-so-frequently) asked questions and their answers can be found in the ISC Knowledge Base at https://kb.isc.org. Additional information on various subjects can be found in other README files throughout the source tree. Change log A detailed list of all changes that have been made throughout the development BIND 9 is included in the file CHANGES, with the most recent changes listed first. Change notes include tags indicating the category of the change that was made; these categories are: Category Description [func] New feature [bug] General bug fix [security] Fix for a significant security flaw [experimental] Used for new features when the syntax or other aspects of the design are still in flux and may change [port] Portability enhancement [maint] Updates to built-in data such as root server addresses and keys [tuning] Changes to built-in configuration defaults and constants to improve performance [performance] Other changes to improve server performance [protocol] Updates to the DNS protocol such as new RR types [test] Changes to the automatic tests, not affecting server functionality [cleanup] Minor corrections and refactoring [doc] Documentation [contrib] Changes to the contributed tools and libraries in the 'contrib' subdirectory Used in the master development branch to reserve change [placeholder] numbers for use in other branches, e.g. when fixing a bug that only exists in older releases In general, [func] and [experimental] tags will only appear in new-feature releases (i.e., those with version numbers ending in zero). Some new functionality may be backported to older releases on a case-by-case basis. All other change types may be applied to all currently-supported releases. Bug report identifiers Most notes in the CHANGES file include a reference to a bug report or issue number. Prior to 2018, these were usually of the form [RT #NNN] and referred to entries in the "bind9-bugs" RT database, which was not open to the public. More recent entries use the form [GL #NNN] or, less often, [GL !NNN], which, respectively, refer to issues or merge requests in the GitLab database. Most of these are publicly readable, unless they include information which is confidential or security sensitive. To look up a GitLab issue by its number, use the URL https:// gitlab.isc.org/isc-projects/bind9/issues/NNN. To look up a merge request, use https://gitlab.isc.org/isc-projects/bind9/merge_requests/NNN. In rare cases, an issue or merge request number may be followed with the letter "P". This indicates that the information is in the private ISC GitLab instance, which is not visible to the public. Acknowledgments • The original development of BIND 9 was underwritten by the following organizations: Sun Microsystems, Inc. Hewlett Packard Compaq Computer Corporation IBM Process Software Corporation Silicon Graphics, Inc. Network Associates, Inc. U.S. Defense Information Systems Agency USENIX Association Stichting NLnet - NLnet Foundation Nominum, Inc. • This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. http://www.OpenSSL.org/ • This product includes cryptographic software written by Eric Young (eay@cryptsoft.com) • This product includes software written by Tim Hudson (tjh@cryptsoft.com) usr/share/doc/bash/README000064400000002074152536553530011040 0ustar00This directory contains the bash documentation. FAQ - a set of frequently-asked questions about Bash with answers INTRO - a short introduction to bash article.ms - an article I wrote about bash for The Linux Journal bash.1 - the bash man page builtins.1 - a man page that documents the builtins, extracted from bash.1 bashref.texi - the `bash reference manual' bashref.info - the `bash reference manual' processed by `makeinfo' readline.3 - the readline man page The `.ps' files are postscript versions of the above. The `.html' files are HTML versions of the man page and reference manual. The `.0' files are formatted manual pages. The `.txt' versions are ascii -- the output of `groff -Tascii'. The rest of this file explains how to use the `builtins.1' man page. For each command in the list of builtins create a file in man/man1 called: ${command}.1 eg. for.1 type.1 alias.1 etc. All these files are identical as follows: jaws@jaws(264)$ cat alias.1 .so man1/builtins.1 jaws@jaws(265)$ Make sure you adjust the .so line in builtins.1 to reflect where you put it. usr/share/doc/gtk2/README000064400000051643152536555270011003 0ustar00General Information =================== This is GTK+ version 2.24.32. GTK+ is a multi-platform toolkit for creating graphical user interfaces. Offering a complete set of widgets, GTK+ is suitable for projects ranging from small one-off projects to complete application suites. GTK+ is free software and part of the GNU Project. However, the licensing terms for GTK+, the GNU LGPL, allow it to be used by all developers, including those developing proprietary software, without any license fees or royalties. The official ftp site is: ftp://ftp.gtk.org/pub/gtk The official web site is: http://www.gtk.org/ Information about mailing lists can be found at http://www.gtk.org/mailinglists.html Installation ============ See the file 'INSTALL' Release notes for 2.20 ====================== * GtkStatusbar now has a message area (see gtk_status_bar_get_message_area) which makes it easy to place additional widgets inside the statusbar frame or to replace the label widgets. Previously, this was only possible by accessing the innards of the statusbar widget directly. Applications which are doing so may need some adjustments, since the addition of the message area changed the internal widget hierarchy. * GtkBuilder no longer sets the "name" property of widgets to the ID attribute of the . Use gtk_buildable_get_name() instead of gtk_widget_get_name() to obtain the ID. * GTK+ now includes introspection data, as a consequence, it gained a dependency on gobject-introspection. It is possible to build without introspection by passing --disable-introspection to configure. Release notes for 2.18 ====================== * gtk_tooltip_set_custom now accept a NULL custom_widget to unset the old custom_widget. Custom_widget does not get destroyed when the tooltip goes away. * JPEG2000 support is no longer enabled by default. It must be explicitly turned on, by passing --with-libjasper to configure. * GDK has been reworked to implement 'client-side windows'. This offers exciting new possibilities, such as transformed, offscreen rendering, but it breaks some long-standing assumptions that applications may have about GDK windows. Setting the environment variable GDK_NATIVE_WINDOWS makes GDK create a native X11 window for each GDK window, which might make problematic applications work better. * GTK+ calls signal (SIGPIPE, SIG_IGN) during initialization, to ignore SIGPIPE signals, since these are almost never wanted in graphical applications. If you do need to handle SIGPIPE for some reason, reset the handler after gtk_init(), but notice that other libraries (e.g. libdbus or gvfs) might do similar things. Release notes for 2.16 ====================== * Password entries now display a caps-lock warning. This can be turned off with the caps-lock-warning property. * Various orientation-related functions have been deprecated in favour of the new GtkOrientable interface: gtk_scale_button_get_orientation, gtk_scale_button_set_orientation, gtk_toolbar_set_orientation. * The action-proxy interaction has been changed. Widgets that operate as proxies have to implement the GtkActivatable interface now. GtkActivatable implementation are responsible for syncing their appearance with the action and for activating the action. All GTK+ widgets that are commonly used as proxies implement the GtkActivatable interface. * The handling of keyboard shortcuts has been changed, to help with a longstanding complaint about the way GTK+ handles multiple layouts. GTK+ now only uses keys from groups other than the current group if they are not present in the current group. Release notes for 2.14 ====================== * gtkitemfactory.h is now completely deprecated. As gtkactiongroup.h and gtkstock.h no longer include the gtkitemfactory.h header, this might break application using gtk_item_factory_* symbols without including gtkitemfactory.h - even though this behaviour has never been supported in the first place. * The GtkFileSystem semi-private interface has been removed. The GTK+ filechooser implementation now uses GIO directly, which has rendered external filesystem implementations unnecessary. Consequently, the GtkFileSystem interface is no longer available, nor the filechooser will load any GtkFileSystem implementation. * GtkComboBox now renders the popdown button insensitive when the model is empty. Applications which want to populate the list only before displaying it can set gtk_combo_box_set_button_sensitivity to GTK_SENSITIVITY_ON, so that the button is always sensitive or GTK_SENSITIVITY_OFF to make it insensitive respectively. * In the early 2.14.x releases, GtkAdjustment was changed to enforce that values are restricted to the range [lower, upper - page_size]. This has always been the documented behaviour, and the recommended practice is to set page_size to 0 when using adjustments for simple scalar values, like in a slider or spin button. Due to the large number of applications that are affected by this change, the behaviour has been reverted to the old behaviour in 2.14.3, with an explicit warning that this change will be reintroduced in 2.90. * gdk-pixbuf will use GIO for mime type detection if possible. For this to work, shared-mime-info needs to be installed and XDG_DATA_DIRS set accordingly at configure time. Otherwise, gdk-pixbuf falls back to its built-in sniffing implementation. Release notes for 2.12 ====================== * gtk_about_dialog_get/set_name() were deprecated in favour of gtk_about_dialog_get/set_program_name(), the GtkAboutDialog now uses the "program-name" property instead of the conflicting "name" property. * The gdk-pixbuf tiff loader now requires libtiff 3.6.0 or later. * Support for Windows 9x/ME has officially been removed. It hasn't worked since 2.6 anyway. * The GtkTextBufferTargetInfo enumeration values have been changed from G_MAXUINT-0, G_MAXUINT-1, G_MAXUINT-2, etc, to -1, -2, -3 to stay within ANSI C limits. * A change in the handling of _NET_WM_USER_TIME properties on toplevel windows can cause deadlock problems with window managers that are using GDK for drawing decorations. In particular, metacity <= 2.18.0 is affected by this. The problem has been fixed in metacity 2.18.1. * Semi-private GtkTextLayout api has changed: new GtkTextLayout method invalidate_cursors(), and new functions gtk_text_layout_invalidate_cursors() and gtk_text_layout_cursors_changed(), which should be used in place of gtk_text_layout_invalidate() and gtk_text_layout_changed() if invalidation is due to marks moved or changed selection; new GtkTextLineDisplay structure member. Source compatibility is preserved; binary compatibility may break only if GtkTextLineDisplay structure was created on stack or as a part of another structure (in particular GnomeCanvas and its clones do not need recompiling). * Another new signal has been added to GtkNotebook. The new signal is called create-window, so this name can no longer be used for signals in objects derived from GtkNotebook. * The gtk_notebook_set/get_group_id() functions were found to be insufficient and have been deprecated in favour of gtk_notebook_set/get_group(). * The move-focus signal has been moved to GtkWidget, to unify the various implementations of this signal in specific widgets. Great care has been taken to make sure that all code using this signal continues to work. * An unused and hardly visible GtkFrame has been removed from the menu widget hierarchy when GtkComboBox::appears-as-list style property is set. Any RC file applying a different style to any widget below the widget path "gtk-combobox-popup-window.GtkFrame" should take into account that the frame no longer exists. * The external print preview application used by GtkPrintOperationPreview is now passed the print settings on the command line with the --print-settings parameter pointing to a temp file containing the settings. The preview application assumes ownership of the file and should delete it once it does not need it anymore. The --print-settings commandline option is understood by Evince 0.9.0 and newer. To use a different print preview application, change the gtk-print-preview-command setting in your gtkrc file, e.g. gtk-print-preview-command = "ggv %f" * GtkMenuShell is now defined as an abstract type. It was already documented as an abstract class, and there is little reason to instantiate it. * The GtkTooltips struct (this is the old tooltips API) is now considered private. Code that used to access this struct, in particular the tips_data_list field, will need to change. All of the old tooltips API has been deprecated in favour of a new implementation and API. This affects all of the gtk_tooltips_ functions, and functions which take a GtkTooltips argument, such as gtk_tool_item_set_tooltip() and gtk_menu_tool_button_set_arrow_tooltip(). * The memory management of the GtkRecentManager object has been changed, as using the screen didn't guarantee that the singleton instance was correctly destroyed. The screen-related functions have been deprecated, and should not be used anymore; the GtkRecentManager instance returned by the gtk_recent_manager_get_default() function is guaranteed to be valid for the entire lifetime of an application. * A number of interfaces that have been superseded by newer interfaces for a long time have finally been deprecated. This includes gtk_widget_ref/unref(), gtk_rc_style_ref/unref() and the old file selector. * The various coordinate systems in use in GtkTreeView widgets have been clarified in the documentation, and in the cause of doing so, the functions gtk_tree_view_widget_to_tree_coords() and gtk_tree_view_tree_to_widget_coords() have been deprecated in favour of a new family of gtk_tree_view_convert_ functions. * gtk_menu_item_remove_submenu() has been deprecated in favour of gtk_menu_item_set_submenu (..., NULL). * gtk_default_draw_check() has been fixed to really decrease the indicator size by one pixel to ensure an odd size instead of accidentially increasing it. Consequently, gtk_cell_renderer_toggle_render() could be fixed to not subtract 1 from the size passed to gtk_paint_option(), which was just a workaround for above off-by-two for even sizes (theme engines now get the real indicator size passed). The default toggle size of GtkCheckMenuItem and GtkCellRendererToggle has been changed to 13 to be consistent with GtkCheckButton. The only visible change with default settings is that the indicator in GtkCellRendererToggle has changed its size from 11 to 13 and is now consistent with menus and toggle buttons. * GTK+ has always required that gtk_init() (or a variant thereof) is called before any other GTK+ function. Some applications call functions like gtk_clipboard_get() to check if they need to call gtk_init(), anyway. A change in GLib 2.14 has recently broken this unsupported practise. It is worth pointing out that calling gtk_init() twice does no harm. Release notes for 2.10 ====================== * The hexadecimal Unicode input feature has been reworked. It no longer blocks the use of the sixteen Ctrl-Shift- key sequences. Now it only uses Ctrl-Shift-u. * A memory leak in GtkStyle handling has been fixed. This may expose bugs in third-party widgets which forget to call gtk_style_attach() in their realize functions. * Range widgets like GtkScrollbar now render their arrows insensitive when the slider is at the end. Applications which react to arrow clicks even if the slider is at the end may want to use the new gtk_range_set_[upper/lower]_stepper_sensitivity() functions to prevent the arrows from being rendered insensitive. * GtkObject now uses the "floating reference" support in GObject. GTK_OBJECT_IS_FLOATING() will still work, but direct checking of the GTK_FLOATING flag will no longer detect the floating reference. Details about floating references can be found in the docs: http://developer.gnome.org/doc/API/2.0/gobject/gobject-The-Base-Object-Type.html#floating-ref * Accelerators like (_F) are now stripped from labels when they are displayed in toolbars. If this is not wanted, the feature can be suppressed by inserting a Unicode control character, e.g ZWNJ. * The pixbuf theme engine can now customize expanders (in GtkTreeView and GtkExpander) and resize grips, using the new EXPANDER and RESIZE_GRIP function values. * Dialogs created by gtk_about_dialog_new() no longer hide automatically when the user clicks close. It is the applications responsibility to hide or destroy the dialog. * Several new signals have been added to GtkNotebook. Care has been taken to choose signal names which do not collide with signals added by well-known derived classes. The names which can no longer be used for signals in objects derived from GtkNotebook are page-reordered, page-removed and page-added. * Due to the interface changes in the file chooser backend interface, the GTK+ ABI version has been bumped to 2.10.0. Third-party filesystem backends have to be ported to the new interface, other modules, such as theme engines, input method modules or pixbuf loaders have to be rebuilt so that they are installed in the right place for GTK+ to find them. Release notes for 2.8 ===================== * GTK+ 2.8 and Pango 1.10 require the cairo library. * The default theme has been renamed to "Raleigh". Existing configurations specifying the "Default" theme name should still work. * The GtkTreeView::enable-search property has been changed to control only typeahead search, not the C-f keybinding to start an interactive search. To turn off interactive searching completely, you have to set GtkTreeView::search-column to -1. * The restriction on using the same cell renderer in multiple columns of a GtkTreeView is now more strictly enforced. * In GTK+ 2.8, GtkCalendar uses nl_langinfo() (if available) to determine the first day of the week. Thus, it is possible to select the first day of the week independently from the language, by setting LC_TIME. * In GTK+ 2.8, the gtk-update-icon-cache utility includes image data in the icon caches, which will make the icon cache files larger than the one produced by GTK+ 2.6. This change will reduce the memory overhead of icon themes at runtime, since all GTK+ applications can share the image data in memory. * In 2.8, GDK emits GdkEventGrabBroken events when a keyboard or pointer grab is broken. On X11, this can happen if the same application grabs again, or if the window used for the grab becomes unviewable. It happens more often on Win32. Applications which use grabs should pay attention to these events and do the necessary cleanups when the grab is lost. * The GIOChannel code for sockets on win32 has been rewritten. Applications who make non-trivial use of GIOChannels on win32 should be watched for possible problems. * GLib 2.8 uses atomic operations to implement reference counting, thus g_object_ref/unref, g_closure_ref/sink/unref and g_iochannel_ref/unref can be used without locking in multithreaded applications. Note that other modifications, like concurrent setting of properties still require locking. * g_convert() and related character set conversion functions have been fixed to emit pending shift states and to not cache iconv descriptors across multiple calls, since that is problematic for some encodings. Note that these functions are not suitable for streaming conversions; use g_iconv() to do streaming conversion. Release notes for 2.6 ===================== * GTK+ 2.6 supports clipboard persistency. To make use of this feature, a clipboard manager following the specification at http://www.freedesktop.org/wiki/Standards/clipboard-manager-spec must be running. A sample implementation of such a clipboard manager is available at http://people.imendio.com/andersca/archives/clipboard-manager-0.3.tar.gz Applications can use the function gdk_display_supports_clipboard_persistence() to find out if clipboard persistence is available. * Notification on clipboard ownership changes via GdkOwnerChange events requires the XFIXES X extension. Applications can use the function gdk_display_supports_selection_notification() to find out if ownerchip change notification is available. * The icon theme code in GTK+ 2.6 follows the freedesktop.org icon theme specification. Setting the XDG_DATA_DIRS environtment variable may be necessary if your icons aren't installed in the default location /usr/share/icons. * The icon theme code in GTK+ 2.6 can make use of mmap()able cache files to avoid a lot of disk searching overhead. GTK+ includes a utility named gtk-update-icon-cache to generate these cache files. For further details, see the gtk-update-icon-cache man page or the GTK+ documentation. * To reduce code size and improve efficiency, GTK+, when compiled with the GNU toolchain, has separate internal and external entry points for exported functions. The internal names, which begin with IA__, may be seen when debugging a GTK+ program. * The following functions have been deprecated in GTK+ 2.6: gdk_pango_context_set_colormap gtk_cell_renderer_editing_canceled * The new GtkFileChooser widget emphasizes simplicity and thus does not provide a navigation entry by default when opening files. Experienced command line users will likely want to make heavy use of the location dialog brought up by the Control-L key shortcut. * The GTK+ libraries use an '_' prefix to indicate private symbols that must not be used by applications. On some platforms, symbols beginning with prefixes such as _gtk, _gdk, and _pango will be exported from the library, on others not. In no case can applications use these private symbols. In addition to that, GTK+ 2.6 makes several symbols private which were not in any installed header files and were never intended to be exported. * The gdk_pixbuf_xlib library included in the contrib/ directory and the framebuffer GDK backend included in the gdk/linux-fb directory of GTK+ are provided on an as-is basis and have not been tested at all. No guarantees about the degree of workingness or about future compatibility are provided. * On Unix, the assumption of GLib and GTK+ by default is that filenames on the filesystem are encoded in UTF-8 rather than the encoding of the locale; the GTK+ developers consider that having filenames whose interpretation depends on the current locale is fundamentally a bad idea. If you have filenames encoded in the encoding of your locale, then you may want to set the G_FILENAME_ENCODING environment variable: G_FILENAME_ENCODING=@locale export G_FILENAME_ENCODING (Earlier versions of GLib 2.x required a different environment variable setting; G_BROKEN_FILENAMES=1 to achieve the same effect; this is still supported, but G_FILENAME_ENCODING is preferred.) Best integration of GTK+ 2.6 with the environment is achieved by using a UTF-8 locale. On Windows, filenames passed to GTK+ should always be in UTF-8, as in GLib 2.6. This is different than in previous versions of GTK+ where the system codepage was used. As in GLib, for DLL ABI stability, applications built against previous versions of GTK+ will use entry points providing the old semantics. When compiling against GTK+ 2.6, applications intended to be portable to Windows must take the UTF-8 file name encoding into consideration, and use the gstdio wrappers to access files whose names have been constructed from strings returned from GTK+ or GLib. How to report bugs ================== Bugs should be reported to the GNOME bug tracking system. (http://bugzilla.gnome.org, product gtk+.) You will need to create an account for yourself. In the bug report please include: * Information about your system. For instance: - What operating system and version - What version of X - For Linux, what version of the C library And anything else you think is relevant. * How to reproduce the bug. If you can reproduce it with one of the tests or demos built with GTK+, such as demos/gtk-demo/gtk-demo, that would be most convenient. Otherwise, please include a short test program that exhibits the behavior. As a last resort, you can also provide a pointer to a larger piece of software that can be downloaded. * If the bug was a crash, the exact text that was printed out when the crash occured. * Further information such as stack traces may be useful, but is not necessary. If you do send a stack trace, and the error is an X error, it will be more useful if the stacktrace is produced running the test program with the --sync command line option. Patches ======= Patches should also be submitted to bugzilla.gnome.org. If the patch fixes an existing bug, add the patch as an attachment to that bug report. Otherwise, enter a new bug report that describes the patch, and attach the patch to that bug report. Patches should be in unified diff form. (The -up option to GNU diff.) usr/share/doc/zip/README000064400000030714152536557070010732 0ustar00Zip 3.0 is the first Zip update adding large file support. For now Zip 2.3x remains available and supported, but users should switch to this new release. Testing for Zip 3.0 has focused mainly on Unix, VMS, Max OS X, and Win32, and some other ports may not be fully supported yet. If you find your favorite port is broke, send us the details or, better, send bug fixes. It's possible that support for some older ports may be dropped in the future. Copyright (c) 1990-2008 Info-ZIP. All rights reserved. See the accompanying file LICENSE (the contents of which are also included in unzip.h, zip.h and wiz.h) for terms of use. If, for some reason, all of these files are missing, the Info-ZIP license also may be found at: ftp://ftp.info-zip.org/pub/infozip/license.html and http://www.info-zip.org/pub/infozip/license.html. Zip 3.0 is a compression and file packaging utility. It is compatible with PKZIP 2.04g (Phil Katz ZIP) for MSDOS systems. There is a companion to zip called unzip (of course) which you should be able to find in the same place you got zip. See the file 'WHERE' for details on ftp sites and mail servers. So far zip has been ported to a wide array of Unix and other mainframes, minis, and micros including VMS, OS/2, Minix, MSDOS, Windows, Atari, Amiga, BeOS and VM/CMS. Although highly compatible with PKware's PKZIP and PKUNZIP utilities of MSDOS fame, our primary objective has been one of portability and other-than-MSDOS functionality. Features not found in the PKWare version include creation of zip files in a pipe or on a device; VMS, BeOS and OS/2 extended file attributes; conversion from Unix to MSDOS text file format; and, of course, the ability to run on most of your favorite operating systems. And it's free. See the file zip30.ann for a summary of new features in Zip 3.0 and WhatsNew for the detailed list of new features and changes since Zip 2.32. The file CHANGES details all day-to-day changes during development. Notes: Multi-volume support. This version does not support multi-volume spanned archives as in pkzip 2.04g, and there is no intention at this point to support spanned archives, but Zip 3.0 supports split archives. A split archive is an archive split into a set of files, each file a piece of the archive and each file using an extension, such as .z02 as in the file name archive.z02, that provides the order of the splits. In contrast, a spanned archive is the original multi-floppy archive supported by pkzip 2.0g where the split order is contained in the volume labels. The contents of split and spanned archives are mostly identical and there is a simple procedure to convert between the formats. Many current unzips now support split archives. Zip64 support. This version supports Zip64 archives as described in the PKWare AppNote. These archives use additional fields to support archives greater than 2 GB and files in archives over the 2 GB previous limit (4 GB on some ports). The Zip64 format also allows more than 64k entries in an archive. Support by the OS for files larger than 4 GB is needed for Zip to create and read large files and archives. On Unix, Win32, and some other ports, large file and Zip64 support is automatically checked for and compiled in if available. Use of Zip64 by Zip is automatic and to maximize backward compatibility the Zip64 fields will only be used if needed. A Zip64 archive requires a pkzip 4.5 compatible unzip, such as UnZip 6.0. Unicode support. This version has initial Unicode support. This allows paths and names of files in other character sets to be accurately recreated on OS that have sufficient character set support. On Win32, if wide character calls are supported (not Win 9x unless Unicode support has been added) all files (including paths with illegal characters in the current character set) should now be readable by zip. Unicode support is provided using a new set of UTF-8 path and comment extra fields and a new UTF-8 bit for flagging when the current character set is already UTF-8. Zip 3.0 maintains backward compatibility with older archives and is mostly compliant with the new Unicode additions in the latest PKWare AppNote. The exception is UTF-8 comments, which are not supported if UTF-8 is not the native character set, but should be fully implemented in Zip 3.1. 16-bit OS support. Though Zip 3.0 is designed to support the latest zip standards and modern OS, some effort has been made to maintain support for older and smaller systems. If you find Zip 3.0 does not fit on or otherwise does not work well on a particular OS, send in the details and we might be able to help. Compression methods. In addition to the standard store and deflate methods, Zip now can use the bzip2 compression format using the bzip2 library. Though bzip2 compression generally takes longer, in many cases using bzip2 results in much better compression. However, many unzips may not yet support bzip2 compressed entries in archives, so test your unzip first before using bzip2 compression. Installation. Please read the file INSTALL for information on how to compile and install zip, zipsplit, zipcloak, and zipnote and please read the manual pages ZIP.txt, ZIPSPLIT.txt, ZIPCLOAK.txt, and ZIPNOTE.txt for information on how to use them. Also, if you are using MSDOS or Windows, note that text files in the distribution are generally in Unix line end format (LF only) and Windows and DOS users will need to either convert the files as needed to DOS line ends (CR LF) or extract the distribution contents using unzip -a. Utilities. At this point zipsplit, zipcloak, and zipnote should work with large files, but they currently do not handle split archives. A work around is to use zip to convert a split archive to a single file archive and then use the utilities on that archive. Encryption. This version supports standard zip encryption. Until recently the encryption code was distributed separately because of the US export regulations but now is part of the main distribution. See crypt.c for details. Decryption can be made with unzip 5.0p1 or later, or with zipcloak. Bug reports. All bug reports or patches should go to zip-bugs via the web site contact form at http://www.info-zip.org/zip-bug.html (we have discontinued the old email address zip-bugs@lists.wku.edu because of too much spam lately) and suggestions for new features can be submitted there also (although we don't promise to use all of them). We also are on SourceForge at http://sourceforge.net/projects/infozip/ and now automatically get Bug Reports and Feature Requests submitted there. In addition, a new Info-ZIP discussion forum is available as well. See below. Though bug reports can be posted there, we don't have automatic monitoring of all postings set up yet so you may want to use the web form or SoureForge for a quicker response. A good approach may be to post the details on the forum so others can benefit from the posting, then use the web reply form to let us know you did that if you don't get a reply in a reasonable time. Ports. If you're considering a port, please check in with zip-bugs FIRST, since the code is constantly being updated behind the scenes. We'll arrange to give you access to the latest source. Discussion group. If you'd like to keep up to date with our Zip (and companion UnZip utility) development, join the ranks of BETA testers, add your own thoughts and contributions, etc., check out the new discussion forum. This is the latest offering, after the various Info-ZIP mailing-lists on mxserver@lists.wku.edu (courtesy of Hunter Goatley) were no longer available and the temporary QuickTopic discussion group for Info-ZIP issues at http://www.quicktopic.com/27/H/V6ZQZ54uKNL died a horrible death due to large amounts of spam. The new discussion forum is now available at http://www.info-zip.org/board/board.pl (thanks again to Hunter Goatley) and can be used to discuss issues, request features, and is one place new betas and releases are announced. It also is a place to post bug reports, and patches can be submitted as attachments. However, we don't yet get automatic notification of all postings there so try one of the other methods if you don't get a response. You can also post Bug Reports and Feature Requests at Source Forge. However, the web site contact form remains available if you would rather not post on the public forums. Frequently asked questions on zip and unzip: Q. When unzipping I get an error message about "compression method 8". A. This is standard deflate, which has been around for awhile. Please get a current version of unzip. See the file 'WHERE' for details. Q. How about "compression method 12"? A. Compression method 12 is bzip2 and requires a relatively modern unzip. Please get the latest version of unzip. Q. I can't extract this zip file that I just downloaded. I get "zipfile is part of multi-disk archive" or some other message. A. Please make sure that you made the transfer in binary mode. Check in particular that your copy has exactly the same size as the original. Note that the above message also may actually mean you have only part of a multi-part archive. Also note that UnZip 5.x does not and UnZip 6.0 probably won't have multi-disk (split) archive support. A work around is to use Zip 3.0 to convert the split archive to a single-file archive then use UnZip on that archive. As a last result, if there's something readable in what you have, zip -FF should be able to recover it. Q. When running unzip, I get a message about "End-of-central-directory signature not found". A. This usually means that your zip archive is damaged, or that you have an uncompressed file with the same name in the same directory. In the first case, it makes more sense to contact the person you obtained the zip file from rather than the Info-ZIP software developers, and to make sure that your copy is strictly identical to the original. In the second case, use "unzip zipfile.zip" instead of "unzip zipfile", to let unzip know which file is the zip archive you want to extract. Q. Why doesn't zip do just like PKZIP does? A. Zip is not a PKZIP clone and is not intended to be one. In some cases we feel PKZIP does not do the right thing (e.g., not including pathnames by default); in some cases the operating system itself is responsible (e.g., under Unix it is the shell which expands wildcards, not zip). Info-ZIP's and PKWARE's zipfiles are interchangeable, not the programs. For example, if you are used to the following PKZIP command: pkzip -rP foo *.c you must use instead on Unix: zip -R foo "*.c" (the quotes are needed to let the shell know that it should not expand the *.c argument but instead pass it on to the program, but are not needed on ports that do not expand file paths like MSDOS) Q. Can I distribute zip and unzip sources and/or executables? A. You may redistribute the latest official distributions without any modification, without even asking us for permission. You can charge for the cost of the media (CDROM, diskettes, etc...) and a small copying fee. If you want to distribute modified versions please contact us at www.Info-ZIP.org first. You must not distribute beta versions. The latest official distributions are always on ftp.Info-ZIP.org in directory /pub/infozip and subdirectories and at SourceForge. Q. Can I use the executables of zip and unzip to distribute my software? A. Yes, so long as it is made clear in the product documentation that zip or unzip are not being sold, that the source code is freely available, and that there are no extra or hidden charges resulting from its use by or inclusion with the commercial product. See the Info-ZIP license for more. Here is an example of a suitable notice: NOTE: is packaged on this CD using Info-ZIP's compression utility. The installation program uses UnZip to read zip files from the CD. Info-ZIP's software (Zip, UnZip and related utilities) is freely distributed under the Info-ZIP license and can be obtained as source code or executables from various anonymous-ftp sites, including ftp://ftp.info-zip.org/pub/infozip. Q. Can I use the source code of zip and unzip in my commercial application? A. Yes, as long as the conditions in the Info-ZIP license are met. We recommend you include in your product documentation an acknowledgment and note that the original compression sources are available at www.Info-ZIP.org. If you have special requirements contact us. usr/lib/firewalld/ipsets/README000064400000000035152536563530012276 0ustar00Location for built-in ipsets usr/share/doc/perl-IPC-Cmd/README000064400000002006152536572200012165 0ustar00This is the README file for IPC::Cmd -- a cross platform way of running (interactive) commandline programs. Please type "perldoc IPC::Cmd" after installation to see the module usage information. ##################################################################### * Description IPC::Cmd Allows for the searching and execution of any binary on your system. It adheres to verbosity settings and is able to run intereactive. It also has an option to capture output/error buffers. ##################################################################### * Installation IPC::Cmd uses the standard perl module install process: perl Makefile.PL make make test make install ###################################################################### AUTHOR This module by Jos Boumans . COPYRIGHT This module is copyright (c) 2002 Jos Boumans . All rights reserved. This library is free software; you may redistribute and/or modify it under the same terms as Perl itself. usr/share/doc/perl-Archive-Tar/README000064400000001030152536573340013160 0ustar00This is the README file for Archive::Tar, the Perl module for creation and in-memory manipulation of tar files. * Installation Archive::Tar uses the standard perl module install process perl Makefile.PL make make test (optional but recommended) make install This module uses no C-coded parts in itself, but it will try to use the IO::Zlib module to read and write gzipped tarfiles. Archive::Tar will still work without IO::Zlib, it will just complain when you try to use a compressed archive or write one, since it obviously can't. usr/share/tk8.6/images/README000064400000000502152536625130011463 0ustar00README - images directory This directory includes images for the Tcl Logo and the Tcl Powered Logo. Please feel free to use the Tcl Powered Logo on any of your products that employ the use of Tcl or Tk. The Tcl logo may also be used to promote Tcl in your product documentation, web site or other places you so desire. usr/lib64/python2.7/site-packages/pynche/README000064400000036650152536650530014757 0ustar00Pynche - The PYthonically Natural Color and Hue Editor Contact: Barry A. Warsaw Email: bwarsaw@python.org Version: 1.3 Introduction Pynche is a color editor based largely on a similar program that I originally wrote back in 1987 for the Sunview window system. That editor was called ICE, the Interactive Color Editor. I'd always wanted to port this program to X but didn't feel like hacking X and C code to do it. Fast forward many years, to where Python + Tkinter provides such a nice programming environment, with enough power, that I finally buckled down and re-implemented it. I changed the name because these days, too many other systems have the acronym `ICE'. Pynche should work with any variant of Python after 1.5.2 (e.g. 2.0.1 and 2.1.1), using Tk 8.0.x. It's been tested on Solaris 2.6, Windows NT 4, and various Linux distros. You'll want to be sure to have at least Tk 8.0.3 for Windows. Also, Pynche is very colormap intensive, so it doesn't work very well on 8-bit graphics cards; 24bit+ graphics cards are so cheap these days, I'll probably never "fix" that. Pynche must find a text database of colors names in order to provide `nearest' color matching. Pynche is distributed with an rgb.txt file from the X11R6.4 distribution for this reason, along with other "Web related" database (see below). You can use a different file with the -d option. The file xlicense.txt contains the license only for rgb.txt and both files are in the X/ subdirectory. Pynche is pronounced: Pin'-chee Running Standalone On Unix, start it by running the `pynche' script. On Windows, run pynche.pyw to inhibit the console window. When run from the command line, the following options are recognized: --database file -d file Alternate location of the color database file. Without this option, the first valid file found will be used (see below). --initfile file -i file Alternate location of the persistent initialization file. See the section on Persistency below. --ignore -X Ignore the persistent initialization file when starting up. Pynche will still write the current option settings to the persistent init file when it quits. --help -h Print the help message. initialcolor a Tk color name or #rrggbb color spec to be used as the initially selected color. This overrides any color saved in the persistent init file. Since `#' needs to be escaped in many shells, it is optional in the spec (e.g. #45dd1f is the same as 45dd1f). Running as a Modal Dialog Pynche can be run as a modal dialog, inside another application, say as a general color chooser. In fact, Grail 0.6 uses Pynche and a future version of IDLE may as well. Pynche supports the API implemented by the Tkinter standard tkColorChooser module, with a few changes as described below. By importing pyColorChooser from the Pynche package, you can run pyColorChooser.askcolor() which will popup Pynche as a modal dialog, and return the selected color. There are some UI differences when running as a modal vs. standalone. When running as a modal, there is no "Quit" menu item under the "File" menu. Instead there are "Okay" and "Cancel" buttons. When "Okay" is hit, askcolor() returns the tuple ((r, g, b), "name") where r, g, and b are red, green, and blue color values respectively (in the range 0 to 255). "name" will be a color name from the color database if there is an exact match, otherwise it will be an X11 color spec of the form "#rrggbb". Note that this is different than tkColorChooser, which doesn't know anything about color names. askcolor() supports the following optional keyword arguments: color the color to set as the initial selected color master[*] the master window to use as the parent of the modal dialog. Without this argument, pyColorChooser will create its own Tkinter.Tk instance as the master. This may not be what you want. databasefile similar to the --database option, the value must be a file name initfile[*] similar to the --initfile option, the value must be a file name ignore[*] similar to the --ignore flag, the value is a boolean wantspec When this is true, the "name" field in the return tuple will always be a color spec of the form "#rrggbb". It will not return a color name even if there is a match; this is so pyColorChooser can exactly match the API of tkColorChooser. [*] these arguments must be specified the first time askcolor() is used and cannot be changed on subsequent calls. The Colorstrip Window The top part of the main Pynche window contains the "variation strips". Each strip contains a number of "color chips". The strips always indicate the currently selected color by a highlight rectangle around the selected color chip, with an arrow pointing to the chip. Each arrow has an associated number giving you the color value along the variation's axis. Each variation strip shows you the colors that are reachable from the selected color by varying just one axis of the color solid. For example, when the selected color is (in Red/Green/Blue notation) 127/127/127, the Red Variations strip shows you every color in the range 0/127/127 to 255/127/127. Similarly for the green and blue axes. You can select any color by clicking on its chip. This will update the highlight rectangle and the arrow, as well as other displays in Pynche. Click on "Update while dragging" if you want Pynche to update the selected color while you drag along any variation strip (this will be a bit slower). Click on "Hexadecimal" to display the arrow numbers in hex. There are also two shortcut buttons in this window, which auto-select Black (0/0/0) and White (255/255/255). The Proof Window In the lower left corner of the main window you see two larger color chips. The Selected chip shows you a larger version of the color selected in the variation strips, along with its X11 color specification. The Nearest chip shows you the closest color in the X11 database to the selected color, giving its X11 color specification, and below that, its X11 color name. When the Selected chip color exactly matches the Nearest chip color, you will see the color name appear below the color specification for the Selected chip. Clicking on the Nearest color chip selects that color. Color distance is calculated in the 3D space of the RGB color solid and if more than one color name is the same distance from the selected color, the first one found will be chosen. Note that there may be more than one X11 color name for the same RGB value. In that case, the first one found in the text database is designated the "primary" name, and this is shown under the Nearest chip. The other names are "aliases" and they are visible in the Color List Window (see below). Both the color specifications and color names are selectable for copying and pasting into another window. The Type-in Window At the lower right of the main window are three entry fields. Here you can type numeric values for any of the three color axes. Legal values are between 0 and 255, and these fields do not allow you to enter illegal values. You must hit Enter or Tab to select the new color. Click on "Update while typing" if you want Pynche to select the color on every keystroke (well, every one that produces a legal value!) Click on "Hexadecimal" to display and enter color values in hex. Other Views There are three secondary windows which are not displayed by default. You can bring these up via the "View" menu on the main Pynche window. The Text Window The "Text Window" allows you to see what effects various colors have on the standard Tk text widget elements. In the upper part of the window is a plain Tk text widget and here you can edit the text, select a region of text, etc. Below this is a button "Track color changes". When this is turned on, any colors selected in the other windows will change the text widget element specified in the radio buttons below. When this is turned off, text widget elements are not affected by color selection. You can choose which element gets changed by color selection by clicking on one of the radio buttons in the bottom part of this window. Text foreground and background affect the text in the upper part of the window. Selection foreground and background affect the colors of the primary selection which is what you see when you click the middle button (depending on window system) and drag it through some text. The Insertion is the insertion cursor in the text window, where new text will be inserted as you type. The insertion cursor only has a background. The Color List Window The "Color List" window shows every named color in the color name database (this window may take a while to come up). In the upper part of the window you see a scrolling list of all the color names in the database, in alphabetical order. Click on any color to select it. In the bottom part of the window is displayed any aliases for the selected color (those color names that have the same RGB value, but were found later in the text database). For example, find the color "Black" and you'll see that its aliases are "gray0" and "grey0". If the color has no aliases you'll see "" here. If you just want to see if a color has an alias, and do not want to select a color when you click on it, turn off "Update on Click". Note that the color list is always updated when a color is selected from the main window. There's no way to turn this feature off. If the selected color has no matching color name you'll see "" in the Aliases window. The Details Window The "Details" window gives you more control over color selection than just clicking on a color chip in the main window. The row of buttons along the top apply the specified increment and decrement amounts to the selected color. These delta amounts are applied to the variation strips specified by the check boxes labeled "Move Sliders". Thus if just Red and Green are selected, hitting -10 will subtract 10 from the color value along the red and green variation only. Note the message under the checkboxes; this indicates the primary color level being changed when more than one slider is tied together. For example, if Red and Green are selected, you will be changing the Yellow level of the selected color. The "At Boundary" behavior determines what happens when any color variation hits either the lower or upper boundaries (0 or 255) as a result of clicking on the top row buttons: Stop When the increment or decrement would send any of the tied variations out of bounds, the entire delta is discarded. Wrap Around When the increment or decrement would send any of the tied variations out of bounds, the out of bounds value is wrapped around to the other side. Thus if red were at 238 and +25 were clicked, red would have the value 7. Preserve Distance When the increment or decrement would send any of the tied variations out of bounds, all tied variations are wrapped as one, so as to preserve the distance between them. Thus if green and blue were tied, and green was at 238 while blue was at 223, and +25 were clicked, green would be at 15 and blue would be at 0. Squash When the increment or decrement would send any of the tied variations out of bounds, the out of bounds variation is set to the ceiling of 255 or floor of 0, as appropriate. In this way, all tied variations are squashed to one edge or the other. The top row buttons have the following keyboard accelerators: -25 == Shift Left Arrow -10 == Control Left Arrow -1 == Left Arrow +1 == Right Arrow +10 == Control Right Arrow +25 == Shift Right Arrow Keyboard Accelerators Alt-w in any secondary window dismisses the window. In the main window it exits Pynche (except when running as a modal). Alt-q in any window exits Pynche (except when running as a modal). Persistency Pynche remembers various settings of options and colors between invocations, storing these values in a `persistent initialization file'. The actual location of this file is specified by the --initfile option (see above), and defaults to ~/.pynche. When Pynche exits, it saves these values in the init file, and re-reads them when it starts up. There is no locking on this file, so if you run multiple instances of Pynche at a time, you may clobber the init file. The actual options stored include - the currently selected color - all settings of checkbox and radio button options in all windows - the contents of the text window, the current text selection and insertion point, and all current text widget element color settings. - the name of the color database file (but not its contents) You can inhibit Pynche from reading the init file by supplying the --ignore option on the command line. However, you cannot suppress the storing of the settings in the init file on Pynche exit. If you really want to do this, use /dev/null as the init file, using --initfile. Color Name Database Files Pynche uses a color name database file to calculate the nearest color to the selected color, and to display in the Color List view. Several files are distributed with Pynche, described below. By default, the X11 color name database file is selected. Other files: html40colors.txt -- the HTML 4.0 guaranteed color names websafe.txt -- the 216 "Web-safe" colors that Netscape and MSIE guarantee will not be dithered. These are specified in #rrggbb format for both values and names webcolors.txt -- The 140 color names that Tim Peters and his sister say NS and MSIE both understand (with some controversy over AliceBlue). namedcolors.txt -- an alternative set of Netscape colors. You can switch between files by choosing "Load palette..." from the "File" menu. This brings up a standard Tk file dialog. Choose the file you want and then click "Ok". If Pynche understands the format in this file, it will load the database and update the appropriate windows. If not, it will bring up an error dialog. To Do Here's a brief list of things I want to do (some mythical day): - Better support for resizing the top level windows - More output views, e.g. color solids - Have the notion of a `last color selected'; this may require a new output view - Support setting the font in the text view - Support distutils setup.py for installation I'm open to suggestions! Local Variables: indent-tabs-mode: nil End: usr/share/doc/perl-Pod-Simple/README000064400000003360152536660440013032 0ustar00=head1 Pod::Simple version 3.33 Pod::Simple is a Perl library for parsing text in the Pod ("plain old documentation") markup language that is typically used for writing documentation for Perl and for Perl modules. The Pod format is explained L; the most common formatter is called C. Pod formatters can use Pod::Simple to parse Pod documents and render them into plain text, HTML, or any number of other formats. =head2 Installation To install this module, type the following: perl Makefile.PL make make test make install =head2 Support Questions or discussion about POD and Pod::Simple should be sent to the pod-people@perl.org mail list. Send an empty email to pod-people-subscribe@perl.org to subscribe. This module is managed in an open GitHub repository, L. Feel free to fork and contribute, or to clone L and send patches! Patches against Pod::Simple are welcome. Please send bug reports to . =head1 copyright and Disclaimers Copyright (c) 2002 Sean M. Burke. All rights reserved. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. 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. =head1 Author Pod::Simple was created by Sean M. Burke . But don't bother him, he's retired. Pod::Simple is maintained by: =over =item * Allison Randal C =item * Hans Dieter Pearcey C =item * David E. Wheeler C =item * Marc Green C =back =cut usr/share/doc/libXcomposite/README000064400000001322152536713210012730 0ustar00libXcomposite - client library for the Composite extension to the X11 protocol All questions regarding this software should be directed at the Xorg mailing list: http://lists.freedesktop.org/mailman/listinfo/xorg Please submit bug reports to the Xorg bugzilla: https://bugs.freedesktop.org/enter_bug.cgi?product=xorg The master development code repository can be found at: git://anongit.freedesktop.org/git/xorg/lib/libXcomposite http://cgit.freedesktop.org/xorg/lib/libXcomposite For patch submission instructions, see: http://www.x.org/wiki/Development/Documentation/SubmittingPatches For more information on the git code manager, see: http://wiki.x.org/wiki/GitPage usr/share/doc/libXxf86vm/README000064400000001300152536736330012070 0ustar00libXxf86vm - Extension library for the XFree86-VidMode X extension All questions regarding this software should be directed at the Xorg mailing list: http://lists.freedesktop.org/mailman/listinfo/xorg Please submit bug reports to the Xorg bugzilla: https://bugs.freedesktop.org/enter_bug.cgi?product=xorg The master development code repository can be found at: git://anongit.freedesktop.org/git/xorg/lib/libXxf86vm http://cgit.freedesktop.org/xorg/lib/libXxf86vm For patch submission instructions, see: http://www.x.org/wiki/Development/Documentation/SubmittingPatches For more information on the git code manager, see: http://wiki.x.org/wiki/GitPage usr/share/doc/perl-Sub-Exporter/README000064400000000476152536771770013436 0ustar00 This archive contains the distribution Sub-Exporter, version 0.987: a sophisticated exporter for custom-built routines This software is copyright (c) 2007 by Ricardo Signes. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. usr/share/doc/mokutil/README000064400000000104152537045570011600 0ustar00The utility to manipulate machines owner keys which managed in shim usr/share/doc/perl-libnet/README000064400000004751152537063220012335 0ustar00libnet is a collection of Perl modules which provides a simple and consistent programming interface (API) to the client side of various protocols used in the internet community. For details of each protocol please refer to the RFC. RFCs can be found in various places on the web, for a starting point look at: http://www.rfc-editor.org/ The RFCs implemented in this distribution are Net::FTP RFC959 File Transfer Protocol Net::SMTP RFC821 Simple Mail Transfer Protocol Net::Time RFC867 Daytime Protocol Net::Time RFC868 Time Protocol Net::NNTP RFC977 Network News Transfer Protocol Net::POP3 RFC1939 Post Office Protocol 3 AVAILABILITY The latest version of libnet is available from the Comprehensive Perl Archive Network (CPAN). To find a CPAN site near you see: http://search.cpan.org/dist/libnet/ The GitHub source repository can be browsed at https://github.com/steve-m-hay/perl-libnet If you have a Git client, then you can checkout the latest code with git clone https://github.com/steve-m-hay/perl-libnet.git DOCUMENTATION See Changes for recent changes. POD style documentation is included in all modules and scripts. These are normally converted to manual pages and installed as part of the installation process. You should also be able to use the 'perldoc' utility to extract documentation from the module files directly. DEMOS The demos directory does contain a few demo scripts. These should be run from the top directory like demos/smtp.self -user my-email-address -debug However I do not guarantee these scripts to work. SUPPORT Questions about how to use this library should be directed to the comp.lang.perl.modules USENET Newsgroup. Bug reports and suggestions for improvements can be reported on the CPAN Request Tracker at https://rt.cpan.org/Public/Bug/Report.html?Queue=libnet Most of the modules in this library have an option to output a debug transcript to STDERR. When reporting bugs/problems please, if possible, include a transcript of a run. INSTALLATION See the INSTALL file. COPYRIGHT Copyright (C) 1996-2007 Graham Barr. All rights reserved. Copyright (C) 2013-2017 Steve Hay. All rights reserved. LICENCE This distribution is free software; you can redistribute it and/or modify it under the same terms as Perl itself, i.e. under the terms of either the GNU General Public License or the Artistic License, as specified in the LICENCE file. Share and Enjoy! usr/share/doc/libssh2/README000064400000000734152537133140011462 0ustar00libssh2 - SSH2 library ====================== libssh2 is a library implementing the SSH2 protocol, available under the revised BSD license. Web site: https://www.libssh2.org/ Mailing list: https://cool.haxx.se/mailman/listinfo/libssh2-devel License: see COPYING Source code: https://github.com/libssh2/libssh2 Web site source code: https://github.com/libssh2/www Installation instructions are in: - docs/INSTALL_CMAKE for CMake - docs/INSTALL_AUTOTOOLS for Autotools usr/share/doc/flex/README000064400000010025152537143370011052 0ustar00This is flex, the fast lexical analyzer generator. flex is a tool for generating scanners: programs which recognize lexical patterns in text. More information about flex as well as the latest official release of flex can be found at: http://flex.sourceforge.net/ The flex codebase is kept in git at: https://github.com/westes/flex Bugs and pull requests should be filed against flex using github's issue tracker and pull request facilities. There are several mailing lists available as well: flex-announce@lists.sourceforge.net - where posts will be made announcing new releases of flex. flex-help@lists.sourceforge.net - where you can post questions about using flex flex-devel@lists.sourceforge.net - where you can discuss development of flex itself Find information on subscribing to the mailing lists at: http://sourceforge.net/mail/?group_id=97492 The flex distribution contains the following files which may be of interest: README - This file. NEWS - current version number and list of user-visible changes. INSTALL - basic installation information. ABOUT-NLS - description of internationalization support in flex. COPYING - flex's copyright and license. doc/ - user documentation. examples/ - containing examples of some possible flex scanners and a few other things. See the file examples/README for more details. TODO - outstanding bug reports, desired features, etc. tests/ - regression tests. See TESTS/README for details. po/ - internationalization support files. You need the following tools to build flex from the maintainer's repository: compiler suite - flex is built with gcc bash, or a good Bourne-style shell m4 - m4 -p needs to work; GNU m4 and a few others are suitable GNU bison; to generate parse.c from parse.y autoconf; for handling the build system automake; for Makefile generation gettext; for i18n support help2man; to generate the flex man page tar, gzip, etc.; for packaging of the source distribution GNU texinfo; to build and test the flex manual. Note that if you want to build the dvi/ps/pdf versions of the documentation you will need texi2dvi and related programs, along with a sufficiently powerful implementation of \TeX to process them. See your operating system documentation for how to achieve this. The printable versions of the manual are not built unless specifically requested, but the targets are included by automake. GNU indent; for indenting the flex source the way we want it done In cases where the versions of the above tools matter, the file configure.ac will specify the minimum required versions. Once you have all the necessary tools installed, life becomes simple. To prepare the flex tree for building, run the script: $ ./autogen.sh in the top level of the flex source tree. This script calls the various tools needed to get flex ready for the GNU-style configure script to be able to work. From this point on, building flex follows the usual configure, make, make install routine. This file is part of flex. This code is derived from software contributed to Berkeley by Vern Paxson. The United States Government has rights in this work pursuant to contract no. DE-AC03-76SF00098 between the United States Department of Energy and the University of California. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. usr/share/doc/perl-Digest/README000064400000000640152537145100012266 0ustar00This is just a simple frontend module for autoloading of various Digest:: modules. It also provide documentation of the interface that all Digest:: modules should provide. You will need perl version 5.004 or better to install this module. Copyright 1998-2006 Gisle Aas. Copyright 1995-1996 Neil Winton. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. usr/share/doc/rsync/README000064400000010112152537157440011252 0ustar00WHAT IS RSYNC? -------------- Rsync is a fast and extraordinarily versatile file copying tool for both remote and local files. Rsync uses a delta-transfer algorithm which provides a very fast method for bringing remote files into sync. It does this by sending just the differences in the files across the link, without requiring that both sets of files are present at one of the ends of the link beforehand. At first glance this may seem impossible because the calculation of diffs between two files normally requires local access to both files. A technical report describing the rsync algorithm is included with this package. USAGE ----- Basically you use rsync just like scp, but rsync has many additional options. To get a complete list of supported options type: rsync --help See the manpage for more detailed information. SETUP ----- Rsync normally uses ssh or rsh for communication with remote systems. It does not need to be setuid and requires no special privileges for installation. You must, however, have a working ssh or rsh system. Using ssh is recommended for its security features. Alternatively, rsync can run in `daemon' mode, listening on a socket. This is generally used for public file distribution, although authentication and access control are available. To install rsync, first run the "configure" script. This will create a Makefile and config.h appropriate for your system. Then type "make". Note that on some systems you will have to force configure not to use gcc because gcc may not support some features (such as 64 bit file offsets) that your system may support. Set the environment variable CC to the name of your native compiler before running configure in this case. Once built put a copy of rsync in your search path on the local and remote systems (or use "make install"). That's it! RSYNC DAEMONS ------------- Rsync can also talk to "rsync daemons" which can provide anonymous or authenticated rsync. See the rsyncd.conf(5) man page for details on how to setup an rsync daemon. See the rsync(1) man page for info on how to connect to an rsync daemon. WEB SITE -------- The main rsync web site is here: http://rsync.samba.org/ You'll find a FAQ list, downloads, resources, HTML versions of the manpages, etc. MAILING LISTS ------------- There is a mailing list for the discussion of rsync and its applications that is open to anyone to join. New releases are announced on this list, and there is also an announcement-only mailing list for those that want official announcements. See the mailing-list page for full details: http://rsync.samba.org/lists.html BUG REPORTS ----------- To visit this web page for full the details on bug reporting: http://rsync.samba.org/bugzilla.html That page contains links to the current bug list, and information on how to report a bug well. You might also like to try searching the Internet for the error message you've received, or looking in the mailing list archives at: http://mail-archive.com/rsync@lists.samba.org/ To send a bug report, follow the instructions on the bug-tracking page of the web site. Alternately, email your bug report to rsync@lists.samba.org . GIT REPOSITORY -------------- If you want to get the very latest version of rsync direct from the source code repository then you can use git: git clone git://git.samba.org/rsync.git See the download page for full details on all the ways to grab the source, including nightly tar files, web-browsing of the git repository, etc.: http://rsync.samba.org/download.html COPYRIGHT --------- Rsync was originally written by Andrew Tridgell and is currently maintained by Wayne Davison. It has been improved by many developers from around the world. Rsync may be used, modified and redistributed only under the terms of the GNU General Public License, found in the file COPYING in this distribution, or at: http://www.fsf.org/licenses/gpl.html AVAILABILITY ------------ The main web site for rsync is http://rsync.samba.org/ The main ftp site is ftp://rsync.samba.org/pub/rsync/ This is also available as rsync://rsync.samba.org/rsyncftp/ usr/share/doc/perl-bignum/README000064400000001635152537215530012342 0ustar00bignum bignum - transparent big number support INSTALLATION To install this module, unpack the distribution file, and run the following commands: perl Makefile.PL make make test make install SUPPORT AND DOCUMENTATION After installing, you can find documentation for these modules with the perldoc command. perldoc bignum You can also look for information at: RT, CPAN's request tracker http://rt.cpan.org/NoAuth/Bugs.html?Dist=bignum AnnoCPAN, Annotated CPAN documentation http://annocpan.org/dist/bignum CPAN Ratings http://cpanratings.perl.org/d/bignum Search CPAN http://search.cpan.org/dist/bignum COPYRIGHT AND LICENCE Copyright 2002-2007 Tels, L. Copyright 2014- Peter John Acklam L. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. usr/share/doc/trousers/README000064400000021017152537223340012001 0ustar00trousers README Trousers is an open-source TCG Software Stack (TSS), released under the BSD License. Trousers aims to be compliant with the 1.1b and 1.2 TSS specifications available from the Trusted Computing Group website: http://www.trustedcomputinggroup.org CONTACT For information on the TrouSerS project, please send mail to the following lists: Use of the TSS API and TrouSerS: trousers-users@lists.sf.net Discussion of the internals of the TrouSerS implementation: trousers-tech@lists.sf.net Possibly sensitive security related bugs: Hon Ching(Vicky) Lo Run-of-the-mill bug reports should use the TrouSerS bug tracker: http://sourceforge.net/tracker/?group_id=126012&atid=704358 BUILD REQUIREMENTS Packages needed to build: automake > 1.4 autoconf > 1.4 pkgconfig libtool gtk2-devel openssl-devel >= 0.9.7 pthreads library (glibc-devel) BUILDING the TSS 32-bit Build and install the latest TPM device driver from sf.net/projects/tpmdd either compiled in or loaded as a module. UPDATE: This driver is now included in the vanilla 2.6.12 kernel! If you are doing this, trousers should just work after a vanilla build. Follow the build instructions below and read RUNNING the TSS, below. To build trousers after you have the device driver installed: $ sh bootstrap.sh $ ./configure [--enable-debug] [--enable-gprof] [--enable-gcov] $ make # make install Here are the default locations of files that trousers installs: /usr/local/sbin/tcsd /usr/local/etc/tcsd.conf /usr/local/lib/libtspi.so.0.0.X /usr/local/lib/libtspi.so.0 -> libtspi.so.0.0.X /usr/local/lib/libtspi.so -> libtspi.so.0.0.X /usr/local/lib/libtspi.la /usr/local/lib/libtddl.a /usr/local/var/lib/tpm By default the build will place everything in /usr/local. To install in a slightly more predictable place, use `./configure --prefix=/usr`. 'make install' will run ldconfig, but if /usr/local/lib is not in your /etc/ld.so.conf, this won't make a difference. You may need to manually add it and run ldconfig as root to allow your apps to link at run time to libtspi.so. BUILDING the TSS 64-bit TrouSerS has been built and tested on ppc64 and x86_64, so please don't hesitate to report bugs on these platforms. Building everything 64-bit will require a few more flags than are necessary for a 32-bit platform. Here are some example instructions for ppc64: $ sh bootstrap.sh $ export PKG_CONFIG_PATH=/usr/lib64/pkgconfig $ CFLAGS="-L/usr/lib64 -L/opt/gnome/lib64" LDFLAGS="-L/usr/lib64 \ -L/opt/gnome/lib64" ./configure --libdir="/usr/local/lib64" $ make # make install Hopefully the above example will get you going on building in your 64-bit environment. If you need to do anything special, please send your build steps to trousers-users@lists.sf.net and I'll include it here. USING TROUSERS ON AN ALREADY OWNED TPM If you've already taken ownership of your TPM using a TSS under another operating system, there are a few issues you should be aware of. Auth vs No-Auth SRK: In order to trick trousers into thinking it has taken ownership of the TPM it's running on, you will need to create a persistent storage file for trousers to use. Normally trousers would create this file itself at the time ownership is taken. If your SRK has been given an authorization password by the non-Linux OS, you will need to move the file dist/system.data.auth to /usr/local/var/lib/tpm/system.data. If you've taken ownership of your TPM without issuing a password, move dist/system.data.noauth to /usr/local/var/lib/tpm/system.data. Passwords: When entering passwords for keys you'd like to use in both Linux and other OS's, you'll need to take note of how you entered those passwords. The TSS spec states that when a password is entered through a GUI popup dialog box provided by the TSS library, the password should be converted to the UTF-16 encoding and then hashed using SHA-1, including the UTF-16 null terminator in the hash calculation. In order to work around this problem, specify the -u option to the tpm-tools command line to convert the password to UTF-16 before hashing. This, however, unfolds yet another problem... Some TSS stacks aren't compliant with the TSS spec, in that they hash their passwords without including the terminating null character. This means that there are effectively two versions of any password set through a popup dialog box. Trousers will include the terminating null character in its hashes of UTF-16 data. We'll do our best to track other TSS software and how it behaves. Please see the trousers FAQ at http://trousers.sf.net for more information. ARCHITECTURE This TSS implementation has several components. A) The TCS Daemon - A user space daemon that should be (according to the TSS spec) the only portal to the TPM device driver. At boot time, the TCS Daemon should be started, it should open the TPM device driver and from that point on, all requests to the TPM should go through the TSS stack. The TCSD manages TPM resources and handles requests from TSP's both local and remote. B) The TSP shared library - The TSP (TCG Service Provider) is a shared library that enables applications to talk to TCSD's both locally and remotely. The TSP also manages resources used in commicating with the application and the TCSD and transparently contacts the TCSD whenever necessary. C) Persistent Storage (PS) files - TSS's have 2 different kinds of PS for keys. PS can be thought of as a database for keys, with each key in the database indexed by a UUID. 'User' persistent storage is maintained by the application's TSP library. Upon writing the first key to User PS, the TSP library creates a new file at ~/.trousers/user.data, using the effective user id of the process executing the call to find ~. An environment variable, TSS_USER_PS_FILE, can also be set to point the TSP library to a different location for the User PS. This environment variable has the lifetime of the TSP context, so to store 2 keys in 2 different files, you will need to call Tspi_Context_Close, set the new location, and open the context again. 'System' persistent storage is controlled by the TCS and stays valid across all application lifetimes, TCSD restarts and system resets. Data registered in system PS stays valid until an application requests that it be removed. The System PS file by default is /usr/local/var/lib/tpm/system.data. The system PS file is initially created when ownership of the TPM is first taken. D) A config file. By default located in /usr/local/etc/tcsd.conf. RUNNING the TSS By default, the TCS daemon is not reachable over the internet, so if you just plan to access it locally, running it as root with a root owned device node is probably ok. Just make sure your device driver is loaded and start the tcsd as root. If you would like to run the TCS daemon as an unprivleged user, please follow these instructions: If you're using the device driver from a linux 2.6.12+ kernel and have udev enabled, you need to add the following line to your udev.permissions file (usually in /etc/udev somewhere): tpm[0-9]:tss:tss:0600 and then just load the device driver with: # modprobe tpm_atmel or, # modprobe tpm_natl start the TCS Core Services daemon, by default /usr/local/sbin/tcsd. # /usr/local/sbin/tcsd If you're attempting to make the TCS Core Services daemon communicate with a softwware TPM through TCP, you must call it using the -e option. # /usr/local/sbin/tcsd -e The default values for hostname, port and UN socket device path are "localhost", "6545" and "/var/run/tpm/tpmd_socket:0". It will search for the IN socket device, then for an UN socket one, and then for the real TPM in this order. The default values match with the current open source project required values, if for instance case you need to set values of your choice, the environment variables for them are TCSD_TCP_DEVICE_HOSTNAME, TCSD_TCP_DEVICE_PORT if using an IN socket and TCSD_UN_SOCKET_DEVICE_PATH if running an UN socket. DEBUGGING If you've compiled trousers with './configure --enable-debug' and would like to turn debugging output off at run-time, set the environment variable TSS_DEBUG_OFF to any value. BUILDING a TSS RPM # sh bootstrap.sh # ./configure # cd .. # mv trousers trousers-${version} # tar zcvf /usr/src/packages/SOURCES/trousers-${version}.tar.gz \ trousers-${version} # rpmbuild -bb trousers-${version}/dist/trousers.spec EOF usr/share/X11/xkb/keycodes/README000064400000000640152537276020012313 0ustar00The keycodes component of a keyboard mapping specifies the range and interpretation of the raw keycodes reported by the device. It sets the keycodes symbolic name, the minimum and maximum legal codes for the keyboard, and the symbolic name for each key. The keycodes component might also contain aliases for some keys, symbolic names for some indicators and a description of which indicators are physically present. usr/share/doc/jasper-libs/README000064400000004210152537352230012323 0ustar00JasPer Image Processing/Coding Tool Kit This is the source distribution for JasPer. JasPer is a collection of software (i.e., a library and application programs) for the coding and manipulation of images. This software can handle image data in a variety of formats. One such format supported by JasPer is the JPEG-2000 format defined in ISO/IEC 15444-1. The complete licensing terms for the JasPer software can be found in the file named "LICENSE" in the top level directory of this software distribution. Any use of this software contrary to the terms of the license is strictly prohibited. Recent changes made to the software can be found in the file "ChangeLog". Detailed documentation on the JasPer software can be found in the JasPer Software Reference Manual. This manual is located in the "doc" directory, and includes useful information such as: 1) how to build, install, and use the software, 2) how to submit report bugs, and 3) where to find additional information about the software. The official web site for the JasPer software has the following URL: http://www.ece.uvic.ca/~mdadams/jasper The official Git repository for the JasPer software is hosted by GitHub. The URL for the GitHub site is as follows: https://github.com/mdadams/jasper The Git repository can be accessed via the URL: https://github.com/mdadams/jasper.git Information on how to install this software can be found in the file INSTALL. The reference manual for this software can be found in the directory doc. The manual is provided in two formats: 1) HTML format in the directory doc/html Open the file doc/html/index.html in your web browser. 2) PDF format in doc/manual.pdf The old reference manual (which is still useful) can be found in: doc/jasper.pdf All bug reports should be submitted via the issue-tracking system provided by GitHub. To submit a bug report, go the the following URL and click on the "New issue" button: https://github.com/mdadams/jasper/issues Please do not submit bug reports directly to the author via email, as bug reports that are not submitted via the above issue-tracking system on GitHub are easy to be lost. usr/share/doc/perl-Locale-Maketext/README000064400000003214152537352460014037 0ustar00README for Locale::Maketext Time-stamp: "2004-03-30 16:02:27 AST" Locale::Maketext Locale::Maketext is a base class providing a framework for localization and inheritance-based lexicons, as described in my article in The Perl Journal #13 (a corrected version of which appears in this dist). PREREQUISITES This suite requires Perl 5. It also requires a recent version of I18N::LangTags. MSWin users should also get Win32::Locale. File::Findgrep is also useful example code, as is the rather larger Apache::MP3 source (even if you don't run Apache). INSTALLATION You install Locale::Maketext, as you would install any Perl module distribution, by running these commands: perl Makefile.PL make make test make install If you want to install a private copy of Maketext in your home directory, then you should try to produce the initial Makefile with something like this command: perl Makefile.PL LIB=~/perl See perldoc perlmodinstall for more information. DOCUMENTATION See the pod in Locale::Maketext and Locale::Maketext::TPJ13, and see also File::Findgrep. SUPPORT Questions, bug reports, useful code bits, and suggestions for Worms should be sent to me at sburke@cpan.org AVAILABILITY The latest version of Locale::Maketext is available from the Comprehensive Perl Archive Network (CPAN). Visit to find a CPAN site near you. COPYRIGHT Copyright 1999-2004, Sean M. Burke , all rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. AUTHOR Sean M. Burke usr/share/doc/yajl/README000064400000005361152537365040011062 0ustar00********************************************************************** This is YAJL 2. For the legacy version of YAJL see https://github.com/lloyd/yajl/tree/1.x ********************************************************************** Welcome to Yet Another JSON Library (YAJL) ## Why does the world need another C library for parsing JSON? Good question. In a review of current C JSON parsing libraries I was unable to find one that satisfies my requirements. Those are, 0. written in C 1. portable 2. robust -- as close to "crash proof" as possible 3. data representation independent 4. fast 5. generates verbose, useful error messages including context of where the error occurs in the input text. 6. can parse JSON data off a stream, incrementally 7. simple to use 8. tiny Numbers 3, 5, 6, and 7 were particularly hard to find, and were what caused me to ultimately create YAJL. This document is a tour of some of the more important aspects of YAJL. ## YAJL is Free. Permissive licensing means you can use it in open source and commercial products alike without any fees. My request beyond the licensing is that if you find bugs drop me a email, or better yet, fork and fix. Porting YAJL should be trivial, the implementation is ANSI C. If you port to new systems I'd love to hear of it and integrate your patches. ## YAJL is data representation independent. BYODR! Many JSON libraries impose a structure based data representation on you. This is a benefit in some cases and a drawback in others. YAJL uses callbacks to remain agnostic of the in-memory representation. So if you wish to build up an in-memory representation, you may do so using YAJL, but you must bring the code that defines and populates the in memory structure. This also means that YAJL can be used by other (higher level) JSON libraries if so desired. ## YAJL supports stream parsing This means you do not need to hold the whole JSON representation in textual form in memory. This makes YAJL ideal for filtering projects, where you're converting YAJL from one form to another (i.e. XML). The included JSON pretty printer is an example of such a filter program. ## YAJL is fast Minimal memory copying is performed. YAJL, when possible, returns pointers into the client provided text (i.e. for strings that have no embedded escape chars, hopefully the common case). I've put a lot of effort into profiling and tuning performance, but I have ignored a couple possible performance improvements to keep the interface clean, small, and flexible. My hope is that YAJL will perform comparably to the fastest JSON parser out there. YAJL should impose both minimal CPU and memory requirements on your application. ## YAJL is tiny. Fat free. No whip. enjoy, Lloyd - July, 2007 usr/share/doc/perl-JSON-XS/README000064400000216337152537427110012170 0ustar00NAME JSON::XS - JSON serialising/deserialising, done correctly and fast JSON::XS - 正しくて高速な JSON シリアライザ/デシリアライザ (http://fleur.hio.jp/perldoc/mix/lib/JSON/XS.html) SYNOPSIS use JSON::XS; # exported functions, they croak on error # and expect/generate UTF-8 $utf8_encoded_json_text = encode_json $perl_hash_or_arrayref; $perl_hash_or_arrayref = decode_json $utf8_encoded_json_text; # OO-interface $coder = JSON::XS->new->ascii->pretty->allow_nonref; $pretty_printed_unencoded = $coder->encode ($perl_scalar); $perl_scalar = $coder->decode ($unicode_json_text); # Note that JSON version 2.0 and above will automatically use JSON::XS # if available, at virtually no speed overhead either, so you should # be able to just: use JSON; # and do the same things, except that you have a pure-perl fallback now. DESCRIPTION This module converts Perl data structures to JSON and vice versa. Its primary goal is to be *correct* and its secondary goal is to be *fast*. To reach the latter goal it was written in C. Beginning with version 2.0 of the JSON module, when both JSON and JSON::XS are installed, then JSON will fall back on JSON::XS (this can be overridden) with no overhead due to emulation (by inheriting constructor and methods). If JSON::XS is not available, it will fall back to the compatible JSON::PP module as backend, so using JSON instead of JSON::XS gives you a portable JSON API that can be fast when you need it and doesn't require a C compiler when that is a problem. As this is the n-th-something JSON module on CPAN, what was the reason to write yet another JSON module? While it seems there are many JSON modules, none of them correctly handle all corner cases, and in most cases their maintainers are unresponsive, gone missing, or not listening to bug reports for other reasons. See MAPPING, below, on how JSON::XS maps perl values to JSON values and vice versa. FEATURES * correct Unicode handling This module knows how to handle Unicode, documents how and when it does so, and even documents what "correct" means. * round-trip integrity When you serialise a perl data structure using only data types supported by JSON and Perl, the deserialised data structure is identical on the Perl level. (e.g. the string "2.0" doesn't suddenly become "2" just because it looks like a number). There *are* minor exceptions to this, read the MAPPING section below to learn about those. * strict checking of JSON correctness There is no guessing, no generating of illegal JSON texts by default, and only JSON is accepted as input by default (the latter is a security feature). * fast Compared to other JSON modules and other serialisers such as Storable, this module usually compares favourably in terms of speed, too. * simple to use This module has both a simple functional interface as well as an object oriented interface. * reasonably versatile output formats You can choose between the most compact guaranteed-single-line format possible (nice for simple line-based protocols), a pure-ASCII format (for when your transport is not 8-bit clean, still supports the whole Unicode range), or a pretty-printed format (for when you want to read that stuff). Or you can combine those features in whatever way you like. FUNCTIONAL INTERFACE The following convenience methods are provided by this module. They are exported by default: $json_text = encode_json $perl_scalar Converts the given Perl data structure to a UTF-8 encoded, binary string (that is, the string contains octets only). Croaks on error. This function call is functionally identical to: $json_text = JSON::XS->new->utf8->encode ($perl_scalar) Except being faster. $perl_scalar = decode_json $json_text The opposite of "encode_json": expects an UTF-8 (binary) string and tries to parse that as an UTF-8 encoded JSON text, returning the resulting reference. Croaks on error. This function call is functionally identical to: $perl_scalar = JSON::XS->new->utf8->decode ($json_text) Except being faster. A FEW NOTES ON UNICODE AND PERL Since this often leads to confusion, here are a few very clear words on how Unicode works in Perl, modulo bugs. 1. Perl strings can store characters with ordinal values > 255. This enables you to store Unicode characters as single characters in a Perl string - very natural. 2. Perl does *not* associate an encoding with your strings. ... until you force it to, e.g. when matching it against a regex, or printing the scalar to a file, in which case Perl either interprets your string as locale-encoded text, octets/binary, or as Unicode, depending on various settings. In no case is an encoding stored together with your data, it is *use* that decides encoding, not any magical meta data. 3. The internal utf-8 flag has no meaning with regards to the encoding of your string. Just ignore that flag unless you debug a Perl bug, a module written in XS or want to dive into the internals of perl. Otherwise it will only confuse you, as, despite the name, it says nothing about how your string is encoded. You can have Unicode strings with that flag set, with that flag clear, and you can have binary data with that flag set and that flag clear. Other possibilities exist, too. If you didn't know about that flag, just the better, pretend it doesn't exist. 4. A "Unicode String" is simply a string where each character can be validly interpreted as a Unicode code point. If you have UTF-8 encoded data, it is no longer a Unicode string, but a Unicode string encoded in UTF-8, giving you a binary string. 5. A string containing "high" (> 255) character values is *not* a UTF-8 string. It's a fact. Learn to live with it. I hope this helps :) OBJECT-ORIENTED INTERFACE The object oriented interface lets you configure your own encoding or decoding style, within the limits of supported formats. $json = new JSON::XS Creates a new JSON::XS object that can be used to de/encode JSON strings. All boolean flags described below are by default *disabled*. The mutators for flags all return the JSON object again and thus calls can be chained: my $json = JSON::XS->new->utf8->space_after->encode ({a => [1,2]}) => {"a": [1, 2]} $json = $json->ascii ([$enable]) $enabled = $json->get_ascii If $enable is true (or missing), then the "encode" method will not generate characters outside the code range 0..127 (which is ASCII). Any Unicode characters outside that range will be escaped using either a single \uXXXX (BMP characters) or a double \uHHHH\uLLLLL escape sequence, as per RFC4627. The resulting encoded JSON text can be treated as a native Unicode string, an ascii-encoded, latin1-encoded or UTF-8 encoded string, or any other superset of ASCII. If $enable is false, then the "encode" method will not escape Unicode characters unless required by the JSON syntax or other flags. This results in a faster and more compact format. See also the section *ENCODING/CODESET FLAG NOTES* later in this document. The main use for this flag is to produce JSON texts that can be transmitted over a 7-bit channel, as the encoded JSON texts will not contain any 8 bit characters. JSON::XS->new->ascii (1)->encode ([chr 0x10401]) => ["\ud801\udc01"] $json = $json->latin1 ([$enable]) $enabled = $json->get_latin1 If $enable is true (or missing), then the "encode" method will encode the resulting JSON text as latin1 (or iso-8859-1), escaping any characters outside the code range 0..255. The resulting string can be treated as a latin1-encoded JSON text or a native Unicode string. The "decode" method will not be affected in any way by this flag, as "decode" by default expects Unicode, which is a strict superset of latin1. If $enable is false, then the "encode" method will not escape Unicode characters unless required by the JSON syntax or other flags. See also the section *ENCODING/CODESET FLAG NOTES* later in this document. The main use for this flag is efficiently encoding binary data as JSON text, as most octets will not be escaped, resulting in a smaller encoded size. The disadvantage is that the resulting JSON text is encoded in latin1 (and must correctly be treated as such when storing and transferring), a rare encoding for JSON. It is therefore most useful when you want to store data structures known to contain binary data efficiently in files or databases, not when talking to other JSON encoders/decoders. JSON::XS->new->latin1->encode (["\x{89}\x{abc}"] => ["\x{89}\\u0abc"] # (perl syntax, U+abc escaped, U+89 not) $json = $json->utf8 ([$enable]) $enabled = $json->get_utf8 If $enable is true (or missing), then the "encode" method will encode the JSON result into UTF-8, as required by many protocols, while the "decode" method expects to be handled an UTF-8-encoded string. Please note that UTF-8-encoded strings do not contain any characters outside the range 0..255, they are thus useful for bytewise/binary I/O. In future versions, enabling this option might enable autodetection of the UTF-16 and UTF-32 encoding families, as described in RFC4627. If $enable is false, then the "encode" method will return the JSON string as a (non-encoded) Unicode string, while "decode" expects thus a Unicode string. Any decoding or encoding (e.g. to UTF-8 or UTF-16) needs to be done yourself, e.g. using the Encode module. See also the section *ENCODING/CODESET FLAG NOTES* later in this document. Example, output UTF-16BE-encoded JSON: use Encode; $jsontext = encode "UTF-16BE", JSON::XS->new->encode ($object); Example, decode UTF-32LE-encoded JSON: use Encode; $object = JSON::XS->new->decode (decode "UTF-32LE", $jsontext); $json = $json->pretty ([$enable]) This enables (or disables) all of the "indent", "space_before" and "space_after" (and in the future possibly more) flags in one call to generate the most readable (or most compact) form possible. Example, pretty-print some simple structure: my $json = JSON::XS->new->pretty(1)->encode ({a => [1,2]}) => { "a" : [ 1, 2 ] } $json = $json->indent ([$enable]) $enabled = $json->get_indent If $enable is true (or missing), then the "encode" method will use a multiline format as output, putting every array member or object/hash key-value pair into its own line, indenting them properly. If $enable is false, no newlines or indenting will be produced, and the resulting JSON text is guaranteed not to contain any "newlines". This setting has no effect when decoding JSON texts. $json = $json->space_before ([$enable]) $enabled = $json->get_space_before If $enable is true (or missing), then the "encode" method will add an extra optional space before the ":" separating keys from values in JSON objects. If $enable is false, then the "encode" method will not add any extra space at those places. This setting has no effect when decoding JSON texts. You will also most likely combine this setting with "space_after". Example, space_before enabled, space_after and indent disabled: {"key" :"value"} $json = $json->space_after ([$enable]) $enabled = $json->get_space_after If $enable is true (or missing), then the "encode" method will add an extra optional space after the ":" separating keys from values in JSON objects and extra whitespace after the "," separating key-value pairs and array members. If $enable is false, then the "encode" method will not add any extra space at those places. This setting has no effect when decoding JSON texts. Example, space_before and indent disabled, space_after enabled: {"key": "value"} $json = $json->relaxed ([$enable]) $enabled = $json->get_relaxed If $enable is true (or missing), then "decode" will accept some extensions to normal JSON syntax (see below). "encode" will not be affected in anyway. *Be aware that this option makes you accept invalid JSON texts as if they were valid!*. I suggest only to use this option to parse application-specific files written by humans (configuration files, resource files etc.) If $enable is false (the default), then "decode" will only accept valid JSON texts. Currently accepted extensions are: * list items can have an end-comma JSON *separates* array elements and key-value pairs with commas. This can be annoying if you write JSON texts manually and want to be able to quickly append elements, so this extension accepts comma at the end of such items not just between them: [ 1, 2, <- this comma not normally allowed ] { "k1": "v1", "k2": "v2", <- this comma not normally allowed } * shell-style '#'-comments Whenever JSON allows whitespace, shell-style comments are additionally allowed. They are terminated by the first carriage-return or line-feed character, after which more white-space and comments are allowed. [ 1, # this comment not allowed in JSON # neither this one... ] * literal ASCII TAB characters in strings Literal ASCII TAB characters are now allowed in strings (and treated as "\t"). [ "Hello\tWorld", "HelloWorld", # literal would not normally be allowed ] $json = $json->canonical ([$enable]) $enabled = $json->get_canonical If $enable is true (or missing), then the "encode" method will output JSON objects by sorting their keys. This is adding a comparatively high overhead. If $enable is false, then the "encode" method will output key-value pairs in the order Perl stores them (which will likely change between runs of the same script, and can change even within the same run from 5.18 onwards). This option is useful if you want the same data structure to be encoded as the same JSON text (given the same overall settings). If it is disabled, the same hash might be encoded differently even if contains the same data, as key-value pairs have no inherent ordering in Perl. This setting has no effect when decoding JSON texts. This setting has currently no effect on tied hashes. $json = $json->allow_nonref ([$enable]) $enabled = $json->get_allow_nonref If $enable is true (or missing), then the "encode" method can convert a non-reference into its corresponding string, number or null JSON value, which is an extension to RFC4627. Likewise, "decode" will accept those JSON values instead of croaking. If $enable is false, then the "encode" method will croak if it isn't passed an arrayref or hashref, as JSON texts must either be an object or array. Likewise, "decode" will croak if given something that is not a JSON object or array. Example, encode a Perl scalar as JSON value with enabled "allow_nonref", resulting in an invalid JSON text: JSON::XS->new->allow_nonref->encode ("Hello, World!") => "Hello, World!" $json = $json->allow_unknown ([$enable]) $enabled = $json->get_allow_unknown If $enable is true (or missing), then "encode" will *not* throw an exception when it encounters values it cannot represent in JSON (for example, filehandles) but instead will encode a JSON "null" value. Note that blessed objects are not included here and are handled separately by c. If $enable is false (the default), then "encode" will throw an exception when it encounters anything it cannot encode as JSON. This option does not affect "decode" in any way, and it is recommended to leave it off unless you know your communications partner. $json = $json->allow_blessed ([$enable]) $enabled = $json->get_allow_blessed See "OBJECT SERIALISATION" for details. If $enable is true (or missing), then the "encode" method will not barf when it encounters a blessed reference that it cannot convert otherwise. Instead, a JSON "null" value is encoded instead of the object. If $enable is false (the default), then "encode" will throw an exception when it encounters a blessed object that it cannot convert otherwise. This setting has no effect on "decode". $json = $json->convert_blessed ([$enable]) $enabled = $json->get_convert_blessed See "OBJECT SERIALISATION" for details. If $enable is true (or missing), then "encode", upon encountering a blessed object, will check for the availability of the "TO_JSON" method on the object's class. If found, it will be called in scalar context and the resulting scalar will be encoded instead of the object. The "TO_JSON" method may safely call die if it wants. If "TO_JSON" returns other blessed objects, those will be handled in the same way. "TO_JSON" must take care of not causing an endless recursion cycle (== crash) in this case. The name of "TO_JSON" was chosen because other methods called by the Perl core (== not by the user of the object) are usually in upper case letters and to avoid collisions with any "to_json" function or method. If $enable is false (the default), then "encode" will not consider this type of conversion. This setting has no effect on "decode". $json = $json->allow_tags ([$enable]) $enabled = $json->allow_tags See "OBJECT SERIALISATION" for details. If $enable is true (or missing), then "encode", upon encountering a blessed object, will check for the availability of the "FREEZE" method on the object's class. If found, it will be used to serialise the object into a nonstandard tagged JSON value (that JSON decoders cannot decode). It also causes "decode" to parse such tagged JSON values and deserialise them via a call to the "THAW" method. If $enable is false (the default), then "encode" will not consider this type of conversion, and tagged JSON values will cause a parse error in "decode", as if tags were not part of the grammar. $json = $json->filter_json_object ([$coderef->($hashref)]) When $coderef is specified, it will be called from "decode" each time it decodes a JSON object. The only argument is a reference to the newly-created hash. If the code references returns a single scalar (which need not be a reference), this value (i.e. a copy of that scalar to avoid aliasing) is inserted into the deserialised data structure. If it returns an empty list (NOTE: *not* "undef", which is a valid scalar), the original deserialised hash will be inserted. This setting can slow down decoding considerably. When $coderef is omitted or undefined, any existing callback will be removed and "decode" will not change the deserialised hash in any way. Example, convert all JSON objects into the integer 5: my $js = JSON::XS->new->filter_json_object (sub { 5 }); # returns [5] $js->decode ('[{}]') # throw an exception because allow_nonref is not enabled # so a lone 5 is not allowed. $js->decode ('{"a":1, "b":2}'); $json = $json->filter_json_single_key_object ($key [=> $coderef->($value)]) Works remotely similar to "filter_json_object", but is only called for JSON objects having a single key named $key. This $coderef is called before the one specified via "filter_json_object", if any. It gets passed the single value in the JSON object. If it returns a single value, it will be inserted into the data structure. If it returns nothing (not even "undef" but the empty list), the callback from "filter_json_object" will be called next, as if no single-key callback were specified. If $coderef is omitted or undefined, the corresponding callback will be disabled. There can only ever be one callback for a given key. As this callback gets called less often then the "filter_json_object" one, decoding speed will not usually suffer as much. Therefore, single-key objects make excellent targets to serialise Perl objects into, especially as single-key JSON objects are as close to the type-tagged value concept as JSON gets (it's basically an ID/VALUE tuple). Of course, JSON does not support this in any way, so you need to make sure your data never looks like a serialised Perl hash. Typical names for the single object key are "__class_whatever__", or "$__dollars_are_rarely_used__$" or "}ugly_brace_placement", or even things like "__class_md5sum(classname)__", to reduce the risk of clashing with real hashes. Example, decode JSON objects of the form "{ "__widget__" => }" into the corresponding $WIDGET{} object: # return whatever is in $WIDGET{5}: JSON::XS ->new ->filter_json_single_key_object (__widget__ => sub { $WIDGET{ $_[0] } }) ->decode ('{"__widget__": 5') # this can be used with a TO_JSON method in some "widget" class # for serialisation to json: sub WidgetBase::TO_JSON { my ($self) = @_; unless ($self->{id}) { $self->{id} = ..get..some..id..; $WIDGET{$self->{id}} = $self; } { __widget__ => $self->{id} } } $json = $json->shrink ([$enable]) $enabled = $json->get_shrink Perl usually over-allocates memory a bit when allocating space for strings. This flag optionally resizes strings generated by either "encode" or "decode" to their minimum size possible. This can save memory when your JSON texts are either very very long or you have many short strings. It will also try to downgrade any strings to octet-form if possible: perl stores strings internally either in an encoding called UTF-X or in octet-form. The latter cannot store everything but uses less space in general (and some buggy Perl or C code might even rely on that internal representation being used). The actual definition of what shrink does might change in future versions, but it will always try to save space at the expense of time. If $enable is true (or missing), the string returned by "encode" will be shrunk-to-fit, while all strings generated by "decode" will also be shrunk-to-fit. If $enable is false, then the normal perl allocation algorithms are used. If you work with your data, then this is likely to be faster. In the future, this setting might control other things, such as converting strings that look like integers or floats into integers or floats internally (there is no difference on the Perl level), saving space. $json = $json->max_depth ([$maximum_nesting_depth]) $max_depth = $json->get_max_depth Sets the maximum nesting level (default 512) accepted while encoding or decoding. If a higher nesting level is detected in JSON text or a Perl data structure, then the encoder and decoder will stop and croak at that point. Nesting level is defined by number of hash- or arrayrefs that the encoder needs to traverse to reach a given point or the number of "{" or "[" characters without their matching closing parenthesis crossed to reach a given character in a string. Setting the maximum depth to one disallows any nesting, so that ensures that the object is only a single hash/object or array. If no argument is given, the highest possible setting will be used, which is rarely useful. Note that nesting is implemented by recursion in C. The default value has been chosen to be as large as typical operating systems allow without crashing. See SECURITY CONSIDERATIONS, below, for more info on why this is useful. $json = $json->max_size ([$maximum_string_size]) $max_size = $json->get_max_size Set the maximum length a JSON text may have (in bytes) where decoding is being attempted. The default is 0, meaning no limit. When "decode" is called on a string that is longer then this many bytes, it will not attempt to decode the string but throw an exception. This setting has no effect on "encode" (yet). If no argument is given, the limit check will be deactivated (same as when 0 is specified). See SECURITY CONSIDERATIONS, below, for more info on why this is useful. $json_text = $json->encode ($perl_scalar) Converts the given Perl value or data structure to its JSON representation. Croaks on error. $perl_scalar = $json->decode ($json_text) The opposite of "encode": expects a JSON text and tries to parse it, returning the resulting simple scalar or reference. Croaks on error. ($perl_scalar, $characters) = $json->decode_prefix ($json_text) This works like the "decode" method, but instead of raising an exception when there is trailing garbage after the first JSON object, it will silently stop parsing there and return the number of characters consumed so far. This is useful if your JSON texts are not delimited by an outer protocol and you need to know where the JSON text ends. JSON::XS->new->decode_prefix ("[1] the tail") => ([1], 3) INCREMENTAL PARSING In some cases, there is the need for incremental parsing of JSON texts. While this module always has to keep both JSON text and resulting Perl data structure in memory at one time, it does allow you to parse a JSON stream incrementally. It does so by accumulating text until it has a full JSON object, which it then can decode. This process is similar to using "decode_prefix" to see if a full JSON object is available, but is much more efficient (and can be implemented with a minimum of method calls). JSON::XS will only attempt to parse the JSON text once it is sure it has enough text to get a decisive result, using a very simple but truly incremental parser. This means that it sometimes won't stop as early as the full parser, for example, it doesn't detect mismatched parentheses. The only thing it guarantees is that it starts decoding as soon as a syntactically valid JSON text has been seen. This means you need to set resource limits (e.g. "max_size") to ensure the parser will stop parsing in the presence if syntax errors. The following methods implement this incremental parser. [void, scalar or list context] = $json->incr_parse ([$string]) This is the central parsing function. It can both append new text and extract objects from the stream accumulated so far (both of these functions are optional). If $string is given, then this string is appended to the already existing JSON fragment stored in the $json object. After that, if the function is called in void context, it will simply return without doing anything further. This can be used to add more text in as many chunks as you want. If the method is called in scalar context, then it will try to extract exactly *one* JSON object. If that is successful, it will return this object, otherwise it will return "undef". If there is a parse error, this method will croak just as "decode" would do (one can then use "incr_skip" to skip the erroneous part). This is the most common way of using the method. And finally, in list context, it will try to extract as many objects from the stream as it can find and return them, or the empty list otherwise. For this to work, there must be no separators (other than whitespace) between the JSON objects or arrays, instead they must be concatenated back-to-back. If an error occurs, an exception will be raised as in the scalar context case. Note that in this case, any previously-parsed JSON texts will be lost. Example: Parse some JSON arrays/objects in a given string and return them. my @objs = JSON::XS->new->incr_parse ("[5][7][1,2]"); $lvalue_string = $json->incr_text This method returns the currently stored JSON fragment as an lvalue, that is, you can manipulate it. This *only* works when a preceding call to "incr_parse" in *scalar context* successfully returned an object. Under all other circumstances you must not call this function (I mean it. although in simple tests it might actually work, it *will* fail under real world conditions). As a special exception, you can also call this method before having parsed anything. That means you can only use this function to look at or manipulate text before or after complete JSON objects, not while the parser is in the middle of parsing a JSON object. This function is useful in two cases: a) finding the trailing text after a JSON object or b) parsing multiple JSON objects separated by non-JSON text (such as commas). $json->incr_skip This will reset the state of the incremental parser and will remove the parsed text from the input buffer so far. This is useful after "incr_parse" died, in which case the input buffer and incremental parser state is left unchanged, to skip the text parsed so far and to reset the parse state. The difference to "incr_reset" is that only text until the parse error occurred is removed. $json->incr_reset This completely resets the incremental parser, that is, after this call, it will be as if the parser had never parsed anything. This is useful if you want to repeatedly parse JSON objects and want to ignore any trailing data, which means you have to reset the parser after each successful decode. LIMITATIONS All options that affect decoding are supported, except "allow_nonref". The reason for this is that it cannot be made to work sensibly: JSON objects and arrays are self-delimited, i.e. you can concatenate them back to back and still decode them perfectly. This does not hold true for JSON numbers, however. For example, is the string 1 a single JSON number, or is it simply the start of 12? Or is 12 a single JSON number, or the concatenation of 1 and 2? In neither case you can tell, and this is why JSON::XS takes the conservative route and disallows this case. EXAMPLES Some examples will make all this clearer. First, a simple example that works similarly to "decode_prefix": We want to decode the JSON object at the start of a string and identify the portion after the JSON object: my $text = "[1,2,3] hello"; my $json = new JSON::XS; my $obj = $json->incr_parse ($text) or die "expected JSON object or array at beginning of string"; my $tail = $json->incr_text; # $tail now contains " hello" Easy, isn't it? Now for a more complicated example: Imagine a hypothetical protocol where you read some requests from a TCP stream, and each request is a JSON array, without any separation between them (in fact, it is often useful to use newlines as "separators", as these get interpreted as whitespace at the start of the JSON text, which makes it possible to test said protocol with "telnet"...). Here is how you'd do it (it is trivial to write this in an event-based manner): my $json = new JSON::XS; # read some data from the socket while (sysread $socket, my $buf, 4096) { # split and decode as many requests as possible for my $request ($json->incr_parse ($buf)) { # act on the $request } } Another complicated example: Assume you have a string with JSON objects or arrays, all separated by (optional) comma characters (e.g. "[1],[2], [3]"). To parse them, we have to skip the commas between the JSON texts, and here is where the lvalue-ness of "incr_text" comes in useful: my $text = "[1],[2], [3]"; my $json = new JSON::XS; # void context, so no parsing done $json->incr_parse ($text); # now extract as many objects as possible. note the # use of scalar context so incr_text can be called. while (my $obj = $json->incr_parse) { # do something with $obj # now skip the optional comma $json->incr_text =~ s/^ \s* , //x; } Now lets go for a very complex example: Assume that you have a gigantic JSON array-of-objects, many gigabytes in size, and you want to parse it, but you cannot load it into memory fully (this has actually happened in the real world :). Well, you lost, you have to implement your own JSON parser. But JSON::XS can still help you: You implement a (very simple) array parser and let JSON decode the array elements, which are all full JSON objects on their own (this wouldn't work if the array elements could be JSON numbers, for example): my $json = new JSON::XS; # open the monster open my $fh, "incr_parse ($buf); # void context, so no parsing # Exit the loop once we found and removed(!) the initial "[". # In essence, we are (ab-)using the $json object as a simple scalar # we append data to. last if $json->incr_text =~ s/^ \s* \[ //x; } # now we have the skipped the initial "[", so continue # parsing all the elements. for (;;) { # in this loop we read data until we got a single JSON object for (;;) { if (my $obj = $json->incr_parse) { # do something with $obj last; } # add more data sysread $fh, my $buf, 65536 or die "read error: $!"; $json->incr_parse ($buf); # void context, so no parsing } # in this loop we read data until we either found and parsed the # separating "," between elements, or the final "]" for (;;) { # first skip whitespace $json->incr_text =~ s/^\s*//; # if we find "]", we are done if ($json->incr_text =~ s/^\]//) { print "finished.\n"; exit; } # if we find ",", we can continue with the next element if ($json->incr_text =~ s/^,//) { last; } # if we find anything else, we have a parse error! if (length $json->incr_text) { die "parse error near ", $json->incr_text; } # else add more data sysread $fh, my $buf, 65536 or die "read error: $!"; $json->incr_parse ($buf); # void context, so no parsing } This is a complex example, but most of the complexity comes from the fact that we are trying to be correct (bear with me if I am wrong, I never ran the above example :). MAPPING This section describes how JSON::XS maps Perl values to JSON values and vice versa. These mappings are designed to "do the right thing" in most circumstances automatically, preserving round-tripping characteristics (what you put in comes out as something equivalent). For the more enlightened: note that in the following descriptions, lowercase *perl* refers to the Perl interpreter, while uppercase *Perl* refers to the abstract Perl language itself. JSON -> PERL object A JSON object becomes a reference to a hash in Perl. No ordering of object keys is preserved (JSON does not preserve object key ordering itself). array A JSON array becomes a reference to an array in Perl. string A JSON string becomes a string scalar in Perl - Unicode codepoints in JSON are represented by the same codepoints in the Perl string, so no manual decoding is necessary. number A JSON number becomes either an integer, numeric (floating point) or string scalar in perl, depending on its range and any fractional parts. On the Perl level, there is no difference between those as Perl handles all the conversion details, but an integer may take slightly less memory and might represent more values exactly than floating point numbers. If the number consists of digits only, JSON::XS will try to represent it as an integer value. If that fails, it will try to represent it as a numeric (floating point) value if that is possible without loss of precision. Otherwise it will preserve the number as a string value (in which case you lose roundtripping ability, as the JSON number will be re-encoded to a JSON string). Numbers containing a fractional or exponential part will always be represented as numeric (floating point) values, possibly at a loss of precision (in which case you might lose perfect roundtripping ability, but the JSON number will still be re-encoded as a JSON number). Note that precision is not accuracy - binary floating point values cannot represent most decimal fractions exactly, and when converting from and to floating point, JSON::XS only guarantees precision up to but not including the least significant bit. true, false These JSON atoms become "Types::Serialiser::true" and "Types::Serialiser::false", respectively. They are overloaded to act almost exactly like the numbers 1 and 0. You can check whether a scalar is a JSON boolean by using the "Types::Serialiser::is_bool" function (after "use Types::Serialier", of course). null A JSON null atom becomes "undef" in Perl. shell-style comments ("# *text*") As a nonstandard extension to the JSON syntax that is enabled by the "relaxed" setting, shell-style comments are allowed. They can start anywhere outside strings and go till the end of the line. tagged values ("(*tag*)*value*"). Another nonstandard extension to the JSON syntax, enabled with the "allow_tags" setting, are tagged values. In this implementation, the *tag* must be a perl package/class name encoded as a JSON string, and the *value* must be a JSON array encoding optional constructor arguments. See "OBJECT SERIALISATION", below, for details. PERL -> JSON The mapping from Perl to JSON is slightly more difficult, as Perl is a truly typeless language, so we can only guess which JSON type is meant by a Perl value. hash references Perl hash references become JSON objects. As there is no inherent ordering in hash keys (or JSON objects), they will usually be encoded in a pseudo-random order. JSON::XS can optionally sort the hash keys (determined by the *canonical* flag), so the same datastructure will serialise to the same JSON text (given same settings and version of JSON::XS), but this incurs a runtime overhead and is only rarely useful, e.g. when you want to compare some JSON text against another for equality. array references Perl array references become JSON arrays. other references Other unblessed references are generally not allowed and will cause an exception to be thrown, except for references to the integers 0 and 1, which get turned into "false" and "true" atoms in JSON. Since "JSON::XS" uses the boolean model from Types::Serialiser, you can also "use Types::Serialiser" and then use "Types::Serialiser::false" and "Types::Serialiser::true" to improve readability. use Types::Serialiser; encode_json [\0, Types::Serialiser::true] # yields [false,true] Types::Serialiser::true, Types::Serialiser::false These special values from the Types::Serialiser module become JSON true and JSON false values, respectively. You can also use "\1" and "\0" directly if you want. blessed objects Blessed objects are not directly representable in JSON, but "JSON::XS" allows various ways of handling objects. See "OBJECT SERIALISATION", below, for details. simple scalars Simple Perl scalars (any scalar that is not a reference) are the most difficult objects to encode: JSON::XS will encode undefined scalars as JSON "null" values, scalars that have last been used in a string context before encoding as JSON strings, and anything else as number value: # dump as number encode_json [2] # yields [2] encode_json [-3.0e17] # yields [-3e+17] my $value = 5; encode_json [$value] # yields [5] # used as string, so dump as string print $value; encode_json [$value] # yields ["5"] # undef becomes null encode_json [undef] # yields [null] You can force the type to be a JSON string by stringifying it: my $x = 3.1; # some variable containing a number "$x"; # stringified $x .= ""; # another, more awkward way to stringify print $x; # perl does it for you, too, quite often You can force the type to be a JSON number by numifying it: my $x = "3"; # some variable containing a string $x += 0; # numify it, ensuring it will be dumped as a number $x *= 1; # same thing, the choice is yours. You can not currently force the type in other, less obscure, ways. Tell me if you need this capability (but don't forget to explain why it's needed :). Note that numerical precision has the same meaning as under Perl (so binary to decimal conversion follows the same rules as in Perl, which can differ to other languages). Also, your perl interpreter might expose extensions to the floating point numbers of your platform, such as infinities or NaN's - these cannot be represented in JSON, and it is an error to pass those in. OBJECT SERIALISATION As JSON cannot directly represent Perl objects, you have to choose between a pure JSON representation (without the ability to deserialise the object automatically again), and a nonstandard extension to the JSON syntax, tagged values. SERIALISATION What happens when "JSON::XS" encounters a Perl object depends on the "allow_blessed", "convert_blessed" and "allow_tags" settings, which are used in this order: 1. "allow_tags" is enabled and the object has a "FREEZE" method. In this case, "JSON::XS" uses the Types::Serialiser object serialisation protocol to create a tagged JSON value, using a nonstandard extension to the JSON syntax. This works by invoking the "FREEZE" method on the object, with the first argument being the object to serialise, and the second argument being the constant string "JSON" to distinguish it from other serialisers. The "FREEZE" method can return any number of values (i.e. zero or more). These values and the paclkage/classname of the object will then be encoded as a tagged JSON value in the following format: ("classname")[FREEZE return values...] e.g.: ("URI")["http://www.google.com/"] ("MyDate")[2013,10,29] ("ImageData::JPEG")["Z3...VlCg=="] For example, the hypothetical "My::Object" "FREEZE" method might use the objects "type" and "id" members to encode the object: sub My::Object::FREEZE { my ($self, $serialiser) = @_; ($self->{type}, $self->{id}) } 2. "convert_blessed" is enabled and the object has a "TO_JSON" method. In this case, the "TO_JSON" method of the object is invoked in scalar context. It must return a single scalar that can be directly encoded into JSON. This scalar replaces the object in the JSON text. For example, the following "TO_JSON" method will convert all URI objects to JSON strings when serialised. The fatc that these values originally were URI objects is lost. sub URI::TO_JSON { my ($uri) = @_; $uri->as_string } 3. "allow_blessed" is enabled. The object will be serialised as a JSON null value. 4. none of the above If none of the settings are enabled or the respective methods are missing, "JSON::XS" throws an exception. DESERIALISATION For deserialisation there are only two cases to consider: either nonstandard tagging was used, in which case "allow_tags" decides, or objects cannot be automatically be deserialised, in which case you can use postprocessing or the "filter_json_object" or "filter_json_single_key_object" callbacks to get some real objects our of your JSON. This section only considers the tagged value case: I a tagged JSON object is encountered during decoding and "allow_tags" is disabled, a parse error will result (as if tagged values were not part of the grammar). If "allow_tags" is enabled, "JSON::XS" will look up the "THAW" method of the package/classname used during serialisation (it will not attempt to load the package as a Perl module). If there is no such method, the decoding will fail with an error. Otherwise, the "THAW" method is invoked with the classname as first argument, the constant string "JSON" as second argument, and all the values from the JSON array (the values originally returned by the "FREEZE" method) as remaining arguments. The method must then return the object. While technically you can return any Perl scalar, you might have to enable the "enable_nonref" setting to make that work in all cases, so better return an actual blessed reference. As an example, let's implement a "THAW" function that regenerates the "My::Object" from the "FREEZE" example earlier: sub My::Object::THAW { my ($class, $serialiser, $type, $id) = @_; $class->new (type => $type, id => $id) } ENCODING/CODESET FLAG NOTES The interested reader might have seen a number of flags that signify encodings or codesets - "utf8", "latin1" and "ascii". There seems to be some confusion on what these do, so here is a short comparison: "utf8" controls whether the JSON text created by "encode" (and expected by "decode") is UTF-8 encoded or not, while "latin1" and "ascii" only control whether "encode" escapes character values outside their respective codeset range. Neither of these flags conflict with each other, although some combinations make less sense than others. Care has been taken to make all flags symmetrical with respect to "encode" and "decode", that is, texts encoded with any combination of these flag values will be correctly decoded when the same flags are used - in general, if you use different flag settings while encoding vs. when decoding you likely have a bug somewhere. Below comes a verbose discussion of these flags. Note that a "codeset" is simply an abstract set of character-codepoint pairs, while an encoding takes those codepoint numbers and *encodes* them, in our case into octets. Unicode is (among other things) a codeset, UTF-8 is an encoding, and ISO-8859-1 (= latin 1) and ASCII are both codesets *and* encodings at the same time, which can be confusing. "utf8" flag disabled When "utf8" is disabled (the default), then "encode"/"decode" generate and expect Unicode strings, that is, characters with high ordinal Unicode values (> 255) will be encoded as such characters, and likewise such characters are decoded as-is, no changes to them will be done, except "(re-)interpreting" them as Unicode codepoints or Unicode characters, respectively (to Perl, these are the same thing in strings unless you do funny/weird/dumb stuff). This is useful when you want to do the encoding yourself (e.g. when you want to have UTF-16 encoded JSON texts) or when some other layer does the encoding for you (for example, when printing to a terminal using a filehandle that transparently encodes to UTF-8 you certainly do NOT want to UTF-8 encode your data first and have Perl encode it another time). "utf8" flag enabled If the "utf8"-flag is enabled, "encode"/"decode" will encode all characters using the corresponding UTF-8 multi-byte sequence, and will expect your input strings to be encoded as UTF-8, that is, no "character" of the input string must have any value > 255, as UTF-8 does not allow that. The "utf8" flag therefore switches between two modes: disabled means you will get a Unicode string in Perl, enabled means you get an UTF-8 encoded octet/binary string in Perl. "latin1" or "ascii" flags enabled With "latin1" (or "ascii") enabled, "encode" will escape characters with ordinal values > 255 (> 127 with "ascii") and encode the remaining characters as specified by the "utf8" flag. If "utf8" is disabled, then the result is also correctly encoded in those character sets (as both are proper subsets of Unicode, meaning that a Unicode string with all character values < 256 is the same thing as a ISO-8859-1 string, and a Unicode string with all character values < 128 is the same thing as an ASCII string in Perl). If "utf8" is enabled, you still get a correct UTF-8-encoded string, regardless of these flags, just some more characters will be escaped using "\uXXXX" then before. Note that ISO-8859-1-*encoded* strings are not compatible with UTF-8 encoding, while ASCII-encoded strings are. That is because the ISO-8859-1 encoding is NOT a subset of UTF-8 (despite the ISO-8859-1 *codeset* being a subset of Unicode), while ASCII is. Surprisingly, "decode" will ignore these flags and so treat all input values as governed by the "utf8" flag. If it is disabled, this allows you to decode ISO-8859-1- and ASCII-encoded strings, as both strict subsets of Unicode. If it is enabled, you can correctly decode UTF-8 encoded strings. So neither "latin1" nor "ascii" are incompatible with the "utf8" flag - they only govern when the JSON output engine escapes a character or not. The main use for "latin1" is to relatively efficiently store binary data as JSON, at the expense of breaking compatibility with most JSON decoders. The main use for "ascii" is to force the output to not contain characters with values > 127, which means you can interpret the resulting string as UTF-8, ISO-8859-1, ASCII, KOI8-R or most about any character set and 8-bit-encoding, and still get the same data structure back. This is useful when your channel for JSON transfer is not 8-bit clean or the encoding might be mangled in between (e.g. in mail), and works because ASCII is a proper subset of most 8-bit and multibyte encodings in use in the world. JSON and ECMAscript JSON syntax is based on how literals are represented in javascript (the not-standardised predecessor of ECMAscript) which is presumably why it is called "JavaScript Object Notation". However, JSON is not a subset (and also not a superset of course) of ECMAscript (the standard) or javascript (whatever browsers actually implement). If you want to use javascript's "eval" function to "parse" JSON, you might run into parse errors for valid JSON texts, or the resulting data structure might not be queryable: One of the problems is that U+2028 and U+2029 are valid characters inside JSON strings, but are not allowed in ECMAscript string literals, so the following Perl fragment will not output something that can be guaranteed to be parsable by javascript's "eval": use JSON::XS; print encode_json [chr 0x2028]; The right fix for this is to use a proper JSON parser in your javascript programs, and not rely on "eval" (see for example Douglas Crockford's json2.js parser). If this is not an option, you can, as a stop-gap measure, simply encode to ASCII-only JSON: use JSON::XS; print JSON::XS->new->ascii->encode ([chr 0x2028]); Note that this will enlarge the resulting JSON text quite a bit if you have many non-ASCII characters. You might be tempted to run some regexes to only escape U+2028 and U+2029, e.g.: # DO NOT USE THIS! my $json = JSON::XS->new->utf8->encode ([chr 0x2028]); $json =~ s/\xe2\x80\xa8/\\u2028/g; # escape U+2028 $json =~ s/\xe2\x80\xa9/\\u2029/g; # escape U+2029 print $json; Note that *this is a bad idea*: the above only works for U+2028 and U+2029 and thus only for fully ECMAscript-compliant parsers. Many existing javascript implementations, however, have issues with other characters as well - using "eval" naively simply *will* cause problems. Another problem is that some javascript implementations reserve some property names for their own purposes (which probably makes them non-ECMAscript-compliant). For example, Iceweasel reserves the "__proto__" property name for its own purposes. If that is a problem, you could parse try to filter the resulting JSON output for these property strings, e.g.: $json =~ s/"__proto__"\s*:/"__proto__renamed":/g; This works because "__proto__" is not valid outside of strings, so every occurrence of ""__proto__"\s*:" must be a string used as property name. If you know of other incompatibilities, please let me know. JSON and YAML You often hear that JSON is a subset of YAML. This is, however, a mass hysteria(*) and very far from the truth (as of the time of this writing), so let me state it clearly: *in general, there is no way to configure JSON::XS to output a data structure as valid YAML* that works in all cases. If you really must use JSON::XS to generate YAML, you should use this algorithm (subject to change in future versions): my $to_yaml = JSON::XS->new->utf8->space_after (1); my $yaml = $to_yaml->encode ($ref) . "\n"; This will *usually* generate JSON texts that also parse as valid YAML. Please note that YAML has hardcoded limits on (simple) object key lengths that JSON doesn't have and also has different and incompatible unicode character escape syntax, so you should make sure that your hash keys are noticeably shorter than the 1024 "stream characters" YAML allows and that you do not have characters with codepoint values outside the Unicode BMP (basic multilingual page). YAML also does not allow "\/" sequences in strings (which JSON::XS does not *currently* generate, but other JSON generators might). There might be other incompatibilities that I am not aware of (or the YAML specification has been changed yet again - it does so quite often). In general you should not try to generate YAML with a JSON generator or vice versa, or try to parse JSON with a YAML parser or vice versa: chances are high that you will run into severe interoperability problems when you least expect it. (*) I have been pressured multiple times by Brian Ingerson (one of the authors of the YAML specification) to remove this paragraph, despite him acknowledging that the actual incompatibilities exist. As I was personally bitten by this "JSON is YAML" lie, I refused and said I will continue to educate people about these issues, so others do not run into the same problem again and again. After this, Brian called me a (quote)*complete and worthless idiot*(unquote). In my opinion, instead of pressuring and insulting people who actually clarify issues with YAML and the wrong statements of some of its proponents, I would kindly suggest reading the JSON spec (which is not that difficult or long) and finally make YAML compatible to it, and educating users about the changes, instead of spreading lies about the real compatibility for many *years* and trying to silence people who point out that it isn't true. Addendum/2009: the YAML 1.2 spec is still incompatible with JSON, even though the incompatibilities have been documented (and are known to Brian) for many years and the spec makes explicit claims that YAML is a superset of JSON. It would be so easy to fix, but apparently, bullying people and corrupting userdata is so much easier. SPEED It seems that JSON::XS is surprisingly fast, as shown in the following tables. They have been generated with the help of the "eg/bench" program in the JSON::XS distribution, to make it easy to compare on your own system. First comes a comparison between various modules using a very short single-line JSON string (also available at ). {"method": "handleMessage", "params": ["user1", "we were just talking"], "id": null, "array":[1,11,234,-5,1e5,1e7, 1, 0]} It shows the number of encodes/decodes per second (JSON::XS uses the functional interface, while JSON::XS/2 uses the OO interface with pretty-printing and hashkey sorting enabled, JSON::XS/3 enables shrink. JSON::DWIW/DS uses the deserialise function, while JSON::DWIW::FJ uses the from_json method). Higher is better: module | encode | decode | --------------|------------|------------| JSON::DWIW/DS | 86302.551 | 102300.098 | JSON::DWIW/FJ | 86302.551 | 75983.768 | JSON::PP | 15827.562 | 6638.658 | JSON::Syck | 63358.066 | 47662.545 | JSON::XS | 511500.488 | 511500.488 | JSON::XS/2 | 291271.111 | 388361.481 | JSON::XS/3 | 361577.931 | 361577.931 | Storable | 66788.280 | 265462.278 | --------------+------------+------------+ That is, JSON::XS is almost six times faster than JSON::DWIW on encoding, about five times faster on decoding, and over thirty to seventy times faster than JSON's pure perl implementation. It also compares favourably to Storable for small amounts of data. Using a longer test string (roughly 18KB, generated from Yahoo! Locals search API (). module | encode | decode | --------------|------------|------------| JSON::DWIW/DS | 1647.927 | 2673.916 | JSON::DWIW/FJ | 1630.249 | 2596.128 | JSON::PP | 400.640 | 62.311 | JSON::Syck | 1481.040 | 1524.869 | JSON::XS | 20661.596 | 9541.183 | JSON::XS/2 | 10683.403 | 9416.938 | JSON::XS/3 | 20661.596 | 9400.054 | Storable | 19765.806 | 10000.725 | --------------+------------+------------+ Again, JSON::XS leads by far (except for Storable which non-surprisingly decodes a bit faster). On large strings containing lots of high Unicode characters, some modules (such as JSON::PC) seem to decode faster than JSON::XS, but the result will be broken due to missing (or wrong) Unicode handling. Others refuse to decode or encode properly, so it was impossible to prepare a fair comparison table for that case. SECURITY CONSIDERATIONS When you are using JSON in a protocol, talking to untrusted potentially hostile creatures requires relatively few measures. First of all, your JSON decoder should be secure, that is, should not have any buffer overflows. Obviously, this module should ensure that and I am trying hard on making that true, but you never know. Second, you need to avoid resource-starving attacks. That means you should limit the size of JSON texts you accept, or make sure then when your resources run out, that's just fine (e.g. by using a separate process that can crash safely). The size of a JSON text in octets or characters is usually a good indication of the size of the resources required to decode it into a Perl structure. While JSON::XS can check the size of the JSON text, it might be too late when you already have it in memory, so you might want to check the size before you accept the string. Third, JSON::XS recurses using the C stack when decoding objects and arrays. The C stack is a limited resource: for instance, on my amd64 machine with 8MB of stack size I can decode around 180k nested arrays but only 14k nested JSON objects (due to perl itself recursing deeply on croak to free the temporary). If that is exceeded, the program crashes. To be conservative, the default nesting limit is set to 512. If your process has a smaller stack, you should adjust this setting accordingly with the "max_depth" method. Something else could bomb you, too, that I forgot to think of. In that case, you get to keep the pieces. I am always open for hints, though... Also keep in mind that JSON::XS might leak contents of your Perl data structures in its error messages, so when you serialise sensitive information you might want to make sure that exceptions thrown by JSON::XS will not end up in front of untrusted eyes. If you are using JSON::XS to return packets to consumption by JavaScript scripts in a browser you should have a look at to see whether you are vulnerable to some common attack vectors (which really are browser design bugs, but it is still you who will have to deal with it, as major browser developers care only for features, not about getting security right). "OLD" VS. "NEW" JSON (RFC 4627 VS. RFC 7159) TL;DR: Due to security concerns, JSON::XS will not allow scalar data in JSON texts by default - you need to create your own JSON::XS object and enable "allow_nonref": my $json = JSON::XS->new->allow_nonref; $text = $json->encode ($data); $data = $json->decode ($text); The long version: JSON being an important and supposedly stable format, the IETF standardised it as RFC 4627 in 2006. Unfortunately, the inventor of JSON, Dougles Crockford, unilaterally changed the definition of JSON in javascript. Rather than create a fork, the IETF decided to standardise the new syntax (apparently, so Iw as told, without finding it very amusing). The biggest difference between thed original JSON and the new JSON is that the new JSON supports scalars (anything other than arrays and objects) at the toplevel of a JSON text. While this is strictly backwards compatible to older versions, it breaks a number of protocols that relied on sending JSON back-to-back, and is a minor security concern. For example, imagine you have two banks communicating, and on one side, trhe JSON coder gets upgraded. Two messages, such as 10 and 1000 might then be confused to mean 101000, something that couldn't happen in the original JSON, because niether of these messages would be valid JSON. If one side accepts these messages, then an upgrade in the coder on either side could result in this becoming exploitable. This module has always allowed these messages as an optional extension, by default disabled. The security concerns are the reason why the default is still disabled, but future versions might/will likely upgrade to the newer RFC as default format, so you are advised to check your implementation and/or override the default with "->allow_nonref (0)" to ensure that future versions are safe. INTEROPERABILITY WITH OTHER MODULES "JSON::XS" uses the Types::Serialiser module to provide boolean constants. That means that the JSON true and false values will be comaptible to true and false values of other modules that do the same, such as JSON::PP and CBOR::XS. INTEROPERABILITY WITH OTHER JSON DECODERS As long as you only serialise data that can be directly expressed in JSON, "JSON::XS" is incapable of generating invalid JSON output (modulo bugs, but "JSON::XS" has found more bugs in the official JSON testsuite (1) than the official JSON testsuite has found in "JSON::XS" (0)). When you have trouble decoding JSON generated by this module using other decoders, then it is very likely that you have an encoding mismatch or the other decoder is broken. When decoding, "JSON::XS" is strict by default and will likely catch all errors. There are currently two settings that change this: "relaxed" makes "JSON::XS" accept (but not generate) some non-standard extensions, and "allow_tags" will allow you to encode and decode Perl objects, at the cost of not outputting valid JSON anymore. TAGGED VALUE SYNTAX AND STANDARD JSON EN/DECODERS When you use "allow_tags" to use the extended (and also nonstandard and invalid) JSON syntax for serialised objects, and you still want to decode the generated When you want to serialise objects, you can run a regex to replace the tagged syntax by standard JSON arrays (it only works for "normal" package names without comma, newlines or single colons). First, the readable Perl version: # if your FREEZE methods return no values, you need this replace first: $json =~ s/\( \s* (" (?: [^\\":,]+|\\.|::)* ") \s* \) \s* \[\s*\]/[$1]/gx; # this works for non-empty constructor arg lists: $json =~ s/\( \s* (" (?: [^\\":,]+|\\.|::)* ") \s* \) \s* \[/[$1,/gx; And here is a less readable version that is easy to adapt to other languages: $json =~ s/\(\s*("([^\\":,]+|\\.|::)*")\s*\)\s*\[/[$1,/g; Here is an ECMAScript version (same regex): json = json.replace (/\(\s*("([^\\":,]+|\\.|::)*")\s*\)\s*\[/g, "[$1,"); Since this syntax converts to standard JSON arrays, it might be hard to distinguish serialised objects from normal arrays. You can prepend a "magic number" as first array element to reduce chances of a collision: $json =~ s/\(\s*("([^\\":,]+|\\.|::)*")\s*\)\s*\[/["XU1peReLzT4ggEllLanBYq4G9VzliwKF",$1,/g; And after decoding the JSON text, you could walk the data structure looking for arrays with a first element of "XU1peReLzT4ggEllLanBYq4G9VzliwKF". The same approach can be used to create the tagged format with another encoder. First, you create an array with the magic string as first member, the classname as second, and constructor arguments last, encode it as part of your JSON structure, and then: $json =~ s/\[\s*"XU1peReLzT4ggEllLanBYq4G9VzliwKF"\s*,\s*("([^\\":,]+|\\.|::)*")\s*,/($1)[/g; Again, this has some limitations - the magic string must not be encoded with character escapes, and the constructor arguments must be non-empty. RFC7159 Since this module was written, Google has written a new JSON RFC, RFC 7159 (and RFC7158). Unfortunately, this RFC breaks compatibility with both the original JSON specification on www.json.org and RFC4627. As far as I can see, you can get partial compatibility when parsing by using "->allow_nonref". However, consider the security implications of doing so. I haven't decided yet when to break compatibility with RFC4627 by default (and potentially leave applications insecure) and change the default to follow RFC7159, but application authors are well advised to call "->allow_nonref(0)" even if this is the current default, if they cannot handle non-reference values, in preparation for the day when the default will change. (I-)THREADS This module is *not* guaranteed to be ithread (or MULTIPLICITY-) safe and there are no plans to change this. Note that perl's builtin so-called theeads/ithreads are officially deprecated and should not be used. THE PERILS OF SETLOCALE Sometimes people avoid the Perl locale support and directly call the system's setlocale function with "LC_ALL". This breaks both perl and modules such as JSON::XS, as stringification of numbers no longer works correctly (e.g. "$x = 0.1; print "$x"+1" might print 1, and JSON::XS might output illegal JSON as JSON::XS relies on perl to stringify numbers). The solution is simple: don't call "setlocale", or use it for only those categories you need, such as "LC_MESSAGES" or "LC_CTYPE". If you need "LC_NUMERIC", you should enable it only around the code that actually needs it (avoiding stringification of numbers), and restore it afterwards. BUGS While the goal of this module is to be correct, that unfortunately does not mean it's bug-free, only that I think its design is bug-free. If you keep reporting bugs they will be fixed swiftly, though. Please refrain from using rt.cpan.org or any other bug reporting service. I put the contact address into my modules for a reason. SEE ALSO The json_xs command line utility for quick experiments. AUTHOR Marc Lehmann http://home.schmorp.de/ usr/share/authselect/default/winbind/README000064400000005666152537427550014612 0ustar00Enable winbind for system authentication ======================================== Selecting this profile will enable Samba's winbind as the source of identity and authentication providers. The Samba standard Windows interoperability suite of utilities allows Linux systems to join an Active Directory environment by making them appear to be Windows clients. As a means of systems integration, Samba allows a Linux client to join an Active Directory Kerberos realm and to use Active Directory as its identity store. Winbind is a component of the Samba suite to provide unified logon. It uses a UNIX implementation of Microsoft RPC calls, Pluggable Authentication Modules (PAMs), and the Name Service Switch (NSS) to allow Windows domain users to appear and operate as UNIX users on a UNIX system. WINBIND CONFIGURATION --------------------- Authselect does not touch winbind's configuration. Please, read winbind's documentation to see how to configure it manually. Only local users will be available on the system if there is no existing winbind configuration. AVAILABLE OPTIONAL FEATURES --------------------------- with-faillock:: Enable account locking in case of too many consecutive authentication failures. with-mkhomedir:: Enable automatic creation of home directories for users on their first login. with-fingerprint:: Enable authentication with fingerprint reader through *pam_fprintd*. with-pam-gnome-keyring:: Enable pam-gnome-keyring support. with-pam-u2f:: Enable authentication via u2f dongle through *pam_u2f*. with-pam-u2f-2fa:: Enable 2nd factor authentication via u2f dongle through *pam_u2f*. without-pam-u2f-nouserok:: Module argument nouserok is omitted if also with-pam-u2f-2fa is used. *WARNING*: Omitting nouserok argument means that users without pam-u2f authentication configured will not be able to log in *INCLUDING* root. Make sure you are able to log in before losing root privileges. with-krb5:: Enable Kerberos authentication with *pam_winbind*. with-silent-lastlog:: Do not produce pam_lastlog message during login. with-pamaccess:: Check access.conf during account authorization. with-pwhistory:: Enable pam_pwhistory module for local users. without-nullok:: Do not add nullok parameter to pam_unix. DISABLE SPECIFIC NSSWITCH DATABASES ----------------------------------- Normally, nsswitch databases set by the profile overwrites values set in user-nsswitch.conf. The following options can force authselect to ignore value set by the profile and use the one set in user-nsswitch.conf instead. with-custom-passwd:: Ignore "passwd" database set by the profile. with-custom-group:: Ignore "group" database set by the profile. EXAMPLES -------- * Enable winbind with no additional modules authselect select winbind * Enable winbind and create home directories for users on their first login authselect select winbind with-mkhomedir SEE ALSO -------- * man winbindd(8) usr/share/doc/pcre2-devel/README000064400000121767152537522540012244 0ustar00README file for PCRE2 (Perl-compatible regular expression library) ------------------------------------------------------------------ PCRE2 is a re-working of the original PCRE library to provide an entirely new API. The latest release of PCRE2 is always available in three alternative formats from: ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre2-xxx.tar.gz ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre2-xxx.tar.bz2 ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre2-xxx.zip There is a mailing list for discussion about the development of PCRE (both the original and new APIs) at pcre-dev@exim.org. You can access the archives and subscribe or manage your subscription here: https://lists.exim.org/mailman/listinfo/pcre-dev Please read the NEWS file if you are upgrading from a previous release. The contents of this README file are: The PCRE2 APIs Documentation for PCRE2 Contributions by users of PCRE2 Building PCRE2 on non-Unix-like systems Building PCRE2 without using autotools Building PCRE2 using autotools Retrieving configuration information Shared libraries Cross-compiling using autotools Making new tarballs Testing PCRE2 Character tables File manifest The PCRE2 APIs -------------- PCRE2 is written in C, and it has its own API. There are three sets of functions, one for the 8-bit library, which processes strings of bytes, one for the 16-bit library, which processes strings of 16-bit values, and one for the 32-bit library, which processes strings of 32-bit values. There are no C++ wrappers. The distribution does contain a set of C wrapper functions for the 8-bit library that are based on the POSIX regular expression API (see the pcre2posix man page). These can be found in a library called libpcre2-posix. Note that this just provides a POSIX calling interface to PCRE2; the regular expressions themselves still follow Perl syntax and semantics. The POSIX API is restricted, and does not give full access to all of PCRE2's facilities. The header file for the POSIX-style functions is called pcre2posix.h. The official POSIX name is regex.h, but I did not want to risk possible problems with existing files of that name by distributing it that way. To use PCRE2 with an existing program that uses the POSIX API, pcre2posix.h will have to be renamed or pointed at by a link. If you are using the POSIX interface to PCRE2 and there is already a POSIX regex library installed on your system, as well as worrying about the regex.h header file (as mentioned above), you must also take care when linking programs to ensure that they link with PCRE2's libpcre2-posix library. Otherwise they may pick up the POSIX functions of the same name from the other library. One way of avoiding this confusion is to compile PCRE2 with the addition of -Dregcomp=PCRE2regcomp (and similarly for the other POSIX functions) to the compiler flags (CFLAGS if you are using "configure" -- see below). This has the effect of renaming the functions so that the names no longer clash. Of course, you have to do the same thing for your applications, or write them using the new names. Documentation for PCRE2 ----------------------- If you install PCRE2 in the normal way on a Unix-like system, you will end up with a set of man pages whose names all start with "pcre2". The one that is just called "pcre2" lists all the others. In addition to these man pages, the PCRE2 documentation is supplied in two other forms: 1. There are files called doc/pcre2.txt, doc/pcre2grep.txt, and doc/pcre2test.txt in the source distribution. The first of these is a concatenation of the text forms of all the section 3 man pages except the listing of pcre2demo.c and those that summarize individual functions. The other two are the text forms of the section 1 man pages for the pcre2grep and pcre2test commands. These text forms are provided for ease of scanning with text editors or similar tools. They are installed in /share/doc/pcre2, where is the installation prefix (defaulting to /usr/local). 2. A set of files containing all the documentation in HTML form, hyperlinked in various ways, and rooted in a file called index.html, is distributed in doc/html and installed in /share/doc/pcre2/html. Building PCRE2 on non-Unix-like systems --------------------------------------- For a non-Unix-like system, please read the file NON-AUTOTOOLS-BUILD, though if your system supports the use of "configure" and "make" you may be able to build PCRE2 using autotools in the same way as for many Unix-like systems. PCRE2 can also be configured using CMake, which can be run in various ways (command line, GUI, etc). This creates Makefiles, solution files, etc. The file NON-AUTOTOOLS-BUILD has information about CMake. PCRE2 has been compiled on many different operating systems. It should be straightforward to build PCRE2 on any system that has a Standard C compiler and library, because it uses only Standard C functions. Building PCRE2 without using autotools -------------------------------------- The use of autotools (in particular, libtool) is problematic in some environments, even some that are Unix or Unix-like. See the NON-AUTOTOOLS-BUILD file for ways of building PCRE2 without using autotools. Building PCRE2 using autotools ------------------------------ The following instructions assume the use of the widely used "configure; make; make install" (autotools) process. To build PCRE2 on system that supports autotools, first run the "configure" command from the PCRE2 distribution directory, with your current directory set to the directory where you want the files to be created. This command is a standard GNU "autoconf" configuration script, for which generic instructions are supplied in the file INSTALL. Most commonly, people build PCRE2 within its own distribution directory, and in this case, on many systems, just running "./configure" is sufficient. However, the usual methods of changing standard defaults are available. For example: CFLAGS='-O2 -Wall' ./configure --prefix=/opt/local This command specifies that the C compiler should be run with the flags '-O2 -Wall' instead of the default, and that "make install" should install PCRE2 under /opt/local instead of the default /usr/local. If you want to build in a different directory, just run "configure" with that directory as current. For example, suppose you have unpacked the PCRE2 source into /source/pcre2/pcre2-xxx, but you want to build it in /build/pcre2/pcre2-xxx: cd /build/pcre2/pcre2-xxx /source/pcre2/pcre2-xxx/configure PCRE2 is written in C and is normally compiled as a C library. However, it is possible to build it as a C++ library, though the provided building apparatus does not have any features to support this. There are some optional features that can be included or omitted from the PCRE2 library. They are also documented in the pcre2build man page. . By default, both shared and static libraries are built. You can change this by adding one of these options to the "configure" command: --disable-shared --disable-static (See also "Shared libraries on Unix-like systems" below.) . By default, only the 8-bit library is built. If you add --enable-pcre2-16 to the "configure" command, the 16-bit library is also built. If you add --enable-pcre2-32 to the "configure" command, the 32-bit library is also built. If you want only the 16-bit or 32-bit library, use --disable-pcre2-8 to disable building the 8-bit library. . If you want to include support for just-in-time (JIT) compiling, which can give large performance improvements on certain platforms, add --enable-jit to the "configure" command. This support is available only for certain hardware architectures. If you try to enable it on an unsupported architecture, there will be a compile time error. If in doubt, use --enable-jit=auto, which enables JIT only if the current hardware is supported. . If you are enabling JIT under SELinux you may also want to add --enable-jit-sealloc, which enables the use of an execmem allocator in JIT that is compatible with SELinux. This has no effect if JIT is not enabled. . If you do not want to make use of the default support for UTF-8 Unicode character strings in the 8-bit library, UTF-16 Unicode character strings in the 16-bit library, or UTF-32 Unicode character strings in the 32-bit library, you can add --disable-unicode to the "configure" command. This reduces the size of the libraries. It is not possible to configure one library with Unicode support, and another without, in the same configuration. It is also not possible to use --enable-ebcdic (see below) with Unicode support, so if this option is set, you must also use --disable-unicode. When Unicode support is available, the use of a UTF encoding still has to be enabled by setting the PCRE2_UTF option at run time or starting a pattern with (*UTF). When PCRE2 is compiled with Unicode support, its input can only either be ASCII or UTF-8/16/32, even when running on EBCDIC platforms. As well as supporting UTF strings, Unicode support includes support for the \P, \p, and \X sequences that recognize Unicode character properties. However, only the basic two-letter properties such as Lu are supported. Escape sequences such as \d and \w in patterns do not by default make use of Unicode properties, but can be made to do so by setting the PCRE2_UCP option or starting a pattern with (*UCP). . You can build PCRE2 to recognize either CR or LF or the sequence CRLF, or any of the preceding, or any of the Unicode newline sequences, or the NUL (zero) character as indicating the end of a line. Whatever you specify at build time is the default; the caller of PCRE2 can change the selection at run time. The default newline indicator is a single LF character (the Unix standard). You can specify the default newline indicator by adding --enable-newline-is-cr, --enable-newline-is-lf, --enable-newline-is-crlf, --enable-newline-is-anycrlf, --enable-newline-is-any, or --enable-newline-is-nul to the "configure" command, respectively. . By default, the sequence \R in a pattern matches any Unicode line ending sequence. This is independent of the option specifying what PCRE2 considers to be the end of a line (see above). However, the caller of PCRE2 can restrict \R to match only CR, LF, or CRLF. You can make this the default by adding --enable-bsr-anycrlf to the "configure" command (bsr = "backslash R"). . In a pattern, the escape sequence \C matches a single code unit, even in a UTF mode. This can be dangerous because it breaks up multi-code-unit characters. You can build PCRE2 with the use of \C permanently locked out by adding --enable-never-backslash-C (note the upper case C) to the "configure" command. When \C is allowed by the library, individual applications can lock it out by calling pcre2_compile() with the PCRE2_NEVER_BACKSLASH_C option. . PCRE2 has a counter that limits the depth of nesting of parentheses in a pattern. This limits the amount of system stack that a pattern uses when it is compiled. The default is 250, but you can change it by setting, for example, --with-parens-nest-limit=500 . PCRE2 has a counter that can be set to limit the amount of computing resource it uses when matching a pattern. If the limit is exceeded during a match, the match fails. The default is ten million. You can change the default by setting, for example, --with-match-limit=500000 on the "configure" command. This is just the default; individual calls to pcre2_match() or pcre2_dfa_match() can supply their own value. There is more discussion in the pcre2api man page (search for pcre2_set_match_limit). . There is a separate counter that limits the depth of nested backtracking (pcre2_match()) or nested function calls (pcre2_dfa_match()) during a matching process, which indirectly limits the amount of heap memory that is used, and in the case of pcre2_dfa_match() the amount of stack as well. This counter also has a default of ten million, which is essentially "unlimited". You can change the default by setting, for example, --with-match-limit-depth=5000 There is more discussion in the pcre2api man page (search for pcre2_set_depth_limit). . You can also set an explicit limit on the amount of heap memory used by the pcre2_match() and pcre2_dfa_match() interpreters: --with-heap-limit=500 The units are kibibytes (units of 1024 bytes). This limit does not apply when the JIT optimization (which has its own memory control features) is used. There is more discussion on the pcre2api man page (search for pcre2_set_heap_limit). . In the 8-bit library, the default maximum compiled pattern size is around 64 kibibytes. You can increase this by adding --with-link-size=3 to the "configure" command. PCRE2 then uses three bytes instead of two for offsets to different parts of the compiled pattern. In the 16-bit library, --with-link-size=3 is the same as --with-link-size=4, which (in both libraries) uses four-byte offsets. Increasing the internal link size reduces performance in the 8-bit and 16-bit libraries. In the 32-bit library, the link size setting is ignored, as 4-byte offsets are always used. . For speed, PCRE2 uses four tables for manipulating and identifying characters whose code point values are less than 256. By default, it uses a set of tables for ASCII encoding that is part of the distribution. If you specify --enable-rebuild-chartables a program called dftables is compiled and run in the default C locale when you obey "make". It builds a source file called pcre2_chartables.c. If you do not specify this option, pcre2_chartables.c is created as a copy of pcre2_chartables.c.dist. See "Character tables" below for further information. . It is possible to compile PCRE2 for use on systems that use EBCDIC as their character code (as opposed to ASCII/Unicode) by specifying --enable-ebcdic --disable-unicode This automatically implies --enable-rebuild-chartables (see above). However, when PCRE2 is built this way, it always operates in EBCDIC. It cannot support both EBCDIC and UTF-8/16/32. There is a second option, --enable-ebcdic-nl25, which specifies that the code value for the EBCDIC NL character is 0x25 instead of the default 0x15. . If you specify --enable-debug, additional debugging code is included in the build. This option is intended for use by the PCRE2 maintainers. . In environments where valgrind is installed, if you specify --enable-valgrind PCRE2 will use valgrind annotations to mark certain memory regions as unaddressable. This allows it to detect invalid memory accesses, and is mostly useful for debugging PCRE2 itself. . In environments where the gcc compiler is used and lcov version 1.6 or above is installed, if you specify --enable-coverage the build process implements a code coverage report for the test suite. The report is generated by running "make coverage". If ccache is installed on your system, it must be disabled when building PCRE2 for coverage reporting. You can do this by setting the environment variable CCACHE_DISABLE=1 before running "make" to build PCRE2. There is more information about coverage reporting in the "pcre2build" documentation. . When JIT support is enabled, pcre2grep automatically makes use of it, unless you add --disable-pcre2grep-jit to the "configure" command. . There is support for calling external programs during matching in the pcre2grep command, using PCRE2's callout facility with string arguments. This support can be disabled by adding --disable-pcre2grep-callout to the "configure" command. . The pcre2grep program currently supports only 8-bit data files, and so requires the 8-bit PCRE2 library. It is possible to compile pcre2grep to use libz and/or libbz2, in order to read .gz and .bz2 files (respectively), by specifying one or both of --enable-pcre2grep-libz --enable-pcre2grep-libbz2 Of course, the relevant libraries must be installed on your system. . The default starting size (in bytes) of the internal buffer used by pcre2grep can be set by, for example: --with-pcre2grep-bufsize=51200 The value must be a plain integer. The default is 20480. The amount of memory used by pcre2grep is actually three times this number, to allow for "before" and "after" lines. If very long lines are encountered, the buffer is automatically enlarged, up to a fixed maximum size. . The default maximum size of pcre2grep's internal buffer can be set by, for example: --with-pcre2grep-max-bufsize=2097152 The default is either 1048576 or the value of --with-pcre2grep-bufsize, whichever is the larger. . It is possible to compile pcre2test so that it links with the libreadline or libedit libraries, by specifying, respectively, --enable-pcre2test-libreadline or --enable-pcre2test-libedit If this is done, when pcre2test's input is from a terminal, it reads it using the readline() function. This provides line-editing and history facilities. Note that libreadline is GPL-licenced, so if you distribute a binary of pcre2test linked in this way, there may be licensing issues. These can be avoided by linking with libedit (which has a BSD licence) instead. Enabling libreadline causes the -lreadline option to be added to the pcre2test build. In many operating environments with a sytem-installed readline library this is sufficient. However, in some environments (e.g. if an unmodified distribution version of readline is in use), it may be necessary to specify something like LIBS="-lncurses" as well. This is because, to quote the readline INSTALL, "Readline uses the termcap functions, but does not link with the termcap or curses library itself, allowing applications which link with readline the to choose an appropriate library." If you get error messages about missing functions tgetstr, tgetent, tputs, tgetflag, or tgoto, this is the problem, and linking with the ncurses library should fix it. . There is a special option called --enable-fuzz-support for use by people who want to run fuzzing tests on PCRE2. At present this applies only to the 8-bit library. If set, it causes an extra library called libpcre2-fuzzsupport.a to be built, but not installed. This contains a single function called LLVMFuzzerTestOneInput() whose arguments are a pointer to a string and the length of the string. When called, this function tries to compile the string as a pattern, and if that succeeds, to match it. This is done both with no options and with some random options bits that are generated from the string. Setting --enable-fuzz-support also causes a binary called pcre2fuzzcheck to be created. This is normally run under valgrind or used when PCRE2 is compiled with address sanitizing enabled. It calls the fuzzing function and outputs information about it is doing. The input strings are specified by arguments: if an argument starts with "=" the rest of it is a literal input string. Otherwise, it is assumed to be a file name, and the contents of the file are the test string. . Releases before 10.30 could be compiled with --disable-stack-for-recursion, which caused pcre2_match() to use individual blocks on the heap for backtracking instead of recursive function calls (which use the stack). This is now obsolete since pcre2_match() was refactored always to use the heap (in a much more efficient way than before). This option is retained for backwards compatibility, but has no effect other than to output a warning. The "configure" script builds the following files for the basic C library: . Makefile the makefile that builds the library . src/config.h build-time configuration options for the library . src/pcre2.h the public PCRE2 header file . pcre2-config script that shows the building settings such as CFLAGS that were set for "configure" . libpcre2-8.pc ) . libpcre2-16.pc ) data for the pkg-config command . libpcre2-32.pc ) . libpcre2-posix.pc ) . libtool script that builds shared and/or static libraries Versions of config.h and pcre2.h are distributed in the src directory of PCRE2 tarballs under the names config.h.generic and pcre2.h.generic. These are provided for those who have to build PCRE2 without using "configure" or CMake. If you use "configure" or CMake, the .generic versions are not used. The "configure" script also creates config.status, which is an executable script that can be run to recreate the configuration, and config.log, which contains compiler output from tests that "configure" runs. Once "configure" has run, you can run "make". This builds whichever of the libraries libpcre2-8, libpcre2-16 and libpcre2-32 are configured, and a test program called pcre2test. If you enabled JIT support with --enable-jit, another test program called pcre2_jit_test is built as well. If the 8-bit library is built, libpcre2-posix and the pcre2grep command are also built. Running "make" with the -j option may speed up compilation on multiprocessor systems. The command "make check" runs all the appropriate tests. Details of the PCRE2 tests are given below in a separate section of this document. The -j option of "make" can also be used when running the tests. You can use "make install" to install PCRE2 into live directories on your system. The following are installed (file names are all relative to the that is set when "configure" is run): Commands (bin): pcre2test pcre2grep (if 8-bit support is enabled) pcre2-config Libraries (lib): libpcre2-8 (if 8-bit support is enabled) libpcre2-16 (if 16-bit support is enabled) libpcre2-32 (if 32-bit support is enabled) libpcre2-posix (if 8-bit support is enabled) Configuration information (lib/pkgconfig): libpcre2-8.pc libpcre2-16.pc libpcre2-32.pc libpcre2-posix.pc Header files (include): pcre2.h pcre2posix.h Man pages (share/man/man{1,3}): pcre2grep.1 pcre2test.1 pcre2-config.1 pcre2.3 pcre2*.3 (lots more pages, all starting "pcre2") HTML documentation (share/doc/pcre2/html): index.html *.html (lots more pages, hyperlinked from index.html) Text file documentation (share/doc/pcre2): AUTHORS COPYING ChangeLog LICENCE NEWS README pcre2.txt (a concatenation of the man(3) pages) pcre2test.txt the pcre2test man page pcre2grep.txt the pcre2grep man page pcre2-config.txt the pcre2-config man page If you want to remove PCRE2 from your system, you can run "make uninstall". This removes all the files that "make install" installed. However, it does not remove any directories, because these are often shared with other programs. Retrieving configuration information ------------------------------------ Running "make install" installs the command pcre2-config, which can be used to recall information about the PCRE2 configuration and installation. For example: pcre2-config --version prints the version number, and pcre2-config --libs8 outputs information about where the 8-bit library is installed. This command can be included in makefiles for programs that use PCRE2, saving the programmer from having to remember too many details. Run pcre2-config with no arguments to obtain a list of possible arguments. The pkg-config command is another system for saving and retrieving information about installed libraries. Instead of separate commands for each library, a single command is used. For example: pkg-config --libs libpcre2-16 The data is held in *.pc files that are installed in a directory called /lib/pkgconfig. Shared libraries ---------------- The default distribution builds PCRE2 as shared libraries and static libraries, as long as the operating system supports shared libraries. Shared library support relies on the "libtool" script which is built as part of the "configure" process. The libtool script is used to compile and link both shared and static libraries. They are placed in a subdirectory called .libs when they are newly built. The programs pcre2test and pcre2grep are built to use these uninstalled libraries (by means of wrapper scripts in the case of shared libraries). When you use "make install" to install shared libraries, pcre2grep and pcre2test are automatically re-built to use the newly installed shared libraries before being installed themselves. However, the versions left in the build directory still use the uninstalled libraries. To build PCRE2 using static libraries only you must use --disable-shared when configuring it. For example: ./configure --prefix=/usr/gnu --disable-shared Then run "make" in the usual way. Similarly, you can use --disable-static to build only shared libraries. Cross-compiling using autotools ------------------------------- You can specify CC and CFLAGS in the normal way to the "configure" command, in order to cross-compile PCRE2 for some other host. However, you should NOT specify --enable-rebuild-chartables, because if you do, the dftables.c source file is compiled and run on the local host, in order to generate the inbuilt character tables (the pcre2_chartables.c file). This will probably not work, because dftables.c needs to be compiled with the local compiler, not the cross compiler. When --enable-rebuild-chartables is not specified, pcre2_chartables.c is created by making a copy of pcre2_chartables.c.dist, which is a default set of tables that assumes ASCII code. Cross-compiling with the default tables should not be a problem. If you need to modify the character tables when cross-compiling, you should move pcre2_chartables.c.dist out of the way, then compile dftables.c by hand and run it on the local host to make a new version of pcre2_chartables.c.dist. Then when you cross-compile PCRE2 this new version of the tables will be used. Making new tarballs ------------------- The command "make dist" creates three PCRE2 tarballs, in tar.gz, tar.bz2, and zip formats. The command "make distcheck" does the same, but then does a trial build of the new distribution to ensure that it works. If you have modified any of the man page sources in the doc directory, you should first run the PrepareRelease script before making a distribution. This script creates the .txt and HTML forms of the documentation from the man pages. Testing PCRE2 ------------- To test the basic PCRE2 library on a Unix-like system, run the RunTest script. There is another script called RunGrepTest that tests the pcre2grep command. When JIT support is enabled, a third test program called pcre2_jit_test is built. Both the scripts and all the program tests are run if you obey "make check". For other environments, see the instructions in NON-AUTOTOOLS-BUILD. The RunTest script runs the pcre2test test program (which is documented in its own man page) on each of the relevant testinput files in the testdata directory, and compares the output with the contents of the corresponding testoutput files. RunTest uses a file called testtry to hold the main output from pcre2test. Other files whose names begin with "test" are used as working files in some tests. Some tests are relevant only when certain build-time options were selected. For example, the tests for UTF-8/16/32 features are run only when Unicode support is available. RunTest outputs a comment when it skips a test. Many (but not all) of the tests that are not skipped are run twice if JIT support is available. On the second run, JIT compilation is forced. This testing can be suppressed by putting "nojit" on the RunTest command line. The entire set of tests is run once for each of the 8-bit, 16-bit and 32-bit libraries that are enabled. If you want to run just one set of tests, call RunTest with either the -8, -16 or -32 option. If valgrind is installed, you can run the tests under it by putting "valgrind" on the RunTest command line. To run pcre2test on just one or more specific test files, give their numbers as arguments to RunTest, for example: RunTest 2 7 11 You can also specify ranges of tests such as 3-6 or 3- (meaning 3 to the end), or a number preceded by ~ to exclude a test. For example: Runtest 3-15 ~10 This runs tests 3 to 15, excluding test 10, and just ~13 runs all the tests except test 13. Whatever order the arguments are in, the tests are always run in numerical order. You can also call RunTest with the single argument "list" to cause it to output a list of tests. The test sequence starts with "test 0", which is a special test that has no input file, and whose output is not checked. This is because it will be different on different hardware and with different configurations. The test exists in order to exercise some of pcre2test's code that would not otherwise be run. Tests 1 and 2 can always be run, as they expect only plain text strings (not UTF) and make no use of Unicode properties. The first test file can be fed directly into the perltest.sh script to check that Perl gives the same results. The only difference you should see is in the first few lines, where the Perl version is given instead of the PCRE2 version. The second set of tests check auxiliary functions, error detection, and run-time flags that are specific to PCRE2. It also uses the debugging flags to check some of the internals of pcre2_compile(). If you build PCRE2 with a locale setting that is not the standard C locale, the character tables may be different (see next paragraph). In some cases, this may cause failures in the second set of tests. For example, in a locale where the isprint() function yields TRUE for characters in the range 128-255, the use of [:isascii:] inside a character class defines a different set of characters, and this shows up in this test as a difference in the compiled code, which is being listed for checking. For example, where the comparison test output contains [\x00-\x7f] the test might contain [\x00-\xff], and similarly in some other cases. This is not a bug in PCRE2. Test 3 checks pcre2_maketables(), the facility for building a set of character tables for a specific locale and using them instead of the default tables. The script uses the "locale" command to check for the availability of the "fr_FR", "french", or "fr" locale, and uses the first one that it finds. If the "locale" command fails, or if its output doesn't include "fr_FR", "french", or "fr" in the list of available locales, the third test cannot be run, and a comment is output to say why. If running this test produces an error like this: ** Failed to set locale "fr_FR" it means that the given locale is not available on your system, despite being listed by "locale". This does not mean that PCRE2 is broken. There are three alternative output files for the third test, because three different versions of the French locale have been encountered. The test passes if its output matches any one of them. Tests 4 and 5 check UTF and Unicode property support, test 4 being compatible with the perltest.sh script, and test 5 checking PCRE2-specific things. Tests 6 and 7 check the pcre2_dfa_match() alternative matching function, in non-UTF mode and UTF-mode with Unicode property support, respectively. Test 8 checks some internal offsets and code size features, but it is run only when Unicode support is enabled. The output is different in 8-bit, 16-bit, and 32-bit modes and for different link sizes, so there are different output files for each mode and link size. Tests 9 and 10 are run only in 8-bit mode, and tests 11 and 12 are run only in 16-bit and 32-bit modes. These are tests that generate different output in 8-bit mode. Each pair are for general cases and Unicode support, respectively. Test 13 checks the handling of non-UTF characters greater than 255 by pcre2_dfa_match() in 16-bit and 32-bit modes. Test 14 contains some special UTF and UCP tests that give different output for different code unit widths. Test 15 contains a number of tests that must not be run with JIT. They check, among other non-JIT things, the match-limiting features of the intepretive matcher. Test 16 is run only when JIT support is not available. It checks that an attempt to use JIT has the expected behaviour. Test 17 is run only when JIT support is available. It checks JIT complete and partial modes, match-limiting under JIT, and other JIT-specific features. Tests 18 and 19 are run only in 8-bit mode. They check the POSIX interface to the 8-bit library, without and with Unicode support, respectively. Test 20 checks the serialization functions by writing a set of compiled patterns to a file, and then reloading and checking them. Tests 21 and 22 test \C support when the use of \C is not locked out, without and with UTF support, respectively. Test 23 tests \C when it is locked out. Tests 24 and 25 test the experimental pattern conversion functions, without and with UTF support, respectively. Character tables ---------------- For speed, PCRE2 uses four tables for manipulating and identifying characters whose code point values are less than 256. By default, a set of tables that is built into the library is used. The pcre2_maketables() function can be called by an application to create a new set of tables in the current locale. This are passed to PCRE2 by calling pcre2_set_character_tables() to put a pointer into a compile context. The source file called pcre2_chartables.c contains the default set of tables. By default, this is created as a copy of pcre2_chartables.c.dist, which contains tables for ASCII coding. However, if --enable-rebuild-chartables is specified for ./configure, a different version of pcre2_chartables.c is built by the program dftables (compiled from dftables.c), which uses the ANSI C character handling functions such as isalnum(), isalpha(), isupper(), islower(), etc. to build the table sources. This means that the default C locale that is set for your system will control the contents of these default tables. You can change the default tables by editing pcre2_chartables.c and then re-building PCRE2. If you do this, you should take care to ensure that the file does not get automatically re-generated. The best way to do this is to move pcre2_chartables.c.dist out of the way and replace it with your customized tables. When the dftables program is run as a result of --enable-rebuild-chartables, it uses the default C locale that is set on your system. It does not pay attention to the LC_xxx environment variables. In other words, it uses the system's default locale rather than whatever the compiling user happens to have set. If you really do want to build a source set of character tables in a locale that is specified by the LC_xxx variables, you can run the dftables program by hand with the -L option. For example: ./dftables -L pcre2_chartables.c.special The first two 256-byte tables provide lower casing and case flipping functions, respectively. The next table consists of three 32-byte bit maps which identify digits, "word" characters, and white space, respectively. These are used when building 32-byte bit maps that represent character classes for code points less than 256. The final 256-byte table has bits indicating various character types, as follows: 1 white space character 2 letter 4 decimal digit 8 hexadecimal digit 16 alphanumeric or '_' 128 regular expression metacharacter or binary zero You should not alter the set of characters that contain the 128 bit, as that will cause PCRE2 to malfunction. File manifest ------------- The distribution should contain the files listed below. (A) Source files for the PCRE2 library functions and their headers are found in the src directory: src/dftables.c auxiliary program for building pcre2_chartables.c when --enable-rebuild-chartables is specified src/pcre2_chartables.c.dist a default set of character tables that assume ASCII coding; unless --enable-rebuild-chartables is specified, used by copying to pcre2_chartables.c src/pcre2posix.c ) src/pcre2_auto_possess.c ) src/pcre2_compile.c ) src/pcre2_config.c ) src/pcre2_context.c ) src/pcre2_convert.c ) src/pcre2_dfa_match.c ) src/pcre2_error.c ) src/pcre2_extuni.c ) src/pcre2_find_bracket.c ) src/pcre2_jit_compile.c ) src/pcre2_jit_match.c ) sources for the functions in the library, src/pcre2_jit_misc.c ) and some internal functions that they use src/pcre2_maketables.c ) src/pcre2_match.c ) src/pcre2_match_data.c ) src/pcre2_newline.c ) src/pcre2_ord2utf.c ) src/pcre2_pattern_info.c ) src/pcre2_serialize.c ) src/pcre2_string_utils.c ) src/pcre2_study.c ) src/pcre2_substitute.c ) src/pcre2_substring.c ) src/pcre2_tables.c ) src/pcre2_ucd.c ) src/pcre2_valid_utf.c ) src/pcre2_xclass.c ) src/pcre2_printint.c debugging function that is used by pcre2test, src/pcre2_fuzzsupport.c function for (optional) fuzzing support src/config.h.in template for config.h, when built by "configure" src/pcre2.h.in template for pcre2.h when built by "configure" src/pcre2posix.h header for the external POSIX wrapper API src/pcre2_internal.h header for internal use src/pcre2_intmodedep.h a mode-specific internal header src/pcre2_ucp.h header for Unicode property handling sljit/* source files for the JIT compiler (B) Source files for programs that use PCRE2: src/pcre2demo.c simple demonstration of coding calls to PCRE2 src/pcre2grep.c source of a grep utility that uses PCRE2 src/pcre2test.c comprehensive test program src/pcre2_jit_test.c JIT test program (C) Auxiliary files: 132html script to turn "man" pages into HTML AUTHORS information about the author of PCRE2 ChangeLog log of changes to the code CleanTxt script to clean nroff output for txt man pages Detrail script to remove trailing spaces HACKING some notes about the internals of PCRE2 INSTALL generic installation instructions LICENCE conditions for the use of PCRE2 COPYING the same, using GNU's standard name Makefile.in ) template for Unix Makefile, which is built by ) "configure" Makefile.am ) the automake input that was used to create ) Makefile.in NEWS important changes in this release NON-AUTOTOOLS-BUILD notes on building PCRE2 without using autotools PrepareRelease script to make preparations for "make dist" README this file RunTest a Unix shell script for running tests RunGrepTest a Unix shell script for pcre2grep tests aclocal.m4 m4 macros (generated by "aclocal") config.guess ) files used by libtool, config.sub ) used only when building a shared library configure a configuring shell script (built by autoconf) configure.ac ) the autoconf input that was used to build ) "configure" and config.h depcomp ) script to find program dependencies, generated by ) automake doc/*.3 man page sources for PCRE2 doc/*.1 man page sources for pcre2grep and pcre2test doc/index.html.src the base HTML page doc/html/* HTML documentation doc/pcre2.txt plain text version of the man pages doc/pcre2test.txt plain text documentation of test program install-sh a shell script for installing files libpcre2-8.pc.in template for libpcre2-8.pc for pkg-config libpcre2-16.pc.in template for libpcre2-16.pc for pkg-config libpcre2-32.pc.in template for libpcre2-32.pc for pkg-config libpcre2-posix.pc.in template for libpcre2-posix.pc for pkg-config ltmain.sh file used to build a libtool script missing ) common stub for a few missing GNU programs while ) installing, generated by automake mkinstalldirs script for making install directories perltest.sh Script for running a Perl test program pcre2-config.in source of script which retains PCRE2 information testdata/testinput* test data for main library tests testdata/testoutput* expected test results testdata/grep* input and output for pcre2grep tests testdata/* other supporting test files (D) Auxiliary files for cmake support cmake/COPYING-CMAKE-SCRIPTS cmake/FindPackageHandleStandardArgs.cmake cmake/FindEditline.cmake cmake/FindReadline.cmake CMakeLists.txt config-cmake.h.in (E) Auxiliary files for building PCRE2 "by hand" src/pcre2.h.generic ) a version of the public PCRE2 header file ) for use in non-"configure" environments src/config.h.generic ) a version of config.h for use in non-"configure" ) environments Philip Hazel Email local part: ph10 Email domain: cam.ac.uk Last updated: 17 June 2018 usr/share/doc/libidn/README000064400000002266152537526610011367 0ustar00Libidn README -- Important introductory notes. Copyright (C) 2002-2016 Simon Josefsson See the end for copying conditions. Libidn is a package for internationalized string handling based on the Stringprep, Punycode, IDNA and TLD specifications. Libidn is a GNU project. See the file COPYING for licensing information. Read INSTALL for installation instructions, and doc/libidn.* for the manual in various formats (including Info, HTML, PostScript, and PDF). Libidn will not be stable without your help. Report bugs, proof read the manual, or make a monetary donation. If you need help to use Libidn, or wish to help others, you are invited to join our mailing list help-libidn@gnu.org, see . For more information, see . For any copyright year range specified as YYYY-ZZZZ in this package note that the range specifies every single year in that closed interval. ---------------------------------------------------------------------- Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. usr/share/doc/libbsd/README000064400000003435152537533010011354 0ustar00libbsd - Utility functions from BSD systems This library provides useful functions commonly found on BSD systems, and lacking on others like GNU systems, thus making it easier to port projects with strong BSD origins, without needing to embed the same code over and over again on each project. A BSD compatible message-digest library is required, on systems where this is not provided by its libc or libmd libraries, the canonical implementation to use is . Releases -------- Mailing List ------------ The subscription interface and web archives can be found at: The mail address is: libbsd@lists.freedesktop.org Source Repository ----------------- The primary repository can be browsed at: and cloned from: Building from git source ------------------------ To prepare the libbsd source tree from git before starting the build process some required software needs to be installed: GNU autoconf >= 2.67 GNU automake >= 1.9 GNU libtool >= 2.0 After installing the needed software, and running the following command on the git tree: $ ./autogen the source should be roughly equivalent to the distributed tar source. Building from tar source ------------------------ The minimum software required to configure and build dpkg from a tarball is: C89 compiler make The following software might be required depending on the system: libmd (whenever the libc does not provide the needed digest functions) The build process is done by running the usual «./configure; make». To see all available configuration options please run «./configure --help». usr/share/doc/fribidi/README000064400000014177152537535600011541 0ustar00# GNU FriBidi The Free Implementation of the [Unicode Bidirectional Algorithm]. ## Background One of the missing links stopping the penetration of free software in Middle East is the lack of support for the Arabic and Hebrew alphabets. In order to have proper Arabic and Hebrew support, the bidi algorithm needs to be implemented. It is our hope that this library will stimulate more free software in the Middle Eastern countries. See [`HISTORY`](./HISTORY) on how the project started and evolved. ## Audience It is our hope that this library will stimulate the implementation of Hebrew and Arabic support in lots of Free Software. GNU FriBidi is already being used in projects like Pango (resulting in [GTK+] and [GNOME] using GNU FriBidi), AbiWord, MLTerm, MPlayer, BiCon, and vlc. See [`USERS`](./USERS) for a list of projects using GNU FriBidi. ## Dependencies GNU FriBidi does not depend on any other library. It uses either the GNU Build System or meson for build and installation. ## Downloading The latest version of GNU FriBidi may be found at: ## Building Start with running the [`autogen.sh`](./autogen.sh) script and follow the instructions. Alternatively use `meson`. ## License GNU FriBidi is Free Software; you can redistribute it and/or modify it under the terms of the [GNU Lesser General Public License] as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. GNU FriBidi is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU FriBidi, in a file named COPYING; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ### Commercial licensing For commercial licensing options, contact . ## Implementation The library implements the algorithm described in the "Unicode Standard Annex \#9, The Bidirectional Algorithm", available at . The library uses Unicode (UTF-32) entirely. The character properties are automatically extracted from the Unicode data files, available from . This means that every Unicode character is treated in strict accordance with the Unicode specification. There is a limited support for character set conversion from/to the UTF-32 encoding. Data in these character sets must be converted into UTF-32 before the library may be used. iconv(3) can always do a better job on that, so you may find that the character sets conversion code is typically turned off on POSIX machines. ### Conformance Status GNU FriBidi has been tested exhaustively against the [Unicode Reference Code], and to the best of our knowledge, it completely conforms to the specification, always producing the same result as the Reference Code. ### API The simplest way of accessing the API is through the convenience function `fribibidi_log2vis` which has the following signature: ```c fribidi_boolean fribidi_log2vis( /* input */ FriBidiChar *str, FriBidiStrIndex len, FriBidiCharType *pbase_dir, /* output */ FriBidiChar *visual_str, FriBidiStrIndex *position_L_to_V_list, FriBidiStrIndex *position_V_to_L_list, FriBidiLevel *embedding_level_list ) ``` Where... * `str` is the Unicode input string. * `len` is the length of the Unicode string (`str`). * `pbase_dir` is the input and output base direction. If `pbase_dir == FRIBIDI_TYPE_ON` then `fribidi_log2vis()` calculates the base direction on its own, according to the bidi algorithm. * `visual_str` is the reordered output unicode string. * `position_L_to_V_list` maps the positions in the logical string to positions in the visual string. * `position_V_to_L_list` maps the positions in the visual string to the positions in the logical string. * `embedding_level_list` returns the classification of each character. Here, even numerical levels indicate LTR characters, and odd levels indicate RTL characters. The main use of this list is in interactive applications where, for example, the embedding level determines cursor display. If any of the output pointers is equal to `NULL`, then that information is not calculated. Note that a call to `fribidi_log2vis()` is a convenience function to calling the following three functions in order: 1. `fribidi_get_bidi_types()` 2. `fribidi_get_par_embedding_levels_ex()` 3. `fribidi_reorder_line()` ## How it looks like Have a look at [`test/`](./test) directory, to see some input and outputs. The `CapRTL` charset means that CAPITAL letters are right to left, and digits 6, 7, 8, 9 are Arabic digits, try 'fribidi --charsetdesc CapRTL' for the full description. ## Executable There is also a command-line utilitity called `fribidi` that loops over the text of a file and performs the bidi algorithm on each line, also used for testing the algorithm. Run `fribidi --help` to learn about usage. The command-line utility is known to have problems with line-breaking and logical-to-vertical/vertical-to-logical lists. ## Bug Reports and Feedback Report bugs and general feedback at: The mailing list is the place for additional technical discussions and user questions: ## Maintainers and Contributors * Dov Grobgeld - Original author and current maintainer * Behdad Esfahbod - Author of most of the code See also [`AUTHORS`](./AUTHORS) and [`THANKS`](./THANKS) for the complete list of contributors. [Unicode Bidirectional Algorithm]: https://www.unicode.org/reports/tr9/ [Unicode Reference Code]: https://www.unicode.org/reports/tr9/#Reference_Code [Mirroring]: https://www.unicode.org/reports/tr9/#Mirroring [GTK+]: https://www.gtk.org/ [GNOME]: https://www.gnome.org/ [GNU Lesser General Public License]: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html usr/lib/dracut/modules.d/10i18n/README000064400000010504152537563420013113 0ustar00dracut i18n module ------------------ INDEX 0. Introduction 1. Hostonly vs Generic 2. Configuration 2.1. Variables 2.2. Setting up mappings 2.3. Additional settings 3. Kernel parameters ~ 0. Introduction i18n module provides internationalization for initramfs at runtime. It is intended to be generic across different GNU/Linux distributions. i18n and keyboard settings are stored in different files among distributions. To deal with it avoiding hardcoding those differences in the installation script we handle it by mappings between variables used by dracut and the ones in the system. Package maintainer is expected to create those for his/her distribution and it's appreciated to share it with us, so we can include it in source package. 1. Hostonly vs Generic If you invoke dracut with '-H' option, i18n module install script will gather variables values from your configuration files using mappings provided in "/etc/dracut.conf.d/.conf". Those variables will be put in "etc/vconsole.conf" and "etc/locale.conf" files inside initramfs image. Next it will install only declared font, keymaps and so. When building generic image (dracut without '-H' option), install script copies all content of directories: consolefonts, consoletrans, unimaps and keymaps to image. Take into account that's about 4 MiB. 2. Configuration 2.1. Variables The following variables are used by i18n install script and at initramfs runtime: KEYMAP - keyboard translation table loaded by loadkeys KEYTABLE - base name for keyboard translation table; if UNICODE is true, Unicode version will be loaded. Overrides KEYMAP. EXT_KEYMAPS - list of extra keymaps to bo loaded (sep. by space) UNICODE - boolean, indicating UTF-8 mode FONT - console font FONT_MAP - see description of '-m' parameter in setfont manual FONT_UNIMAP - see description of '-u' parameter in setfont manual The following are appended to EXT_KEYMAPS only during build time: UNIKEYMAP GRP_TOGGLE They were used in 10redhat-i18n module, but not sure of its purpose. I'm leaving it in case... The following are taken from the environment: LANG LC_ALL If UNICODE variable is not provided, script indicates if UTF-8 should be used on the basis of LANG value (if it ends with ".utf8" or similar). 2.2. Setting up mappings Mappings between variables listed in 2.1. and the ones spread around your system are set up in /etc/dracut.conf.d/.conf. You need to assign mappings to i18n_vars. Here's an example: i18n_vars="/etc/conf.d/keymaps:KEYMAP,EXTENDED_KEYMAPS-EXT_KEYMAPS /etc/conf.d/consolefont:CONSOLEFONT-FONT,CONSOLETRANSLATION-FONT_MAP /etc/rc.conf:UNICODE" First we've got name of file in host file system tree. After colon there's mapping: -. If both variables have the same name you can enter just a single, but it's important to specify it! The module will source only variables you've listed. Below there's detailed description in BNF: ::= | " " ::= ":" ::= | "," ::= "-" | We assume no whitespace are allowed between symbols. is a file holding in your system. is a variable holding value of meaning the same as . is a variable which will be set up inside initramfs. If has the same name as we can omit . Example: /etc/conf.d/keymaps:KEYMAP,extended_keymaps-EXT_KEYMAPS = /etc/conf.d/keymaps:KEYMAP,extended_keymaps-EXT_KEYMAPS = /etc/conf.d/keymaps:KEYMAP,extended_keymaps-EXT_KEYMAPS = /etc/conf.d/keymaps = KEYMAP,extended_keymaps-EXT_KEYMAPS = KEYMAP = KEYMAP = extended_keymaps-EXT_KEYMAPS = extended_keymaps = EXT_KEYMAPS 2.3. Additional settings If you encounter following error message: "Directories consolefonts, consoletrans, keymaps, unimaps not found.", you can provide path where those directories lie in your system by setting kbddir in configuration file (the same where you put mappings). 3. Kernel parameters If you create generic initramfs you can set up i18n by kernel parameters using variables listed in 2.1. (except of UNIKEYMAP and GRP_TOGGLE) The recommended minimum is: FONT and KEYMAP. usr/share/doc/lua/README000064400000000227152537565210010701 0ustar00 This is Lua 5.3.4, released on 12 Jan 2017. For installation instructions, license details, and further information about Lua, see doc/readme.html. usr/share/doc/xml-common/README000064400000001513152537566170012213 0ustar00Eric Bischoff ebisch@cybercable.tm.fr January 12, 2001 Introduction ------------ The sgml-common package gathers very basic stuff necessary to work with SGML and XML. They currently contain: - xml.dcl: SGML declaration of XML - iso-entities: the basic SGML ISO entities - install-catalog: a script used to add entries to (or remove entries from) centralized catalogs. These entries are pointers to SGML open catalogs as defined by OASIS (see TR9401:1997 on http://www.oasis-open.org). - sgmlwhich: a small script telling where SGML main configuration file is located (provided for compatibility with non-FHS systems) Compatibility ------------- The sgml-common files are inspired by the former scripts from the DocBook-Tools distribution (hosted by Cygnus sourceware project). They comply with FHS and LSB. usr/share/doc/cpanel-exim/README000064400000037555152537577220012344 0ustar00THE EXIM MAIL TRANSFER AGENT VERSION 4 -------------------------------------- Copyright (c) The Exim Maintainers 2025 Copyright (c) 1995 - 2018 University of Cambridge. SPDX-License-Identifier: GPL-2.0-or-later See the file NOTICE for conditions of use and distribution. There is a book about Exim by Philip Hazel called "The Exim SMTP Mail Server", published by UIT Cambridge in May 2003. This is the official guide for Exim 4. The current edition covers release 4.10 and a few later extensions. The O'Reilly book about Exim ("Exim The Mail Transfer Agent" by Philip Hazel) covers Exim 3, which is now obsolete. Exim 4 has a large number of changes from Exim 3, though the basic structure and philosophy remains the same. The older book may be helpful for the background, but a lot of the detail has changed, so it is likely to be confusing to newcomers. There is a website at https://www.exim.org; this contains details of the mailing list exim-users@exim.org. A copy of the Exim FAQ should be available from the same source that you used to obtain the Exim distribution. Additional formats for the documentation (PostScript, PDF, Texinfo, and HTML) should also be available there. EXIM DISTRIBUTION ----------------- Unpacking the tar file should produce a single directory called exim-, containing the following files and directories: ACKNOWLEDGMENTS some acknowledgments CHANGES a conventional file name; it indirects to some files in doc/ LICENCE the GNU General Public Licence Local/ an empty directory for local configuration files Makefile top level Makefile NOTICE notice about conditions of use OS/ directory containing OS-specific files README this file README.UPDATING special notes about updating from previous versions doc/ directory of documentation files exim_monitor/ directory of source files for the Exim monitor scripts/ directory of scripts used in the build process src/ directory of source files util/ directory of independent utilities Please see the documentation files for full instructions on how to build, install, and run Exim. For straightforward installations on operating systems to which Exim has already been ported, the building process is as follows: . Ensure that the top-level Exim directory (e.g. exim-4.80) is the current directory (containing the files and directories listed above). . Edit the file called src/EDITME and put the result in a new file called Local/Makefile. There are comments in src/EDITME telling you what the various parameters are. You must at least provide values for BIN_DIRECTORY, CONFIGURE_FILE, EXIM_USER and EXIM_GROUP (if EXIM_USER is numeric), and it is recommended that SPOOL_DIRECTORY also be defined here if it is a fixed path. . There are a number of additional parameters whose defaults can also be overridden by additions to Local/Makefile. The basic defaults are in OS/Makefile-Default, but these settings are overridden for some operating systems by values on OS/Makefile-. The most commonly-required change is probably the setting of CC, which defines the command to run the C compiler, and which defaults to gcc. To change it to cc, add the following line to Local/Makefile: CC=cc If you are running the Berkeley DB package as your dbm library, then it is worth putting USE_DB=yes in Local/Makefile, to get Exim to use the native interface. This is the default for some operating systems. See doc/dbm.discuss.txt for discussion on dbm libraries. . If you want to compile the Exim monitor, edit the file called exim_monitor/EDITME and put the result in a file called Local/eximon.conf. If you are not going to compile the Exim monitor, you should have commented out the line starting EXIM_MONITOR= when creating Local/Makefile. There are comments in exim_monitor/EDITME about the values set therein, but in this case everything can be defaulted if you wish. . If your system is not POSIX compliant by default, then you might experience fewer problems if you help point the build tools to the POSIX variants. For instance, on Solaris: PATH=/usr/xpg4/bin:$PATH make SHELL=/usr/xpg4/bin/sh . Type "make". This will determine what your machine's architecture and operating system are, and create a build directory from those names (e.g. "build-SunOS5-sparc"). Symbolic links are created from the build directory to the source directory. A configured make file called /makefile is then created, and "make" then goes on to use this to build various binaries and scripts inside the build directory. . Type "make install", while running as root, to install the binaries, scripts, and a default configuration file. To see what this command is going to do before risking it, run "../scripts/exim_install -n" (not as root) from within the build directory. . When you are ready to try running Exim, see the section entitled "Testing" in the chapter called "Building and Installing Exim" in doc/spec.txt, or in one of the other forms of the documentation. . Running the install script does NOT replace /usr/sbin/sendmail or /usr/lib/sendmail with a link to Exim. That step you must perform by hand when you are satisfied that Exim is running correctly. . Note that the default configuration refers to an alias file called /etc/aliases. It used to be the case that every Unix had that file, because it was the Sendmail default. These days, there are systems that don't have /etc/aliases, so you might need to set it up. Your aliases should at least include an alias for "postmaster". . Consider notifying users of the change of MTA. Exim has different capabilities, and there are various operational differences, such as stricter adherence to the RFCs than some MTAs, and differences in the text of messages produced by various command-line options. . The default configuration file will use your host's fully qualified name (as obtained from the uname() function) as the only local mail domain and as the domain which is used to qualify unqualified local mail addresses. See the comments in the default configuration file if you want to change these. The operating systems currently supported are: AIX, BSD/OS (aka BSDI), Darwin (Mac OS X), DGUX, FreeBSD, GNU/Hurd, GNU/Linux, HI-OSF (Hitachi), HP-UX, IRIX, MIPS RISCOS, NetBSD, OpenBSD, QNX, SCO, SCO SVR4.2 (aka UNIX-SV), Solaris (aka SunOS5), SunOS4, Tru64-Unix (formerly Digital Unix, formerly DEC-OSF1), Ultrix, and Unixware. However, code is not available for determining system load averages on Ultrix. There are also configuration files for compiling Exim in the Cygwin environment that can be installed on systems running Windows. However, the documentation supplied with the distribution does not contain any information about running Exim in the Cygwin environment. ******* Modifying the building process ****** Instructions for overriding the build-time options for Exim are given in the manual. You should never have to modify any of the supplied files; it should be possible to override everything that is necessary by creating suitable files in the Local directory. This means that you won't need to redo your modifications for the next release of Exim. If you find you can't avoid changing some other file, let me know and I'll see if I can find a way of making that unnecessary. Briefly, the building process concatenates a number of files in order to construct its working makefile. If and are the operating system and architecture types respectively, the files used are: OS/Makefile-Default OS/Makefile- Local/Makefile Local/Makefile- Local/Makefile- Local/Makefile-- Local/Makefile- OS/Makefile-Base Of the Local/* files, only Local/Makefile is required to exist; the rest are optional. Because of the way "make" works, values set in later files override values set in earlier ones. Thus you can set up general options that are overridden for specify operating systems and/or architectures if you wish. ******* IMPORTANT FOR GNU/LINUX USERS ******* Exim 4 won't work with some versions of Linux if you put its spool directory on an NFS partition. You get an error about "directory sync failed". This is because of a bug in Linux NFS. A fix has been promised in due course. It is in any case much better to put Exim's spool directory on local disc. If you get an error complaining about the lack of functions such as dbm_open() when building Exim, the problem is that it hasn't been able to find a DBM library. See the file doc/dbm.discuss.txt for a discussion about the various DBM libraries. Different versions of Linux come with different DBM libraries, stored in different places. As well as setting USE_DB=yes in Local/Makefile if Berkeley DB is in use, it may also be necessary to set a value in DBMLIB to specify the inclusion of the DBM library, for example: DBMLIB=-ldb or DBMLIB=-lgdbm. If you are using RedHat 7.0, which has DB3 as its DBM library, you need to install the db-devel package before building Exim. This will have a name like db3-devel-3.1.14-16.i386.rpm (but check which release of DB3 you have). The building scripts now distinguish between versions of Linux with the older libc5 and the more recent ones that use libc6. In the latter case, USE_DB and -ldb are the default settings, because DB is standard with libc6. It appears that with glibc-2.1.x (a minor libc upgrade), they have standardised on Berkeley DB2 (instead of DB1 in glibc-2.0.x). If you want to get DB1 back, you need to set INCLUDE=-I/usr/include/db1 DBMLIB=-ldb1 in your Local/Makefile. If you omit DBMLIB=-ldb1 Exim will link successfully using the DB1 compatibility interface to DB2, but it will expect the file format to be that of DB2, and so will not be able to read existing DB1 files. ******* IMPORTANT FOR FREEBSD USERS ******* On FreeBSD there is a file called /etc/mail/mailer.conf which selects what to run for various MTA calls. Instead of changing /usr/sbin/sendmail, you should edit this file instead, to read something like this: sendmail /usr/exim/bin/exim send-mail /usr/exim/bin/exim mailq /usr/exim/bin/exim -bp newaliases /usr/bin/true You will most probably need to add the line: daily_status_include_submit_mailq="NO" # No separate 'submit' queue to /etc/periodic.conf. This stops FreeBSD running the command "mailq -Ac" (which Exim doesn't understand) to list a separate submit queue (which Exim doesn't have). If you are using FreeBSD prior to 3.0-RELEASE, and you are not using the ports mechanism to install Exim, then you should install the perl5 package (/usr/local/bin/perl) and use that instead of perl in the base system, which is perl4 up until 3.0-RELEASE. If you are using the ports mechanism, this is handled for you. If you are upgrading from version 2.11 of Exim or earlier, and you are using DBM files, and you did not previously have USE_DB=yes in your Local/Makefile, then you will either have to put USE_DB=no in your Local/Makefile or (better) rebuild your DBM data files. The default for FreeBSD has been changed to USE_DB=yes, since FreeBSD comes with Berkeley DB. However, using the native DB interface means that the data files no longer have the ".db" extension. ******* IMPORTANT FOR Tru64 (aka Digital Unix aka DEC-OSF1) USERS ******* The default compiler may not recognize ANSI C by default. You may have to set CC=cc CFLAGS=-std1 in Local/Makefile in order to compile Exim. A user reported another small problem with this operating system: In the file /usr/include/net/if.h a semicolon was missing at the end of line 143. ******* IMPORTANT FOR SCO USERS ******* The building scripts assume the existence of the "ar" command, which is part of the Development System. However, it is also possible to use the "gar" command that is part of the GNU utilities that are distributed with the 5.0.7 release. If you have "gar" and not "ar" you should include AR=gar in your Local/Makefile. ******* IMPORTANT FOR Unixware 2.x USERS ******* Unixware does not include db/dbm/ndbm with its standard compiler (it is available with /usr/ucb/cc, but that has bugs of its own). You should install gcc and Berkeley DB (or another dbm library if you really insist). If you use a different dbm library you will need to override the default setting of DBMLIB. DB 1.85 and 2.x can be found at http://www.sleepycat.com/. They have different characteristics. See the discussion of dbm libraries in doc/dbm.discuss.txt. DB needs to be compiled with gcc and you need a 'cc' in your path before the Unixware CC to compile it. Don't bother even starting to install exim on Unixware unless you have installed gcc and use it for everything. ******* IMPORTANT FOR SOLARIS 2.3 (SUNOS 5.3) USERS ******* The file /usr/include/sysexits.h does not exist on Solaris 2.3 (and presumably earlier versions), though it is present in 2.4 and later versions. To compile Exim on Solaris 2.3 it is necessary to include the line CFLAGS=-O -DNO_SYSEXITS -DEX_TEMPFAIL=75 in your Local/Makefile. ******* IMPORTANT FOR IRIX USERS ******* There are problems with some versions of gcc on IRIX, as a result of which all DNS lookups yield either 0.0.0.0 or 255.255.255.255. Releases of gcc after 2.7.2.3 (which works ok) are affected. Specifically, 2.8.* is affected, as are the 2.95 series. From release 3.21 of Exim, a workaround for this problem should automatically be enabled when Exim is compiled on IRIX using gcc. As from version 2.03 there is IRIX-specific code in Exim to obtain a list of all the IP addresses on local interfaces, including alias addresses, because the standard code gives only non-alias addresses in IRIX. The code came from SGI, with the comment: "On 6.2 you need the libc patch to get the sysctl() stub and the networking kernel patch to get the support." It seems that this code doesn't work on at least some earlier versions of IRIX (e.g. IRIX 5.3). If you can't compile under IRIX and the problem appears to relate to sysctl(), try commenting or #ifdef-ing out all the code in the file OS/os.c-IRIX. ******* IMPORTANT FOR HP-UX USERS ******* There are two different sets of configuration files for HP-UX. Those ending in HP-UX-9 are used for HP-UX version 9, and have been tested on HP-UX version 9.05. Those ending in HP-UX are for later releases, and have been tested on HP-UX version 11.00. If you are using a version of HP-UX between 9.05 and 11.00, you may need to edit the file OS/os.h-HP-UX if you encounter problems building Exim. If you want to use the Sieve facility in Exim, the alias iso-8859-1 should be added to the alias definition for iso81 in /usr/lib/nls/iconv/config.iconv. You also need to add a new alias definition: "alias utf8 utf-8". ******* IMPORTANT FOR QNX USERS ******* 1. Exim makes some assumptions about the shell in the makefiles. The "normal" QNX shell (ksh) will not work. You need to install "bash", which can be obtained from the QNX freeware on QUICS. Install it to /usr/local/bin/bash Then you need to change the SHELL definition at the top of the main Makefile to SHELL=/usr/local/bin/bash. The file OS/Makefile-QNX sets the variable MAKE_SHELL to /usr/local/bin/bash. If you install bash in a different place, you will need to set MAKE_SHELL in your Local/Makefile in order to override this. 2. For some strange reason make will fail at building "exim_dbmbuild" when called the first time. However simply calling make a second time will solve the problem. Alternatively, run "make makefile" and then "make". ******* IMPORTANT FOR ULTRIX USERS ******* You need to set SHELL explicitly in the make call when building on ULTRIX, that is, type "make SHELL=sh5". ******* IMPORTANT FOR GNU/HURD USERS ******* GNU/Hurd doesn't (at the time of writing, June 1999) have the ioctls for finding out the IP addresses of the local interfaces. You therefore have to set local_interfaces yourself. Otherwise it will treat only 127.0.0.1 as local. Philip Hazel usr/share/doc/freetype/README000064400000004565152537577740011767 0ustar00 FreeType 2.9.1 ============== Homepage: https://www.freetype.org FreeType is a freely available software library to render fonts. It is written in C, designed to be small, efficient, highly customizable, and portable while capable of producing high-quality output (glyph images) of most vector and bitmap font formats. Please read the docs/CHANGES file, it contains IMPORTANT INFORMATION. Read the files `docs/INSTALL*' for installation instructions; see the file `docs/LICENSE.TXT' for the available licenses. The FreeType 2 API reference is located in `docs/reference'; use the file `ft2-toc.html' as the top entry point. Additional documentation is available as a separate package from our sites. Go to https://download.savannah.gnu.org/releases/freetype/ and download one of the following files. freetype-doc-2.9.1.tar.bz2 freetype-doc-2.9.1.tar.gz ftdoc291.zip To view the documentation online, go to https://www.freetype.org/freetype2/documentation.html Mailing Lists ============= The preferred way of communication with the FreeType team is using e-mail lists. general use and discussion: freetype@nongnu.org engine internals, porting, etc.: freetype-devel@nongnu.org announcements: freetype-announce@nongnu.org git repository tracker: freetype-commit@nongnu.org The lists are moderated; see https://www.freetype.org/contact.html how to subscribe. Bugs ==== Please submit bug reports at https://savannah.nongnu.org/bugs/?group=freetype Alternatively, you might report bugs by e-mail to `freetype-devel@nongnu.org'. Don't forget to send a detailed explanation of the problem -- there is nothing worse than receiving a terse message that only says `it doesn't work'. Enjoy! The FreeType Team ---------------------------------------------------------------------- Copyright 2006-2018 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, modified, and distributed under the terms of the FreeType project license, LICENSE.TXT. By continuing to use, modify, or distribute this file you indicate that you have read the license and understand and accept it fully. --- end of README --- usr/share/doc/chrony/README000064400000011766152537611500011426 0ustar00This is the README for chrony. What is chrony? =============== chrony is a versatile implementation of the Network Time Protocol (NTP). It can synchronise the system clock with NTP servers, reference clocks (e.g. GPS receiver), and manual input using wristwatch and keyboard. It can also operate as an NTPv4 (RFC 5905) server and peer to provide a time service to other computers in the network. It is designed to perform well in a wide range of conditions, including intermittent network connections, heavily congested networks, changing temperatures (ordinary computer clocks are sensitive to temperature), and systems that do not run continuosly, or run on a virtual machine. Typical accuracy between two machines synchronised over the Internet is within a few milliseconds; on a LAN, accuracy is typically in tens of microseconds. With hardware timestamping, or a hardware reference clock, sub-microsecond accuracy may be possible. Two programs are included in chrony, chronyd is a daemon that can be started at boot time and chronyc is a command-line interface program which can be used to monitor chronyd's performance and to change various operating parameters whilst it is running. What will chrony run on? ======================== The software is known to work on Linux, FreeBSD, NetBSD, macOS and illumos. Closely related systems may work too. Any other system will likely require a porting exercise. How do I set it up? =================== The file INSTALL gives instructions. On supported systems the compilation process should be automatic. You will need a C compiler, e.g. gcc or clang. What documentation is there? ============================ The distribution includes manual pages and a document containing Frequently Asked Questions (FAQ). The documentation is also available on the chrony web pages, accessible through the URL https://chrony-project.org/ License ======= chrony is distributed under the GNU General Public License version 2. Authors ======= Richard P. Curnow Miroslav Lichvar Acknowledgements ================ In writing the chronyd program, extensive use has been made of the NTPv3 (RFC 1305) and NTPv4 (RFC 5905) specification. The source code of the xntpd/ntpd implementation written by Dennis Fergusson, Lars Mathiesen, David Mills, and others has been used to check the details of the protocol. The following people have provided patches and other major contributions to chrony: Lonnie Abelbeck Benny Lyne Amorsen Andrew Bishop Vincent Blut Stephan I. Boettcher David Bohman Goswin Brederlow Leigh Brown Erik Bryer Jonathan Cameron Bryan Christianson Juliusz Chroboczek Dan Drown Kamil Dudka Christian Ehrhardt Paul Elliott Robert Fairley Stefan R. Filipek Mike Fleetwood Alexander Gretencord Andrew Griffiths Walter Haidinger Juergen Hannken-Illjes John Hasler Tjalling Hattink Liam Hatton Holger Hoffstätte Jachym Holecek Håkan Johansson Jim Knoble Antti Jrvinen Uwe Kleine-König Eric Lammerts Stefan Lucke Victor Lum Kevin Lyda Paul Menzel Vladimir Michl Victor Moroz Kalle Olavi Niemitalo Frank Otto Denny Page Rupesh Patel Chris Perl Gautier PHILIPPON Andreas Piesk Mike Ryan Baruch Siach Josef 'Jeff' Sipek Foster Snowhill Andreas Steinmetz NAKAMURA Takumi Timo Teras Bill Unruh Luke Valenta Stephen Wadeley Bernhard Weiss Wolfgang Weisselberg Bernhard M. Wiedemann Joachim Wiedorn Ralf Wildenhues Ulrich Windl Michael Witten Doug Woodward Thomas Zajic Many other people have contributed bug reports and suggestions. We are sorry we cannot identify all of you individually. usr/share/doc/dracut/README000064400000007641152537632740011414 0ustar00dracut ------ dracut is an event driven initramfs infrastructure. dracut (the tool) is used to create an initramfs image by copying tools and files from an installed system and combining it with the dracut framework, usually found in /usr/lib/dracut/modules.d. Unlike existing initramfs's, this is an attempt at having as little as possible hard-coded into the initramfs as possible. The initramfs has (basically) one purpose in life -- getting the rootfs mounted so that we can transition to the real rootfs. This is all driven off of device availability. Therefore, instead of scripts hard-coded to do various things, we depend on udev to create device nodes for us and then when we have the rootfs's device node, we mount and carry on. This helps to keep the time required in the initramfs as little as possible so that things like a 5 second boot aren't made impossible as a result of the very existence of an initramfs. It's likely that we'll grow some hooks for running arbitrary commands in the flow of the script, but it's worth trying to resist the urge as much as we can as hooks are guaranteed to be the path to slow-down. Most of the initramfs generation functionality in dracut is provided by a bunch of generator modules that are sourced by the main dracut script to install specific functionality into the initramfs. They live in the modules.d subdirectory, and use functionality provided by dracut-functions to do their work. Some general rules for writing modules: * Use one of the inst family of functions to actually install files on to the initramfs. They handle mangling the pathnames and (for binaries, scripts, and kernel modules) installing dependencies as appropriate so you do not have to. * Scripts that end up on the initramfs should be POSIX compliant. dracut will try to use /bin/dash as /bin/sh for the initramfs if it is available, so you should install it on your system -- dash aims for strict POSIX compliance to the extent possible. * Hooks MUST be POSIX compliant -- they are sourced by the init script, and having a bashism break your user's ability to boot really sucks. * Generator modules should have a two digit numeric prefix -- they run in ascending sort order. Anything in the 90-99 range is stuff that dracut relies on, so try not to break those hooks. * Hooks must have a .sh extension. * Generator modules are described in more detail in README.modules. * We have some breakpoints for debugging your hooks. If you pass 'rdbreak' as a kernel parameter, the initramfs will drop to a shell just before switching to a new root. You can pass 'rdbreak=hookpoint', and the initramfs will break just before hooks in that hookpoint run. Also, there is an attempt to keep things as distribution-agnostic as possible. Every distribution has their own tool here and it's not something which is really interesting to have separate across them. So contributions to help decrease the distro-dependencies are welcome. Currently dracut lives on github.com and kernel.org. The tarballs can be found here: http://www.kernel.org/pub/linux/utils/boot/dracut/ ftp://ftp.kernel.org/pub/linux/utils/boot/dracut/ Git: git://git.kernel.org/pub/scm/boot/dracut/dracut.git http://git.kernel.org/pub/scm/boot/dracut/dracut.git https://git.kernel.org/pub/scm/boot/dracut/dracut.git git@github.com:dracutdevs/dracut.git Git Web: https://github.com/dracutdevs/dracut.git http://git.kernel.org/?p=boot/dracut/dracut.git Project Documentation: http://www.kernel.org/pub/linux/utils/boot/dracut/dracut.html Project Wiki: http://dracut.wiki.kernel.org See the TODO file for things which still need to be done and HACKING for some instructions on how to get started. There is also a mailing list that is being used for the discussion -- initramfs@vger.kernel.org. It is a typical vger list, send mail to majordomo@vger.kernel.org with body of 'subscribe initramfs email@host.com' Licensed under the GPLv2 etc/pki/ca-trust/extracted/README000064400000001060152537633210012513 0ustar00This directory /etc/pki/ca-trust/extracted/ contains CA certificate bundle files which are automatically created. If your application isn't able to load the PKCS#11 module p11-kit-trust.so, then you can use these files in your application to load a list of global root CA certificates. Please never manually edit the files stored in this directory, because your changes will be lost and the files automatically overwritten, each time the update-ca-trust command gets executed. Please refer to the update-ca-trust(8) manual page for additional information. usr/share/doc/atk/README000064400000003107152537702620010675 0ustar00ATK - The Accessibility Toolkit =============================== For more information about ATK and accessibility in GNOME, see: https://wiki.gnome.org/Accessibility Dependencies ------------ ATK requires GLib >= 2.32. Information about GLib is available from: https://www.gtk.org Getting the source code ----------------------- You can get the source code of each ATK release as a tarball: https://download.gnome.org/sources/atk/ You can also clone the ATK master branch from GNOME repository: https://git.gnome.org/browse/atk Building -------- To buid ATK from a release tarball you can use Autotools: $ ./configure $ make # make install Alternatively, you can use Meson and Ninja: $ meson _build . $ ninja -C _build # ninja -C _build install To build ATK from a Git clone using Autotools, run the autogen.sh script instead of the configure one; before running autogen.sh or configure, make sure you have libtool in your path. If you use Meson, no changes are necessary. Note that autogen.sh runs the configure script for you. If you wish to pass options like --prefix=/usr to configure you can give those options to autogen.sh and they will be passed on to configure; if you wish to run autogen.sh without running the configure script, export the NOCONFIGURE environment variable. How to report bugs ------------------ Bugs should be reported to the GNOME bug tracking system: http://bugzilla.gnome.org/enter_bug.cgi?product=atk You will need to create an account for yourself. You can also mail the mailing list gnome-accessibility-devel@gnome.org usr/share/doc/libXxf86misc/README000064400000001304152537716460012410 0ustar00libXxf86misc - Extension library for the XFree86-Misc X extension. All questions regarding this software should be directed at the Xorg mailing list: http://lists.freedesktop.org/mailman/listinfo/xorg Please submit bug reports to the Xorg bugzilla: https://bugs.freedesktop.org/enter_bug.cgi?product=xorg The master development code repository can be found at: git://anongit.freedesktop.org/git/xorg/lib/libXxf86misc http://cgit.freedesktop.org/xorg/lib/libXxf86misc For patch submission instructions, see: http://www.x.org/wiki/Development/Documentation/SubmittingPatches For more information on the git code manager, see: http://wiki.x.org/wiki/GitPage usr/share/doc/squashfs-tools/README000064400000120014152537741630013112 0ustar00 SQUASHFS 4.3 - A squashed read-only filesystem for Linux Copyright 2002-2014 Phillip Lougher Released under the GPL licence (version 2 or later). Welcome to Squashfs version 4.3. Please read the README-4.3 and CHANGES files for details of changes. Squashfs is a highly compressed read-only filesystem for Linux. It uses either gzip/xz/lzo/lz4 compression to compress both files, inodes and directories. Inodes in the system are very small and all blocks are packed to minimise data overhead. Block sizes greater than 4K are supported up to a maximum of 1Mbytes (default block size 128K). Squashfs is intended for general read-only filesystem use, for archival use (i.e. in cases where a .tar.gz file may be used), and in constrained block device/memory systems (e.g. embedded systems) where low overhead is needed. 1. SQUASHFS OVERVIEW -------------------- 1. Data, inodes and directories are compressed. 2. Squashfs stores full uid/gids (32 bits), and file creation time. 3. In theory files up to 2^64 bytes are supported. In theory filesystems can be up to 2^64 bytes. 4. Inode and directory data are highly compacted, and packed on byte boundaries. Each compressed inode is on average 8 bytes in length (the exact length varies on file type, i.e. regular file, directory, symbolic link, and block/char device inodes have different sizes). 5. Squashfs can use block sizes up to 1Mbyte (the default size is 128K). Using 128K blocks achieves greater compression ratios than the normal 4K block size. 6. File duplicates are detected and removed. 7. Filesystems can be compressed with gzip, xz (lzma2), lzo or lz4 compression algorithms. 1.1 Extended attributes (xattrs) -------------------------------- Squashfs filesystems now have extended attribute support. The extended attribute implementation has the following features: 1. Layout can store up to 2^48 bytes of compressed xattr data. 2. Number of xattrs per inode unlimited. 3. Total size of xattr data per inode 2^48 bytes of compressed data. 4. Up to 4 Gbytes of data per xattr value. 5. Inline and out-of-line xattr values supported for higher performance in xattr scanning (listxattr & getxattr), and to allow xattr value de-duplication. 6. Both whole inode xattr duplicate detection and individual xattr value duplicate detection supported. These can obviously nest, file C's xattrs can be a complete duplicate of file B, and file B's xattrs can be a partial duplicate of file A. 7. Xattr name prefix types stored, allowing the redundant "user.", "trusted." etc. characters to be eliminated and more concisely stored. 8. Support for files, directories, symbolic links, device nodes, fifos and sockets. Extended attribute support is in 2.6.35 and later kernels. Filesystems with extended attributes can be mounted on 2.6.29 and later kernels, the extended attributes will be ignored with a warning. 2. USING SQUASHFS ----------------- Squashfs filesystems should be mounted with 'mount' with the filesystem type 'squashfs'. If the filesystem is on a block device, the filesystem can be mounted directly, e.g. %mount -t squashfs /dev/sda1 /mnt Will mount the squashfs filesystem on "/dev/sda1" under the directory "/mnt". If the squashfs filesystem has been written to a file, the loopback device can be used to mount it (loopback support must be in the kernel), e.g. %mount -t squashfs image /mnt -o loop Will mount the squashfs filesystem in the file "image" under the directory "/mnt". 3. MKSQUASHFS ------------- 3.1 Mksquashfs options and overview ----------------------------------- As squashfs is a read-only filesystem, the mksquashfs program must be used to create populated squashfs filesystems. SYNTAX:./mksquashfs source1 source2 ... dest [options] [-e list of exclude dirs/files] Filesystem build options: -comp select compression Compressors available: gzip (default) lzo lz4 xz -b set data block to . Default 128 Kbytes Optionally a suffix of K or M can be given to specify Kbytes or Mbytes respectively -no-exports don't make the filesystem exportable via NFS -no-sparse don't detect sparse files -no-xattrs don't store extended attributes -xattrs store extended attributes (default) -noI do not compress inode table -noD do not compress data blocks -noF do not compress fragment blocks -noX do not compress extended attributes -no-fragments do not use fragments -always-use-fragments use fragment blocks for files larger than block size -no-duplicates do not perform duplicate checking -all-root make all files owned by root -force-uid uid set all file uids to uid -force-gid gid set all file gids to gid -nopad do not pad filesystem to a multiple of 4K -keep-as-directory if one source directory is specified, create a root directory containing that directory, rather than the contents of the directory Filesystem filter options: -p Add pseudo file definition -pf Add list of pseudo file definitions -sort sort files according to priorities in . One file or dir with priority per line. Priority -32768 to 32767, default priority 0 -ef list of exclude dirs/files. One per line -wildcards Allow extended shell wildcards (globbing) to be used in exclude dirs/files -regex Allow POSIX regular expressions to be used in exclude dirs/files Filesystem append options: -noappend do not append to existing filesystem -root-becomes when appending source files/directories, make the original root become a subdirectory in the new root called , rather than adding the new source items to the original root Mksquashfs runtime options: -version print version, licence and copyright message -exit-on-error treat normally ignored errors as fatal -recover recover filesystem data using recovery file -no-recovery don't generate a recovery file -info print files written to filesystem -no-progress don't display the progress bar -progress display progress bar when using the -info option -processors Use processors. By default will use number of processors available -mem Use physical memory. Currently set to 1922M Optionally a suffix of K, M or G can be given to specify Kbytes, Mbytes or Gbytes respectively Miscellaneous options: -root-owned alternative name for -all-root -noInodeCompression alternative name for -noI -noDataCompression alternative name for -noD -noFragmentCompression alternative name for -noF -noXattrCompression alternative name for -noX -Xhelp print compressor options for selected compressor Compressors available and compressor specific options: gzip (default) -Xcompression-level should be 1 .. 9 (default 9) -Xwindow-size should be 8 .. 15 (default 15) -Xstrategy strategy1,strategy2,...,strategyN Compress using strategy1,strategy2,...,strategyN in turn and choose the best compression. Available strategies: default, filtered, huffman_only, run_length_encoded and fixed lzo -Xalgorithm Where is one of: lzo1x_1 lzo1x_1_11 lzo1x_1_12 lzo1x_1_15 lzo1x_999 (default) -Xcompression-level should be 1 .. 9 (default 8) Only applies to lzo1x_999 algorithm lz4 -Xhc Compress using LZ4 High Compression xz -Xbcj filter1,filter2,...,filterN Compress using filter1,filter2,...,filterN in turn (in addition to no filter), and choose the best compression. Available filters: x86, arm, armthumb, powerpc, sparc, ia64 -Xdict-size Use as the XZ dictionary size. The dictionary size can be specified as a percentage of the block size, or as an absolute value. The dictionary size must be less than or equal to the block size and 8192 bytes or larger. It must also be storable in the xz header as either 2^n or as 2^n+2^(n+1). Example dict-sizes are 75%, 50%, 37.5%, 25%, or 32K, 16K, 8K etc. Source1 source2 ... are the source directories/files containing the files/directories that will form the squashfs filesystem. If a single directory is specified (i.e. mksquashfs source output_fs) the squashfs filesystem will consist of that directory, with the top-level root directory corresponding to the source directory. If multiple source directories or files are specified, mksquashfs will merge the specified sources into a single filesystem, with the root directory containing each of the source files/directories. The name of each directory entry will be the basename of the source path. If more than one source entry maps to the same name, the conflicts are named xxx_1, xxx_2, etc. where xxx is the original name. To make this clear, take two example directories. Source directory "/home/phillip/test" contains "file1", "file2" and "dir1". Source directory "goodies" contains "goodies1", "goodies2" and "goodies3". usage example 1: %mksquashfs /home/phillip/test output_fs This will generate a squashfs filesystem with root entries "file1", "file2" and "dir1". example 2: %mksquashfs /home/phillip/test goodies output_fs This will create a squashfs filesystem with the root containing entries "test" and "goodies" corresponding to the source directories "/home/phillip/test" and "goodies". example 3: %mksquashfs /home/phillip/test goodies test output_fs This is the same as the previous example, except a third source directory "test" has been specified. This conflicts with the first directory named "test" and will be renamed "test_1". Multiple sources allow filesystems to be generated without needing to copy all source files into a common directory. This simplifies creating filesystems. The -keep-as-directory option can be used when only one source directory is specified, and you wish the root to contain that directory, rather than the contents of the directory. For example: example 4: %mksquashfs /home/phillip/test output_fs -keep-as-directory This is the same as example 1, except for -keep-as-directory. This will generate a root directory containing directory "test", rather than the "test" directory contents "file1", "file2" and "dir1". The Dest argument is the destination where the squashfs filesystem will be written. This can either be a conventional file or a block device. If the file doesn't exist it will be created, if it does exist and a squashfs filesystem exists on it, mksquashfs will append. The -noappend option will write a new filesystem irrespective of whether an existing filesystem is present. 3.2 Changing compression algorithm and compression specific options ------------------------------------------------------------------- By default Mksquashfs will compress using the gzip compression algorithm. This algorithm offers a good trade-off between compression ratio, and memory and time taken to decompress. Squashfs also supports LZ4, LZO and XZ (LZMA2) compression. LZO offers worse compression ratio than gzip, but is faster to decompress. XZ offers better compression ratio than gzip, but at the expense of greater memory and time to decompress (and significantly more time to compress). LZ4 is similar to LZO, but, support for it is not yet in the mainline kernel, and so its usefulness is currently limited to using Squashfs with Mksquashfs/Unsquashfs as an archival system like tar. If you're not building the squashfs-tools and kernel from source, then the tools and kernel may or may not have been built with support for LZ4, LZO or XZ compression. The compression algorithms supported by the build of Mksquashfs can be found by typing mksquashfs without any arguments. The compressors available are displayed at the end of the help message, e.g. Compressors available and compressor specific options: gzip (default) -Xcompression-level should be 1 .. 9 (default 9) -Xwindow-size should be 8 .. 15 (default 15) -Xstrategy strategy1,strategy2,...,strategyN Compress using strategy1,strategy2,...,strategyN in turn and choose the best compression. Available strategies: default, filtered, huffman_only, run_length_encoded and fixed lzo -Xalgorithm Where is one of: lzo1x_1 lzo1x_1_11 lzo1x_1_12 lzo1x_1_15 lzo1x_999 (default) -Xcompression-level should be 1 .. 9 (default 8) Only applies to lzo1x_999 algorithm lz4 -Xhc Compress using LZ4 High Compression xz -Xbcj filter1,filter2,...,filterN Compress using filter1,filter2,...,filterN in turn (in addition to no filter), and choose the best compression. Available filters: x86, arm, armthumb, powerpc, sparc, ia64 -Xdict-size Use as the XZ dictionary size. The dictionary size can be specified as a percentage of the block size, or as an absolute value. The dictionary size must be less than or equal to the block size and 8192 bytes or larger. It must also be storable in the xz header as either 2^n or as 2^n+2^(n+1). Example dict-sizes are 75%, 50%, 37.5%, 25%, or 32K, 16K, 8K etc. If the compressor offers compression specific options (all the compressors now have compression specific options except the deprecated lzma1 compressor) then these options are also displayed (.i.e. in the above XZ is shown with two compression specific options). The compression specific options are, obviously, specific to the compressor in question, and the compressor documentation and web sites should be consulted to understand their behaviour. In general the Mksquashfs compression defaults for each compressor are optimised to give the best performance for each compressor, where what constitutes best depends on the compressor. For gzip/xz best means highest compression, for LZO/LZ4 best means a tradeoff between compression and (de)-compression overhead (LZO/LZ4 by definition are intended for weaker processors). 3.3 Changing global compression defaults used in mksquashfs ----------------------------------------------------------- There are a large number of options that can be used to control the compression in mksquashfs. By and large the defaults are the most optimum settings and should only be changed in exceptional circumstances! Note, this does not apply to the block size, increasing the block size from the default of 128Kbytes will increase compression (especially for the xz compressor) and should increase I/O performance too. However, a block size of greater than 128Kbytes may increase latency in certain cases (where the filesystem contains lots of fragments, and no locality of reference is observed). For this reason the block size default is configured to the less optimal 128Kbytes. Users should experiment with 256Kbyte sizes or above. The -noI, -noD and -noF options (also -noInodeCompression, -noDataCompression and -noFragmentCompression) can be used to force mksquashfs to not compress inodes/directories, data and fragments respectively. Giving all options generates an uncompressed filesystem. The -no-fragments tells mksquashfs to not generate fragment blocks, and rather generate a filesystem similar to a Squashfs 1.x filesystem. It will of course still be a Squashfs 4.0 filesystem but without fragments, and so it won't be mountable on a Squashfs 1.x system. The -always-use-fragments option tells mksquashfs to always generate fragments for files irrespective of the file length. By default only small files less than the block size are packed into fragment blocks. The ends of files which do not fit fully into a block, are NOT by default packed into fragments. To illustrate this, a 100K file has an initial 64K block and a 36K remainder. This 36K remainder is not packed into a fragment by default. This is because to do so leads to a 10 - 20% drop in sequential I/O performance, as a disk head seek is needed to seek to the initial file data and another disk seek is need to seek to the fragment block. Specify this option if you want file remainders to be packed into fragment blocks. Doing so may increase the compression obtained BUT at the expense of I/O speed. The -no-duplicates option tells mksquashfs to not check the files being added to the filesystem for duplicates. This can result in quicker filesystem generation and appending although obviously compression will suffer badly if there is a lot of duplicate files. The -b option allows the block size to be selected, both "K" and "M" postfixes are supported, this can be either 4K, 8K, 16K, 32K, 64K, 128K, 256K, 512K or 1M bytes. 3.4 Specifying the UIDs/GIDs used in the filesystem --------------------------------------------------- By default files in the generated filesystem inherit the UID and GID ownership of the original file. However, mksquashfs provides a number of options which can be used to override the ownership. The options -all-root and -root-owned (both do exactly the same thing) force all file uids/gids in the generated Squashfs filesystem to be root. This allows root owned filesystems to be built without root access on the host machine. The "-force-uid uid" option forces all files in the generated Squashfs filesystem to be owned by the specified uid. The uid can be specified either by name (i.e. "root") or by number. The "-force-gid gid" option forces all files in the generated Squashfs filesystem to be group owned by the specified gid. The gid can be specified either by name (i.e. "root") or by number. 3.5 Excluding files from the filesystem --------------------------------------- The -e and -ef options allow files/directories to be specified which are excluded from the output filesystem. The -e option takes the exclude files/directories from the command line, the -ef option takes the exlude files/directories from the specified exclude file, one file/directory per line. Two styles of exclude file matching are supported: basic exclude matching, and extended wildcard matching. Basic exclude matching is a legacy feature retained for backwards compatibility with earlier versions of Mksquashfs. Extended wildcard matching should be used in preference. 3.5.1 Basic exclude matching ---------------------------- Each exclude file is treated as an exact match of a file/directory in the source directories. If an exclude file/directory is absolute (i.e. prefixed with /, ../, or ./) the entry is treated as absolute, however, if an exclude file/directory is relative, it is treated as being relative to each of the sources in turn, i.e. %mksquashfs /tmp/source1 source2 output_fs -e ex1 /tmp/source1/ex2 out/ex3 Will generate exclude files /tmp/source1/ex2, /tmp/source1/ex1, source2/ex1, /tmp/source1/out/ex3 and source2/out/ex3. 3.5.2 Extended exclude file handling ------------------------------------ Extended exclude file matching treats each exclude file as a wildcard or regex expression. To enable wildcard matching specify the -wildcards option, and to enable regex matching specify the -regex option. In most cases the -wildcards option should be used rather than -regex because wildcard matching behaviour is significantly easier to understand! In addition to wildcards/regex expressions, exclude files can be "anchored" or "non-anchored". An anchored exclude is one which matches from the root of the directory and nowhere else, a non-anchored exclude matches anywhere. For example given the directory hierarchy "a/b/c/a/b", the anchored exclude "a/b" will match "a/b" at the root of the directory hierarchy, but it will not match the "/a/b" sub-directory within directory "c", whereas a non-anchored exclude would. A couple of examples should make this clearer. Anchored excludes 1. mksquashfs example image.sqsh -wildcards -e 'test/*.gz' Exclude all files matching "*.gz" in the top level directory "test". 2. mksquashfs example image.sqsh -wildcards -e '*/[Tt]est/example*' Exclude all files beginning with "example" inside directories called "Test" or "test", that occur inside any top level directory. Using extended wildcards, negative matching is also possible. 3. mksquashfs example image.sqsh -wildcards -e 'test/!(*data*).gz' Exclude all files matching "*.gz" in top level directory "test", except those with "data" in the name. Non-anchored excludes By default excludes match from the top level directory, but it is often useful to exclude a file matching anywhere in the source directories. For this non-anchored excludes can be used, specified by pre-fixing the exclude with "...". Examples: 1. mksquashfs example image.sqsh -wildcards -e '... *.gz' Exclude files matching "*.gz" anywhere in the source directories. For example this will match "example.gz", "test/example.gz", and "test/test/example.gz". 2. mksquashfs example image.sqsh -wildcards -e '... [Tt]est/*.gz' Exclude files matching "*.gz" inside directories called "Test" or "test" that occur anywhere in the source directories. Again, using extended wildcards, negative matching is also possible. 3. mksquashfs example image.sqsh -wildcards -e '... !(*data*).gz' Exclude all files matching "*.gz" anywhere in the source directories, except those with "data" in the name. 3.5.3 Exclude files summary --------------------------- The -e and -ef exclude options are usefully used in archiving the entire filesystem, where it is wished to avoid archiving /proc, and the filesystem being generated, i.e. %mksquashfs / /tmp/root.sqsh -e proc /tmp/root.sqsh Multiple -ef options can be specified on the command line, and the -ef option can be used in conjuction with the -e option. 3.6 Appending to squashfs filesystems ------------------------------------- Running squashfs with the destination directory containing an existing filesystem will add the source items to the existing filesystem. By default, the source items are added to the existing root directory. To make this clear... An existing filesystem "image" contains root entries "old1", and "old2". Source directory "/home/phillip/test" contains "file1", "file2" and "dir1". example 1: %mksquashfs /home/phillip/test image Will create a new "image" with root entries "old1", "old2", "file1", "file2" and "dir1" example 2: %mksquashfs /home/phillip/test image -keep-as-directory Will create a new "image" with root entries "old1", "old2", and "test". As shown in the previous section, for single source directories '-keep-as-directory' adds the source directory rather than the contents of the directory. example 3: %mksquashfs /home/phillip/test image -keep-as-directory -root-becomes original-root Will create a new "image" with root entries "original-root", and "test". The '-root-becomes' option specifies that the original root becomes a subdirectory in the new root, with the specified name. The append option with file duplicate detection, means squashfs can be used as a simple versioning archiving filesystem. A squashfs filesystem can be created with for example the linux-2.4.19 source. Appending the linux-2.4.20 source will create a filesystem with the two source trees, but only the changed files will take extra room, the unchanged files will be detected as duplicates. 3.7 Appending recovery file feature ----------------------------------- Recovery files are created when appending to existing Squashfs filesystems. This allows the original filesystem to be recovered if Mksquashfs aborts unexpectedly (i.e. power failure). The recovery files are called squashfs_recovery_xxx_yyy, where "xxx" is the name of the filesystem being appended to, and "yyy" is a number to guarantee filename uniqueness (the PID of the parent Mksquashfs process). Normally if Mksquashfs exits correctly the recovery file is deleted to avoid cluttering the filesystem. If Mksquashfs aborts, the "-recover" option can be used to recover the filesystem, giving the previously created recovery file as a parameter, i.e. mksquashfs dummy image.sqsh -recover squashfs_recovery_image.sqsh_1234 The writing of the recovery file can be disabled by specifying the "-no-recovery" option. 3.8 Pseudo file support ----------------------- Mksquashfs supports pseudo files, these allow fake files, directories, character and block devices to be specified and added to the Squashfs filesystem being built, rather than requiring them to be present in the source directories. This, for example, allows device nodes to be added to the filesystem without requiring root access. Mksquashfs 4.1 added support for "dynamic pseudo files" and a modify operation. Dynamic pseudo files allow files to be dynamically created when Mksquashfs is run, their contents being the result of running a command or piece of shell script. The modifiy operation allows the mode/uid/gid of an existing file in the source filesystem to be modified. Two Mksquashfs options are supported, -p allows one pseudo file to be specified on the command line, and -pf allows a pseudo file to be specified containing a list of pseduo definitions, one per line. 3.8.1. Creating a dynamic file ------------------------------ Pseudo definition Filename f mode uid gid command mode is the octal mode specifier, similar to that expected by chmod. uid and gid can be either specified as a decimal number, or by name. command can be an executable or a piece of shell script, and it is executed by running "/bin/sh -c command". The stdout becomes the contents of "Filename". Examples: Running a basic command ----------------------- /somedir/dmesg f 444 root root dmesg creates a file "/somedir/dmesg" containing the output from dmesg. Executing shell script ---------------------- RELEASE f 444 root root \ if [ ! -e /tmp/ver ]; then \ echo 0 > /tmp/ver; \ fi; \ ver=`cat /tmp/ver`; \ ver=$((ver +1)); \ echo $ver > /tmp/ver; \ echo -n `cat /tmp/release`; \ echo "-dev #"$ver `date` "Build host" `hostname` Creates a file RELEASE containing the release name, date, build host, and an incrementing version number. The incrementing version is a side-effect of executing the shell script, and ensures every time Mksquashfs is run a new version number is used without requiring any other shell scripting. The above example also shows that commands can be split across multiple lines using "\". Obviously as the script will be presented to the shell as a single line, a semicolon is need to separate individual shell commands within the shell script. Reading from a device (or fifo/named socket) -------------------------------------------- input f 444 root root dd if=/dev/sda1 bs=1024 count=10 Copies 10K from the device /dev/sda1 into the file input. Ordinarily Mksquashfs given a device, fifo, or named socket will place that special file within the Squashfs filesystem, the above allows input from these special files to be captured and placed in the Squashfs filesystem. 3.8.2. Creating a block or character device ------------------------------------------- Pseudo definition Filename type mode uid gid major minor Where type is either b - for block devices, and c - for character devices mode is the octal mode specifier, similar to that expected by chmod. uid and gid can be either specified as a decimal number, or by name. For example: /dev/chr_dev c 666 root root 100 1 /dev/blk_dev b 666 0 0 200 200 creates a character device "/dev/chr_dev" with major:minor 100:1 and a block device "/dev/blk_dev" with major:minor 200:200, both with root uid/gid and a mode of rw-rw-rw. 3.8.3. Creating a directory --------------------------- Pseudo definition Filename d mode uid gid mode is the octal mode specifier, similar to that expected by chmod. uid and gid can be either specified as a decimal number, or by name. For example: /pseudo_dir d 666 root root creates a directory "/pseudo_dir" with root uid/gid and mode of rw-rw-rw. 3.8.4. Modifying attributes of an existing file ----------------------------------------------- Pseudo definition Filename m mode uid gid mode is the octal mode specifier, similar to that expected by chmod. uid and gid can be either specified as a decimal number, or by name. For example: dmesg m 666 root root Changes the attributes of the file "dmesg" in the filesystem to have root uid/gid and a mode of rw-rw-rw, overriding the attributes obtained from the source filesystem. 3.9 Miscellaneous options ------------------------- The -info option displays the files/directories as they are compressed and added to the filesystem. The original uncompressed size of each file is printed, along with DUPLICATE if the file is a duplicate of a file in the filesystem. The -nopad option informs mksquashfs to not pad the filesystem to a 4K multiple. This is performed by default to enable the output filesystem file to be mounted by loopback, which requires files to be a 4K multiple. If the filesystem is being written to a block device, or is to be stored in a bootimage, the extra pad bytes are not needed. 4. UNSQUASHFS ------------- Unsquashfs allows you to decompress and extract a Squashfs filesystem without mounting it. It can extract the entire filesystem, or a specific file or directory. The Unsquashfs usage info is: SYNTAX: ./unsquashfs [options] filesystem [directories or files to extract] -v[ersion] print version, licence and copyright information -d[est] unsquash to , default "squashfs-root" -n[o-progress] don't display the progress bar -no[-xattrs] don't extract xattrs in file system -x[attrs] extract xattrs in file system (default) -u[ser-xattrs] only extract user xattrs in file system. Enables extracting xattrs -p[rocessors] use processors. By default will use number of processors available -i[nfo] print files as they are unsquashed -li[nfo] print files as they are unsquashed with file attributes (like ls -l output) -l[s] list filesystem, but don't unsquash -ll[s] list filesystem with file attributes (like ls -l output), but don't unsquash -f[orce] if file already exists then overwrite -s[tat] display filesystem superblock information -e[f] list of directories or files to extract. One per line -da[ta-queue] Set data queue to Mbytes. Default 256 Mbytes -fr[ag-queue] Set fragment queue to Mbytes. Default 256 Mbytes -r[egex] treat extract names as POSIX regular expressions rather than use the default shell wildcard expansion (globbing) Decompressors available: gzip lzo lz4 xz To extract a subset of the filesystem, the filenames or directory trees that are to be extracted can be specified on the command line. The files/directories should be specified using the full path to the files/directories as they appear within the Squashfs filesystem. The files/directories will also be extracted to those positions within the specified destination directory. The extract files can also be given in a file using the "-e[f]" option. Similarly to Mksquashfs, wildcard matching is performed on the extract files. Wildcard matching is enabled by default. Examples: 1. unsquashfs image.sqsh 'test/*.gz' Extract all files matching "*.gz" in the top level directory "test". 2. unsquashfs image.sqsh '[Tt]est/example*' Extract all files beginning with "example" inside top level directories called "Test" or "test". Using extended wildcards, negative matching is also possible. 3. unsquashfs image.sqsh 'test/!(*data*).gz' Extract all files matching "*.gz" in top level directory "test", except those with "data" in the name. 4.1 Unsquashfs options ---------------------- The "-ls" option can be used to list the contents of a filesystem without decompressing the filesystem data itself. The "-lls" option is similar but it also displays file attributes (ls -l style output). The "-info" option forces Unsquashfs to print each file as it is decompressed. The -"linfo" is similar but it also displays file attributes. The "-dest" option specifies the directory that is used to decompress the filesystem data. If this option is not given then the filesystem is decompressed to the directory "squashfs-root" in the current working directory. The "-force" option forces Unsquashfs to output to the destination directory even if files or directories already exist. This allows you to update an existing directory tree, or to Unsquashfs to a partially filled directory. Without the "-force" option, Unsquashfs will refuse to overwrite any existing files, or to create any directories if they already exist. This is done to protect data in case of mistakes, and so the "-force" option should be used with caution. The "-stat" option displays filesystem superblock information. This is useful to discover the filesystem version, byte ordering, whether it has a NFS export table, and what options were used to compress the filesystem, etc. Unsquashfs can decompress all Squashfs filesystem versions, 1.x, 2.x, 3.x and 4.0 filesystems. 5. FILESYSTEM LAYOUT -------------------- A squashfs filesystem consists of a maximum of nine parts, packed together on a byte alignment: --------------- | superblock | |---------------| | compression | | options | |---------------| | datablocks | | & fragments | |---------------| | inode table | |---------------| | directory | | table | |---------------| | fragment | | table | |---------------| | export | | table | |---------------| | uid/gid | | lookup table | |---------------| | xattr | | table | --------------- Compressed data blocks are written to the filesystem as files are read from the source directory, and checked for duplicates. Once all file data has been written the completed super-block, compression options, inode, directory, fragment, export, uid/gid lookup and xattr tables are written. 5.1 Compression options ----------------------- Compressors can optionally support compression specific options (e.g. dictionary size). If non-default compression options have been used, then these are stored here. 5.2 Inodes ---------- Metadata (inodes and directories) are compressed in 8Kbyte blocks. Each compressed block is prefixed by a two byte length, the top bit is set if the block is uncompressed. A block will be uncompressed if the -noI option is set, or if the compressed block was larger than the uncompressed block. Inodes are packed into the metadata blocks, and are not aligned to block boundaries, therefore inodes overlap compressed blocks. Inodes are identified by a 48-bit number which encodes the location of the compressed metadata block containing the inode, and the byte offset into that block where the inode is placed (). To maximise compression there are different inodes for each file type (regular file, directory, device, etc.), the inode contents and length varying with the type. To further maximise compression, two types of regular file inode and directory inode are defined: inodes optimised for frequently occurring regular files and directories, and extended types where extra information has to be stored. 5.3 Directories --------------- Like inodes, directories are packed into compressed metadata blocks, stored in a directory table. Directories are accessed using the start address of the metablock containing the directory and the offset into the decompressed block (). Directories are organised in a slightly complex way, and are not simply a list of file names. The organisation takes advantage of the fact that (in most cases) the inodes of the files will be in the same compressed metadata block, and therefore, can share the start block. Directories are therefore organised in a two level list, a directory header containing the shared start block value, and a sequence of directory entries, each of which share the shared start block. A new directory header is written once/if the inode start block changes. The directory header/directory entry list is repeated as many times as necessary. Directories are sorted, and can contain a directory index to speed up file lookup. Directory indexes store one entry per metablock, each entry storing the index/filename mapping to the first directory header in each metadata block. Directories are sorted in alphabetical order, and at lookup the index is scanned linearly looking for the first filename alphabetically larger than the filename being looked up. At this point the location of the metadata block the filename is in has been found. The general idea of the index is ensure only one metadata block needs to be decompressed to do a lookup irrespective of the length of the directory. This scheme has the advantage that it doesn't require extra memory overhead and doesn't require much extra storage on disk. 5.4 File data ------------- Regular files consist of a sequence of contiguous compressed blocks, and/or a compressed fragment block (tail-end packed block). The compressed size of each datablock is stored in a block list contained within the file inode. To speed up access to datablocks when reading 'large' files (256 Mbytes or larger), the code implements an index cache that caches the mapping from block index to datablock location on disk. The index cache allows Squashfs to handle large files (up to 1.75 TiB) while retaining a simple and space-efficient block list on disk. The cache is split into slots, caching up to eight 224 GiB files (128 KiB blocks). Larger files use multiple slots, with 1.75 TiB files using all 8 slots. The index cache is designed to be memory efficient, and by default uses 16 KiB. 5.5 Fragment lookup table ------------------------- Regular files can contain a fragment index which is mapped to a fragment location on disk and compressed size using a fragment lookup table. This fragment lookup table is itself stored compressed into metadata blocks. A second index table is used to locate these. This second index table for speed of access (and because it is small) is read at mount time and cached in memory. 5.6 Uid/gid lookup table ------------------------ For space efficiency regular files store uid and gid indexes, which are converted to 32-bit uids/gids using an id look up table. This table is stored compressed into metadata blocks. A second index table is used to locate these. This second index table for speed of access (and because it is small) is read at mount time and cached in memory. 5.7 Export table ---------------- To enable Squashfs filesystems to be exportable (via NFS etc.) filesystems can optionally (disabled with the -no-exports Mksquashfs option) contain an inode number to inode disk location lookup table. This is required to enable Squashfs to map inode numbers passed in filehandles to the inode location on disk, which is necessary when the export code reinstantiates expired/flushed inodes. This table is stored compressed into metadata blocks. A second index table is used to locate these. This second index table for speed of access (and because it is small) is read at mount time and cached in memory. 5.8 Xattr table --------------- The xattr table contains extended attributes for each inode. The xattrs for each inode are stored in a list, each list entry containing a type, name and value field. The type field encodes the xattr prefix ("user.", "trusted." etc) and it also encodes how the name/value fields should be interpreted. Currently the type indicates whether the value is stored inline (in which case the value field contains the xattr value), or if it is stored out of line (in which case the value field stores a reference to where the actual value is stored). This allows large values to be stored out of line improving scanning and lookup performance and it also allows values to be de-duplicated, the value being stored once, and all other occurences holding an out of line reference to that value. The xattr lists are packed into compressed 8K metadata blocks. To reduce overhead in inodes, rather than storing the on-disk location of the xattr list inside each inode, a 32-bit xattr id is stored. This xattr id is mapped into the location of the xattr list using a second xattr id lookup table. 6. AUTHOR INFO -------------- Squashfs was written by Phillip Lougher, email phillip@lougher.demon.co.uk, in Chepstow, Wales, UK. If you like the program, or have any problems, then please email me, as it's nice to get feedback! usr/share/doc/less/README000064400000023617152537750700011076 0ustar00 Less, version 530 This is the distribution of less, version 530, released 05 Dec 2017. This program is part of the GNU project (http://www.gnu.org). This program is free software. You may redistribute it and/or modify it under the terms of either: 1. The GNU General Public License, as published by the Free Software Foundation; either version 3, or (at your option) any later version. A copy of this license is in the file COPYING. or 2. The Less License, in the file LICENSE. Please report any problems to bug-less@gnu.org. See http://www.greenwoodsoftware.com/less for the latest info. Source repository is at https://github.com/gwsw/less.git. ========================================================================= This is the distribution of "less", a paginator similar to "more" or "pg". The formatted manual page is in less.man. The manual page nroff source is in less.nro. Major changes made since the last posted version are in NEWS. ======================================================================= INSTALLATION (Unix systems only): 1. Move the distributed source to its own directory and unpack it, if you have not already done so. 2. Type "sh configure". This will generate a Makefile and a defines.h. Warning: if you have a GNU sed, make sure it is version 2.05 or later. The file INSTALL describes the usage of the configure program in general. In addition, these options to configure are supported: --with-editor=program Specifies the default editor program used by the "v" command. The default is "vi". --with-regex=lib Specifies the regular expression library used by less for pattern matching. The default is "auto", which means the configure program finds a regular expression library automatically. Other values are: gnu Use the GNU regex library. pcre Use the PCRE library. posix Use the POSIX-compatible regcomp. regcmp Use the regcmp library. re_comp Use the re_comp library. regcomp Use the V8-compatible regcomp. regcomp-local Use Henry Spencer's V8-compatible regcomp (source is supplied with less). none No regular expressions, only simple string matching. --with-secure Builds a "secure" version of less, with some features disabled to prevent users from viewing other files, accessing shell commands, etc. 3. It is a good idea to look over the generated Makefile and defines.h and make sure they look ok. If you know of any peculiarities of your system that configure might not have detected, you may fix the Makefile now. Take particular notice of the list of "terminal" libraries in the LIBS definition in the Makefile; these may need to be edited. The terminal libraries will be some subset of -lncurses -lcurses -ltermcap -ltermlib If you wish, you may edit defines.h to remove some optional features. If you choose not to include some features in your version, you may wish to edit the manual page "less.nro" and the help page "less.hlp" to remove the descriptions of the features which you are removing. If you edit less.hlp, you should run "make -f Makefile.aut help.c". 4. Type "make" and watch the fun. 5. If the make succeeds, it will generate the programs "less", "lesskey" and "lessecho" in your current directory. Test the generated programs. 6. When satisfied that it works, if you wish to install it in a public place, type "make install". The default install destinations are: Executables (less, lesskey, lessecho) in /usr/local/bin Documentation (less.nro, lesskey.nro) in /usr/local/man/man1 If you want to install any of these files elsewhere, define bindir and/or mandir to the appropriate directories. If you have any problems building or running "less", suggestions, complaints, etc., you may mail to bug-less@gnu.org. Note to hackers: comments noting possible improvements are enclosed in double curly brackets {{ like this }}. (Note that the above note was originally written at a time when "hackers" most commonly meant "enthusiastic and dedicated computer programmers", not "persons who attempt to circumvent computer security".) ======================================================================= INSTALLATION (MS-DOS systems only, with Microsoft C, Borland C, or DJGPP) 1. Move the distributed source to its own directory. Depending on your compiler, you may need to convert the source to have CR-LF rather than LF as line terminators. 2. If you are using Microsoft C, rename MAKEFILE.DSU to MAKEFILE. If you are using Borland C, rename MAKEFILE.DSB to MAKEFILE. If you are using DJGPP, rename MAKEFILE.DSG to MAKEFILE. 3. Look at MAKEFILE to make sure that the definitions for CC and LIBDIR are correct. CC should be the name of your C compiler and LIBDIR should be the directory where the C libraries reside (for Microsoft C only). If these definitions need to be changed, you can either modify the definitions directly in MAKEFILE, or set your environment variables CC and/or LIBDIR to override the definitions in MAKEFILE. 4. If you wish, you may edit DEFINES.DS to remove some optional features. If you choose not to include some features in your version, you may wish to edit the manual page LESS.MAN and the help page HELP.C to remove the descriptions of the features which you are removing. 5. Run your "make" program and watch the fun. If your "make" requires a flag to import environment variables, you should use that flag. If your compiler runs out of memory, try running "make -n >cmds.bat" and then run cmds.bat. 6. If the make succeeds, it will generate the programs "LESS.EXE" and "LESSKEY.EXE" in your current directory. Test the generated programs. 7. When satisfied that it works, you may wish to install LESS.EXE and LESSKEY.EXE in a directory which is included in your PATH. ======================================================================= INSTALLATION (Windows-95, Windows-98 and Windows-NT systems only, with Borland C or Microsoft Visual C++) 1. Move the distributed source to its own directory. 2. If you are using Borland C, rename Makefile.wnb to Makefile. If you are using Microsoft Visual C++, rename Makefile.wnm to Makefile. 3. Check the Makefile to make sure the definitions look ok. 4. If you wish, you may edit defines.wn to remove some optional features. If you choose not to include some features in your version, you may wish to edit the manual page less.man and the help page help.c to remove the descriptions of the features which you are removing. 5. Type "make" and watch the fun. 6. If the make succeeds, it will generate the programs "less.exe" and "lesskey.exe" in your current directory. Test the generated programs. 7. When satisfied that it works, if you wish to install it in a public place, type "make install". See step 6 of the Unix installation instructions for details on how to change the default installation directories. ======================================================================= INSTALLATION (OS/2 systems only, with EMX C) 1. Move the distributed source to its own directory. 2. Rename Makefile.o2e to Makefile. 3. Check the Makefile to make sure the definitions look ok. 4. If you wish, you may edit defines.o2 to remove some optional features. If you choose not to include some features in your version, you may wish to edit the manual page less.man and the help page help.c to remove the descriptions of the features which you are removing. 5. Type "make" and watch the fun. 6. If the make succeeds, it will generate the programs "less.exe" and "lesskey.exe" in your current directory. Test the generated programs. 7. Make sure you have the emx runtime installed. You need the emx DLLs emx.dll and emxlibcs.dll and also the termcap database, termcap.dat. Make sure you have termcap.dat either in the default location or somewhere in a directory listed in the PATH or INIT environment variables. 8. When satisfied that it works, you may wish to install less.exe, lesskey.exe and scrsize.exe in a directory which is included in your PATH. scrsize.exe is required only if you use a terminal emulator such as xterm or rxvt. ======================================================================= INSTALLATION (OS-9 systems only, with Microware C or Ultra C) 1. Move the distributed source to its own directory. 2. If you are using Microware C, rename Makefile.o9c to Makefile. If you are using Ultra C, rename Makefile.o9u to Makefile. 3. Check the Makefile to make sure the definitions look ok. 4. If you wish, you may edit defines.o9 to remove some optional features. If you choose not to include some features in your version, you may wish to edit the manual page less.man and the help page help.c to remove the descriptions of the features which you are removing. 5. Type "dmake" and watch the fun. The standard OS-9 "make" will probably not work. If you don't have dmake, you can get a copy from os9archive.rtsi.com. 6. If the make succeeds, it will generate the programs "less" and "lesskey" in your current directory. Test the generated programs. 7. When satisfied that it works, if you wish to install it in a public place, type "dmake install". See step 6 of the Unix installation instructions for details on how to change the default installation directories. ======================================================================= ACKNOWLEDGMENTS: Some versions of the less distribution are packaged using Info-ZIP's compression utility. Info-ZIP's software is free and can be obtained as source code or executables from various anonymous-ftp sites, including ftp.uu.net:/pub/archiving/zip. usr/share/doc/sudo/README000064400000006302152537761120011070 0ustar00The sudo philosophy =================== Sudo is a program designed to allow a sysadmin to give limited root privileges to users and log root activity. The basic philosophy is to give as few privileges as possible but still allow people to get their work done. Where to find sudo ================== Before you try and build sudo, *please* make sure you have the current version. The latest sudo may always be gotten via anonymous ftp from ftp.sudo.ws in the directory /pub/sudo/ or from the sudo web site, https://www.sudo.ws/ The distribution is sudo-M.m.tar.gz where `M' is the major version number and `m' is the minor version number. BETA versions of sudo may also be available. If you join the `sudo-workers' mailing list you will get the BETA announcements (see the `Mailing lists' section below). What's new ========== See the NEWS file for a list of major changes in this release. For a complete list of changes, see the ChangeLog file. For a summary of major changes to the current stable release, see the web page, https://www.sudo.ws/stable.html. If you are upgrading from an earlier version of Sudo, please see the UPGRADE file in the doc directory. For a history of sudo please see the HISTORY file in the doc directory. You can find a list of contributors to sudo in the doc/CONTRIBUTORS file. Building the release ==================== Please read the installation guide in the `INSTALL' file before trying to build sudo. Pay special attention to the "OS dependent notes" section. Copyright ========= Sudo is distributed under an ISC-style license. Please refer to the `LICENSE' file included with the release for details. Mailing lists ============= sudo-announce This list receives announcements whenever a new version of sudo is released. https://www.sudo.ws/mailman/listinfo/sudo-announce sudo-blog This list receives a message when a new sudo blog article is available. https://www.sudo.ws/mailman/listinfo/sudo-blog sudo-commits This list receives a message for each commit made to the sudo source repository. https://www.sudo.ws/mailman/listinfo/sudo-commits sudo-users This list is for questions and general discussion about sudo. https://www.sudo.ws/mailman/listinfo/sudo-users sudo-workers This list is for people working on and porting sudo. https://www.sudo.ws/mailman/listinfo/sudo-workers To subscribe to a list, visit its url (as listed above) and enter your email address to subscribe. Digest versions are available but these are fairly low traffic lists so the digest versions are not a significant win. Mailing list archives are also available. See the mailing list web sites for the appropriate links. Web page ======== There is a sudo web page at https://www.sudo.ws/ that contains an overview of sudo, documentation, downloads, a bug tracker, information about beta versions and other useful info. Bug reports =========== If you have found what you believe to be a bug, you can file a bug report in the sudo bug database, on the web at https://bugzilla.sudo.ws/. Please read over the `TROUBLESHOOTING' file in the doc directory *before* submitting a bug report. When reporting bugs, please be sure to include the version of sudo you are using as well as the platform you are running it on. opt/alt/t1lib/usr/share/doc/alt-t1lib/README000064400000015662152537762250014322 0ustar00 -------------------------------------------------------------------------- --------------------------- t1lib-README --------------------------------- -------------------------------------------------------------------------- /*-------------------------------------------------------------------------- ----- File: REAMDE.t1lib-5.1.2 ----- Author: Rainer Menzner (Rainer.Menzner@web.de) ----- Date: 2007-12-23 ----- Description: This is file README.t1lib of the t1lib-package. It contains an overview and brief installation instructions for the t1-library. ----- Copyright: t1lib is copyrighted (c) Rainer Menzner, 1996-2007. As of version 0.5, t1lib is distributed under the GNU General Public Library License. The conditions can be found in the files LICENSE and LGPL, which should reside in the toplevel directory of the distribution. Please note that there are parts of t1lib that are subject to other licenses: The parseAFM-package is copyrighted by Adobe Systems Inc. The type1 rasterizer is copyrighted by IBM and the X11-consortium. ----- Warranties: Of course, there's NO WARRANTY OF ANY KIND :-) ----- Credits: I want to thank IBM and the X11-consortium for making their rasterizer freely available. Also thanks to Piet Tutelaers for his ps2pk, from which I took the rasterizer sources in a format independent from X11. Thanks to all people who make free software living! --------------------------------------------------------------------------*/ About t1lib: ------------ t1lib is a library distributed under the GNU General Public Library License for generating character- and string-glyphs from Adobe Type 1 fonts under UNIX. t1lib uses most of the code of the X11 rasterizer donated by IBM to the X11-project. But some disadvantages of the rasterizer being included in X11 have been eliminated. Here are some of the features: - t1lib is completely independent of X11 (although the program provided for testing the library needs X11) - fonts are made known to library by means of a font database file at runtime - searchpaths for all types of input files are configured by means of a configuration file at runtime - characters are rastered as they are needed - characters and complete strings may be rastered by a simple function call - when rastering strings, pairwise kerning information from .afm-files may optionally be taken into account - an interface to ligature-information of afm-files is provided - a program to generate afm-files from Type 1 font files is included - rotation and arbitrary transformations are supported - there's support for extending and slanting fonts - underlining, overlining and overstriking is supported - new encoding vectors may be loaded at runtime and fonts may be reencoded using these encoding vectors - antialiasing is implemented - Right-To-Left typesetting is supported - Font subsetting is easily possible - support of composite character information - stroking of character outlines with variable strokewidths - An interactive test program called "xglyph" is included in the distribution. This program allows to test all of the features of the library. It requires X11. Changes and New Features: ------------------------- - See the file Changes in the T1Lib top-directory for information on new features. Installation: ------------- ----------------------------------------------------------------------------- Note: VMS-users should examine configure.com in the toplevel directory, which is a configure-script for VMS, kindly contributed by John Hasstedt and now maintained by Martin Zinser. This file contains notes on how to compile t1lib on VMS. ----------------------------------------------------------------------------- After unpacking the archive (what you obviously did already), change to subdirectory t1lib-..../ and type: ./configure This will create the Makefiles. Then type make In order to use the testprogram xglyph, X11 needs to be installed on your system. If you have difficulties during configuring and building t1lib, cd to directory t1lib-.../doc and execute $ latex t1lib_doc.tex $ makeindex t1lib_doc $ latex t1lib_doc.tex $ latex t1lib_doc.tex This will generate the docs which contain a more detailed description of the build-process. LaTeX2e is required. Alternatively, you can scan the preformatted pdf-documentation. Before installing the libraries, you should test whether all things work correct: 1) Change to subdirectory xglyph 2) Start the program xglyph 3) Ensure that the output-window is not hidden behind another window. 4) Before doing anything other, click on button "String". The string "Test" should now be rastered and displayed in the output-window, using font BitstreamCharterBTRoman at 100bp without kerning. If that works, most probably all works for you. 5) Have a look at t1lib_doc.dvi in the doc-subdirectory of the package and read the chapter on xglyph. However, most of this program is self-explaining, so that you might want to omit this step. 6) Play with the program and enjoy. 7) If you do not have X11, you can still check whether t1lib works for you. Copy one of the pfb-files from t1lib-.../Fonts/type1, say, bchr.pfb, to the type1afm-subdirectory, and run type1afm bchr.pfb If the afm-file bchr.afm is generated, t1lib will most probably work on your system. Documentation: -------------- As mentioned above, documentation is provided in LaTeX2e-format subdirectory T1Lib/doc. It should have been built during the build. The section on runtime setup is really important, because programs may fail due to an invalid or incomplete runtime setup, although the programs itself may be correct! A preformatted Version is also available in pdf. How to get it: -------------- t1lib is available at ftp://sunsite.unc.edu/pub/Linux/libs/graphics/t1lib-x.y[.z].tar.gz where x.y[.z] is the version identification. Closing: -------- You are allowed to send the author lots of money and dozents of gifts, but you needn't :-) If you have any comments to this library, feedback is wanted. Send eMail to: Rainer.Menzner@web.de Future: ------- Within the past years, my time has constantly and increasingly become spare so that I hardly found time to further develop t1lib. And developing free software is undoubtedly related to a certain amount of fun, which in turn only can come up if you are relaxed with respect to time ... Since t1lib now has reached a reasonably stable state, I intend to more or less freeze the development of new features at this point. Of course, bug fixes etc. should be possible further. If there is somebody out there willing to further develop t1lib, he or she is welcome to contact me ... Have fun, -Rainer usr/share/doc/perl-Thread-Queue/README000064400000001107152540001410013324 0ustar00Thread::Queue version 3.13 ========================== Thread-safe queues INSTALLATION To install this module type the following: perl Makefile.PL make make test make install DEPENDENCIES This module requires Perl 5.8.0 or later built with 'ithreads'. This module requires these other modules: threads::shared version 1.21 or later Scalar::Util version 1.10 or later Test::More 0.50 or later (for testing) Thread::Semaphore (for testing) COPYRIGHT AND LICENCE Maintained by Jerry D. Hedden Same licence as Perl. # EOF usr/share/doc/libtool-ltdl-devel/README000064400000001265152540001760013606 0ustar00This is GNU libltdl, a system independent dlopen wrapper for GNU libtool. It supports the following dlopen interfaces: * dlopen (POSIX) * shl_load (HP-UX) * LoadLibrary (Win16 and Win32) * load_add_on (BeOS) * GNU DLD (emulates dynamic linking for static libraries) * dyld (darwin/Mac OS X) * libtool's dlpreopen -- Copyright (C) 1999, 2003, 2011-2015 Free Software Foundation, Inc. Written by Thomas Tanner, 1999 This file is part of GNU Libtool. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without warranty of any kind. usr/share/doc/perl-Types-Serialiser/README000064400000016260152540024260014255 0ustar00NAME Types::Serialiser - simple data types for common serialisation formats SYNOPSIS DESCRIPTION This module provides some extra datatypes that are used by common serialisation formats such as JSON or CBOR. The idea is to have a repository of simple/small constants and containers that can be shared by different implementations so they become interoperable between each other. SIMPLE SCALAR CONSTANTS Simple scalar constants are values that are overloaded to act like simple Perl values, but have (class) type to differentiate them from normal Perl scalars. This is necessary because these have different representations in the serialisation formats. BOOLEANS (Types::Serialiser::Boolean class) This type has only two instances, true and false. A natural representation for these in Perl is 1 and 0, but serialisation formats need to be able to differentiate between them and mere numbers. $Types::Serialiser::true, Types::Serialiser::true This value represents the "true" value. In most contexts is acts like the number 1. It is up to you whether you use the variable form ($Types::Serialiser::true) or the constant form ("Types::Serialiser::true"). The constant is represented as a reference to a scalar containing 1 - implementations are allowed to directly test for this. $Types::Serialiser::false, Types::Serialiser::false This value represents the "false" value. In most contexts is acts like the number 0. It is up to you whether you use the variable form ($Types::Serialiser::false) or the constant form ("Types::Serialiser::false"). The constant is represented as a reference to a scalar containing 0 - implementations are allowed to directly test for this. $is_bool = Types::Serialiser::is_bool $value Returns true iff the $value is either $Types::Serialiser::true or $Types::Serialiser::false. For example, you could differentiate between a perl true value and a "Types::Serialiser::true" by using this: $value && Types::Serialiser::is_bool $value $is_true = Types::Serialiser::is_true $value Returns true iff $value is $Types::Serialiser::true. $is_false = Types::Serialiser::is_false $value Returns false iff $value is $Types::Serialiser::false. ERROR (Types::Serialiser::Error class) This class has only a single instance, "error". It is used to signal an encoding or decoding error. In CBOR for example, and object that couldn't be encoded will be represented by a CBOR undefined value, which is represented by the error value in Perl. $Types::Serialiser::error, Types::Serialiser::error This value represents the "error" value. Accessing values of this type will throw an exception. The constant is represented as a reference to a scalar containing "undef" - implementations are allowed to directly test for this. $is_error = Types::Serialiser::is_error $value Returns false iff $value is $Types::Serialiser::error. NOTES FOR XS USERS The recommended way to detect whether a scalar is one of these objects is to check whether the stash is the "Types::Serialiser::Boolean" or "Types::Serialiser::Error" stash, and then follow the scalar reference to see if it's 1 (true), 0 (false) or "undef" (error). While it is possible to use an isa test, directly comparing stash pointers is faster and guaranteed to work. For historical reasons, the "Types::Serialiser::Boolean" stash is just an alias for "JSON::PP::Boolean". When printed, the classname with usually be "JSON::PP::Boolean", but isa tests and stash pointer comparison will normally work correctly (i.e. Types::Serialiser::true ISA JSON::PP::Boolean, but also ISA Types::Serialiser::Boolean). A GENERIC OBJECT SERIALIATION PROTOCOL This section explains the object serialisation protocol used by CBOR::XS. It is meant to be generic enough to support any kind of generic object serialiser. This protocol is called "the Types::Serialiser object serialisation protocol". ENCODING When the encoder encounters an object that it cannot otherwise encode (for example, CBOR::XS can encode a few special types itself, and will first attempt to use the special "TO_CBOR" serialisation protocol), it will look up the "FREEZE" method on the object. Note that the "FREEZE" method will normally be called *during* encoding, and *MUST NOT* change the data structure that is being encoded in any way, or it might cause memory corruption or worse. If it exists, it will call it with two arguments: the object to serialise, and a constant string that indicates the name of the data model. For example CBOR::XS uses "CBOR", and the JSON and JSON::XS modules (or any other JSON serialiser), would use "JSON" as second argument. The "FREEZE" method can then return zero or more values to identify the object instance. The serialiser is then supposed to encode the class name and all of these return values (which must be encodable in the format) using the relevant form for Perl objects. In CBOR for example, there is a registered tag number for encoded perl objects. The values that "FREEZE" returns must be serialisable with the serialiser that calls it. Therefore, it is recommended to use simple types such as strings and numbers, and maybe array references and hashes (basically, the JSON data model). You can always use a more complex format for a specific data model by checking the second argument, the data model. The "data model" is not the same as the "data format" - the data model indicates what types and kinds of return values can be returned from "FREEZE". For example, in "CBOR" it is permissible to return tagged CBOR values, while JSON does not support these at all, so "JSON" would be a valid (but too limited) data model name for "CBOR::XS". similarly, a serialising format that supports more or less the same data model as JSON could use "JSON" as data model without losing anything. DECODING When the decoder then encounters such an encoded perl object, it should look up the "THAW" method on the stored classname, and invoke it with the classname, the constant string to identify the data model/data format, and all the return values returned by "FREEZE". EXAMPLES See the "OBJECT SERIALISATION" section in the CBOR::XS manpage for more details, an example implementation, and code examples. Here is an example "FREEZE"/"THAW" method pair: sub My::Object::FREEZE { my ($self, $model) = @_; ($self->{type}, $self->{id}, $self->{variant}) } sub My::Object::THAW { my ($class, $model, $type, $id, $variant) = @_; $class->new (type => $type, id => $id, variant => $variant) } BUGS The use of overload makes this module much heavier than it should be (on my system, this module: 4kB RSS, overload: 260kB RSS). SEE ALSO Currently, JSON::XS and CBOR::XS use these types. AUTHOR Marc Lehmann http://home.schmorp.de/ usr/share/doc/p11-kit/README000064400000003371152540030460011275 0ustar00# p11-kit [![Build Status](https://travis-ci.org/p11-glue/p11-kit.svg?branch=master)](https://travis-ci.org/p11-glue/p11-kit) [![Coverage Status](https://img.shields.io/coveralls/p11-glue/p11-kit.svg)](https://coveralls.io/r/p11-glue/p11-kit) [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/1627/badge)](https://bestpractices.coreinfrastructure.org/en/projects/1627) [![Total alerts](https://img.shields.io/lgtm/alerts/g/p11-glue/p11-kit.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/p11-glue/p11-kit/alerts/) [![Language grade: C/C++](https://img.shields.io/lgtm/grade/cpp/g/p11-glue/p11-kit.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/p11-glue/p11-kit/context:cpp) p11-kit aims to solve problems with coordinating the use of [PKCS #11] by different components or libraries living in the same process, by providing a way to load and enumerate PKCS #11 modules, as well as a standard configuration setup for installing PKCS #11 modules in such a way that they're discoverable. # Documentation * [Main site](https://p11-glue.github.io/p11-glue/p11-kit.html) * [Manual](https://p11-glue.github.io/p11-glue/p11-kit/manual/) # Building To build and install p11-kit, you can use the following commands: ```console $ meson _build $ ninja -C _build $ ninja -C _build test # ninja -C _build install ``` If you install it locally for testing purposes, you may want to specify `-Dsystemd=disabled -Dbash_completion=disabled`. # Releases Releases are made available via the [primary github site](https://github.com/p11-glue/p11-kit/releases). They are signed with the current maintainer's [OpenPGP key](https://keys.openpgp.org/search?q=462225C3B46F34879FC8496CD605848ED7E69871). [PKCS #11]: https://en.wikipedia.org/wiki/PKCS_11 usr/lib64/python2.7/Demo/parser/README000064400000002006152540040470013104 0ustar00These files are from the large example of using the `parser' module. Refer to the Python Library Reference for more information. It also contains examples for the AST parser. Files: ------ FILES -- list of files associated with the parser module. README -- this file. docstring.py -- sample source file containing only a module docstring. example.py -- module that uses the `parser' module to extract information from the parse tree of Python source code. simple.py -- sample source containing a "short form" definition. source.py -- sample source code used to demonstrate ability to handle nested constructs easily using the functions and classes in example.py. test_parser.py program to put the parser module through its paces. test_unparse.py tests for the unparse module unparse.py AST (2.7) based example to recreate source code from an AST. Enjoy! usr/share/doc/perl-Test-Harness/README000064400000001035152540056420013366 0ustar00Test-Harness 3.24 INSTALLATION To install Test::Harness using ExtUtils::MakeMaker do: perl Makefile.PL make make test make install To use Module::Build (preferred) do: perl NotBuild.PL ./Build ./Build test ./Build install This will install Test::Harness and the "prove" program. Type prove --help for more information. COPYRIGHT AND LICENCE Copyright (C) 2006, 2007 Curtis "Ovid" Poe This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. usr/share/doc/telnet/README000064400000011304152540067150011403 0ustar00This is netkit-telnet-0.17 for Linux. This package updates netkit-telnet-0.16. If you're reading this off a CD, go right away and check the net archives for later versions and security fixes. As of this writing the home site for NetKit is ftp://ftp.uk.linux.org/pub/linux/Networking/netkit Contents: telnet Client for telnet protocol telnetd Daemon for telnet protocol Note: These programs do not provide encryption or strong authentication of network connections. As such, their use for remote logins is discouraged. The "ssh" protocol and package can be used instead. Requires: Working compiler, libc, and kernel, and a recent version of ncurses or libtermcap. Note that while telnet uses the C++ compiler, it neither requires nor uses libstdc++. Security: This release contains no security fixes relative to netkit-telnet-0.16. However, versions prior to that should not be used. Telnetd is evil legacy code and is not trustworthy - do not run it unless you absolutely need it. This release contains experimental login wrapper code to permit running telnetd as a non-root user. This code is not built by default. Look in the "telnetlogin" directory and the telnetlogin man page contained therein for more information. Old kernels: If you have an old kernel, you may need to apply the enclosed pty-hang patch to it. I don't unfortunately know at the moment which kernel versions need the patch, but current 2.0.x and 2.2.x should be ok without it. The following test will tell you if you need the patch: telnet to localhost, do "cat >/dev/null", and type 256 characters without any newlines. If you need the patch, telnetd will hang completely at this point. If it refuses to accept more input, but does not hang, you do not need the patch. Installation: Do "./configure --help" and decide what options you want. The defaults should be suitable for most Linux systems. Then run the configure script. Do "make" to compile. Then (as root) do "make install". Save a backup copy of any mission-critical program in case the new one doesn't work, and so forth. We warned you. If you get gcc warnings from files in /usr/include, they are due to problems in your libc, not netkit. (You may only see them when compiling netkit because netkit turns on a lot of compiler warnings.) DEC CC: The DEC compiler for the Alpha is now freely available. This is a much better compiler with gcc, that is, it generates much better code. If you have the DEC compiler, you can explicitly use the DEC compiler instead of gcc by configuring like this: ./configure --with-c-compiler=ccc It is known to generate spurious warnings on some files. Also, some headers from some versions of glibc confuse it; that may prevent netkit from working. Other problems should be reported as bugs. Note that there is no corresponding C++ compiler, so telnet will be compiled with g++ anyway. Bugs: Please make sure the header files in /usr/include match the libc version installed in /lib and /usr/lib. If you have weird problems this is the most likely culprit. Also, before reporting a bug, be sure you're working with the latest version. If something doesn't compile for you, fix it and send diffs. If you can't, send the compiler's error output. If it compiles but doesn't work, send as complete a bug report as you can. Patches and fixes are welcome, as long as you describe adequately what they're supposed to fix. Please, one patch per distinct fix. Please do NOT send the whole archive back or reindent the source. Be sure to send all correspondence in e-mail to the netkit address. Postings to netnews or mailing lists will not be seen due to the enormous volume. Also, anything that doesn't get filed in the bug database is quite likely to end up forgotten. Please don't report known bugs (see the BUGS file(s)) unless you are including fixes. :-) Mail should be sent to: netbug@ftp.uk.linux.org Early in April 2000, a hacker broke into the machine that was hosting the netkit bug database for me and trashed it. Unfortunately, it seems backups hadn't gotten done for a while, so three months of mail (since mid-January) was lost. So, if you sent something and didn't hear back, or you sent something, heard back, but the changes failed to appear in this release (unlikely but possible) - please resend. Please see http://www.hcs.harvard.edu/~dholland/computers/netkit.html if you are curious why it was so long between the 0.10 and 0.16 releases. Future plans for netkit maintenance are still up in the air, but in the meantime new releases will still appear from time to time. I don't have a whole lot of cycles to spare to work on netkit, so things are likely to continue to be fairly slow. David A. Holland 23 July 2000 usr/share/doc/perl-Config-Perl-V/README000064400000002012152540113160013345 0ustar00Config::Perl::V A module that will return you the output of 'perl -V' in a structure. DESCRIPTION The command 'perl -V' will return you an excerpt from the %Config hash combined with the output of 'perl -V' that is not stored inside %Config, but only available to the perl binary itself. PREREQUISITES A working perl BUILDING AND INSTALLATION As most perl modules $ perl Makefile.PL $ make test $ make install UNINST=1 SOURCE CODE Recent changes can be (re)viewed in the public GIT repository at http://repo.or.cz/w/Config-Perl-V Feel free to clone your own copy: $ git clone https://github.com/Tux/Config-Perl-V Config-Perl-V or get it as a tgz: $ wget --output-document=Config-Perl-V.tgz \ https://github.com/Tux/Config-Perl-V/archive/master.tar.gz CHANGES See Changelog COPYRIGHT AND LICENSE Copyright (C) 2009-2018 H.Merijn Brand This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. usr/share/doc/perl-HTML-Parser/README000064400000003673152540131630013053 0ustar00OVERVIEW The HTML-Parser distribution is is a collection of modules that parse and extract information from HTML documents. The modules present in this collection are: HTML::Parser - The parser base class. It receives arbitrary sized chunks of the HTML text, recognizes markup elements, and separates them from the plain text. As different kinds of markup and text are recognized, the corresponding event handlers are invoked. HTML::Entities - Provides functions to encode and decode text with embedded HTML <entities>. HTML::HeadParser - A lightweight HTML::Parser subclass that extracts information from the section of an HTML document. HTML::LinkExtor - An HTML::Parser subclass that extracts links from an HTML document. HTML::PullParser - An alternative interface to the basic parser that does not require event driven programming. HTML::TokeParser - An HTML::PullParser subclass with fixed token setup and methods for extracting text. Many simple parsing needs are probably best attacked with this module. In addition take a look at the HTML-Tree package that build on HTML::Parser to create and extract information from HTML syntax trees (similar to HTML DOM). PREREQUISITES In order to install and use this package you will need Perl version 5.8 or better. The HTML::Tagset module should be installed. If you intend to use the HTML::HeadParser you probably want to install libwww-perl too. INSTALLATION Just follow the usual procedure: perl Makefile.PL make make test make install REPORTING BUGS Bug reports and issues for discussion about these modules can be sent to the mailing list. COPYRIGHT © 1995-2016 Gisle Aas. All rights reserved. © 1999-2000 Michael A. Chase. All rights reserved. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. usr/share/doc/python3-gpg/README000064400000005030152540131760012265 0ustar00 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ GPG - GPGME BINDINGS FOR PYTHON ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Table of Contents ───────────────── 1 Mailing List 2 Bugs 3 Authors 4 History The "gpg" module is a python interface to the GPGME library: "gpg" offers two interfaces, one is a high-level, curated, and idiomatic interface that is implemented as a shim on top of the low-level interface automatically created using SWIG. This way we make simple things easy, while still providing the entire functionality of the underlying library. 1 Mailing List ══════════════ For general discussion and help see the gnupg-users mailing list: For development see the gnupg-devel mailing list: 2 Bugs ══════ Please report bugs using our bug tracker with tag (aka project) 'gpgme'. 3 Authors ═════════ PyME was created by John Goerzen, and maintained, developed, and cherished by Igor Belyi, Martin Albrecht, Ben McGinnes, Justus Winter, and everyone who contributed to it in any way. In 2016 we merged a port of PyME to into the GPGME repository, and development will continue there. Please see the VCS history for the list of contributors, and if you do find bugs, or want to contribute, please get in touch and help maintain the python gpg bindings. Please see the section 'History' further down this document for references to previous versions. 4 History ═════════ • The python bindings were renamed from PyME to "gpg" in 2016. • The bindings have been merged into the GPGME repository in 2016. • The latest version of PyME for Python 3.2 and above (as of May, 2015) is v0.9.1. • The latest version of PyME for Python 2.6 and 2.7 (as of this writing) is v0.9.0. • A previous version of PyME v0.8.0 can be found on sourceforge: • A previous version of PyME v0.5.1 which works with GPGME v0.3.15 can be found on John Goerzen's PyME page: usr/share/doc/libipt/README000064400000004157152540140360011376 0ustar00Intel(R) Processor Trace Decoder Library ======================================== The Intel Processor Trace (Intel PT) Decoder Library is Intel's reference implementation for decoding Intel PT. It can be used as a standalone library or it can be partially or fully integrated into your tool. The library comes with a set of sample tools built on top of it and a test system built on top of the sample tools. The samples demonstrate how to use the library and may serve as a starting point for integrating the library into your tool. Go to https://software.intel.com/en-us/intel-platform-analysis-library for support of upcoming (non-public) processors (NDA required). Contents -------- README this file libipt A packet encoder/decoder library Optional Contents and Samples ----------------------------- ptdump Example implementation of a packet dumper ptxed Example implementation of a trace disassembler pttc A trace test generator ptunit A simple unit test system script A collection of scripts test A collection of tests include A collection of substitute headers doc A document describing the build A document describing how to get started A document describing the usage of the decoder library A document describing how to capture trace A document describing pttc doc/man Man pages for the encoder/decoder library Dependencies ------------ We use cmake for building. cmake The cross-platform open-source build system. http://www.cmake.org Other packages you need for some of the above optional components. xed The Intel x86 instruction encoder and decoder. http://www.intel.com/software/xed This is needed to build and run ptxed. yasm The Yasm Modular Assembler http://github.com/yasm This is needed to run pttc. pandoc A universal document converter http://pandoc.org This is needed for man pages. usr/share/doc/perl-Data-Dump/README000064400000002276152540215460012633 0ustar00NAME Data::Dump - Pretty printing of data structures SYNOPSIS use Data::Dump qw(dump ddx); $str = dump(@list); @copy_of_list = eval $str; # or use it for easy debug printout ddx localtime; DESCRIPTION This module provide functions that takes a list of values as their argument and produces a string as its result. The string contains Perl code that, when "eval"ed, produces a deep copy of the original arguments. The main feature of the module is that it strives to produce output that is easy to read. Example: @a = (1, [2, 3], {4 => 5}); dump(@a); Produces: (1, [2, 3], { 4 => 5 }) If you dump just a little data, it is output on a single line. If you dump data that is more complex or there is a lot of it, line breaks are automatically added to keep it easy to read. AUTHORS The "Data::Dump" module is written by Gisle Aas , based on "Data::Dumper" by Gurusamy Sarathy . Copyright 1998-2010 Gisle Aas. Copyright 1996-1998 Gurusamy Sarathy. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. usr/share/doc/krb5-libs/README000064400000040003152540255530011701 0ustar00 Kerberos Version 5, Release 1.18 Release Notes The MIT Kerberos Team Copyright and Other Notices --------------------------- Copyright (C) 1985-2020 by the Massachusetts Institute of Technology and its contributors. All rights reserved. Please see the file named NOTICE for additional notices. Documentation ------------- Unified documentation for Kerberos V5 is available in both HTML and PDF formats. The table of contents of the HTML format documentation is at doc/html/index.html, and the PDF format documentation is in the doc/pdf directory. Additionally, you may find copies of the HTML format documentation online at https://web.mit.edu/kerberos/krb5-latest/doc/ for the most recent supported release, or at https://web.mit.edu/kerberos/krb5-devel/doc/ for the release under development. More information about Kerberos may be found at https://web.mit.edu/kerberos/ and at the MIT Kerberos Consortium web site https://kerberos.org/ Building and Installing Kerberos 5 ---------------------------------- Build documentation is in doc/html/build/index.html or doc/pdf/build.pdf. The installation guide is in doc/html/admin/install.html or doc/pdf/install.pdf. If you are attempting to build under Windows, please see the src/windows/README file. Reporting Bugs -------------- Please report any problems/bugs/comments by sending email to krb5-bugs@mit.edu. You may view bug reports by visiting https://krbdev.mit.edu/rt/ and using the "Guest Login" button. Please note that the web interface to our bug database is read-only for guests, and the primary way to interact with our bug database is via email. DES no longer supported ----------------------- Beginning with the krb5-1.18 release, single-DES encryption types are no longer supported. Major changes in 1.18.2 (2020-05-21) ------------------------------------ This is a bug fix release. * Fix a SPNEGO regression where an acceptor using the default credential would improperly filter mechanisms, causing a negotiation failure. * Fix a bug where the KDC would fail to issue tickets if the local krbtgt principal's first key has a single-DES enctype. * Add stub functions to allow old versions of OpenSSL libcrypto to link against libkrb5. * Fix a NegoEx bug where the client name and delegated credential might not be reported. krb5-1.18.2 changes by ticket ID -------------------------------- 8898 Fix overzealous SPNEGO src_name/deleg_cred release 8905 Add stubs for some removed replay cache functions 8906 KDC can select local TGT key of unsupported enctype 8908 Fix SPNEGO acceptor mech filtering Major changes in 1.18.1 (2020-04-13) ------------------------------------ This is a bug fix release. * Fix a crash when qualifying short hostnames when the system has no primary DNS domain. * Fix a regression when an application imports "service@" as a GSS host-based name for its acceptor credential handle. * Fix KDC enforcement of auth indicators when they are modified by the KDB module. * Fix removal of require_auth string attributes when the LDAP KDB module is used. * Fix a compile error when building with musl libc on Linux. * Fix a compile error when building with gcc 4.x. * Change the KDC constrained delegation precedence order for consistency with Windows KDCs. krb5-1.18.1 changes by ticket ID -------------------------------- 8876 Fix AS-REQ checking of KDB-modified indicators 8877 Cannot remove require_auth attribute with LDAP KDB module 8880 Fix Linux build error with musl libc 8881 Segfault in k5_primary_domain 8884 Change KDC constrained-delegation precedence order 8886 Document client keytab usage 8888 compile failure on red hat 6 8891 Codespell report for "krb5" (on fossies.org) 8894 Correct formatting of trace log microseconds 8895 ksu does not honor KRB5CCNAME 8896 Fix typo in SPAKE modprinc example Major changes in 1.18 (2019-02-12) ---------------------------------- Administrator experience: * Remove support for single-DES encryption types. * Change the replay cache format to be more efficient and robust. Replay cache filenames using the new format end with ".rcache2" by default. * setuid programs will automatically ignore environment variables that normally affect krb5 API functions, even if the caller does not use krb5_init_secure_context(). * Add an "enforce_ok_as_delegate" krb5.conf relation to disable credential forwarding during GSSAPI authentication unless the KDC sets the ok-as-delegate bit in the service ticket. * Use the permitted_enctypes krb5.conf setting as the default value for default_tkt_enctypes and default_tgs_enctypes. Developer experience: * Implement krb5_cc_remove_cred() for all credential cache types. * Add the krb5_pac_get_client_info() API to get the client account name from a PAC. Protocol evolution: * The KDC will no longer issue tickets with RC4 session keys unless explicitly configured with the new allow_rc4 variable. * Add KDC support for S4U2Self requests where the user is identified by X.509 certificate. (Requires support for certificate lookup from a third-party KDB module.) * Remove support for an old ("draft 9") variant of PKINIT. * Add support for Microsoft NegoEx. (Requires one or more third-party GSS modules implementing NegoEx mechanisms.) * Honor the transited-policy-checked ticket flag on application servers, eliminating the requirement to configure capaths on servers in some scenarios. User experience: * Add support for "dns_canonicalize_hostname=fallback""`, causing host-based principal names to be tried first without DNS canonicalization, and again with DNS canonicalization if the un-canonicalized server is not found. * Expand single-component hostnames in host-based principal names when DNS canonicalization is not used, adding the system's first DNS search path as a suffix. Add a "qualify_shortname" krb5.conf relation to override this suffix or disable expansion. Code quality: * The libkrb5 serialization code (used to export and import krb5 GSS security contexts) has been simplified and made type-safe. * The libkrb5 code for creating KRB-PRIV, KRB-SAFE, and KRB-CRED messages has been revised to conform to current coding practices. * The test suite has been modified to work with macOS System Integrity Protection enabled. * The test suite incorporates soft-pkcs11 so that PKINIT PKCS11 support can always be tested. krb5-1.18 changes by ticket ID ------------------------------ 5891 kdb_ldap should treat entries with "nsAccountLock: true" as locked 7135 gssapi mechanism glue dlcloses objects potentially after they are already unloaded 7765 Some ccache functions not exported 7871 KDC should not fail requests due to forwardable/proxiable option 8349 use __APPLE_USE_RFC_3542 to get IPV6_PKTINFO on Mac OS X 8761 ksu doesn't allow acquisition of non-forwardable tickets 8764 get_creds can add redundant cache entry for referral ticket 8765 Add dns_canonicalize_hostname=fallback support 8773 Mark deprecated enctypes when used 8775 Process SPNEGO error tokens through mech 8777 S4U2Self with X.509 certificate bugs 8778 Add new kvno protocol transition options 8780 Expand S4U2Self exception in KDC lineage check 8781 Add KDC support for X.509 S4U2Self requests 8784 Use better name type for PKINIT KDC certs 8785 Use memory replay cache for DO_TIME auth contexts 8786 Hash-based replay cache implementation 8788 Rename configure.in to configure.ac 8791 Add option to build without libkeyutils 8792 Implement krb5_cc_remove_cred for remaining types 8793 Remove srvtab support 8794 Remove kadmin RPC support for setting v4 key 8795 configure: chech for libncursesw, if libncurses is not found 8798 Remove ovsec_adm_export dump format support 8799 Check more errors in OpenSSL crypto backend 8800 Add secure_getenv() support 8804 Remove checksum type profile variables 8805 Modernize example enctypes in documentation 8806 kdb5_util errors on command arguments matching command names 8807 Set a more modern default ksu CMD_PATH 8808 Remove single-DES support 8811 In klist, display ticket server if different 8812 Remove support for no-flags SAM-2 preauth 8815 Verify PAC client name independently of name-type 8816 kproplog cannot display LOCKDOWN_KEYS attribute 8817 Remove PKINIT draft 9 support 8819 gss_set_allowable_enctypes() fails if any enctypes aren't recognized 8823 Allow the KDB to see and modify auth indicators 8827 Change definition of KRB5_KDB_FLAG_CROSS_REALM 8828 Add API to get client account name from PAC 8829 Fix authdata signatures for non-TGT AS-REQs 8833 Add environment variable for GSS mech config 8842 Record start time of AS requests earlier in KDC 8843 Allow client canonicalization in non-krbtgt AS-REP 8844 SPNEGO should filter mechs on acceptor with gss_acquire_cred() 8845 SPNEGO init/accept output parameter bugs 8847 Add enforce_ok_as_delegate setting 8849 Install gssapi/gssapi_alloc.h properly 8851 NegoEx 8855 Qualify short hostnames when not using DNS 8856 segfault in krb5-1.17.1/src/lib/krb5/krb/authdata.c 8857 Don't warn in kadmin when no policy is specified 8858 Do not always canonicalize enterprise principals 8859 Remove KRB5_KDB_FLAG_ALIAS_OK 8860 Allow kprop over NATs 8861 Fix LDAP policy enforcement of pw_expiration 8864 Fix error handling in gssint_mechglue_init() 8865 Check cross-realm TGT name for RBCD requests 8866 Fix S4U client authdata handling 8867 Fix KDC crash in handle_signticket 8868 Allow cross-realm RBCD with PAC and other authdata 8869 Apply permitted_enctypes to KDC request enctypes 8870 Honor transited-policy-checked flag in servers 8872 Put KDB authdata first 8873 Don't assume OpenSSL failures are memory errors 8874 Always use S4U2Proxy second ticket parsed authdata Acknowledgements ---------------- Past Sponsors of the MIT Kerberos Consortium: Apple Carnegie Mellon University Centrify Corporation Columbia University Cornell University The Department of Defense of the United States of America (DoD) Fidelity Investments Google Iowa State University MIT Michigan State University Microsoft MITRE Corporation Morgan-Stanley The National Aeronautics and Space Administration of the United States of America (NASA) Network Appliance (NetApp) Nippon Telephone and Telegraph (NTT) US Government Office of the National Coordinator for Health Information Technology (ONC) Oracle Pennsylvania State University Red Hat Stanford University TeamF1, Inc. The University of Alaska The University of Michigan The University of Pennsylvania Past and present members of the Kerberos Team at MIT: Danilo Almeida Jeffrey Altman Justin Anderson Richard Basch Mitch Berger Jay Berkenbilt Andrew Boardman Bill Bryant Steve Buckley Joe Calzaretta John Carr Mark Colan Don Davis Sarah Day Alexandra Ellwood Carlos Garay Dan Geer Nancy Gilman Matt Hancher Thomas Hardjono Sam Hartman Paul Hill Marc Horowitz Eva Jacobus Miroslav Jurisic Barry Jaspan Benjamin Kaduk Geoffrey King Kevin Koch John Kohl HaoQi Li Jonathan Lin Peter Litwack Scott McGuire Steve Miller Kevin Mitchell Cliff Neuman Paul Park Ezra Peisach Chris Provenzano Ken Raeburn Jon Rochlis Jeff Schiller Jen Selby Robert Silk Bill Sommerfeld Jennifer Steiner Ralph Swick Brad Thompson Harry Tsai Zhanna Tsitkova Ted Ts'o Marshall Vale Taylor Yu The following external contributors have provided code, patches, bug reports, suggestions, and valuable resources: Ian Abbott Brandon Allbery Russell Allbery Brian Almeida Michael B Allen Pooja Anil Jeffrey Arbuckle Heinz-Ado Arnolds Derek Atkins Mark Bannister David Bantz Alex Baule David Benjamin Thomas Bernard Adam Bernstein Arlene Berry Jeff Blaine Toby Blake Radoslav Bodo Sumit Bose Emmanuel Bouillon Isaac Boukris Philip Brown Samuel Cabrero Michael Calmer Andrea Campi Julien Chaffraix Puran Chand Ravi Channavajhala Srinivas Cheruku Leonardo Chiquitto Seemant Choudhary Howard Chu Andrea Cirulli Christopher D. Clausen Kevin Coffman Simon Cooper Sylvain Cortes Ian Crowther Arran Cudbard-Bell Jeff D'Angelo Nalin Dahyabhai Mark Davies Dennis Davis Alex Dehnert Mark Deneen Günther Deschner John Devitofranceschi Marc Dionne Roland Dowdeswell Dorian Ducournau Viktor Dukhovni Jason Edgecombe Mark Eichin Shawn M. Emery Douglas E. Engert Peter Eriksson Juha Erkkilä Gilles Espinasse Ronni Feldt Bill Fellows JC Ferguson Remi Ferrand Paul Fertser Fabiano Fidêncio Frank Filz William Fiveash Jacques Florent Ákos Frohner Sebastian Galiano Marcus Granado Dylan Gray Norm Green Scott Grizzard Helmut Grohne Steve Grubb Philip Guenther Timo Gurr Dominic Hargreaves Robbie Harwood John Hascall Jakob Haufe Matthieu Hautreux Jochen Hein Paul B. Henson Jeff Hodges Christopher Hogan Love Hörnquist Åstrand Ken Hornstein Henry B. Hotz Luke Howard Jakub Hrozek Shumon Huque Jeffrey Hutzelman Sergey Ilinykh Wyllys Ingersoll Holger Isenberg Spencer Jackson Diogenes S. Jesus Pavel Jindra Brian Johannesmeyer Joel Johnson Lutz Justen Alexander Karaivanov Anders Kaseorg Bar Katz Zentaro Kavanagh Mubashir Kazia W. Trevor King Patrik Kis Martin Kittel Thomas Klausner Matthew Krupcale Mikkel Kruse Reinhard Kugler Tomas Kuthan Pierre Labastie Andreas Ladanyi Chris Leick Volker Lendecke Jan iankko Lieskovsky Todd Lipcon Oliver Loch Chris Long Kevin Longfellow Frank Lonigro Jon Looney Nuno Lopes Todd Lubin Ryan Lynch Glenn Machin Roland Mainz Sorin Manolache Robert Marshall Andrei Maslennikov Michael Mattioli Nathaniel McCallum Greg McClement Cameron Meadors Alexey Melnikov Franklyn Mendez Markus Moeller Kyle Moffett Paul Moore Keiichi Mori Michael Morony Zbysek Mraz Edward Murrell Nikos Nikoleris Felipe Ortega Michael Osipov Andrej Ota Dmitri Pal Javier Palacios Dilyan Palauzov Tom Parker Eric Pauly Leonard Peirce Ezra Peisach Alejandro Perez Zoran Pericic W. Michael Petullo Mark Phalan Sharwan Ram Brett Randall Jonathan Reams Jonathan Reed Robert Relyea Tony Reix Martin Rex Pat Riehecky Jason Rogers Matt Rogers Nate Rosenblum Solly Ross Mike Roszkowski Guillaume Rousse Joshua Schaeffer Jens Schleusener Andreas Schneider Paul Seyfert Tom Shaw Jim Shi Jerry Shipman Peter Shoults Richard Silverman Cel Skeggs Simo Sorce Michael Spang Michael Ströder Bjørn Tore Sund Ondřej Surý Joe Travaglini Tim Uglow Rathor Vipin Denis Vlasenko Jorgen Wahlsten Stef Walter Max (Weijun) Wang John Washington Stef Walter Xi Wang Nehal J Wani Kevin Wasserman Margaret Wasserman Marcus Watts Andreas Wiese Simon Wilkinson Nicolas Williams Ross Wilper Augustin Wolf Garrett Wollman David Woodhouse Tsu-Phong Wu Xu Qiang Neng Xue Zhaomo Yang Nickolai Zeldovich Bean Zhang Hanz van Zijst Gertjan Zwartjes The above is not an exhaustive list; many others have contributed in various ways to the MIT Kerberos development effort over the years. Other acknowledgments (for bug reports and patches) are in the doc/CHANGES file. usr/share/doc/perl-IO-Compress/README000064400000005142152540257110013150 0ustar00 IO-Compress Version 2.081 4 April 2018 Copyright (c) 1995-2018 Paul Marquess. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. DESCRIPTION ----------- This distribution provides a Perl interface to allow reading and writing of compressed data created with the zlib and bzip2 libraries. IO-Compress supports reading and writing of bzip2, RFC 1950, RFC 1951, RFC 1952 (i.e. gzip) and zip files/buffers. The following modules used to be distributed separately, but are now included with the IO-Compress distribution. Compress-Zlib IO-Compress-Zlib IO-Compress-Bzip2 IO-Compress-Base PREREQUISITES ------------- Before you can build IO-Compress you need to have the following installed on your system: * Perl 5.006 or better. * Compress::Raw::Zlib * Compress::Raw::Bzip2 BUILDING THE MODULE ------------------- Assuming you have met all the prerequisites, the module can now be built using this sequence of commands: perl Makefile.PL make make test INSTALLATION ------------ To install IO-Compress, run the command below: make install TROUBLESHOOTING --------------- FEEDBACK -------- How to report a problem with IO-Compress. To help me help you, I need all of the following information: 1. The Versions of everything relevant. This includes: a. The *complete* output from running this perl -V Do not edit the output in any way. Note, I want you to run "perl -V" and NOT "perl -v". If your perl does not understand the "-V" option it is too old. This module needs Perl version 5.004 or better. b. The version of IO-Compress you have. If you have successfully installed IO-Compress, this one-liner will tell you: perl -MIO::Compress::Gzip -e 'print qq[ver $IO::Compress::Gzip::VERSION\n]' If you are running windows use this perl -MIO::Compress::Gzip -e "print qq[ver $IO::Compress::Gzip::VERSION\n]" If you haven't installed IO-Compress then search IO::Compress::Gzip.pm for a line like this: $VERSION = "2.081" ; 2. If you are having problems building IO-Compress, send me a complete log of what happened. Start by unpacking the IO-Compress module into a fresh directory and keep a log of all the steps [edit config.in, if necessary] perl Makefile.PL make make test TEST_VERBOSE=1 Paul Marquess usr/share/doc/perl-MIME-Base64/README000064400000002041152540263710012617 0ustar00This package contains a base64 encoder/decoder and a quoted-printable encoder/decoder. These encoding methods are specified in RFC 2045 - MIME (Multipurpose Internet Mail Extensions). The base64 encoding is designed to represent arbitrary sequences of octets in a form that need not be humanly readable. A 65-character subset ([A-Za-z0-9+/=]) of US-ASCII is used, enabling 6 bits to be represented per printable character. The quoted-printable encoding is intended to represent data that largely consists of bytes that correspond to printable characters in the ASCII character set. Each non-printable character is represented by a triplet consisting of the character "=" followed by two hexadecimal digits. In order to install and use this package you will need Perl version 5.6 or better. Installation as usual: perl Makefile.PL make make test make install Copyright 1995-1999,2001-2004,2010 Gisle Aas This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. usr/share/authselect/default/sssd/README000064400000011031152540270300014072 0ustar00Enable SSSD for system authentication (also for local users only) ================================================================= Selecting this profile will enable SSSD as the source of identity and authentication providers. SSSD provides a set of daemons to manage access to remote directories and authentication mechanisms such as LDAP, Kerberos, FreeIPA or AD. It provides an NSS and PAM interface toward the system and a pluggable backend system to connect to multiple different account sources. More information about SSSD can be found on its project page: https://sssd.io However, if you do not want to keep SSSD running on your machine, you can keep this profile selected and just disable SSSD service. The resulting configuration will still work correctly even with SSSD disabled and local users and groups will be read from local files directly. SSSD CONFIGURATION ------------------ Authselect does not touch SSSD's configuration. Please, read SSSD's documentation to see how to configure it manually. Only local users will be available on the system if there is no existing SSSD configuration. AVAILABLE OPTIONAL FEATURES --------------------------- with-faillock:: Enable account locking in case of too many consecutive authentication failures. with-mkhomedir:: Enable automatic creation of home directories for users on their first login. with-smartcard:: Enable authentication with smartcards through SSSD. Please note that smartcard support must be also explicitly enabled within SSSD's configuration. with-smartcard-lock-on-removal:: Lock screen when a smartcard is removed. with-smartcard-required:: Smartcard authentication is required. No other means of authentication (including password) will be enabled. with-fingerprint:: Enable authentication with fingerprint reader through *pam_fprintd*. with-pam-gnome-keyring:: Enable pam-gnome-keyring support. with-pam-u2f:: Enable authentication via u2f dongle through *pam_u2f*. with-pam-u2f-2fa:: Enable 2nd factor authentication via u2f dongle through *pam_u2f*. without-pam-u2f-nouserok:: Module argument nouserok is omitted if also with-pam-u2f-2fa is used. *WARNING*: Omitting nouserok argument means that users without pam-u2f authentication configured will not be able to log in *INCLUDING* root. Make sure you are able to log in before losing root privileges. with-silent-lastlog:: Do not produce pam_lastlog message during login. with-sudo:: Allow sudo to use SSSD as a source for sudo rules in addition of /etc/sudoers. with-pamaccess:: Check access.conf during account authorization. with-pwhistory:: Enable pam_pwhistory module for local users. with-files-domain:: If set, SSSD will be contacted before "files" when resolving users and groups. The order in nsswitch.conf will be set to "sss files" instead of "files sss" for passwd and group maps. with-files-access-provider:: If set, account management for local users is handled also by pam_sss. This is needed if there is an explicitly configured domain with id_provider=files and non-empty access_provider setting in sssd.conf. *WARNING:* SSSD access check will become mandatory for local users and if SSSD is stopped then local users will not be able to log in. Only system accounts (as defined by pam_usertype, including root) will be able to log in. with-gssapi:: If set, pam_sss_gss module is enabled to perform user authentication over GSSAPI. with-subid:: Enable SSSD as a source of subid database in /etc/nsswitch.conf. without-nullok:: Do not add nullok parameter to pam_unix. DISABLE SPECIFIC NSSWITCH DATABASES ----------------------------------- Normally, nsswitch databases set by the profile overwrites values set in user-nsswitch.conf. The following options can force authselect to ignore value set by the profile and use the one set in user-nsswitch.conf instead. with-custom-passwd:: Ignore "passwd" database set by the profile. with-custom-group:: Ignore "group" database set by the profile. with-custom-netgroup:: Ignore "netgroup" database set by the profile. with-custom-automount:: Ignore "automount" database set by the profile. with-custom-services:: Ignore "services" database set by the profile. EXAMPLES -------- * Enable SSSD with sudo and smartcard support authselect select sssd with-sudo with-smartcard * Enable SSSD with sudo support and create home directories for users on their first login authselect select sssd with-mkhomedir with-sudo SEE ALSO -------- * man sssd.conf(5) usr/share/doc/file/README000064400000015463152540277630011047 0ustar00## README for file(1) Command ## @(#) $File: README,v 1.53 2018/03/11 13:06:47 glen Exp $ Mailing List: file@mx.gw.com [currently down] Mailing List archives: http://mx.gw.com/pipermail/file/ [currently down] Bug tracker: http://bugs.gw.com/ [currently down] E-mail: christos@astron.com Build Status: https://travis-ci.org/file/file Phone: Do not even think of telephoning me about this program. Send cash first! This is Release 5.x of Ian Darwin's (copyright but distributable) file(1) command, an implementation of the Unix File(1) command. It knows the 'magic number' of several thousands of file types. This version is the standard "file" command for Linux, *BSD, and other systems. (See "patchlevel.h" for the exact release number). You can download the latest version of the original sources for file from: ftp://ftp.astron.com/pub/file/ A public read-only git repository of the same sources is available at: https://github.com/file/file The major changes for 5.x are CDF file parsing, indirect magic, name/use (recursion) and overhaul in mime and ascii encoding handling. The major feature of 4.x is the refactoring of the code into a library, and the re-write of the file command in terms of that library. The library itself, libmagic can be used by 3rd party programs that wish to identify file types without having to fork() and exec() file. The prime contributor for 4.0 was Mans Rullgard. UNIX is a trademark of UNIX System Laboratories. The prime contributor to Release 3.8 was Guy Harris, who put in megachanges including byte-order independence. The prime contributor to Release 3.0 was Christos Zoulas, who put in hundreds of lines of source code changes, including his own ANSIfication of the code (I liked my own ANSIfication better, but his (__P()) is the "Berkeley standard" way of doing it, and I wanted UCB to include the code...), his HP-like "indirection" (a feature of the HP file command, I think), and his mods that finally got the uncompress (-z) mode finished and working. This release has compiled in numerous environments; see PORTING for a list and problems. This fine freeware file(1) follows the USG (System V) model of the file command, rather than the Research (V7) version or the V7-derived 4.[23] Berkeley one. That is, the file /etc/magic contains much of the ritual information that is the source of this program's power. My version knows a little more magic (including tar archives) than System V; the /etc/magic parsing seems to be compatible with the (poorly documented) System V /etc/magic format (with one exception; see the man page). In addition, the /etc/magic file is built from a subdirectory for easier(?) maintenance. I will act as a clearinghouse for magic numbers assigned to all sorts of data files that are in reasonable circulation. Send your magic numbers, in magic(5) format please, to the maintainer, Christos Zoulas. COPYING - read this first. README - read this second (you are currently reading this file). INSTALL - read on how to install src/apprentice.c - parses /etc/magic to learn magic src/apptype.c - used for OS/2 specific application type magic src/ascmagic.c - third & last set of tests, based on hardwired assumptions. src/asctime_r.c - replacement for OS's that don't have it. src/asprintf.c - replacement for OS's that don't have it. src/asctime_r.c - replacement for OS's that don't have it. src/asprintf.c - replacement for OS's that don't have it. src/buffer.c - buffer handling functions. src/cdf.[ch] - parser for Microsoft Compound Document Files src/cdf_time.c - time converter for CDF. src/compress.c - handles decompressing files to look inside. src/ctime_r.c - replacement for OS's that don't have it. src/der.[ch] - parser for Distinguished Encoding Rules src/dprintf.c - replacement for OS's that don't have it. src/elfclass.h - common code for elf 32/64. src/encoding.c - handles unicode encodings src/file.c - the main program src/file.h - header file src/file_opts.h - list of options src/fmtcheck.c - replacement for OS's that don't have it. src/fsmagic.c - first set of tests the program runs, based on filesystem info src/funcs.c - utilility functions src/getline.c - replacement for OS's that don't have it. src/getopt_long.c - replacement for OS's that don't have it. src/gmtime_r.c - replacement for OS's that don't have it. src/is_tar.c, tar.h - knows about Tape ARchive format (courtesy John Gilmore). src/localtime_r.c - replacement for OS's that don't have it. src/magic.h.in - source file for magic.h src/mygetopt.h - replacement for OS's that don't have it. src/magic.c - the libmagic api src/names.h - header file for ascmagic.c src/pread.c - replacement for OS's that don't have it. src/print.c - print results, errors, warnings. src/readcdf.c - CDF wrapper. src/readelf.[ch] - Stand-alone elf parsing code. src/softmagic.c - 2nd set of tests, based on /etc/magic src/mygetopt.h - replacement for OS's that don't have it. src/strcasestr.c - replacement for OS's that don't have it. src/strlcat.c - replacement for OS's that don't have it. src/strlcpy.c - replacement for OS's that don't have it. src/strndup.c - replacement for OS's that don't have it. src/tar.h - tar file definitions src/vasprintf.c - for systems that don't have it. doc/file.man - man page for the command doc/magic.man - man page for the magic file, courtesy Guy Harris. Install as magic.4 on USG and magic.5 on V7 or Berkeley; cf Makefile. Magdir - directory of /etc/magic pieces ------------------------------------------------------------------------------ If you submit a new magic entry please make sure you read the following guidelines: - Initial match is preferably at least 32 bits long, and is a _unique_ match - If this is not feasible, use additional check - Match of <= 16 bits are not accepted - Delay printing string as much as possible, don't print output too early - Avoid printf arbitrary byte as string, which can be a source of crash and buffer overflow - Provide complete information with entry: * One line short summary * Optional long description * File extension, if applicable * Full name and contact method (for discussion when entry has problem) * Further reference, such as documentation of format ------------------------------------------------------------------------------ gpg for dummies: $ gpg --verify file-X.YY.tar.gz.asc file-X.YY.tar.gz gpg: assuming signed data in `file-X.YY.tar.gz' gpg: Signature made WWW MMM DD HH:MM:SS YYYY ZZZ using DSA key ID KKKKKKKK To download the key: $ gpg --keyserver hkp://keys.gnupg.net --recv-keys KKKKKKKK ------------------------------------------------------------------------------ Parts of this software were developed at SoftQuad Inc., developers of SGML/HTML/XML publishing software, in Toronto, Canada. SoftQuad was swallowed up by Corel in 2002 and does not exist any longer.