#, fuzzy msgid "" msgstr "" "Project-Id-Version: cups 1.4b2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-01-10 21:21-0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.2.1\n" #: ./spec-cmp.html:1 msgid "CUPS Developer Guide" msgstr "" #: ./spec-cmp.html:2 msgid "" "This developer guide documents the guidelines and processes we use when " "developing and maintaining the Common UNIX Printing System (\"CUPS\") and " "related software. Our goal is to provide reliable and efficient software and " "documentation that addresses the needs of our users." msgstr "" #: ./spec-cmp.html:3 msgid "Communication" msgstr "" #: ./spec-cmp.html:4 msgid "How to Contact the Developers" msgstr "" #: ./spec-cmp.html:5 msgid "" "The CUPS Forums are the " "primary means of asking questions and informally discussing issues and " "feature requests with the CUPS developers. Table 1 shows the available " "forums and their focus:" msgstr "" #: ./spec-cmp.html:6 msgid "CUPS Forums" msgstr "" #: ./spec-cmp.html:7 msgid "Table 1: CUPS Forums" msgstr "" #: ./spec-cmp.html:8 msgid "Forum" msgstr "" #: ./spec-cmp.html:9 msgid "Focus/Purpose" msgstr "" #: ./spec-cmp.html:10 msgid "cups.bugs" msgstr "" #: ./spec-cmp.html:11 msgid "Discussion of bugs and issues in the CUPS \tsoftware" msgstr "" #: ./spec-cmp.html:12 msgid "cups.commit" msgstr "" #: ./spec-cmp.html:13 msgid "Report of all commits to the Subversion repository \t(read-only)" msgstr "" #: ./spec-cmp.html:14 msgid "cups.ddk" msgstr "" #: ./spec-cmp.html:15 msgid "Usage and development questions for the CUPS Driver \tDevelopment Kit" msgstr "" #: ./spec-cmp.html:16 msgid "cups.development" msgstr "" #: ./spec-cmp.html:17 msgid "" "Development questions and discussion of new features \tin the CUPS software" msgstr "" #: ./spec-cmp.html:18 msgid "cups.general" msgstr "" #: ./spec-cmp.html:19 msgid "Usage questions for the CUPS software" msgstr "" #: ./spec-cmp.html:20 msgid "How to Submit a Bug Report or Feature Request" msgstr "" #: ./spec-cmp.html:21 msgid "" "The CUPS \"Bugs & Features\" " "page provides access to the CUPS software trouble report database " "and is the formal way to submit a bug report or feature request to the CUPS " "developers. Please note, however, that we do not provide answers to " "usage questions or resolve problems in third-party software on this page - " "use the CUPS Forums for that instead." msgstr "" #: ./spec-cmp.html:22 msgid "" "Unlike discussions that occur on the CUPS Forums, formal bug reports and " "feature requests must be acted on by the CUPS developers. This does not mean " "that every bug report is resolved or every feature request is implemented, " "but we do respond and keep track of them all for posterity." msgstr "" #: ./spec-cmp.html:23 msgid "How to Prepare a Patch" msgstr "" #: ./spec-cmp.html:24 msgid "" "When submitting a bug report or feature request, you can include patch files " "that resolve the bug or implement the feature to speed the inclusion of " "that bug fix or feature in a new CUPS release. For changes to existing " "files, we prefer a unified diff against the current Subversion " "trunk branch, which can be generated easily using the following " "Subversion command:" msgstr "" #: ./spec-cmp.html:25 msgid "" "If you produce a patch using a released source archive, use one of the " "following commands instead:" msgstr "" #: ./spec-cmp.html:26 msgid "" "New files and files with significant changes can be submitted in their " "entirety, however that may delay the adoption of your changes." msgstr "" #: ./spec-cmp.html:27 msgid "Software Development Practices" msgstr "" #: ./spec-cmp.html:28 msgid "Version Numbering" msgstr "" #: ./spec-cmp.html:29 msgid "" "CUPS uses a three-part version number separated by periods to represent the " "major, minor, and patch release numbers. Major release numbers indicate " "large design changes or backwards-incompatible changes to the CUPS API or " "CUPS Imaging API. Minor release numbers indicate new features and other " "smaller changes which are backwards-compatible with previous CUPS releases. " "Patch numbers indicate bug fixes to the previous release." msgstr "" #: ./spec-cmp.html:30 msgid "Production releases use the plain version numbers:" msgstr "" #: ./spec-cmp.html:31 msgid "" "The first production release in a MAJOR.MINOR series (MAJOR.MINOR.0) is " "called a feature release. Feature releases are the only releases that may " "contain new features. Subsequent production releases in a MAJOR.MINOR series " "may only contain bug fixes." msgstr "" #: ./spec-cmp.html:32 msgid "" "Beta-test releases are identified by appending the letter B to the major and " "minor version numbers followed by the beta release number:" msgstr "" #: ./spec-cmp.html:33 msgid "" "Release candidates are identified by appending the letters RC to the major " "and minor version numbers followed by the release candidate number:" msgstr "" #: ./spec-cmp.html:34 msgid "" "Developer snapshots are identified by appending the letters SVN-R to the " "major and minor version numbers followed by the revision number:" msgstr "" #: ./spec-cmp.html:35 msgid "" "Beta-test releases, release candidates, and developer snapshots are only " "created for new minor releases. Once a production release has been made " "(MAJOR.MINOR.0), subsequent patch releases are issues without preliminary " "beta or release testing." msgstr "" #: ./spec-cmp.html:36 msgid "Version Control (Subversion)" msgstr "" #: ./spec-cmp.html:37 msgid "" "The CUPS source files are managed by the Subversion (\"SVN\") software, " "available at:" msgstr "" #: ./spec-cmp.html:38 msgid "" "Source files are \"checked in\" with each change so that modifications can be " "tracked, and each checkin must reference any applicable STRs. The following " "format must be used for commit log messages:" msgstr "" #: ./spec-cmp.html:39 msgid "" "Primary development occurs on the trunk branch, with changes " "merged back to release branches as needed. Table 2 shows the URLs developers " "use for the various CUPS subprojects and branches:" msgstr "" #: ./spec-cmp.html:40 msgid "CUPS Subversion URLs" msgstr "" #: ./spec-cmp.html:41 msgid "Table 2: CUPS Subversion URLs" msgstr "" #: ./spec-cmp.html:42 msgid "URL" msgstr "" #: ./spec-cmp.html:43 msgid "Purpose" msgstr "" #: ./spec-cmp.html:44 msgid "https://svn.easysw.com/public/cups/trunk/" msgstr "" #: ./spec-cmp.html:45 msgid "Primary CUPS development branch" msgstr "" #: ./spec-cmp.html:46 msgid "https://svn.easysw.com/public/cups/branches/" msgstr "" #: ./spec-cmp.html:47 msgid "CUPS maintenance branches (merge-only)" msgstr "" #: ./spec-cmp.html:48 msgid "https://svn.easysw.com/public/cups/tags/" msgstr "" #: ./spec-cmp.html:49 msgid "CUPS release tags (read-only)" msgstr "" #: ./spec-cmp.html:50 msgid "https://svn.easysw.com/public/cupsddk/trunk/" msgstr "" #: ./spec-cmp.html:51 msgid "Primary CUPS DDK development branch" msgstr "" #: ./spec-cmp.html:52 msgid "https://svn.easysw.com/public/cupsddk/branches/" msgstr "" #: ./spec-cmp.html:53 msgid "CUPS DDK maintenance branches (merge-only)" msgstr "" #: ./spec-cmp.html:54 msgid "https://svn.easysw.com/public/cupsddk/tags/" msgstr "" #: ./spec-cmp.html:55 msgid "CUPS DDK release tags (read-only)" msgstr "" #: ./spec-cmp.html:56 msgid "https://svn.easysw.com/public/espgs/trunk/" msgstr "" #: ./spec-cmp.html:57 msgid "Primary ESP Ghostscript development branch" msgstr "" #: ./spec-cmp.html:58 msgid "https://svn.easysw.com/public/espgs/branches/" msgstr "" #: ./spec-cmp.html:59 msgid "ESP Ghostscript maintenance branches (merge-only)" msgstr "" #: ./spec-cmp.html:60 msgid "https://svn.easysw.com/public/espgs/tags/" msgstr "" #: ./spec-cmp.html:61 msgid "ESP Ghostscript release tags (read-only)" msgstr "" #: ./spec-cmp.html:62 msgid "https://svn.easysw.com/public/windows/trunk/" msgstr "" #: ./spec-cmp.html:63 msgid "Primary CUPS Windows Driver development branch" msgstr "" #: ./spec-cmp.html:64 msgid "https://svn.easysw.com/public/windows/branches/" msgstr "" #: ./spec-cmp.html:65 msgid "CUPS Windows Driver maintenance branches (merge-only)" msgstr "" #: ./spec-cmp.html:66 msgid "https://svn.easysw.com/public/windows/tags/" msgstr "" #: ./spec-cmp.html:67 msgid "CUPS Windows Driver release tags (read-only)" msgstr "" #: ./spec-cmp.html:68 msgid "" "The branch for a MAJOR.MINOR release are created when the first production " "release (MAJOR.MINOR.0) is made using the name \"branch-MAJOR.MINOR\". Release " "tags are created for every beta, candidate, and production release using " "the name \"release-MAJOR.MINOR.PATCHbNUMBER\", \"release-" "MAJOR.MINOR.PATCHrcNUMBER\", or \"release-MAJOR.MINOR.PATCH\", respectively. No " "release tags are created for developer snapshots." msgstr "" #: ./spec-cmp.html:69 msgid "Files and Directories" msgstr "" #: ./spec-cmp.html:70 msgid "" "File and directory names may not exceed 16 characters in length to ensure " "compability with older UNIX filesystems. In addition, to avoid problems with " "case-insensitive filesystems, you may not use names which differ only by " "case, for example \"ReadMe\" and \"README\" are not allowed in the same " "directory." msgstr "" #: ./spec-cmp.html:71 msgid "" "Source files must be documented and formatted as described in \"Coding Requirements\". Make files must follow the " "guidelines in \"Makefile Guidelines\"." msgstr "" #: ./spec-cmp.html:72 msgid "Build System" msgstr "" #: ./spec-cmp.html:73 msgid "" "The CUPS build system uses GNU autoconf to tailor the " "library to the local operating system. Project files for major IDEs are also " "provided for Microsoft Windows®. To improve portability, " "makefiles must not make use of the unique features offered by GNU make. See the Makefile Guidelines section for a description of the " "allowed make features and makefile guidelines." msgstr "" #: ./spec-cmp.html:74 msgid "" "Additional GNU build programs such as GNU automake and GNU libtool must not be used. " "GNU automake produces non-portable makefiles which depend on GNU-specific " "extensions, and GNU libtool is not portable or reliable enough for CUPS." msgstr "" #: ./spec-cmp.html:75 msgid "Packaging" msgstr "" #: ./spec-cmp.html:76 msgid "" "Source packages are created using the tools/makesrcdist script in " "the Subversion repository. The script optionally uses a version number " "argument:" msgstr "" #: ./spec-cmp.html:77 msgid "" "When run with no arguments, the script creates a snapshot of the current " "working copy and names it using the highest revision number in the WC, for " "example \"/tmp/cups-1.3svn-r1234-source.tar.bz2\" and " "\"/tmp/cups-1.3svn-r1234-source.tar.gz\". When run with two arguments, the " "script creates a release tag in the repository and exports that tag, " "creating the files \"/tmp/cups-version-source.tar.bz2\" and " "\"/tmp/cups-version-source.tar.gz\"." msgstr "" #: ./spec-cmp.html:78 msgid "" "Binary packages are not generally distributed by the CUPS team, however the " "packaging/cups.spec and packaging/cups.list files may " "be used to create binary packages on Linux, Mac OS X, and UNIX. The " "packaging/cups.spec file produces a binary package using the " "rpmbuild(8) software:" msgstr "" #: ./spec-cmp.html:79 msgid "" "The cups.list file is generated by the configure " "script and produces binary packages for many platforms using the EPM software. Table 3 " "shows the targets that are available for each type of binary package:" msgstr "" #: ./spec-cmp.html:80 msgid "Binary Package Targets" msgstr "" #: ./spec-cmp.html:81 msgid "Table 3: Binary Package Targets" msgstr "" #: ./spec-cmp.html:82 msgid "Target" msgstr "" #: ./spec-cmp.html:83 msgid "Type of Package" msgstr "" #: ./spec-cmp.html:84 msgid "aix" msgstr "" #: ./spec-cmp.html:85 msgid "AIX installp" msgstr "" #: ./spec-cmp.html:86 msgid "bsd" msgstr "" #: ./spec-cmp.html:87 msgid "*BSD pkg_install" msgstr "" #: ./spec-cmp.html:88 msgid "deb" msgstr "" #: ./spec-cmp.html:89 msgid "Debian dpkg" msgstr "" #: ./spec-cmp.html:90 msgid "depot" msgstr "" #: ./spec-cmp.html:91 msgctxt "./spec-cmp.html:91" msgid "HP-UX swinstall" msgstr "" #: ./spec-cmp.html:92 msgid "epm" msgstr "" #: ./spec-cmp.html:93 msgid "Portable tarball with install script" msgstr "" #: ./spec-cmp.html:94 msgid "inst" msgstr "" #: ./spec-cmp.html:95 msgctxt "./spec-cmp.html:95" msgid "IRIX inst/tardist" msgstr "" #: ./spec-cmp.html:96 msgid "osx" msgstr "" #: ./spec-cmp.html:97 msgid "Mac OS X Install" msgstr "" #: ./spec-cmp.html:98 msgid "pkg" msgstr "" #: ./spec-cmp.html:99 msgid "Solaris pkgadd" msgstr "" #: ./spec-cmp.html:100 msgid "rpm" msgstr "" #: ./spec-cmp.html:101 msgid "RPM binary" msgstr "" #: ./spec-cmp.html:102 msgid "setld" msgstr "" #: ./spec-cmp.html:103 msgid "Tru64 UNIX setld" msgstr "" #: ./spec-cmp.html:104 msgid "slackware" msgstr "" #: ./spec-cmp.html:105 msgid "Slackware install" msgstr "" #: ./spec-cmp.html:106 msgid "swinstall" msgstr "" #: ./spec-cmp.html:107 msgctxt "./spec-cmp.html:107" msgid "HP-UX swinstall" msgstr "" #: ./spec-cmp.html:108 msgid "tardist" msgstr "" #: ./spec-cmp.html:109 msgctxt "./spec-cmp.html:109" msgid "IRIX inst/tardist" msgstr "" #: ./spec-cmp.html:110 msgid "" "Finally, the tools/testrpm and tools/testosx scripts " "can be used to create binary packages from the current working copy for " "testing on Linux and Mac OS X, respectively:" msgstr "" #: ./spec-cmp.html:111 msgid "Testing" msgstr "" #: ./spec-cmp.html:112 msgid "" "Software testing is conducted according to the CUPS " "Software Test Plan. This testing is automated via the top-level makefile " "test target:" msgstr "" #: ./spec-cmp.html:113 msgid "" "The test environment allows for both short-term automated testing and long-" "term testing and development without the automated test script." msgstr "" #: ./spec-cmp.html:114 msgid "Trouble Report Processing" msgstr "" #: ./spec-cmp.html:115 msgid "" "A Software Trouble Report (\"STR\") must be submitted every time a user or " "vendor experiences a problem with the CUPS software. Trouble reports are " "maintained on the Bugs " "& Features page with one of the following states:" msgstr "" #: ./spec-cmp.html:116 msgid "STR is closed with complete resolution" msgstr "" #: ./spec-cmp.html:117 msgid "STR is closed without resolution" msgstr "" #: ./spec-cmp.html:118 msgid "STR is active, waiting on information from submitter" msgstr "" #: ./spec-cmp.html:119 msgid "STR is pending with additional information from submitter" msgstr "" #: ./spec-cmp.html:120 msgid "STR is newly submitted" msgstr "" #: ./spec-cmp.html:121 msgid "Trouble reports are processed using the following steps." msgstr "" #: ./spec-cmp.html:122 msgid "Classification" msgstr "" #: ./spec-cmp.html:123 msgid "" "When a trouble report is received it must be classified at one of the " "following priority levels:" msgstr "" #: ./spec-cmp.html:124 msgid "Request for enhancement, e.g. asking for a \tfeature" msgstr "" #: ./spec-cmp.html:125 msgid "Low, e.g. a documentation error or undocumented \tside-effect" msgstr "" #: ./spec-cmp.html:126 msgid "" "Moderate, e.g. unable to print a file or unable to \tcompile the software" msgstr "" #: ./spec-cmp.html:127 msgid "" "High, e.g. unable to print to a printer or key \tfunctionality not working" msgstr "" #: ./spec-cmp.html:128 msgid "Critical, e.g. unable to print at all " msgstr "" #: ./spec-cmp.html:129 msgid "" "Level 4 and 5 trouble reports must be resolved in the next software release. " "Level 2 and 3 trouble reports are scheduled for resolution in a specific " "release at the discretion of the release coordinator. Level 1 trouble " "reports are scheduled for resolution in a future feature release." msgstr "" #: ./spec-cmp.html:130 msgid "The scope of the problem is also determined as:" msgstr "" #: ./spec-cmp.html:131 msgid "Specific to a machine or printer" msgstr "" #: ./spec-cmp.html:132 msgid "Specific to an operating system" msgstr "" #: ./spec-cmp.html:133 msgid "Applies to all machines, printers, and operating systems " msgstr "" #: ./spec-cmp.html:134 msgid "Identification" msgstr "" #: ./spec-cmp.html:135 msgid "" "Once the level and scope of the trouble report is determined the software " "sub-system(s) involved with the problem are determined. This may involve " "additional communication with the user or vendor to isolate the problem to a " "specific cause." msgstr "" #: ./spec-cmp.html:136 msgid "" "When the sub-system(s) involved have been identified, an engineer will then " "determine the change(s) needed and estimate the time required for the " "change(s)." msgstr "" #: ./spec-cmp.html:137 msgid "Correction" msgstr "" #: ./spec-cmp.html:138 msgid "" "Corrections are scheduled based upon the severity and complexity of the " "problem. Once all changes have been made, documented, and tested " "successfully a new software release snapshot is generated. Additional tests " "are added as necessary for proper testing of the changes." msgstr "" #: ./spec-cmp.html:139 msgid "Notification" msgstr "" #: ./spec-cmp.html:140 msgid "" "The user or vendor is notified when the fix is available or if the problem " "was caused by user error." msgstr "" #: ./spec-cmp.html:141 msgid "Release Management" msgstr "" #: ./spec-cmp.html:142 msgid "" "When testing has been completed successfully, a new source package is " "created using the tools/makesrcdist script. Three types of " "releases, beta, candidate, and production, are created and released to the " "public using the basic schedule in Table 4. At least one beta and one " "release candidate must be created prior to a production release, and there " "must be at least two weeks between the last beta and first candidate and " "last candidate and first production release." msgstr "" #: ./spec-cmp.html:143 msgid "CUPS Basic Release Schedule" msgstr "" #: ./spec-cmp.html:144 msgid "Table: CUPS Basic Release Schedule" msgstr "" #: ./spec-cmp.html:145 msgid "Week" msgstr "" #: ./spec-cmp.html:146 msgid "Version" msgstr "" #: ./spec-cmp.html:147 msgid "Description" msgstr "" #: ./spec-cmp.html:148 msgid "T-6 weeks" msgstr "" #: ./spec-cmp.html:149 msgid "1.2b1" msgstr "" #: ./spec-cmp.html:150 msgid "First beta release" msgstr "" #: ./spec-cmp.html:151 msgid "T-5 weeks" msgstr "" #: ./spec-cmp.html:152 msgid "1.2b2" msgstr "" #: ./spec-cmp.html:153 msgid "Second beta release" msgstr "" #: ./spec-cmp.html:154 msgid "T-3 weeks" msgstr "" #: ./spec-cmp.html:155 msgid "1.2rc1" msgstr "" #: ./spec-cmp.html:156 msgid "First release candidate" msgstr "" #: ./spec-cmp.html:157 msgid "T-2 weeks" msgstr "" #: ./spec-cmp.html:158 msgid "1.2rc2" msgstr "" #: ./spec-cmp.html:159 msgid "Second release candidate" msgstr "" #: ./spec-cmp.html:160 msgid "T-0 weeks" msgstr "" #: ./spec-cmp.html:161 msgid "1.2.0" msgstr "" #: ./spec-cmp.html:162 msgid "Production (feature) release" msgstr "" #: ./spec-cmp.html:163 msgid "Coding Guidelines" msgstr "" #: ./spec-cmp.html:164 msgid "" "These coding guidelines provide detailed information on source file " "formatting and documentation content and must be applied to all C and C++ " "source files provided with CUPS. Source code for other languages should " "conform to these guidelines as allowed by the language." msgstr "" #: ./spec-cmp.html:165 msgid "Source Files" msgstr "" #: ./spec-cmp.html:166 msgid "" "All source files names shall be 16 characters or less in length to ensure " "compatibility with older UNIX filesystems. Source files containing functions " "shall have an extension of \".c\" for ANSI C and \".cxx\" for C++ source files. " "All other \"include\" files shall have an extension of \".h\"." msgstr "" #: ./spec-cmp.html:167 msgid "" "The top of each source file shall contain a header giving the name of the " "file, the purpose or nature of the source file, the copyright and licensing " "notice, and the functions contained in the file. The file name and revision " "information is provided by the Subversion \"$Id$\" tag:" msgstr "" #: ./spec-cmp.html:168 msgid "" "For source files that are subject to the Apple OS-Developed Software " "exception, the following additional comment should appear after the contact " "information:" msgstr "" #: ./spec-cmp.html:169 msgid "" "The bottom of each source file shall contain a trailer giving the name of " "the file using the Subversion \"$Id$\" tag. The primary purpose of this is " "to mark the end of a source file; if the trailer is missing it is possible " "that code has been lost near the end of the file:" msgstr "" #: ./spec-cmp.html:170 msgid "Functions" msgstr "" #: ./spec-cmp.html:171 msgid "" "Functions with a global scope shall have a lowercase prefix followed by " "capitalized words (\"cupsDoThis\", \"cupsDoThat\", \"cupsDoSomethingElse\", etc.) " "Private global functions shall begin with a leading underscore " "(\"_cupsDoThis\", \"_cupsDoThat\", etc.)" msgstr "" #: ./spec-cmp.html:172 msgid "" "Functions with a local scope shall be declared \"static\" and be lowercase " "with underscores between words (\"do_this\", \"do_that\", \"do_something_else\", " "etc.)" msgstr "" #: ./spec-cmp.html:173 msgid "" "Each function shall begin with a comment header describing what the function " "does, the possible input limits (if any), and the possible output values " "(if any), and any special information needed:" msgstr "" #: ./spec-cmp.html:174 msgid "" "Return/output values are indicated using an \"O\" prefix, input values are " "indicated using the \"I\" prefix, and values that are both input and output " "use the \"IO\" prefix for the corresponding in-line comment." msgstr "" #: ./spec-cmp.html:175 msgid "" "The Mini-XML documentation generator also understands the following special " "text in the function description comment:" msgstr "" #: ./spec-cmp.html:176 msgid "" "@since CUPS version@ - Marks the \tfunction as new in the " "specified version of CUPS." msgstr "" #: ./spec-cmp.html:177 msgid "" "@deprecated@ - Marks the function as \tdeprecated (not " "recommended for new development and \tscheduled for removal)" msgstr "" #: ./spec-cmp.html:178 msgid "Variables" msgstr "" #: ./spec-cmp.html:179 msgid "" "Variables with a global scope shall be capitalized (\"ThisVariable\", " "\"ThatVariable\", \"ThisStateVariable\", etc.) The only exception to this rule " "shall be the CUPS interface library global variables which must begin with " "the prefix \"cups\" (\"cupsThisVariable\", \"cupsThatVariable\", etc.) Global " "variables shall be replaced by function arguments whenever possible." msgstr "" #: ./spec-cmp.html:180 msgid "" "Variables with a local scope shall be lowercase with underscores between " "words (\"this_variable\", \"that_variable\", etc.) Any local variables shared by " "functions within a source file shall be declared \"static\"." msgstr "" #: ./spec-cmp.html:181 msgid "" "Each variable shall be declared on a separate line and shall be immediately " "followed by a comment block describing the variable:" msgstr "" #: ./spec-cmp.html:182 msgid "Types" msgstr "" #: ./spec-cmp.html:183 msgid "" "All type names shall be lowercase with underscores between words and \"_t\" " "appended to the end of the name (\"cups_this_type_t\", \"cups_that_type_t\", " "etc.) Type names must start with a prefix, typically \"cups\" or the name of " "the program, to avoid conflicts with system types. Private type names must " "start with an underscore (\"_cups_this_t\", \"_cups_that_t\", etc.)" msgstr "" #: ./spec-cmp.html:184 msgid "Each type shall have a comment block immediately after the typedef:" msgstr "" #: ./spec-cmp.html:185 msgid "Structures" msgstr "" #: ./spec-cmp.html:186 msgid "" "All structure names shall be lowercase with underscores between words and " "\"_s\" appended to the end of the name (\"cups_this_s\", \"cups_that_s\", etc.) " "Structure names must start with a prefix, typically \"cups\" or the name of " "the program, to avoid conflicts with system types. Private structure names " "must start with an underscore (\"_cups_this_s\", \"_cups_that_s\", etc.)" msgstr "" #: ./spec-cmp.html:187 msgid "" "Each structure shall have a comment block immediately after the struct and " "each member shall be documented in accordance with the variable naming " "policy above:" msgstr "" #: ./spec-cmp.html:188 msgid "Constants" msgstr "" #: ./spec-cmp.html:189 msgid "" "All constant names shall be uppercase with underscored between words " "(\"CUPS_THIS_CONSTANT\", \"CUPS_THAT_CONSTANT\", etc.) Constants must begin with " "an uppercase prefix, typically \"CUPS\" or the program name." msgstr "" #: ./spec-cmp.html:190 msgid "" "Typed enumerations shall be used whenever possible to allow for type " "checking by the compiler." msgstr "" #: ./spec-cmp.html:191 msgid "Comment blocks shall immediately follow each constant:" msgstr "" #: ./spec-cmp.html:192 msgid "Code" msgstr "" #: ./spec-cmp.html:193 msgid "" "All source code shall utilize block comments within functions to describe " "the operations being performed by a group of statements; avoid putting a " "comment per line unless absolutely necessary, and then consider refactoring " "the code so that it is not necessary:" msgstr "" #: ./spec-cmp.html:194 msgid "Indentation" msgstr "" #: ./spec-cmp.html:195 msgid "" "All code blocks enclosed by brackets shall begin with the opening brace on a " "new line. The code then follows starting on a new line after the brace and " "is indented 2 spaces. The closing brace is then placed on a new line " "following the code at the original indentation:" msgstr "" #: ./spec-cmp.html:196 msgid "" "Single-line statements following \"do\", \"else\", \"for\", \"if\", and \"while\" " "shall be indented 2 spaces as well. Blocks of code in a \"switch\" block shall " "be indented 4 spaces after each \"case\" and \"default\" case:" msgstr "" #: ./spec-cmp.html:197 msgid "Spacing" msgstr "" #: ./spec-cmp.html:198 msgid "" "A space shall follow each reserved word (\"if\", \"while\", etc.) Spaces shall " "not be inserted between a function name and the arguments in parenthesis." msgstr "" #: ./spec-cmp.html:199 msgid "Return Values" msgstr "" #: ./spec-cmp.html:200 msgid "" "Parenthesis shall surround values returned from a function using \"return\":" msgstr "" #: ./spec-cmp.html:201 msgid "Loops" msgstr "" #: ./spec-cmp.html:202 msgid "" "Whenever convenient loops should count downward to zero to improve program " "performance:" msgstr "" #: ./spec-cmp.html:203 msgid "Makefile Guidelines" msgstr "" #: ./spec-cmp.html:204 msgid "" "The following is a guide to the makefile-based build system used by CUPS. " "These standards have been developed over the years to allow CUPS to be built " "on as many systems and environments as possible." msgstr "" #: ./spec-cmp.html:205 msgid "General Organization" msgstr "" #: ./spec-cmp.html:206 msgid "" "The CUPS source code is organized functionally into a top-level makefile, " "include file, and subdirectories each with their own makefile and " "dependencies files. The \".in\" files are template files for the " "autoconf software and are used to generate a static version of " "the corresponding file." msgstr "" #: ./spec-cmp.html:207 msgid "Makefile Documentation" msgstr "" #: ./spec-cmp.html:208 msgid "" "Each make file must start with the standard CUPS header containing the " "Subversion \"$Id$\" keyword, description of the file, and CUPS copyright " "and license notice:" msgstr "" #: ./spec-cmp.html:209 msgid "The end of each makefile must have a comment saying:" msgstr "" #: ./spec-cmp.html:210 msgid "" "The purpose of the trailer is to indicate the end of the makefile so that " "truncations are immediately obvious." msgstr "" #: ./spec-cmp.html:211 msgid "Portable Makefile Construction" msgstr "" #: ./spec-cmp.html:212 msgid "" "CUPS uses a common subset of make program syntax to ensure that the software " "can be compiled \"out of the box\" on as many systems as possible. The " "following is a list of assumptions we follow when constructing makefiles:" msgstr "" #: ./spec-cmp.html:213 msgid "" "Targets; we assume that the make program \tsupports the notion of simple " "targets of the form \t\"name:\" that perform tab-indented commands that follow " "\tthe target, e.g.: \t
 target: → target commands"
msgstr ""

#: ./spec-cmp.html:214
msgid ""
"Dependencies; we assume that the make program \tsupports recursive "
"dependencies on targets, e.g.: \t
 target: foo bar → "
"target commands  foo: bla → foo commands  bar: → bar commands  "
"bla: → bla commands"
msgstr ""

#: ./spec-cmp.html:215
msgid ""
"Variable Definition; we assume that the make program \tsupports variable "
"definition on the command-line or in the makefile \tusing the following form: "
"\t
 name=value"
msgstr ""

#: ./spec-cmp.html:216
msgid "Variable Substitution"
msgstr ""

#: ./spec-cmp.html:217
msgid "$(name); substitutes the value of \"name\","
msgstr ""

#: ./spec-cmp.html:218
msgid ""
"($name:.old=.new); substitutes the value of \"name\" \t\twith the "
"filename extensions \".old\" changed to \".new\","
msgstr ""

#: ./spec-cmp.html:219
msgid ""
"$(MAKEFLAGS); substitutes the  \t\tcommand-line options passed to "
"the program \t\twithout the leading hyphen (-),"
msgstr ""

#: ./spec-cmp.html:220
msgid "$$; substitutes a single $ character,"
msgstr ""

#: ./spec-cmp.html:221
msgid "$<; substitutes the current source file or dependency, and"
msgstr ""

#: ./spec-cmp.html:222
msgid "$@; substitutes the current target name."
msgstr ""

#: ./spec-cmp.html:223
msgid ""
"Suffixes; we assume that the make program \tsupports filename suffixes "
"with assumed dependencies, e.g.: \t
 .SUFFIXES: .c .o "
".c.o: → $(CC) $(CFLAGS) -o $@ -c $<"
msgstr ""

#: ./spec-cmp.html:224
msgid ""
"Include Files; we assume that the make program \tsupports the "
"include directive, e.g.: \t
 include "
"../Makedefs include Dependencies"
msgstr ""

#: ./spec-cmp.html:225
msgid ""
"Comments; we assume that comments begin with \ta # "
"character and proceed to the end of the \tcurrent line."
msgstr ""

#: ./spec-cmp.html:226
msgid ""
"Line Length; we assume that there is no \tpractical limit to the "
"length of lines."
msgstr ""

#: ./spec-cmp.html:227
msgid ""
"Continuation of long lines; we assume that \tthe \\ "
"character may be placed at the end of a \tline to concatenate two or more "
"lines in a \tmakefile to form a single long line."
msgstr ""

#: ./spec-cmp.html:228
msgid ""
"Shell; we assume a POSIX-compatible shell is \tpresent on the build "
"system."
msgstr ""

#: ./spec-cmp.html:229
msgid "Standard Variables"
msgstr ""

#: ./spec-cmp.html:230
msgid ""
"The following variables are defined in the \"Makedefs\" file generated by the "
"autoconf software:"
msgstr ""

#: ./spec-cmp.html:231
msgid "AR; the library archiver command,"
msgstr ""

#: ./spec-cmp.html:232
msgid "ARFLAGS; options for the library archiver command,"
msgstr ""

#: ./spec-cmp.html:233
msgid "BUILDROOT; optional installation prefix,"
msgstr ""

#: ./spec-cmp.html:234
msgid "MAN1EXT; extension for man pages in section 1,"
msgstr ""

#: ./spec-cmp.html:235
msgid "MAN3EXT; extension for man pages in section 3,"
msgstr ""

#: ./spec-cmp.html:236
msgid "MAN5EXT; extension for man pages in section 5,"
msgstr ""

#: ./spec-cmp.html:237
msgid "MAN7EXT; extension for man pages in section 7,"
msgstr ""

#: ./spec-cmp.html:238
msgid "MAN8DIR; subdirectory for man pages in section 8,"
msgstr ""

#: ./spec-cmp.html:239
msgid "MAN8EXT; extension for man pages in section 8,"
msgstr ""

#: ./spec-cmp.html:240
msgid "CC; the C compiler command,"
msgstr ""

#: ./spec-cmp.html:241
msgid "CFLAGS; options for the C compiler command,"
msgstr ""

#: ./spec-cmp.html:242
msgid "CXX; the C++ compiler command,"
msgstr ""

#: ./spec-cmp.html:243
msgid "CXXFLAGS; options for the C++ compiler command,"
msgstr ""

#: ./spec-cmp.html:244
msgid "DSOCOMMAND; the shared library building command,"
msgstr ""

#: ./spec-cmp.html:245
msgid "DSOFLAGS; options for the shared library building command,"
msgstr ""

#: ./spec-cmp.html:246
msgid "INSTALL; the install command,"
msgstr ""

#: ./spec-cmp.html:247
msgid "INSTALL_BIN; the program installation command,"
msgstr ""

#: ./spec-cmp.html:248
msgid "INSTALL_DATA; the data file installation command,"
msgstr ""

#: ./spec-cmp.html:249
msgid "INSTALL_DIR; the directory installation command,"
msgstr ""

#: ./spec-cmp.html:250
msgid "INSTALL_LIB; the library installation command,"
msgstr ""

#: ./spec-cmp.html:251
msgid "INSTALL_MAN; the documentation installation command,"
msgstr ""

#: ./spec-cmp.html:252
msgid "INSTALL_SCRIPT; the shell script installation command,"
msgstr ""

#: ./spec-cmp.html:253
msgid "LDFLAGS; options for the linker,"
msgstr ""

#: ./spec-cmp.html:254
msgid "LIBS; libraries for all programs,"
msgstr ""

#: ./spec-cmp.html:255
msgid "LN; the ln command,"
msgstr ""

#: ./spec-cmp.html:256
msgid "OPTIM; common compiler optimization options,"
msgstr ""

#: ./spec-cmp.html:257
msgid "RM; the rm command,"
msgstr ""

#: ./spec-cmp.html:258
msgid "SHELL; the sh (POSIX shell) command,"
msgstr ""

#: ./spec-cmp.html:259
msgid "STRIP; the strip command,"
msgstr ""

#: ./spec-cmp.html:260
msgid "bindir; the binary installation directory,"
msgstr ""

#: ./spec-cmp.html:261
msgid "datadir; the data file installation directory,"
msgstr ""

#: ./spec-cmp.html:262
msgid "exec_prefix; the installation prefix for executable files,"
msgstr ""

#: ./spec-cmp.html:263
msgid "libdir; the library installation directory,"
msgstr ""

#: ./spec-cmp.html:264
msgid "mandir; the man page installation directory,"
msgstr ""

#: ./spec-cmp.html:265
msgid ""
"prefix; the installation prefix for non-executable files, and"
msgstr ""

#: ./spec-cmp.html:266
msgid "srcdir; the source directory."
msgstr ""

#: ./spec-cmp.html:267
msgid "Standard Targets"
msgstr ""

#: ./spec-cmp.html:268
msgid "The following standard targets must be defined in each makefile:"
msgstr ""

#: ./spec-cmp.html:269
msgid ""
"all; creates all target programs, \tlibraries, and documentation "
"files,"
msgstr ""

#: ./spec-cmp.html:270
msgid ""
"clean; removes all target programs, \tlibraries, documentation "
"files, and object files,"
msgstr ""

#: ./spec-cmp.html:271
msgid ""
"depend; generates automatic dependencies \tfor any C or C++ "
"source files (also see \"Dependencies\"),"
msgstr ""

#: ./spec-cmp.html:272
msgid ""
"distclean; removes autoconf-generated files \tin addition to "
"those removed by the \"clean\" target,"
msgstr ""

#: ./spec-cmp.html:273
msgid ""
"install; installs all distribution files in \ttheir "
"corresponding locations (also see \"Install/Uninstall Support\"),"
msgstr ""

#: ./spec-cmp.html:274
msgid ""
"uninstall; removes all distribution files from \ttheir "
"corresponding locations (also see \"Install/Uninstall Support\"), and"
msgstr ""

#: ./spec-cmp.html:275
msgid "Object Files"
msgstr ""

#: ./spec-cmp.html:276
msgid ""
"Object files (the result of compiling a C or C++ source file) have the "
"extension \".o\"."
msgstr ""

#: ./spec-cmp.html:277
msgid "Programs"
msgstr ""

#: ./spec-cmp.html:278
msgid ""
"Program files are the result of linking object files and libraries together "
"to form an executable file. A typical program target looks like:"
msgstr ""

#: ./spec-cmp.html:279
msgid "Static Libraries"
msgstr ""

#: ./spec-cmp.html:280
msgid ""
"Static libraries have a prefix of \"lib\" and the extension \".a\". A typical "
"static library target looks like:"
msgstr ""

#: ./spec-cmp.html:281
msgid "Shared Libraries"
msgstr ""

#: ./spec-cmp.html:282
msgid ""
"Shared libraries have a prefix of \"lib\" and the extension \".dylib\", \".sl\", "
"\".so\", or \"_s.a\" depending on the operating system. A typical shared library "
"is composed of several targets that look like:"
msgstr ""

#: ./spec-cmp.html:283
msgid "Dependencies"
msgstr ""

#: ./spec-cmp.html:284
msgid ""
"Static dependencies are expressed in each makefile following the target, for "
"example:"
msgstr ""

#: ./spec-cmp.html:285
msgid ""
"Static dependencies shall only be used when it is not possible to "
"automatically generate them. Automatic dependencies are stored in a file "
"named \"Dependencies\" and included at the end of the makefile. The following "
"\"depend\" target rule shall be used to create the automatic dependencies:  "
"
 depend: → $(MAKEDEPEND) -Y -I.. -f Dependencies "
"$(OBJS:.o=.c) 
" msgstr "" #: ./spec-cmp.html:286 msgid "" "We only regenerate the automatic dependencies on a Linux system and express " "any non-Linux dependencies statically in the makefile." msgstr "" #: ./spec-cmp.html:287 msgid "Install/Uninstall Support" msgstr "" #: ./spec-cmp.html:288 msgid "" "All makefiles must contain install and uninstall rules which install or " "remove the corresponding software. These rules must use the " "$(BUILDROOT) variable as a prefix to any installation directory " "so that CUPS can be installed in a temporary location for packaging by " "programs like rpmbuild." msgstr "" #: ./spec-cmp.html:289 msgid "" "The $(INSTALL_BIN), $(INSTALL_DATA), " "$(INSTALL_DIR), $(INSTALL_LIB), " "$(INSTALL_MAN), and $(INSTALL_SCRIPT) variables " "must be used when installing files so that the proper ownership and " "permissions are set on the installed files." msgstr "" #: ./spec-cmp.html:290 msgid "" "The $(RANLIB) command must be run on any static libraries after " "installation since the symbol table is invalidated when the library is " "copied on some platforms." msgstr ""