Hi Jeff,
>
> #
> # spec file for package SUNWlibtasn1
> #
> # includes module(s): libtasn1
> #
> # Owner:jefftsai
> %include Solaris.inc
>
> %ifarch amd64 sparcv9
> %include arch64.inc
> %use libtasn164 = libtasn1.spec
> %endif
>
> %include base.inc
> %use libtasn1 = libtasn1.spec
>
> Name: SUNWlibtasn1
> Summary: Tiny ASN.1 library
> Version: %{default_pkg_version}
When the package only contains one community module, please
use the community versions, not default_pkg_version
(this would make the package follow the GNOME version, which
is clearly wrong since this package is not part of GNOME.
> SUNW_BaseDir: %{_prefix}
> SUNW_Copyright: %{name}.copyright
> BuildRoot: %{_tmppath}/%{name}-%{version}-build
> %include default-depend.inc
Any other dependencies?
> %package devel
> Summary: %{summary} - development files
> SUNW_BaseDir: %{_prefix}
> %include default-depend.inc
> Requires: %name
>
> %prep
> rm -rf %name-%version
> mkdir -p %name-%version
> %ifarch amd64 sparcv9
> mkdir -p %name-%version/%_arch64
> %libtasn164.prep -d %name-%version/%_arch64
> %endif
>
> mkdir -p %name-%version/%base_arch
> %libtasn1.prep -d %name-%version/%base_arch
>
> %build
> export ACLOCAL_FLAGS="-I %{_datadir}/aclocal"
This shouldn't be needed.
> export CXX="$CXX -norunpath"
Does this module include c++ code? Is c++ code used to build
libraries?
> export CFLAGS="%optflags"
> export CXXFLAGS="%cxx_optflags -staticlib=stlport4"
CFLAGS/CXXFLAGS will be different in 64-bit and 32-bit, so these
should be set in the base spec.
> export MSGFMT="/usr/bin/msgfmt"
Not needed.
> %ifarch amd64 sparcv9
> %libtasn164.build -d %name-%version/%_arch64
> %endif
>
> %libtasn1.build -d %name-%version/%base_arch
>
> %install
> rm -rf $RPM_BUILD_ROOT
> %libtasn1.install -d %name-%version/%base_arch
> %ifarch amd64 sparcv9
> %libtasn164.install -d %name-%version/%_arch64
> rm -r $RPM_BUILD_ROOT%{_bindir}/%_arch64/*
> %endif
>
> rm -rf $RPM_BUILD_ROOT/%{_bindir}/*
> rm -rf $RPM_BUILD_ROOT%{_datadir}/info
> rm -rf $RPM_BUILD_ROOT/usr/local
> rm -rf $RPM_BUILD_ROOT%{_mandir}
>
>
> %clean
> rm -rf $RPM_BUILD_ROOT
>
> %files
> %defattr (-, root, bin)
> %{_bindir}
> %dir %attr (0755, root, bin) %{_libdir}
> %{_libdir}/lib*.so*
> %ifarch amd64 sparcv9
> %{_libdir}/%{_arch64}/lib*.so*
> %endif
>
> %files devel
> %defattr (-, root, bin)
> %{_includedir}
> %dir %attr (0755, root, bin) %{_libdir}
> %dir %attr (0755, root, other) %{_libdir}/pkgconfig
> %{_libdir}/pkgconfig/*
> %ifarch amd64 sparcv9
> %dir %attr (0755, root, other) %{_libdir}/%{_arch64}/pkgconfig
> %{_libdir}/%{_arch64}/pkgconfig/*
> %endif
> %dir %attr (0755, root, sys) %{_datadir}
> %dir %attr (0755, root, other) %{_datadir}/aclocal
> %{_datadir}/aclocal/*
>
> %changelog
> * Mon Jun 16 2008 - jeff.cai at sun.com
> - Move spec files from SFE.
> * Wed May 28 2008 - jeff.cai at sun.com
> - Split to two spec files
> * Fri Jul 27 2007 - dougs at truemail.co.th
> - Initial spec
>
>
>
>
>
>
>
> rpm spec file
> attachment
> (libtasn1.spec)
>
> #
> # License (c) 2008 Sun Microsystems Inc.
s/License (c)/Copyright/
> # This file and all modifications and additions to the pristine
> # package are under the same license as the package itself.
> #
> # Owner: jefftsai
> # bugdb:
> http://sourceforge.net/tracker/index.php?func=detail&group_id=245&atid=100245&aid=
> #
> Name: libtasn1
> Version: 1.4
> Release: 0
> Vendor: Sun Microsystems, Inc.
> Distribution: Java Desktop System
> License: LGPL
> BuildRoot: %{_tmppath}/%{name}-%{version}-build
> Docdir: %{_datadir}/doc
> Autoreqprov: on
> URL: http://www.sun.com/software/javadesktopsystem/
> Epoch: 2
> Source:
> ftp://ftp.gnutls.org/pub/gnutls/libtasn1/%{name}-%{version}.tar.gz
> Summary: Libtasn is a library written in C for manipulating
> ASN.1 objects.
I would omit "written in C" from the Summary.
> %description
> Libtasn is a library written in C for manipulating ASN.1 objects
> including
> DER/BER encoding and DER/BER decoding. Libtasn is used by GnuTLS to
> manipulate
> X.509 objects and by GNU Shishi to handle Kerberos V5 packets.
>
> %package -n libtasn1-devel
> Summary: Static libraries and header files for libtasn1
> Group: Applications/Text
> Requires: libtasn1 => %{version}-%{release}
>
> %description -n libtasn1-devel
> The libtasn1-devel package includes the static libraries and header
> files needed for tasn1 development.
>
> %files -n libtasn1-devel
> %defattr(-, root, root)
> %{_libdir}/*.so*
> %{_includedir}/*
>
> %prep
> %setup -q -n %{name}-%{version}
>
> %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
>
> aclocal $ACLOCAL_FLAGS -I m4 -I gl/m4
> libtoolize --force --copy
> autoconf
> automake -a -c -f
This is where you should set CFLAGS, LDFLAGS.
In it's present form, I doubt that this spec file builds any
64-bit objects at all.
Laca
> ./configure --prefix=%{_prefix} \
> --bindir=%{_bindir} \
> --libdir=%{_libdir} \
> --sysconfdir=%{_sysconfdir} \
> --includedir=%{_includedir} \
> --mandir=%{_mandir} \
> --infodir=%{_infodir} \
> --disable-rpath \
> --disable-static \
> --enable-shared
>
>
>
> make -j$CPUS
>
> %install
> make install DESTDIR=$RPM_BUILD_ROOT mkdir_p="mkdir -p"
> find $RPM_BUILD_ROOT -type f -name "*.la" -exec rm -f {} ';'
> find $RPM_BUILD_ROOT -type f -name "*.a" -exec rm -f {} ';'
>
> %clean
> rm -rf $RPM_BUILD_ROOT
>
> %changelog
> * Mon Jun 16 2008 - jeff.cai at sun.com
> - Move spec files from SFE
> * Tue Mar 28 2007 - jeff.cai at sun.com
> - Split to two spec files.
>