CONTRACT ALLOWING/REQUIRING SPECIAL ARRANGEMENTS FOR INTERFACES 0. Number: PSARC/2006/601-01 1. This contract is between a SUPPLIER of INTERFACES and a CONSUMER of those INTERFACES, both of whom are entities within Sun Microsystems, Incorporated. 2. The SUPPLIER (definer and/or implementor) is identified by the following: Product or Bundle: Solaris Consolidation: ON Department or Group: KISS Bugtraq Category/SubCategory: solaris/utility/hal Responsible Manager: Neal Pollack 3. The CONSUMER is identified by the following: Product or Bundle: Solaris Consolidation: Desktop Department or Group: OPG Desktop Bugtraq Category/SubCategory: gnome Responsible Manager: Zhaozhou Li 4. The INTERFACES are: Interface Stability Name Classification ----------------------------------------- -------------------- battery.type Contracted Volatile battery.present Contracted Volatile battery.voltage.design Contracted Volatile battery.voltage.current Contracted Volatile battery.charge_level.current Contracted Volatile battery.charge_level.design Contracted Volatile battery.charge_level.last_full Contracted Volatile battery.rechargeable.is_charging Contracted Volatile battery.rechargeable.is_discharging Contracted Volatile battery.charge_level.rate Contracted Volatile battery.remaining_time Contracted Volatile 5. The ARC controlling these INTERFACES is: PSARC 6. The CASE describing these INTERFACES is: 2006/601 7. The following SPECIAL ARRANGEMENTS are made which modify the rules imposed by the stability levels listed in section 4 above: _Y_ 7a. Although the stability level doesn't normally restrict it, SUPPLIER promises to only modify INTERFACES in an incompatible way as follows: If the Open Source Community makes a change to the interfaces that breaks the consumer the supplier will maintain a backwards compatibility library for the consumer until such time as this contract is terminated. _N_ 7b. Although the stability level doesn't normally allow it, CONSUMER will expose INTERFACES to a PARTNER, which is external to Sun, namely: Name of Company: Name of Department or Group within Company: Responsible Manager: _Y_ 7c. Although the stability level doesn't normally allow it, CONSUMER will import INTERFACES from a separate consolidation. _Y_ 7d. If SUPPLIER decides to change (including replace or remove) any portion of the INTERFACES, SUPPLIER will notify CONSUMER of the proposed new version, no later than the application for ARC approval of the new version. If SUPPLIER and CONSUMER are contained in the same consolidation, they have the option of arranging for simultaneous conversion to the new interfaces. If this is not possible, or if they are not in the same consolidation, then SUPPLIER will either make best effort to work with CONSUMER so that CONSUMER can detect which version of INTERFACES is being supplied, or else SUPPLIER will make best effort to supply both old and new versions of INTERFACES. If SUPPLIER cannot make both versions of INTERFACES available, and SUPPLIER and CONSUMER cannot devise a method whereby CONSUMER can detect which version of INTERFACES is being supplied, and the old version of CONSUMER will not run with the new version of SUPPLIER, then either the EOL process must be followed by SUPPLIER, or else a major release of SUPPLIER will be required, or the change will not be allowed. 8. If CONSUMER requires changes in INTERFACES, SUPPLIER will make best effort to accommodate such changes, which shall then be treated in accordance with paragraph 7 above. "Best Effort" might mean that the consumer or another third party will need to make the necessary changes in order for GNOME to work with the new version of the Interfaces. 9. Notwithstanding paragraphs 7 and 8, a change to any portion of the INTERFACES shall be regarded as a completely new set of INTERFACES which require both ARC approval and execution of a new contract. 10. SUPPLIER and CONSUMER agree that evolution of INTERFACES shall be handled as follows: The supplier shall notify the consumer when the interfaces shall be updated and will supply the consumer with the new interfaces in order to obtain appropriate testing. The notification shall be via email with an acknowledgement from the consumer of reciept of the email. Upon successful testing the consumer shall send an approval email to the supplier within 2 weeks. 11. SUPPLIER and CONSUMER agree that INTERFACES will be supported as follows: The supplier will be supporting the basic interfaces that are in the Open Source community. 12. SUPPLIER and CONSUMER agree that INTERFACES will be documented as follows: Refer to PSARC 2006/601. http://sac.sfbay.sun.com/PSARC/2006/601/ 13. SUPPLIER and CONSUMER agree that changes to the INTERFACES will be tested as follows: Tests will consist of testing to make sure that the GNOME applications which depend upon HAL work properly. These applications include: gnome-vfs, GStreamer HAL plugin, sound-juicer, nautilus-cd-burner, evince, gaim, evolution, and gnome-meeting. 14. SUPPLIER and CONSUMER agree that this contract can be terminated as follows: This contract will be terminated if these interfaces become official standards, or become a stable open source library with infrequent changes. This would require a new ARC case raising the interfaces above VOLATILE. 15. This contract is not valid until "signed" via agreement from the SUPPLIER and CONSUMER, and approved by the ARC CASE referenced by this contract. E-mail agreement to the contract should be archived in the mail archive of CASE; verbal agreement to the contract should be noted in the meeting minutes. This contract remains valid until superseded or invalidated. For SUPPLIER: Neal Pollack Date: Nov 21, 2006 For CONSUMER: Zhaozhou Li Date: Nov 21, 2006 For ARC: John Fischer Date: Nov 22, 2006 A copy of this contract shall be deposited in the CASE directory in a "contracts" subdirectory. 16. (Not to be filled in until superseded or invalidated.) This contract was superseded or invalidated by CASE: For ARC: Date: