No edit summary |
|||
Line 4: | Line 4: | ||
== How to package a PreupgradeAssistant contents == | == How to package a PreupgradeAssistant contents == | ||
Content as a subpackage of main package should be installed in GIT in directory '''preupgrade'''. | |||
== Naming guidelines == | == Naming guidelines == | ||
Line 21: | Line 22: | ||
== Macros == | == Macros == | ||
* The macro denoting the parent directory where the package files go is <code>%{ | * The macro denoting the parent directory where the package files go is <code>%{preupgradedir}</code>. This currently expands to <code>/usr/share/preupgrade</code>. | ||
== Build section == | == Build section == | ||
Line 27: | Line 28: | ||
== Install section == | == Install section == | ||
All files from '''preupgrade''' directory should be installed into | |||
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 section == | ||
Line 45: | Line 49: | ||
== Sample SPEC == | == Sample SPEC == | ||
Snapshot of mariadb.spec | |||
<pre> | <pre> | ||
%global preupg_number 22 #System from which we are going to do an upgrade | |||
%global postupg_number 23 # Target system | |||
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}/ | |||
</pre> | </pre> |
Revision as of 08:38, 22 January 2015
PreupgradeAssistant contents Packaging guidelines
How to package a PreupgradeAssistant contents
Content as a subpackage of main package should be installed in GIT in directory preupgrade.
Naming guidelines
Every Preupgrade Assistant content package must start with preupgrade-assistant-contents which is followed by original package name all lowercase.
For example preupgrade assistant package name mariadb will be named preupgrade-assistant-contents-mariadb in the SPEC file.
Dependencies
- All packages must Require
preupgrade-assistant
. - All packages must have
BuildRequires: preupgrade-assistant-devel
. (for macros and checking)
Architecture
- All preupgrade-assistant-contents must be architecture independent, i. e.
BuildArch: noarch
.
Macros
- The macro denoting the parent directory where the package files go is
%{preupgradedir}
. This currently expands to/usr/share/preupgrade
.
Build section
Nothing special
Install section
All files from preupgrade directory should be installed into
mkdir -p ${buildroot}%{preupgrade_dir}/Fedora%{preupg_number}_%{postupg_number}/%{name} cp preupgrade/* ${buildroot}%{preupgrade_dir}/Fedora%{preupg_number}_%{postupg_number}/%{name}/
Check section
- You must run %check_preupgrade in check section and it must pass.
%check_preupgrade %{preupgradedir}/Fedora%{preupg_number}_%{postupg_number}/
Files section
- Preupgrade Assistant files and directories are installed into
%dir %{preupgrade_dir}/Fedora%{preupg_number}_%{postupg_number}/%{name}
- All files except text files should be installed like
%{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 installed via
%doc %{preupgrade_dir}/Fedora%{preupg_number}_%{postupg_number}/%{name}/*.txt
Directory ownership
Sample SPEC
Snapshot of mariadb.spec
%global preupg_number 22 #System from which we are going to do an upgrade %global postupg_number 23 # Target system 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}/