More changes to {pre,post}_<stage> stuff.

Rather than using a file for stuff like this, change them to be
functions in templates. Now if any template want to use them, it
can specify for example a {pre,post}_<stage>() shell function.

Also remove some NetBSD specific stuff that is not useful anymore.

--HG--
extra : convert_revision : b7157c61c92c05904e0e4d971268e5f018db46bc
This commit is contained in:
Juan RP 2008-10-27 06:12:30 +01:00
parent aca77c9284
commit e9231b5999
30 changed files with 168 additions and 712 deletions

View file

@ -1,7 +0,0 @@
#
# Make /bin/bash -> /bin/sh symlink.
#
if [ -x $XBPS_DESTDIR/$pkgname-$version/bin/bash ]; then
cd $XBPS_DESTDIR/$pkgname-$version/bin && ln -s bash sh
fi

View file

@ -24,5 +24,14 @@ long_desc="
to sixty-four. In addition, most sh scripts can be run by Bash without
modification."
base_chroot=yes
build_depends="bison-2.3 ncurses-5.6"
run_depends="glibc-2.8 ncurses-5.3"
post_install()
{
# Make /bin/bash -> /bin/sh symlink.
if [ -x $XBPS_DESTDIR/$pkgname-$version/bin/bash ]; then
cd $XBPS_DESTDIR/$pkgname-$version/bin && ln -s bash sh
fi
}

View file

@ -1,6 +0,0 @@
#
# Transform perl shebang path with correct one in bdftruncate.pl.
#
. $XBPS_TMPLHELPDIR/replace-interpreter.sh
replace_interpreter perl bdftruncate.pl

View file

@ -1,5 +0,0 @@
#
# Make /usr/bin/gcc -> /usr/bin/cc symlink.
#
cd $XBPS_DESTDIR/$pkgname-$version/usr/bin && ln -s gcc cc

View file

@ -1,4 +0,0 @@
#
# As specified in the LFS book, disable installing libiberty.
#
sed -i 's/install_to_$(INSTALL_DEST) //' $wrksrc/libiberty/Makefile.in

View file

@ -18,3 +18,15 @@ long_desc="
The GNU C Compiler suite, with support for C, C++, Fortran, ObjC."
build_depends="mpfr-2.3.2 binutils-2.18"
# As specified in the LFS book, disable installing libiberty.
pre_configure()
{
sed -i 's/install_to_$(INSTALL_DEST) //' $wrksrc/libiberty/Makefile.in
}
# Make /usr/bin/gcc -> /usr/bin/cc symlink.
post_install()
{
cd $XBPS_DESTDIR/$pkgname-$version/usr/bin && ln -s gcc cc
}

View file

@ -1,16 +0,0 @@
#
# Replace hardcoded path to bash.
# x86_64 arch: use /lib rather than /lib64 and make lib64 -> lib symlinks.
#
if [ -x $XBPS_DESTDIR/$pkgname-$version/usr/bin/ldd ]; then
sed -i -e "s,$XBPS_MASTERDIR/bin/bash,/bin/bash,g" \
$XBPS_DESTDIR/$pkgname-$version/usr/bin/ldd
fi
if [ "$xbps_machine" = "x86_64" ]; then
sed -i '/RTLDLIST/s%/ld-linux.so.2 /lib64%%' \
$XBPS_DESTDIR/$pkgname-$version/usr/bin/ldd
cd $XBPS_DESTDIR/$pkgname-$version && ln -s lib lib64
cd $XBPS_DESTDIR/$pkgname-$version/usr && ln -s lib lib64
fi

View file

@ -1,5 +0,0 @@
# We must configure it in another directory.
mkdir -p $wrksrc/build_obj && cd $wrksrc/build_obj
wrksrc=$wrksrc/build_obj
echo "slibdir=/lib" >> $wrksrc/configparms

View file

@ -1,4 +0,0 @@
# Create destdir/etc/ld.conf
mkdir -p $XBPS_DESTDIR/$pkgname-$version/etc
touch $XBPS_DESTDIR/$pkgname-$version/etc/ld.so.conf

View file

@ -24,4 +24,39 @@ long_desc="
languages use the C library to access the underlying operating system."
base_package=yes
base_chroot=yes
build_depends="gcc-4.3.2"
pre_configure()
{
# We must configure it in another directory.
mkdir -p $wrksrc/build_obj && cd $wrksrc/build_obj
wrksrc=$wrksrc/build_obj
echo "slibdir=/lib" >> $wrksrc/configparms
}
pre_install()
{
# Create destdir/etc/ld.conf
mkdir -p $XBPS_DESTDIR/$pkgname-$version/etc
touch $XBPS_DESTDIR/$pkgname-$version/etc/ld.so.conf
}
post_install()
{
# Replace hardcoded path to bash.
# x86_64 arch: use /lib rather than /lib64 and make
# lib64 -> lib symlinks.
if [ -x $XBPS_DESTDIR/$pkgname-$version/usr/bin/ldd ]; then
sed -i -e "s,$XBPS_MASTERDIR/bin/bash,/bin/bash,g" \
$XBPS_DESTDIR/$pkgname-$version/usr/bin/ldd
fi
if [ "$xbps_machine" = "x86_64" ]; then
sed -i '/RTLDLIST/s%/ld-linux.so.2 /lib64%%' \
$XBPS_DESTDIR/$pkgname-$version/usr/bin/ldd
cd $XBPS_DESTDIR/$pkgname-$version && ln -s lib lib64
cd $XBPS_DESTDIR/$pkgname-$version/usr && ln -s lib lib64
fi
}

View file

@ -1,19 +0,0 @@
#
# Replace hardcoded paths in perl scripts.
#
. $XBPS_TMPLHELPDIR/replace-interpreter.sh
replace_interpreter perl parser/gapi2xml.pl
replace_interpreter perl parser/gapi_pp.pl
#
# Fix up pkg-config files.
gtksharp_pc_files="gtk/gtk-sharp-2.0.pc.in gtkdotnet/gtk-dotnet-2.0.pc.in
glib/glib-sharp-2.0.pc.in parser/gapi-2.0.pc.in glade/glade-sharp-2.0.pc.in"
for f in ${gtksharp_pc_files}; do
$sed_cmd -e "s|\${pcfiledir}/../..|$XBPS_MASTERDIR|g" \
$wrksrc/$f > $wrksrc/$f.sed && \
$mv_cmd $wrksrc/$f.sed $wrksrc/$f
done

View file

@ -1,409 +0,0 @@
/*
* Copyright (c) 2008 Juan Romero Pardines
* Copyright (c) 2008 Mark Kettenis
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#include <sys/param.h>
#include <sys/ioctl.h>
#include <sys/mman.h>
#include <sys/types.h>
#include <machine/sysarch.h>
#include <machine/mtrr.h>
#include <dev/pci/pciio.h>
#include <dev/pci/pcireg.h>
#include <dev/pci/pcidevs.h>
#include <errno.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include "pciaccess.h"
#include "pciaccess_private.h"
static int pcifd;
static int
pci_read(int bus, int dev, int func, uint32_t reg, uint32_t *val)
{
struct pciio_bdf_cfgreg io;
int err;
bzero(&io, sizeof(io));
io.bus = bus;
io.device = dev;
io.function = func;
io.cfgreg.reg = reg;
err = ioctl(pcifd, PCI_IOC_BDF_CFGREAD, &io);
if (err)
return (err);
*val = io.cfgreg.val;
return 0;
}
static int
pci_write(int bus, int dev, int func, uint32_t reg, uint32_t val)
{
struct pciio_bdf_cfgreg io;
bzero(&io, sizeof(io));
io.bus = bus;
io.device = dev;
io.function = func;
io.cfgreg.reg = reg;
io.cfgreg.val = val;
return ioctl(pcifd, PCI_IOC_BDF_CFGWRITE, &io);
}
static int
pci_nfuncs(int bus, int dev)
{
uint32_t hdr;
if (pci_read(bus, dev, 0, PCI_BHLC_REG, &hdr) != 0)
return -1;
return (PCI_HDRTYPE_MULTIFN(hdr) ? 8 : 1);
}
static int
pci_device_netbsd_map_range(struct pci_device *dev,
struct pci_device_mapping *map)
{
struct mtrr mtrr;
int fd, error, nmtrr, prot = PROT_READ;
if ((fd = open("/dev/mem", O_RDWR)) == -1)
return errno;
if (map->flags & PCI_DEV_MAP_FLAG_WRITABLE)
prot |= PROT_WRITE;
map->memory = mmap(NULL, map->size, prot, MAP_SHARED,
fd, map->base);
if (map->memory == MAP_FAILED)
return errno;
/* No need to set an MTRR if it's the default mode. */
if ((map->flags & PCI_DEV_MAP_FLAG_CACHABLE) ||
(map->flags & PCI_DEV_MAP_FLAG_WRITE_COMBINE)) {
mtrr.base = map->base;
mtrr.len = map->size;
mtrr.flags = MTRR_VALID;
if (map->flags & PCI_DEV_MAP_FLAG_CACHABLE)
mtrr.type = MTRR_TYPE_WB;
if (map->flags & PCI_DEV_MAP_FLAG_WRITE_COMBINE)
mtrr.type = MTRR_TYPE_WC;
#ifdef __i386__
error = i386_set_mtrr(&mtrr, &nmtrr);
#endif
#ifdef __amd64__
error = x86_64_set_mtrr(&mtrr, &nmtrr);
#endif
if (error) {
close(fd);
return errno;
}
}
close(fd);
return 0;
}
static int
pci_device_netbsd_unmap_range(struct pci_device *dev,
struct pci_device_mapping *map)
{
struct mtrr mtrr;
int nmtrr, error;
if ((map->flags & PCI_DEV_MAP_FLAG_CACHABLE) ||
(map->flags & PCI_DEV_MAP_FLAG_WRITE_COMBINE)) {
mtrr.base = map->base;
mtrr.len = map->size;
mtrr.type = MTRR_TYPE_UC;
mtrr.flags = 0; /* clear/set MTRR */
#ifdef __i386__
error = i386_set_mtrr(&mtrr, &nmtrr);
#endif
#ifdef __amd64__
error = x86_64_set_mtrr(&mtrr, &nmtrr);
#endif
if (error)
return errno;
}
return pci_device_generic_unmap_range(dev, map);
}
static int
pci_device_netbsd_read(struct pci_device *dev, void *data,
pciaddr_t offset, pciaddr_t size, pciaddr_t *bytes_read)
{
struct pciio_bdf_cfgreg io;
io.bus = dev->bus;
io.device = dev->dev;
io.function = dev->func;
*bytes_read = 0;
while (size > 0) {
int toread = MIN(size, 4 - (offset & 0x3));
io.cfgreg.reg = (offset & ~0x3);
if (ioctl(pcifd, PCI_IOC_BDF_CFGREAD, &io) == -1)
return errno;
io.cfgreg.val = htole32(io.cfgreg.val);
io.cfgreg.val >>= ((offset & 0x3) * 8);
memcpy(data, &io.cfgreg.val, toread);
offset += toread;
data = (char *)data + toread;
size -= toread;
*bytes_read += toread;
}
return 0;
}
static int
pci_device_netbsd_write(struct pci_device *dev, const void *data,
pciaddr_t offset, pciaddr_t size, pciaddr_t *bytes_written)
{
struct pciio_bdf_cfgreg io;
if ((offset % 4) == 0 || (size % 4) == 0)
return EINVAL;
io.bus = dev->bus;
io.device = dev->dev;
io.function = dev->func;
*bytes_written = 0;
while (size > 0) {
io.cfgreg.reg = offset;
memcpy(&io.cfgreg.val, data, 4);
if (ioctl(pcifd, PCI_IOC_BDF_CFGWRITE, &io) == -1)
return errno;
offset += 4;
data = (char *)data + 4;
size -= 4;
*bytes_written += 4;
}
return 0;
}
static void
pci_system_netbsd_destroy(void)
{
close(pcifd);
free(pci_sys);
pci_sys = NULL;
}
static int
pci_device_netbsd_probe(struct pci_device *device)
{
struct pci_device_private *priv = (struct pci_device_private *)device;
struct pci_mem_region *region;
uint64_t reg64, size64;
uint32_t bar, reg, size;
int bus, dev, func, err;
bus = device->bus;
dev = device->dev;
func = device->func;
err = pci_read(bus, dev, func, PCI_BHLC_REG, &reg);
if (err)
return err;
priv->header_type = PCI_HDRTYPE_TYPE(reg);
if (priv->header_type != 0)
return 0;
region = device->regions;
for (bar = PCI_MAPREG_START; bar < PCI_MAPREG_END;
bar += sizeof(uint32_t), region++) {
err = pci_read(bus, dev, func, bar, &reg);
if (err)
return err;
/* Probe the size of the region. */
err = pci_write(bus, dev, func, bar, ~0);
if (err)
return err;
pci_read(bus, dev, func, bar, &size);
pci_write(bus, dev, func, bar, reg);
if (PCI_MAPREG_TYPE(reg) == PCI_MAPREG_TYPE_IO) {
region->is_IO = 1;
region->base_addr = PCI_MAPREG_IO_ADDR(reg);
region->size = PCI_MAPREG_IO_SIZE(size);
} else {
if (PCI_MAPREG_MEM_PREFETCHABLE(reg))
region->is_prefetchable = 1;
switch(PCI_MAPREG_MEM_TYPE(reg)) {
case PCI_MAPREG_MEM_TYPE_32BIT:
case PCI_MAPREG_MEM_TYPE_32BIT_1M:
region->base_addr = PCI_MAPREG_MEM_ADDR(reg);
region->size = PCI_MAPREG_MEM_SIZE(size);
break;
case PCI_MAPREG_MEM_TYPE_64BIT:
region->is_64 = 1;
reg64 = reg;
size64 = size;
bar += sizeof(uint32_t);
err = pci_read(bus, dev, func, bar, &reg);
if (err)
return err;
reg64 |= (uint64_t)reg << 32;
err = pci_write(bus, dev, func, bar, ~0);
if (err)
return err;
pci_read(bus, dev, func, bar, &size);
pci_write(bus, dev, func, bar, reg64 >> 32);
size64 |= (uint64_t)size << 32;
region->base_addr = PCI_MAPREG_MEM64_ADDR(reg64);
region->size = PCI_MAPREG_MEM64_SIZE(size64);
region++;
break;
}
}
}
return 0;
}
static const struct pci_system_methods netbsd_pci_methods = {
pci_system_netbsd_destroy,
NULL,
NULL,
pci_device_netbsd_probe,
pci_device_netbsd_map_range,
pci_device_netbsd_unmap_range,
pci_device_netbsd_read,
pci_device_netbsd_write,
pci_fill_capabilities_generic
};
int
pci_system_netbsd_create(void)
{
struct pci_device_private *device;
int bus, dev, func, ndevs, nfuncs;
uint32_t reg;
pcifd = open("/dev/pci0", O_RDWR);
if (pcifd == -1)
return ENXIO;
pci_sys = calloc(1, sizeof(struct pci_system));
if (pci_sys == NULL) {
close(pcifd);
return ENOMEM;
}
pci_sys->methods = &netbsd_pci_methods;
ndevs = 0;
for (bus = 0; bus < 256; bus++) {
for (dev = 0; dev < 32; dev++) {
nfuncs = pci_nfuncs(bus, dev);
for (func = 0; func < nfuncs; func++) {
if (pci_read(bus, dev, func, PCI_ID_REG,
&reg) != 0)
continue;
if (PCI_VENDOR(reg) == PCI_VENDOR_INVALID ||
PCI_VENDOR(reg) == 0)
continue;
ndevs++;
}
}
}
pci_sys->num_devices = ndevs;
pci_sys->devices = calloc(ndevs, sizeof(struct pci_device_private));
if (pci_sys->devices == NULL) {
free(pci_sys);
close(pcifd);
return ENOMEM;
}
device = pci_sys->devices;
for (bus = 0; bus < 256; bus++) {
for (dev = 0; dev < 32; dev++) {
nfuncs = pci_nfuncs(bus, dev);
for (func = 0; func < nfuncs; func++) {
if (pci_read(bus, dev, func, PCI_ID_REG,
&reg) != 0)
continue;
if (PCI_VENDOR(reg) == PCI_VENDOR_INVALID ||
PCI_VENDOR(reg) == 0)
continue;
device->base.domain = 0;
device->base.bus = bus;
device->base.dev = dev;
device->base.func = func;
device->base.vendor_id = PCI_VENDOR(reg);
device->base.device_id = PCI_PRODUCT(reg);
if (pci_read(bus, dev, func, PCI_CLASS_REG,
&reg) != 0)
continue;
device->base.device_class =
PCI_INTERFACE(reg) | PCI_CLASS(reg) << 16 |
PCI_SUBCLASS(reg) << 8;
device->base.revision = PCI_REVISION(reg);
if (pci_read(bus, dev, func, PCI_SUBSYS_ID_REG,
&reg) != 0)
continue;
device->base.subvendor_id = PCI_VENDOR(reg);
device->base.subdevice_id = PCI_PRODUCT(reg);
device++;
}
}
}
return 0;
}

View file

@ -1,73 +0,0 @@
--- src/common_init.c.orig 2008-10-06 18:22:05.000000000 +0200
+++ src/common_init.c 2008-10-06 18:22:30.000000000 +0200
@@ -56,6 +56,8 @@
err = pci_system_linux_sysfs_create();
#elif defined(__FreeBSD__) || defined(__DragonFly__)
err = pci_system_freebsd_create();
+#elif defined(__NetBSD__)
+ err = pci_system_netbsd_create();
#elif defined(__OpenBSD__)
err = pci_system_openbsd_create();
#elif defined(__sun)
--- src/common_interface.c.orig 2008-10-06 18:22:55.000000000 +0200
+++ src/common_interface.c 2008-10-06 18:23:15.000000000 +0200
@@ -64,7 +64,7 @@
#define HTOLE_16(x) htole16(x)
#define HTOLE_32(x) htole32(x)
-#if defined(__FreeBSD__) || defined(__DragonFly__)
+#if defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__)
#define LETOH_16(x) le16toh(x)
#define LETOH_32(x) le32toh(x)
#else
--- src/Makefile.am.orig 2008-10-06 18:23:58.000000000 +0200
+++ src/Makefile.am 2008-10-06 18:24:44.000000000 +0200
@@ -33,6 +33,10 @@
OS_SUPPORT = freebsd_pci.c
endif
+if NETBSD
+OS_SUPPORT = netbsd_pci.c
+endif
+
if OPENBSD
OS_SUPPORT = openbsd_pci.c
endif
--- src/pciaccess_private.h.orig 2008-10-06 18:31:23.000000000 +0200
+++ src/pciaccess_private.h 2008-10-06 18:31:42.000000000 +0200
@@ -136,6 +136,7 @@ extern struct pci_system * pci_sys;
extern int pci_system_linux_sysfs_create( void );
extern int pci_system_freebsd_create( void );
+extern int pci_system_netbsd_create( void );
extern int pci_system_openbsd_create( void );
extern void pci_system_openbsd_init_dev_mem( int );
extern int pci_system_solx_devfs_create( void );
--- configure.ac.orig 2008-06-10 21:24:44.000000000 +0200
+++ configure.ac 2008-10-06 18:44:45.000000000 +0200
@@ -77,6 +77,17 @@ case $host_os in
*linux*)
linux=yes
;;
+ *netbsd*)
+ case $host in
+ *i386*)
+ PCIACCESS_LIBS="-li386"
+ ;;
+ *x86_64*|*amd64*)
+ PCIACCESS_LIBS="-lx86_64"
+ ;;
+ esac
+ netbsd=yes
+ ;;
*openbsd*)
openbsd=yes
;;
@@ -88,6 +99,7 @@ esac
AM_CONDITIONAL(LINUX, [test "x$linux" = xyes])
AM_CONDITIONAL(FREEBSD, [test "x$freebsd" = xyes])
+AM_CONDITIONAL(NETBSD, [test "x$netbsd" = xyes])
AM_CONDITIONAL(OPENBSD, [test "x$openbsd" = xyes])
AM_CONDITIONAL(SOLARIS, [test "x$solaris" = xyes])

View file

@ -1,6 +0,0 @@
# Added support for NetBSD, as specified here:
# https://bugs.freedesktop.org/show_bug.cgi?id=17931
$cp_cmd -f $XBPS_TEMPLATESDIR/$pkgname-netbsd-pci.c \
$XBPS_BUILDDIR/$pkgname-$version/src/netbsd_pci.c
cd $XBPS_BUILDDIR/$pkgname-$version && sh ./autogen.sh

View file

@ -1,5 +0,0 @@
# Add the correct rpath flags to libpng-config.
$sed_cmd -e '/^L_opts=/s|-L\([ ]*[^ ]*\)"|-Wl,-R\1 -L\1"|g' \
$wrksrc/libpng-config > $wrksrc/libpng-config.in
$mv_cmd -f $wrksrc/libpng-config.in $wrksrc/libpng-config

View file

@ -1,57 +0,0 @@
#
# Perl files with hardcoded shebang path.
#
mono_perl_files="mcs/errors/do-tests.pl mcs/tools/scan-tests.pl
msvc/create-windef.pl mono/benchmark/test-driver mono/cil/make-opcodes-def.pl
mono/metadata/make-bundle.pl mono/mini/genmdesc.pl mono/tests/stress-runner.pl"
#
# Bash files with hardcoded shebang path.
#
mono_bash_files="mono/arch/arm/dpiops.sh mono/arch/arm/fpaops.sh
mono/arch/arm/vfpops.sh mono/tests/make_imt_test.sh
scripts/mono-find-provides.in scripts/mono-find-requires.in
scripts/mono-test-install web/mono-build-w32.sh
mcs/class/Mono.WebBrowser/build-csproj2k5
mcs/class/Managed.Windows.Forms/build-csproj
mcs/class/Managed.Windows.Forms/build-csproj2k5
mcs/class/Mono.Cairo/Samples/gtk/compile.sh
mcs/class/Mono.Cairo/Samples/png/compile.sh
mcs/class/Mono.Cairo/Samples/win32/compile.sh
mcs/class/Mono.Cairo/Samples/x11/compile.sh mcs/tools/tinderbox/tinderbox.sh"
. $XBPS_TMPLHELPDIR/replace-interpreter.sh
for f in ${mono_bash_files}; do
replace_interpreter bash $f
done
for f in ${mono_perl_files}; do
replace_interpreter perl $f
done
unset mono_perl_files mono_bash_files
#
# Fix up wrong pkg-config prefix vars.
#
mono_pc_files="data/cecil.pc.in data/dotnet.pc.in
data/dotnet35.pc.in data/mint.pc.in data/mono-cairo.pc.in
data/mono.pc.in data/smcs.pc.in scripts/mono-nunit.pc.in"
for f in ${mono_pc_files}; do
$sed_cmd -e "s|\${pcfiledir}/../..|$XBPS_MASTERDIR|g" \
$wrksrc/$f > $wrksrc/$f.sed && \
$mv_cmd $wrksrc/$f.sed $wrksrc/$f
done
unset mono_pc_files
#
# Fix up hardcoded default path in mcs.
#
$sed_cmd -e "s|/usr/local|$XBPS_MASTERDIR|g" \
$wrksrc/mcs/build/config-default.make > \
$wrksrc/mcs/build/config-default.make.in && \
$mv_cmd $wrksrc/mcs/build/config-default.make.in \
$wrksrc/mcs/build/config-default.make

View file

@ -1,5 +0,0 @@
#
# Grr. Stupid Makefile, remove stuff installed in wrong dir.
#
rm -rf $XBPS_DESTDIR/$pkgname-$version/usr/usr

View file

@ -25,3 +25,9 @@ if [ "$xbps_machine" = "x86_64" ]; then
else
configure_args="$configure_args linux-elf"
fi
post_install()
{
# Grr. Stupid Makefile, remove stuff installed in wrong dir.
rm -rf $XBPS_DESTDIR/$pkgname-$version/usr/usr
}

View file

@ -1,12 +0,0 @@
# This fixes the definitions that the perl binary uses to look at
# prefix and not XBPS_DESTDIR/MASTERDIR.
if [ "$XBPS_DESTDIR" != "/xbps" ]; then
sed -i -e "s|$XBPS_DESTDIR\/$pkgname-$version|/usr|g" $wrksrc/config.h
fi
sed -i -e "s|/usr/usr|/usr|g" $wrksrc/config.h
if [ "$XBPS_MASTERDIR" != "/" ]; then
sed -i -e "s|$XBPS_MASTERDIR||g" $wrksrc/config.h
fi

View file

@ -21,3 +21,20 @@ long_desc="
collections of third-party modules."
run_depends="glibc-2.8"
pre_build()
{
# This fixes the definitions that the perl binary uses to look at
# prefix and not XBPS_DESTDIR/MASTERDIR.
if [ "$XBPS_DESTDIR" != "/xbps" ]; then
sed -i -e "s|$XBPS_DESTDIR\/$pkgname-$version|/usr|g" \
$wrksrc/config.h
fi
sed -i -e "s|/usr/usr|/usr|g" $wrksrc/config.h
if [ "$XBPS_MASTERDIR" != "/" ]; then
sed -i -e "s|$XBPS_MASTERDIR||g" $wrksrc/config.h
fi
}

View file

@ -1,5 +0,0 @@
# Replace hardcoded paths in XDG_DATA_DIRS.
$sed_cmd -e "s|/usr/local/share|$XBPS_MASTERDIR/share|g" \
$wrksrc/update-mime-database.c > $wrksrc/update-mime-database.c.in && \
$mv_cmd -f $wrksrc/update-mime-database.c.in $wrksrc/update-mime-database.c

View file

@ -26,3 +26,10 @@ long_desc="
# Update shared-mime-info database file.
postinstall_helpers="update-mimedb.sh"
pre_configure()
{
# Replace hardcoded paths in XDG_DATA_DIRS.
sed -i -e "s|/usr/local/share|$XBPS_MASTERDIR/share|g" \
$wrksrc/update-mime-database.c
}

View file

@ -1,4 +0,0 @@
#
# Disable looking for this file which causes an error.
#
sed -i -e 's|win32/syslinux.exe||g' $wrksrc/Makefile

View file

@ -17,3 +17,9 @@ long_desc="
build_depends="perl-5.10.0 nasm-2.05"
run_depends="glibc-2.8"
pre_configure()
{
# Disable this file which causes an error.
sed -i -e 's|win32/syslinux.exe||g' $wrksrc/Makefile
}

View file

@ -1,7 +0,0 @@
# Move udev rules and libs into /lib.
mkdir -p $XBPS_DESTDIR/$pkgname-$version/lib/udev
mv $XBPS_DESTDIR/$pkgname-$version/usr/lib/udev \
$XBPS_DESTDIR/$pkgname-$version/lib/udev
mv $XBPS_DESTDIR/$pkgname-$version/usr/lib/lib* \
$XBPS_DESTDIR/$pkgname-$version/lib/

View file

@ -16,3 +16,13 @@ long_desc="
base_package=yes
run_depends="glibc-2.8"
post_install()
{
# Move udev rules and libs into /lib.
mkdir -p $XBPS_DESTDIR/$pkgname-$version/lib/udev
mv $XBPS_DESTDIR/$pkgname-$version/usr/lib/udev \
$XBPS_DESTDIR/$pkgname-$version/lib/udev
mv $XBPS_DESTDIR/$pkgname-$version/usr/lib/lib* \
$XBPS_DESTDIR/$pkgname-$version/lib/
}

View file

@ -1,23 +0,0 @@
#
# Install the XML/SGML catalog files.
#
echo "=> Installing XML/SGML catalogs."
$chmod_cmd 644 $wrksrc/catalog.*
[ ! -d $XBPS_SYSCONFDIR/sgml ] && $mkdir_cmd $XBPS_SYSCONFDIR/sgml
[ ! -d $XBPS_DESTDIR/$pkgname-$version/share/sgml ] && \
$mkdir_cmd $XBPS_DESTDIR/$pkgname-$version/share/sgml
[ ! -d $XBPS_SYSCONFDIR/xml ] && $mkdir_cmd $XBPS_SYSCONFDIR/xml
[ ! -d $XBPS_DESTDIR/$pkgname-$version/share/xml ] && \
$mkdir_cmd $XBPS_DESTDIR/$pkgname-$version/share/xml
[ ! -f $XBPS_SYSCONFDIR/sgml/catalog ] && \
$cp_cmd $wrksrc/catalog.etc.sgml $XBPS_SYSCONFDIR/sgml/catalog
[ ! -f $XBPS_SYSCONFDIR/xml/catalog ] && \
$cp_cmd $wrksrc/catalog.etc.xml $XBPS_SYSCONFDIR/xml/catalog
[ ! -f $XBPS_DESTDIR/$pkgname-$version/share/sgml/catalog ] && \
$cp_cmd $wrksrc/catalog.sgml \
$XBPS_DESTDIR/$pkgname-$version/share/sgml/catalog
[ ! -f $XBPS_DESTDIR/$pkgname-$version/share/xml/catalog ] && \
$cp_cmd $wrksrc/catalog.xml \
$XBPS_DESTDIR/$pkgname-$version/share/xml/catalog

View file

@ -1,14 +0,0 @@
#
# Create XML and SGML catalogs once built.
#
echo "=> Creating SGML catalogs..."
$wrksrc/xmlcatmgr -sc $wrksrc/catalog.etc.sgml create
$wrksrc/xmlcatmgr -sc $wrksrc/catalog.sgml create
$wrksrc/xmlcatmgr -sc $wrksrc/catalog.etc.sgml add CATALOG \
$XBPS_MASTERDIR/share/sgml/catalog
echo "=> Creating XML catalogs..."
$wrksrc/xmlcatmgr -c $wrksrc/catalog.etc.xml create
$wrksrc/xmlcatmgr -c $wrksrc/catalog.xml create
$wrksrc/xmlcatmgr -c $wrksrc/catalog.etc.xml add nextCatalog \
$XBPS_MASTERDIR/share/xml/catalog

View file

@ -4,10 +4,9 @@ version=2.2
distfiles="
http://kent.dl.sourceforge.net/sourceforge/xmlcatmgr/$pkgname-$version@.tar.gz"
build_style=gnu_configure
make_cmd="$XBPS_MASTERDIR/bin/gmake"
short_desc="XML and SGML catalog manager"
maintainer="Juan RP <xtraeme@gmail.com>"
checksum=6d01a88defccd086758f78d345a2abdf4be5c970
checksum=ea1142b6aef40fbd624fc3e2130cf10cf081b5fa88e5229c92b8f515779d6fdc
long_desc="
XML Catalog Manager (xmlcatmgr in its short form) is a small utility used
to manipulate SGML and XML catalogs. It is extremely small and lightweight,
@ -18,3 +17,46 @@ long_desc="
different entities. They can, for example, map public identifiers to
local files or URIs. This allows you to tell the parser where to look
for entities without having to modify the original document source."
pre_install()
{
# Create XML and SGML catalogs once built.
echo "=> Creating SGML catalogs..."
$wrksrc/xmlcatmgr -sc $wrksrc/catalog.etc.sgml create
$wrksrc/xmlcatmgr -sc $wrksrc/catalog.sgml create
$wrksrc/xmlcatmgr -sc $wrksrc/catalog.etc.sgml add CATALOG \
$XBPS_MASTERDIR/share/sgml/catalog
echo "=> Creating XML catalogs..."
$wrksrc/xmlcatmgr -c $wrksrc/catalog.etc.xml create
$wrksrc/xmlcatmgr -c $wrksrc/catalog.xml create
$wrksrc/xmlcatmgr -c $wrksrc/catalog.etc.xml add nextCatalog \
$XBPS_MASTERDIR/share/xml/catalog
}
post_install()
{
# Install the XML/SGML catalog files.
echo "=> Installing XML/SGML catalogs."
chmod 644 $wrksrc/catalog.*
[ ! -d $XBPS_SYSCONFDIR/sgml ] && mkdir $XBPS_SYSCONFDIR/sgml
[ ! -d $XBPS_DESTDIR/$pkgname-$version/share/sgml ] && \
mkdir $XBPS_DESTDIR/$pkgname-$version/share/sgml
[ ! -d $XBPS_SYSCONFDIR/xml ] && mkdir $XBPS_SYSCONFDIR/xml
[ ! -d $XBPS_DESTDIR/$pkgname-$version/share/xml ] && \
mkdir $XBPS_DESTDIR/$pkgname-$version/share/xml
[ ! -f $XBPS_SYSCONFDIR/sgml/catalog ] && \
cp $wrksrc/catalog.etc.sgml \
$XBPS_DESTDIR/$pkgname-$version/etc/sgml/catalog
[ ! -f $XBPS_SYSCONFDIR/xml/catalog ] && \
cp $wrksrc/catalog.etc.xml \
$XBPS_DESTDIR/$pkgname-$version/etc/xml/catalog
[ ! -f $XBPS_DESTDIR/$pkgname-$version/share/sgml/catalog ] && \
cp $wrksrc/catalog.sgml \
$XBPS_DESTDIR/$pkgname-$version/share/sgml/catalog
[ ! -f $XBPS_DESTDIR/$pkgname-$version/share/xml/catalog ] && \
cp $wrksrc/catalog.xml \
$XBPS_DESTDIR/$pkgname-$version/share/xml/catalog
}

46
xbps.sh
View file

@ -122,6 +122,16 @@ run_file()
. $path_fixed
}
run_func()
{
func="$1"
[ -z "$func" ] && return 1
type $func | grep -q 'shell function'
[ $? -eq 0 ] && $func
}
#
# Shows info about a template.
#
@ -212,11 +222,10 @@ reset_tmpl_vars()
local TMPL_VARS="pkgname distfiles configure_args configure_env \
make_build_args make_install_args build_style \
short_desc maintainer long_desc checksum wrksrc \
patch_files make_cmd base_package \
patch_files make_cmd base_package base_chroot \
make_env make_build_target configure_script \
pre_configure_cmd pre_build_cmd pre_install_cmd \
post_install_cmd postinstall_helpers \
make_install_target version \
pre_configure pre_build pre_install post_install \
postinstall_helpers make_install_target version \
ignore_files tar_override_cmd xml_entries sgml_entries \
build_depends libtool_fixup_la_stage no_fixup_libtool \
XBPS_EXTRACT_DONE XBPS_CONFIGURE_DONE \
@ -686,19 +695,16 @@ configure_src_phase()
# Apply patches if requested by template file
[ ! -f $XBPS_APPLYPATCHES_DONE ] && apply_tmpl_patches
echo "=> Running configure phase for $pkgname-$version."
# Run pre_configure helpers.
local rbcf="$XBPS_TEMPLATESDIR/$pkgname.pre_configure"
[ -f "$rbcf" ] && . $rbcf
[ -n "$pre_configure_cmd" ] && ${pre_configure_cmd}
unset rbcf
run_func pre_configure
# Export configure_env vars.
for f in ${configure_env}; do
export "$f"
done
echo "=> Running configure phase for $pkgname-$version."
set_build_vars
[ -z "$configure_script" ] && configure_script="./configure"
@ -794,8 +800,6 @@ build_src_phase()
cd $wrksrc || exit 1
echo "=> Running build phase for $pkg."
#
# Assume BSD make if make_cmd not set in template.
#
@ -806,10 +810,7 @@ build_src_phase()
#
# Run pre_build helpers.
#
local rbbf="$XBPS_TEMPLATESDIR/$pkgname.pre_build"
[ -f $rbbf ] && . $rbbf
[ -n "$pre_build_cmd" ] && ${pre_build_cmd}
unset rbbf
run_func pre_build
[ -z "$make_build_target" ] && make_build_target=
[ -n "$XBPS_MAKEJOBS" ] && makejobs="-j$XBPS_MAKEJOBS"
@ -821,6 +822,9 @@ build_src_phase()
libtool_fixup_file
set_build_vars
echo "=> Running build phase for $pkg."
#
# Build package via make.
#
@ -835,10 +839,7 @@ build_src_phase()
#
# Run pre_install helpers.
#
local rbif="$XBPS_TEMPLATESDIR/$pkgname.pre_install"
[ -f $rbif ] && . $rbif
[ -n "$pre_install_cmd" ] && ${pre_install_cmd}
unset rbif
run_func pre_install
if [ -z "$libtool_fixup_la_stage" \
-o "$libtool_fixup_la_stage" = "postbuild" ]; then
@ -904,10 +905,7 @@ install_src_phase()
#
# Run post_install helpers.
#
local raif="$XBPS_TEMPLATESDIR/$pkgname.post_install"
[ -f $raif ] && . $raif
[ -n "$post_install_cmd" ] && ${post_install_cmd}
unset raif
run_func post_install
# Unset build vars.
unset_build_vars