Blame SOURCES/macros.scl-filesystem

da02d7
%scl_files %{expand:
da02d7
%defattr(-,root,root,-)
da02d7
%dir %_scl_prefix
da02d7
%dir %attr(555,root,root) %{_scl_root}
da02d7
%dir %attr(555,root,root) %{_scl_scripts}
da02d7
%{_scl_scripts}/enable
da02d7
%{_root_sysconfdir}/scl/prefixes/%scl
da02d7
%{_scl_root}/bin
da02d7
%attr(555,root,root) %{_scl_root}/boot
da02d7
%{_scl_root}/dev
da02d7
%dir %{_sysconfdir}
da02d7
%{_sysconfdir}/X11
da02d7
%{_sysconfdir}/xdg
da02d7
%{_sysconfdir}/opt
da02d7
%{_sysconfdir}/pm
da02d7
%{_sysconfdir}/xinetd.d
da02d7
%{_sysconfdir}/skel
da02d7
%{_sysconfdir}/sysconfig
da02d7
%{_sysconfdir}/pki
da02d7
%{_scl_root}/home
da02d7
%{_scl_root}/lib
da02d7
%ifarch x86_64 ppc ppc64 sparc sparc64 s390 s390x
da02d7
%{_scl_root}/%{_lib}
da02d7
%endif
da02d7
%{_scl_root}/media
da02d7
%dir %{_scl_root}/mnt
da02d7
%dir %{_scl_root}/opt
da02d7
%attr(555,root,root) %{_scl_root}/proc
da02d7
%attr(550,root,root) %{_scl_root}/root
da02d7
%{_scl_root}/run
da02d7
%{_scl_root}/sbin
da02d7
%{_scl_root}/srv
da02d7
%{_scl_root}/sys
da02d7
%attr(1777,root,root) %{_scl_root}/tmp
da02d7
%dir %{_scl_root}/usr
da02d7
%attr(555,root,root) %{_scl_root}/usr/bin
da02d7
%{_scl_root}/usr/etc
da02d7
%{_scl_root}/usr/games
da02d7
%{_scl_root}/usr/include
da02d7
%dir %attr(555,root,root) %{_scl_root}/usr/lib
da02d7
%ifarch x86_64 ppc ppc64 sparc sparc64 s390 s390x
da02d7
%attr(555,root,root) %{_scl_root}/usr/%{_lib}
da02d7
%endif
da02d7
%{_scl_root}/usr/libexec
da02d7
%{_scl_root}/usr/local
da02d7
%attr(555,root,root) %{_scl_root}/usr/sbin
da02d7
%dir %{_scl_root}/usr/share
da02d7
%{_scl_root}/usr/share/aclocal
da02d7
%{_scl_root}/usr/share/applications
da02d7
%{_scl_root}/usr/share/augeas
da02d7
%{_scl_root}/usr/share/backgrounds
da02d7
%{_scl_root}/usr/share/desktop-directories
da02d7
%{_scl_root}/usr/share/dict
da02d7
%{_scl_root}/usr/share/doc
da02d7
%attr(555,root,root) %dir %{_scl_root}/usr/share/empty
da02d7
%{_scl_root}/usr/share/games
da02d7
%{_scl_root}/usr/share/ghostscript
da02d7
%{_scl_root}/usr/share/gnome
da02d7
%{_scl_root}/usr/share/icons
da02d7
%{_scl_root}/usr/share/idl
da02d7
%{_scl_root}/usr/share/info
da02d7
%dir %{_scl_root}/usr/share/locale
da02d7
%dir %{_scl_root}/usr/share/man
da02d7
%{_scl_root}/usr/share/mime-info
da02d7
%{_scl_root}/usr/share/misc
da02d7
%{_scl_root}/usr/share/omf
da02d7
%{_scl_root}/usr/share/pixmaps
da02d7
%{_scl_root}/usr/share/sounds
da02d7
%{_scl_root}/usr/share/themes
da02d7
%{_scl_root}/usr/share/xsessions
da02d7
%{_scl_root}/usr/share/X11
da02d7
%{_scl_root}/usr/src
da02d7
%{_scl_root}/usr/tmp
da02d7
%dir %{_localstatedir}
da02d7
%{_localstatedir}/adm
da02d7
%{_localstatedir}/cache
da02d7
%{_localstatedir}/db
da02d7
%{_localstatedir}/empty
da02d7
%{_localstatedir}/games
da02d7
%{_localstatedir}/gopher
da02d7
%{_localstatedir}/lib
da02d7
%{_localstatedir}/local
da02d7
%ghost %dir %attr(755,root,root) %{_localstatedir}/lock
da02d7
%ghost %{_localstatedir}/lock/subsys
da02d7
%{_localstatedir}/log
da02d7
%{_localstatedir}/mail
da02d7
%{_localstatedir}/nis
da02d7
%{_localstatedir}/opt
da02d7
%{_localstatedir}/preserve
da02d7
%ghost %attr(755,root,root) %{_localstatedir}/run
da02d7
%dir %{_localstatedir}/spool
da02d7
%attr(755,root,root) %{_localstatedir}/spool/lpd
da02d7
%attr(775,root,mail) %{_localstatedir}/spool/mail
da02d7
%attr(1777,root,root) %{_localstatedir}/tmp
da02d7
%{_localstatedir}/yp
da02d7
}
da02d7
da02d7
%scl_install %{expand:
da02d7
# scl specific stuff
da02d7
mkdir -p %{buildroot}%{_root_sysconfdir}/{rpm,scl/prefixes}
da02d7
cat >> %{buildroot}%{_root_sysconfdir}/rpm/macros.%{scl}-config << EOF
da02d7
%%%%scl %scl
da02d7
%{?nfsmountable:%%%%nfsmountable %{nfsmountable}}
da02d7
%{!?nfsmountable:%%%%undefine nfsmountable}
da02d7
EOF
da02d7
cat >> %{buildroot}%{_root_sysconfdir}/scl/prefixes/%{scl} << EOF
da02d7
%_scl_prefix
da02d7
EOF
da02d7
# filelist
da02d7
set +x
da02d7
cat >> %{buildroot}/lang-exceptions << EOF
da02d7
af_ZA
da02d7
am_ET
da02d7
ast_ES
da02d7
az_IR
da02d7
bg_BG
da02d7
bn_IN
da02d7
ca@valencia
da02d7
ca_ES
da02d7
ca_ES@valencian
da02d7
cs_CZ
da02d7
de_AT
da02d7
de_CH
da02d7
de_DE
da02d7
default
da02d7
el_GR
da02d7
en_AU
da02d7
en_CA
da02d7
en_GB
da02d7
en_US
da02d7
en_NZ
da02d7
es_AR
da02d7
es_CL
da02d7
es_CO
da02d7
es_CR
da02d7
es_DO
da02d7
es_EC
da02d7
es_ES
da02d7
es_GT
da02d7
es_HN
da02d7
es_MX
da02d7
es_NI
da02d7
es_PA
da02d7
es_PE
da02d7
es_PR
da02d7
es_SV
da02d7
es_UY
da02d7
es_VE
da02d7
et_EE
da02d7
eu_ES
da02d7
fa_IR
da02d7
fi_FI
da02d7
fr_BE
da02d7
fr_CA
da02d7
fr_CH
da02d7
fr_FR
da02d7
gl_ES
da02d7
he_IL
da02d7
hr_HR
da02d7
hu_HU
da02d7
it_CH
da02d7
it_IT
da02d7
ja_JP
da02d7
ko_KR
da02d7
ks@devanagari
da02d7
lv_LV
da02d7
ms_MY
da02d7
my_MM
da02d7
nb_NO
da02d7
nds_DE
da02d7
nl_BE
da02d7
nl_NL
da02d7
pl_PL
da02d7
pt_BR
da02d7
pt_PT
da02d7
ru_RU
da02d7
sl_SI
da02d7
sq_AL
da02d7
sr_RS
da02d7
sv_SE
da02d7
uk_UA
da02d7
ur_PK
da02d7
zh_CN
da02d7
zh_CN.GB2312
da02d7
zh_HK
da02d7
zh_TW
da02d7
zh_TW.Big5
da02d7
en@boldquot
da02d7
en@quot
da02d7
nds@NFE
da02d7
sr@ije
da02d7
sr@ijekavian
da02d7
sr@ijekavianlatin
da02d7
sr@latin
da02d7
sr@Latn
da02d7
uz@cyrillic
da02d7
uz@Latn
da02d7
be@latin
da02d7
en@shaw
da02d7
brx
da02d7
brx_IN
da02d7
EOF
da02d7
cat >> %{buildroot}/iso_639.sed << EOF
da02d7
1,/
da02d7
# on each new iso-code process the current one
da02d7
\\!\\(<iso_639_entry\\|</iso_639_entries>\\)!{
da02d7
    x
da02d7
    s/^$//
da02d7
    # we are on the first iso-code--nothing to process here
da02d7
    t
da02d7
    # process and write to output
da02d7
    s/\\s\\+/ /g
da02d7
    s/
da02d7
    s!/\\s*>!!
da02d7
    # use '%' as a separator of parsed and unparsed input
da02d7
    s/\\(.*\\)iso_639_2T_code="\\([^"]\\+\\)"\\(.*\\)/\\2 % \\1 \\3/
da02d7
    s/\\([^%]\\+\\)%\\(.*\\)iso_639_2B_code="\\([^"]\\+\\)"\\(.*\\)/\\1\\t\\3 % \\2 \\4/
da02d7
    #  clear subst. memory for the next t
da02d7
    t clear
da02d7
    :clear
da02d7
    s/\\([^%]\\+\\)%\\(.*\\)iso_639_1_code="\\([^"]\\+\\)"\\(.*\\)/\\1\\t\\3 % \\2 \\4/
da02d7
    t name
da02d7
    # no 639-1 code--write xx
da02d7
    s/%/\\tXX %/
da02d7
    :name
da02d7
    s/\\([^%]\\+\\)%\\(.*\\)name="\\([^"]\\+\\)"\\(.*\\)/\\1\\t\\3/
da02d7
    s/ \\t/\\t/g
da02d7
    p
da02d7
    b
da02d7
    :noout
da02d7
}
da02d7
H
da02d7
EOF
da02d7
cat >> %{buildroot}/iso_3166.sed << EOF
da02d7
1,/
da02d7
# on each new iso-code process the current one
da02d7
\\!\\(<iso_3166_entry\\|</iso_3166_entries>\\)!{
da02d7
    x
da02d7
    s/^$//
da02d7
    # we are on the first iso-code--nothing to process here
da02d7
    t
da02d7
    # process and write to output
da02d7
    s/\\s\\+/ /g
da02d7
    s/
da02d7
    s!/\\s*>!!
da02d7
    # use '%' as a separator of parsed and unparsed input
da02d7
    s/\\(.*\\)alpha_2_code="\\([^"]\\+\\)"\\(.*\\)/\\2 % \\1 \\3/
da02d7
    s/\\([^%]\\+\\)%\\(.*\\)alpha_3_code="\\([^"]\\+\\)"\\(.*\\)/\\1% \\2 \\4/
da02d7
    #  clear subst. memory for the next t
da02d7
    t clear
da02d7
    :clear
da02d7
    s/\\([^%]\\+\\)%\\(.*\\)numeric_code="\\([^"]\\+\\)"\\(.*\\)/\\1% \\2 \\4/
da02d7
    t name
da02d7
    # no 3166 code--write xx
da02d7
    s/%/\\tXX %/
da02d7
    :name
da02d7
    s/\\([^%]\\+\\)%\\(.*\\)name="\\([^"]\\+\\)"\\(.*\\)/\\1\\t\\3/
da02d7
    s/ \\t/\\t/g
da02d7
    p
da02d7
    b
da02d7
    :noout
da02d7
}
da02d7
H
da02d7
EOF
da02d7
mkdir -p %{buildroot}%{_localstatedir}
da02d7
pushd  %{buildroot}%{_localstatedir}
da02d7
mkdir -p {adm,empty,gopher,lib/{games,misc,rpm-state},local,lock/subsys,log,nis,preserve,run,spool/{mail,lpd,uucp},tmp,db,cache,opt,games,yp}
da02d7
popd
da02d7
mkdir -p %{buildroot}%{_sysconfdir}
da02d7
pushd %{buildroot}%{_sysconfdir}
da02d7
mkdir -p {X11/{applnk,fontpath.d},xdg/autostart,opt,pm/{config.d,power.d,sleep.d},xinetd.d,skel,sysconfig,pki}
da02d7
popd
da02d7
mkdir -p %{buildroot}%{_scl_root}
da02d7
rm -f $RPM_BUILD_DIR/%{buildsubdir}/filelist
da02d7
rm -f $RPM_BUILD_DIR/%{buildsubdir}/filesystem
da02d7
pushd %{buildroot}%{_scl_root}
da02d7
mkdir -p boot dev \\
da02d7
        home media mnt opt proc root run/lock srv sys tmp \\
da02d7
        usr/{bin,etc,games,include,lib/{games,locale,modules,sse2},libexec,local/{bin,etc,games,lib,sbin,src,share/{applications,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/{aclocal,applications,augeas/lenses,backgrounds,desktop-directories,dict,doc,empty,games,ghostscript/conf.d,gnome,icons,idl,info,man/man{1,2,3,4,5,6,7,8,9,n,1x,2x,3x,4x,5x,6x,7x,8x,9x,0p,1p,3p},mime-info,misc,omf,pixmaps,sounds,themes,xsessions,X11},src,src/kernels,src/debug}
da02d7
%ifarch x86_64 ppc ppc64 sparc sparc64 s390 s390x
da02d7
mkdir -p usr/{%{_lib}/{games,sse2,tls,X11,pm-utils/{module.d,power.d,sleep.d}},local/%{_lib}}
da02d7
%endif
da02d7
ln -snf %{_localstatedir}/tmp usr/tmp
da02d7
ln -snf spool/mail %{buildroot}%{_localstatedir}/mail
da02d7
ln -snf usr/bin bin
da02d7
ln -snf usr/sbin sbin
da02d7
ln -snf usr/lib lib
da02d7
%ifarch x86_64 ppc ppc64 sparc sparc64 s390 s390x
da02d7
ln -snf usr/%{_lib} %{_lib}
da02d7
%endif
da02d7
sed -n -f %{buildroot}/iso_639.sed /usr/share/xml/iso-codes/iso_639.xml >%{buildroot}/iso_639.tab
da02d7
sed -n -f %{buildroot}/iso_3166.sed /usr/share/xml/iso-codes/iso_3166.xml >%{buildroot}/iso_3166.tab
da02d7
grep -v "^$" %{buildroot}/iso_639.tab | grep -v "^#" | while read a b c d ; do
da02d7
    [[ "$d" =~ "^Reserved" ]] && continue
da02d7
    [[ "$d" =~ "^No linguistic" ]] && continue
da02d7
    locale=$c
da02d7
    if [ "$locale" = "XX" ]; then
da02d7
        locale=$b
da02d7
    fi
da02d7
    echo "%lang(${locale})      %{_scl_root}/usr/share/locale/${locale}" >> $RPM_BUILD_DIR/%{buildsubdir}/filelist
da02d7
    echo "%lang(${locale}) %ghost %config(missingok) %{_scl_root}/usr/share/man/${locale}" >> $RPM_BUILD_DIR/%{buildsubdir}/filelist
da02d7
done
da02d7
cat %{buildroot}/lang-exceptions | grep -v "^#" | grep -v "^$" | while read loc ; do
da02d7
    locale=$loc
da02d7
    locality=
da02d7
    special=
da02d7
    [[ "$locale" =~ "@" ]] && locale=${locale%%%%@*}
da02d7
    [[ "$locale" =~ "_" ]] && locality=${locale##*_}
da02d7
    [[ "$locality" =~ "." ]] && locality=${locality%%%%.*}
da02d7
    [[ "$loc" =~ "_" ]] || [[ "$loc" =~ "@" ]] || special=$loc
da02d7
    # If the locality is not official, skip it
da02d7
    if [ -n "$locality" ]; then
da02d7
        grep -q "^$locality" %{buildroot}/iso_3166.tab || continue
da02d7
    fi
da02d7
    # If the locale is not official and not special, skip it
da02d7
    if [ -z "$special" ]; then
da02d7
        egrep -q "[[:space:]]${locale%%_*}[[:space:]]" \\
da02d7
           %{buildroot}/iso_639.tab || continue
da02d7
    fi
da02d7
    echo "%lang(${locale})      %{_scl_root}/usr/share/locale/${loc}" >> $RPM_BUILD_DIR/%{buildsubdir}/filelist
da02d7
    echo "%lang(${locale})  %ghost %config(missingok) %{_scl_root}/usr/share/man/${loc}" >> $RPM_BUILD_DIR/%{buildsubdir}/filelist
da02d7
done
da02d7
rm -f %{buildroot}/iso_639.tab
da02d7
rm -f %{buildroot}/iso_639.sed
da02d7
rm -f %{buildroot}/iso_3166.tab
da02d7
rm -f %{buildroot}/iso_3166.sed
da02d7
rm -f %{buildroot}/lang-exceptions
da02d7
cat $RPM_BUILD_DIR/%{buildsubdir}/filelist | grep "locale" | while read a b ; do
da02d7
    mkdir -p -m 755 %{buildroot}/$b/LC_MESSAGES
da02d7
done
da02d7
cat $RPM_BUILD_DIR/%{buildsubdir}/filelist | grep "/share/man" | while read a b c d; do
da02d7
    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}
da02d7
done
da02d7
for i in man{1,2,3,4,5,6,7,8,9,n,1x,2x,3x,4x,5x,6x,7x,8x,9x,0p,1p,3p}; do
da02d7
   echo "%{_scl_root}/usr/share/man/$i" >> $RPM_BUILD_DIR/%{buildsubdir}/filelist
da02d7
done
da02d7
ln -s $RPM_BUILD_DIR/%{buildsubdir}/filelist $RPM_BUILD_DIR/%{buildsubdir}/filesystem
da02d7
set -x
da02d7
popd
da02d7
}