{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":105579715,"defaultBranch":"master","name":"cpdb-backend-cups","ownerLogin":"OpenPrinting","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2017-10-02T20:08:34.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/20563597?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1718748354.0","currentOid":""},"activityList":{"items":[{"before":"4d7a656195348eb4df1c55eee14f23afc00491a1","after":"dc56f2335ba53185fb56db170698fe3f0e2f233f","ref":"refs/heads/master","pushedAt":"2024-09-05T16:14:35.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1244825?s=80&v=4"},"commit":{"message":"Pass correct parameters to cupsStartDestDocument (#36)\n\nNow job title and job attributes (options) are correctly passed on.","shortMessageHtmlLink":"Pass correct parameters to cupsStartDestDocument (#36)"}},{"before":"69fd7087f310e0a116aa4294dee7f9850659a339","after":"4d7a656195348eb4df1c55eee14f23afc00491a1","ref":"refs/heads/master","pushedAt":"2024-08-05T08:53:54.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1244825?s=80&v=4"},"commit":{"message":"Use NULL Instead of \"NA\" if there's no default printer (#35)\n\nNULL makes clear that there's no default printer, while\r\n\"NA\" could even be the name of an actual printer, so\r\nuse the former instead of the latter if no default\r\nprinter could be determined.\r\n\r\nSee also discussion in [1] where this preexisting\r\nissue was spotted.\r\n\r\n[1] https://github.com/OpenPrinting/cpdb-backend-cups/pull/33#discussion_r1703699309","shortMessageHtmlLink":"Use NULL Instead of \"NA\" if there's no default printer (#35)"}},{"before":"3c3fc9882b834bba8feb3c77f34ffcd0bee19181","after":"69fd7087f310e0a116aa4294dee7f9850659a339","ref":"refs/heads/master","pushedAt":"2024-08-05T08:17:29.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1244825?s=80&v=4"},"commit":{"message":"Always query current CUPS default printer (#33)\n\nWhen asked for the default printer, always\r\nquery and return the current CUPS default\r\nprinter instead of whatever was the default\r\nlast time this was done, to take into account\r\nthat the CUPS default printer can change while\r\nthe backend is running.\r\n\r\nSample steps (without this commit in place)\r\nto reproduce an incorrect default\r\nprinter being returned with cpdb-text-frontend\r\nfrom cpdb-libs, when the PDF printer is initially\r\nset as default:\r\n\r\nRun cpdb-text-frontend:\r\n\r\n $ cpdb-text-frontend\r\n\r\nQuery for the default printer\r\n\r\n > get-default-printer\r\n PDF#CUPS\r\n\r\nNow, switch the CUPS user default printer\r\nto another one:\r\n\r\n $ lpoptions -d somedummy\r\n\r\nIn the running cpdb-text-frontend instance,\r\nquery the default printer again:\r\n\r\n > get-default-printer\r\n PDF#CUPS\r\n\r\n-> The outdated/previous default printer was returned.\r\n\r\nWith this commit in place, the new default\r\nprinter is now returned as expected:\r\n\r\n > get-default-printer\r\n somedummy#CUPS\r\n\r\n(This addresses part of issue 3) from comment [1] on\r\nthe pending change to update CPDB support in LibreOffice.)\r\n\r\n[1] https://gerrit.libreoffice.org/c/core/+/169617/comments/3ef76e40_4f120b66","shortMessageHtmlLink":"Always query current CUPS default printer (#33)"}},{"before":"e070b86770db49494ad670ef5116a53b36d6b420","after":"3c3fc9882b834bba8feb3c77f34ffcd0bee19181","ref":"refs/heads/master","pushedAt":"2024-08-05T07:43:00.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1244825?s=80&v=4"},"commit":{"message":"Add support for CUPS printer instances (#34)\n\nDon't just always use the `cups_dest_t`'s `name`\r\nfor the printer name, but also take it's `instance`\r\nmember into account and if present, append that for\r\nthe name used for the CPDB printer name, separated by\r\na slash character.\r\n\r\nSince `PrinterCUPS::name` is now assigned a newly\r\nallocated string in `get_new_PrinterCUPS`, free\r\nit again in `free_PrinterCUPS`.\r\n\r\nWhile previously, CUPS printers instances were not\r\navailable at all, they are now presented as separate\r\nprinters.\r\n\r\nFor example, if there's a PDF printer, a printer instance\r\nwith a different default resolution can be created using\r\n\r\n lpoptions -p PDF/someinstance -o Resolution=1200dpi\r\n\r\nand a `PDF/someinstance` printer now also shows up\r\nin `cpdb-text-frontend` from cpdb-libs, while it\r\nwasn't without this commit in place.\r\n\r\nFWIW, the modified default value for the\r\noption as set above currently doesn't show up with\r\ncpdb-libs git master as of commit cc51ac3c48c9e5cede90aaedb13dc1333bde3b60\r\nwhen using the\r\n\r\n get-all-options PDF/someinstance CUPS\r\n\r\ncommand, but the same is true when changing a default\r\nvalue for the default instance, i.e. using\r\n\r\n lpoptions -p PDF -o Resolution=1200dpi\r\n\r\n, so this seems to be a separate issue and unrelated to\r\nthe added CUPS printer instance support.","shortMessageHtmlLink":"Add support for CUPS printer instances (#34)"}},{"before":"e22306725dbd02f486c102d6cdf79894d8ccdb4f","after":"e070b86770db49494ad670ef5116a53b36d6b420","ref":"refs/heads/master","pushedAt":"2024-07-18T13:21:27.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1244825?s=80&v=4"},"commit":{"message":"Use g_strdup instead of cpdbGetStringCopy (#32)\n\nGLib's `g_strdup` already provides the same functionality\r\nas `cpdbGetStringCopy` from cpdb-libs, so use the former\r\ninstead of relying on a custom CPDB implementation.\r\n\r\nFor `cpdbGetStringCopy`, there's this pending cpdb-libs\r\nPR to remove it altogether: [2]\r\n\r\n[1] https://docs.gtk.org/glib/func.strdup.html\r\n[2] https://github.com/OpenPrinting/cpdb-libs/pull/42","shortMessageHtmlLink":"Use g_strdup instead of cpdbGetStringCopy (#32)"}},{"before":"db3ff14114eae9f62c1c32480e4ff9690e146dd6","after":"e22306725dbd02f486c102d6cdf79894d8ccdb4f","ref":"refs/heads/master","pushedAt":"2024-06-18T22:05:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1244825?s=80&v=4"},"commit":{"message":"cpdb-backend-cups 2.0b6 Release","shortMessageHtmlLink":"cpdb-backend-cups 2.0b6 Release"}},{"before":"4a1c45315da9fbf3ddccc9e214a6a4b0882aa233","after":"db3ff14114eae9f62c1c32480e4ff9690e146dd6","ref":"refs/heads/master","pushedAt":"2024-05-30T18:01:51.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1244825?s=80&v=4"},"commit":{"message":"Let frontend not be a D-Bus service, remove tryPPD(), bug fixes (#29)\n\n- Let the frontend not be a D-Bus service, only the backends\r\n Controlling of filtering the backend's list of printers to hide remote\r\n printers and/or temporary queues was done by the frontend being\r\n a D-Bus service sending signals and not the backends which are\r\n D-Bus services by themselves just having methods for that. Having\r\n both frontends and backends being D-Bus services makes the\r\n interface unnecessarily complicated, especially for distro-independent/\r\n sandboxed packaging, like snapping. No we use backend methods\r\n for that and have done away with the frontends being a D-Bus service.\r\n\r\n- Removed tryPPD(), a useless, PPD-related function\r\n This function logs the options in the PPD of the CUPS queue but does\r\n nothing else. PPDs will also go away in CUPS 3.x, so we want the CUPS\r\n backend not depend on PPDs or PPD-supporting functions/libraries.\r\n\r\n- send_printer_state_changed_signal(): Send correct signal\r\n Send CPDB_SIGNAL_PRINTER_STATE_CHANGED, not\r\n CPDB_SIGNAL_PRINTER_REMOVED. Thanks to Tim Shimmin from\r\n Papercut for discovering this.\r\n\r\n- Let \"dialog_name\" always be \"const char *\", to eliminate warnings.\r\n\r\n- Unified logging. Always use log...() functions.\r\n\r\nCo-authored-by: Till Kamppeter ","shortMessageHtmlLink":"Let frontend not be a D-Bus service, remove tryPPD(), bug fixes (#29)"}},{"before":"059a6a89caabb86a31f7b97b76b2d408bdb2a442","after":"4a1c45315da9fbf3ddccc9e214a6a4b0882aa233","ref":"refs/heads/master","pushedAt":"2024-03-15T20:42:17.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1244825?s=80&v=4"},"commit":{"message":"Stream print data through a Unix domain socket (#28)\n\nTo ease making a Snap from the CPDB backend for CUPS we now\r\ntransfer the print job data from the dialog to the backend via a\r\nUnix domain socket and not by dropping the data into a file.\r\n\r\nIn addition, we have done also the following changes:\r\n- Updated names of some CUPS constants to CUPS 2.5.x and newer.\r\n- Removed the backend functions for get-all-jobs(),\r\n get_active_jobs_count(), and cancel_job().\r\n- In the build test (\"make check\")\r\n + give more time (3 instead of\r\n 1 sec) for the print job submission before closing the backend,\r\n to get note of the confirmation of successful submission.\r\n + let CPDB frontend and backend log in debug mode\r\n + Create the directory for the socket files","shortMessageHtmlLink":"Stream print data through a Unix domain socket (#28)"}},{"before":"059a6a89caabb86a31f7b97b76b2d408bdb2a442","after":"b9f1c96aeebc1ec49313ad734a63ba37ddb49a1f","ref":"refs/heads/snap","pushedAt":"2023-10-20T17:06:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1244825?s=80&v=4"},"commit":{"message":"Added files for building a Snap of cpdb-backend-cups\n\nRun\n\n snapcraft -v --debug\n\nto build the Snap.","shortMessageHtmlLink":"Added files for building a Snap of cpdb-backend-cups"}},{"before":null,"after":"059a6a89caabb86a31f7b97b76b2d408bdb2a442","ref":"refs/heads/snap","pushedAt":"2023-10-20T16:59:18.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1244825?s=80&v=4"},"commit":{"message":"Added NULL checks for the functions dealing with dialogs","shortMessageHtmlLink":"Added NULL checks for the functions dealing with dialogs"}},{"before":"879877ada963ff5cf7d3bd7aa00b9586b5855941","after":"059a6a89caabb86a31f7b97b76b2d408bdb2a442","ref":"refs/heads/master","pushedAt":"2023-08-20T00:16:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1244825?s=80&v=4"},"commit":{"message":"Added NULL checks for the functions dealing with dialogs","shortMessageHtmlLink":"Added NULL checks for the functions dealing with dialogs"}},{"before":"b2c10dd70c521a2e3aeb71f79f90f0599263d440","after":"879877ada963ff5cf7d3bd7aa00b9586b5855941","ref":"refs/heads/master","pushedAt":"2023-08-10T23:43:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1244825?s=80&v=4"},"commit":{"message":"Updated build test for removal of backend info file","shortMessageHtmlLink":"Updated build test for removal of backend info file"}},{"before":"036953b7966a7624fd2460786c8cf9e69fd99c3d","after":"b2c10dd70c521a2e3aeb71f79f90f0599263d440","ref":"refs/heads/master","pushedAt":"2023-08-02T21:43:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1244825?s=80&v=4"},"commit":{"message":"cpdb-backend-cups 2.0b5 Release","shortMessageHtmlLink":"cpdb-backend-cups 2.0b5 Release"}},{"before":"b930eb88b3118c5f54cc983aa665d2fb117c593f","after":"036953b7966a7624fd2460786c8cf9e69fd99c3d","ref":"refs/heads/master","pushedAt":"2023-08-02T19:30:44.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1244825?s=80&v=4"},"commit":{"message":"Remove CPDB backend info file (#26)\n\nThe frontend libraries now use only the D-Bus to find available backends. This makes sure that everything works also if the frontend and/or any of the backends are installed via sanboxed packaging (like Snap for example) where the components cannot read each other's file systems.","shortMessageHtmlLink":"Remove CPDB backend info file (#26)"}},{"before":"669abda0b7e53d674a36fb694cef16ca7ebd28e5","after":"b930eb88b3118c5f54cc983aa665d2fb117c593f","ref":"refs/heads/master","pushedAt":"2023-07-05T18:28:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1244825?s=80&v=4"},"commit":{"message":"get_all_media(): Do not crash on custom page size range entries\n\nThe media-col-database IPP attribute contains one entry for each valid\ncombination of page size dimensions, margins, and in some cases also\nmedia source and media type.\n\nIf custom page sizes are supported, this is represented by one\nmedia-col-database entry (usually the last one) where the width and\nlength dimensions are ranges, consisting of 2 numbers each. The\nget_all_media() tried to read those as normal intergers, getting back\n0 and this cause NULL being returned by pwgMediaForSize() function and\na segfault when trying to get the PWG name of the page size.\n\nThis is now fixed by skipping the entry for the custom page size\n(actually we need to support custom page sizes).","shortMessageHtmlLink":"get_all_media(): Do not crash on custom page size range entries"}},{"before":"39a3aacae35fd6594e4e44fe44f02bfc5abc764f","after":"669abda0b7e53d674a36fb694cef16ca7ebd28e5","ref":"refs/heads/master","pushedAt":"2023-04-06T19:50:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1244825?s=80&v=4"},"commit":{"message":"Build system: Removed unnecessary lines in tools/Makefile.am\n\nRemoved the TESTdir and TEST_SCRIPTS entries in tools/Makefile.am.\nThey are not needed and let `make install` try to install\n`run-tests.sh` in the source directory, where it already is, causing\nan error.\n\nThe problem only occurs when `make install` is run without\n`DESTRDIR=...`. Then the installation runs without errors.","shortMessageHtmlLink":"Build system: Removed unnecessary lines in tools/Makefile.am"}},{"before":"2e64a9fdaa36c85b5ff711dd37dd80be7f4d1b69","after":"39a3aacae35fd6594e4e44fe44f02bfc5abc764f","ref":"refs/heads/master","pushedAt":"2023-03-21T15:58:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1244825?s=80&v=4"},"commit":{"message":"cpdb-backend-cups 2.0b4 Release","shortMessageHtmlLink":"cpdb-backend-cups 2.0b4 Release"}},{"before":"4fd13df3402054ddbdf3eeffbd87b1bd5e5e6341","after":"2e64a9fdaa36c85b5ff711dd37dd80be7f4d1b69","ref":"refs/heads/master","pushedAt":"2023-03-21T14:53:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1244825?s=80&v=4"},"commit":{"message":"Let \"make dist\" include src/testpdf.ppd.","shortMessageHtmlLink":"Let \"make dist\" include src/testpdf.ppd."}},{"before":"b8a01c70a2cb7dce6284f5735b34cd8141e96a71","after":"4fd13df3402054ddbdf3eeffbd87b1bd5e5e6341","ref":"refs/heads/master","pushedAt":"2023-03-21T11:26:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1244825?s=80&v=4"},"commit":{"message":"Added test script for \"make test\"/\"make check\"\n\nThe script src/run-tests.sh first copies all components of the CUPS\ninstalled on the system to run an own instance of CUPS, independnet of\nthe system and especially outside the system's AppArmor harness.\n\nThen it starts the CUPS backend using this CUPS instance and the\ncpdb-text-frontend text mode example frontend of cpdb-libs in one\n`dbus-run-session` environment. The frontend discovers the backend and\nsome test tasks are performed with it, like listing options and\nprinting a job.\n\nAfterwards the frontend is stopped by supplying \"stop\" to its standard\ninput. If the frontend does not stop, it gets killed after a\ntimeout. The log of the frontend is checked whether it got actually\nstopped by the \"stop\" command or not.\n\nThe backend is shut down by a TERM signal. After a short delay any\nremaining sub-process is killed via KILL.\n\nThe test fails if the backend is not discovered, one of the tasks\nfailed, or if a sub-process needs to be KILLed.\n\nThis test script requires CUPS, the libraries of cpdb-libs, and the\npackages cpdb-libs-tools and dbus-run-session (usually part of the\ndbus-daemon package) to be installed.","shortMessageHtmlLink":"Added test script for \"make test\"/\"make check\""}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0wNVQxNjoxNDozNS4wMDAwMDBazwAAAASuD1oO","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0wNVQxNjoxNDozNS4wMDAwMDBazwAAAASuD1oO","endCursor":"Y3Vyc29yOnYyOpK7MjAyMy0wMy0yMVQxMToyNjo1OS4wMDAwMDBazwAAAAMH7n8x"}},"title":"Activity ยท OpenPrinting/cpdb-backend-cups"}