No edit summary |
(my two cents) |
||
Line 1: | Line 1: | ||
{{admon/warning|This is a DRAFT.}} | {{admon/warning|This is a DRAFT.}} | ||
= | = Preupgrade Assistant contents Packaging guidelines = | ||
== How to package a | == How to package a Preupgrade Assistant contents == | ||
Contents files are | Contents files are packaged as a subpackage of main ''preupgrade-assistant'' package. | ||
== Naming guidelines == | == Naming guidelines == | ||
Every Preupgrade Assistant content | Every Preupgrade Assistant content subpackage name must start with ''preupgrade-assistant-contents-'' followed by original package name. | ||
For example | For example Preupgrade Assistant content subpackage for ''mariadb'' will be named ''preupgrade-assistant-contents-mariadb''. | ||
== Dependencies == | == Dependencies == | ||
* All packages must have | |||
* All packages must | Requires: preupgrade-assistant | ||
BuildRequires: preupgrade-assistant-devel | |||
Devel package contains macros and contents validating check script. | |||
== Architecture == | == Architecture == | ||
* All ''preupgrade-assistant-contents-*'' subpackages must be architecture independent, i.e. have <code>BuildArch: noarch</code>. | |||
* All preupgrade-assistant-contents must be architecture independent, i. e. <code>BuildArch: noarch</code>. | |||
== Macros == | == Macros == | ||
* Macro denoting the parent directory where the package files go is <code>%{preupgrade_dir}</code>. This currently expands to <code>/usr/share/preupgrade</code>. | |||
* | * Macro <code>%{preupg_number}</code> means source release from which the system is going to be upgraded, e.g. Fedora 22. | ||
* | * Macro <code>%{postupg_number}</code> means target release to which the system is going to be upgraded, e.g. Fedora 23. | ||
* | |||
== Build section == | == Build section == | ||
N/A | |||
== Install section == | == Install section == | ||
All files from | All files from ''preupgrade'' directory should be installed with | ||
%install | |||
... | |||
mkdir -p ${buildroot}%{preupgrade_dir}/Fedora%{preupg_number}_%{postupg_number}/%{name} | mkdir -p ${buildroot}%{preupgrade_dir}/Fedora%{preupg_number}_%{postupg_number}/%{name} | ||
cp preupgrade/* ${buildroot}%{preupgrade_dir}/Fedora%{preupg_number}_%{postupg_number}/%{name}/ | cp preupgrade/* ${buildroot}%{preupgrade_dir}/Fedora%{preupg_number}_%{postupg_number}/%{name}/ | ||
== Check section == | == Check section == | ||
* | * %check_preupgrade needs to be run in %check section. | ||
%check_preupgrade %{ | %check | ||
%check_preupgrade %{preupgrade_dir}/Fedora%{preupg_number}_%{postupg_number}/ | |||
== Files section == | == Files section == | ||
* Preupgrade Assistant files and directories | * Directory where Preupgrade Assistant installs files and directories must be owned by the subpackage | ||
%files | |||
... | |||
%dir %{preupgrade_dir}/Fedora%{preupg_number}_%{postupg_number}/%{name} | %dir %{preupgrade_dir}/Fedora%{preupg_number}_%{postupg_number}/%{name} | ||
* All files except text files should be | * All files except text files should be listed like | ||
%files | |||
... | |||
%{preupgrade_dir}/Fedora%{preupg_number}_%{postupg_number}/%{name}/*.{sh,py} | %{preupgrade_dir}/Fedora%{preupg_number}_%{postupg_number}/%{name}/*.{sh,py} | ||
%{preupgrade_dir}/Fedora%{preupg_number}_%{postupg_number}/%{name}/*.ini | %{preupgrade_dir}/Fedora%{preupg_number}_%{postupg_number}/%{name}/*.ini | ||
* All text files from content should be | * All text files from content should be listed via | ||
%files | |||
... | |||
%doc %{preupgrade_dir}/Fedora%{preupg_number}_%{postupg_number}/%{name}/*.txt | %doc %{preupgrade_dir}/Fedora%{preupg_number}_%{postupg_number}/%{name}/*.txt | ||
== Directory ownership == | == Directory ownership == | ||
Directories <code>%{preupgrade_dir}</code> and | |||
<code>%{preupgrade_dir}/Fedora%{preupg_number}_%{postupg_number}</code> | |||
are owned by package ''preupgrade-assistant'' itself. | |||
== Sample SPEC == | == Sample SPEC == |
Revision as of 13:58, 22 January 2015
Preupgrade Assistant contents Packaging guidelines
How to package a Preupgrade Assistant contents
Contents files are packaged as a subpackage of main preupgrade-assistant package.
Naming guidelines
Every Preupgrade Assistant content subpackage name must start with preupgrade-assistant-contents- followed by original package name.
For example Preupgrade Assistant content subpackage for mariadb will be named preupgrade-assistant-contents-mariadb.
Dependencies
- All packages must have
Requires: preupgrade-assistant BuildRequires: preupgrade-assistant-devel
Devel package contains macros and contents validating check script.
Architecture
- All preupgrade-assistant-contents-* subpackages must be architecture independent, i.e. have
BuildArch: noarch
.
Macros
- Macro denoting the parent directory where the package files go is
%{preupgrade_dir}
. This currently expands to/usr/share/preupgrade
. - Macro
%{preupg_number}
means source release from which the system is going to be upgraded, e.g. Fedora 22. - Macro
%{postupg_number}
means target release to which the system is going to be upgraded, e.g. Fedora 23.
Build section
N/A
Install section
All files from preupgrade directory should be installed with
%install ... mkdir -p ${buildroot}%{preupgrade_dir}/Fedora%{preupg_number}_%{postupg_number}/%{name} cp preupgrade/* ${buildroot}%{preupgrade_dir}/Fedora%{preupg_number}_%{postupg_number}/%{name}/
Check section
- %check_preupgrade needs to be run in %check section.
%check %check_preupgrade %{preupgrade_dir}/Fedora%{preupg_number}_%{postupg_number}/
Files section
- Directory where Preupgrade Assistant installs files and directories must be owned by the subpackage
%files ... %dir %{preupgrade_dir}/Fedora%{preupg_number}_%{postupg_number}/%{name}
- All files except text files should be listed like
%files ... %{preupgrade_dir}/Fedora%{preupg_number}_%{postupg_number}/%{name}/*.{sh,py} %{preupgrade_dir}/Fedora%{preupg_number}_%{postupg_number}/%{name}/*.ini
- All text files from content should be listed via
%files ... %doc %{preupgrade_dir}/Fedora%{preupg_number}_%{postupg_number}/%{name}/*.txt
Directory ownership
Directories %{preupgrade_dir}
and
%{preupgrade_dir}/Fedora%{preupg_number}_%{postupg_number}
are owned by package preupgrade-assistant itself.
Sample SPEC
Snapshot of mariadb.spec
Name: mariadb Version: %{compatver}.%{bugfixver} Release: 4%{?with_debug:.debug}%{?dist} Epoch: 1 Summary: A community developed branch of MySQL Group: Applications/Databases URL: http://mariadb.org # Exceptions allow client libraries to be linked with most open source SW, # not only GPL code. See README.mysql-license License: GPLv2 with exceptions and LGPLv2 and BSD Source0: http://mirrors.syringanetworks.net/mariadb/mariadb-%{version}/source/mariadb-%{version}.tar.gz SourceX: mariadb.ini SourceY: mariadb.sh SourceZ: mariadb.txt %package -n preupgrade-assistant-contents-%{name} BuildRequires: preupgrade-assistant-devel Requires: preupgrade-assistant %description -n preupgrade-assistant-contents-%{name} The content is used for assessment before upgrading major release via fedup. %prep # Copy all content files to %{preupgrade_dir} mkdir -p preupgrade cp %{SOURCEX} preupgrade/%{SOURCEX} cp %{SOURCEY} preupgrade/%{SOURCEY} cp %{SOURCEZ} preupgrade/%{SOURCEZ} %install mkdir -p %{buildroor}%{preupgrade_dir}/Fedora%{preupg_number}_%{postupg_number}/%{name} cp preupgrade/* %{buildroor}%{preupgrade_dir}/Fedora%{preupg_number}_%{postupg_number}/%{name}/ %check %check_preupg %{buildroor}%{preupgrade_dir}/Fedora%{preupg_number}_%{postupg_number}/ %files -n preupgrade-assistant-contents-%{name} %dir %{preupgrade_dir}/Fedora%{preupg_number}_%{postupg_number}/%{name} %doc %{preupgrade_dir}/Fedora%{preupg_number}_%{postupg_number}/%{name}/*.txt %{preupgrade_dir}/Fedora%{preupg_number}_%{postupg_number}/%{name}/*.{py,sh} %{preupgrade_dir}/Fedora%{preupg_number}_%{postupg_number}/%{name}/*.ini