Subject: pkg_comp build lang/ocaml makes too small package (2006Q1)
To: None <pkgsrc-users@NetBSD.org>
From: Rhialto <rhialto@falu.nl>
List: pkgsrc-users
Date: 04/04/2006 12:39:20
I am currently rebuilding lots of packages on NetBSD/amd64 3.0, using
pkg_comp. I happened to notice that the resulting binary package for
lang/ocaml looked far to small, especially when compared to the previous
version:

-rw-r--r--  1 root  wheel  4159560 Jan 29 12:45 ocaml-3.08.4nb1.tgz
-rw-r--r--  1 root  wheel    78270 Apr  4 01:08 ocaml-3.09.1nb2.tgz

Indeed, there are just a few files in it.

pkg_tarup produces the same short binary package.

It appears that all the files are actually installed, but pkg_info
doesn't know about them:

pkg_comp:default.conf# pkg_info -L ocaml
Information for ocaml-3.09.1nb2:

Files:
/usr/pkg/lib/ocaml/stublibs/dllbigarray.so
/usr/pkg/lib/ocaml/stublibs/dllmldbm.so
/usr/pkg/lib/ocaml/stublibs/dllnums.so
/usr/pkg/lib/ocaml/stublibs/dllstr.so
/usr/pkg/lib/ocaml/stublibs/dllthreads.so
/usr/pkg/lib/ocaml/stublibs/dllunix.so
/usr/pkg/lib/ocaml/stublibs/dllvmthreads.so

This looks suspiciously like only the contents of PLIST.stub, and not
the other PLIST.* files.

$ make show-var VARNAME=PLIST_SRC
/vol1/rhialto/cvs/pkgsrc/lang/ocaml/PLIST.stub

It looks like in this fragment:

.if (${MACHINE_ARCH} == "i386") || (${MACHINE_ARCH} == "powerpc") || \
    (${MACHINE_ARCH} == "sparc")
BUILD_TARGET+=  opt opt.opt
PLIST_SRC=      ${PKGDIR}/PLIST.opt
.  if (${OPSYS} != "Darwin") && \
      !(${OPSYS} == "SunOS" && ${MACHINE_ARCH} == "i386") && \
      !(${OPSYS} == "NetBSD" && ${MACHINE_ARCH} == "sparc")
PLIST_SRC+=     ${PKGDIR}/PLIST.prof
.  endif
PLIST_SRC+=     ${PKGDIR}/PLIST
.endif

the last .endif should be moved up a bit - ${PKGDIR}/PLIST is only added
if the condition is true.

-Olaf.
-- 
___ Olaf 'Rhialto' Seibert      -- You author it, and I'll reader it.
\X/ rhialto/at/xs4all.nl        -- Cetero censeo "authored" delendum esse.