Category Archives: Life

GSoC 2014 Friday Report #20

Todo list at start of Week

  • Implement the one remaining TODO
  • Debug “file too large” print bug
  • Explore dbus based on-demand starting
  • Create AppArmor profile
  • Create SELinux profile

Completed This Week

  • Implemented the one remaining TODO. Which was trailer support in chunk messages.
  • Fixed “file too large” print bug. Was caused by the libusb timeout.
  • Created AppArmor profile

Todo list at end of week

  • Address issues in system-config-printer which Tim found during review
  • Add a version number

Ya! IPPUSBXD is feature complete and debugged. After optimization the runtime cost has dwindled to 6M instructions for a complete load of the printer’s homepage.

After researching selinux I concluded the syntax is insane. The Apparmor profile syntax is clear and logical; it was easy to understand what Apparmor was restricting. Even large Apparmor profile like CUPSD’s were easy to read. SElinux just appears to be a bundle of abstraction and not something I want to deal with. The abstraction likely makes it easier to write SELinux profiles for experts but not something worthwhile for just one application.

Long term I would like to write a DBUS service for ippusbxd to reduce idle RAM usage.

This marks the end of full-time (or closer to part-time the past few weeks) on ippusbxd and the last time I’ll make a weekly update.

The tasks remaining are:

  1. Give ippusbxd a version number (Till asked for this)
  2. Address issues Tim found when reviewing the system-config-printer patches.

I’ll post a final blog post where I show off the GSoC shirt for this year once those tasks are done.

GSoC 2014 Friday Report #19

Todo list at start of Week

  • Implement the one remaining TODO
  • Fix duplicate queue generation
  • Fix re-start of unplugged then plugged ippusb printers
  • Debug “file too large” print bug
  • Explore dbus based on-demand starting
  • Create AppArmor profile
  • Create SELinux profile

Completed This Week

  • Fixed duplicate queue generation
  • Fixed re-starting of unplugged&plugged printers
  • Sent what should be the final patch against system-config-printer

Todo list at end of week

  • Implement the one remaining TODO
  • Debug “file too large” print bug
  • Explore dbus based on-demand starting
  • Create AppArmor profile
  • Create SELinux profile

The weekly todo lists have been transformed into a large “this is what needs to be done” todo list. Every week the completed tasks are removed and once we hit an empty list I’ll declare the project feature complete and debugged.

In non-ippusb news this week I helped out a friend implement the soon-to-be-standard C++14 memory pool resource class. I wrote the lock-less version.

GSoC 2014 Friday Report #18

Todo This Week

  • Implement the one remaining TODO
  • Debug auto config
  • Debug “file too large” print bug
  • Explore dbus based on-demand starting

Completed This Week

  • Debugged auto config, fixed several bugs.

Todo Next Week

  • Implement the one remaining TODO
  • Fix duplicate queue generation
  • Fix re-start of unplugged then plugged ippusb printers
  • Debug “file too large” print bug
  • Explore dbus based on-demand starting
  • Create AppArmor profile
  • Create SELinux profile

This week I made good progress on the auto-config. I’m writing this early on Friday so I still can fix my issues with system-config-printer before next week.

GSoC 2014 Friday Report #17

Todo This Week

  • Test udev-configure-printer changes
  • Send patch to Till on Sunday or Monday
  • Fix “file too large” print error in ippusbxd
  • Make ippusbxd respect vid, pid, and serial arguments

Completed This Week

  • Path sent to Till
  • Completed all but one TODO
  • Ippusbxd now respects vid, pid, and serial

Todo Next Week

  • Implement the one remaining TODO
  • Debug auto condif
  • Debug “file too large” print bug
  • Explore dbus based on-demand starting

I hope no one minds if I continue friday reports until I’m happy with the debugging. I passed the final GSoC checkpoint (thanks James!). We have a few weeks until Ubuntu freezes for release but I hope to get everything solid in a week or two.

GSoC 2014 Friday Report #16

Todo This Week

  • Practice presentation 2 more times
  • Attend OpenPrinting Summit in Toronto
  • Present ippusbxd at summit
  • Make udev-configure-printer startup ippusbxd on printer plugin
  • Make udev-configure-printer create cups queue for printer
  • Make udev-configure-printer edit any exisiting queue’s uri to match new port number on re-insertion

Completed This Week

  • Attended and presented at OpenPrinting Summit
  • Wrote code for all needed udev-configure-printer functionality

Todo Next Week

  • Test udev-configure-printer changes
  • Send patch to Till on Sunday or Monday
  • Fix “file too large” print error in ippusbxd
  • Make ippusbxd respect vid, pid, and serial arguments

Hello from several thousand feet in the air! I’m writing this on my flight back from the OpenPrinting Summit. It was a awesome to meet so many people from the printer industry. Everyone had awesome stories and it was nice to chat about the printing world.

I’m pretty sure everyone there had more programming experience than I’ve been alive. So thanks for putting up with my reckless behavior like not checking that the alarm before going to bed.

I’ve written a good volume of code over the week to enable startup of ippusbxd through udev rules. This meant extending the existing udev-configure-printer to detect ippusb printers, startup ippusbxd, and disable & enable ippusb print queues. Most of this is string manipulation so writing it was easier than ippusbxd’s complex http state machine and usb & tcp handling. Thus I managed to churn out about 500-800 lines despite ippusbxd’s 1300 lines have taken all summer.

I need to get the working udev-configure-printer patch to Till within a day or two so he has time to push it before feature freeze. I still must test and debug my patch but I think I will make that deadline.