{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":105579261,"defaultBranch":"master","name":"cpdb-libs","ownerLogin":"OpenPrinting","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2017-10-02T20:04:05.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/20563597?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1718747857.0","currentOid":""},"activityList":{"items":[{"before":"9c41cd88269a512e12ab40aec084bcc33c4d8236","after":"eb759dcbc2eecc1867277cc2997a78221626e38d","ref":"refs/heads/master","pushedAt":"2024-06-18T21:57:28.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-libs 2.0b6 Release","shortMessageHtmlLink":"cpdb-libs 2.0b6 Release"}},{"before":"8f9e0544aa6bd244b79b310f76b2478d407006cc","after":"9c41cd88269a512e12ab40aec084bcc33c4d8236","ref":"refs/heads/master","pushedAt":"2024-06-12T23:25:47.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":"Fix job ID not being returned when print job is started (#33)","shortMessageHtmlLink":"Fix job ID not being returned when print job is started (#33)"}},{"before":"85447e866863ebc7327a32f16e86cba6f487bed3","after":"8f9e0544aa6bd244b79b310f76b2478d407006cc","ref":"refs/heads/master","pushedAt":"2024-05-30T18:34:43.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 new backends while the dialog is open, let frontend not be D-Bus service (#32)\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- Add newly appearing backends while the dialog is open\r\n CPDB Backends can get installed or removed at any time, also while a\r\n print dialog is open. Now a background thread is added to observe\r\n the come and go of backends and to update the printer list\r\n appropriately. New API functions are cpdbStartBackendListRefreshing()\r\n and cpdbStopBackendListRefreshing, to start and stop this thread.\r\n\r\n- Convenience API functions to start/stop listing printers\r\n When a print dialog is opened, available printers are listed and the list\r\n is continuously updated, until the dialog is closed. To simplify this,\r\n there are now two convenience API functions cpdbStartListingPrinters()\r\n and cpdbStopListingPrinters() to be called when opening and closing\r\n the dialog, resp. The former creates the data structures, gets an initial\r\n printer list, sets up the auto-updating by the backends, and starts the\r\n background process to look for backends appearing/disappearig. The\r\n latter stops updateing and also the background process and frees the\r\n memory allocated for the data structures.","shortMessageHtmlLink":"Add new backends while the dialog is open, let frontend not be D-Bus …"}},{"before":"ebdf368f77cbec274e35b434dedad33fa009ec7a","after":"85447e866863ebc7327a32f16e86cba6f487bed3","ref":"refs/heads/master","pushedAt":"2024-03-16T15:19:05.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 (#30)\n\nTo ease making a Snap from the CPDB backend for CUPS (and\r\nother CPDB backends in the future) we now transfer the print\r\njob data from the dialog to the backend via a Unix domain socket\r\nand not by dropping the data into a file.\r\n\r\nIn addition, we have done also the following changes:\r\n- Removed support for the \"FILE\" CPDB backend.\r\n- Removed API functions cpdbGetAllJobs(),\r\n cpdbGetActiveJobsCount(), cpdbCancelJob(), and\r\n cpdbPrintFilePath() and the corresponding D-Bus\r\n methods.\r\n- Removed the appropriate commands, \"get-all-jobs\",\r\n \"get-active-jobs-count\", and \"cancel-job\" from the\r\n \"cpdb-text-frontend\" utility.","shortMessageHtmlLink":"Stream print data through a Unix domain socket (#30)"}},{"before":"e95b263878a3850af733d1fbf6001abc98cf7b23","after":"ebdf368f77cbec274e35b434dedad33fa009ec7a","ref":"refs/heads/master","pushedAt":"2023-08-20T13:04:32.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 support for CPDB backends running as permanent system daemon\n\nThe function cpdbActivateBackends() finds all available backends and\nregisters them with the frontend. For this it uses the\n\"ListActivatableNames\" method which finds the backends by the\n*.service files which are used to automatically start the program\nwhich provides a given D-Bus services.\n\nNow we want to package CPDB backends as Snap. When installing a Snap\nwe cannot install a *.service file, so we cannot make our backend\nautomatically started. Therefore the snapped backend we want to run as\na permanently running system daemon. The it registers itself on the\nD-Bus and is available.\n\nProblem is that the frontend does not search for already registered\nservices and so does not find this backend despite being readily\navailable, as there is no *.service file for it.\n\nNow we use both the \"ListActivatableNames\" and the \"ListNames\"\nmethods, where the latter searches for already running services\nregardless of *.service files. With both we always get a complete\nlist. We also check for duplicates, reported by both methods, now.","shortMessageHtmlLink":"Added support for CPDB backends running as permanent system daemon"}},{"before":"4194795742a0655481554d27703c57d62d522604","after":"e95b263878a3850af733d1fbf6001abc98cf7b23","ref":"refs/heads/master","pushedAt":"2023-08-20T00:20:57.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":"cpdbActivateBackends(): Fixed crash caused by wrong unreferencing","shortMessageHtmlLink":"cpdbActivateBackends(): Fixed crash caused by wrong unreferencing"}},{"before":"80c7a690b2bffbc83116d752e7c7260111019a07","after":"4194795742a0655481554d27703c57d62d522604","ref":"refs/heads/master","pushedAt":"2023-08-10T23:44:11.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1244825?s=80&v=4"},"commit":{"message":"cpdb-text-frontend: Removed unnecessary g_main_loop\n\nThe text frontend spawned a sub-thread for running the command line\ncontrol and execution for it and in parallel, in the main thread, a\ng_main_loop, to receive messages from the command execution, even if\nthe commands were executed asynchronously.\n\nThis is not needed, one can simply make the main thread waiting\nwithout blocking any messages by just calling g_thread_join(). This\nmakes the code much simpler.\n\nMoved the initial D-Bus connection and listing of available printers\nalso to the sub-thread, so that command execution starts only after\nthe printers having been listed.\n\nAs all the control goes into the sub-thread, renamed the function from\nparse_commands() into control_thread().","shortMessageHtmlLink":"cpdb-text-frontend: Removed unnecessary g_main_loop"}},{"before":"4cdfa43453f81932dba3a8ce1a8280a58ed0e122","after":"80c7a690b2bffbc83116d752e7c7260111019a07","ref":"refs/heads/master","pushedAt":"2023-08-07T18:56:06.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1244825?s=80&v=4"},"commit":{"message":"cpdb-text-frontend: Fixed the main loop\n\nThe frontend has two parallel tasks running: The command interpreter\nand the glib main loop.\n\nThe command interpreter is started in a separate thread before startin\nte main loop. It reads the commands entered and directly executes\nthem.\n\nThe main loop only catches g_message() output, to show when\nasynchronous tasks spawned by the command interpreter finish.\n\nFixes:\n\n- When entering the \"stop\" command to terminate the frontend we now\n exit with \"g_main_loop_quit(loop);\" to terminate the main loop and\n then terminate the command interpreter thread via \"return (NULL);\",\n instead of just using \"exit (0);\".\n\n- Whe spawn the command interpreter right before starting the main\n loop, not already before requesting the first list of available\n printers and waiting for the list to complete. This way we avoid the\n \"stop\" command being given too early and the loop not getting note\n of it, ending up running infinitely.\n\n- acquire_translations_callback(): Only issue the success message and\n list the translation if the loading of the translations actually\n succeeded.","shortMessageHtmlLink":"cpdb-text-frontend: Fixed the main loop"}},{"before":"496e220df10e81c77f8df65ce607518d9280e6b5","after":"4cdfa43453f81932dba3a8ce1a8280a58ed0e122","ref":"refs/heads/master","pushedAt":"2023-08-02T20:33:43.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-libs 2.0b5 Release","shortMessageHtmlLink":"cpdb-libs 2.0b5 Release"}},{"before":"f181bd1f14757c2ae0f17cc76dc20421a40f30b7","after":"496e220df10e81c77f8df65ce607518d9280e6b5","ref":"refs/heads/master","pushedAt":"2023-08-02T19:26:33.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 file system access (#27)\n\nThe frontend should only shout into the D-Bus to find out which backends are available and to communicate with them. Depending on the way (packaging method) how the frontend and backand are installed it cannot access the host's or the backend's file systems.","shortMessageHtmlLink":"Remove file system access (#27)"}},{"before":"85555fba64d34f53a2fce099b0488904cc48ed35","after":"f181bd1f14757c2ae0f17cc76dc20421a40f30b7","ref":"refs/heads/master","pushedAt":"2023-06-14T16:45:29.304Z","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":"Merge pull request from GHSA-25j7-9gfc-f46x\n\ncpdb-libs uses the fscanf() and scanf() functions to parse command\nlines and configuration files, dropping the read string components\ninto fixed-length buffers, but does not limit the length of the\nstrings to be read by fscanf() and scanf() causing buffer overflows\nwhen a string is longer than 1023 characters.\n\nAs all buffers have a length of 1024 characters we limit the maximum string\nlength to be read to 1023 by replaceing all occurences of \"%s\" by \"%1023s\"\nin all calls of the fscanf() and scanf() functions.\n\nSimply done by\n\nperl -p -i -e 's/(scanf\\(.*?\".*?)%s/\\1%1023s/' cpdb/cpdb-frontend.c tools/cpdb-text-frontend.c\n\nand verifying with\n\ngrep scanf */*.c","shortMessageHtmlLink":"Merge pull request from GHSA-25j7-9gfc-f46x"}},{"before":"ce848f1571a82ec03881fce127ff28bec8da239e","after":"85555fba64d34f53a2fce099b0488904cc48ed35","ref":"refs/heads/master","pushedAt":"2023-04-26T14:43:01.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":"Fix memory bugs leading to leaks and crashes (#26)","shortMessageHtmlLink":"Fix memory bugs leading to leaks and crashes (#26)"}},{"before":"ec31f09a47edf23e4f2f197dee69e826011302c5","after":"ce848f1571a82ec03881fce127ff28bec8da239e","ref":"refs/heads/master","pushedAt":"2023-04-06T19:38:51.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":"4fd83b18cd1bcfd8d57a33a270943f88878c207c","after":"ec31f09a47edf23e4f2f197dee69e826011302c5","ref":"refs/heads/master","pushedAt":"2023-03-20T13:55:56.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-libs 2.0b4 Release","shortMessageHtmlLink":"cpdb-libs 2.0b4 Release"}},{"before":"6e764ee1ff67dd1624dfdf85a777b4da6744af73","after":"4fd83b18cd1bcfd8d57a33a270943f88878c207c","ref":"refs/heads/master","pushedAt":"2023-03-20T12:11:22.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"tillkamppeter","name":"Till Kamppeter","path":"/tillkamppeter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1244825?s=80&v=4"},"commit":{"message":"Renamed develping/debug tools\n\nAs we install the development and debugging tools now, they should be\nmore easily identifiable as part of CPDB. Therefore they get\n`cpdb-`-prefixed names:\n\n print_frontend -> cpdb-text-frontend\n pickle_test -> cpdb-pickle-print","shortMessageHtmlLink":"Renamed develping/debug tools"}},{"before":"d36a557a9fff6ea2daab578015b7a0887a18ff44","after":"6e764ee1ff67dd1624dfdf85a777b4da6744af73","ref":"refs/heads/master","pushedAt":"2023-03-19T22:38:17.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":"Allow changing the backend info directory via env variable\n\nTo make it possible to test backends which are not installed into the\nsystem, one can now set the environment variable CPDB_BACKEND_INFO_DIR\nto the directory where the backend info file for the backend is, for\nexample in its source tree.\n\nThis especially allows to support \"make check\" for backends, which is\na requirement for them to get accepted in Ubuntu Main.","shortMessageHtmlLink":"Allow changing the backend info directory via env variable"}},{"before":"2397231711b6a6249bc9aa4a259ba1e28e88eca5","after":"d36a557a9fff6ea2daab578015b7a0887a18ff44","ref":"refs/heads/master","pushedAt":"2023-03-19T13:37:29.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":"run-tests.sh: Fixed typos in comments","shortMessageHtmlLink":"run-tests.sh: Fixed typos in comments"}},{"before":"30f51e2c09042ee323e023c87af2bd25d38e6fad","after":"2397231711b6a6249bc9aa4a259ba1e28e88eca5","ref":"refs/heads/master","pushedAt":"2023-03-19T09:45: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":"Install sample frontend with \"make install\"\n\nWe use the sample frontend \"print_frontend\" for several tests now,\nespecially \"make check\" and also the autopkgtests in the Debian/Ubuntu\npackages. They are also useful for backend developers for manual\ntesting.\n\nTherefore we let it get installed now, so that it can be easily\nincluded in distribution packages and also used by tests performed by\nother packages, especially CPDB backends.\n\nAnd ad print_frontend is now promoted to a general development/test\ntool we renamed the demo/ directory to tools/.\n\nWe also discovered a segfault in the frontend library, in\ncpdbResurrectPrinterFromFile(), when it is called with an invalid file\nname, and fixed it.","shortMessageHtmlLink":"Install sample frontend with \"make install\""}},{"before":"92f8a8b7ec9db9cd3fdc50be1537bbbc5dbf71dd","after":"30f51e2c09042ee323e023c87af2bd25d38e6fad","ref":"refs/heads/master","pushedAt":"2023-03-18T22:50:39.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 demo/run-tests.sh runs the demo/print_frontend text mode\nexample frontend and stops it 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\nWe cannot do actual backend discovery and print tests as we cannot\nmake the build of cpdb-libs dependent on any backend, due to the fact\nthat all backends depend on cpdb-libs. This circular dependency would\nbreak bootstrapping (first complete build) a distro ...","shortMessageHtmlLink":"Added test script for \"make test\"/\"make check\""}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEaO6sIAA","startCursor":null,"endCursor":null}},"title":"Activity · OpenPrinting/cpdb-libs"}