[scl-utils] keep filesystem macros out of the main sources as it is distro-dependent

Jindrich Novy jnovy at fedoraproject.org
Mon Apr 23 10:57:29 UTC 2012


commit 24d87f2a0646c5f53e3aa230b5793935890fee54
Author: Jindrich Novy <jnovy at redhat.com>
Date:   Mon Apr 23 12:59:49 2012 +0200

    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(-)
---
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 at valencia
-ca_ES
-ca_ES at 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 at 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 at boldquot
-en at quot
-nds at NFE
-sr at ije
-sr at ijekavian
-sr at ijekavianlatin
-sr at latin
-sr at Latn
-uz at cyrillic
-uz at Latn
-be at latin
-en at 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}%{_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 at valencia
+ca_ES
+ca_ES at 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 at 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 at boldquot
+en at quot
+nds at NFE
+sr at ije
+sr at ijekavian
+sr at ijekavianlatin
+sr at latin
+sr at Latn
+uz at cyrillic
+uz at Latn
+be at latin
+en at 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}%{_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 <jnovy at redhat.com> 20120423-1
+- keep filesystem macros out of the main sources as
+  it is distro-dependent
+
 * Fri Apr 13 2012 Jindrich Novy <jnovy at redhat.com> 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 <command> 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


More information about the scm-commits mailing list