rosa-release/rosa-release.spec
Andrey Bondrov f7d137a063 Bump release
2014-12-04 22:09:43 +10:00

219 lines
6.2 KiB
RPMSpec

# Please update release notes:
# make -C SOURCES release-notes.{html,txt}
#
%define distrib Desktop
%define distname rosa
%define distsuffix rosa
%define distribution ROSA Desktop Fresh R5
%define product_vendor ROSA
%define product_distribution %{distribution}
%define product_type Basic
%define product_version %{version}
%define product_branch Official
%define product_release 1
%define product_arch %{_target_cpu}
%define product_id_base vendor=%{product_vendor},distribution=%{product_distribution},type=%{product_type},version=%{product_version},branch=%{product_branch},release=%{product_release},arch=%{product_arch}
%define rosa_release %{version}
%define rosa_branch %{distrib}
%define rosa_arch %{_target_cpu}
%define rosa_os %{_target_os}
%define realversion %{version}
%define mdkver %(echo %{version} | sed 's/\\.//')0
Summary: ROSA release file
Name: rosa-release
Version: 2014.1
Release: 6
License: GPLv2+
Group: System/Configuration/Other
Url: http://www.rosalinux.com/
Source3: CREDITS
Source4: release-notes.txt
Source5: distro.txt
Source6: 10rosa-release.sh
Source7: 10rosa-release.csh
%description
ROSA Desktop release file.
%package common
Summary: ROSA release common files
Group: System/Configuration/Other
Requires: lsb-release
# cf mdvbz#32631
Provides: arch(%{_target_cpu})
Provides: rosa-release-common = %{EVRD}
Provides: mandriva-release-common = %{EVRD}
%description common
Common files for ROSA Desktop release packages.
%define release_package(s) \
%{-s:%package %1} \
Summary: ROSA release file%{?1: for %1} \
Group: System/Configuration/Other \
Requires: rosa-release-common \
Requires(post): coreutils \
Provides: redhat-release rawhide-release mandrake-release mandriva-release mandrakelinux-release rosa-release \
Provides: %{name} = %{EVRD} \
%define release_descr(s) \
%description %{-s:%1} \
ROSA Desktop release file for %1 flavor. \
%define release_post(s) \
%post %{-s:%1} \
ln -fs product.id.%1 %{_sysconfdir}/product.id
%define release_install(s) \
cat > %{buildroot}%{_sysconfdir}/product.id.%{1} << EOF \
%{product_id_base},product=%1\
EOF\
\
mkdir -p %{buildroot}%{_sysconfdir}/rpm/macros.d \
cat > %{buildroot}%{_sysconfdir}/rpm/macros.d/%{1}.macros <<EOF \
%%distribution %distribution\
%%rosa_release %rosa_release\
%%rosa_branch %rosa_branch\
%%rosa_arch %rosa_arch\
%%rosa_os %rosa_os\
%%rosa_class %%(. %{_sysconfdir}/sysconfig/system; echo \\\$META_CLASS)\
%%mdkver %mdkver\
%%mdvver %mdkver\
%%distsuffix %distsuffix\
%%mandriva_release %%rosa_release\
%%mandriva_branch %%rosa_branch\
%%mandriva_arch %%rosa_arch\
%%mandriva_os %%rosa_os\
%%mandriva_class %%rosa_class\
\
# productid variable\
%%product_id %{product_id_base},product=%{1}\
\
%%product_vendor %product_vendor\
%%product_distribution %product_distribution\
%%product_type %product_type\
%%product_version %product_version\
%%product_branch %product_branch\
%%product_release %product_release\
%%product_arch %product_arch\
%%product_product %1\
\
%{?unstable}\
EOF\
\
mkdir -p %{buildroot}%{_sysconfdir}/sysconfig \
cat > %{buildroot}%{_sysconfdir}/sysconfig/system <<EOF \
SECURITY=3\
CLASS=beginner\
LIBSAFE=no\
META_CLASS=download\
EOF\
%release_package -s Free
Conflicts: rosa-release-EE
%release_package -s EE
Conflicts: rosa-release-Free
%release_descr -s Free
%release_descr -s EE
%prep
%setup -q -T -c
cp -a %{SOURCE3} CREDITS
cp -a %{SOURCE4} release-notes.txt
cp -a %{SOURCE5} distro.txt
cat > README.urpmi <<EOF
This is ROSA Desktop Fresh R5
You can find the release notes in %{_docdir}/%{name}-common/release-notes.txt
or on the web at http://wiki.rosalab.ru
EOF
# check that CREDITS file is in UTF-8, fail otherwise
if iconv -f utf-8 -t utf-8 < CREDITS > /dev/null
then
true
else
echo "the CREDITS file *MUST* be encoded in UTF-8"
echo "please fix it before continuing"
false
fi
%install
mkdir -p %{buildroot}%{_sysconfdir}
echo "ROSA Desktop Fresh R5 release %{version} for %{_target_cpu}" > %{buildroot}%{_sysconfdir}/rosa-release
ln -sf rosa-release %{buildroot}%{_sysconfdir}/redhat-release
ln -sf rosa-release %{buildroot}%{_sysconfdir}/mandrake-release
ln -sf rosa-release %{buildroot}%{_sysconfdir}/release
ln -sf rosa-release %{buildroot}%{_sysconfdir}/mandriva-release
ln -sf rosa-release %{buildroot}%{_sysconfdir}/mandrakelinux-release
ln -sf rosa-release %{buildroot}%{_sysconfdir}/system-release
echo "%{version}.0 %{rel} %{distname}" > %{buildroot}%{_sysconfdir}/version
cp -p %{buildroot}%{_sysconfdir}/rosa-release %{buildroot}%{_sysconfdir}/issue
echo "Kernel \r on an \m (\l)" >> %{buildroot}%{_sysconfdir}/issue
cp -p %{buildroot}%{_sysconfdir}/issue %{buildroot}%{_sysconfdir}/issue.net
echo >> %{buildroot}%{_sysconfdir}/issue
mkdir -p %{buildroot}%{_sysconfdir}/profile.d
# (tpg) follow standard specifications http://0pointer.de/blog/projects/os-release
cat > %{buildroot}%{_sysconfdir}/os-release << EOF
NAME="%{distribution}"
VERSION="%{product_product} %{realversion} %{distrib}"
ID=rosa
VERSION_ID=%{realversion}
PRETTY_NAME="%{distribution} %{product_product} %{realversion} %{distrib}"
ANSI_COLOR="1;43"
CPE_NAME="cpe:/o:rosa:rosalinux:%{realversion}"
HOME_URL="http://www.rosalinux.com/"
BUG_REPORT_URL="https://bugs.rosalinux.com/"
EOF
cp -f %{SOURCE6} %{buildroot}%{_sysconfdir}/profile.d/
cp -f %{SOURCE7} %{buildroot}%{_sysconfdir}/profile.d/
%release_install Free
%release_install EE
%release_post -s Free
%release_post -s EE
%define release_files(s:) \
%files %{-s:%{-s*}} \
%{_sysconfdir}/rpm/macros.d/%{1}.macros \
%{_sysconfdir}/product.id.%1 \
\
%release_files -s Free Free
%release_files -s EE EE
%files common
%doc CREDITS distro.txt README.urpmi release-notes.*
%{_sysconfdir}/mandrake-release
%{_sysconfdir}/mandriva-release
%{_sysconfdir}/mandrakelinux-release
%{_sysconfdir}/redhat-release
%{_sysconfdir}/rosa-release
%{_sysconfdir}/release
%{_sysconfdir}/system-release
%{_sysconfdir}/version
%{_sysconfdir}/os-release
%{_sysconfdir}/profile.d/10rosa-release.sh
%{_sysconfdir}/profile.d/10rosa-release.csh
%config(noreplace) %{_sysconfdir}/issue
%config(noreplace) %{_sysconfdir}/issue.net
%config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/sysconfig/system