From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id 413501387FD for ; Sun, 8 Jun 2014 21:48:30 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id CBE55E09DB; Sun, 8 Jun 2014 21:48:20 +0000 (UTC) Received: from mail-we0-f174.google.com (mail-we0-f174.google.com [74.125.82.174]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 72938E09D2 for ; Sun, 8 Jun 2014 21:48:19 +0000 (UTC) Received: by mail-we0-f174.google.com with SMTP id k48so5019242wev.19 for ; Sun, 08 Jun 2014 14:48:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:subject:references :in-reply-to:content-type:content-transfer-encoding; bh=sm8R0aiUkEG6DeLYQbILR11ANugGwm5CrhRH6FjsvLA=; b=N4oRMUorEyYkNPud33vea+0XagpmwwdNKGfL1HJ2k9M9XVG0yGMezksK1Wf1sAHfQs QP3hr5BaZzsP9roKPn5mSUkAcG7GtbUKGMY0X9yia8IMj6aXtDExPg3Cx6Dk4yhvLr6Q I51T4k3Vs6rHrnaOD7oN3k3Ojo1dccelQZhG8SkbBlANOow/m7mauIbu5rPL6foZNgqY 30yIb1V14dpsGhsRdVxlNsYldjPheQ1ul2IYvYHosUXa+FnNMdSk0QYlJqemAt9TqnbN nOPa6S4Bto0qLgDKewMwsy4rKuAgfVfaFs4P67g2W1FXon2rmh9lBmM4JcFg4EMFMW2f Vm9Q== X-Received: by 10.14.174.135 with SMTP id x7mr2944578eel.10.1402264098044; Sun, 08 Jun 2014 14:48:18 -0700 (PDT) Received: from [172.20.0.40] (196-215-51-239.dynamic.isadsl.co.za. [196.215.51.239]) by mx.google.com with ESMTPSA id p9sm40337350eeg.32.2014.06.08.14.48.16 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Sun, 08 Jun 2014 14:48:17 -0700 (PDT) Message-ID: <5394D9F4.1070606@gmail.com> Date: Sun, 08 Jun 2014 23:47:32 +0200 From: Alan McKinnon User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-user@lists.gentoo.org Reply-to: gentoo-user@lists.gentoo.org MIME-Version: 1.0 To: gentoo-user@lists.gentoo.org Subject: Re: [gentoo-user] What's with foomatic-filters and cups-filters? References: <20140608154809.GA4020@acm.acm> <201406081915.36657.dilfridge@gentoo.org> In-Reply-To: <201406081915.36657.dilfridge@gentoo.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Archives-Salt: f9a9870f-3eb8-4d75-bf5c-6dc5f57d1b8d X-Archives-Hash: 91ef9d66ce248ea325944bcf12744aea On 08/06/2014 19:15, Andreas K. Huettel wrote: > Am Sonntag, 8. Juni 2014, 17:48:09 schrieb Alan Mackenzie: >> . What is all this trying to tell me? I've tried for over an hour to >> make sense of it, but my eyes just glaze over. My best guess is that >> cups-filters and foomatic-filters are packages which can't be installed >> together. But I _need_ foomatic-filters - otherwise my printer doesn't >> print. Or do I? cups-filters seems to be needed by cups. >> >> What _are_ cups-filters and foomatic-filters? emerge -s is little help >> here. Why do I need both of them? > > * cups-filters is a former part of cups that provides file format conversions > (among other things). Basically it (also) makes sure that everything is > internally converted to PDF. It's not part of CUPS (as maintained by Apple) > anymore, but hard-required by CUPS on Linux (and maintained by the Linux > Foundation). > > * foomatic-filters is a set of printer drivers, basically. > > * Some time ago the cups-filters maintainers took over maintainership of the > foomatic-filters part for CUPS as well, and integrated it cleanly into cups- > filters. That's the reason for the blocker; recent cups-filters contain the > newest foomatic code available. The former separate foomatic-filters package > is now unmaintained. > > So, we have the following possibilities for installation: > > 1) normal CUPS user, recommended, this is what comes by default (unless you do > something stupid such as USE="-*") > net-print/cups > net-print/cups-filters[foomatic] > > 2) NOT recommended, dead code, unmaintained: > net-print/cups > net-print/cups-filters[-foomatic] > net-print/foomatic-filters > > 3) for the stone age people out there, NOT recommended, dead code, > unmaintained: > any other printing system, e.g. lprng > net-print/foomatic-filters > > So, what's wrong in your case? No idea, but after longish not-updating things > do get hard for emerge to unravel. My recommendation is, since foomatic- > filters and cups-filters are only needed for printing and emerge runs fine > without them, force-remove both and let emerge figure out the right package > set from scratch. > > [This basically works with any blocker as a last resort, but can be *very* > dangerous for packages that are needed by the core system. You definitely > don't want to remove gcc or glibc this way, for example. :)] > > emerge -aC net-print/cups-filters net-print/foomatic-filters > emerge -uDNavt --backtrack=100 world > > Cheers, > Andreas Good post! For Alan Mackenzie's benefit, a little back story: The whole topic of printing is a mess, no single mere mortal can wrap their wits around it. Long long ago a printer was a piece of hardware you plugged into a serial or parallel port, the kernel found it and you were good to go. Whoopee! Because more than one user could use the printer and this causes conflicts, print servers were written: the server controlled the printer hardware and you submitted your print job to the server, and that took care of all the messy parts. To do it over the network was just as easy, modify the print server to also listen on a network port. This server was the classic "lp" suite of tools. Many years ago, HP developed a fancy printing language for their laser printers called PostScript[1]. Think of it as a giant image format, it doesn't describe what the printed page looks like, it really is simple code that tells the printer how to print the page, including graphics and such. And so the era of complicated drivers was begun. These laser printers needed gobs of memory and big cpus to deal with PostScript, in the 386 era it was common to have a printer much more powerful than your computer. Enter other vendors and Windows. Just like with sound cards, vendors wrote their own drivers adding "features" done in software. This makes sense is you can't get PostScript to do double-sided printing or scale down so two pages fit on one page, doesn't make so much sense if you just want to avoid paying HP a PostScript license. After a while, HP got around to updating PostScript (or maybe it was Apple's code all long - I forget...) and called it PCL (Printer Control Language), needing new drivers. meanwhile, printers shifted over to USB away from parallel ports and this needed new drivers. Plus there's two way to do it: do the USB part of the printing in userspace and only use the kernel for regular USB work, or put the whole thing in the kernel. Needing more drivers. last I looked, there were still some serious issues with the options to have it all in the kernel. On the print server side, the devs were getting real busy. We had classic lp, then came lprng, then something else I forget and finally an upstart crowd wrote CUPS (Common Unix Printing System), eventually bought by Apple. Ironically, there's now nothing common about it and it's for iOS not Unix. Such is life. With the latest major version update Apple ripped out all the bits we find so useful and still declare the software is "for Unix". Firms like Canon had developed big expensive network-enabled stand-alone printers. You'd think this is as easy as fitting an embedded OS with a print server to replace a dedicated PC with USB/parallel ports... I've had to deal with junk that despite being branded PostScript would only work with it's own Windows drivers. 50 Linux users of all sorts and different distros could not get this bitch to work. Enter the age of network printing protocols. We have IPP running on port 631, something else that is supposedly HTML with huge amounts of extra printer-specific stuff, JetDirect, and many more things I've long ago forgotten about. Plus Samba to share a printer the way Windows does it. Did I mention PPDs? Printer Definition files that describe how to drive a printer using a standard dscription file. Awesome. Where do you get these things? Oh I dunno there's foomatic, cups built-ins, gutenprint, magicfilter and some magic thing from HP called hplip that I once found worked for an Epson inkjet! Andreas did a fine job above of describing a map to get around this driver stuff, including all the many wonderful ways these driver ebuilds have to block each other to get installed at all. And I haven't even touched on CUPS' "feature" that requires you to delete and re-add back all your printers after any remerge. Ask Dale about this, he's the resident expert and he's even figured out how to get hplip to work. Are you still here, still listening? Ye gods, this mail is 5x longer than I thought it would be. I personally have given up on printing period. I either randomly hit useful looking buttons in KDE's config widget hoping it will work, or at work I print to PDF, put it on a USB dongle and wander over to my wife's desk saying please print this on your windows machine. I'm not surprised you felt pain dealing with CUPS, I feel your pain - I really honestly do. But sadly, I can't help you fix it, see previous para :-) [1] PostScript is still alive and well today in the form of PDF, and that's how PDF started out - in it basic form it is essentially compressed PostScript with hyperlinks! -- Alan McKinnon alan.mckinnon@gmail.com