How to upgrade Cups and cups-filters in Ubuntu 20.04 to the latest versions that are part of Ubuntu 20.10 to fix multiple copies bug?

6,619

Solution 1

It's been a while, but today I found the solution to my specific problem with the Brother MFC-L8900CDW printer, so I post an answer to my own question. Hopefully it will be helpful for other people facing the same problem.

The solution I found comes from here: https://github.com/OpenPrinting/cups-filters/issues/242

It's a post from tillkamppeter from July 12 that finally lead me on the right track.

Actually all I needed to do was altering the ppd file with root rights, so no need to change the cups version in my case. Obviously the ppd file provided by Brother didn't work out correctly.

Here is what helped me:

Stop the CUPS daemon:

sudo systemctl stop cups

Then edit the ppd file (you need to do this with root rights):

sudo nano /etc/cups/ppd/MFCL8900CDW.ppd

You find a line like

*cupsManualCopies: false

near the beginning of the file. Change this line to

*cupsManualCopies: True

Please note it's True, not true (case sensitive). It was mentioned somewhere else in that thread that it has to be written with capital T.

Save the file

CTRL+O

Exit the editor

CTRL+X

and restart cups

sudo systemctl start cups

From this point on things have been working fine.

Thanks for everyone who helped me and for your time.

Solution 2

Try this:

Uninstall cups:

 sudo apt-get remove --purge cups*

Download the package from their site: https://github.com/apple/cups/releases/download/v2.3.3/cups-2.3.3-source.tar.gz

Unzip the file and install cups:

cd ~/home/Alyana/Downloads

tar –zxvf cups-2.3.3-source.tar.gz

cd /cups-2.3.3

./configure

make

sudo make install

To uninstall this package:

cd ~/home/Alyana/Downloads/cups-2.3.3

sudo make uninstall

sudo apt-get autoremove --purge

To reinstall the original:

 sudo apt-get update
 
 sudo apt-get install cups

Edited: ========================================================

Check first if cups and cups-browsed are not in /etc/init.d/

If they are there, move and activate them

sudo mv /etc/init.d/cups /etc/systemd/system/

sudo mv /etc/init.d/cups-browsed /etc/systemd/system/

sudo systemctl enable cups

sudo systemctl enable cups-browsed

It remains to try the following to install with checkinstall

Install checkinstall

sudo apt-get update

sudo apt-get install --reinstall checkinstall 

Uninstall what was installed with make

cd ~/home/Alyana/Downloads/cups-2.3.3

sudo make uninstall

sudo apt-get autoremove --purge

Use checkinstall

sudo checkinstall

The checkinstall "wizard" will open. In it you can modify the information that the package will have, the options are:

Maintainer - The main developer of the package.
Summary: a description of the package.
Name: name that you want to give to the package.
Version: package version.
Release: it is the main version of the package, we can leave it as it comes.
License: application license, it is preferable not to touch it.
Group: group by which it was created, we can leave it as is.
Architecture: package processor architecture.
Source location: name of the folder (only the folder, not the entire path) where the package code is.
Alternate source location: no need to modify.
Requires: dependencies that must be installed for their correct operation.
Provides: name of the package that provides, it is not necessary to modify it.
Conflicts: packages with which it conflicts.
Replaces - Packages it replaces.

There are a wide number of options to modify. Each one has a number on its left, to edit it just type its number and press [Enter].

Those that are usually modified are: Maintainer, Summary, Name and Version.

Once we have modified what we want, we press [Enter] and it will begin to compile and install the package.

When it is finished, a .deb package of the application will have appeared in the directory where we compiled, ready to install on another pc.

In "Version", there should be no letters. Do not edit "Requires".

Share:
6,619

Related videos on Youtube

Alyana
Author by

Alyana

I am a Linux enthusiast. After switching from Windows to Linux when Windows 10 was released (I totally despise Windows 10 and will never ever use it), I have been using various Linux distributions. I have gathered some knowledge and some skills since then, but I am far from being an expert. On my main machine I am currently using Ubuntu 20.04 LTS. Aside using my PCs for work, I am also a gamer. I switched to Linux on gaming as well.

Updated on September 18, 2022

Comments

  • Alyana
    Alyana almost 2 years

    some printers are affected by the "multiple copies bug" (they do only print one page instead of the desired multiple copies: no matter how many copies you request, only one page comes out of the printer).

    Affected are, for example, Brother MFC-L8900CDW, Brother MFC-L8650DW, HP OfficeJet 6950.

    They all have one thing in common: they are connected to their PCs via network, using a fixed IP address.

    Printing and scanning work fine except that if you want to print multiple copies, which sometimes is necessary, you only get one copy.

    After doing some research, I found out, that obviously this bug is fixed in the cups-filters > 1.27.5 (and therefore 1.28.5, that are already part of the groovy distribution). Here is the corresponding page on github: https://github.com/OpenPrinting/cups-filters/issues/255

    Now I don't want to switch those production machines from an LTS version to an intermediate 9-month-version only to fix that cups-filters bug.

    So my idea is, to upgrade cups to 2.3.3 in Ubuntu 20.04, but I am not skilled enough to do that, and I haven't found a solution yet.

    Installing the cups-filters 1.28.5 fails due to the missing dependencies that are not part of the focal repositories. Hence I guess I need to uninstall cups 2.3.1 in 20.04 completely, and install the groovy cups version 2.3.3, that includes these cups-filters.

    Is anyone here able to help me out with this, or has an advice how to fix that bug?

    Thank you so much for any help

    Alyana

    • user535733
      user535733 over 3 years
      The bugfix is clear -- there's a patch. You can apply the patch yourself. Or you can wait for the next LTS that includes the patch...in two years. Or you can change your mind and shift to non-LTS for a couple years. Or you can file an SRU request so the patch gets backported to 20.04 in a few months. You have lots of choices. Weighing the pros and cons of each choice, and making the decision that is best for you is entirely up to you. I recommend against using wrong-release packages: A frankensystem is rarely stable or maintainable.
  • Alyana
    Alyana over 3 years
    Thank you so much for your answer. I did exactly what you wrote, no errors occured, but now I cannot print anymore at all. Restarting my system didn't help either. CUPS isn't present, and it is not possible to open the web interface either. Checking for my installed printers gives the info, that the printing system does not seem to be installed. I tried to enable cups in system.d. Sudo systemctl start cups seems to work, but sudo systemctl enable cups gives "update-rc.d: error: cups Default-Start contains no runlevels, aborting".
  • kyodake
    kyodake over 3 years
    @Alyana: Try using checkinstall, I edit the post to include the procedure.
  • Alyana
    Alyana over 3 years
    Thank you, you are genius! I now have the .deb package, which opens flawlessly in gdebi and all dependencies are satisfied. Installation on my machine failed though, it gave an error when trying to overwrite "/usr/bin/cancel", which is already part of cups 2.3.1. I will try again to get rid of 2.3.1, because when opening cups webinterface it still says 2.3.1. I will try on a different machine too. Thank you so much however for your efforts and your help.
  • Alyana
    Alyana over 3 years
    I tried again, got rid of cups, but installation error is the same when trying to overwrite /usr/bin/cancel. It said, insert-subprocess killed by signal (broken pipe), whatever that means... I will try again maybe I did something wrong in the process.
  • Nick C
    Nick C over 3 years
    Editing the ppd file as described above worked for me, thank you! Only trouble I had was finding the file name of the printer to replace MFCL8900CDW in the example given. Since I'm relatively new to this it was not obvious to me. I ended up finding it after a while by including a dash with my printer model: "MFC-J985DW". Thank you again!
  • Manuzziman
    Manuzziman about 2 years
    For our Epson in the ppd file I replaced *cupsManualCopies: true with *cupsManualCopies: True . Solved the problem.