Hi all.

This is gonna be long, sorry.
Doug had a really cool idea about how we could build 64-bit and
other ISAs a lot easier that we do now.  Currently, all the
build changes related to the 64-bit builds are in the base specs:
 - copying the source tree (libfoo -> libfoo-64)
 - building both versions
 - installing both versions
We are basically doing the same steps twice: once in the 64-bit
build and once the 32-bit build, and if we would like to add a 3rd
isa, say Pentium + SSE2, we would have to do the same thing again.
The only difference is some directory names (e.g. /usr/lib/amd64)
and the compiler flags.

So we have been working on a much simpler way to do it.
The attached patch includes a new doc file for spec-files/docs
which explains in detail how the thing works.

In this review, I also included conversion of 2 packages to this
new build method: SUNWgnome-base-libs and SUNWflac.  SUNWflac is
built for 3 different ISAs: i386, pentium_pro+mmx, AMD64, mostly
just to demonstrate how it works.

Also attached are the new versions of SUNWgnome-base-libs.spec,
glib2.spec and SUNWflac.spec because they are easier to read than
the patches.

Comments welcome.

Laca
-------------- next part --------------
A non-text attachment was scrubbed...
Name: multi-isa.diff
Type: text/x-patch
Size: 48297 bytes
Desc: not available
URL: 
<http://mail.opensolaris.org/pipermail/jds-review/attachments/20070315/ea9f1545/attachment.bin>
-------------- next part --------------
#
# spec file for package SUNWgnome-base-libs
#
# includes module(s): glib, cairo, pango, atk, gtk+, libglade,
#                     libart_lgpl, libgnomecanvas
#
# Copyright (c) 2003 Sun Microsystems, Inc.
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
#
# Owner: erwannc
#
%include Solaris.inc

%ifarch amd64 sparcv9
%include arch64.inc
%define _sysconfdir /etc/%{_arch64}
%use glib_64 = glib2.spec
%use cairo_64 = cairo.spec
%use pango_64 = pango.spec
%use atk_64 = atk.spec
%use gtk_64 = gtk2.spec
%use libglade_64 = libglade.spec
%endif

%include base.inc

%use glib = glib2.spec
%use cairo = cairo.spec
%use pango = pango.spec
%use atk = atk.spec
%use gtk = gtk2.spec
%use libglade = libglade.spec
%use libart_lgpl = libart_lgpl.spec
%use libgnomecanvas = libgnomecanvas.spec

Name:                    SUNWgnome-base-libs
Summary:                 GNOME base GUI libraries
Version:                 %{default_pkg_version}
Source:                  %{name}-manpages-0.1.tar.gz
SUNW_BaseDir:            %{_basedir}
BuildRoot:               %{_tmppath}/%{name}-%{version}-build

%include default-depend.inc
Requires: SUNWgnome-base-libs-root
Requires: SUNWxwxft
Requires: SUNWxwrtl
Requires: SUNWxwplt
Requires: SUNWxorg-clientlibs
Requires: SUNWlibms
Requires: SUNWlxml
Requires: SUNWfreetype2
Requires: SUNWfontconfig
Requires: SUNWlibpopt
Requires: SUNWpng
Requires: SUNWTiff
Requires: SUNWjpg
Requires: SUNWPython
Requires: SUNWmlib
Requires: SUNWpostrun
Requires: SUNWperl584core
Requires: SUNWuiu8
BuildRequires: SUNWgnome-common-devel
BuildRequires: SUNWxorg-headers
BuildRequires: SUNWjpg-devel
BuildRequires: SUNWpng-devel
BuildRequires: SUNWTiff-devel
BuildRequires: SUNWPython-devel
BuildRequires: SUNWmlib
BuildRequires: SUNWmlibh
BuildRequires: SUNWlxml-devel
%if %(/bin/test -e /usr/sfw/include/glib.h && echo 1 || echo 0)
BuildConflicts: SUNWGlib
%endif

%package root
Summary:                 %{summary} - / filesystem
SUNW_BaseDir:            /
%include default-depend.inc
Requires: SUNWpostrun-root

%package devel          
Summary:                 %{summary} - development files
SUNW_BaseDir:            %{_basedir}
%include default-depend.inc
Requires: SUNWgnome-base-libs
Requires: SUNWperl584usr
Requires: SUNWperl584core
Requires: SUNWlibms
Requires: SUNWPython
Requires: SUNWpapi

%if %build_l10n
%package l10n
Summary:                 %{summary} - l10n content
SUNW_BaseDir:            %{_basedir}
%include default-depend.inc
Requires: %{name}
%endif

%prep
rm -rf %name-%version
mkdir %name-%version

%ifarch amd64 sparcv9
mkdir %name-%version/%_arch64

%glib_64.prep -d %name-%version/%_arch64
%cairo_64.prep -d %name-%version/%_arch64
%pango_64.prep -d %name-%version/%_arch64
%atk_64.prep -d %name-%version/%_arch64
%gtk_64.prep -d %name-%version/%_arch64
%libglade_64.prep -d %name-%version/%_arch64

%endif

mkdir %name-%version/%{base_arch}
%glib.prep -d %name-%version/%{base_arch}
%cairo.prep -d %name-%version/%{base_arch}
%pango.prep -d %name-%version/%{base_arch}
%atk.prep -d %name-%version/%{base_arch}
%gtk.prep -d %name-%version/%{base_arch}
%libglade.prep -d %name-%version/%{base_arch}
%libart_lgpl.prep -d %name-%version/%{base_arch}
%libgnomecanvas.prep -d %name-%version/%{base_arch}

cd %{_builddir}/%name-%version
gzcat %SOURCE0 | tar xf -

%ifarch amd64 sparcv9
cd %{_builddir}/%name-%version/%{_arch64}/cairo-%{cairo.version}
cat > freetype-config <<EOF
#!/bin/sh
PKG_CONFIG_PATH=/usr/lib/%{_arch64}/pkgconfig
export PKG_CONFIG_PATH
OPT="\$1"
if [ "x\$OPT" = x--version ]; then
  OPT=--modversion
fi
exec /usr/bin/pkg-config \$OPT freetype2
EOF
chmod a+x freetype-config
%endif

cd 
%{_builddir}/%name-%version/%{base_arch}/libgnomecanvas-%{libgnomecanvas.version}
ln -s ../libart_lgpl-%{libart_lgpl.version} libart_lgpl

%build
PKG_CONFIG_DISABLE_UNINSTALLED=
unset PKG_CONFIG_DISABLE_UNINSTALLED

export PERL_PATH=/usr/perl5/bin/perl
export PERL=/usr/perl5/bin/perl
export CPPFLAGS="-I/usr/sfw/include"
save_PATH=$PATH
export ACLOCAL_FLAGS="-I 
%{_builddir}/%name-%version/%{base_arch}/glib-%{glib.version}/m4macros -I 
%{_builddir}/%name-%version/%{base_arch}/gtk+-%{gtk.version}/m4macros"
export 
PKG_CONFIG_PATH=../libart_lgpl-%{libart_lgpl.version}:../glib-%{glib.version}:../atk-%{atk.version}:../cairo-%{cairo.version}/src:../pango-%{pango.version}:../gtk+-%{gtk.version}:../libglade-%{libglade.version}:%{_pkg_config_path}

%ifarch amd64 sparcv9
export EXTRA_LDFLAGS="-L/usr/sfw/lib/%{_arch64} -R/usr/sfw/lib/%{_arch64} 
-L/usr/X11/lib/%{_arch64} -R/usr/X11/lib/%{_arch64} 
-L%{_builddir}/%name-%version/%{_arch64}/cairo-%{cairo.version}/src/.libs"
export 
PATH=%{_builddir}/%name-%version/%{_arch64}/glib-%{glib.version}/gobject:$save_PATH
export EXTRA_CFLAGS="-I/usr/sfw/include 
-I%{_builddir}/%name-%version/%{_arch64}/cairo-%{cairo.version}/src"

%glib_64.build -d %name-%version/%_arch64
%cairo_64.build -d %name-%version/%_arch64
%pango_64.build -d %name-%version/%_arch64
%atk_64.build -d %name-%version/%_arch64
%gtk_64.build -d %name-%version/%_arch64
%libglade_64.build -d %name-%version/%_arch64
%endif

export EXTRA_LDFLAGS="-L/usr/sfw/lib -R/usr/sfw/lib -L/usr/X11/lib 
-R/usr/X11/lib 
-L%{_builddir}/%name-%version/%{base_arch}/cairo-%{cairo.version}/src/.libs"
export 
PATH=%{_builddir}/%name-%version/%{base_arch}/glib-%{glib.version}/gobject:$save_PATH
export EXTRA_CFLAGS="-I/usr/sfw/include 
-I%{_builddir}/%name-%version/%{base_arch}/cairo-%{cairo.version}/src"

%glib.build -d %name-%version/%{base_arch}
%cairo.build -d %name-%version/%{base_arch}
%pango.build -d %name-%version/%{base_arch}
%atk.build -d %name-%version/%{base_arch}
%gtk.build -d %name-%version/%{base_arch}
%libglade.build -d %name-%version/%{base_arch}
%libart_lgpl.build -d %name-%version/%{base_arch}
#       we need this because libgnomecanvas-scan cannot find libXrand
#       without it - this seems solairs specific so it is here
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/X11/lib"
%libgnomecanvas.build -d %name-%version/%{base_arch}


%install
rm -rf $RPM_BUILD_ROOT

%ifarch amd64 sparcv9
%glib_64.install -d %name-%version/%_arch64
%cairo_64.install -d %name-%version/%_arch64
%pango_64.install -d %name-%version/%_arch64
export 
PATH=%{_builddir}/%name-%version/%{_arch64}/glib-%{glib.version}/gobject:$PATH
%atk_64.install -d %name-%version/%_arch64
%gtk_64.install -d %name-%version/%_arch64
%libglade_64.install -d %name-%version/%_arch64
%endif

%glib.install -d %name-%version/%{base_arch}
%cairo.install -d %name-%version/%{base_arch}
%pango.install -d %name-%version/%{base_arch}
export PATH=%{_builddir}/%name-%version/glib-%{glib.version}/gobject:$PATH
%atk.install -d %name-%version/%{base_arch}
%gtk.install -d %name-%version/%{base_arch}
%libglade.install -d %name-%version/%{base_arch}
%libart_lgpl.install -d %name-%version/%{base_arch}
%libgnomecanvas.install -d %name-%version/%{base_arch}

rm -rf $RPM_BUILD_ROOT%{_mandir}
cd %{_builddir}/%name-%version/sun-manpages
make install DESTDIR=$RPM_BUILD_ROOT

# Move demo to demo directory.
#
install -d $RPM_BUILD_ROOT%{_prefix}/demo/jds/bin
mv $RPM_BUILD_ROOT%{_bindir}/gtk-demo $RPM_BUILD_ROOT%{_prefix}/demo/jds/bin

rm -f $RPM_BUILD_ROOT%{_libdir}/gtk-2.0/*/immodules/im-[a-wyz]*.so

# on linux, these config files are created in %post
# that would be more complicated on Solaris, especially
# during jumpstart or live upgrade, so it's better to do
# it during the build
export LD_LIBRARY_PATH=$RPM_BUILD_ROOT%{_libdir}
$RPM_BUILD_ROOT%{_bindir}/pango-querymodules \
    $RPM_BUILD_ROOT%{_libdir}/pango/*/modules/*.so \
    | sed -e "s%%$RPM_BUILD_ROOT%%%%" \
    > $RPM_BUILD_ROOT%{_sysconfdir}/pango/pango.modules

$RPM_BUILD_ROOT%{_bindir}/gtk-query-immodules-2.0 \
    $RPM_BUILD_ROOT%{_libdir}/gtk-2.0/*/immodules/im-xim.so \
    | sed -e "s%%$RPM_BUILD_ROOT%%%%" \
    > $RPM_BUILD_ROOT%{_sysconfdir}/gtk-2.0/gtk.immodules

$RPM_BUILD_ROOT%{_bindir}/gdk-pixbuf-query-loaders \
    $RPM_BUILD_ROOT%{_libdir}/gtk-2.0/*/loaders/*.so \
    | sed -e "s%%$RPM_BUILD_ROOT%%%%" \
    > $RPM_BUILD_ROOT%{_sysconfdir}/gtk-2.0/gdk-pixbuf.loaders

%ifarch amd64 sparcv9
rm -f $RPM_BUILD_ROOT%{_libdir}/%{_arch64}/gtk-2.0/*/immodules/im-[a-wyz]*.so

export LD_LIBRARY_PATH=$RPM_BUILD_ROOT%{_libdir}/%{_arch64}

$RPM_BUILD_ROOT%{_bindir}/%{_arch64}/pango-querymodules \
    $RPM_BUILD_ROOT%{_libdir}/%{_arch64}/pango/*/modules/*.so \
    | sed -e "s%%$RPM_BUILD_ROOT%%%%" \
    > $RPM_BUILD_ROOT%{_sysconfdir}/%{_arch64}/pango/pango.modules

mkdir  -p $RPM_BUILD_ROOT%{_sysconfdir}/%{_arch64}/gtk-2.0

$RPM_BUILD_ROOT%{_bindir}/%{_arch64}/gtk-query-immodules-2.0 \
    $RPM_BUILD_ROOT%{_libdir}/%{_arch64}/gtk-2.0/*/immodules/im-xim.so \
    | sed -e "s%%$RPM_BUILD_ROOT%%%%" \
    > $RPM_BUILD_ROOT%{_sysconfdir}/%{_arch64}/gtk-2.0/gtk.immodules

$RPM_BUILD_ROOT%{_bindir}/%{_arch64}/gdk-pixbuf-query-loaders \
    $RPM_BUILD_ROOT%{_libdir}/%{_arch64}/gtk-2.0/*/loaders/*.so \
    | sed -e "s%%$RPM_BUILD_ROOT%%%%" \
    > $RPM_BUILD_ROOT%{_sysconfdir}/%{_arch64}/gtk-2.0/gdk-pixbuf.loaders

rm $RPM_BUILD_ROOT%{_bindir}/%{_arch64}/libglade-convert
rm $RPM_BUILD_ROOT%{_bindir}/%{_arch64}/gdk-pixbuf-csource
rm $RPM_BUILD_ROOT%{_bindir}/%{_arch64}/glib-{genmarshal,gettextize,mkenums}
rm $RPM_BUILD_ROOT%{_bindir}/%{_arch64}/gobject-query
rm $RPM_BUILD_ROOT%{_bindir}/%{_arch64}/pango-view
rm $RPM_BUILD_ROOT%{_bindir}/%{_arch64}/gtk-update-icon-cache

mkdir -p $RPM_BUILD_ROOT%{_prefix}/demo/jds/bin/%{_arch64}
mv $RPM_BUILD_ROOT%{_bindir}/%{_arch64}/gtk-demo \
    $RPM_BUILD_ROOT%{_prefix}/demo/jds/bin/%{_arch64}
%endif

rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/profile.d

%if %build_l10n
%else
# REMOVE l10n FILES
rm -rf $RPM_BUILD_ROOT%{_datadir}/locale
%endif

%{?pkgbuild_postprocess: %pkgbuild_postprocess -v -c 
"%{version}:%{jds_version}:%{name}:$RPM_ARCH:%(date 
+%%Y-%%m-%%d):%{support_level}" $RPM_BUILD_ROOT}

%clean
rm -rf $RPM_BUILD_ROOT

%post
( echo 'test -d %{_sysconfdir}/gtk-2.0 || exit 0';
  echo 'test -x %{_bindir}/gdk-pixbuf-query-loaders || exit 0';
  echo '%{_bindir}/gdk-pixbuf-query-loaders \';
  echo '    > %{_sysconfdir}/gtk-2.0/gdk-pixbuf.loaders' ) | \
      $BASEDIR/lib/postrun -u -c JDS
%ifarch amd64 sparcv9
( echo "/bin/isainfo | /bin/egrep -s '(amd64|sparcv9)' || exit 0";
  echo 'test -d %{_sysconfdir}/%{_arch64}/gtk-2.0 || exit 0';
  echo 'test -x %{_bindir}/%{_arch64}/gdk-pixbuf-query-loaders || exit 0';
  echo '%{_bindir}/%{_arch64}/gdk-pixbuf-query-loaders \';
  echo '    > %{_sysconfdir}/%{_arch64}/gtk-2.0/gdk-pixbuf.loaders' ) | \
      $BASEDIR/lib/postrun -u -c JDS
%endif

%post root
( echo 'test -d %{_sysconfdir}/gtk-2.0 || exit 0';
  echo 'test -x %{_bindir}/gdk-pixbuf-query-loaders || exit 0';
  echo '%{_bindir}/gdk-pixbuf-query-loaders \';
  echo '    > %{_sysconfdir}/gtk-2.0/gdk-pixbuf.loaders' ) | \
      $BASEDIR/var/lib/postrun/postrun -u -c JDS
%ifarch amd64 sparcv9
( echo "/bin/isainfo | /bin/egrep -s '(amd64|sparcv9)' || exit 0";
  echo 'test -d %{_sysconfdir}/%{_arch64}/gtk-2.0 || exit 0';
  echo 'test -x %{_bindir}/%{_arch64}/gdk-pixbuf-query-loaders || exit 0';
  echo '%{_bindir}/%{_arch64}/gdk-pixbuf-query-loaders \';
  echo '    > %{_sysconfdir}/%{_arch64}/gtk-2.0/gdk-pixbuf.loaders' ) | \
      $BASEDIR/var/lib/postrun/postrun -u -c JDS
%endif

%files
%defattr (-, root, bin)
%dir %attr (0755, root, bin) %{_bindir}
%{_bindir}/pango-querymodules
%{_bindir}/pango-view
%{_bindir}/gtk-query-immodules-2.0
%{_bindir}/gtk-update-icon-cache
%{_bindir}/gdk-pixbuf-query-loaders
%dir %attr (0755, root, bin) %{_libdir}
%{_libdir}/lib*.so*
%{_libdir}/libglade
%{_libdir}/charset.alias
%{_libdir}/pango/*/*/*.so
%{_libdir}/gtk*/*/engines/*.so
%{_libdir}/gtk*/*/loaders/*.so
%{_libdir}/gtk*/*/immodules/im-xim.so
%ifarch amd64 sparcv9
%dir %attr (0755, root, bin) %{_bindir}/%{_arch64}
%{_bindir}/%{_arch64}/pango-querymodules
%{_bindir}/%{_arch64}/gtk-query-immodules-2.0
%{_bindir}/%{_arch64}/gdk-pixbuf-query-loaders
%dir %attr (0755, root, bin) %{_libdir}/%{_arch64}
%{_libdir}/%{_arch64}/lib*.so*
%{_libdir}/%{_arch64}/charset.alias
%{_libdir}/%{_arch64}/pango/*/*/*.so
%{_libdir}/%{_arch64}/gtk*/*/loaders/*.so
%{_libdir}/%{_arch64}/gtk*/*/engines/*.so
%{_libdir}/%{_arch64}/gtk*/*/immodules/im-xim.so
%endif
%dir %attr (0755, root, sys) %{_datadir}
%{_datadir}/themes
%{_datadir}/xml
%dir %attr(0755, root, bin) %{_mandir}
%dir %attr(0755, root, bin) %{_mandir}/entities
%{_mandir}/entities/*
%dir %attr(0755, root, bin) %{_mandir}/man1
%{_mandir}/man1/gtk-query-immodules-2.0.1
%{_mandir}/man1/pango-querymodules.1
%{_mandir}/man1/gdk-pixbuf-query-loaders.1
%{_mandir}/man1/gtk-update-icon-cache.1
%dir %attr(0755, root, bin) %{_mandir}/man5
%{_mandir}/man5/*

%files devel
%defattr (-, root, bin)
%dir %attr (0755, root, bin) %dir %{_libdir}
%dir %attr (0755, root, other) %{_libdir}/pkgconfig
%{_libdir}/pkgconfig/*
%{_libdir}/glib*/include
%{_libdir}/gtk*/include
%{_libdir}/gtk*/*/printbackends
%dir %attr (0755, root, bin) %dir %{_bindir}
%{_bindir}/glib-genmarshal
%{_bindir}/glib-gettextize
%{_bindir}/glib-mkenums
%{_bindir}/gobject-query
%{_bindir}/gdk-pixbuf-csource
%{_bindir}/libart2-config
%{_bindir}/libglade-convert
%dir %attr (0755, root, bin) %dir %{_includedir}
%{_includedir}/*
%dir %attr (0755, root, bin) %dir %{_prefix}/demo
%dir %attr (0755, root, bin) %dir %{_prefix}/demo/jds
%dir %attr (0755, root, bin) %dir %{_prefix}/demo/jds/bin
%{_prefix}/demo/jds/bin/gtk-demo
%ifarch amd64 sparcv9
%dir %attr (0755, root, bin) %dir %{_libdir}/%{_arch64}
%dir %attr (0755, root, other) %{_libdir}/%{_arch64}/pkgconfig
%{_libdir}/%{_arch64}/pkgconfig/*
%{_libdir}/%{_arch64}/glib*/include
%{_libdir}/%{_arch64}/gtk*/include
%{_libdir}/%{_arch64}/gtk*/*/printbackends
%{_prefix}/demo/jds/bin/%{_arch64}/*
%endif
%dir %attr (0755, root, sys) %dir %{_datadir}
%{_datadir}/gtk-doc
%dir %attr (0755, root, other) %{_datadir}/aclocal
%{_datadir}/aclocal/*
%{_datadir}/glib-2.0
%{_datadir}/gtk-2.0/demo
%dir %attr(0755, root, bin) %{_mandir}
%dir %attr(0755, root, bin) %{_mandir}/man3
%{_mandir}/man3/*
%dir %attr(0755, root, bin) %{_mandir}/man1
%{_mandir}/man1/gdk-pixbuf-csource.1
%{_mandir}/man1/glib-genmarshal.1
%{_mandir}/man1/glib-gettextize.1
%{_mandir}/man1/glib-mkenums.1
%{_mandir}/man1/gobject-query.1
%{_mandir}/man1/libart2-config.1

%iclass immodules -f i.immodules
%rclass immodules -f r.immodules

%files root
%defattr (-, root, sys)
%attr (0755, root, sys) %dir %{_sysconfdir}
%config %class(immodules) %{_sysconfdir}/gtk-2.0/gtk.immodules
%config %{_sysconfdir}/pango
%ghost %{_sysconfdir}/gtk-2.0/gdk-pixbuf.loaders
%ifarch amd64 sparcv9
%config %class(immodules) %{_sysconfdir}/%{_arch64}/gtk-2.0/gtk.immodules
%config %{_sysconfdir}/%{_arch64}/pango
%ghost %{_sysconfdir}/%{_arch64}/gtk-2.0/gdk-pixbuf.loaders
%endif

%if %build_l10n
%files l10n
%defattr (-, root, bin)
%dir %attr (0755, root, sys) %dir %{_datadir}
%attr (-, root, other) %{_datadir}/locale
%endif

%changelog
* Mon Feb  5 2007 - damien.carbery at sun.com
- Add Requires SUNWpapi after check-deps.pl run.
* Fri Dec 01 2006 - takao.fujiwara at sun.com
- Added SUNWuiu8 dependency. Fixes 6499071
* Mon Oct 16 2006 - brian.cameron at sun.com
- Fix comment.
* Fri Oct 13 2006 - damien.carbery at sun.com
- Delete .a and .la files.
* Fri Sep 01 2006 - Matt.Keenan at sun.com
- New Manpage tarball
* Sun Aug 13 2006 - laca at sun.com
- delete %pre script (hack) and SUNWj5rt dep since we changed the icon dirs
  back to root:other
* Sat Aug 12 2006 - laca at sun.com
- set PERL to /usr/perl5/bin/perl as per CR6454456
* Fri Jul 21 2006 - damien.carbery at sun.com
- Add cairo dir to CFLAGS; update %install and %files for printbackends files.
* Fri Jul 14 2006 - laca at sun.com
- update %post/%postun/etc scripts to support diskless client setup,
  part of 6448317
* Thu Jul 13 2006 - damien.carbery at sun.com
- Add %{_bindir}/%{_arch64}/gtk-demo because of new tarball.
* Thu Jul  6 2006 - damien.carbery at sun.com
- Add BuildRequires SUNWlxml-devel as required by libglade.
* Sun Jun 11 2006 - laca at sun.com
- change group from other to bin/sys
* Wed May 10 2006 - laca at sun.com
- merge -share pkg(s) into the base pkg(s)
* Wed May 10 2006 - brian.cameron at sun.com
- Move gtk-demo to /usr/demo/jds/bin to meet ARC requirements.
* Mon Feb 20 2006 - damien.carbery at sun.com
- Update Build/Requires after running check-deps.pl script.
* Sat Dec  3 2005 - laca at sun.com
- postrunify the gdk-pixbuf.loaders stuff
* Thu Sep 08 2005 - brian.cameron at sun.com
- Verified builds fine on Solaris, bump to 2.12.
* Tue Sep 06 2005 - laca at sun.com
- add to %files or remove unpackaged files
- add %post
- change _sysconfdir files to volatile (config)
* Fri Aug 26 2005 - damien.carbery at sun.com
- Add cairo.
* Mon Aug  1 2005 - damien.carbery at sun.com
- Add SUNWPython/-devel dependencies so that libglade-convert builds.
* Tue Jul 26 2005 - brian.cameron at sun.com
- Moved librsvg to SUNWlibrsvg.
* Mon Jul 11 2005 - brian.cameron at sun.com
- Added bin/rsvg-view and datadir/pixmaps to complete librsvg 
  packaging
* Tue Jun 14 2005 - laca at sun.com
- Added symlink to gdk/x11 so that the build can find gdkx.h
* Wed May 11 2005 - brian.cameron at sun.com
- Added libglade-convert to packaging.
* Mon May 9 2005 - brian.cameron at sun.com
- Fix setting of ACLOCAL_FLAGS so it builds with the 2.10 code.
* Tue Dec 14 2004 - brian.cameron at sun.com
- Add Requires SUNWmlib since we require SUNWmlib at runtime, not just
  build time.
* Tue Nov 16 2004 - laca at sun.com
- moved section 5 man page to share from devel-share
* Thu Nov 4 2004 - archana.shah at wipro.com
- Changed spec file to remove /etc/profile.d directory before packaging
  Fixes bug# 5097097
* Thu Oct 27 2004 - hidetoshi.tajima at sun.com
- fix typos for _arch64/gtk.immodules, fixes 6176001
* Thu Oct 21 2004 - laca at sun.com
- set PERL and PERL_PATH, fixes 5100958
* Wed Oct 13 2004 - laca at sun.com
- use _pkg_config_path64 in $PKG_CONFIG_PATH64
* Sat Oct 02 2004 - laca at sun.com
- added %pkgbuild_postprocess
* Sat Oct  2 2004 - Joseph.Townsend at Sun.COM
- Create 64bit libraries for Solaris
* Sat Sep 11 2004 - damien.carbery at sun.com
- Set LD_LIBRARY_PATH so Xrandr and Xrender found when running built files.
* Sat Sep 11 2004 - laca at sun.com
- Set LDFLAGS so Xrandr and Xrender can be found.
* Thu Sep 09 2004 - matt.keenan at sun.com
- Added librsvg-2.3, rsvg.1 manpages
* Mon Aug 30 2004 - shirley.woo at sun.com
- Bug 5091588 : include files and sman3/4 files should be in a separate devel
  package
* Mon Aug 23 2004 - laca at sun.com
- s/SUNWpl5u/SUNWperl584usr/
* Wed Aug 18 2004 - damien.carbery at sun.com
- Changed more manpage modes to 0755 for Solaris integration.
* Mon Aug 16 2004 - damien.carbery at sun.com
- Changed multiple manpage modes to 0755 for Solaris integration.
* Sat Jun 26 2004  shirley.woo at sun.com
- Changed install location to /usr/...
* Wed Jun 1 2004 - hidetoshi.tajima at sun.com
- remove unsupported input method modules
* Wed May 26 2004 - laca at sun.com
- add l10n subpackage
* Tue May 25 2004 - laca at sun.com
- add buildconflicts tags against glib/gtk 1.2 packages
* Wed May 19 2004 - brian.cameron at sun.com
- Added missing man pages.
* Fri Apr 23 2004 - laca at sun.com
- added SUNWfontconfig, MediaLib dependencies
* Sun Apr 04 2004 - laca at sun.com
- add some missing files to %files
* Wed Mar 24 2004 - brian.cameron at sun.com
- Added SGML man page integration
* Web Mar 10 2004 - laca at sun.com
- escape % chars in the sed commands
* Sat Feb 28 2004 - laca at sun.com
- add -D__STDC_VERSION__=199409L recommended by the compiler cteam
* Web Feb 25 2004 - laca at sun.com
- move libgnomecanvas here from SUNWgnome-libs
- move libart_lgpl here from SUNWgnome-libs
- move librsvg here from SUNWgnome-libs
* Fri Feb 13 2004 - Laszlo.Peter at sun.com
- add "-xc99=none -xCC" to make glib build on s10_51.
- fix mandir permissions
* Thu Feb 12 2004 - Niall.Power at sun.com
- insert dir attribute in front of directories so as not
  to recursively suck up all it's contents
* Mon Jan 19 2004 - Laszlo.Peter at sun.com
- generate module list config files in %install
* Fri Jan 9 2004 - Laszlo.Peter at sun.com
- initial Sun release.
-------------- next part --------------
#
# spec file for package glib2 
#
# Copyright (c) 2005 Sun Microsystems, Inc.
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
#
# Owner: erwannc
#
Name:         glib2 
License:      LGPL
Group:        System/Libraries
Version:      2.12.11
Release:      1
Distribution: Java Desktop System
Vendor:       Sun Microsystems, Inc.
Summary:      Low level core compatibility library for GTK+ and GNOME
Source:       
http://ftp.gnome.org/pub/GNOME/sources/glib/2.12/glib-%{version}.tar.bz2
Source1:      mkinstalldirs

# Note we patch default-path to not include "." because on Solaris
# we are extra paranoid about not ever setting PATH to include the
# current working directory.  This was an ARC requirement.
# The GNOME community already decided to not change this behavior
# (refer to bugzilla bug 317945), but this change is safe.  This
# code only gets executed when the user's PATH is unset, which
# should be never.  Still safer to avoid adding "." to PATH.

#owner:erwannc date:2004-10-05 type:bug bugster:5055972
Patch1:       glib-01-convert-utf8.diff
#owner:yippi date:2005-08-14 type:feature bugzilla:317945
Patch2:       glib-02-default-path.diff
# owner:laca type:bug date:2005-10-13
Patch3:       glib-03-gmodule-always-lazy.diff
#owner:yippi date:2006-05-25 type:bug bugzilla:342981
Patch4:       glib-04-hidden.diff
#owner:stephen date:2006-11-01 type:feature bugster:6393731
Patch5:       glib-05-trusted-extensions.diff
URL:          http://www.gtk.org
BuildRoot:    %{_tmppath}/%{name}-%{version}-build
Docdir:       %{_defaultdocdir}/doc
AutoReqProv:  on
Prereq:       /sbin/ldconfig

%define pkgconfig_version 0.15.0
%define gtk_doc_version 1.1
%define intltool_version 0.34.1

Requires:      aaa_base
BuildRequires: pkgconfig >= %{pkgconfig_version}
BuildRequires: gtk-doc >= %{gtk_doc_version}
BuildRequires: intltool >= %{intltool_version}

%description
Glib is the base compatibility library for GTK+ and GNOME. It provides data
structure handling for C, portability wrappers, and interfaces for such
runtime functionality as an event loop, threads, dynamic laoding, and an
object system

%package devel
Summary:        GIMP Toolkit and GIMP Drawing Kit support library
Group:          Development/Libraries
Requires:       %{name} = %{version}

%description devel
Glib is the base compatibility library for GTK+ and GNOME. It provides data
structure handling for C, portability wrappers, and interfaces for such
runtime functionality as an event loop, threads, dynamic laoding, and an
object system

%prep
%setup -q -n glib-%{version}
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1

%build
%ifos linux
if [ -x /usr/bin/getconf ]; then
  CPUS=`getconf _NPROCESSORS_ONLN`
fi
%else
  CPUS=`/usr/sbin/psrinfo | grep on-line | wc -l | tr -d ' '`
%endif
if test "x$CPUS" = "x" -o $CPUS = 0; then
  CPUS=1
fi

# FIXME: is this still needed?
cp %SOURCE1 .
aclocal $ACLOCAL_FLAGS
libtoolize --force --copy
gtkdocize
autoheader
automake -a -c -f
autoconf
export CFLAGS="%optflags"
export LDFLAGS="%_ldflags"
./configure --prefix=%{_prefix} \
            --mandir=%{_mandir} \
            --datadir=%{_datadir} \
            --libdir=%{_libdir} \
            --bindir=%{_bindir} \
            --sysconfdir=%{_sysconfdir} \
            %{gtk_doc_option}

make -j $CPUS

%install

make DESTDIR=$RPM_BUILD_ROOT install
#Copy zh_HK from zh_TW
#Fixes bug 4930405
install -d $RPM_BUILD_ROOT%{_datadir}/locale/zh_HK/LC_MESSAGES
install --mode=0644 $RPM_BUILD_ROOT%{_datadir}/locale/zh_TW/LC_MESSAGES/*.mo 
$RPM_BUILD_ROOT%{_datadir}/locale/zh_HK/LC_MESSAGES/
rm $RPM_BUILD_ROOT%{_libdir}/*.la
 
%clean
rm -rf $RPM_BUILD_ROOT

%post
/sbin/ldconfig

%postun
/sbin/ldconfig

%files
%defattr(-,root,root)
%{_libdir}/lib*.so.*
%{_datadir}/locale/*/LC_MESSAGES/*.mo

%files devel
%defattr(-,root,root)
%{_bindir}/*
%{_libdir}/lib*.so
%{_includedir}/glib-2.0/*
%{_libdir}/glib-2.0/include/*.h
%{_libdir}/pkgconfig/*.pc
%{_datadir}/aclocal/*.m4
%{_datadir}/glib-2.0/*
%{_datadir}/gtk-doc/html/*
%{_mandir}/man1/*
%{_mandir}/man3/*

%changelog
* Wed Mar 15 2007 - dougs at truemail.co.th
- Removed adding ccdir to PATH
* Fri Mar 09 2007 - damien.carbery at sun.com
- Bump to 2.12.11.
* Thu Mar 08 2007 - damien.carbery at sun.com
- Bump to 2.12.10. Remove upstream patch, 04-msgfmt-c. Renumber remainder.
* Sun Feb  4 2007 - laca at sun.com
- remove patch ALL_LINGUAS.diff - no longer needed; reorder remaining
* Wed Jan 17 2007 - damien.carbery at sun.com
- Bump to 2.12.9.
* Mon Jan 15 2007 - damien.carbery at sun.com
- Bump to 2.12.8.
* Fri Jan 05 2007 - damien.carbery at sun.com
- Bump to 2.12.7.
* Thu Dec 21 2006 - damien.carbery at sun.com
- Bump to 2.12.6.
* Tue Dec 19 2006 - damien.carbery at sun.com
- Bump to 2.12.5. Remove upstream patches, 01-gettext-macro,
  05-solaris-thread-flags, 09-use-fdwalk. Renumber remainder.
* Fri Nov  3 2006 - laca at sun.com
- use %gtk_doc_option in configure so that it can be disabled using
  --without-gtk-doc
* Wed Nov 01 2006 - stephen.browne at sun.com
- added patch glib-11-trusted-extensions.diff: covers bugster 639371
* Mon Oct 02 2006 - damien.carbery at sun.com
- Bump to 2.12.4.
* Mon Sep 25 2006 - padraig.obriain at sun.com
- Add patch use-fdwalk for bugzilla 357585
* Wed Aug 30 2006 - damien.carbery at sun.com
- Bump to 2.12.3.
* Wed Aug 16 2006 - damien.carbery at sun.com
- Bump to 2.12.2.
* Mon Jul 24 2006 - damien.carbery at sun.com
- Bump to 2.12.1.
* Thu Jul 20 2006 - damien.carbery at sun.com
- Bump to 2.12.0.
* Thu Jul 13 2006 - laca at sun.com
- add patch ALL_LINGUAS.diff that removes the \n's from ALL_LINGUAS in
  AM_GLIB_GNU_GETTEXT
* Thu May 25 2006 - brian.cameron at sun.com
- Add patch glib-08-hidden.diff to make sure that the G_HAVE_GNUC_VISIBILITY
  macro is defined to "__hidden" if using the Sun Forte compiler.  This 
  makes sure that symbols that should be hidden are not exported when using
  our compiler.  This resolves the GNOME 2.14 LSARC 2006/202 TCR regarding
  this issue.
* Wed Apr 26 2006 - damien.carbery at sun.com
- Bump to 2.10.2.
* Wed Mar  8 2006 - damien.carbery at sun.com
- Bump to 2.10.1.
* Sun Feb 26 2006 - damien.carbery at sun.com
- Bump to 2.10.0.
* Mon Feb 13 2006 - damien.carbery at sun.com
- Bump to 2.9.6.
* Sun Feb 12 2006 - damien.carbery at sun.com
- Call gettextize to fix infinite loop in configure.
* Fri Jan 27 2006 - damien.carbery at sun.com
- Bump to 2.9.5
* Tue Jan 17 2006 - damien.carbery at sun.com
- Bump to 2.9.3
* Sun Jan 15 2006 - damien.carbery at sun.com
- Bump to 2.9.2.
* Tue Dec 20 2005 - damien.carbery at sun.com
- Bump to 2.9.1. Remove upstream patch 05-logname. Add intltool BuildRequires.
* Tue Nov 29 2005 - damien.carbery at sun.com
- Bump to 2.8.4.
* Mon Nov 28 2005 - laca at sun.com
- prepare for building from CVS snapshots:
- use a macro for Version
- fix autotool order, add some more
- cp mkinstalldirs so that we don't need to add even more autotool foo
* Tue Oct 11 2005 - damien.carbery at sun.com
- Bump to 2.8.3
* Tue Sep 27 2005 - glynn.foster at sun.com
- Bump to 2.8.2
* Mon Aug 15 2005 - glynn.foster at sun.com
- Bump to 2.8.0
* Wed Jun 15 2005 - matt.keenan at sun.com
- Bump to 2.6.5
- Remove patch glib-04-uninstalled-pc.diff
* Fri May 06 2005 - brian.cameron at sun.com
- Add patch 04 to add needed uninstalled.pc files to allow other
  base-libs libraries to build.  This requires calling autoconf
  aclocal, etc.
- Fix naming of patches since the patches were renamed but this
  spec file not updated.
* Fri May 06 2005 - glynn.foster at sun.com
- Bump to 2.6.4
* Wed Nov 15 2004 - glynn.foster at sun.com
- Bump to 2.4.8, since otherwise glib-gettextize doesn't create 
  mkinstalldirs properly, and consequently it means I can't create
  tarballs from CVS sources. We also get a rake of nice bug fixes
  as a result.
* Fri Nov 12 2004 - brian.cameron at sun.com
- Modify the default path that glib sets (if the user does not have PATH
  set), so it does not include "." since ARC determined this is a
  security concern.  When building on Sun, set it to just "/usr/bin"
  since "/bin" is a symlink to "/usr/bin".  On Linux set it to
  "/bin:/usr/bin".
* Fri Oct 29 2004 - laca at sun.com
- use $CC64 for the 64-bit build if defined
* Wed Oct 05 2004 - Yong.Sun at Sun.COM
- Added glib-04-convert-utf8.diff to fix CR 5055972
* Sat Oct  2 2004 - Joseph.Townsend at Sun.COM
- Create 64bit libraries for Solaris
* Thu Sep 16 2004 - ciaran.mcdermott at sun.com
- Added glib-03-g11n-allinguas.diff to include hu lingua
* Wed Aug 18 2004 - brian.cameron at sun.com
- added --enable-gtk-doc
* Thu Aug 05 2004 - archana.shah at wipro.com
- Add patch to fix glib get SIGCHLD everytime
* Thu Jul 08 2004 - damien.donlon at sun.com
- Updated l10n content to glib2-l10n-po-1.2.tar.bz2
* Thu Jul 08 2004 - stephen.browne at sun.com
- ported to rpm4/suse91
* Wed Jul 07 2004 - dermot.mccluskey at sun.com
- added "-j $CPUS" to make to speed up builds
* Fri May 14 2004 - glynn.foster at sun.com
- Bump to 2.4.1
* Wed May 12 2004 - damien.donlon at sun.com
- Updated l10n content to glib2-l10n-po-1.1.tar.bz2
* Mon Mar 29 2004 - damien.donlon at sun.com
- Updated l10n content to glib2-l10n-po-1.0.tar.bz2
* Wed Mar 24 2004 - <glynn.foster at sun.com>
- Bump to 2.4.0
* Wed Mar 10 2004 - <niall.power at sun.com>
- remove glib-02 patch (it wasn't being applied anyway).
- bump to 2.3.6
* Thu Feb 19 2004 - <damien.carbery at sun.com>
- Add patch for glib/gmessages.h to change '...' to '__VA_ARGS__' to build
  on Solaris. May revisit to use '#ifdef __sun'
* Tue Feb 10 2004 - <matt.keenan at sun.com>
- Bump to 2.3.2, l10n to 0.7
* Mon Dec 15 2003 - <glynn.foster at sun.com>
- update to 2.3.1
* Sat Oct 04 2003 - <laca at sun.com>
- update to 2.2.3
* Thu Aug 14 2003 - <laca at sun.com>
- move lib*.so to -devel, remove *.a, *.la
* Fri Aug 01 2003 - <markmc at sun.com> 2.2.2-1
* Wed Jul 25 2003 - <niall.power at sun.com>
- add aaa_base dependency. Fixes postinstall script breakage
  during OS install.
* Wed Jul 09 2003 - <michael.twomey at sun.com>
- add in sun po files
* Thu May 12 2003 - <ghee.teo at sun.com>
- Initial spec file for glib2
-------------- next part --------------
#
# spec file for package SUNWflac
#
# includes module(s): flac
#
# Copyright (c) 2003 Sun Microsystems, Inc.
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
#
# Owner: yippi
#
%include Solaris.inc
%ifarch amd64 sparcv9
%include arch64.inc
%define sse_opt --enable-sse
%use flac_64 = flac.spec
%endif

%if %arch_sse2
%include x86_sse2.inc
%define sse_opt --enable-sse
%use flac_sse2 = flac.spec
%endif

%include base.inc
%define sse_opt --disable-sse
%use flac = flac.spec

Name:        SUNWflac
Summary:     An Open Source lossless audio codec
Version:     %{flac.version}
SUNW_BaseDir:%{_basedir}
BuildRoot:   %{_tmppath}/%{name}-%{version}-build
%include default-depend.inc
BuildConflicts: SFEnasm
BuildRequires: SUNWgnome-common-devel
BuildRequires: SUNWogg-vorbis-devel
Requires: SUNWogg-vorbis
Requires: SUNWlibms

%package devel
Summary:      %{summary} - development files
SUNW_BaseDir: %{_basedir}
%include default-depend.inc

%prep
rm -rf %name-%version
mkdir %name-%version

%ifarch amd64 sparcv9
mkdir %name-%version/%_arch64
%flac_64.prep -d %name-%version/%_arch64
%endif

%if %arch_sse2
mkdir %name-%version/%sse2_arch
%flac_sse2.prep -d %name-%version/%sse2_arch
%endif

mkdir %name-%version/%base_arch
%flac.prep -d %name-%version/%base_arch

%build
%ifarch amd64 sparcv9
%flac_64.build -d %name-%version/%_arch64
%endif

%if %arch_sse2
%flac_sse2.build -d %name-%version/%sse2_arch
%endif

%flac.build -d %name-%version/%base_arch

%install
rm -rf $RPM_BUILD_ROOT

%ifarch amd64 sparcv9
%flac_64.install -d %name-%version/%_arch64
%endif

%if %arch_sse2
%flac_sse2.install -d %name-%version/%sse2_arch
%endif

%flac.install -d %name-%version/%base_arch

%if %can_isaexec
mkdir $RPM_BUILD_ROOT%{_bindir}/%{base_isa}
mv $RPM_BUILD_ROOT%{_bindir}/flac $RPM_BUILD_ROOT%{_bindir}/%{base_isa}
mv $RPM_BUILD_ROOT%{_bindir}/metaflac $RPM_BUILD_ROOT%{_bindir}/%{base_isa}
%endif

%{?pkgbuild_postprocess: %pkgbuild_postprocess -v -c 
"%{version}:%{jds_version}:%{name}:$RPM_ARCH:%(date 
+%%Y-%%m-%%d):%{support_level}" $RPM_BUILD_ROOT}

%if %can_isaexec
%post
ln ${BASEDIR}/lib/isaexec ${BASEDIR}/bin/flac
ln ${BASEDIR}/lib/isaexec ${BASEDIR}/bin/metaflac
installf $PKGINST %{_bindir}/flac || exit 2
installf $PKGINST %{_bindir}/metaflac || exit 2
installf -f $PKGINST || exit 2
%endif

%clean
rm -rf $RPM_BUILD_ROOT

%files
%defattr (-, root, bin)
%dir %attr (0755, root, bin) %{_bindir}
%if %can_isaexec
%{_bindir}/%{base_isa}
%else
%{_bindir}/flac
%{_bindir}/metaflac
%endif
%dir %attr (0755, root, bin) %{_libdir}
%{_libdir}/libFLAC.so*
%{_libdir}/libFLAC++.so*
%dir %attr (0755, root, sys) %{_datadir}
%dir %attr(0755, root, bin) %{_mandir}
%dir %attr(0755, root, bin) %{_mandir}/man1
%{_mandir}/man1/*
%ifarch amd64 sparcv9
%dir %attr (0755, root, bin) %{_bindir}/%{_arch64}
%{_bindir}/%{_arch64}/*
%dir %attr (0755, root, bin) %{_libdir}/%{_arch64}
%{_libdir}/%{_arch64}/lib*.so*
%endif
%if %arch_sse2
%dir %attr (0755, root, bin) %{_bindir}/%{sse2_arch}
%{_bindir}/%{sse2_arch}/*
%dir %attr (0755, root, bin) %{_libdir}/%{sse2_arch}
%{_libdir}/%{sse2_arch}/lib*.so*
%endif
 
%files devel
%defattr (-, root, bin)
%dir %attr (0755, root, other) %{_libdir}/pkgconfig
%{_libdir}/pkgconfig/*
%dir %attr (0755, root, bin) %{_includedir}
%{_includedir}/*
%dir %attr (0755, root, sys) %{_datadir}
%dir %attr (0755, root, other) %{_datadir}/aclocal
%{_datadir}/aclocal/*
%dir %attr (0755, root, other) %{_datadir}/doc
%{_datadir}/doc/*
%ifarch amd64 sparcv9
%dir %attr (0755, root, other) %{_libdir}/%{_arch64}/pkgconfig
%{_libdir}/%{_arch64}/pkgconfig/*.pc
%endif
%if %arch_sse2
%dir %attr (0755, root, other) %{_libdir}/%{sse2_arch}/pkgconfig
%{_libdir}/%{sse2_arch}/pkgconfig/*.pc
%endif

%changelog
* Thu Mar 15 2007 - dougs at truemail.co.th and laca at sun.com
- enable building 64-bit and SSE2 variants
* Fri Feb 16 2007 - damien.carbery at sun.com
- Add %{_libdir}/pkgconfig to %files devel.
* Wed Feb 14 2007 - laca at sun.com
- add BuildConflicts against SFEnasm as it breaks the build
* Mon Dec 04 2006 - damien.carbery at sun.com
- Remove ogg flac libraries as they are no longer built.
* Sun Jun 11 2006 - laca at sun.com
- change group from other to bin/sys
* Thu May 04 2006 - laca at sun.com
- merge -share pkg(s) into the base pkg(s)
* Fri Feb 17 2006 - damien.carbery at sun.com
- Update Build/Requires after running check-deps.pl script.
* Tue Sep 13 2005 - brian.cameron at sun.com
- Now use flac version number.
* Fri Aug 12 2005 - balamurali.viswanathan at wipro.com
- Initial spec-file created

Reply via email to