rosa-release/rosa-release.spec
2012-06-19 00:24:30 +04:00

223 lines
5.7 KiB
RPMSpec

# Please update release notes:
# make -C SOURCES release-notes.{html,txt}
#
%define distrib Desktop
%define version 2012.1
%define rel 4
%define distname rosa
%define distsuffix rosa
%define distribution ROSA Linux
%define product_vendor ROSA Adin Ananas
%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: %version
Release: %mkrel %rel
License: GPL
URL: http://www.rosalinux.com/
Group: System/Configuration/Other
Source: %name.tar.bz2
Source3: CREDITS
# edited lynx -dump of wiki:
Source4: release-notes.txt
Source5: release-notes.html
BuildRoot: %{_tmppath}/%{name}-root
%description
ROSA Linux release file.
%package common
Summary: ROSA release common files
Group: System/Configuration/Other
Conflicts: %name < %version-%release
Obsoletes: rosa-release-Discovery rosa-release-Powerpack+
Obsoletes: %name < %version-%release
Obsoletes: rawhide-release redhat-release mandrake-release mandrakelinux-release
# cf mdvbz#32631
Provides: arch(%{_target_cpu})
Provides: rosa-release-common
%description common
Common files for ROSA Linux 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 = %version-%release \
%define release_descr(s) \
%description %{-s:%1} \
ROSA Linux release file for %1 flavor. \
%define release_post(s) \
%post %{-s:%1} \
ln -fs product.id.%1 /etc/product.id
%define release_install(s) \
cat > %buildroot/etc/product.id.%{1} << EOF \
%{product_id_base},product=%1\
EOF\
\
mkdir -p %buildroot%_sys_macros_dir \
cat > %buildroot%_sys_macros_dir/%{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\
\
# 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 -n %{name}
cp -a %SOURCE3 CREDITS
cp -a %SOURCE4 release-notes.txt
cp -a %SOURCE5 release-notes.html
cat > README.urpmi <<EOF
This is ROSA Linux %version
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
rm -rf $RPM_BUILD_ROOT
mkdir -p %buildroot/etc
echo "ROSA Linux release %{realversion} (%{distrib}) for %{_target_cpu}" > $RPM_BUILD_ROOT/etc/rosa-release
ln -sf rosa-release $RPM_BUILD_ROOT/etc/redhat-release
ln -sf rosa-release $RPM_BUILD_ROOT/etc/mandrake-release
ln -sf rosa-release $RPM_BUILD_ROOT/etc/release
ln -sf rosa-release $RPM_BUILD_ROOT/etc/mandriva-release
ln -sf rosa-release $RPM_BUILD_ROOT/etc/mandrakelinux-release
echo "%{version}.0 %{rel} %{distname}" > $RPM_BUILD_ROOT/etc/version
mkdir -p %buildroot%_sysconfdir/profile.d
cat > %buildroot%_sysconfdir/profile.d/10rosa-release.csh<<'EOF'
if ( -r /etc/sysconfig/system ) then
eval `sed 's|^#.*||' /etc/sysconfig/system | sed 's|\([^=]*\)=\([^=]*\)|set \1=\2|g' | sed 's|$|;|' `
setenv META_CLASS $META_CLASS
else
setenv META_CLASS unknown
endif
EOF
cat > %buildroot%_sysconfdir/profile.d/10rosa-release.sh<<'EOF'
if [ -r /etc/sysconfig/system ]; then
. /etc/sysconfig/system
export META_CLASS
else
export META_CLASS=unknown
fi
EOF
%release_install Free
%release_install EE EE
touch %buildroot%_sysconfdir/product.id
%clean
rm -rf $RPM_BUILD_ROOT
%release_post -s Free
%release_post -s EE
%define release_files(s:) \
%files %{-s:%{-s*}} \
%defattr(-,root,root) \
%_sys_macros_dir/%{1}.macros \
/etc/product.id.%1 \
%ghost /etc/product.id\
\
%release_files -s Free Free
%release_files -s EE EE
%files common
%defattr(-,root,root)
%doc CREDITS distro.txt README.urpmi release-notes.*
/etc/mandrake-release
/etc/mandriva-release
/etc/mandrakelinux-release
/etc/redhat-release
/etc/rosa-release
/etc/release
/etc/version
/etc/profile.d/10rosa-release.sh
/etc/profile.d/10rosa-release.csh
%config(noreplace) %verify(not md5 size mtime) %_sysconfdir/sysconfig/system
%changelog
* Wed May 23 2012 Alex Burmashev <alex.burmashev@rosalab.ru> 2012.0-1
- Initial import