Added support for building packages that use GNU or BSD Makefiles
and extraction of zip distfiles via a new helper: unzip-extraction.sh. When a new template uses extract_sufx=".zip" and the unzip command is not found on PKGFS_MASTERDIR/bin/unzip, the unzip package will be installed automatically. Also add jasper-1.900.1 template that uses a zip distfile. --HG-- extra : convert_revision : a979bdd3aef82d64e490606c21aa8f557d76fdbd
This commit is contained in:
parent
39d7aee194
commit
b1c2d7613a
BIN
dependencies/jasper-1.900.1-deps.db
vendored
Normal file
BIN
dependencies/jasper-1.900.1-deps.db
vendored
Normal file
Binary file not shown.
19
helper-templates/unzip-extraction.sh
Normal file
19
helper-templates/unzip-extraction.sh
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
# Helper for templates using extract_sufx=".zip" that installs the unzip
|
||||||
|
# package if it's not available in PKGFS_MASTERDIR.
|
||||||
|
|
||||||
|
unzip_version="5.52"
|
||||||
|
|
||||||
|
# If unzip is already installed just return immediately.
|
||||||
|
check_installed_tmpl unzip-$unzip_version
|
||||||
|
if [ "$?" -ne 0 ]; then
|
||||||
|
echo "=> unzip not installed, will install it."
|
||||||
|
install_tmpl unzip-$unzip_version
|
||||||
|
#
|
||||||
|
# Continue with origin template that called us.
|
||||||
|
#
|
||||||
|
reset_tmpl_vars
|
||||||
|
run_file ${origin_tmpl}
|
||||||
|
fi
|
||||||
|
|
||||||
|
unset unzip_version
|
||||||
|
unzip_cmd=$PKGFS_MASTERDIR/bin/unzip
|
28
pkgfs.sh
28
pkgfs.sh
@ -31,7 +31,6 @@
|
|||||||
# TODO
|
# TODO
|
||||||
# - Multiple distfiles in a package.
|
# - Multiple distfiles in a package.
|
||||||
# - Multiple URLs to download source distribution files.
|
# - Multiple URLs to download source distribution files.
|
||||||
# - Support GNU/BSD-makefile style source distribution files.
|
|
||||||
# - Fix PKGFS_{C,CXX}FLAGS, aren't passed to the environment yet.
|
# - Fix PKGFS_{C,CXX}FLAGS, aren't passed to the environment yet.
|
||||||
# - Support adding filters to templates to avoid creating useless links.
|
# - Support adding filters to templates to avoid creating useless links.
|
||||||
#
|
#
|
||||||
@ -48,7 +47,6 @@
|
|||||||
: ${awk_cmd:=/usr/bin/awk}
|
: ${awk_cmd:=/usr/bin/awk}
|
||||||
: ${mkdir_cmd:=/bin/mkdir -p}
|
: ${mkdir_cmd:=/bin/mkdir -p}
|
||||||
: ${tar_cmd:=/usr/bin/tar}
|
: ${tar_cmd:=/usr/bin/tar}
|
||||||
: ${unzip_cmd:=/usr/pkg/bin/unzip}
|
|
||||||
: ${rm_cmd:=/bin/rm}
|
: ${rm_cmd:=/bin/rm}
|
||||||
: ${mv_cmd:=/bin/mv}
|
: ${mv_cmd:=/bin/mv}
|
||||||
: ${cp_cmd:=/bin/cp}
|
: ${cp_cmd:=/bin/cp}
|
||||||
@ -331,7 +329,11 @@ check_tmpl_vars()
|
|||||||
extract_cmd="$tar_cmd xf $dfile -C $PKGFS_BUILDDIR"
|
extract_cmd="$tar_cmd xf $dfile -C $PKGFS_BUILDDIR"
|
||||||
;;
|
;;
|
||||||
.zip)
|
.zip)
|
||||||
extract_cmd="$unzip_cmd -x $dfile -C $PKGFS_BUILDDIR"
|
if [ -f "$PKGFS_TMPLHELPDIR/unzip-extraction.sh" ]; then
|
||||||
|
. $PKGFS_TMPLHELPDIR/unzip-extraction.sh
|
||||||
|
fi
|
||||||
|
# $unzip_cmd set by the helper.
|
||||||
|
extract_cmd="$unzip_cmd -x $dfile -d $PKGFS_BUILDDIR"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo -n "*** ERROR: unknown 'extract_sufx' argument in build "
|
echo -n "*** ERROR: unknown 'extract_sufx' argument in build "
|
||||||
@ -524,6 +526,15 @@ build_tmpl_sources()
|
|||||||
elif [ "$build_style" = "perl_module" ]; then
|
elif [ "$build_style" = "perl_module" ]; then
|
||||||
. $PKGFS_TMPLHELPDIR/perl-module.sh
|
. $PKGFS_TMPLHELPDIR/perl-module.sh
|
||||||
perl_module_build $pkgname
|
perl_module_build $pkgname
|
||||||
|
|
||||||
|
#
|
||||||
|
# Packages with BSD or GNU Makefiles are easy, just skip
|
||||||
|
# the configure stage and proceed.
|
||||||
|
#
|
||||||
|
elif [ "$build_style" = "bsd_makefile" -o \
|
||||||
|
"$build_style" = "gnu_makefile" ]; then
|
||||||
|
|
||||||
|
cd $wrksrc
|
||||||
#
|
#
|
||||||
# Unknown build_style type won't work :-)
|
# Unknown build_style type won't work :-)
|
||||||
#
|
#
|
||||||
@ -537,10 +548,11 @@ build_tmpl_sources()
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# Assume BSD make if make_cmd not set in template.
|
||||||
|
#
|
||||||
if [ -z "$make_cmd" ]; then
|
if [ -z "$make_cmd" ]; then
|
||||||
MAKE_CMD="/usr/bin/make"
|
make_cmd="/usr/bin/make"
|
||||||
else
|
|
||||||
MAKE_CMD="$make_cmd"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Fixup libtool script if necessary
|
# Fixup libtool script if necessary
|
||||||
@ -561,7 +573,7 @@ build_tmpl_sources()
|
|||||||
#
|
#
|
||||||
# Build package via make.
|
# Build package via make.
|
||||||
#
|
#
|
||||||
${MAKE_CMD} ${make_build_args} ${make_build_target}
|
${make_cmd} ${make_build_args} ${make_build_target}
|
||||||
if [ "$?" -ne 0 ]; then
|
if [ "$?" -ne 0 ]; then
|
||||||
echo "*** ERROR building (make stage) \`$pkgname' ***"
|
echo "*** ERROR building (make stage) \`$pkgname' ***"
|
||||||
exit 1
|
exit 1
|
||||||
@ -582,7 +594,7 @@ build_tmpl_sources()
|
|||||||
#
|
#
|
||||||
# Install package via make.
|
# Install package via make.
|
||||||
#
|
#
|
||||||
${MAKE_CMD} ${make_install_args} ${make_install_target} \
|
${make_cmd} ${make_install_args} ${make_install_target} \
|
||||||
prefix="$PKGFS_DESTDIR/$pkgname"
|
prefix="$PKGFS_DESTDIR/$pkgname"
|
||||||
if [ "$?" -ne 0 ]; then
|
if [ "$?" -ne 0 ]; then
|
||||||
echo "*** ERROR instaling \`$pkgname' ***"
|
echo "*** ERROR instaling \`$pkgname' ***"
|
||||||
|
17
templates/jasper-1.900.1.tmpl
Executable file
17
templates/jasper-1.900.1.tmpl
Executable file
@ -0,0 +1,17 @@
|
|||||||
|
# Template build file for 'jasper-1.900.1'.
|
||||||
|
pkgname=jasper-1.900.1
|
||||||
|
extract_sufx=".zip"
|
||||||
|
url=http://www.ece.uvic.ca/~mdadams/jasper/software
|
||||||
|
build_style=gnu_configure
|
||||||
|
export CPPFLAGS="-I$PKGFS_MASTERDIR/include"
|
||||||
|
configure_args="--enable-shared --without-x --disable-opengl"
|
||||||
|
short_desc="Software-based reference implementation of the JPEG-2000 codec"
|
||||||
|
maintainer="Juan RP <xtraeme@gmail.com>"
|
||||||
|
checksum=fb2c188abf5b8c297078ac1f913101734f72db5c
|
||||||
|
long_desc="
|
||||||
|
The JasPer Project is a collaborative effort between Image Power, Inc.
|
||||||
|
and the University of British Columbia. The objective of this project is
|
||||||
|
to develop a software-based reference implementation of the codec
|
||||||
|
specified in the JPEG-2000 Part-1 standard (i.e., ISO/IEC 15444-1).This
|
||||||
|
software has also been submitted to the ISO for inclusion in the JPEG-2000
|
||||||
|
Part-5 standard (as an official reference implementation)."
|
27
templates/unzip-5.52-fix-unzipsfx.diff
Normal file
27
templates/unzip-5.52-fix-unzipsfx.diff
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
$NetBSD: patch-ad,v 1.1 2006/11/03 07:53:55 rillig Exp $
|
||||||
|
|
||||||
|
unzipsfx does not need libz, so a special compile rule is needed for it.
|
||||||
|
|
||||||
|
--- unix/Makefile.orig Mon Oct 30 22:45:35 2006
|
||||||
|
+++ unix/Makefile Mon Oct 30 22:48:02 2006
|
||||||
|
@@ -87,7 +87,7 @@
|
||||||
|
OBJS = $(OBJS1) $(OBJS2) $(OBJS3) $M$O
|
||||||
|
LOBJS = $(OBJS)
|
||||||
|
OBJSDLL = $(OBJS:.o=.pic.o) api.pic.o
|
||||||
|
-OBJX = unzipsfx$O $(CRC32)$O crctab_$O crypt_$O extract_$O fileio_$O \
|
||||||
|
+OBJX = unzipsfx$O crc32_$O crctab_$O crypt_$O extract_$O fileio_$O \
|
||||||
|
globals_$O inflate_$O match_$O process_$O ttyio_$O $M_$O
|
||||||
|
LOBJX = $(OBJX)
|
||||||
|
OBJF = funzip$O $(CRC32)$O cryptf$O globalsf$O inflatef$O ttyiof$O
|
||||||
|
@@ -306,6 +306,11 @@
|
||||||
|
-$(CP) unzip.c unzipsfx.c
|
||||||
|
$(CC) -c $(CF) -DSFX unzipsfx.c
|
||||||
|
$(RM) unzipsfx.c
|
||||||
|
+
|
||||||
|
+crc32_$O: crc32.c $(UNZIP_H) zip.h # unzipsfx only
|
||||||
|
+ -$(CP) crc32.c crc32_.c
|
||||||
|
+ $(CC) -c $(CF) -DSFX crc32_.c
|
||||||
|
+ $(RM) crc32_.c
|
||||||
|
|
||||||
|
crctab_$O: crctab.c $(UNZIP_H) zip.h
|
||||||
|
-$(CP) crctab.c crctab_.c
|
38
templates/unzip-5.52.tmpl
Executable file
38
templates/unzip-5.52.tmpl
Executable file
@ -0,0 +1,38 @@
|
|||||||
|
# Template file for 'unzip-5.52'
|
||||||
|
pkgname=unzip-5.52
|
||||||
|
patch_files=$pkgname-fix-unzipsfx.diff
|
||||||
|
wrksrc=$pkgname
|
||||||
|
distfiles=unzip552
|
||||||
|
extract_sufx=".tgz"
|
||||||
|
url=ftp://ftp.info-zip.org/pub/infozip/src/
|
||||||
|
build_style=gnu_makefile
|
||||||
|
make_cmd="$PKGFS_MASTERDIR/bin/gmake"
|
||||||
|
make_build_args="-f unix/Makefile"
|
||||||
|
make_build_target="generic_zlib unzipsfx"
|
||||||
|
export CFLAGS="-I. -DUNIX -Dunix -DUSE_UNSHRINK"
|
||||||
|
short_desc="List, test and extract compressed files in a ZIP archive"
|
||||||
|
maintainer="Juan RP <xtraeme@gmail.com>"
|
||||||
|
checksum=b749b0923bc4cceaa6f937aef688e9713a84328c
|
||||||
|
long_desc="
|
||||||
|
Unzip will list, test, or extract files from a ZIP archive, commonly
|
||||||
|
found on MS-DOS systems. The default behavior (with no options) is to
|
||||||
|
extract into the current directory (and subdirectories below it) all
|
||||||
|
files from the specified ZIP archive. Unzip is compatible with
|
||||||
|
archives created by PKWARE's PKZIP, but in many cases the program
|
||||||
|
options or default behaviors differ.
|
||||||
|
|
||||||
|
Zipinfo lists technical information about files in a ZIP archive, most
|
||||||
|
commonly found on MS-DOS systems. Such information includes file access
|
||||||
|
permissions, encryption status, type of compression, version and operating
|
||||||
|
system or file system of compressing program, and the like.
|
||||||
|
|
||||||
|
Funzip acts as a filter; that is, it assumes that a ZIP archive is
|
||||||
|
being piped into standard input, and it extracts the first member from
|
||||||
|
the archive to stdout. If there is an argument, then the input comes
|
||||||
|
from the specified file instead of from stdin.
|
||||||
|
|
||||||
|
Unzipsfx is a modified version of unzip designed to be prepended to
|
||||||
|
existing ZIP archives in order to form self-extracting archives.
|
||||||
|
Instead of taking its first non-flag argument to be the zipfile(s) to
|
||||||
|
be extracted, unzipsfx seeks itself under the name by which it was
|
||||||
|
invoked and tests or extracts the contents of the appended archive."
|
Loading…
x
Reference in New Issue
Block a user