2009-07-22  Tim Waugh  <twaugh@redhat.com>

	Install udev rules in the right place.
	* Makefile.am: Don't use nobase_ prefix for udev rules rule.

	Bumped version for release.
	* configure.in: Version 1.1.10.

	Always ship udev/udev-add-printer.
	* Makefile.am: Explicitly ship udev/udev-add-printer as
	udevhelper_SCRIPTS will not be set unless configured with
	--with-udev-rules.

	update-po

	Bumped version for release.
	* configure.in: Version 1.1.9.

	Merge branch 'udev' into 1.1.x

	Fixed Device ID matching for HPLIP PPDs.
	* cupshelpers/ppds.py (PPDs.getPPDNameFromDeviceID): Try using HP as
	an alias for Hewlett-Packard when looking up by ID.
	(_self_test): Fixed test case.

	Fixed tracebacks in cupshelpers.ppds test suite.
	* cupshelpers/ppds.py (_self_test): Fixed typo when using --help, and
	traceback when using --deviceid.

	Make udev rules dependent on --with-udev-rules configure option.
	* configure.in: New option --with-udev-rules, default=no.  Make
	AM_PROG_CC_C_O conditional on it.
	* Makefile.am: Make udev-related rules conditional on it.

	udev-configure-printer: comments about usb-uris fields.

	udev-configure-printer: prefer the hp backend over the usb backend.
	* udev/udev-configure-printer.c (device_uri_types): Prefer the hp
	backend over the usb backend.  The hpijs driver currently uses the
	hp backend to tell it whether to report low ink etc.
	Don't include the hpfax scheme as this will never match a USB
	device.

	udev-configure-printer: concatenate non-serial URIs onto serial URIs.
	* udev/udev-configure-printer.c (find_matching_device_uris):
	Concatenate device URIs that did not match by serial number onto the
	end of the list of device URIs that did.

	Fixed locking in udev-configure-printer.
	* udev/udev-configure-printer.c (struct usb_uri_map): Store the file
	descriptor for the file here.
	(add_usb_uri_mapping): Updated.
	(read_usb_uri_map): Open the file read-write, creating it if
	necessary.  Set a write lock and keep the file open until write/free.
	Avoid stdio.
	(write_usb_uri_map): Rewind file and truncate it.
	(free_usb_uri_map): Updated.  Close file descriptor if open.
	(find_matching_device_uris): Updated.
	(do_remove): Updated.

	Fixed udev-add-printer for multiple URI matches and fax queues.
	* udev/udev-add-printer (add_queue): Don't append "-fax" to fax queue
	name as the name is already derived from the fax-specific model name.
	Fixed parameters for add_queue call creating fax queue.  Fixed D-Bus
	error logging.
	(top-level): Allow more than two arguments.

2009-07-21  Tim Waugh  <twaugh@redhat.com>

	Fax support in udev-add-printer.  HPLIP changes required.
	* udev/udev-configure-printer.c (do_add): Give the Device ID to
	udev-add-printer as its first argument and pass all device URIs as the
	following arguments.
	* udev/udev-add-printer (add_queue): Find device URI matching any we
	were given but with a URI scheme ending in "fax"; add fax queue if
	found.

	For this to work we need HPLIP to give a correct device-id during
	device discovery.

	Truncate the usb-uris when writing it in udev-configure-printer.
	* udev/udev-configure-printer.c (write_usb_uri_map): Use O_TRUNC.

	Small efficiency fix for udev-configure-printer.
	* udev/udev-configure-printer.c (find_matching_device_uris): Don't
	bother validating the USB serial number if we already matched the SERN
	fields.

	Merge branch '1.1.x' into udev

	Fixed bad merge.

	Merge commit 'origin/1.1.x' into 1.1.x

	Merge branch '1.1.x' into udev

	Merge branch '1.0.x' into 1.1.x
	* glade/PrintersWindow.glade: Smaller minimum width, larger default
	height.
	* system-config-printer.py (GUI): Decide on a default size for the
	main window before showing it.

	Fixed hang on start-up when trying to resize the window.
	* system-config-printer.glade: Larger default height for main window,
	and start it hidden.
	* system-config-printer.py (GUI): Decide on a default size for the
	main window before showing it.

	udev-configure-printer: handle devices with no SERN Device ID field.
	* udev/udev-configure-printer.c (add_device_uri): New function.
	(read_usb_uri_map): Use it.
	(find_matching_device_uris): Likewise.
	(device_id_from_devpath): Fetch USB serial number.
	(do_add): Pass USB serial number to find_matching_device_uris.
	(find_matching_device_uris): Try to match SERN field values when
	present.  Failing that, try to match USB serial number against
	device-id's SERN field.  Failing that, look for USB serial number in
	device URI.  If no device URIs match that way, use whatever device
	URIs matched the MFG and MDL fields.

2009-07-21  pingman  <pingman@fedoraproject.org>

	Sending translation for Chinese (Simplified)

2009-07-21  Tim Waugh  <twaugh@redhat.com>

	Lock the usb-uris file in udev-configure-printer.
	* udev/udev-configure-printer.c (read_usb_uri_map): Set a read lock
	on the file.
	(write_usb_uri_map): Set a write lock on the file.

	Fixed usb-uris parsing from doubling up newlines.
	* udev/udev-configure-printer.c (read_usb_uri_map): Use newline as a
	delimiter as well.
	(for_each_matching_queue): Compare the entire URI.

	Fixed usb-uris memory allocation error in udev-configure-printer.
	* udev/udev-configure-printer.c (read_usb_uri_map): Store a copy of
	each extra URI, not the pointer into the temporary buffer.

	Fixed incorrect usb-uris map lookup in udev-configure-printer.
	* udev/udev-configure-printer.c (do_remove): Use the correct list of
	device URIs (patch from Till Kamppeter).

2009-07-20  Tim Waugh  <twaugh@redhat.com>

	udev-configure-printer: make it actually work.
	Now we have two ACTION=="add" triggers: one for the usb_device and one
	for the USB class driver (usblp) device.  We need both of them
	because:

	* at least one, and soon two, of the CUPS backends will most likely
	  unload the usblp module if it is loaded, in order to use libusb.
	  This means that the usb_device is the only reliable object we can
	  track to see when printers have been disconnected.

	* if the usblp module is already loaded, libusb won't work because
	  usblp holds open the raw device.

	* the usblp module may be blacklisted altogether, as most printer
	  device users use libusb now.

	We have a single ACTION=="remove" trigger for the usb_device.

	On "add" we obtain the Device ID by fair means or foul, depending on
	whether the usblp module is loaded.  We match this against devices
	reported by CUPS using the device-id attribute, and keep a note of
	this mapping of USB devpath to device URIs.  Note that if we fail to
	contact CUPS we just exit -- the idea is that the CUPS initscript will
	replay the udev events after cupsd is started.

	Next, we examine the existing CUPS queues to see if any of them use
	any of the device URIs associated with our device.  If so, and they
	are disabled, and we'd disabled them, we enable them.

	If no queues match, we invoke udev-add-printer to create a queue.

	On "remove" we look up the list of device URIs associated with our USB
	devpath, then examine the existing CUPS queues to see if any of them
	use it.  If so they are disabled.

	A walk in the park.

	(I know which I'd prefer.)

2009-07-19  Tim Waugh  <twaugh@redhat.com>

	More error-checking and logging in udev-configure-printer.
		* udev/udev-configure-printer.c (device_id_from_devpath): Check
		for missing sysattrs.
		(do_add): Show invalid IEEE 1284 Device ID if available.

	udev-configure-printer: quote device URIs in REMOTE_CMD.
	* udev/udev-configure-printer.c (do_add): Put the device URIs in
	single-quotes when exporting REMOTE_CMD (patch from Till
	Kamppeter).

	udev-configure-printer: use libusb to look up IEEE 1284 Device ID.
	* udev/udev-configure-printer.c (device_id_from_devpath): Use libusb
	to look up IEEE 1284 Device ID.

2009-07-18  Tim Waugh  <twaugh@redhat.com>

	udev-add-printer: fixed indentation.

	udev-configure-printer: choose which URI to use.

	udev-configure-printer: there may be more than one matching device URI.
	* udev/udev-configure-printer.c (free_device_uris): New function.
	(find_matching_device_uris): Renamed.  Take a device_uris list.  Allow
	hp and hpfax URI schemes.  Compare using device-id attribute.
	(for_each_matching_queue): Take a device_uris list.
	(do_add): Updated.
	(do_remove): Updated.
	(main): Updated.

	Fixed compiler warnings.
	* Makefile.am: Compile with -Wall.
	* udev/udev-configure-printer.c: Fixed several bugs found by compiler
	warnings.

	udev-configure-printer: only re-enable printers we disabled.
	* udev/udev-configure-printer.c (for_each_matching_queue): Fetch
	printer-state-message attribute and compare with our 'unplugged'
	reason text if we're matching against disabled printers.

	Don't fork too soon in udev-configure-printer.
	* udev/udev-configure-printer.c (main): Moved fork code...
	(do_add): ...here, so that our REMOVE_CMD line gets to udev.

2009-07-17  Tim Waugh  <twaugh@redhat.com>

	New udev-add-printer script for the udev callout.
	* udev/udev-add-printer: New file.
	* Makefile.am: Ship it and install it.

	udev-configure-printer: Call udev-add-printer to add a queue.

	udev-configure-printer: enable/disable matching queues.

	udev-configure-printer: identify existing queue.

	IEEE 1284 Device ID matching for udev-configure-printer.

	Ship and install a udev rules file.
	* udev/70-printer.rules: New file.
	* Makefile.am: Ship and install it.

	Start using libudev in udev-configure-printer.

	Fixed udev-configure-printer's REMOVE_CMD string.

	udev-configure-printer: CUPS connection, with retries.

	.gitignore: ignore files due to compilation.

	udev-configure-printer: syslogging and a bit more structure.

2009-07-16  Tim Waugh  <twaugh@redhat.com>

	File structure for new udev-based queue configuration system.
	* udev/udev-configure-printer.c: New file.
	* Makefile.am: Build and install it.
	* configure.in: Added AM_PROG_CC_C_O.
	* aclocal.m4: Updated.

2009-07-15  Tim Waugh  <twaugh@redhat.com>

	75% speed improvement in ppdMakeModelSplit().
	There is no need to use expensive regular expressions here.  In
	profiling I measured a single cupshelpers.PPDs() operation as spending
	3.933s in ppdMakeModelSplit().  After removing the vast majority of
	regular expression uses this was reduced to 0.984s.

	I hope that the new code handles all real world cases identically.
	Please submit test cases for any that have broken.

2009-07-15  igor  <igor@fedoraproject.org>

	Sending translation for Brazilian Portuguese

2009-07-15  Tim Waugh  <twaugh@redhat.com>

	Don't reload all PPDs if the query has already finished.

	Small speed-up (0.09s) for the case where jockey is not present.

	Avoid reloading all PPDs when calls to jockey fail.

	Drop libsexy support in favour of GTK+ 2.17's equivalent (bug #509299).

	Fixed incorrect "printer not shared on server" message (bug #511407).
	* troubleshoot/NetworkCUPSPrinterShared.py
	(NetworkCUPSPrinterShared.display): Avoid cups.setServer/setPort.

	* troubleshoot/CheckNetworkServerSanity.py
	(CheckNetworkServerSanity.display): Avoid cups.setServer/setPort.
	Fetch the attributes for the correct remote queue (bug #511407).

2009-07-15  beckerde  <beckerde@fedoraproject.org>

	Sending translation for Spanish

2009-07-14  Tim Waugh  <twaugh@redhat.com>

	Efficiency and readability improvements in PPDs Device ID matcher.
	* cupshelpers/ppds.py (PPDs.getPPDNameFromDeviceID): Efficiency
	improvements and more comments.

	Fixed --debug option for PPDs self-test function.
	* cupshelpers/ppds.py (_self_test): Fixed --debug option.

	Efficiency fixes for PPDs Device ID matching.
	* cupshelpers/ppds.py (PPDs.getPPDNameFromDeviceID): Don't recompute
	case-insensitive strings unnecessarily.

	Added PIXMA comment to test suite.
	* cupshelpers/ppds.py (_self_test): Note which driver provides support
	for the Canon PIXMA iP3000.

2009-07-14  Till Kamppeter  <till.kamppeter@gmail.com>

	Improved matching of printer model names: Check case-independently when removing manufacturer names from model names, remove expressions in parantheses ("(...)") from the model name, do not add "HP" as manufacturer name when "edgeline" is somewhere in the middle of the model name, only if it is in the beginning.

2009-07-14  anipeter  <anipeter@fedoraproject.org>

	Sending translation for Malayalam

2009-07-12  raven  <raven@fedoraproject.org>

	Sending translation for Polish

2009-07-11  Tim Waugh  <twaugh@redhat.com>

	Removed IPP browser (trac #178).
	There is no point in having the IPP browser.  It only works for CUPS,
	and CUPS has its own browsing mechanism.

	Check exit codes for child processes.
	* system-config-printer.py (NewPrinterGUI.install_hplip_plugin):
	Check returncode of child process.
	(NewPrinterGUI.get_hplip_uri_for_network_printer): Likewise.
	(NewPrinterGUI.getNetworkPrinterMakeModel): Likewise.
	* probe_printer.py (PrinterFinder._probe_snmp): Likewise.
	(PrinterFinder._probe_hplip): Likewise.

	Updated British translation.

	New aclocal.m4 from autoconf 1.11.

	update-po

	Don't mention the job number in completed jobs notification (trac #170).
	* jobviewer.py (JobViewer.notify_completed_job): No need to
	mention the job number in "document printed" notification (trac

2009-07-10  Tim Waugh  <twaugh@redhat.com>

	Don't run Properties dialog on new printer (trac #170).
	* applet.py (NewPrinterNotification.NewPrinter): Don't run the
	Properties dialog when notifications actions are not supported
	(trac #170).

	Make sure to URL-encode usernames and passwords correctly (bug #509588).
		* smburi.py (_urlquote): New function for URL-encoding strings.
		URL-encode "/", "@" and ":" characters as well.
		(SMBURI._construct): Use it (bug #509588).

	Fixed initial radio button selection for SMB authentication.
	* system-config-printer.py (NewPrinterGUI.init): When changing a
	device URI for the smb backend, start with 'prompt user if
	authentication is required' selected.

	Avoid possible traceback when receiving printer-added-events.
	* system-config-printer.py (GUI.printer_event): Avoid possible
	traceback when receiving printer-added events.

2009-07-07  Tim Waugh  <twaugh@redhat.com>

	Fixed UI oddities when changing PPD/device (trac #143).
	* system-config-printer.py (GUI.setDataButtonState): Don't allow
	the 'Change...' buttons for PPD or device to be clicked if doing
	so would lose changes (trac #143).
	(NewPrinterGUI.on_btnNPApply_clicked): Select 'Settings' in the
	printer properties treeview after PPD or device is changed (trac

	Always update the jobviewer status icon on job events (trac #174).
	* jobviewer.py (JobViewer.job_event): Always update the icon
	status, not when the active jobs list changes between empty and
	non-empty (trac #174).

2009-07-07  swkothar  <swkothar@fedoraproject.org>

	Sending translation for Gujarati

2009-07-06  Tim Waugh  <twaugh@redhat.com>

	Merge branch '1.0.x' into 1.1.x

	Don't use hard-coded "python" program name in Makefile.
	* Makefile.am: Use "$(PYTHON)" instead of "python" throughout.

2009-07-06  ruigo  <ruigo@fedoraproject.org>

	Sending translation for Portuguese

2009-07-04  igor  <igor@fedoraproject.org>

	Sending translation for Brazilian Portuguese

2009-07-03  Tim Waugh  <twaugh@redhat.com>

	Merge branch '1.0.x' into 1.1.x

	Use gpk-install-package-name to install packages, not the PK D-Bus API.
	* installpackage.py: Don't use the D-Bus API as it changes too
	often and is now too low-level.  Instead, try to execute
	gpk-install-package-name.

	Map gutenprint filenames to the package name.
	* cupshelpers/cupshelpers.py
	(missingPackagesAndExecutables.pathcheck): Map gutenprint
	filenames to the package name.

	Spot stopped jobs with CUPS 1.4 as well (trac #177).
	* jobviewer.py (JobViewer.job_event): CUPS 1.4 no longer emits a
	job-stopped event, so look for job-state-changed where the
	job-state is IPP_JOB_STOPPED (trac #177).

2009-07-01  Tim Waugh  <twaugh@redhat.com>

	Another fix for selecting an added printer (trac #145).
	* system-config-printer.py (NewPrinterGUI.on_btnNPApply_clicked):
	After adding a printer, make sure only that printer is selected.
	Don't just add it to the pre-existing selection.

2009-06-30  Tim Waugh  <twaugh@redhat.com>

	Merge branch '1.0.x' into 1.1.x

	Small fix for class members arrows: always de-sensitise buttons after use.
	* system-config-printer.py
	(NewPrinterGUI.on_btnNCAddMember_clicked,
	NewPrinterGUI.on_btnNCDelMember_clicked): Always set the button
	insensitive after use.

2009-06-30  Jiri Popelka  <jpopelka@redhat.com>

	Arrows for adding and removing class members are sensitive only if something is selected.

2009-06-25  Tim Waugh  <twaugh@redhat.com>

	Fixed incorrect authentication in the troubleshooter (bug #508102).
	* authconn.py (Connection._show_not_authorized_dialog): Actually
	put the dialog on the screen (bug #508102).

2009-06-24  Tim Waugh  <twaugh@redhat.com>

	Prevent traceback on IPP notification after properties dialog cancelled.
	* system-config-printer.py (GUI.printer_properties_response):
	Don't delete self.printer here as we check it later.  Instead, set
	it to None.  Fixes a traceback when an IPP notification is
	received after a printer properties dialog has been cancelled.

	Make sure we find https URIs from https backend (bug #507628).
	* system-config-printer.py
	(NewPrinterGUI.browse_ipp_queues_thread): Always encrypt when
	browsing for https IPP queues.
	(NewPrinterGUI.on_btnIPPBrowseOk_clicked): Override
	printer-uri-supported for browsed queues that use the https
	scheme (bug #507628).

	Merge branch '1.0.x' into 1.1.x

2009-06-23  Tim Waugh  <twaugh@redhat.com>

	Avoid non-fatal traceback when adding IPP printer (bug #507629).
	* system-config-printer.py (NewPrinterGUI.nextNPTab): Don't log
	non-fatal traceback messages if we cannot connect to the IPP
	printer (bug #507629).

	Merge branch '1.0.x' into 1.1.x

	Parse nmblookup failures correctly in troubleshooter (from bug #507442).
	* troubleshoot/CheckPrinterSanity.py (CheckPrinterSanity.display):
	Parse nmblookup failures correctly (from bug #507442).

2009-06-22  Tim Waugh  <twaugh@redhat.com>

	Avoid traceback when adding new printer.
	* system-config-printer.py (NewPrinterGUI.on_btnNPApply_clicked):
	We need to load the printer's information here, as we use it
	later on.

2009-06-19  Tim Waugh  <twaugh@redhat.com>

	Use git commit logs to generate the ChangeLog file.
	* ChangeLog: Renamed ChangeLog-OLD.
	* gitlog-to-changelog: New build tool from gnulib for generating
	ChangeLog from git commit logs.
	* Makefile.am: Generate ChangeLog in dist-hook.  Ship ChangeLog-OLD.
	* bootstrap: Create dummy ChangeLog to keep automake happy.
	* .gitignore: Ignore dummy ChangeLog.

	Fixed 'location' field for printers added remotely.
		* system-config-printer.py
		(NewPrinterGUI.on_tvNPDeviceURIs_cursor_changed): Set the location
		to the hostname of the server we are connected to, not necessarily
		our own hostname.

2009-06-19  Till Kamppeter  <till.kamppeter@gmail.com>

	Support for HPLIP 3.9.6.

2009-06-18  raven  <raven@fedoraproject.org>

	Sending translation for Polish

2009-06-18  Tim Waugh  <twaugh@redhat.com>

	Bumped version for release.

	Updated aclocal.m4.

	update-po

	Merge branch '1.0.x' into 1.1.x

	Make troubleshooter work again by disabling cupspk for it.
	* authconn.py (Connection._connect): The cupspk module needs to be
	fixed so that it works correctly from a non-UI thread.  Until
	then, avoid using cupspk.Connection in that situation.

2009-06-18  Tim Waugh  <twaugh@worm.elk>

	Make 'make distcheck' succeed again.
	* cupshelpers/ppds.py (_self_test): Show the ppd-make-and-model on
	failure.
	(_self_test): Updated some HPLIP test cases as newer versions of
	HPLIP give different results.

2009-06-18  beckerde  <beckerde@fedoraproject.org>

	Sending translation for Spanish

2009-06-17  Tim Waugh  <twaugh@worm.elk>

	Updated British translation.

	update-po

	Mark 'Advanced...' as translatable in Server Settings dialog (bug #505785).

	Select a newly-added printer (trac #145).
		* system-config-printer.py (NewPrinterGUI.on_btnNPApply_clicked):
		Select a newly-added printer (trac #145).

	Make sure the job context menu cannot get out of date (trac #175).
	* jobviewer.py (JobViewer.__init__): Handle 'row-changed' signal
	from the TreeStore.
	(JobViewer.on_treemodel_row_changed): Make sure the context menu
	gets updated (trac #175).

	Removed some stale code in cupshelpers.
	* cupshelpers/cupshelpers.py (Printer.getAttributes): Removed
	some stale code.

	Track printer state changes for the printer context menu (trac #172).
	* system-config-printer.py (GUI.printer_event): Update printer
	context menu when a printer event is seen (trac #172).

	Fixed conversion from broken-down UTC time to simple UNIX time for held jobs.
	* jobviewer.py (JobViewer.update_job): Fixed conversion from
	broken-down UTC time to simple UNIX time for held jobs.

	Use grey ink-drop when there is no marker-colors value (bug #505399).
	* gtkinklevel.py (GtkInkLevel.__init__): Use grey ink-drop when
	there is no marker-colors value (bug #505399).

2009-06-10  Tim Waugh  <twaugh@worm.elk>

	Scroll to new job if it was added just above the visible range.
	* jobviewer.py (JobViewer.add_job): Scroll to new job if it was
	added just above the visible range.

2009-05-25  mrtom  <mrtom@fedoraproject.org>

	Sending translation for French

2009-05-20  mrtom  <mrtom@fedoraproject.org>

	Sending translation for French

2009-05-15  kristho  <kristho@fedoraproject.org>

	Sending translation for Danish

2009-05-13  Till Kamppeter  <till.kamppeter@gmail.com>

	Reconnect to CUPS if the connection gets lost during the installation of a driver from OpenPrinting.

2009-05-12  charnik  <charnik@fedoraproject.org>

	Sending translation for Greek

2009-05-12  Tim Waugh  <twaugh@worm.elk>

	Clean up temporary PPD files when we're finished with them (bug #498743).
	* system-config-printer.py (GUI.printer_properties_response):
	Delete printer object when we're finished with it.
	(GUI.on_quit_activate): Delete printer lists before exiting.  This
	allows the appropriate __del__ functions to clean up temporary
	files (bug #498743).

2009-05-12  andrmart  <andrmart@fedoraproject.org>

	Sending translation for Norwegian Nynorsk

	Sending translation for Russian

	Sending translation for Norwegian Nynorsk

2009-05-12  willwill  <willwill@fedoraproject.org>

	Sending translation for Thai

2009-05-07  beckerde  <beckerde@fedoraproject.org>

	Sending translation for Spanish

2009-05-05  anipeter  <anipeter@fedoraproject.org>

	Sending translation for Malayalam

2009-05-05  Tim Waugh  <twaugh@worm.elk>

	Fixed XmlHelper crash on invalid XML file (Ubuntu #370469).
	* XmlHelper.py (XmlHelper.__init__): Initialise the in-memory XML
	representation to an empty document, not None (Ubuntu #370469).
