=====Contents===== * [[https://www.linuxfoundation.org/#How_to_Contribute|1 How to Contribute]] * [[https://www.linuxfoundation.org/#Help.21|1.1 Help!]] * [[https://www.linuxfoundation.org/#Data|1.2 Data]] * [[https://www.linuxfoundation.org/#Bug_reports|1.3 Bug reports]] * [[https://www.linuxfoundation.org/#User_Support|1.4 User Support]] * [[https://www.linuxfoundation.org/#Programming|1.5 Programming]] * [[https://www.linuxfoundation.org/#Money.2C_Hardware.2C_Events_...|1.6 Money, Hardware, Events ...]] ====== How to Contribute ====== ===== Help! ===== Contributors to this project are **urgently** needed! Foomatic has evolved to an unofficial standard used by many distributions and around 15000 people every day are visiting our web site. The project is currently maintained almost entirely by Till, and he hasn't enough time to do everything. There are plenty of ways to contribute to this project, so programming knowledge is not required. You can help with any of the following: * [[http://www.openprinting.org/#data|Data]] * [[http://www.openprinting.org/#bugs|Bug Reports]] * [[http://www.openprinting.org/#support|User Support]] * [[http://www.openprinting.org/#programming|Programming]] * [[http://www.openprinting.org/#otherstuff|Money, Hardware, Events, ...]] Additional info (partially outdated) about contributing to Foomatic is available in the tutorial chapter "[[http://www.openprinting.org/kpfeifle/LinuxKongress2002/Tutorial/VIII.Foomatic-Contribution/VIII.tutorial-handout-foomatic-contribution.html|How To Contribute: Helping the Advance of Linux Printing]]" ([[http://www.openprinting.org/kpfeifle/LinuxKongress2002/Tutorial/VIII.Foomatic-Contribution/VIII.Foomatic-Contribution.pdf|PDF]]). ===== Data ===== As a user of a certain printer model, please post your experience in the "User Notes" section of your printers' page. Please tell with which driver and which option settings your printer works best, what is supported and what not, whether you use Foomatic or another setup infrastructure. Tell also whether the information in the printer's entry is correct (recommended driver, drivers which support the printer, comments, etc). Please report bugs in the entries also on our [[http://www.openprinting.org/forums.cgi|forums]]. If your printer is not listed yet, simply add it by clicking the appropriate links on the [[http://www.openprinting.org/printer_list.cgi|printer listings]] pages or the "Add similar printer" link on a printer entry page of a similar printer. The latter way saves you from a lot of typing as most fields get pre-filled. But be careful to change everything what is different on the new printer. Especially the auto-detection data you should obtain from the actual printer (see instructions on the printer input page). Or go directly to the [[http://www.openprinting.org/edit_printer.cgi?newentry=1|add printer form]]. Also reporting that a printer does not work at all is important for us, users should be warned before they buy a "Paperweight". Please try to make a complete and //correct// report; entering wrong or unreproducible data will more confuse than help. Developers might even attempt provide complete XML files. Downloading and installing the [[:openprinting:database:foomatic|Foomatic packages]] gives an environment for testing. Refer to the format description in the end of the [[http://www.openprinting.org/foomatic-db-engine/README|README of the foomatic-db-engine package]]. Do also the needed changes in driver and option XML files and generate a patch to our Bazaar repositories. See the [[:openprinting:database:instructionsforcontributors|instructions for contributors]]. If you're really ambitious, you could go through a printer manufacturer's web site and tabulate data in XML for all current models. If you have discovered a free software driver which is not listed, please tell us (in the driver comment field and also on the [[http://www.openprinting.org/forums.cgi|forums]]) the driver's home page. If the driver is not available for download any more, please send us the newest source package of it which you can get, so that we can re-host this driver. Please also tell us all your experiences, special tricks, which printers does it support, and how to use the driver. Also here providing XML data as described in the [[http://www.openprinting.org/foomatic-db-engine/README|README of the foomatic-db-engine package]] is welcome. If you generate the XML files with scripts, please send us the scripts, too. You have developed or plan to develop a driver? Then please put it under a free software license and make it available for download (we can host it for you, if needed). Consider also using the [[http://sourceforge.jp/projects/opfc/|OpenPrinting Vector]], [[http://www.cups.org/ddk/index.php|CUPS Raster]], and [[http://www.openprinting.org/ijs/|IJS]] interfaces to connect your driver to GhostScript and under no circumstances patch it into GhostScript. This way users can easily add the driver to their systems. Include also a generator for PPDs and/or Foomatic data into your driver's source package, so that users can easily set up printer queues with your driver. This also makes it easier for us to list your driver on our site and for distributions to support your driver. Consult the [[http://www.openprinting.org/foomatic-db-engine/README|README of the foomatic-db-engine package]] to obtain the necessary Foomatic background knowledge. If you are a printer manufacturer, test your printers to find which ones work with free software, or provide free software drivers. Ideally, provide Foomatic data and/or PPDs for your printers and drivers. This will lead to useful listings of your printers in the support database and good reports on the [[https://www.linuxfoundation.org/node/add/wiki?gids[]=2721|Vendor Info]] and [[https://www.linuxfoundation.org/node/add/wiki?gids[]=2721|Suggested Printers]] pages. ===== Bug reports ===== Please post also all kinds of bug reports of our web site and Foomatic on the appropriate [[http://forums.openprinting.org/|forums]], ideally in the [[http://forums.openprinting.org/list.php?34|LF OpenPrinting Site Support]]. Please do not report only "I cannot print" or "Foomatic does not work". Try to investigate as best you can what the origin of the problem is. Read the documentation of your distribution, your printing system, Foomatic, this web site, GhostScript, the driver, the CUPS printing tutorial, ... Read the Foomatic database entry pages of the printer and the driver, check through the [[http://forums.openprinting.org/|forums]] and their [[http://www.openprinting.org/cgi-bin/mailman/listinfo|archives]]. Check your printing system's log files, check whether all kernel modules are loaded, check whether you can print by entering the GhostScript command line manually or by sending a text or PostScript directly to the printer device. You can also try to surround the printing system by trying to print [[:openprinting:database:nospoolerdocumentation|without spooler]]. Turn on the debug modes of your printing software, for example the "''LogLevel''" setting in the ''/etc/cups/cupsd.conf'' file of CUPS. In "''foomatic-rip''", the universal filter script of Foomatic, you can turn on the debug mode by editing the script replacing the "''my $debug = 0;''" line by "''my $debug = 1;''". This debug mode leads to a log file named ''/tmp/foomatic-rip.log'' and to the PostScript as sent to the renderer (usually GhostScript or the built-in interpreter of a PostScript printer) in ''/tmp/foomatic-rip.ps''. When you post your report, tell exactly which distribution ("Mandriva 2007", "SuSE 10.1", but not "Linux 7.2"), which printer model, which driver, which option settings, and which printer port you are using. Make also your log files and configuration files, the output of "''lsmod''", "''lpstat''", "''lpq''", and other diagnostic commands available, and also the file which you tried to print. ===== User Support ===== Do you have knowledge and experience with printing using free software? Then please help the users on this very complicated subject. The users post their questions on the [[http://forums.openprinting.org/|forums]] of this site. So read all the forums (also of other printer brands then yours, because some questions turn out not to be model-specific) and help the users with your answers. The most difficult questions we face are distribution-specific questions (we collectively know Mandriva, Ubuntu, Debian, Red Hat, and SuSE); also questions about Windows and Mac interoperability are often puzzlers. ===== Programming ===== Documentation about the database structure, the Perl API, and how the software works, you find in the README files of the [[http://www.openprinting.org/foomatic-db-engine/README|foomatic-db-engine]] and the [[http://www.openprinting.org/foomatic-filters/README|foomatic-filters]] packages. Detailed info about Foomatic 2.0.x you can find in the tutorial chapter "[[http://www.openprinting.org/kpfeifle/LinuxKongress2002/Tutorial/IV.Foomatic-Developer/IV.tutorial-handout-foomatic-development.html|Foomatic from the Developer's View: How does Foomatic work?]]" ([[http://www.openprinting.org/kpfeifle/LinuxKongress2002/Tutorial/IV.Foomatic-Developer/IV.Foomatic-Developer.pdf|PDF]]). Most of this applies also to Foomatic 3.0.x. Here are some documents about the former Foomatic 2.0: The [[http://www.openprinting.org/pipermail/foomatic-devel/2001q1/000073.html|roadmap]], and Till's original ideas for Foomatic 2.0 listed in [[http://www.openprinting.org/pipermail/foomatic-devel/2002q2/000753.html|his announcement of version 1.9]]. Here is our current TODO list (This list can be considered as an RFC, a "Request For Comments", please comment, suggest, discuss on the [[http://lists.linux-foundation.org/mailman/listinfo/printing-foomatic|Foomatic development mailing list]], see also [[http://www.openprinting.org/Foomatic-Devel-Ideas.txt|some ideas and sketches of implementation]]): * More [[http://www.openprinting.org/foomatic-db-engine/README|documentation for developers]], especially about the XML database format so that contribution of data gets easier. * Support for conflicts of option settings (as Duplex on transparencies). * Add CUPS-1.2-specific keywords to numerical and string options in the PPD files so that these options are fully accessible also from the web interface of CUPS 1.2 or other CUPS-1.2-specific frontends. CUPS 1.2 has native support for numerical and string options. * Multiple-language PPD file generation (see CUPS 1.2 documentation and CUPS DDK). * Option for the output of the version number for Foomatic command line tools, esp. foomatic-rip ([[http://forums.linuxfoundation.org/read.php?34,7|forum thread]]) * For every option foomatic-rip should also be able to handle "KDEPrint-