# scl-utils RPM macros # # Copyright (C) 2012 Red Hat, Inc. # Written by Jindrich Novy <jnovy@redhat.com>. %scl_package() %{expand:%{!?_root_prefix: %global pkg_name %1 %global scl_name %{scl} %global scl_prefix %{scl}- %global scl_runtime %{scl}-runtime %{!?_scl_prefix: %global _scl_prefix /opt/rh} %global _scl_scripts %{_scl_prefix}/%{scl} %global _scl_root %{_scl_prefix}/%{scl}/root %global _root_prefix %{_prefix} %global _root_exec_prefix %{_root_prefix} %global _root_bindir %{_exec_prefix}/bin %global _root_sbindir %{_exec_prefix}/sbin %global _root_libexecdir %{_exec_prefix}/libexec %global _root_datadir %{_prefix}/share %global _root_sysconfdir %{_sysconfdir} %global _root_sharedstatedir %{_prefix}/com %global _root_localstatedir %{_localstatedir} %global _root_libdir %{_exec_prefix}/%{_lib} %global _root_includedir %{_prefix}/include %global _root_infodir %{_datadir}/info %global _root_mandir %{_datadir}/man %global _root_initddir %{_sysconfdir}/rc.d/init.d %global _prefix %{_scl_root}/usr %global _exec_prefix %{_prefix} %global _bindir %{_exec_prefix}/bin %global _sbindir %{_exec_prefix}/sbin %global _libexecdir %{_exec_prefix}/libexec %global _datadir %{_prefix}/share %global _sysconfdir %{_scl_root}/etc %global _sharedstatedir %{_prefix}/com %global _localstatedir %{_scl_root}/var %global _libdir %{_exec_prefix}/%{_lib} %global _includedir %{_prefix}/include %global _infodir %{_datadir}/info %global _mandir %{_datadir}/man %global _docdir %{_datadir}/doc %global _defaultdocdir %{_docdir} %global scl_pkg_name %{scl}-%{pkg_name} %global __os_install_post %{expand: /usr/lib/rpm/brp-scl-compress %{_scl_root} %{!?__debug_package:/usr/lib/rpm/redhat/brp-strip %{__strip} /usr/lib/rpm/redhat/brp-strip-comment-note %{__strip} %{__objdump} } /usr/lib/rpm/redhat/brp-strip-static-archive %{__strip} /usr/lib/rpm/brp-scl-python-bytecompile %{__python} %{?_python_bytecompile_errors_terminate_build} %{_scl_root} %{!?__jar_repack:/usr/lib/rpm/redhat/brp-java-repack-jars} %{nil}} %global debug_package %{expand: %ifnarch noarch %global __debug_package 1 %package debuginfo Summary: Debug information for package %{name} Group: Development/Debug AutoReqProv: 0 Provides: scl-package(%scl) %description debuginfo This package provides debug information for package %{name}. Debug information is useful when developing applications that use this package or when debugging this package. %files debuginfo -f debugfiles.list %defattr(-,root,root) %endif %{nil}} BuildRequires: scl-utils-build } %{?scl_package_override:%scl_package_override} } %scl_require() %{_scl_prefix}/%1/enable, %1 %scl_require_package() %1-%2 %scl_files %{expand: %defattr(-,root,root,-) %dir %_scl_prefix %dir %attr(555,root,root) %{_scl_root} %dir %attr(555,root,root) %{_scl_scripts} %{_scl_scripts}/enable %{_root_sysconfdir}/scl/prefixes/%scl %{_scl_root}/bin %{_scl_root}/boot %{_scl_root}/dev %{_scl_root}/etc %{_scl_root}/home %{_scl_root}/lib %ifarch x86_64 ppc ppc64 sparc sparc64 s390 s390x %{_scl_root}/%{_lib} %endif %{_scl_root}/media %dir %{_scl_root}/mnt %ghost %config(missingok) %verify(not size md5 mode user link rdev group mtime) %{_scl_root}/mnt/cdrom %ghost %config(missingok) %verify(not size md5 mode user link rdev group mtime) %{_scl_root}/mnt/floppy %dir %{_scl_root}/opt %attr(555,root,root) %{_scl_root}/proc %attr(750,root,root) %{_scl_root}/root %{_scl_root}/sbin %{_scl_root}/selinux %{_scl_root}/srv %{_scl_root}/sys %attr(1777,root,root) %{_scl_root}/tmp %dir %{_scl_root}/usr %{_scl_root}/usr/[^s]* %{_scl_root}/usr/sbin %dir %{_scl_root}/usr/share %{_scl_root}/usr/share/applications %{_scl_root}/usr/share/doc %{_scl_root}/usr/share/dict %{_scl_root}/usr/share/games %attr(555,root,root) %dir %{_scl_root}/usr/share/empty %{_scl_root}/usr/share/info %dir %{_scl_root}/usr/share/locale %dir %{_scl_root}/usr/share/man %{_scl_root}/usr/share/misc %{_scl_root}/usr/share/pixmaps %{_scl_root}/usr/share/xsessions %{_scl_root}/usr/src %dir %{_scl_root}/var %{_scl_root}/var/db %{_scl_root}/var/games %{_scl_root}/var/lib %{_scl_root}/var/local %dir %attr(0775,root,lock) %{_scl_root}/var/lock %attr(755,root,root) %{_scl_root}/var/lock/subsys %{_scl_root}/var/cache %{_scl_root}/var/empty %{_scl_root}/var/log %{_scl_root}/var/mail %{_scl_root}/var/nis %{_scl_root}/var/opt %{_scl_root}/var/preserve %{_scl_root}/var/run %dir %{_scl_root}/var/spool %attr(755,root,root) %{_scl_root}/var/spool/lpd %attr(775,root,mail) %{_scl_root}/var/spool/mail %attr(1777,root,root) %{_scl_root}/var/tmp %{_scl_root}/var/yp } %scl_install %{expand: # scl specific stuff mkdir -p %{buildroot}%{_root_sysconfdir}/{rpm,scl/prefixes} echo -n '%' > %{buildroot}%{_root_sysconfdir}/rpm/macros.%{scl}-config cat >> %{buildroot}%{_root_sysconfdir}/rpm/macros.%{scl}-config << EOF scl %scl EOF cat >> %{buildroot}%{_root_sysconfdir}/scl/prefixes/%{scl} << EOF %_scl_prefix EOF # filesystem set +x cat >> %{buildroot}/lang-exceptions << EOF af_ZA am_ET ast_ES az_IR bn_IN ca@valencia ca_ES ca_ES@valencian cs_CZ de_AT de_CH de_DE default el_GR en_AU en_CA en_GB en_US es_AR es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_SV es_UY es_VE et_EE eu_ES fa_IR fr_BE fr_CA fr_CH fr_FR he_IL hr_HR hu_HU it_CH it_IT ja_JP ko_KR ks@devanagari my_MM nb_NO nds_DE nl_BE nl_NL pl_PL pt_BR pt_PT ru_RU sl_SI sq_AL sv_SE uk_UA ur_PK zh_CN zh_HK zh_TW zh_TW.Big5 zh_CN.GB2312 en@boldquot en@quot nds@NFE sr@ije sr@latin sr@Latn uz@cyrillic uz@Latn be@latin EOF mkdir -p %{buildroot}%{_scl_root} pushd %{buildroot}%{_scl_root} mkdir -p mnt/{floppy,cdrom} \\ bin boot dev \\ etc/{X11/{applnk,sysconfig,serverconfig},opt,xinetd.d,skel,sysconfig,pki} \\ home lib/modules media mnt opt proc root sbin selinux srv sys tmp \\ usr/{bin,etc,games,include,lib/{games,gcc-lib,locale,X11},libexec,local/{bin,etc,games,lib,sbin,src,share/{man/man{1,2,3,4,5,6,7,8,9,n,1x,2x,3x,4x,5x,6x,7x,8x,9x},info},libexec,include,},sbin,share/{applications,doc,dict,games,info,icons,man/man{1,2,3,4,5,6,7,8,9,n,1x,2x,3x,4x,5x,6x,7x,8x,9x,0p,1p,3p},doc,misc,empty,pixmaps,xsessions},src/{debug,kernels}} \\ var/{empty,lib/{games,misc},local,lock/subsys,log,nis,preserve,run,spool/{mail,lpd},tmp,db,cache,opt,games,yp} %ifarch x86_64 ppc ppc64 sparc sparc64 s390 s390x mkdir -p %{_lib}/tls mkdir -p usr/{%{_lib}/{games,gcc-lib,sse2,tls,X11},local/%{_lib}} %endif ln -snf ../var/tmp usr/tmp ln -snf spool/mail var/mail grep -v "^$" /usr/share/iso-codes/iso_639.tab | grep -v "^#" | while read a b c d ; do [[ "$d" =~ "^Reserved" ]] && continue [[ "$d" =~ "^No linguistic" ]] && continue locale=$c if [ "$locale" = "XX" ]; then locale=$b fi echo "%lang(${locale}) %{_scl_root}/usr/share/locale/${locale}" >> $RPM_BUILD_DIR/filelist echo "%lang(${locale}) %ghost %config(missingok) %{_scl_root}/usr/share/man/${locale}" >>$RPM_BUILD_DIR/filelist done cat %{buildroot}/lang-exceptions | grep -v "^#" | grep -v "^$" | while read loc ; do locale=$loc locality= special= [[ "$locale" =~ "@" ]] && locale=${locale%%%%@*} [[ "$locale" =~ "_" ]] && locality=${locale##*_} [[ "$locality" =~ "." ]] && locality=${locality%%%%.*} [[ "$loc" =~ "_" ]] || [[ "$loc" =~ "@" ]] || special=$loc if [ -n "$locality" ]; then grep -q "^$locality" /usr/share/iso-codes/iso_3166.tab || continue fi if [ -z "$special" ]; then egrep -q "[[:space:]]${locale%%_*}[[:space:]]" \\ /usr/share/iso-codes/iso_639.tab || continue fi echo "%%lang(${locale}) %{_scl_root}/usr/share/locale/${loc}" >> $RPM_BUILD_DIR/filelist echo "%%lang(${locale}) %%ghost %%config(missingok) %{_scl_root}/usr/share/man/${loc}" >> $RPM_BUILD_DIR/filelist done rm -f %{buildroot}/lang-exceptions cat $RPM_BUILD_DIR/filelist | grep "locale" | while read a b ; do mkdir -p -m 755 %{buildroot}/$b/LC_MESSAGES done cat $RPM_BUILD_DIR/filelist | grep "/share/man" | while read a b c d; do mkdir -p -m 755 %{buildroot}/$d/man{1,2,3,4,5,6,7,8,9,n,1x,2x,3x,4x,5x,6x,7x,8x,9x,0p,1p,3p} done for i in `echo man{1,2,3,4,5,6,7,8,9,n,1x,2x,3x,4x,5x,6x,7x,8x,9x,0p,1p,3p}`; do echo "%{_scl_root}/usr/share/man/$i" >>$RPM_BUILD_DIR/filelist done set -x popd }