diff options
author | Yarny0 <41838844+Yarny0@users.noreply.github.com> | 2019-06-30 15:15:28 +0200 |
---|---|---|
committer | Yarny0 <41838844+Yarny0@users.noreply.github.com> | 2019-07-14 10:15:06 +0200 |
commit | 60311e09576528982582bf9cf1eb86c109a72387 (patch) | |
tree | aca76a3bc00d8fcfd1d1d6085e8ac76ba6eeac17 /pkgs/misc/drivers/hplip/image-processor.patch | |
parent | 15aacfb45077d572fd3999ab00a6fe630af2cae7 (diff) | |
download | nixpkgs-60311e09576528982582bf9cf1eb86c109a72387.tar nixpkgs-60311e09576528982582bf9cf1eb86c109a72387.tar.gz nixpkgs-60311e09576528982582bf9cf1eb86c109a72387.tar.bz2 nixpkgs-60311e09576528982582bf9cf1eb86c109a72387.tar.lz nixpkgs-60311e09576528982582bf9cf1eb86c109a72387.tar.xz nixpkgs-60311e09576528982582bf9cf1eb86c109a72387.tar.zst nixpkgs-60311e09576528982582bf9cf1eb86c109a72387.zip |
hplip: patch imageProcessor segfault in `hpcups` (#58949)
Beginning with version 3.18.7, `hpcups` fails with > DEBUG: imageProcessorStartPage failed and segfaults (tested with HP LaserJet 1000 printer). Upstream bug reports: * https://bugs.launchpad.net/hplip/+bug/1788706 * https://bugs.launchpad.net/hplip/+bug/1787289 There is a patch available in one of the reports: https://bugs.launchpad.net/hplip/+bug/1787289/+attachment/5176026/+files/hplip.patch It applies to 3.18.7, but not to later versions. This commit adds a slight adaption of the patch that applies to versions 3.18.9 -- 3.19.6. The patch fixes https://github.com/NixOS/nixpkgs/issues/58949 . Note that the patch is merely a workaround: It simply removes all calls into the ImageProcessor library from `HPCupsFilter.cpp`.
Diffstat (limited to 'pkgs/misc/drivers/hplip/image-processor.patch')
-rw-r--r-- | pkgs/misc/drivers/hplip/image-processor.patch | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/pkgs/misc/drivers/hplip/image-processor.patch b/pkgs/misc/drivers/hplip/image-processor.patch new file mode 100644 index 00000000000..ef1040ba08b --- /dev/null +++ b/pkgs/misc/drivers/hplip/image-processor.patch @@ -0,0 +1,62 @@ +diff --git i/prnt/hpcups/HPCupsFilter.cpp w/prnt/hpcups/HPCupsFilter.cpp +index 5b282d8..153ee3a 100644 +--- i/prnt/hpcups/HPCupsFilter.cpp ++++ w/prnt/hpcups/HPCupsFilter.cpp +@@ -31,7 +31,6 @@ + \*****************************************************************************/ + + #include "HPCupsFilter.h" +-#include "ImageProcessor.h" + + #include <signal.h> + #include <sys/wait.h> +@@ -637,16 +636,10 @@ int HPCupsFilter::processRasterData(cups_raster_t *cups_raster) + + + sprintf(hpPreProcessedRasterFile, "%s/hp_%s_cups_SwapedPagesXXXXXX",CUPS_TMP_DIR, m_JA.user_name); +- image_processor_t* imageProcessor = imageProcessorCreate(); + + while (cupsRasterReadHeader2(cups_raster, &cups_header)) + { + +- IMAGE_PROCESSOR_ERROR result = imageProcessorStartPage(imageProcessor, &cups_header); +- if (result != IPE_SUCCESS){ +- dbglog("DEBUG: imageProcessorStartPage failed result = %d\n", result); +- } +- + current_page_number++; + + if (current_page_number == 1) { +@@ -745,11 +738,6 @@ int HPCupsFilter::processRasterData(cups_raster_t *cups_raster) + color_raster = rgbRaster; + black_raster = kRaster; + +- result = imageProcessorProcessLine(imageProcessor, m_pPrinterBuffer, cups_header.cupsBytesPerLine); +- if (result != IPE_SUCCESS){ +- dbglog("DEBUG: imageProcessorProcessLine failed result = %d\n", result); +- } +- + + if ((y == 0) && !is_ljmono) { + //For ljmono, make sure that first line is not a blankRaster line.Otherwise printer +@@ -780,11 +768,6 @@ int HPCupsFilter::processRasterData(cups_raster_t *cups_raster) + } + } // for() loop end + +- result = imageProcessorEndPage(imageProcessor); +- if (result != IPE_SUCCESS){ +- dbglog("DEBUG: imageProcessorEndPage failed result = %d\n", result); +- } +- + + m_Job.NewPage(); + if (err != NO_ERROR) { +@@ -800,8 +783,6 @@ int HPCupsFilter::processRasterData(cups_raster_t *cups_raster) + rgbRaster = NULL; + } + +- imageProcessorDestroy(imageProcessor); +- + unlink(hpPreProcessedRasterFile); + return ret_status; + } |