{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":566744314,"defaultBranch":"master","name":"libcupsfilters","ownerLogin":"OpenPrinting","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2022-11-16T10:26:34.000Z","ownerAvatar":"https://github.com/avatars/u/20563597?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1723664464.0","currentOid":""},"activityList":{"items":[{"before":"4a2eee3ee8514254bfa7d7b22707ce2abceb616e","after":null,"ref":"refs/tags/2.1b1","pushedAt":"2024-08-14T19:34:46.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://github.com/avatars/u/1244825?s=80&v=4"}},{"before":"fb2a4a25d90b05dd2b034af0589c13f5856532f2","after":null,"ref":"refs/tags/2.0b1","pushedAt":"2024-08-14T19:33:21.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://github.com/avatars/u/1244825?s=80&v=4"}},{"before":"4a2eee3ee8514254bfa7d7b22707ce2abceb616e","after":"fb2a4a25d90b05dd2b034af0589c13f5856532f2","ref":"refs/heads/master","pushedAt":"2024-08-14T19:24:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://github.com/avatars/u/1244825?s=80&v=4"},"commit":{"message":"Include cupsfilters/testfilters.sh in release tarball\n\n\"check_SCRIPTS\" is not automatically included, has to be added to\nEXTRA_DIST.","shortMessageHtmlLink":"Include cupsfilters/testfilters.sh in release tarball"}},{"before":"077f401e317951c44e2ef05f219860b8089e2bed","after":null,"ref":"refs/tags/2.0b1","pushedAt":"2024-08-14T19:21:03.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://github.com/avatars/u/1244825?s=80&v=4"}},{"before":"221698cd4c98105b29996c731b8ec7c4a6d1d8b5","after":"4a2eee3ee8514254bfa7d7b22707ce2abceb616e","ref":"refs/heads/master","pushedAt":"2024-08-14T19:01:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://github.com/avatars/u/1244825?s=80&v=4"},"commit":{"message":"libcupsfilters 2.1b1 Release","shortMessageHtmlLink":"libcupsfilters 2.1b1 Release"}},{"before":"980f6f49c4fbbfa8aa52f93e4b0b1d7e39f1a17a","after":"221698cd4c98105b29996c731b8ec7c4a6d1d8b5","ref":"refs/heads/master","pushedAt":"2024-07-23T06:13:53.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://github.com/avatars/u/1244825?s=80&v=4"},"commit":{"message":"Revise building docs and add testing instructions (#59)\n\n- Refine missing packages in README\r\n- Revise building docs\r\n- Ignore testing tmp files\r\n\r\nSigned-off-by: TTFISH ","shortMessageHtmlLink":"Revise building docs and add testing instructions (#59)"}},{"before":"449ac6350d00c385ae226513ef6d85ee81ae161a","after":"980f6f49c4fbbfa8aa52f93e4b0b1d7e39f1a17a","ref":"refs/heads/master","pushedAt":"2024-07-11T19:12:27.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://github.com/avatars/u/1244825?s=80&v=4"},"commit":{"message":"Merge CI test into workflow with fixed tests (#58)\n\n\r\nMerged the GSoC 2023 work from Pratyush Ranjan, a CI/build/unit testing facility which tests file conversions given by a table describing the conversions and by included input files.\r\n\r\n- Manual merge from original commits with failed tests\r\n The original repo is from branch ci23 of\r\n https://github.com/pranjanpr/libcupsfilters. The test fails which\r\n required to be fixed.\r\n\r\n- In .gitignore add temporary files created during the tests\r\n\r\n- Fixed failing test script\r\n The last two test cases incupsfilters/test-filter-cases.txt\r\n required further checks.\r\n\r\n Original gave: ERROR: cfFilterUniversal: Unsupported combination of input and output formats: application/pdf -> image/jpeg","shortMessageHtmlLink":"Merge CI test into workflow with fixed tests (#58)"}},{"before":"dd698ec7a71bd8a90bc09607c6150d10f90327c0","after":"449ac6350d00c385ae226513ef6d85ee81ae161a","ref":"refs/heads/master","pushedAt":"2024-07-04T12:44:26.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://github.com/avatars/u/1244825?s=80&v=4"},"commit":{"message":"pkgconfig: Add '-I${includedir}' to Cflags (#57)\n\nDon't just specify `-I${includedir}/cupsfilters`,\r\nbut also `-I${includedir}` in the Cflags\r\nin the pkgconfig file.\r\n\r\nThis way, includes prefixed with the \"cupsfilters/\"\r\ndirectory path also work.\r\n\r\nThis e.g. makes the libppd build work when\r\nlibcupsfilters is installed in a non-default path\r\n(e.g. configured with `--prefix=$HOME/temp/cpdb`)\r\nand libppd is configured to use that one\r\n(e.g. by setting env variable\r\n`PKG_CONFIG_PATH=$HOME/temp/cpdb/lib/pkgconfig/`\r\nduring configure).\r\n\r\nWithout this commit, libppd's configure would\r\nsucceed in the above scenario, but the actual build\r\nusing `make` would then fail to find the cupsfilters\r\nheaders:\r\n\r\n make all-recursive\r\n make[1]: Entering directory '/home/michi/development/git/libppd'\r\n make[2]: Entering directory '/home/michi/development/git/libppd'\r\n CC ppd/libppd_la-ppd-attr.lo\r\n In file included from ppd/ppd-attr.c:16:\r\n ./ppd/ppd.h:26:12: fatal error: cupsfilters/log.h: No such file or directory\r\n 26 | # include \r\n | ^~~~~~~~~~~~~~~~~~~\r\n compilation terminated.\r\n\r\n(This is with libppd [1] git master as of commit\r\n327b61cf5ec3bc74677e3b56fde4c8c4e9acdcb7).\r\n\r\n[1] https://github.com/OpenPrinting/libppd","shortMessageHtmlLink":"pkgconfig: Add '-I${includedir}' to Cflags (#57)"}},{"before":"75be59ca7183307df9387b3e70ebb83c785d78a9","after":"dd698ec7a71bd8a90bc09607c6150d10f90327c0","ref":"refs/heads/master","pushedAt":"2024-06-11T19:24:20.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://github.com/avatars/u/1244825?s=80&v=4"},"commit":{"message":"Fix content data stream concatenation mangling output in cfFilterPDFToPDF (#56)\n\ncfFilterPDFToPDF(): Add newline after each content stream in ::provideStreamData\r\n\r\nWhen concatenating the data streams for the page's contents, add a new\r\nline at the end of each data stream to avoid cases where the\r\nconcatenation might result in a corruption.\r\nEg (extracted from a real pdf):\r\n\r\n %% Contents for page 1\r\n %% Stream 1\r\n 9 0 obj\r\n <<\r\n /Length 10 0 R\r\n >>\r\n stream\r\n q\r\n endstream\r\n endobj\r\n\r\n 10 0 obj\r\n 1\r\n endobj\r\n\r\n %% Stream 2\r\n 11 0 obj\r\n <<\r\n /Length 12 0 R\r\n >>\r\n stream\r\n q 0.1 0 0 0.1 0 0 cm\r\n\r\nthe output pdf results in\r\n qq 0.1 0 0 0.1 0 0 cm\r\n\r\nwith the effect that 'qq' is not being parsed correctly, effectively\r\nmangling the contents.\r\n\r\nSigned-off-by: Sergio Gómez ","shortMessageHtmlLink":"Fix content data stream concatenation mangling output in cfFilterPDFT…"}},{"before":"7c5b0951325e120048e20e24b54f63e16e622212","after":"75be59ca7183307df9387b3e70ebb83c785d78a9","ref":"refs/heads/master","pushedAt":"2024-05-20T11:14:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://github.com/avatars/u/1244825?s=80&v=4"},"commit":{"message":"open-document-academy.yml: Use token \"${{ secrets.GITHUB_TOKEN }}\"","shortMessageHtmlLink":"open-document-academy.yml: Use token \"${{ secrets.GITHUB_TOKEN }}\""}},{"before":"93809ac185d0aa6c658ef09758bfb611cc8cfd87","after":"7c5b0951325e120048e20e24b54f63e16e622212","ref":"refs/heads/master","pushedAt":"2024-05-20T10:56:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://github.com/avatars/u/1244825?s=80&v=4"},"commit":{"message":"open-document-academy.yml: Do not specify GitHub token","shortMessageHtmlLink":"open-document-academy.yml: Do not specify GitHub token"}},{"before":"78cc6758d98c31397c8addefaa3dfd8746331b72","after":"93809ac185d0aa6c658ef09758bfb611cc8cfd87","ref":"refs/heads/master","pushedAt":"2024-05-20T09:17:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://github.com/avatars/u/1244825?s=80&v=4"},"commit":{"message":"Added GitHub workflow for Canonical Open Documentation Academy\n\nOpenPrinting will participate in Canonical's Open Documentation\nAcademy, as an organization in need of documentation.\n\nEssential for that is that documentation-related issue reports on\nOpenPrinting GitHub repositories get forwarded to the GitHub\nrepository of the Open Documentation Academy:\n\nhttps://github.com/canonical/open-documentation-academy/\n\nThis commit is a first test for an automated workflow to do so. We add\nthe GitHub workflow suggested by the user @minaelee (Minae Lee) in the\nfeature request for a GitHub action supporting the automated\nforwarding:\n\nhttps://github.com/canonical/open-documentation-academy/issues/11\n\nThe suggested workflow code is rudimentary, just copying the issue\nreport as the label \"ODA\" gets added to it. There is no syncing of the\ncopy with the original later on, for example when the original's\ndescription gets edited, comments added to the original or the\noriginal being closed.\n\nAlso this workflow is a significant bunch of code, and so a\nmaintenance nightmare if deploying on all the > 30 repositories on\nOpenPrinting.\n\nTherefore we will test it on libcupsfilters for now and include the\nother repositories as soon as there is a GitHub action which is\ndeveloped and maintained by the Open Documentation Academy.","shortMessageHtmlLink":"Added GitHub workflow for Canonical Open Documentation Academy"}},{"before":"48ff575a1c3f22f41627741afe1554da2ba5eeb9","after":"78cc6758d98c31397c8addefaa3dfd8746331b72","ref":"refs/heads/master","pushedAt":"2024-03-07T17:27:06.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://github.com/avatars/u/1244825?s=80&v=4"},"commit":{"message":"raster.c: Always use sRGB/sGray if driver is PWG/URF and RGB/Gray is requested (#51)\n\nSome driverless printers (EPSON L3160 in Fedora report) stopped working\r\nafter commit c6175a2 if `ColorModel=RGB` is passed as option. A\r\ndifferent CUPS color space is assigned with the fix - CUPS_CSPACE_RGB,\r\nwhich results in no ICC profile being assigned into Ghostscript command\r\nline.\r\n\r\nProbably we can try other .icc profiles with CUPS_CSPACE_RGB (srgb.icc\r\ndoes not work with RGB color space), but I tested with reporter that\r\nusing sRGB space + srgb.icc works for the printer - so the patch is to\r\nuse sRGB if the driver is URF/PWG.\r\n\r\nSame logic applied for grayscale printing, if Gray is requested, sGray is \r\nused for URF/PWG.","shortMessageHtmlLink":"raster.c: Always use sRGB/sGray if driver is PWG/URF and RGB/Gray is …"}},{"before":"ae55809fae7ba834bc3bb3fe90c2aa5d87ab9de1","after":"48ff575a1c3f22f41627741afe1554da2ba5eeb9","ref":"refs/heads/master","pushedAt":"2024-02-20T15:33:51.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://github.com/avatars/u/1244825?s=80&v=4"},"commit":{"message":"cfCatalogLoad(): Fix incorrect strncpy() limit calculation (#49)\n\nPreserve the new allocated size in a variable and use it instead of\r\nsizeof().\r\n\r\nThe old calculation would wrap around in most cases, making the limit\r\nineffective. For very short original length of `human_readable` (6 bytes\r\nor less on 64-bit platforms), the appended text would be cut short to\r\nfit the pointer size.","shortMessageHtmlLink":"cfCatalogLoad(): Fix incorrect strncpy() limit calculation (#49)"}},{"before":"668d7dac277c1d44732fc25e5491c79ff82e597d","after":"ae55809fae7ba834bc3bb3fe90c2aa5d87ab9de1","ref":"refs/heads/master","pushedAt":"2024-01-23T22:41:12.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://github.com/avatars/u/1244825?s=80&v=4"},"commit":{"message":"Fix warnings reported by clang 17 (#48)","shortMessageHtmlLink":"Fix warnings reported by clang 17 (#48)"}},{"before":"c1d4e4485f90b5d1964f7b10c62f6299f0ff99c7","after":"668d7dac277c1d44732fc25e5491c79ff82e597d","ref":"refs/heads/master","pushedAt":"2024-01-23T20:01:11.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://github.com/avatars/u/1244825?s=80&v=4"},"commit":{"message":"Fix compilation with clang and libc++ (#47)\n\nDefine _GLIBCXX_THROW to empty for C++11 and newer.\r\n\r\nFixes #35","shortMessageHtmlLink":"Fix compilation with clang and libc++ (#47)"}},{"before":"931f52a580068ea5dad9b7c93e8ab85c8ad3bd23","after":"c1d4e4485f90b5d1964f7b10c62f6299f0ff99c7","ref":"refs/heads/master","pushedAt":"2024-01-03T02:14:36.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://github.com/avatars/u/1244825?s=80&v=4"},"commit":{"message":"Markdown updates (#45)","shortMessageHtmlLink":"Markdown updates (#45)"}},{"before":"9f8cd1e56f51842e5a8ceb953b16d8f8dba005f0","after":"931f52a580068ea5dad9b7c93e8ab85c8ad3bd23","ref":"refs/heads/master","pushedAt":"2023-12-29T20:49:04.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://github.com/avatars/u/1244825?s=80&v=4"},"commit":{"message":"Remove redundant definition in libcups2-private.h (#44)","shortMessageHtmlLink":"Remove redundant definition in libcups2-private.h (#44)"}},{"before":"c3a997fa8940c1bf8dd336e4e4febc759f1360c1","after":"9f8cd1e56f51842e5a8ceb953b16d8f8dba005f0","ref":"refs/heads/master","pushedAt":"2023-12-01T10:05:04.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://github.com/avatars/u/1244825?s=80&v=4"},"commit":{"message":"qpdf-cm.cxx: Fix possible integer overflow (#43)\n\nUse unsigned int (we use the variable as string index anyway) and check\r\nif we overflow everytime we increment the variable.\r\n\r\nFixes #42","shortMessageHtmlLink":"qpdf-cm.cxx: Fix possible integer overflow (#43)"}},{"before":"107091186dce1c0cb2f042f8b880f571089acaf1","after":"c3a997fa8940c1bf8dd336e4e4febc759f1360c1","ref":"refs/heads/master","pushedAt":"2023-12-01T00:27:38.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://github.com/avatars/u/1244825?s=80&v=4"},"commit":{"message":"cfImageCMYKToCMY(): Fixed copy-and-paste error\n\nFixes #41","shortMessageHtmlLink":"cfImageCMYKToCMY(): Fixed copy-and-paste error"}},{"before":"c6175a2f3f66dbf76bb35ec8d1ba0dc094c9dbac","after":"107091186dce1c0cb2f042f8b880f571089acaf1","ref":"refs/heads/master","pushedAt":"2023-11-29T12:30:49.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://github.com/avatars/u/1244825?s=80&v=4"},"commit":{"message":"raster.c: Fix build after last fix (#40)\n\nAdd header file `stdbool`, since we started to use `bool` in\r\n`raster_base_header()`.","shortMessageHtmlLink":"raster.c: Fix build after last fix (#40)"}},{"before":"26f9c3fb7c8eb3451f517da0fd91870534fac842","after":"c6175a2f3f66dbf76bb35ec8d1ba0dc094c9dbac","ref":"refs/heads/master","pushedAt":"2023-11-28T23:45:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://github.com/avatars/u/1244825?s=80&v=4"},"commit":{"message":"raster_base_header(): Several fixes on color space selection\n\nFixes #38\n\nThe internal (static) funcrion raster_base_header() creates a CUPS or\nPWG Raster header from scratch, without using data of a PPD file by\nmeans of Raster header derived from the PPD. It solely uses IPP\nattributes or command line options.\n\nIt distinguishes between CUPS Raster and PWG/Apple Raster headers.\n\nThere were several bugs in selecting the correct color space and depth\nsettings:\n\n- For PWG-Raster all attributes and options got ignored and standard\n 8-bit sRGB set.\n\n- Without any valid color space/depth setting attribute or \"auto\"\n always standard 8-bit sRGB got set as the default, regardless\n whether the printer is actually a color printer.\n\n- Color spaces for printing in color could be set on monochrome\n printers by options or atrributes.\n\n- Color spaces not valid on PWG Raster could be set on PWG Raster.\n\n- DeviceN modes could only be set by specifying a depth, like\n \"Device4_8\" not just \"Device4\".\n\nNow we use 8-bit SGray as default for monochrome printers and 8-bit\nRGB for color printers. We use the printer IPP attribute\n\"color-supported\" to check whether the printer is color.\n\nIPP ttributes or command line options setting a color mode on a\nmonochrome printer are ignored now, also, if the output format is PWG\nRaster, setting a color space not supported by PWG Raster is ignored.\n\nNow for monochrome AirPrint (Apple Raster) printers, the Raster data\nsent should be actually monochrome (grayscale) and not color.","shortMessageHtmlLink":"raster_base_header(): Several fixes on color space selection"}},{"before":"4a2a4cf9e8640307c1777e689b71de45f046566b","after":"26f9c3fb7c8eb3451f517da0fd91870534fac842","ref":"refs/heads/master","pushedAt":"2023-10-26T22:27:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://github.com/avatars/u/1244825?s=80&v=4"},"commit":{"message":"Added support for libcups3 (libcups of CUPS 3.x)\n\nWith these changes libcupsfilters can be built either with libcups2\n(libcups of CUPS 2.x) or libcups3 (libcups of CUPS 3.x).\n\n NOTE: Any further development on the code has to be done using the\n API of libcups3, and for libcups2 support any additional\n conversion has to get defined in cupsfilters/libcups2-private.h\n (if C code is needed for the conversion, it goes into\n cupsfilters/libcups2.c).\n\nThe actual code is now fully converted to the API of libcups3. To\nallow building it with libcups2 and to avoid having it full of \"#ifdef\nHAVE_LIBCUPS2\" conditionals, we have added the header file\nlibcups2-private.h file, which gets only applied (by \"#ifdef\nHAVE_LIBCUPS2\") when we build with libcups2.\n\nIt converts the code to the libcups2 API by\n\n- Applying \"#define ...\" macro definitions for all renamings of\n functions and data types\n\n- Converting the \"cupsCreateTempFd(NULL, NULL, buffer, bufsize)\" calls\n to \"cupsTempFd(buffer, bufsize)\" calls (new function has more\n arguments).\n\n- Defining (backports) the \"http_resolve_t\" enumeration data type,\n which got only introduced in libcups3.\n\n- Introducing the type \"cups_len_t\", as \"int\" for libcups2 and\n \"size_t\" for libcups3. In some functions there are parameters which\n make a hard switch from \"int\" to \"size_t\" with the transition to\n libcups3. For those we use this type.\n\nWe also add the file libcups2.c for the code of our former\n\"cfResolveURI2()\" function, our DNS-SD URI resolver function based on\nipptool which is capable of resolving both print and fax URIs. The\nfunction is only used when building with libcups2, as in libcups3 the\n\"httpResolveURI()\" function which was formerly libcups-internal is now\na public API function, which saves us now from the ugly workarounds we\nhad to use in our functions.\"cfResolveURI2()\" gets a wrapper calling\nthis new function then. The code of the print-only \"cfResolveURI()\"\nfunction got dropped and replaced by a simple call of\n\"cfResolveURI2()\".\n\nWe have a libcups3-related change in the public API header files, here\n\"cups_page_header2_t\" got renamed into \"cups_page_header_t\". Due to\nthe fact that libcups2-private.h gets HAVE_LIBCUPS2 from config.h, we\ncannot use it in the API headers (and we also do not want all these\nconversions to apply to a user's code). So we simply add a renaming\n\"#define ...\" under \"#if CUPS_VERSION_MAJOR < 3\" to the affected API\nheaders.\n\nWe drop support for the old \"cups_page_header_t\" data type from CUPS\n1.x, as with the minimum requirement of CUPS 2.2.2 this is for sure\nnot needed any more.\n\nWe need to pay special attention to \"cupsArrayNew()\" and\n\"cupsArrayNew3()\" calls in the old libcups2-based code. In the former\nones we keep the name but add \", NULL, 0, NULL, NULL\" to the end of\nthe parameter list, the latter ones get renamed to \"cupsArrayNew()\"\nand the parameter list not changed. For building the code with\nlibcups2, the \"#define cupsArrayNew cupsArrayNew3\" then serves for\nboth cases.\n\nIn configure.ac we check for libcups3 via pkg-config first and if not\npresent for libcups2 via cups-config. In both cases we set all relevan\nvariables, as compiler/linker arguments, directories, ... and in case\nof libcups2 we define HAVE_LIBCUPS2 in config.h.\n\nIn Makefile.am we do not only add the new files to the build process\nbut we also fix the compiler flag definition for C++,\n\"libcupsfilters_la_CXXFLAGS\". It was messed up and the C++ parts did\nnot build any more with libcups3.","shortMessageHtmlLink":"Added support for libcups3 (libcups of CUPS 3.x)"}},{"before":"a75f7e5acb22db5fa8c939889c31ae61c64ce7ad","after":"4a2a4cf9e8640307c1777e689b71de45f046566b","ref":"refs/heads/master","pushedAt":"2023-10-18T18:43:10.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://github.com/avatars/u/1244825?s=80&v=4"},"commit":{"message":"Fix obsolete constant name so that package builds with libcups of CUPS 2.5.x (#36)\n\nHTTP_URI_OK -> HTTP_URI_STATUS_OK\r\n\r\nPackage will continue to build with libcups of any older CUPS 2.x.","shortMessageHtmlLink":"Fix obsolete constant name so that package builds with libcups of CUP…"}},{"before":"503a7547888322d0a94221882c07da14d7822651","after":"a75f7e5acb22db5fa8c939889c31ae61c64ce7ad","ref":"refs/heads/master","pushedAt":"2023-09-21T22:18:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://github.com/avatars/u/1244825?s=80&v=4"},"commit":{"message":"libcupsfilters 2.0.0 Release","shortMessageHtmlLink":"libcupsfilters 2.0.0 Release"}},{"before":"eeec8f6a480209d5caee3cc3bc6bfc059247510c","after":"503a7547888322d0a94221882c07da14d7822651","ref":"refs/heads/master","pushedAt":"2023-09-21T17:52:38.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://github.com/avatars/u/1244825?s=80&v=4"},"commit":{"message":"universal.c: Support application/vnd.cups-postscript (#31)\n\nSome filters (like hpps from hplip) produce this MIME type, so if the\r\nclient uses classic driver/printer app and the server IPP Everywhere,\r\njob fail because the library is not able to find suitable conversion.\r\n\r\nThis patch together with cups-filters PR fixes the issue.","shortMessageHtmlLink":"universal.c: Support application/vnd.cups-postscript (#31)"}},{"before":"9c0d252e3d6ce49fbc27618581c2af6a1cd0b5c7","after":"eeec8f6a480209d5caee3cc3bc6bfc059247510c","ref":"refs/heads/master","pushedAt":"2023-06-20T16:53:27.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://github.com/avatars/u/1244825?s=80&v=4"},"commit":{"message":"CHANGES.md: Added reference to Chromium bug report.","shortMessageHtmlLink":"CHANGES.md: Added reference to Chromium bug report."}},{"before":"545a049031167d1820be7568c8aba54a76d52b11","after":"9c0d252e3d6ce49fbc27618581c2af6a1cd0b5c7","ref":"refs/heads/master","pushedAt":"2023-06-20T12:34:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://github.com/avatars/u/1244825?s=80&v=4"},"commit":{"message":"libcupsfilters 2.0rc2 Release","shortMessageHtmlLink":"libcupsfilters 2.0rc2 Release"}},{"before":"9687ebf6b9433e5c6fbf26f0ec137e9ddfc5fdf1","after":"545a049031167d1820be7568c8aba54a76d52b11","ref":"refs/heads/master","pushedAt":"2023-06-19T22:53:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://github.com/avatars/u/1244825?s=80&v=4"},"commit":{"message":"Further fixes in handling resolutions\n\n- cfRasterPrepareHeader(): When taking default resolution from\n \"urf-supported\" printer IPP attribute, use first value (lowest) of\n the list, to match the ppdLoadAttributes() function of libppd.\n\n- raster_base_header(): If no resolution is specified as job IPP\n attribute or in the options list, use the default resolution from\n the printer IPP attributes.","shortMessageHtmlLink":"Further fixes in handling resolutions"}},{"before":"2892e9a638dd2924bd30ad3413c9dcaaceee1b46","after":"9687ebf6b9433e5c6fbf26f0ec137e9ddfc5fdf1","ref":"refs/heads/master","pushedAt":"2023-06-16T18:10:05.482Z","pushType":"push","commitsCount":1,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://github.com/avatars/u/1244825?s=80&v=4"},"commit":{"message":"cfIEEE1284NormalizeMakeModel(): \"XPrinter\" is not Xerox\n\nWhen normalizing make/model info we check for a space after \"XPrint\"\nto ensure we do not display Xerox for Xprinter devices, which are NOT\nby Xerox.","shortMessageHtmlLink":"cfIEEE1284NormalizeMakeModel(): \"XPrinter\" is not Xerox"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOC0xNFQxOTozNDo0Ni4wMDAwMDBazwAAAASanR0l","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOC0xNFQxOTozNDo0Ni4wMDAwMDBazwAAAASanR0l","endCursor":"Y3Vyc29yOnYyOpK7MjAyMy0wNi0xNlQxODoxMDowNS40ODI0MTdazwAAAANDOHev"}},"title":"Activity · OpenPrinting/libcupsfilters"}