From Fedora Project Wiki
(Add a TrueNoarchErlangPackages change)
 
(Mark the change as ready for a wrangler.)
Line 1: Line 1:
{{admon/important | Comments and Explanations | The page source contains comments providing guidance to fill out each section. They are invisible when viewing this page. To read it, choose the "view source" link.<br/> '''Copy the source to a ''new page'' before making changes!  DO NOT EDIT THIS TEMPLATE FOR YOUR CHANGE PROPOSAL.'''}}
<!-- Self Contained or System Wide Change Proposal?
<!-- Self Contained or System Wide Change Proposal?
Use this guide to determine to which category your proposed change belongs to.
Use this guide to determine to which category your proposed change belongs to.
Line 23: Line 21:


<!-- The actual name of your proposed change page should look something like: Changes/Your_Change_Proposal_Name.  This keeps all change proposals in the same namespace -->
<!-- The actual name of your proposed change page should look something like: Changes/Your_Change_Proposal_Name.  This keeps all change proposals in the same namespace -->
= Truely noarch Erlang packages <!-- The name of your change proposal --> =
= Changes/TrueNoarchErlangPackages <!-- The name of your change proposal --> =




Line 84: Line 82:
** Any developers who are not using the Erlang install RPM macro should modify their spec file to either use the macro, or to install their noarch packages to the new location.
** Any developers who are not using the Erlang install RPM macro should modify their spec file to either use the macro, or to install their noarch packages to the new location.


* Release engineering: [https://pagure.io/releng/issues #Releng issue number] (a check of an impact with Release Engineering is needed) <!-- REQUIRED FOR SYSTEM WIDE AS WELL AS FOR SELF CONTAINED CHANGES -->
* Release engineering: [https://pagure.io/releng/issue/6685 #6685] (a check of an impact with Release Engineering is needed) <!-- REQUIRED FOR SYSTEM WIDE AS WELL AS FOR SELF CONTAINED CHANGES -->
<!-- Does this feature require coordination with release engineering (e.g. changes to installer image generation or update package delivery)?  Is a mass rebuid required?  include a link to the releng issue.  
<!-- Does this feature require coordination with release engineering (e.g. changes to installer image generation or update package delivery)?  Is a mass rebuid required?  include a link to the releng issue.  
The issue is required to be filed prior to feature submission, to ensure that someone is on board to do any process development work and testing, and that all changes make it into the pipeline; a bullet point in a change is not sufficient communication -->
The issue is required to be filed prior to feature submission, to ensure that someone is on board to do any process development work and testing, and that all changes make it into the pipeline; a bullet point in a change is not sufficient communication -->
Line 163: Line 161:
-->
-->


[[Category:ChangePageIncomplete]]
[[Category:ChangeReadyForWrangler]]
<!-- When your change proposal page is completed and ready for review and announcement -->
<!-- When your change proposal page is completed and ready for review and announcement -->
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->

Revision as of 02:22, 6 March 2017


Changes/TrueNoarchErlangPackages

Summary

Erlang packages are currently all installed into %{_libdir}/erlang/lib, despite most of them being noarch packages. This proposal is to modify Erlang to search %{_datadir}/erlang/lib in addition to %{_libdir}/erlang/lib when searching for dependencies.


Owner

  • Name: Randy Barlow
  • Email: bowlofeggs@fedoraproject.org
  • Release notes owner:
  • Responsible WG: erlang-sig


Current status

  • Targeted release: Fedora 27
  • Last updated: 2017-03-06
  • Tracker bug: <will be assigned by the Wrangler>

Detailed Description

The Erlang VM is currently hardcoded to search for dependencies in %{_libdir}/erlang/lib (on x86_64 this is /usr/lib64/erlang/lib). Due to this, all Erlang packages are currently compiled "archful", despite most of them being pure Erlang and thus truly noarch. This leads to longer build times for Erlang packages, and more storage used in Koji and on the mirrors.

This change proposes to add an additional path to be searched by the Erlang VM when finding dependencies at %{_datadir}/erlang/lib (on x86_64 this is /usr/share/erlang/lib). Additionally, the build macros will be udpated to automatically use this new path for installation for noarch packages. "Archful" packages will continue to store their files where they do today.

Benefit to Fedora

This will allow noarch Erlang packages to be built once rather than being built for each architecture, reduce build time, and will reduce the amount of storage used in Koji and on our mirrors.


Scope

  • Proposal owners:
    • Write a small patch for the Erlang VM to search two paths instead of one when loading dependencies. We will attempt to get this patch accepted upstream first, but we will then carry the patch downstream until accepted by upstream.
    • Modify the Erlang RPM macros to use the new path for noarch packages.
  • Other developers: N/A (not a System Wide Change)
    • Any developers who are not using the Erlang install RPM macro should modify their spec file to either use the macro, or to install their noarch packages to the new location.
  • Release engineering: #6685 (a check of an impact with Release Engineering is needed)
    • We could mass-rebuild Erlang packages, but everything should keep working without doing a mass rebuild so it is probably not necessary or worthwhile, unless we want to more immediately clear up a little disk space. The recommendation is to wait until the next mass rebuild since there will be no interruptions for existing packages, i.e., no effort required from Releng.
  • Trademark approval: N/A (not needed for this Change)


Upgrade/compatibility impact

All Erlang packages should continue to work, even ones that are not rebuilt.


How To Test

Erlang packages that are installed to /usr/share/erlang/lib should continue to work. noarch packages built with the new RPM macros should install their content to /usr/share, and archful packages should continue to install to %{_libdir} as they do today.


User Experience

Users are not expected to notice this change, unless they are Erlang developers in which case they may notice that the noarch packages have moved to a new location.


Dependencies

This change does not depend on any other changes, or any other packages outside of the Erlang vm and the RPM macros. All packages that depend on Erlang and the RPM macros will continue to work correctly even if they are not updated to install to the new location, though it will be recommended that they update to use the new path once this effort is complete.


Contingency Plan

  • Contingency mechanism: (What to do? Who will do it?) Revert the change to Erlang
  • Contingency deadline: F27 Beta Freeze
  • Blocks release? No
  • Blocks product? N/A

Documentation

No documentation outside of this proposal. Changes to the WIP packaging guidelines are part of the proposal, and will serve as documentation.


Release Notes