From e9231b5999e0ba59874234b9b01df85d4e4581fe Mon Sep 17 00:00:00 2001 From: Juan RP Date: Mon, 27 Oct 2008 06:12:30 +0100 Subject: [PATCH] More changes to {pre,post}_ 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}_() shell function. Also remove some NetBSD specific stuff that is not useful anymore. --HG-- extra : convert_revision : b7157c61c92c05904e0e4d971268e5f018db46bc --- templates/bash.post_install | 7 - templates/bash.tmpl | 9 + templates/font-util.pre_build | 6 - templates/gcc.post_install | 5 - templates/gcc.pre_configure | 4 - templates/gcc.tmpl | 12 + templates/glibc.post_install | 16 - templates/glibc.pre_configure | 5 - templates/glibc.pre_install | 4 - templates/glibc.tmpl | 35 ++ templates/gtk-sharp.pre_build | 19 - templates/libpciaccess-netbsd-pci.c | 409 --------------------- templates/libpciaccess-netbsd-support.diff | 73 ---- templates/libpciaccess.pre_configure | 6 - templates/libpng.pre_build | 5 - templates/mono.pre_configure | 57 --- templates/openssl.post_install | 5 - templates/openssl.tmpl | 6 + templates/perl.pre_build | 12 - templates/perl.tmpl | 17 + templates/shared-mime-info.pre_configure | 5 - templates/shared-mime-info.tmpl | 7 + templates/syslinux.pre_build | 4 - templates/syslinux.tmpl | 6 + templates/udev.post_install | 7 - templates/udev.tmpl | 10 + templates/xmlcatmgr.post_install | 23 -- templates/xmlcatmgr.pre_install | 14 - templates/xmlcatmgr.tmpl | 46 ++- xbps.sh | 46 ++- 30 files changed, 168 insertions(+), 712 deletions(-) delete mode 100644 templates/bash.post_install delete mode 100644 templates/font-util.pre_build delete mode 100644 templates/gcc.post_install delete mode 100644 templates/gcc.pre_configure delete mode 100644 templates/glibc.post_install delete mode 100644 templates/glibc.pre_configure delete mode 100644 templates/glibc.pre_install delete mode 100644 templates/gtk-sharp.pre_build delete mode 100644 templates/libpciaccess-netbsd-pci.c delete mode 100644 templates/libpciaccess-netbsd-support.diff delete mode 100644 templates/libpciaccess.pre_configure delete mode 100644 templates/libpng.pre_build delete mode 100644 templates/mono.pre_configure delete mode 100644 templates/openssl.post_install delete mode 100644 templates/perl.pre_build delete mode 100644 templates/shared-mime-info.pre_configure delete mode 100644 templates/syslinux.pre_build delete mode 100644 templates/udev.post_install delete mode 100644 templates/xmlcatmgr.post_install delete mode 100644 templates/xmlcatmgr.pre_install diff --git a/templates/bash.post_install b/templates/bash.post_install deleted file mode 100644 index c31b3396f4..0000000000 --- a/templates/bash.post_install +++ /dev/null @@ -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 diff --git a/templates/bash.tmpl b/templates/bash.tmpl index 741c4204b5..b422f9364d 100644 --- a/templates/bash.tmpl +++ b/templates/bash.tmpl @@ -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 +} diff --git a/templates/font-util.pre_build b/templates/font-util.pre_build deleted file mode 100644 index 394891c07d..0000000000 --- a/templates/font-util.pre_build +++ /dev/null @@ -1,6 +0,0 @@ -# -# Transform perl shebang path with correct one in bdftruncate.pl. -# - -. $XBPS_TMPLHELPDIR/replace-interpreter.sh -replace_interpreter perl bdftruncate.pl diff --git a/templates/gcc.post_install b/templates/gcc.post_install deleted file mode 100644 index aa0764c974..0000000000 --- a/templates/gcc.post_install +++ /dev/null @@ -1,5 +0,0 @@ -# -# Make /usr/bin/gcc -> /usr/bin/cc symlink. -# - -cd $XBPS_DESTDIR/$pkgname-$version/usr/bin && ln -s gcc cc diff --git a/templates/gcc.pre_configure b/templates/gcc.pre_configure deleted file mode 100644 index 932e47eada..0000000000 --- a/templates/gcc.pre_configure +++ /dev/null @@ -1,4 +0,0 @@ -# -# As specified in the LFS book, disable installing libiberty. -# -sed -i 's/install_to_$(INSTALL_DEST) //' $wrksrc/libiberty/Makefile.in diff --git a/templates/gcc.tmpl b/templates/gcc.tmpl index 5a0a17cae7..a43d0c44ec 100644 --- a/templates/gcc.tmpl +++ b/templates/gcc.tmpl @@ -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 +} diff --git a/templates/glibc.post_install b/templates/glibc.post_install deleted file mode 100644 index a9590d83a1..0000000000 --- a/templates/glibc.post_install +++ /dev/null @@ -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 diff --git a/templates/glibc.pre_configure b/templates/glibc.pre_configure deleted file mode 100644 index 8fbe8cca80..0000000000 --- a/templates/glibc.pre_configure +++ /dev/null @@ -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 diff --git a/templates/glibc.pre_install b/templates/glibc.pre_install deleted file mode 100644 index bf96104a03..0000000000 --- a/templates/glibc.pre_install +++ /dev/null @@ -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 diff --git a/templates/glibc.tmpl b/templates/glibc.tmpl index e251331d67..c229f08aba 100644 --- a/templates/glibc.tmpl +++ b/templates/glibc.tmpl @@ -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 +} diff --git a/templates/gtk-sharp.pre_build b/templates/gtk-sharp.pre_build deleted file mode 100644 index 436ba431fd..0000000000 --- a/templates/gtk-sharp.pre_build +++ /dev/null @@ -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 diff --git a/templates/libpciaccess-netbsd-pci.c b/templates/libpciaccess-netbsd-pci.c deleted file mode 100644 index 8b39edf674..0000000000 --- a/templates/libpciaccess-netbsd-pci.c +++ /dev/null @@ -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 -#include -#include -#include - -#include -#include - -#include -#include -#include - -#include -#include -#include -#include -#include -#include - - -#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, ®); - 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, ®); - 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, ®); - 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, - ®) != 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, - ®) != 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, - ®) != 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, - ®) != 0) - continue; - - device->base.subvendor_id = PCI_VENDOR(reg); - device->base.subdevice_id = PCI_PRODUCT(reg); - - device++; - } - } - } - - return 0; -} diff --git a/templates/libpciaccess-netbsd-support.diff b/templates/libpciaccess-netbsd-support.diff deleted file mode 100644 index f620d5c142..0000000000 --- a/templates/libpciaccess-netbsd-support.diff +++ /dev/null @@ -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]) - diff --git a/templates/libpciaccess.pre_configure b/templates/libpciaccess.pre_configure deleted file mode 100644 index 506caf7dcd..0000000000 --- a/templates/libpciaccess.pre_configure +++ /dev/null @@ -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 diff --git a/templates/libpng.pre_build b/templates/libpng.pre_build deleted file mode 100644 index a468520cfd..0000000000 --- a/templates/libpng.pre_build +++ /dev/null @@ -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 diff --git a/templates/mono.pre_configure b/templates/mono.pre_configure deleted file mode 100644 index 8daceb71e6..0000000000 --- a/templates/mono.pre_configure +++ /dev/null @@ -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 diff --git a/templates/openssl.post_install b/templates/openssl.post_install deleted file mode 100644 index 937d2399fb..0000000000 --- a/templates/openssl.post_install +++ /dev/null @@ -1,5 +0,0 @@ -# -# Grr. Stupid Makefile, remove stuff installed in wrong dir. -# - -rm -rf $XBPS_DESTDIR/$pkgname-$version/usr/usr diff --git a/templates/openssl.tmpl b/templates/openssl.tmpl index 35bcf87fca..3dc6c14282 100644 --- a/templates/openssl.tmpl +++ b/templates/openssl.tmpl @@ -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 +} diff --git a/templates/perl.pre_build b/templates/perl.pre_build deleted file mode 100644 index d590593fb5..0000000000 --- a/templates/perl.pre_build +++ /dev/null @@ -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 diff --git a/templates/perl.tmpl b/templates/perl.tmpl index 6c5f9b9a9b..439478bd31 100644 --- a/templates/perl.tmpl +++ b/templates/perl.tmpl @@ -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 +} diff --git a/templates/shared-mime-info.pre_configure b/templates/shared-mime-info.pre_configure deleted file mode 100644 index 4889d8c2da..0000000000 --- a/templates/shared-mime-info.pre_configure +++ /dev/null @@ -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 diff --git a/templates/shared-mime-info.tmpl b/templates/shared-mime-info.tmpl index 9c4979b468..6b42ae438f 100644 --- a/templates/shared-mime-info.tmpl +++ b/templates/shared-mime-info.tmpl @@ -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 +} diff --git a/templates/syslinux.pre_build b/templates/syslinux.pre_build deleted file mode 100644 index 711775f26e..0000000000 --- a/templates/syslinux.pre_build +++ /dev/null @@ -1,4 +0,0 @@ -# -# Disable looking for this file which causes an error. -# -sed -i -e 's|win32/syslinux.exe||g' $wrksrc/Makefile diff --git a/templates/syslinux.tmpl b/templates/syslinux.tmpl index 1af0752b21..86e2d07137 100644 --- a/templates/syslinux.tmpl +++ b/templates/syslinux.tmpl @@ -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 +} diff --git a/templates/udev.post_install b/templates/udev.post_install deleted file mode 100644 index 43d837c9cf..0000000000 --- a/templates/udev.post_install +++ /dev/null @@ -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/ diff --git a/templates/udev.tmpl b/templates/udev.tmpl index 0ced8c0af8..3458860851 100644 --- a/templates/udev.tmpl +++ b/templates/udev.tmpl @@ -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/ +} diff --git a/templates/xmlcatmgr.post_install b/templates/xmlcatmgr.post_install deleted file mode 100644 index f342897c1e..0000000000 --- a/templates/xmlcatmgr.post_install +++ /dev/null @@ -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 diff --git a/templates/xmlcatmgr.pre_install b/templates/xmlcatmgr.pre_install deleted file mode 100644 index 4bbdbeee1a..0000000000 --- a/templates/xmlcatmgr.pre_install +++ /dev/null @@ -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 diff --git a/templates/xmlcatmgr.tmpl b/templates/xmlcatmgr.tmpl index cae2f784c9..48c0de93f3 100644 --- a/templates/xmlcatmgr.tmpl +++ b/templates/xmlcatmgr.tmpl @@ -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 " -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 +} diff --git a/xbps.sh b/xbps.sh index 399983b2c5..b98516d2cf 100755 --- a/xbps.sh +++ b/xbps.sh @@ -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