From 24d87f2a0646c5f53e3aa230b5793935890fee54 Mon Sep 17 00:00:00 2001 From: Jindrich Novy Date: Mon, 23 Apr 2012 12:59:49 +0200 Subject: [PATCH] keep filesystem macros out of the main sources as it is distro-dependent --- .gitignore | 2 +- macros.scl | 321 ----------------------------------------- macros.scl-filesystem | 323 ++++++++++++++++++++++++++++++++++++++++++ scl-utils.spec | 8 +- scl.c | 3 +- sources | 2 +- 6 files changed, 334 insertions(+), 325 deletions(-) create mode 100644 macros.scl-filesystem diff --git a/.gitignore b/.gitignore index bcf1226..e159b93 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ /scl /scl.o /scl.1 -/scl-utils-20120413.tar.gz +/scl-utils-20120423.tar.gz diff --git a/macros.scl b/macros.scl index d31cf92..cedf2df 100644 --- a/macros.scl +++ b/macros.scl @@ -46,324 +46,3 @@ BuildRequires: scl-utils-build %scl_require() %{_scl_prefix}/%1/enable -%scl_files %{expand: -%dir %attr(555,root,root) %{_scl_root} -%{_scl_scripts} -%{_scl_scripts}/enable -%{_root_sysconfdir}/scl/prefixes/%scl -%{_scl_root}/bin -%attr(555,root,root) %{_scl_root}/boot -%{_scl_root}/dev -%dir %{_scl_root}/etc -%{_scl_root}/etc/X11 -%{_scl_root}/etc/xdg -%{_scl_root}/etc/opt -%{_scl_root}/etc/pm -%{_scl_root}/etc/xinetd.d -%{_scl_root}/etc/skel -%{_scl_root}/etc/sysconfig -%{_scl_root}/etc/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 -%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 %{_scl_root}/var -%{_scl_root}/var/adm -%{_scl_root}/var/cache -%{_scl_root}/var/db -%{_scl_root}/var/empty -%{_scl_root}/var/games -%{_scl_root}/var/gopher -%{_scl_root}/var/lib -%{_scl_root}/var/local -%ghost %dir %attr(755,root,root) %{_scl_root}/var/lock -%ghost %{_scl_root}/var/lock/subsys -%{_scl_root}/var/log -%{_scl_root}/var/mail -%{_scl_root}/var/nis -%{_scl_root}/var/opt -%{_scl_root}/var/preserve -%ghost %attr(755,root,root) %{_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(755,uucp,uucp) %{_scl_root}/var/spool/uucp -%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 -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,/\\)!{ - x - s/^$// - # we are on the first iso-code--nothing to process here - t - # process and write to output - s/\\s\\+/ /g - 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,/\\)!{ - x - s/^$// - # we are on the first iso-code--nothing to process here - t - # process and write to output - s/\\s\\+/ /g - 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}%{_scl_root} -cd %{buildroot}%{_scl_root} -mkdir -p boot dev \\ - etc/{X11/{applnk,fontpath.d},xdg/autostart,opt,pm/{config.d,power.d,sleep.d},xinetd.d,skel,sysconfig,pki} \\ - home media mnt opt proc root run/lock srv sys tmp \\ - usr/{bin,etc,games,include,%{_lib}/{games,sse2,tls,X11,pm-utils/{module.d,power.d,sleep.d}},lib/{games,locale,modules,sse2},libexec,local/{bin,etc,games,lib,%{_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} \\ - var/{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} -ln -snf ../var/tmp usr/tmp -ln -snf spool/mail var/mail -ln -snf usr/bin bin -ln -snf usr/sbin sbin -ln -snf usr/lib lib -ln -snf usr/%{_lib} %{_lib} -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/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 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/filelist - echo "%lang(${locale}) %ghost %config(missingok) %{_scl_root}/usr/share/man/${loc}" >> $RPM_BUILD_DIR/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/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 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 -} diff --git a/macros.scl-filesystem b/macros.scl-filesystem new file mode 100644 index 0000000..758eded --- /dev/null +++ b/macros.scl-filesystem @@ -0,0 +1,323 @@ +%scl_files %{expand: +%dir %attr(555,root,root) %{_scl_root} +%{_scl_scripts} +%{_scl_scripts}/enable +%{_root_sysconfdir}/scl/prefixes/%scl +%{_scl_root}/bin +%attr(555,root,root) %{_scl_root}/boot +%{_scl_root}/dev +%dir %{_scl_root}/etc +%{_scl_root}/etc/X11 +%{_scl_root}/etc/xdg +%{_scl_root}/etc/opt +%{_scl_root}/etc/pm +%{_scl_root}/etc/xinetd.d +%{_scl_root}/etc/skel +%{_scl_root}/etc/sysconfig +%{_scl_root}/etc/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 +%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 %{_scl_root}/var +%{_scl_root}/var/adm +%{_scl_root}/var/cache +%{_scl_root}/var/db +%{_scl_root}/var/empty +%{_scl_root}/var/games +%{_scl_root}/var/gopher +%{_scl_root}/var/lib +%{_scl_root}/var/local +%ghost %dir %attr(755,root,root) %{_scl_root}/var/lock +%ghost %{_scl_root}/var/lock/subsys +%{_scl_root}/var/log +%{_scl_root}/var/mail +%{_scl_root}/var/nis +%{_scl_root}/var/opt +%{_scl_root}/var/preserve +%ghost %attr(755,root,root) %{_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(755,uucp,uucp) %{_scl_root}/var/spool/uucp +%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 +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,/\\)!{ + x + s/^$// + # we are on the first iso-code--nothing to process here + t + # process and write to output + s/\\s\\+/ /g + 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,/\\)!{ + x + s/^$// + # we are on the first iso-code--nothing to process here + t + # process and write to output + s/\\s\\+/ /g + 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}%{_scl_root} +cd %{buildroot}%{_scl_root} +mkdir -p boot dev \\ + etc/{X11/{applnk,fontpath.d},xdg/autostart,opt,pm/{config.d,power.d,sleep.d},xinetd.d,skel,sysconfig,pki} \\ + home media mnt opt proc root run/lock srv sys tmp \\ + usr/{bin,etc,games,include,%{_lib}/{games,sse2,tls,X11,pm-utils/{module.d,power.d,sleep.d}},lib/{games,locale,modules,sse2},libexec,local/{bin,etc,games,lib,%{_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} \\ + var/{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} +ln -snf ../var/tmp usr/tmp +ln -snf spool/mail var/mail +ln -snf usr/bin bin +ln -snf usr/sbin sbin +ln -snf usr/lib lib +ln -snf usr/%{_lib} %{_lib} +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/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 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/filelist + echo "%lang(${locale}) %ghost %config(missingok) %{_scl_root}/usr/share/man/${loc}" >> $RPM_BUILD_DIR/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/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 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 +} diff --git a/scl-utils.spec b/scl-utils.spec index 5ac9c5f..718a214 100644 --- a/scl-utils.spec +++ b/scl-utils.spec @@ -1,11 +1,12 @@ Summary: Utilities for alternative packaging Name: scl-utils -Version: 20120413 +Version: 20120423 Release: 1%{?dist} License: GPLv2+ Group: Applications/File URL: http://jnovy.fedorapeople.org/scl-utils/ Source0: http://jnovy.fedorapeople.org/scl-utils/%{name}-%{version}.tar.gz +Source1: macros.scl-filesystem Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) %description @@ -32,6 +33,7 @@ mkdir -p %buildroot%{_sysconfdir}/scl/prefixes mkdir -p %buildroot/opt/rh install -d -m 755 %buildroot%{_mandir}/man1 make install DESTDIR=%buildroot +cat %SOURCE1 >> %buildroot%{_sysconfdir}/rpm/macros.scl %clean rm -rf %buildroot @@ -49,6 +51,10 @@ rm -rf %buildroot %{_sysconfdir}/rpm/macros.scl %changelog +* Mon Apr 22 2012 Jindrich Novy 20120423-1 +- keep filesystem macros out of the main sources as + it is distro-dependent + * Fri Apr 13 2012 Jindrich Novy 20120413-1 - filesystem ownership by meta package - add man page diff --git a/scl.c b/scl.c index b7ac3d2..29f1a3c 100644 --- a/scl.c +++ b/scl.c @@ -129,7 +129,7 @@ int main(int argc, char **argv) { "If is '-' then the command will be read from standard input.\n", argv[0]); exit(EXIT_FAILURE); } - cmd = argv[argc-1]; + cmd = strdup(argv[argc-1]); } tfd = mkstemp(tmp); @@ -197,6 +197,7 @@ int main(int argc, char **argv) { write_script(tfd, cmd); write_script(tfd, "\n"); + free(cmd); close(tfd); check_asprintf(&bash_cmd, "/bin/bash %s", tmp); diff --git a/sources b/sources index 07e970d..447baa7 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -82dbecbadd7e195465b543e96954ab29 scl-utils-20120413.tar.gz +3e0eb37281bac29b4c6ce3bb7876f8e2 scl-utils-20120423.tar.gz