Features/libjpeg-turbo-jpeg8-ABI

From FedoraProject

< Features(Difference between revisions)
Jump to: navigation, search
(Scope)
(Setting back to FeaturePageIncomplete as feature owner decided to drop it)
 
(13 intermediate revisions by 2 users not shown)
Line 3: Line 3:
 
== Summary ==
 
== Summary ==
 
<!-- A sentence or two summarizing what this feature is and what it will do.  This information is used for the overall feature summary page for each release. -->
 
<!-- A sentence or two summarizing what this feature is and what it will do.  This information is used for the overall feature summary page for each release. -->
Build and ship libjpeg-turbo with libjpeg8 compatible API/ABI. Currently we ship libjpeg-turbo with libjpeg6 compatible API/ABI.
+
 
 +
<b>NOTE: We are currently discussing with upstream if we should include jpeg8 API/ABI or we should rather stay with former jpeg6 API/ABI. So this feature can be dropped</b>
 +
 
 +
Build and ship [http://libjpeg-turbo.virtualgl.org/ libjpeg-turbo] with [http://www.ijg.org/ libjpeg8] compatible API/ABI. Currently we ship libjpeg-turbo with libjpeg6 compatible API/ABI.
  
 
== Owner ==
 
== Owner ==
Line 10: Line 13:
  
 
<!-- Include you email address that you can be reached should people want to contact you about helping with your feature, status is requested, or  technical issues need to be resolved-->
 
<!-- Include you email address that you can be reached should people want to contact you about helping with your feature, status is requested, or  technical issues need to be resolved-->
* Email: atkac@redhat.com
+
* Email: atkac redhat com
  
 
== Current status ==
 
== Current status ==
 
* Targeted release: [[Releases/19 | Fedora 19 ]]  
 
* Targeted release: [[Releases/19 | Fedora 19 ]]  
 
* Last updated: 18-Oct-2012
 
* Last updated: 18-Oct-2012
* Percentage of completion: 00%
+
* Percentage of completion: 95%
  
 
<!-- CHANGE THE "FedoraVersion" TEMPLATES ABOVE TO PLAIN NUMBERS WHEN YOU COMPLETE YOUR PAGE. -->
 
<!-- CHANGE THE "FedoraVersion" TEMPLATES ABOVE TO PLAIN NUMBERS WHEN YOU COMPLETE YOUR PAGE. -->
Line 30: Line 33:
 
All packages which require libjpeg.so need to be rebuilt against new library. jpeg8 API is mostly compatible with the current jpeg6 API so there shouln't be any issues with porting. jpeg6->jpeg8 transition will have four steps:
 
All packages which require libjpeg.so need to be rebuilt against new library. jpeg8 API is mostly compatible with the current jpeg6 API so there shouln't be any issues with porting. jpeg6->jpeg8 transition will have four steps:
  
1. Creation of the libjpeg-turbo-compat library which will contain current libjpeg.so.62 library to avoid breakages in distro
+
1. Creation of the libjpeg-turbo-compat library which will contain current jpeg6 library
  
 
2. libjpeg-turbo and libjpeg-turbo-devel will be built with jpeg8 API/ABI
 
2. libjpeg-turbo and libjpeg-turbo-devel will be built with jpeg8 API/ABI
  
 
3. Rebuild of all dependent pkgs
 
3. Rebuild of all dependent pkgs
 
4. Removal of the libjpeg-turbo-compat library
 
  
 
== How To Test ==
 
== How To Test ==
Line 53: Line 54:
 
-->
 
-->
 
1. All packages which depends on libjpeg-turbo should be rebuilt successfully
 
1. All packages which depends on libjpeg-turbo should be rebuilt successfully
 +
 
2. Basic testing of mostly used apps should be sufficient (firefox, your favorite image viewer etc)
 
2. Basic testing of mostly used apps should be sufficient (firefox, your favorite image viewer etc)
  
Line 61: Line 63:
 
== Dependencies ==
 
== Dependencies ==
 
<!-- What other packages (RPMs) depend on this package?  Are there changes outside the developers' control on which completion of this feature depends?  In other words, completion of another feature owned by someone else and might cause you to not be able to finish on time or that you would need to coordinate?  Other upstream projects like the kernel (if this is not a kernel feature)? -->
 
<!-- What other packages (RPMs) depend on this package?  Are there changes outside the developers' control on which completion of this feature depends?  In other words, completion of another feature owned by someone else and might cause you to not be able to finish on time or that you would need to coordinate?  Other upstream projects like the kernel (if this is not a kernel feature)? -->
Many pkgs depend check them via "repoquery --alldeps --whatrequires 'libjpeg.so.62()(64bit)'" on 64bit system.
+
Many pkgs depend (currently 269) check them via:
 +
 
 +
1. repoquery --enablerepo fedora-source --alldeps --archlist=src --whatrequires libjpeg-devel
 +
 
 +
2. repoquery --enablerepo fedora-source --alldeps --archlist=src --whatrequires libjpeg-turbo-devel
  
 
== Contingency Plan ==
 
== Contingency Plan ==
 
<!-- If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as "None necessary, revert to previous release behaviour."  Or it might not.  If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy.  -->
 
<!-- If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as "None necessary, revert to previous release behaviour."  Or it might not.  If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy.  -->
Create libjpeg-turbo-compat and libjpeg-turbo-compat-devel libraries with jpeg6 API/ABI and ship them in distro.
+
Build libjpeg-turbo with jpeg6 API/ABI as now.
  
 
== Documentation ==
 
== Documentation ==
 
<!-- Is there upstream documentation on this feature, or notes you have written yourself?  Link to that material here so other interested developers can get involved. -->
 
<!-- Is there upstream documentation on this feature, or notes you have written yourself?  Link to that material here so other interested developers can get involved. -->
* TBD
+
* http://www.ijg.org
 +
* http://sourceforge.net/projects/libjpeg-turbo
  
 
== Release Notes ==
 
== Release Notes ==
 
<!-- The Fedora Release Notes inform end-users about what is new in the release.  Examples of past release notes are here: http://docs.fedoraproject.org/release-notes/ -->
 
<!-- The Fedora Release Notes inform end-users about what is new in the release.  Examples of past release notes are here: http://docs.fedoraproject.org/release-notes/ -->
 
<!-- The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns.  If there are any such changes involved in this feature, indicate them here.  You can also link to upstream documentation if it satisfies this need.  This information forms the basis of the release notes edited by the documentation team and shipped with the release. -->
 
<!-- The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns.  If there are any such changes involved in this feature, indicate them here.  You can also link to upstream documentation if it satisfies this need.  This information forms the basis of the release notes edited by the documentation team and shipped with the release. -->
* TBD
+
* The libjpeg-turbo API/ABI, which is used as the main libjpeg library, has been updated to match the latest jpeg8 API/ABI. Backward compatible libjpeg library is now shipped in libjpeg-turbo-compat and libjpeg-turbo-compat-devel packages.
  
 
== Comments and Discussion ==
 
== Comments and Discussion ==
* See [[Talk:Features/Your_Feature_Name]]  <!-- This adds a link to the "discussion" tab associated with your page.  This provides the ability to have ongoing comments or conversation without bogging down the main feature page -->
+
* See [[Talk:Features/libjpeg-turbo-jpeg8-ABI]]  <!-- This adds a link to the "discussion" tab associated with your page.  This provides the ability to have ongoing comments or conversation without bogging down the main feature page -->
  
  

Latest revision as of 16:43, 16 January 2013

Contents

[edit] libjpeg-turbo jpeg8 ABI

[edit] Summary

NOTE: We are currently discussing with upstream if we should include jpeg8 API/ABI or we should rather stay with former jpeg6 API/ABI. So this feature can be dropped

Build and ship libjpeg-turbo with libjpeg8 compatible API/ABI. Currently we ship libjpeg-turbo with libjpeg6 compatible API/ABI.

[edit] Owner

  • Email: atkac redhat com

[edit] Current status

  • Targeted release: Fedora 19
  • Last updated: 18-Oct-2012
  • Percentage of completion: 95%


[edit] Detailed Description

[edit] Benefit to Fedora

Since other distributions slowly adopts libjpeg8 API/ABI as well, it's logical step. Also some projects support only libjpeg8 API/ABI (check https://bugzilla.redhat.com/show_bug.cgi?id=854695 for example).

[edit] Scope

All packages which require libjpeg.so need to be rebuilt against new library. jpeg8 API is mostly compatible with the current jpeg6 API so there shouln't be any issues with porting. jpeg6->jpeg8 transition will have four steps:

1. Creation of the libjpeg-turbo-compat library which will contain current jpeg6 library

2. libjpeg-turbo and libjpeg-turbo-devel will be built with jpeg8 API/ABI

3. Rebuild of all dependent pkgs

[edit] How To Test

1. All packages which depends on libjpeg-turbo should be rebuilt successfully

2. Basic testing of mostly used apps should be sufficient (firefox, your favorite image viewer etc)

[edit] User Experience

Users will have to be able run apps which require libjpeg >= 8.

[edit] Dependencies

Many pkgs depend (currently 269) check them via:

1. repoquery --enablerepo fedora-source --alldeps --archlist=src --whatrequires libjpeg-devel

2. repoquery --enablerepo fedora-source --alldeps --archlist=src --whatrequires libjpeg-turbo-devel

[edit] Contingency Plan

Build libjpeg-turbo with jpeg6 API/ABI as now.

[edit] Documentation

[edit] Release Notes

  • The libjpeg-turbo API/ABI, which is used as the main libjpeg library, has been updated to match the latest jpeg8 API/ABI. Backward compatible libjpeg library is now shipped in libjpeg-turbo-compat and libjpeg-turbo-compat-devel packages.

[edit] Comments and Discussion