summaryrefslogtreecommitdiffstats
path: root/macros.scl-filesystem
diff options
context:
space:
mode:
authorRemi Collet <fedora@famillecollet.com>2015-06-24 06:54:23 +0200
committerRemi Collet <fedora@famillecollet.com>2015-06-24 06:54:23 +0200
commitd8b52b9421302e62e3db22368fc191a5879b89d6 (patch)
treed5f7c4ce3308518e014baf1392cba956e86f0fa2 /macros.scl-filesystem
scl-utils: import from rawhide
Diffstat (limited to 'macros.scl-filesystem')
-rw-r--r--macros.scl-filesystem343
1 files changed, 343 insertions, 0 deletions
diff --git a/macros.scl-filesystem b/macros.scl-filesystem
new file mode 100644
index 0000000..1fc96d3
--- /dev/null
+++ b/macros.scl-filesystem
@@ -0,0 +1,343 @@
+%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
+%{_scl_scripts}/%{scl}
+%{_root_sysconfdir}/scl/modulefiles/%{scl}
+%{_root_sysconfdir}/scl/prefixes/%scl
+%{_scl_root}/bin
+%attr(555,root,root) %{_scl_root}/boot
+%{_scl_root}/dev
+%dir %{_sysconfdir}
+%{_sysconfdir}/X11
+%{_sysconfdir}/xdg
+%{_sysconfdir}/opt
+%{_sysconfdir}/pm
+%{_sysconfdir}/xinetd.d
+%{_sysconfdir}/skel
+%{_sysconfdir}/sysconfig
+%{_sysconfdir}/pki
+%{_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
+%dir %{_scl_root}/opt
+%attr(555,root,root) %{_scl_root}/proc
+%attr(550,root,root) %{_scl_root}/root
+%{_scl_root}/run
+%{_scl_root}/sbin
+%{_scl_root}/srv
+%{_scl_root}/sys
+%attr(1777,root,root) %{_scl_root}/tmp
+%dir %{_scl_root}/usr
+%attr(555,root,root) %{_scl_root}/usr/bin
+%{_scl_root}/usr/etc
+%{_scl_root}/usr/games
+%{_scl_root}/usr/include
+%dir %attr(555,root,root) %{_scl_root}/usr/lib
+%ifarch x86_64 ppc ppc64 sparc sparc64 s390 s390x
+%attr(555,root,root) %{_scl_root}/usr/%{_lib}
+%endif
+%{_scl_root}/usr/libexec
+%{_scl_root}/usr/local
+%attr(555,root,root) %{_scl_root}/usr/sbin
+%dir %{_scl_root}/usr/share
+%{_scl_root}/usr/share/aclocal
+%{_scl_root}/usr/share/applications
+%{_scl_root}/usr/share/augeas
+%{_scl_root}/usr/share/backgrounds
+%{_scl_root}/usr/share/desktop-directories
+%{_scl_root}/usr/share/dict
+%{_scl_root}/usr/share/doc
+%attr(555,root,root) %dir %{_scl_root}/usr/share/empty
+%{_scl_root}/usr/share/games
+%{_scl_root}/usr/share/ghostscript
+%{_scl_root}/usr/share/gnome
+%{_scl_root}/usr/share/icons
+%{_scl_root}/usr/share/idl
+%{_scl_root}/usr/share/info
+%dir %{_scl_root}/usr/share/locale
+%dir %{_scl_root}/usr/share/man
+%{_scl_root}/usr/share/mime-info
+%{_scl_root}/usr/share/misc
+%{_scl_root}/usr/share/omf
+%{_scl_root}/usr/share/pixmaps
+%{_scl_root}/usr/share/sounds
+%{_scl_root}/usr/share/themes
+%{_scl_root}/usr/share/xsessions
+%{_scl_root}/usr/share/X11
+%{_scl_root}/usr/src
+%{_scl_root}/usr/tmp
+%dir %{_localstatedir}
+%{_localstatedir}/adm
+%{_localstatedir}/cache
+%{_localstatedir}/db
+%{_localstatedir}/empty
+%{_localstatedir}/games
+%{_localstatedir}/gopher
+%{_localstatedir}/lib
+%{_localstatedir}/local
+%ghost %dir %attr(755,root,root) %{_localstatedir}/lock
+%ghost %{_localstatedir}/lock/subsys
+%{_localstatedir}/log
+%{_localstatedir}/mail
+%{_localstatedir}/nis
+%{_localstatedir}/opt
+%{_localstatedir}/preserve
+%ghost %attr(755,root,root) %{_localstatedir}/run
+%dir %{_localstatedir}/spool
+%attr(755,root,root) %{_localstatedir}/spool/lpd
+%attr(775,root,mail) %{_localstatedir}/spool/mail
+%attr(1777,root,root) %{_localstatedir}/tmp
+%{_localstatedir}/yp
+}
+
+%scl_install %{expand:
+# scl specific stuff
+mkdir -p %{buildroot}%{_root_sysconfdir}/{rpm,scl/{prefixes,modulefiles}}
+cat >> %{buildroot}%{_root_sysconfdir}/rpm/macros.%{scl}-config << EOF
+%%%%scl %scl
+%{?nfsmountable:%%%%nfsmountable %{nfsmountable}}
+%{!?nfsmountable:%%%%undefine nfsmountable}
+EOF
+cat >> %{buildroot}%{_root_sysconfdir}/scl/prefixes/%{scl} << EOF
+%_scl_prefix
+EOF
+ln -s %{_scl_scripts}/%{scl} %{buildroot}%{_root_sysconfdir}/scl/modulefiles/%{scl}
+# filelist
+set +x
+cat >> %{buildroot}/lang-exceptions << EOF
+af_ZA
+am_ET
+ast_ES
+az_IR
+bg_BG
+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
+en_NZ
+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
+fi_FI
+fr_BE
+fr_CA
+fr_CH
+fr_FR
+gl_ES
+he_IL
+hr_HR
+hu_HU
+it_CH
+it_IT
+ja_JP
+ko_KR
+ks@devanagari
+lv_LV
+ms_MY
+my_MM
+nb_NO
+nds_DE
+nl_BE
+nl_NL
+pl_PL
+pt_BR
+pt_PT
+ru_RU
+sl_SI
+sq_AL
+sr_RS
+sv_SE
+uk_UA
+ur_PK
+zh_CN
+zh_CN.GB2312
+zh_HK
+zh_TW
+zh_TW.Big5
+en@boldquot
+en@quot
+nds@NFE
+sr@ije
+sr@ijekavian
+sr@ijekavianlatin
+sr@latin
+sr@Latn
+uz@cyrillic
+uz@Latn
+be@latin
+en@shaw
+brx
+brx_IN
+EOF
+cat >> %{buildroot}/iso_639.sed << EOF
+1,/<iso_639_entries/b
+# on each new iso-code process the current one
+\\!\\(<iso_639_entry\\|</iso_639_entries>\\)!{
+ x
+ s/^$//
+ # we are on the first iso-code--nothing to process here
+ t
+ # process and write to output
+ s/\\s\\+/ /g
+ s/<iso_639_entry//
+ s!/\\s*>!!
+ # use '%' as a separator of parsed and unparsed input
+ s/\\(.*\\)iso_639_2T_code="\\([^"]\\+\\)"\\(.*\\)/\\2 % \\1 \\3/
+ s/\\([^%]\\+\\)%\\(.*\\)iso_639_2B_code="\\([^"]\\+\\)"\\(.*\\)/\\1\\t\\3 % \\2 \\4/
+ # clear subst. memory for the next t
+ t clear
+ :clear
+ s/\\([^%]\\+\\)%\\(.*\\)iso_639_1_code="\\([^"]\\+\\)"\\(.*\\)/\\1\\t\\3 % \\2 \\4/
+ t name
+ # no 639-1 code--write xx
+ s/%/\\tXX %/
+ :name
+ s/\\([^%]\\+\\)%\\(.*\\)name="\\([^"]\\+\\)"\\(.*\\)/\\1\\t\\3/
+ s/ \\t/\\t/g
+ p
+ b
+ :noout
+}
+H
+EOF
+cat >> %{buildroot}/iso_3166.sed << EOF
+1,/<iso_3166_entries/b
+# on each new iso-code process the current one
+\\!\\(<iso_3166_entry\\|</iso_3166_entries>\\)!{
+ x
+ s/^$//
+ # we are on the first iso-code--nothing to process here
+ t
+ # process and write to output
+ s/\\s\\+/ /g
+ s/<iso_3166_entry//
+ s!/\\s*>!!
+ # use '%' as a separator of parsed and unparsed input
+ s/\\(.*\\)alpha_2_code="\\([^"]\\+\\)"\\(.*\\)/\\2 % \\1 \\3/
+ s/\\([^%]\\+\\)%\\(.*\\)alpha_3_code="\\([^"]\\+\\)"\\(.*\\)/\\1% \\2 \\4/
+ # clear subst. memory for the next t
+ t clear
+ :clear
+ s/\\([^%]\\+\\)%\\(.*\\)numeric_code="\\([^"]\\+\\)"\\(.*\\)/\\1% \\2 \\4/
+ t name
+ # no 3166 code--write xx
+ s/%/\\tXX %/
+ :name
+ s/\\([^%]\\+\\)%\\(.*\\)name="\\([^"]\\+\\)"\\(.*\\)/\\1\\t\\3/
+ s/ \\t/\\t/g
+ p
+ b
+ :noout
+}
+H
+EOF
+mkdir -p %{buildroot}%{_localstatedir}
+pushd %{buildroot}%{_localstatedir}
+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}
+popd
+mkdir -p %{buildroot}%{_sysconfdir}
+pushd %{buildroot}%{_sysconfdir}
+mkdir -p {X11/{applnk,fontpath.d},xdg/autostart,opt,pm/{config.d,power.d,sleep.d},xinetd.d,skel,sysconfig,pki}
+popd
+mkdir -p %{buildroot}%{_scl_root}
+rm -f $RPM_BUILD_DIR/%{buildsubdir}/filelist
+rm -f $RPM_BUILD_DIR/%{buildsubdir}/filesystem
+pushd %{buildroot}%{_scl_root}
+mkdir -p boot dev \\
+ home media mnt opt proc root run/lock srv sys tmp \\
+ 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}
+%ifarch x86_64 ppc ppc64 sparc sparc64 s390 s390x
+mkdir -p usr/{%{_lib}/{games,sse2,tls,X11,pm-utils/{module.d,power.d,sleep.d}},local/%{_lib}}
+%endif
+ln -snf %{_localstatedir}/tmp usr/tmp
+ln -snf spool/mail %{buildroot}%{_localstatedir}/mail
+ln -snf usr/bin bin
+ln -snf usr/sbin sbin
+ln -snf usr/lib lib
+%ifarch x86_64 ppc ppc64 sparc sparc64 s390 s390x
+ln -snf usr/%{_lib} %{_lib}
+%endif
+sed -n -f %{buildroot}/iso_639.sed /usr/share/xml/iso-codes/iso_639.xml >%{buildroot}/iso_639.tab
+sed -n -f %{buildroot}/iso_3166.sed /usr/share/xml/iso-codes/iso_3166.xml >%{buildroot}/iso_3166.tab
+grep -v "^$" %{buildroot}/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/%{buildsubdir}/filelist
+ echo "%lang(${locale}) %ghost %config(missingok) %{_scl_root}/usr/share/man/${locale}" >> $RPM_BUILD_DIR/%{buildsubdir}/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 the locality is not official, skip it
+ if [ -n "$locality" ]; then
+ grep -q "^$locality" %{buildroot}/iso_3166.tab || continue
+ fi
+ # If the locale is not official and not special, skip it
+ if [ -z "$special" ]; then
+ egrep -q "[[:space:]]${locale%%_*}[[:space:]]" \\
+ %{buildroot}/iso_639.tab || continue
+ fi
+ echo "%lang(${locale}) %{_scl_root}/usr/share/locale/${loc}" >> $RPM_BUILD_DIR/%{buildsubdir}/filelist
+ echo "%lang(${locale}) %ghost %config(missingok) %{_scl_root}/usr/share/man/${loc}" >> $RPM_BUILD_DIR/%{buildsubdir}/filelist
+done
+rm -f %{buildroot}/iso_639.tab
+rm -f %{buildroot}/iso_639.sed
+rm -f %{buildroot}/iso_3166.tab
+rm -f %{buildroot}/iso_3166.sed
+rm -f %{buildroot}/lang-exceptions
+cat $RPM_BUILD_DIR/%{buildsubdir}/filelist | grep "locale" | while read a b ; do
+ mkdir -p -m 755 %{buildroot}/$b/LC_MESSAGES
+done
+cat $RPM_BUILD_DIR/%{buildsubdir}/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 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/%{buildsubdir}/filelist
+done
+ln -s $RPM_BUILD_DIR/%{buildsubdir}/filelist $RPM_BUILD_DIR/%{buildsubdir}/filesystem
+set -x
+popd
+}