All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [pull request] Pull request for branch yem-qemu v5
@ 2012-12-10 23:44 Yann E. MORIN
  2012-12-10 23:44 ` [Buildroot] [PATCH 01/52] package/qemu: add license information Yann E. MORIN
                   ` (51 more replies)
  0 siblings, 52 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:44 UTC (permalink / raw)
  To: buildroot

Hello!

This patch series adds qemu as a package to run on the target.

Although this may sound weird in a first place, I use it to build a
simple VM server.

I also use it to build statically-linked user-emulation to run foreign
chroots on my PC (eg. running an ARM chroot on my x86_64), because
using glibc for static-linking is not possible (it still requires some
shared libs that it dlopens at runtime).

In the future, I plan on adding libvirt to remotely manage the VM server.

Changes v4 -> v5:
  - drop autoreconf where not needed (Thomas)
  - explain autoreconf for slirp (Thomas)
  - fix host-qemu incorrect dependencies on target packages (Arnout)
  - fix vde2 description and URL (Arnout)
  - add missing dependencies in some Config.in (with help from Peter)
  - fix another SF URL

Changes v3 -> v4:
  - drop applied cURL fix (Peter)
  - fix some licenses infos (Thomas, Arnout)
  - rename DTC's make goals (Arnout) [*]
  - no longer autoreconf libiscsi (Thomas)
  - use autotools-package infra for qemu
  - drop bsd-user emulation, it does not build on Linux
  - move DTC to the end of the series, in case it is still a problem.

  [*] Not really using the names we discussed on the list, as Thomas said
      on IRC: "do not over-engineer", or "YAGNI". When/if the make-package
      infra is added, it will *then* be time to rename the variables, and
      nothing can guarantee that the names we choose *now* will still be
      relevant *then* .

Changes v2 -> v3:
  - act on Arnout's comments on v2:
    - cURL fix as a post-patch hook rather than post-install hook
    - dtc package name, install tools
    - usbredir cleanups
    - cegui06 package name
  - update to qemu 1.2.1

Thank you!

Regards,
Yann E. MORIN.

The following changes since commit 7ffda3e241c4d57394d9f5eeb19e41a3546c0495:

  tcllib: new package (2012-12-10 22:36:03 +0100)

are available in the git repository at:
  git://gitorious.org/buildroot/buildroot.git yem-qemu

Yann E. MORIN (52):
      package/qemu: add license information
      package/qemu: fix host-qemu variable names
      package/qemu: fix host dependencies
      package/qemu: use autotools-package infrastructure
      package/qemu: bump version
      package/vde2: new package
      package/libiscsi: new package
      package/usbredir: new package
      package/celt051: new package
      package/python-pyparsing: new package
      package/spice-protocol: new package
      package/cegui06: new package
      package/slirp: new package
      package/spice: new package
      package/spice: enable client
      package/spice: enable GUI
      package/spice: enable slirp support
      package/libseccomp: new package
      package/keyutils: new package
      package/pmake: add host pmake
      package/libbsd: new package
      package/libedit2: new package
      package/ceph: new package
      package/qemu: build for the target (i386 or x86_64 only)
      package/qemu: add basic target selection
      package/qemu: add fine-grained target selection
      package/qemu: add SDL frontends
      package/qemu: add option to enable/disable the VNC frontend
      package/qemu: add VNC jpeg and png compression
      package/qemu: add VNC TLS-encryption
      package/qemu: add option to not install blobs
      package/qemu: add option to remove unwanted keymaps
      package/qemu: add uuid support
      package/qemu: add support for capabilities
      package/qemu: add attr/xattr option
      package/qemu: add support for virtfs
      package/qemu: add support for cURL
      package/qemu: enable use of the curses frontend
      package/qemu: add BlueZ connectivity
      package/qemu: add AIO support
      package/qemu: add support for VDE switches
      package/qemu: add iSCSI support
      package/qemu: add support for USB redirection
      package/qemu: add support for Spice
      package/qemu: enable sound
      package/qemu: add support for libseccomp
      package/qemu: option to build the docs
      package/qemu: move sub-options into a sub-menu
      package/qemu: enable a static build
      package/dtc: new package
      package/dtc: add option to install programs
      package/qemu: add support for FDT

 package/Config.in                                  |   15 +
 package/cegui06/Config.in                          |   15 +
 package/cegui06/cegui06-stddef.h.patch             |   26 +
 package/cegui06/cegui06.mk                         |   36 +
 package/ceph/Config.in                             |   18 +
 package/ceph/ceph-no-envz.patch                    |   63 +
 package/ceph/ceph-no-getloadavg.patch              |   61 +
 package/ceph/ceph-no-posix_fallocate.patch         |   50 +
 package/ceph/ceph.mk                               |   53 +
 package/dtc/Config.in                              |   29 +
 package/dtc/dtc-extra_cflags.patch                 |   27 +
 package/dtc/dtc-separate-lib-install.patch         |   28 +
 package/dtc/dtc.mk                                 |   51 +
 package/keyutils/Config.in                         |    7 +
 .../keyutils-01-memleak-from-realloc.patch         |   51 +
 package/keyutils/keyutils-02-another-memleak.patch |   32 +
 package/keyutils/keyutils-03-cifs.patch            |   15 +
 .../keyutils-04-Makefile-for-buildroot.patch       |   65 +
 .../keyutils/keyutils-05-fix-install-rule.patch    |   19 +
 package/keyutils/keyutils.mk                       |   32 +
 package/libbsd/Config.in                           |   10 +
 package/libbsd/libbsd.mk                           |   21 +
 package/libedit2/Config.in                         |    9 +
 package/libedit2/libedit2-01-Makefile.patch        |   25 +
 package/libedit2/libedit2-02-el.c-issetugid.patch  |   24 +
 package/libedit2/libedit2-03-el.c-MAXPATHLEN.patch |   40 +
 .../libedit2/libedit2-04-readline.h-stdio.patch    |   17 +
 .../libedit2/libedit2-08-readline-history.h.patch  |   20 +
 .../libedit2/libedit2-10-define_SIZE_T_MAX.patch   |   18 +
 .../libedit2/libedit2-12-libedit-Makefile.patch    |   54 +
 package/libedit2/libedit2-20-fortify.patch         |   23 +
 package/libedit2/libedit2.mk                       |   75 +
 package/libedit2/libedit2.pc                       |   13 +
 package/libiscsi/Config.in                         |   12 +
 package/libiscsi/libiscsi.mk                       |   15 +
 package/libseccomp/Config.in                       |   13 +
 ...ibseccomp-use-system-headers-from-sysroot.patch |   17 +
 package/libseccomp/libseccomp.mk                   |   22 +
 package/multimedia/Config.in                       |    1 +
 package/multimedia/celt051/Config.in               |   15 +
 package/multimedia/celt051/celt.mk                 |   30 +
 package/pmake/pmake-100_mk.patch                   | 2624 ++++++++++++++++++++
 package/pmake/pmake-110_mkdep.patch                |  230 ++
 package/pmake/pmake-120_fixes.patch                |  266 ++
 package/pmake/pmake-130_maxpathlen.patch           |   39 +
 package/pmake/pmake-140_multiarch.patch            |  354 +++
 package/pmake/pmake-150_mktemp.patch               |   31 +
 package/pmake/pmake.mk                             |   46 +
 package/python-pyparsing/Config.in                 |   11 +
 package/python-pyparsing/python-pyparsing.mk       |   38 +
 package/qemu/Config.in                             |  338 +++
 package/qemu/qemu-static-curl.patch                |   72 +
 package/qemu/qemu-static-sdl.patch                 |   54 +
 package/qemu/qemu.mk                               |  331 +++-
 package/slirp/Config.in                            |   25 +
 package/slirp/slirp.mk                             |   21 +
 package/spice-protocol/Config.in                   |   12 +
 package/spice-protocol/spice-protocol.mk           |   14 +
 package/spice/Config.in                            |   51 +
 package/spice/spice.mk                             |   80 +
 package/usbredir/Config.in                         |   28 +
 package/usbredir/usbredir.mk                       |   31 +
 package/vde2/Config.in                             |   10 +
 package/vde2/vde2.mk                               |   36 +
 64 files changed, 5888 insertions(+), 21 deletions(-)
 create mode 100644 package/cegui06/Config.in
 create mode 100644 package/cegui06/cegui06-stddef.h.patch
 create mode 100644 package/cegui06/cegui06.mk
 create mode 100644 package/ceph/Config.in
 create mode 100644 package/ceph/ceph-no-envz.patch
 create mode 100644 package/ceph/ceph-no-getloadavg.patch
 create mode 100644 package/ceph/ceph-no-posix_fallocate.patch
 create mode 100644 package/ceph/ceph.mk
 create mode 100644 package/dtc/Config.in
 create mode 100644 package/dtc/dtc-extra_cflags.patch
 create mode 100644 package/dtc/dtc-separate-lib-install.patch
 create mode 100644 package/dtc/dtc.mk
 create mode 100644 package/keyutils/Config.in
 create mode 100644 package/keyutils/keyutils-01-memleak-from-realloc.patch
 create mode 100644 package/keyutils/keyutils-02-another-memleak.patch
 create mode 100644 package/keyutils/keyutils-03-cifs.patch
 create mode 100644 package/keyutils/keyutils-04-Makefile-for-buildroot.patch
 create mode 100644 package/keyutils/keyutils-05-fix-install-rule.patch
 create mode 100644 package/keyutils/keyutils.mk
 create mode 100644 package/libbsd/Config.in
 create mode 100644 package/libbsd/libbsd.mk
 create mode 100644 package/libedit2/Config.in
 create mode 100644 package/libedit2/libedit2-01-Makefile.patch
 create mode 100644 package/libedit2/libedit2-02-el.c-issetugid.patch
 create mode 100644 package/libedit2/libedit2-03-el.c-MAXPATHLEN.patch
 create mode 100644 package/libedit2/libedit2-04-readline.h-stdio.patch
 create mode 100644 package/libedit2/libedit2-08-readline-history.h.patch
 create mode 100644 package/libedit2/libedit2-10-define_SIZE_T_MAX.patch
 create mode 100644 package/libedit2/libedit2-12-libedit-Makefile.patch
 create mode 100644 package/libedit2/libedit2-20-fortify.patch
 create mode 100644 package/libedit2/libedit2.mk
 create mode 100644 package/libedit2/libedit2.pc
 create mode 100644 package/libiscsi/Config.in
 create mode 100644 package/libiscsi/libiscsi.mk
 create mode 100644 package/libseccomp/Config.in
 create mode 100644 package/libseccomp/libseccomp-use-system-headers-from-sysroot.patch
 create mode 100644 package/libseccomp/libseccomp.mk
 create mode 100644 package/multimedia/celt051/Config.in
 create mode 100644 package/multimedia/celt051/celt.mk
 create mode 100644 package/pmake/pmake-100_mk.patch
 create mode 100644 package/pmake/pmake-110_mkdep.patch
 create mode 100644 package/pmake/pmake-120_fixes.patch
 create mode 100644 package/pmake/pmake-130_maxpathlen.patch
 create mode 100644 package/pmake/pmake-140_multiarch.patch
 create mode 100644 package/pmake/pmake-150_mktemp.patch
 create mode 100644 package/pmake/pmake.mk
 create mode 100644 package/python-pyparsing/Config.in
 create mode 100644 package/python-pyparsing/python-pyparsing.mk
 create mode 100644 package/qemu/Config.in
 create mode 100644 package/qemu/qemu-static-curl.patch
 create mode 100644 package/qemu/qemu-static-sdl.patch
 create mode 100644 package/slirp/Config.in
 create mode 100644 package/slirp/slirp.mk
 create mode 100644 package/spice-protocol/Config.in
 create mode 100644 package/spice-protocol/spice-protocol.mk
 create mode 100644 package/spice/Config.in
 create mode 100644 package/spice/spice.mk
 create mode 100644 package/usbredir/Config.in
 create mode 100644 package/usbredir/usbredir.mk
 create mode 100644 package/vde2/Config.in
 create mode 100644 package/vde2/vde2.mk

^ permalink raw reply	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 01/52] package/qemu: add license information
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
@ 2012-12-10 23:44 ` Yann E. MORIN
  2012-12-12  9:00   ` Peter Korsgaard
  2012-12-10 23:44 ` [Buildroot] [PATCH 02/52] package/qemu: fix host-qemu variable names Yann E. MORIN
                   ` (50 subsequent siblings)
  51 siblings, 1 reply; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:44 UTC (permalink / raw)
  To: buildroot

QEMU is such a snakes-nest of licenses... :-/

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Francois Perrad <fperrad@gmail.com>
---
 package/qemu/qemu.mk |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index d40d7c9..790d34f 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -7,6 +7,11 @@
 QEMU_VERSION = 1.2.0
 QEMU_SOURCE = qemu-$(QEMU_VERSION).tar.bz2
 QEMU_SITE = http://wiki.qemu.org/download
+QEMU_LICENSE = GPLv2 LGPLv2.1 MIT BSD-3c BSD-2c Others/BSD-1c
+QEMU_LICENSE_FILES = COPYING COPYING.LIB
+#?NOTE: there is no top-level license file for non-(L)GPL licenses;
+#       the non-(L)GPL license texts are specified in the affected
+#       individual source files.
 
 QEMU_DEPENDENCIES = host-pkgconf zlib libglib2
 
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 02/52] package/qemu: fix host-qemu variable names
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
  2012-12-10 23:44 ` [Buildroot] [PATCH 01/52] package/qemu: add license information Yann E. MORIN
@ 2012-12-10 23:44 ` Yann E. MORIN
  2012-12-10 23:44 ` [Buildroot] [PATCH 03/52] package/qemu: fix host dependencies Yann E. MORIN
                   ` (49 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:44 UTC (permalink / raw)
  To: buildroot

With the upcoming introduction of qemu-on-target, we need to properly
separate the variables used for the host qemu, from the variables
used for the target qemu.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Francois Perrad <fperrad@gmail.com>
---
 package/qemu/qemu.mk |   25 ++++++++++++++-----------
 1 files changed, 14 insertions(+), 11 deletions(-)

diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index 790d34f..81cd79f 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -13,7 +13,10 @@ QEMU_LICENSE_FILES = COPYING COPYING.LIB
 #       the non-(L)GPL license texts are specified in the affected
 #       individual source files.
 
-QEMU_DEPENDENCIES = host-pkgconf zlib libglib2
+#-------------------------------------------------------------
+# Host-qemu
+
+HOST_QEMU_DEPENDENCIES = host-pkgconf zlib libglib2
 
 #       BR ARCH         qemu
 #       -------         ----
@@ -44,20 +47,20 @@ QEMU_DEPENDENCIES = host-pkgconf zlib libglib2
 #       sh64            not supported
 #       sparc           sparc
 
-QEMU_ARCH = $(ARCH)
-ifeq ($(QEMU_ARCH),i486)
-    QEMU_ARCH = i386
+HOST_QEMU_ARCH = $(ARCH)
+ifeq ($(HOST_QEMU_ARCH),i486)
+    HOST_QEMU_ARCH = i386
 endif
-ifeq ($(QEMU_ARCH),i586)
-    QEMU_ARCH = i386
+ifeq ($(HOST_QEMU_ARCH),i586)
+    HOST_QEMU_ARCH = i386
 endif
-ifeq ($(QEMU_ARCH),i686)
-    QEMU_ARCH = i386
+ifeq ($(HOST_QEMU_ARCH),i686)
+    HOST_QEMU_ARCH = i386
 endif
-ifeq ($(QEMU_ARCH),powerpc)
-    QEMU_ARCH = ppc
+ifeq ($(HOST_QEMU_ARCH),powerpc)
+    HOST_QEMU_ARCH = ppc
 endif
-HOST_QEMU_TARGETS=$(QEMU_ARCH)-linux-user
+HOST_QEMU_TARGETS=$(HOST_QEMU_ARCH)-linux-user
 
 define HOST_QEMU_CONFIGURE_CMDS
 	(cd $(@D); $(HOST_CONFIGURE_OPTS) ./configure   \
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 03/52] package/qemu: fix host dependencies
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
  2012-12-10 23:44 ` [Buildroot] [PATCH 01/52] package/qemu: add license information Yann E. MORIN
  2012-12-10 23:44 ` [Buildroot] [PATCH 02/52] package/qemu: fix host-qemu variable names Yann E. MORIN
@ 2012-12-10 23:44 ` Yann E. MORIN
  2012-12-10 23:44 ` [Buildroot] [PATCH 04/52] package/qemu: use autotools-package infrastructure Yann E. MORIN
                   ` (48 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:44 UTC (permalink / raw)
  To: buildroot

'host-*' packages should depends on other 'host-*' packages,
not on target packages.

Reported-by: Arnout Vandecappelle <arnout@mind.be>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/qemu.mk |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index 81cd79f..2c0dbde 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -16,7 +16,7 @@ QEMU_LICENSE_FILES = COPYING COPYING.LIB
 #-------------------------------------------------------------
 # Host-qemu
 
-HOST_QEMU_DEPENDENCIES = host-pkgconf zlib libglib2
+HOST_QEMU_DEPENDENCIES = host-pkgconf host-zlib host-libglib2
 
 #       BR ARCH         qemu
 #       -------         ----
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 04/52] package/qemu: use autotools-package infrastructure
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (2 preceding siblings ...)
  2012-12-10 23:44 ` [Buildroot] [PATCH 03/52] package/qemu: fix host dependencies Yann E. MORIN
@ 2012-12-10 23:44 ` Yann E. MORIN
  2012-12-10 23:44 ` [Buildroot] [PATCH 05/52] package/qemu: bump version Yann E. MORIN
                   ` (47 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:44 UTC (permalink / raw)
  To: buildroot

Turns out that, with a little bit of tweaking, we can use
the autotools-package infrastructure to build QEMU.

That's better than defining all the _CMDS and using the
generic-package infra.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Francois Perrad <fperrad@gmail.com>
---
 package/qemu/qemu.mk |   17 ++++-------------
 1 files changed, 4 insertions(+), 13 deletions(-)

diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index 2c0dbde..91d0eb8 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -62,6 +62,9 @@ ifeq ($(HOST_QEMU_ARCH),powerpc)
 endif
 HOST_QEMU_TARGETS=$(HOST_QEMU_ARCH)-linux-user
 
+# Note: although QEMU has a ./configure script, it is not a real autotools
+# package, and ./configure chokes on options such as --host or --target.
+# So, provide out own _CONFIGURE_CMDS to override the defaults.
 define HOST_QEMU_CONFIGURE_CMDS
 	(cd $(@D); $(HOST_CONFIGURE_OPTS) ./configure   \
 		--target-list="$(HOST_QEMU_TARGETS)"    \
@@ -74,19 +77,7 @@ define HOST_QEMU_CONFIGURE_CMDS
 	)
 endef
 
-define HOST_QEMU_BUILD_CMDS
-	$(MAKE) -C $(@D) all
-endef
-
-define HOST_QEMU_INSTALL_CMDS
-	$(MAKE) -C $(@D) install
-endef
-
-define HOST_QEMU_CLEAN_CMDS
-	$(MAKE) -C $(@D) clean
-endef
-
-$(eval $(host-generic-package))
+$(eval $(host-autotools-package))
 
 # variable used by other packages
 QEMU_USER = $(HOST_DIR)/usr/bin/qemu-$(QEMU_ARCH)
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 05/52] package/qemu: bump version
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (3 preceding siblings ...)
  2012-12-10 23:44 ` [Buildroot] [PATCH 04/52] package/qemu: use autotools-package infrastructure Yann E. MORIN
@ 2012-12-10 23:44 ` Yann E. MORIN
  2012-12-10 23:44 ` [Buildroot] [PATCH 06/52] package/vde2: new package Yann E. MORIN
                   ` (46 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:44 UTC (permalink / raw)
  To: buildroot

Bump QEMU to 1.2.1.

Note: 1.3.0 is out now, but ./configure has changed a bit, and there are
new dependencies, so the bump to 1.3.0 is postponed for a litle while...

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Francois Perrad <fperrad@gmail.com>
---
 package/qemu/qemu.mk |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index 91d0eb8..241a392 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -4,7 +4,7 @@
 #
 #############################################################
 
-QEMU_VERSION = 1.2.0
+QEMU_VERSION = 1.2.1
 QEMU_SOURCE = qemu-$(QEMU_VERSION).tar.bz2
 QEMU_SITE = http://wiki.qemu.org/download
 QEMU_LICENSE = GPLv2 LGPLv2.1 MIT BSD-3c BSD-2c Others/BSD-1c
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 06/52] package/vde2: new package
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (4 preceding siblings ...)
  2012-12-10 23:44 ` [Buildroot] [PATCH 05/52] package/qemu: bump version Yann E. MORIN
@ 2012-12-10 23:44 ` Yann E. MORIN
  2012-12-10 23:44 ` [Buildroot] [PATCH 07/52] package/libiscsi: " Yann E. MORIN
                   ` (45 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:44 UTC (permalink / raw)
  To: buildroot

VDE is an ethernet compliant virtual network that can be
spawned over a set of physical computer over the Internet.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Arnout Vandecappelle <arnout@mind.be>
---
 package/Config.in      |    1 +
 package/vde2/Config.in |   10 ++++++++++
 package/vde2/vde2.mk   |   36 ++++++++++++++++++++++++++++++++++++
 3 files changed, 47 insertions(+), 0 deletions(-)
 create mode 100644 package/vde2/Config.in
 create mode 100644 package/vde2/vde2.mk

diff --git a/package/Config.in b/package/Config.in
index cad1221..2345b4b 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -672,6 +672,7 @@ source "package/ttcp/Config.in"
 source "package/udpcast/Config.in"
 source "package/ulogd/Config.in"
 source "package/ushare/Config.in"
+source "package/vde2/Config.in"
 source "package/vpnc/Config.in"
 source "package/vsftpd/Config.in"
 source "package/vtun/Config.in"
diff --git a/package/vde2/Config.in b/package/vde2/Config.in
new file mode 100644
index 0000000..f344d67
--- /dev/null
+++ b/package/vde2/Config.in
@@ -0,0 +1,10 @@
+config BR2_PACKAGE_VDE2
+	bool "vde2"
+	help
+	  VDE is an ethernet compliant virtual network that can be
+	  spawned over a set of physical computers over the Internet.
+	  VDE is part of the virtualsquare project.
+	  
+	  http://vde.sourceforge.net/
+	  
+	  Note: only the libraries are installed.
diff --git a/package/vde2/vde2.mk b/package/vde2/vde2.mk
new file mode 100644
index 0000000..062835e
--- /dev/null
+++ b/package/vde2/vde2.mk
@@ -0,0 +1,36 @@
+#############################################################
+#
+# vde2
+#
+#############################################################
+
+VDE2_VERSION         = 2.3.2
+VDE2_SOURCE          = vde2-$(VDE2_VERSION).tar.bz2
+VDE2_SITE            = http://downloads.sourceforge.net/project/vde/vde2/$(VDE2_VERSION)
+VDE2_LICENSE         = GPLv2+ LGPLv2.1+ BSD-3c
+VDE2_LICENSE_FILES   = COPYING COPYING.libvdeplug COPYING.slirpvde
+VDE2_INSTALL_STAGING = YES
+
+# Reasons for enabling/disabling stuff:
+#?- tuntap is enabled in the hope we're using a recent-enough toolchain
+#   that does have if_tun.h (virtually everything these days)
+# - kvde_switch is disabled because it requires a patched kernel
+# - cryptcab is disabled to not depend on openSSL
+# - python is disabled to not depend on Python
+# - pcap is disabled to not depend on libpcap
+# - profiling is disabled because we do not want to debug/profile
+#
+# Note: disabled features can be added with corresponding dependencies
+#       in future commits.
+VDE2_CONF_OPT = --disable-experimental  \
+                --disable-cryptcab      \
+                --disable-pcap          \
+                --disable-python        \
+                --disable-profile       \
+                --disable-kernel-switch \
+                --enable-tuntap         \
+
+#?Package does not build in parallel due to improper make rules
+VDE2_MAKE = $(MAKE1)
+
+$(eval $(autotools-package))
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 07/52] package/libiscsi: new package
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (5 preceding siblings ...)
  2012-12-10 23:44 ` [Buildroot] [PATCH 06/52] package/vde2: new package Yann E. MORIN
@ 2012-12-10 23:44 ` Yann E. MORIN
  2012-12-10 23:44 ` [Buildroot] [PATCH 08/52] package/usbredir: " Yann E. MORIN
                   ` (44 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:44 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 package/Config.in            |    1 +
 package/libiscsi/Config.in   |   12 ++++++++++++
 package/libiscsi/libiscsi.mk |   15 +++++++++++++++
 3 files changed, 28 insertions(+), 0 deletions(-)
 create mode 100644 package/libiscsi/Config.in
 create mode 100644 package/libiscsi/libiscsi.mk

diff --git a/package/Config.in b/package/Config.in
index 2345b4b..8edadf9 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -466,6 +466,7 @@ source "package/libesmtp/Config.in"
 source "package/libeXosip2/Config.in"
 source "package/libfcgi/Config.in"
 source "package/libidn/Config.in"
+source "package/libiscsi/Config.in"
 source "package/liboauth/Config.in"
 source "package/libmicrohttpd/Config.in"
 source "package/neon/Config.in"
diff --git a/package/libiscsi/Config.in b/package/libiscsi/Config.in
new file mode 100644
index 0000000..f3fc29e
--- /dev/null
+++ b/package/libiscsi/Config.in
@@ -0,0 +1,12 @@
+config BR2_PACKAGE_LIBISCSI
+	bool "libiscsi"
+	select BR2_PACKAGE_POPT
+	help
+	  Libiscsi is a client-side library to implement the iSCSI protocol
+	  that can be used to access resource of an iSCSI Target.
+	  
+	  The library is fully async with regards to iscsi commands and scsi
+	  tasks, but a sync layer is also provided for ease of use for simpler
+	  applications.
+	  
+	  https://github.com/sahlberg/libiscsi  (no proper homepage)
diff --git a/package/libiscsi/libiscsi.mk b/package/libiscsi/libiscsi.mk
new file mode 100644
index 0000000..bfebd7e
--- /dev/null
+++ b/package/libiscsi/libiscsi.mk
@@ -0,0 +1,15 @@
+#############################################################
+#
+# libiscsi
+#
+#############################################################
+
+LIBISCSI_VERSION         = 1.6.0
+LIBISCSI_SOURCE          = libiscsi-$(LIBISCSI_VERSION).tar.gz
+LIBISCSI_SITE            = https://github.com/downloads/sahlberg/libiscsi
+LIBISCSI_LICENSE         = GPLv2+ LGPLv2.1+
+LIBISCSI_LICENSE_FILES   = COPYING LICENCE-GPL-2.txt LICENCE-LGPL-2.1.txt
+LIBISCSI_INSTALL_STAGING = YES
+LIBISCSI_DEPENDENCIES    = popt
+
+$(eval $(autotools-package))
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 08/52] package/usbredir: new package
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (6 preceding siblings ...)
  2012-12-10 23:44 ` [Buildroot] [PATCH 07/52] package/libiscsi: " Yann E. MORIN
@ 2012-12-10 23:44 ` Yann E. MORIN
  2012-12-10 23:44 ` [Buildroot] [PATCH 09/52] package/celt051: " Yann E. MORIN
                   ` (43 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:44 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
---
 package/Config.in            |    1 +
 package/usbredir/Config.in   |   28 ++++++++++++++++++++++++++++
 package/usbredir/usbredir.mk |   31 +++++++++++++++++++++++++++++++
 3 files changed, 60 insertions(+), 0 deletions(-)
 create mode 100644 package/usbredir/Config.in
 create mode 100644 package/usbredir/usbredir.mk

diff --git a/package/Config.in b/package/Config.in
index 8edadf9..9d68581 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -492,6 +492,7 @@ source "package/libupnp/Config.in"
 source "package/libvncserver/Config.in"
 source "package/nss-mdns/Config.in"
 source "package/ortp/Config.in"
+source "package/usbredir/Config.in"
 source "package/zeromq/Config.in"
 endmenu
 
diff --git a/package/usbredir/Config.in b/package/usbredir/Config.in
new file mode 100644
index 0000000..8d8ac5a
--- /dev/null
+++ b/package/usbredir/Config.in
@@ -0,0 +1,28 @@
+comment "usbredir requires libusb"
+	depends on !BR2_PACKAGE_LIBUSB
+
+config BR2_PACKAGE_USBREDIR
+	bool "usbredir"
+	depends on BR2_PACKAGE_LIBUSB
+	help
+	  usbredir is the name of a network protocol for sending usb device
+	  traffic over a network connection. It is also the name of the
+	  software package offering a parsing library, a usbredirhost library
+	  and several utilities implementing this protocol.
+	  
+	  Note: only the library is installed, not the utilities. Say 'y'
+	  below if you want the server too.
+	  
+	  http://www.spice-space.org/page/UsbRedir
+
+if BR2_PACKAGE_USBREDIR
+
+config BR2_PACKAGE_USBREDIR_SERVER
+	bool "usbredirserver on target"
+	help
+	  If you want to serve usbredir requests on your target, say 'y'
+	  here to have the usbredir server on the target.
+	  
+	  Note: the server is not required to use the library.
+
+endif
diff --git a/package/usbredir/usbredir.mk b/package/usbredir/usbredir.mk
new file mode 100644
index 0000000..70b50c3
--- /dev/null
+++ b/package/usbredir/usbredir.mk
@@ -0,0 +1,31 @@
+#############################################################
+#
+# usbredir
+#
+#############################################################
+
+USBREDIR_VERSION         = 0.4.3
+USBREDIR_SOURCE          = usbredir-$(USBREDIR_VERSION).tar.bz2
+USBREDIR_SITE            = http://spice-space.org/download/usbredir
+USBREDIR_LICENSE         = LGPLv2.1+
+USBREDIR_LICENSE_FILES   = COPYING.LIB
+USBREDIR_INSTALL_STAGING = YES
+USBREDIR_DEPENDENCIES    = libusb
+
+USBREDIR_DEPENDENCIES    += host-pkgconf
+
+ifeq ($(BR2_PACKAGE_USBREDIR_SERVER),y)
+
+USBREDIR_LICENSE         += (for the library), GPLv2+ (for the server)
+USBREDIR_LICENSE_FILES   += COPYING
+
+else # BR2_PACKAGE_USBREDIR_SERVER != y
+
+define USBREDIR_POST_INSTALL_TARGET_RM_SERVER
+	rm -f $(TARGET_DIR)/usr/sbin/usbredirserver
+endef
+USBREDIR_POST_INSTALL_TARGET_HOOKS += USBREDIR_POST_INSTALL_TARGET_RM_SERVER
+
+endif # BR2_PACKAGE_USBREDIR_SERVER
+
+$(eval $(autotools-package))
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 09/52] package/celt051: new package
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (7 preceding siblings ...)
  2012-12-10 23:44 ` [Buildroot] [PATCH 08/52] package/usbredir: " Yann E. MORIN
@ 2012-12-10 23:44 ` Yann E. MORIN
  2012-12-10 23:44 ` [Buildroot] [PATCH 10/52] package/python-pyparsing: " Yann E. MORIN
                   ` (42 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:44 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Arnout Vandecappelle <arnout@mind.be>
Reviewed-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 package/multimedia/Config.in         |    1 +
 package/multimedia/celt051/Config.in |   15 +++++++++++++++
 package/multimedia/celt051/celt.mk   |   30 ++++++++++++++++++++++++++++++
 3 files changed, 46 insertions(+), 0 deletions(-)
 create mode 100644 package/multimedia/celt051/Config.in
 create mode 100644 package/multimedia/celt051/celt.mk

diff --git a/package/multimedia/Config.in b/package/multimedia/Config.in
index 273d9bc..5e8d60c 100644
--- a/package/multimedia/Config.in
+++ b/package/multimedia/Config.in
@@ -2,6 +2,7 @@ menu "Audio and video applications"
 source "package/multimedia/alsa-utils/Config.in"
 source "package/multimedia/aumix/Config.in"
 source "package/multimedia/bellagio/Config.in"
+source "package/multimedia/celt051/Config.in"
 source "package/multimedia/faad2/Config.in"
 source "package/multimedia/flac/Config.in"
 source "package/multimedia/ffmpeg/Config.in"
diff --git a/package/multimedia/celt051/Config.in b/package/multimedia/celt051/Config.in
new file mode 100644
index 0000000..50ed069
--- /dev/null
+++ b/package/multimedia/celt051/Config.in
@@ -0,0 +1,15 @@
+config BR2_PACKAGE_CELT051
+	bool "celt051"
+	select BR2_PACKAGE_LIBOGG
+	help
+	  The CELT ultra-low delay audio codec
+	  
+	  The CELT codec is a compression algorithm for audio. Like MP3,
+	  Vorbis, and AAC it is suitable for transmitting music with high
+	  quality. Unlike these formats CELT imposes very little delay on
+	  the signal, even less than is typical for speech centric formats
+	  like Speex, GSM, or G.729.
+	  
+	  Note: this is version 0.5.1.3 of celt.
+	  
+	  http://www.celt-codec.org/
diff --git a/package/multimedia/celt051/celt.mk b/package/multimedia/celt051/celt.mk
new file mode 100644
index 0000000..9baaa82
--- /dev/null
+++ b/package/multimedia/celt051/celt.mk
@@ -0,0 +1,30 @@
+#############################################################
+#
+# celt051
+#
+#############################################################
+
+# Although version newer than 0.5.1.3 exists, we're
+# stuck with 0.5.1.3 for use by Spice (coming later)
+CELT051_VERSION         = 0.5.1.3
+CELT051_SOURCE          = celt-$(CELT051_VERSION).tar.gz
+CELT051_SITE            = http://downloads.xiph.org/releases/celt
+CELT051_LICENSE         = BSD-2c
+CELT051_LICENSE_FILES   = COPYING
+CELT051_INSTALL_STAGING = YES
+CELT051_DEPENDENCIES    = libogg
+
+# Need to specify --with-ogg, otherwise /usr/lib may be searched for
+# if target is the same kind as host (ie. same arch, same bitness,
+# same endianness, so that /usr/lib contains libraries linkable by
+# our cross-compiler)
+CELT051_CONF_OPT =                  \
+  --enable-fixed-point              \
+  --disable-fixed-point-debug       \
+  --disable-experimental-postfilter \
+  --disable-static-modes            \
+  --disable-assertions              \
+  --disable-oggtest                 \
+  --with-ogg=$(STAGING_DIR)/usr     \
+
+$(eval $(autotools-package))
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 10/52] package/python-pyparsing: new package
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (8 preceding siblings ...)
  2012-12-10 23:44 ` [Buildroot] [PATCH 09/52] package/celt051: " Yann E. MORIN
@ 2012-12-10 23:44 ` Yann E. MORIN
  2012-12-10 23:44 ` [Buildroot] [PATCH 11/52] package/spice-protocol: " Yann E. MORIN
                   ` (41 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:44 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Reviewed-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 package/Config.in                            |    1 +
 package/python-pyparsing/Config.in           |   11 +++++++
 package/python-pyparsing/python-pyparsing.mk |   38 ++++++++++++++++++++++++++
 3 files changed, 50 insertions(+), 0 deletions(-)
 create mode 100644 package/python-pyparsing/Config.in
 create mode 100644 package/python-pyparsing/python-pyparsing.mk

diff --git a/package/Config.in b/package/Config.in
index 9d68581..d00ebf3 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -307,6 +307,7 @@ source "package/python-netifaces/Config.in"
 source "package/python-nfc/Config.in"
 source "package/python-protobuf/Config.in"
 source "package/python-pygame/Config.in"
+source "package/python-pyparsing/Config.in"
 source "package/python-serial/Config.in"
 source "package/python-setuptools/Config.in"
 endmenu
diff --git a/package/python-pyparsing/Config.in b/package/python-pyparsing/Config.in
new file mode 100644
index 0000000..126dd0e
--- /dev/null
+++ b/package/python-pyparsing/Config.in
@@ -0,0 +1,11 @@
+config BR2_PACKAGE_PYTHON_PYPARSING
+	bool "pyparsing"
+	depends on BR2_PACKAGE_PYTHON
+	help
+	  The pyparsing module is an alternative approach to creating and
+	  executing simple grammars, vs. the traditional lex/yacc approach,
+	  or the use of regular expressions. The pyparsing module provides
+	  a library of classes that client code uses to construct the grammar
+	  directly in Python code.
+	  
+	  http://pyparsing.wikispaces.com/
diff --git a/package/python-pyparsing/python-pyparsing.mk b/package/python-pyparsing/python-pyparsing.mk
new file mode 100644
index 0000000..246df4d
--- /dev/null
+++ b/package/python-pyparsing/python-pyparsing.mk
@@ -0,0 +1,38 @@
+#############################################################
+#
+# python-pyparsing
+#
+#############################################################
+
+PYTHON_PYPARSING_VERSION         = 1.5.6
+PYTHON_PYPARSING_SOURCE          = pyparsing-$(PYTHON_PYPARSING_VERSION).tar.gz
+PYTHON_PYPARSING_SITE            = http://downloads.sourceforge.net/project/pyparsing/pyparsing/pyparsing-$(PYTHON_PYPARSING_VERSION)
+PYTHON_PYPARSING_LICENSE         = MIT
+PYTHON_PYPARSING_LICENSE_FILES   = LICENSE
+PYTHON_PYPARSING_INSTALL_STAGING = YES
+PYTHON_PYPARSING_DEPENDENCIES    = python
+
+# Shamelessly vampirised from python-pygame ;-)
+define PYTHON_PYPARSING_BUILD_CMDS
+	(cd $(@D);                                              \
+	 CC="$(TARGET_CC)"                                      \
+	 CFLAGS="$(TARGET_CFLAGS)"                              \
+	 LDSHARED="$(TARGET_CROSS)gcc -shared"                  \
+	 CROSS_COMPILING=yes                                    \
+	 _python_sysroot=$(STAGING_DIR)                         \
+	 _python_srcdir=$(BUILD_DIR)/python$(PYTHON_VERSION)    \
+	 _python_prefix=/usr                                    \
+	 _python_exec_prefix=/usr                               \
+	 $(HOST_DIR)/usr/bin/python setup.py build              \
+	)
+endef
+
+# Shamelessly vampirised from python-pygame ;-)
+define PYTHON_PYPARSING_INSTALL_TARGET_CMDS
+	(cd $(@D);                                              \
+	 $(HOST_DIR)/usr/bin/python setup.py install            \
+	                            --prefix=$(TARGET_DIR)/usr  \
+	)
+endef
+
+$(eval $(generic-package))
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 11/52] package/spice-protocol: new package
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (9 preceding siblings ...)
  2012-12-10 23:44 ` [Buildroot] [PATCH 10/52] package/python-pyparsing: " Yann E. MORIN
@ 2012-12-10 23:44 ` Yann E. MORIN
  2012-12-10 23:44 ` [Buildroot] [PATCH 12/52] package/cegui06: " Yann E. MORIN
                   ` (40 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:44 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Reviewed-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Tested-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
---
 package/Config.in                        |    1 +
 package/spice-protocol/Config.in         |   12 ++++++++++++
 package/spice-protocol/spice-protocol.mk |   14 ++++++++++++++
 3 files changed, 27 insertions(+), 0 deletions(-)
 create mode 100644 package/spice-protocol/Config.in
 create mode 100644 package/spice-protocol/spice-protocol.mk

diff --git a/package/Config.in b/package/Config.in
index d00ebf3..bf08301 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -660,6 +660,7 @@ source "package/ser2net/Config.in"
 source "package/socat/Config.in"
 source "package/socketcand/Config.in"
 source "package/spawn-fcgi/Config.in"
+source "package/spice-protocol/Config.in"
 source "package/squid/Config.in"
 source "package/stunnel/Config.in"
 source "package/tcpdump/Config.in"
diff --git a/package/spice-protocol/Config.in b/package/spice-protocol/Config.in
new file mode 100644
index 0000000..b354361
--- /dev/null
+++ b/package/spice-protocol/Config.in
@@ -0,0 +1,12 @@
+config BR2_PACKAGE_SPICE_PROTOCOL
+	bool "spice protocol"
+	help
+	  The Spice project aims to provide a complete open source
+	  solution for interaction with virtualized desktop devices.
+	  The Spice project deals with both the virtualized devices
+	  and the front-end. Interaction between front-end and
+	  back-end is done using VD-Interfaces.
+	  
+	  This package implements the protocol-part of Spice.
+	  
+	  http://www.spice-space.org/
diff --git a/package/spice-protocol/spice-protocol.mk b/package/spice-protocol/spice-protocol.mk
new file mode 100644
index 0000000..dcfe50d
--- /dev/null
+++ b/package/spice-protocol/spice-protocol.mk
@@ -0,0 +1,14 @@
+#############################################################
+#
+# Spice-protocol
+#
+#############################################################
+
+SPICE_PROTOCOL_VERSION         = 0.12.2
+SPICE_PROTOCOL_SOURCE          = spice-protocol-$(SPICE_PROTOCOL_VERSION).tar.bz2
+SPICE_PROTOCOL_SITE            = http://www.spice-space.org/download/releases/
+SPICE_PROTOCOL_LICENSE         = BSD-3c
+SPICE_PROTOCOL_LICENSE_FILES   = COPYING
+SPICE_PROTOCOL_INSTALL_STAGING = YES
+
+$(eval $(autotools-package))
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 12/52] package/cegui06: new package
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (10 preceding siblings ...)
  2012-12-10 23:44 ` [Buildroot] [PATCH 11/52] package/spice-protocol: " Yann E. MORIN
@ 2012-12-10 23:44 ` Yann E. MORIN
  2012-12-10 23:44 ` [Buildroot] [PATCH 13/52] package/slirp: " Yann E. MORIN
                   ` (39 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:44 UTC (permalink / raw)
  To: buildroot

Although there are more recent versions of CEGUI, we are stuck
with 0.6.2b for use by spice.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Arnout Vandecappelle <arnout@mind.be>
---
 package/Config.in                      |    1 +
 package/cegui06/Config.in              |   15 +++++++++++++
 package/cegui06/cegui06-stddef.h.patch |   26 +++++++++++++++++++++++
 package/cegui06/cegui06.mk             |   36 ++++++++++++++++++++++++++++++++
 4 files changed, 78 insertions(+), 0 deletions(-)
 create mode 100644 package/cegui06/Config.in
 create mode 100644 package/cegui06/cegui06-stddef.h.patch
 create mode 100644 package/cegui06/cegui06.mk

diff --git a/package/Config.in b/package/Config.in
index bf08301..05ec3c5 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -109,6 +109,7 @@ comment "Graphic applications"
 source "package/rrdtool/Config.in"
 
 comment "graphic libraries"
+source "package/cegui06/Config.in"
 source "package/directfb/Config.in"
 source "package/directfb-examples/Config.in"
 source "package/divine/Config.in"
diff --git a/package/cegui06/Config.in b/package/cegui06/Config.in
new file mode 100644
index 0000000..54d92ed
--- /dev/null
+++ b/package/cegui06/Config.in
@@ -0,0 +1,15 @@
+config BR2_PACKAGE_CEGUI06
+	bool "cegui06"
+	depends on BR2_TOOLCHAIN_HAS_THREADS
+	select BR2_PACKAGE_EXPAT
+	select BR2_PACKAGE_FREETYPE
+	select BR2_PACKAGE_PCRE
+	help
+	  Crazy Eddie's GUI System is a free library providing windowing and
+	  widgets for graphics APIs / engines where such functionality is not
+	  natively available, or severely lacking. The library is object
+	  orientated, written in C++, and targeted at games developers who
+	  should be spending their time creating great games, not building
+	  GUI sub-systems!
+	  
+	  http://www.cegui.org.uk/
diff --git a/package/cegui06/cegui06-stddef.h.patch b/package/cegui06/cegui06-stddef.h.patch
new file mode 100644
index 0000000..cc16eff
--- /dev/null
+++ b/package/cegui06/cegui06-stddef.h.patch
@@ -0,0 +1,26 @@
+includes: ptrdiff_t is defined in stddef.h
+
+ptrdiff_t is defined in the stddef.h header, so this
+header must be included.
+
+Do the #include in a common header to avoid doing it
+all over the place.
+
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+
+---
+Patch not sent upstream, it's a no-longer-maintained branch.
+To be noted, however, is that the current devel branch is
+still missing that include.
+
+diff -durN cegui06-0.6.2.orig/include/CEGUIBase.h cegui06-0.6.2/include/CEGUIBase.h
+--- cegui06-0.6.2.orig//include/CEGUIBase.h	2008-02-11 15:38:27.000000000 +0100
++++ cegui06-0.6.2/include/CEGUIBase.h	2012-08-19 22:51:50.260385978 +0200
+@@ -34,6 +34,7 @@
+ #define _CEGUIBase_h_
+ 
+ #include <cassert>
++#include <stddef.h>
+ 
+ // bring in configuration options
+ #include "CEGUIConfig.h"
diff --git a/package/cegui06/cegui06.mk b/package/cegui06/cegui06.mk
new file mode 100644
index 0000000..817254f
--- /dev/null
+++ b/package/cegui06/cegui06.mk
@@ -0,0 +1,36 @@
+#############################################################
+#
+# libcegui
+#
+#############################################################
+
+# Do not update the version, we need exactly that one for Spice.
+CEGUI06_VERSION_MAJOR   = 0.6.2
+CEGUI06_VERSION         = $(CEGUI06_VERSION_MAJOR)b
+CEGUI06_SOURCE          = CEGUI-$(CEGUI06_VERSION).tar.gz
+CEGUI06_SITE            = http://downloads.sourceforge.net/project/crayzedsgui/CEGUI%20Mk-2/$(CEGUI06_VERSION_MAJOR)
+CEGUI06_LICENSE         = MIT
+CEGUI06_LICENSE_FILES   = COPYING
+CEGUI06_INSTALL_STAGING = YES
+
+CEGUI06_DEPENDENCIES    =       \
+    expat                       \
+    freetype                    \
+    pcre                        \
+
+CEGUI06_CONF_OPT =              \
+    --enable-expat              \
+    --disable-external-tinyxml  \
+    --disable-xerces-c          \
+    --disable-libxml            \
+    --disable-tinyxml           \
+    --disable-opengl-renderer   \
+    --disable-external-glew     \
+    --disable-irrlicht-renderer \
+    --disable-directfb-renderer \
+    --disable-samples           \
+    --disable-lua-module        \
+    --disable-toluacegui        \
+    --disable-external-toluapp  \
+
+$(eval $(autotools-package))
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 13/52] package/slirp: new package
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (11 preceding siblings ...)
  2012-12-10 23:44 ` [Buildroot] [PATCH 12/52] package/cegui06: " Yann E. MORIN
@ 2012-12-10 23:44 ` Yann E. MORIN
  2012-12-10 23:44 ` [Buildroot] [PATCH 14/52] package/spice: " Yann E. MORIN
                   ` (38 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:44 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 package/Config.in       |    1 +
 package/slirp/Config.in |   25 +++++++++++++++++++++++++
 package/slirp/slirp.mk  |   21 +++++++++++++++++++++
 3 files changed, 47 insertions(+), 0 deletions(-)
 create mode 100644 package/slirp/Config.in
 create mode 100644 package/slirp/slirp.mk

diff --git a/package/Config.in b/package/Config.in
index 05ec3c5..f0de519 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -494,6 +494,7 @@ source "package/libupnp/Config.in"
 source "package/libvncserver/Config.in"
 source "package/nss-mdns/Config.in"
 source "package/ortp/Config.in"
+source "package/slirp/Config.in"
 source "package/usbredir/Config.in"
 source "package/zeromq/Config.in"
 endmenu
diff --git a/package/slirp/Config.in b/package/slirp/Config.in
new file mode 100644
index 0000000..dedded3
--- /dev/null
+++ b/package/slirp/Config.in
@@ -0,0 +1,25 @@
+config BR2_PACKAGE_SLIRP
+	bool "slirp"
+	help
+	  The Spice project aims to provide a complete open source
+	  solution for interaction with virtualized desktop devices.
+	  The Spice project deals with both the virtualized devices
+	  and the front-end. Interaction between front-end and
+	  back-end is done using VD-Interfaces.
+	  
+	  This package implements the slirp-part for Spice.
+	  Slirp emulates a PPP or SLIP connection over a normal terminal.
+	  
+	  http://www.spice-space.org/
+	  
+	  NOTE:
+	  This package has some history of a unique kind:
+	    - originally developped as 'slirp' by Danny Gasparovski, and
+	      seemingly abandonned (developper /disapeared/)
+	    - then re-maintained at sourceforge by "Kelly", up to some
+	      time around 2009: http://slirp.sourceforge.net/
+	    - during that period, QEMU (Fabrice BELLARD) forked the code
+	      and included it in QEMU
+	    - and it was imported from this breed by the Spice project
+	      around May 2009
+	    - which is what we use here
diff --git a/package/slirp/slirp.mk b/package/slirp/slirp.mk
new file mode 100644
index 0000000..b3f4bcd
--- /dev/null
+++ b/package/slirp/slirp.mk
@@ -0,0 +1,21 @@
+#############################################################
+#
+# Spice-slirp
+#
+#############################################################
+
+# There's no tarball releases of slirp, so we use the git repo
+# Also, there's no tag, so we use a random SHA1 (master's HEAD
+# of today)
+SLIRP_VERSION         = 8c2da74c1385242f20799fec8c04f8378edc6550
+SLIRP_SITE            = git://anongit.freedesktop.org/spice/slirp
+SLIRP_LICENSE         = BSD-4c BSD-2c
+# Note: The license file 'COPYRIGHT' is missing from the sources,
+# although some files refer to it.
+SLIRP_INSTALL_STAGING = YES
+
+# As we're using the git tree, there's no ./configure,
+# so we need to autoreconf.
+SLIRP_AUTORECONF      = YES
+
+$(eval $(autotools-package))
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 14/52] package/spice: new package
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (12 preceding siblings ...)
  2012-12-10 23:44 ` [Buildroot] [PATCH 13/52] package/slirp: " Yann E. MORIN
@ 2012-12-10 23:44 ` Yann E. MORIN
  2012-12-10 23:44 ` [Buildroot] [PATCH 15/52] package/spice: enable client Yann E. MORIN
                   ` (37 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:44 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/Config.in       |    1 +
 package/spice/Config.in |   23 +++++++++++++++++
 package/spice/spice.mk  |   62 +++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 86 insertions(+), 0 deletions(-)
 create mode 100644 package/spice/Config.in
 create mode 100644 package/spice/spice.mk

diff --git a/package/Config.in b/package/Config.in
index f0de519..79a1342 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -663,6 +663,7 @@ source "package/socat/Config.in"
 source "package/socketcand/Config.in"
 source "package/spawn-fcgi/Config.in"
 source "package/spice-protocol/Config.in"
+source "package/spice/Config.in"
 source "package/squid/Config.in"
 source "package/stunnel/Config.in"
 source "package/tcpdump/Config.in"
diff --git a/package/spice/Config.in b/package/spice/Config.in
new file mode 100644
index 0000000..086b1bc
--- /dev/null
+++ b/package/spice/Config.in
@@ -0,0 +1,23 @@
+comment "spice server depends on python (for pyparsing)"
+	depends on !BR2_PACKAGE_PYTHON
+
+config BR2_PACKAGE_SPICE
+	bool "spice server"
+	depends on BR2_PACKAGE_PYTHON
+	select BR2_PACKAGE_ALSA_LIB
+	select BR2_PACKAGE_CELT051
+	select BR2_PACKAGE_JPEG
+	select BR2_PACKAGE_OPENSSL
+	select BR2_PACKAGE_PIXMAN
+	select BR2_PACKAGE_PYTHON_PYPARSING
+	select BR2_PACKAGE_SPICE_PROTOCOL
+	help
+	  The Spice project aims to provide a complete open source
+	  solution for interaction with virtualized desktop devices.
+	  The Spice project deals with both the virtualized devices
+	  and the front-end. Interaction between front-end and
+	  back-end is done using VD-Interfaces.
+	  
+	  This package implements the server-part of Spice.
+	  
+	  http://www.spice-space.org/
diff --git a/package/spice/spice.mk b/package/spice/spice.mk
new file mode 100644
index 0000000..2752b8a
--- /dev/null
+++ b/package/spice/spice.mk
@@ -0,0 +1,62 @@
+#############################################################
+#
+# Spice
+#
+#############################################################
+
+SPICE_VERSION         = 0.12.0
+SPICE_SOURCE          = spice-$(SPICE_VERSION).tar.bz2
+SPICE_SITE            = http://www.spice-space.org/download/releases/
+SPICE_LICENSE         = LGPLv2.1+
+SPICE_LICENSE_FILES   = COPYING
+SPICE_INSTALL_STAGING = YES
+SPICE_DEPENDENCIES    = \
+    alsa-lib            \
+    celt051             \
+    jpeg                \
+    openssl             \
+    pixman              \
+    python-pyparsing    \
+    spice-protocol      \
+
+# We disable everything for now, because the dependency tree can become
+# quite deep if we try to enable some features, and I have not tested that.
+SPICE_CONF_OPT =            \
+  --disable-tunnel          \
+  --disable-gui             \
+  --disable-opengl          \
+  --disable-smartcard       \
+  --disable-client          \
+  --disable-automated-tests \
+  --without-sasl            \
+
+SPICE_DEPENDENCIES += host-pkgconf
+
+SPICE_CONF_ENV = PYTHONPATH=$(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages
+SPICE_MAKE_ENV = PYTHONPATH=$(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages
+
+# We need to tweak spice.pc because it /forgets/ (for static linking) that
+# it should link against libz and libjpeg. libz is pkg-config-aware, while
+# libjpeg isn't, hence the two-line tweak
+define SPICE_POST_INSTALL_STAGING_FIX_PC
+	$(SED) 's/^\(Requires.private:.*\)$$/\1 zlib/; s/^\(Libs.private:.*\)$$/\1 -ljpeg/;'    \
+	       "$(STAGING_DIR)/usr/lib/pkgconfig/spice-server.pc"
+endef
+SPICE_POST_INSTALL_STAGING_HOOKS += SPICE_POST_INSTALL_STAGING_FIX_PC
+
+# It is currently not possible to detect if stack-protection is available
+# or not, because it requires support from both the compiler *and* the
+# C library, but the C library (eg. uClibc) can be compiled without that
+# support, even if gcc accepts the -fstack-protector-all option.
+# spice's ./configure only checks for gcc's -fstack-protector-all option,
+# so it misses the case where the C library doe not provide the requires
+# support.
+# A correct fix would be to fix spice's ./configure to also check the C
+# library, but it might be much more involved.
+# So, we simply disable it for now. After all, as uClibc's help puts it:
+#     Note that NOEXECSTACK on a kernel with address space randomization
+#     is generally sufficient to prevent most buffer overflow exploits
+#     without increasing code size.
+SPICE_CONF_OPT += gl_cv_warn__fstack_protector_all=no
+
+$(eval $(autotools-package))
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 15/52] package/spice: enable client
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (13 preceding siblings ...)
  2012-12-10 23:44 ` [Buildroot] [PATCH 14/52] package/spice: " Yann E. MORIN
@ 2012-12-10 23:44 ` Yann E. MORIN
  2012-12-10 23:44 ` [Buildroot] [PATCH 16/52] package/spice: enable GUI Yann E. MORIN
                   ` (36 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:44 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/spice/Config.in |   13 +++++++++++++
 package/spice/spice.mk  |    8 +++++++-
 2 files changed, 20 insertions(+), 1 deletions(-)

diff --git a/package/spice/Config.in b/package/spice/Config.in
index 086b1bc..aacc779 100644
--- a/package/spice/Config.in
+++ b/package/spice/Config.in
@@ -21,3 +21,16 @@ config BR2_PACKAGE_SPICE
 	  This package implements the server-part of Spice.
 	  
 	  http://www.spice-space.org/
+
+if BR2_PACKAGE_SPICE
+
+comment "client depends on X.org"
+	depends on !BR2_PACKAGE_XORG7
+
+config BR2_PACKAGE_SPICE_CLIENT
+	bool "Enable client"
+	depends on BR2_PACKAGE_XORG7
+	select BR2_PACKAGE_XLIB_LIBXFIXES
+	select BR2_PACKAGE_XLIB_LIBXRANDR
+
+endif # BR2_PACKAGE_SPICE
diff --git a/package/spice/spice.mk b/package/spice/spice.mk
index 2752b8a..2f7fc20 100644
--- a/package/spice/spice.mk
+++ b/package/spice/spice.mk
@@ -26,12 +26,18 @@ SPICE_CONF_OPT =            \
   --disable-gui             \
   --disable-opengl          \
   --disable-smartcard       \
-  --disable-client          \
   --disable-automated-tests \
   --without-sasl            \
 
 SPICE_DEPENDENCIES += host-pkgconf
 
+ifeq ($(BR2_PACKAGE_SPICE_CLIENT),y)
+SPICE_CONF_OPT += --enable-client
+SPICE_DEPENDENCIES += xlib_libXfixes xlib_libXrandr
+else
+SPICE_CONF_OPT += --disable-client
+endif
+
 SPICE_CONF_ENV = PYTHONPATH=$(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages
 SPICE_MAKE_ENV = PYTHONPATH=$(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages
 
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 16/52] package/spice: enable GUI
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (14 preceding siblings ...)
  2012-12-10 23:44 ` [Buildroot] [PATCH 15/52] package/spice: enable client Yann E. MORIN
@ 2012-12-10 23:44 ` Yann E. MORIN
  2012-12-10 23:44 ` [Buildroot] [PATCH 17/52] package/spice: enable slirp support Yann E. MORIN
                   ` (35 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:44 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/spice/Config.in |    8 ++++++++
 package/spice/spice.mk  |    8 +++++++-
 2 files changed, 15 insertions(+), 1 deletions(-)

diff --git a/package/spice/Config.in b/package/spice/Config.in
index aacc779..08c3893 100644
--- a/package/spice/Config.in
+++ b/package/spice/Config.in
@@ -33,4 +33,12 @@ config BR2_PACKAGE_SPICE_CLIENT
 	select BR2_PACKAGE_XLIB_LIBXFIXES
 	select BR2_PACKAGE_XLIB_LIBXRANDR
 
+config BR2_PACKAGE_SPICE_GUI
+	bool "Enable GUI"
+	depends on BR2_PACKAGE_SPICE_CLIENT
+	select BR2_PACKAGE_CEGUI06
+	help
+	  Say 'y' here to enable the Graphical User Interface (GUI)
+	  start dialog.
+
 endif # BR2_PACKAGE_SPICE
diff --git a/package/spice/spice.mk b/package/spice/spice.mk
index 2f7fc20..0a5c58e 100644
--- a/package/spice/spice.mk
+++ b/package/spice/spice.mk
@@ -23,7 +23,6 @@ SPICE_DEPENDENCIES    = \
 # quite deep if we try to enable some features, and I have not tested that.
 SPICE_CONF_OPT =            \
   --disable-tunnel          \
-  --disable-gui             \
   --disable-opengl          \
   --disable-smartcard       \
   --disable-automated-tests \
@@ -38,6 +37,13 @@ else
 SPICE_CONF_OPT += --disable-client
 endif
 
+ifeq ($(BR2_PACKAGE_SPICE_GUI),y)
+SPICE_CONF_OPT += --enable-gui
+SPICE_DEPENDENCIES += cegui06
+else
+SPICE_CONF_OPT += --disable-gui
+endif
+
 SPICE_CONF_ENV = PYTHONPATH=$(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages
 SPICE_MAKE_ENV = PYTHONPATH=$(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages
 
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 17/52] package/spice: enable slirp support
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (15 preceding siblings ...)
  2012-12-10 23:44 ` [Buildroot] [PATCH 16/52] package/spice: enable GUI Yann E. MORIN
@ 2012-12-10 23:44 ` Yann E. MORIN
  2012-12-10 23:44 ` [Buildroot] [PATCH 18/52] package/libseccomp: new package Yann E. MORIN
                   ` (34 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:44 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/spice/Config.in |    7 +++++++
 package/spice/spice.mk  |    8 +++++++-
 2 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/package/spice/Config.in b/package/spice/Config.in
index 08c3893..b1e187a 100644
--- a/package/spice/Config.in
+++ b/package/spice/Config.in
@@ -41,4 +41,11 @@ config BR2_PACKAGE_SPICE_GUI
 	  Say 'y' here to enable the Graphical User Interface (GUI)
 	  start dialog.
 
+config BR2_PACKAGE_SPICE_TUNNEL
+	bool "Enable network redirection"
+	select BR2_PACKAGE_SLIRP
+	help
+	  Say 'y' here to enable network redirection, aka tunnelling
+	  through a SLIP/SLIRP session.
+
 endif # BR2_PACKAGE_SPICE
diff --git a/package/spice/spice.mk b/package/spice/spice.mk
index 0a5c58e..78ca202 100644
--- a/package/spice/spice.mk
+++ b/package/spice/spice.mk
@@ -22,7 +22,6 @@ SPICE_DEPENDENCIES    = \
 # We disable everything for now, because the dependency tree can become
 # quite deep if we try to enable some features, and I have not tested that.
 SPICE_CONF_OPT =            \
-  --disable-tunnel          \
   --disable-opengl          \
   --disable-smartcard       \
   --disable-automated-tests \
@@ -44,6 +43,13 @@ else
 SPICE_CONF_OPT += --disable-gui
 endif
 
+ifeq ($(BR2_PACKAGE_SPICE_TUNNEL),y)
+SPICE_CONF_OPT += --enable-tunnel
+SPICE_DEPENDENCIES += slirp
+else
+SPICE_CONF_OPT += --disable-tunnel
+endif
+
 SPICE_CONF_ENV = PYTHONPATH=$(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages
 SPICE_MAKE_ENV = PYTHONPATH=$(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages
 
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 18/52] package/libseccomp: new package
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (16 preceding siblings ...)
  2012-12-10 23:44 ` [Buildroot] [PATCH 17/52] package/spice: enable slirp support Yann E. MORIN
@ 2012-12-10 23:44 ` Yann E. MORIN
  2012-12-10 23:44 ` [Buildroot] [PATCH 19/52] package/keyutils: " Yann E. MORIN
                   ` (33 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:44 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/Config.in                                  |    1 +
 package/libseccomp/Config.in                       |   13 +++++++++++
 ...ibseccomp-use-system-headers-from-sysroot.patch |   17 +++++++++++++++
 package/libseccomp/libseccomp.mk                   |   22 ++++++++++++++++++++
 4 files changed, 53 insertions(+), 0 deletions(-)
 create mode 100644 package/libseccomp/Config.in
 create mode 100644 package/libseccomp/libseccomp-use-system-headers-from-sysroot.patch
 create mode 100644 package/libseccomp/libseccomp.mk

diff --git a/package/Config.in b/package/Config.in
index 79a1342..6ab638d 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -521,6 +521,7 @@ source "package/libical/Config.in"
 source "package/libnspr/Config.in"
 source "package/libsigc/Config.in"
 source "package/libtpl/Config.in"
+source "package/libseccomp/Config.in"
 source "package/liburcu/Config.in"
 source "package/linux-pam/Config.in"
 source "package/lttng-libust/Config.in"
diff --git a/package/libseccomp/Config.in b/package/libseccomp/Config.in
new file mode 100644
index 0000000..183cf4e
--- /dev/null
+++ b/package/libseccomp/Config.in
@@ -0,0 +1,13 @@
+config BR2_PACKAGE_LIBSECCOMP
+	bool "libseccomp"
+	help
+	  High level interface to the Linux Kernel's seccomp filter 
+	  
+	  The libseccomp library provides and easy to use, platform independent,
+	  interface to the Linux Kernel's syscall filtering mechanism: seccomp.
+	  The libseccomp API is designed to abstract away the underlying BPF
+	  based syscall filter language and present a more conventional
+	  function-call based filtering interface that should be familiar to,
+	  and easily adopted by application developers.
+	  
+	  http://sourceforge.net/projects/libseccomp/
diff --git a/package/libseccomp/libseccomp-use-system-headers-from-sysroot.patch b/package/libseccomp/libseccomp-use-system-headers-from-sysroot.patch
new file mode 100644
index 0000000..0997edd
--- /dev/null
+++ b/package/libseccomp/libseccomp-use-system-headers-from-sysroot.patch
@@ -0,0 +1,17 @@
+configure: check headers in sysroot, not in host's system headers
+
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+
+diff -durN libseccomp-1.0.0.orig/configure libseccomp-1.0.0/configure
+--- libseccomp-1.0.0.orig/configure	2012-07-27 22:35:05.000000000 +0200
++++ libseccomp-1.0.0/configure	2012-10-27 00:12:50.739196219 +0200
+@@ -205,7 +205,8 @@
+ #
+ 
+ # system seccomp includes
+-if [[ -r "/usr/include/linux/seccomp.h" ]]; then
++# ${SYSROOT} added by buildroot for cross-compilation
++if [[ -r "${SYSROOT}/usr/include/linux/seccomp.h" ]]; then
+ 	opt_sysinc_seccomp="yes"
+ else
+ 	opt_sysinc_seccomp="no"
diff --git a/package/libseccomp/libseccomp.mk b/package/libseccomp/libseccomp.mk
new file mode 100644
index 0000000..73fe632
--- /dev/null
+++ b/package/libseccomp/libseccomp.mk
@@ -0,0 +1,22 @@
+#############################################################
+#
+# libseccomp
+#
+#############################################################
+
+LIBSECCOMP_VERSION         = 1.0.0
+LIBSECCOMP_SOURCE          = libseccomp-$(LIBSECCOMP_VERSION).tar.gz
+LIBSECCOMP_SITE            = http://downloads.sourceforge.net/project/libseccomp
+LIBSECCOMP_LICENSE         = LGPLv2.1
+LIBSECCOMP_LICENSE_FILES   = LICENSE
+LIBSECCOMP_INSTALL_STAGING = YES
+
+# Needed for configure to find our system headers:
+LIBSECCOMP_CONF_ENV            = SYSROOT=$(STAGING_DIR)
+LIBSECCOMP_MAKE_ENV            = $(TARGET_CONFIGURE_OPTS)
+LIBSECCOMP_MAKE_OPT            = SUBDIRS_BUILD=src
+LIBSECCOMP_INSTALL_STAGING_OPT = SUBDIRS_BUILD=src SUBDIRS_INSTALL="src include" DESTDIR=$(STAGING_DIR) install
+LIBSECCOMP_INSTALL_TARGET_OPT  = SUBDIRS_BUILD=src SUBDIRS_INSTALL="src include" DESTDIR=$(TARGET_DIR) install
+
+# Not a real autotools package, but works quite OK nonetheless
+$(eval $(autotools-package))
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 19/52] package/keyutils: new package
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (17 preceding siblings ...)
  2012-12-10 23:44 ` [Buildroot] [PATCH 18/52] package/libseccomp: new package Yann E. MORIN
@ 2012-12-10 23:44 ` Yann E. MORIN
  2012-12-10 23:44 ` [Buildroot] [PATCH 20/52] package/pmake: add host pmake Yann E. MORIN
                   ` (32 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:44 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Jarkko Sakkinen <jarkko.sakkinen@iki.fi>
---
 package/Config.in                                  |    1 +
 package/keyutils/Config.in                         |    7 ++
 .../keyutils-01-memleak-from-realloc.patch         |   51 +++++++++++++++
 package/keyutils/keyutils-02-another-memleak.patch |   32 ++++++++++
 package/keyutils/keyutils-03-cifs.patch            |   15 +++++
 .../keyutils-04-Makefile-for-buildroot.patch       |   65 ++++++++++++++++++++
 .../keyutils/keyutils-05-fix-install-rule.patch    |   19 ++++++
 package/keyutils/keyutils.mk                       |   32 ++++++++++
 8 files changed, 222 insertions(+), 0 deletions(-)
 create mode 100644 package/keyutils/Config.in
 create mode 100644 package/keyutils/keyutils-01-memleak-from-realloc.patch
 create mode 100644 package/keyutils/keyutils-02-another-memleak.patch
 create mode 100644 package/keyutils/keyutils-03-cifs.patch
 create mode 100644 package/keyutils/keyutils-04-Makefile-for-buildroot.patch
 create mode 100644 package/keyutils/keyutils-05-fix-install-rule.patch
 create mode 100644 package/keyutils/keyutils.mk

diff --git a/package/Config.in b/package/Config.in
index 6ab638d..c90fcd8 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -738,6 +738,7 @@ endif
 source "package/bwm-ng/Config.in"
 source "package/cpuload/Config.in"
 source "package/htop/Config.in"
+source "package/keyutils/Config.in"
 source "package/kmod/Config.in"
 if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
 source "package/module-init-tools/Config.in"
diff --git a/package/keyutils/Config.in b/package/keyutils/Config.in
new file mode 100644
index 0000000..9b5a24b
--- /dev/null
+++ b/package/keyutils/Config.in
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_KEYUTILS
+	bool "keyutils"
+	help
+	  These tools are used to control the key management system
+	  built into the Linux kernel.
+	  
+	  http://people.redhat.com/~dhowells/keyutils/
diff --git a/package/keyutils/keyutils-01-memleak-from-realloc.patch b/package/keyutils/keyutils-01-memleak-from-realloc.patch
new file mode 100644
index 0000000..0faa9d8
--- /dev/null
+++ b/package/keyutils/keyutils-01-memleak-from-realloc.patch
@@ -0,0 +1,51 @@
+Patch vampirised from Debian's packaging of keyutils-1.4
+
+Author: Michael Gebetsroither <gebi@grml.org>
+Description: Fixed memleak from realloc (Closes: #496466).
+
+diff -Naurp keyutils.orig/keyutils.c keyutils/keyutils.c
+--- keyutils.orig/keyutils.c	2008-08-09 21:46:52.000000000 +0200
++++ keyutils/keyutils.c	2008-08-25 13:38:07.000000000 +0200
+@@ -165,6 +165,24 @@ long keyctl_assume_authority(key_serial_
+ 	return keyctl(KEYCTL_ASSUME_AUTHORITY, id);
+ }
+ 
++
++/*****************************************************************************/
++/*
++ * plain realloc is just crazy
++ */
++static void* __xrealloc(void* ptr, size_t size)
++{
++    void* ret;
++
++    ret = realloc(ptr, size);
++    if(!ret) {
++        free(ptr);
++        return 0;
++    }
++    return ret;
++}
++
++
+ /*****************************************************************************/
+ /*
+  * fetch key description into an allocated buffer
+@@ -194,7 +212,7 @@ int keyctl_describe_alloc(key_serial_t i
+ 			break;
+ 
+ 		buflen = ret;
+-		buf = realloc(buf, buflen);
++		buf = __xrealloc(buf, buflen);
+ 		if (!buf)
+ 			return -1;
+ 	}
+@@ -233,7 +251,7 @@ int keyctl_read_alloc(key_serial_t id, v
+ 			break;
+ 
+ 		buflen = ret;
+-		buf = realloc(buf, buflen + 1);
++		buf = __xrealloc(buf, buflen + 1);
+ 		if (!buf)
+ 			return -1;
+ 	}
diff --git a/package/keyutils/keyutils-02-another-memleak.patch b/package/keyutils/keyutils-02-another-memleak.patch
new file mode 100644
index 0000000..f74fd79
--- /dev/null
+++ b/package/keyutils/keyutils-02-another-memleak.patch
@@ -0,0 +1,32 @@
+Patch vampirised from Debian's packaging of keyutils-1.4
+
+Author: Michael Gebetsroither <gebi@grml.org>
+Description: Fixed another memleak (Closes: #496466).
+
+diff -Naurp keyutils.orig/keyutils.c keyutils/keyutils.c
+--- keyutils.orig/keyutils.c	2008-08-09 21:46:52.000000000 +0200
++++ keyutils/keyutils.c	2008-08-25 13:38:25.000000000 +0200
+@@ -187,8 +187,10 @@ int keyctl_describe_alloc(key_serial_t i
+ 
+ 	for (;;) {
+ 		ret = keyctl_describe(id, buf, buflen);
+-		if (ret < 0)
++		if (ret < 0) {
++            free(buf);
+ 			return -1;
++        }
+ 
+ 		if (buflen >= ret)
+ 			break;
+@@ -226,8 +228,10 @@ int keyctl_read_alloc(key_serial_t id, v
+ 
+ 	for (;;) {
+ 		ret = keyctl_read(id, buf, buflen);
+-		if (ret < 0)
++		if (ret < 0) {
++            free(buf);
+ 			return -1;
++        }
+ 
+ 		if (buflen >= ret)
+ 			break;
diff --git a/package/keyutils/keyutils-03-cifs.patch b/package/keyutils/keyutils-03-cifs.patch
new file mode 100644
index 0000000..b2903f9
--- /dev/null
+++ b/package/keyutils/keyutils-03-cifs.patch
@@ -0,0 +1,15 @@
+Patch vampirised from Debian's packaging of keyutils-1.4
+
+Author: Marcus Meissner <meissner@suse.de>
+Description: Added 2 cifs helpers to request-key.conf (for CIFS DFS support)
+
+diff -Naurp keyutils.orig/request-key.conf keyutils/request-key.conf
+--- keyutils.orig/request-key.conf	2008-09-07 23:53:10.000000000 +0000
++++ keyutils/request-key.conf	2009-02-05 00:53:00.000000000 +0000
+@@ -34,4 +34,6 @@
+ create	user	debug:*		negate		/bin/keyctl negate %k 30 %S
+ create	user	debug:loop:*	*		|/bin/cat
+ create	user	debug:*		*		/usr/share/keyutils/request-key-debug.sh %k %d %c %S
++create	cifs.spnego	*	*		/usr/sbin/cifs.upcall -c %k
++create	dns_resolver	*	*		/usr/sbin/cifs.upcall %k
+ negate	*	*		*		/bin/keyctl negate %k 30 %S
diff --git a/package/keyutils/keyutils-04-Makefile-for-buildroot.patch b/package/keyutils/keyutils-04-Makefile-for-buildroot.patch
new file mode 100644
index 0000000..e10abd5
--- /dev/null
+++ b/package/keyutils/keyutils-04-Makefile-for-buildroot.patch
@@ -0,0 +1,65 @@
+diff -durN keyutils-1.5.5.orig/Makefile keyutils-1.5.5/Makefile
+--- keyutils-1.5.5.orig/Makefile	2011-11-30 16:27:43.000000000 +0100
++++ keyutils-1.5.5/Makefile	2012-08-14 17:06:07.064412101 +0200
+@@ -1,7 +1,5 @@
+-CPPFLAGS	:= -I.
+-CFLAGS		:= -g -Wall -Werror
+-INSTALL		:= install
+-DESTDIR		:=
++CPPFLAGS	+= -I.
++CFLAGS		+= -g -Wall -Werror
+ SPECFILE	:= keyutils.spec
+ NO_GLIBC_KEYERR	:= 0
+ NO_ARLIB	:= 0
+@@ -14,7 +12,7 @@
+ MAN5		:= /usr/share/man/man5
+ MAN8		:= /usr/share/man/man8
+ INCLUDEDIR	:= /usr/include
+-LNS		:= ln -sf
++LNS		:= $(LN) -sf
+ 
+ ###############################################################################
+ #
+@@ -48,29 +46,6 @@
+ 
+ ###############################################################################
+ #
+-# Guess at the appropriate lib directory and word size
+-#
+-###############################################################################
+-LIBDIR		:= $(shell ldd /usr/bin/make | grep '\(/libc\)' | sed -e 's!.*\(/.*\)/libc[.].*!\1!')
+-USRLIBDIR	:= $(patsubst /lib/%,/usr/lib/%,$(LIBDIR))
+-BUILDFOR	:= $(shell file /usr/bin/make | sed -e 's!.*ELF \(32\|64\)-bit.*!\1!')-bit
+-
+-LNS		:= ln -sf
+-
+-ifeq ($(BUILDFOR),32-bit)
+-CFLAGS		+= -m32
+-LIBDIR		:= /lib
+-USRLIBDIR	:= /usr/lib
+-else
+-ifeq ($(BUILDFOR),64-bit)
+-CFLAGS		+= -m64
+-LIBDIR		:= /lib64
+-USRLIBDIR	:= /usr/lib64
+-endif
+-endif
+-
+-###############################################################################
+-#
+ # This is necessary if glibc doesn't know about the key management error codes
+ #
+ ###############################################################################
+@@ -110,10 +85,10 @@
+ 
+ 
+ $(DEVELLIB): $(SONAME)
+-	ln -sf $< $@
++	$(LNS) $< $@
+ 
+ $(SONAME): $(LIBNAME)
+-	ln -sf $< $@
++	$(LNS) $< $@
+ 
+ LIBVERS := -shared -Wl,-soname,$(SONAME) -Wl,--version-script,version.lds
+ 
diff --git a/package/keyutils/keyutils-05-fix-install-rule.patch b/package/keyutils/keyutils-05-fix-install-rule.patch
new file mode 100644
index 0000000..74e5670
--- /dev/null
+++ b/package/keyutils/keyutils-05-fix-install-rule.patch
@@ -0,0 +1,19 @@
+Makefile: fix install rule
+
+Do not link the .so with an absolute path, otherwise it may point to
+the host library.
+
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+
+diff -durN keyutils-1.5.5.orig/Makefile keyutils-1.5.5/Makefile
+--- keyutils-1.5.5.orig/Makefile	2012-10-22 20:11:57.188548033 +0200
++++ keyutils-1.5.5/Makefile	2012-10-22 20:14:40.868236838 +0200
+@@ -127,7 +127,7 @@
+ 	$(INSTALL) -D $(LIBNAME) $(DESTDIR)$(LIBDIR)/$(LIBNAME)
+ 	$(LNS) $(LIBNAME) $(DESTDIR)$(LIBDIR)/$(SONAME)
+ 	mkdir -p $(DESTDIR)$(USRLIBDIR)
+-	$(LNS) $(LIBDIR)/$(SONAME) $(DESTDIR)$(USRLIBDIR)/$(DEVELLIB)
++	$(LNS) $(SONAME) $(DESTDIR)$(USRLIBDIR)/$(DEVELLIB)
+ 	$(INSTALL) -D keyctl $(DESTDIR)$(BINDIR)/keyctl
+ 	$(INSTALL) -D request-key $(DESTDIR)$(SBINDIR)/request-key
+ 	$(INSTALL) -D request-key-debug.sh $(DESTDIR)$(SHAREDIR)/request-key-debug.sh
diff --git a/package/keyutils/keyutils.mk b/package/keyutils/keyutils.mk
new file mode 100644
index 0000000..184b58d
--- /dev/null
+++ b/package/keyutils/keyutils.mk
@@ -0,0 +1,32 @@
+#############################################################
+#
+# keyutils
+#
+##############################################################
+
+KEYUTILS_VERSION         = 1.5.5
+KEYUTILS_SOURCE          = keyutils-$(KEYUTILS_VERSION).tar.bz2
+KEYUTILS_SITE            = http://people.redhat.com/~dhowells/keyutils
+KEYUTILS_LICENSE         = GPLv2+ LGPLv2.1+
+KEYUTILS_LICENSE_FILES   = LICENCE.GPL LICENCE.LGPL
+KEYUTILS_INSTALL_STAGING = YES
+
+KEYUTILS_MAKE_ENV =     \
+    INSTALL=$(INSTALL)  \
+    LIBDIR=/usr/lib     \
+    USRLIBDIR=/usr/lib  \
+    LN=$(HOSTLN)        \
+
+define KEYUTILS_BUILD_CMDS
+	$(KEYUTILS_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D)
+endef
+
+define KEYUTILS_INSTALL_STAGING_CMDS
+	$(KEYUTILS_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) install
+endef
+
+define KEYUTILS_INSTALL_TARGET_CMDS
+	$(KEYUTILS_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install
+endef
+
+$(eval $(generic-package))
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 20/52] package/pmake: add host pmake
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (18 preceding siblings ...)
  2012-12-10 23:44 ` [Buildroot] [PATCH 19/52] package/keyutils: " Yann E. MORIN
@ 2012-12-10 23:44 ` Yann E. MORIN
  2012-12-10 23:44 ` [Buildroot] [PATCH 21/52] package/libbsd: new package Yann E. MORIN
                   ` (31 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:44 UTC (permalink / raw)
  To: buildroot

pmake is the make command used by the BSD.
It will used to build BSD-related packages, coming later.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/pmake/pmake-100_mk.patch         | 2624 ++++++++++++++++++++++++++++++
 package/pmake/pmake-110_mkdep.patch      |  230 +++
 package/pmake/pmake-120_fixes.patch      |  266 +++
 package/pmake/pmake-130_maxpathlen.patch |   39 +
 package/pmake/pmake-140_multiarch.patch  |  354 ++++
 package/pmake/pmake-150_mktemp.patch     |   31 +
 package/pmake/pmake.mk                   |   46 +
 7 files changed, 3590 insertions(+), 0 deletions(-)
 create mode 100644 package/pmake/pmake-100_mk.patch
 create mode 100644 package/pmake/pmake-110_mkdep.patch
 create mode 100644 package/pmake/pmake-120_fixes.patch
 create mode 100644 package/pmake/pmake-130_maxpathlen.patch
 create mode 100644 package/pmake/pmake-140_multiarch.patch
 create mode 100644 package/pmake/pmake-150_mktemp.patch
 create mode 100644 package/pmake/pmake.mk

diff --git a/package/pmake/pmake-100_mk.patch b/package/pmake/pmake-100_mk.patch
new file mode 100644
index 0000000..1786690
--- /dev/null
+++ b/package/pmake/pmake-100_mk.patch
@@ -0,0 +1,2624 @@
+Patch vampirised from Debian's package pmake_1.111-3.2:
+    http://snapshot.debian.org/archive/debian/20120601T033558Z/pool/main/p/pmake/
+
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+
+--- pmake-1.111.orig/mk/Makefile
++++ pmake-1.111/mk/Makefile
+@@ -0,0 +1,16 @@
++#	$NetBSD: Makefile,v 1.24 1999/02/13 02:54:36 lukem Exp $
++#	@(#)Makefile	8.1 (Berkeley) 6/8/93
++
++.include <bsd.own.mk>
++
++.if ${MKSHARE} != "no"
++FILES=	bsd.README bsd.doc.mk bsd.dep.mk bsd.files.mk bsd.inc.mk bsd.info.mk \
++	bsd.kinc.mk bsd.kmod.mk bsd.lib.mk bsd.links.mk bsd.man.mk bsd.nls.mk \
++	bsd.obj.mk bsd.own.mk bsd.prog.mk bsd.subdir.mk bsd.sys.mk sys.mk
++FILESDIR=/usr/share/mk
++.endif
++MKOBJ=	no
++
++FILESMODE=444
++
++.include <bsd.prog.mk>
+--- pmake-1.111.orig/mk/bsd.README
++++ pmake-1.111/mk/bsd.README
+@@ -0,0 +1,536 @@
++#	$NetBSD: bsd.README,v 1.48 1999/02/13 03:04:09 lukem Exp $
++#	@(#)bsd.README	8.2 (Berkeley) 4/2/94
++
++This is the README file for the new make "include" files for the BSD
++source tree.  The files are installed in /usr/share/mk, and are, by
++convention, named with the suffix ".mk".
++
++Note, this file is not intended to replace reading through the .mk
++files for anything tricky.
++
++=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
++
++RANDOM THINGS WORTH KNOWING:
++
++The files are simply C-style #include files, and pretty much behave like
++you'd expect.  The syntax is slightly different in that a single '.' is
++used instead of the hash mark, i.e. ".include <bsd.prog.mk>".
++
++One difference that will save you lots of debugging time is that inclusion
++of the file is normally done at the *end* of the Makefile.  The reason for
++this is because .mk files often modify variables and behavior based on the
++values of variables set in the Makefile.  To make this work, remember that
++the FIRST target found is the target that is used, i.e. if the Makefile has:
++
++	a:
++		echo a
++	a:
++		echo a number two
++
++the command "make a" will echo "a".  To make things confusing, the SECOND
++variable assignment is the overriding one, i.e. if the Makefile has:
++
++	a=	foo
++	a=	bar
++
++	b:
++		echo ${a}
++
++the command "make b" will echo "bar".  This is for compatibility with the
++way the V7 make behaved.
++
++It's fairly difficult to make the BSD .mk files work when you're building
++multiple programs in a single directory.  It's a lot easier split up the
++programs than to deal with the problem.  Most of the agony comes from making
++the "obj" directory stuff work right, not because we switched to a new version
++of make.  So, don't get mad at us, figure out a better way to handle multiple
++architectures so we can quit using the symbolic link stuff.  (Imake doesn't
++count.)
++
++The file .depend in the source directory is expected to contain dependencies
++for the source files.  This file is read automatically by make after reading
++the Makefile.
++
++The variable DESTDIR works as before.  It's not set anywhere but will change
++the tree where the file gets installed.
++
++The profiled libraries are no longer built in a different directory than
++the regular libraries.  A new suffix, ".po", is used to denote a profiled
++object, and ".so" denotes a shared (position-independent) object.
++
++The following variables that control how things are made/installed that
++are not set by default. These should not be set by Makefiles; they're for
++the user to define in MAKECONF (see bsd.own.mk, below) or on the make(1)
++command line:
++
++BUILD 		If defined, 'make install' checks that the targets in the
++		source directories are up-to-date and remakes them if they
++                are out of date, instead of blindly trying to install
++                out of date or non-existant targets.
++
++UPDATE 		If defined, 'make install' only installs targets that are
++		more recently modified in the source directories that their
++		installed counterparts.
++
++MKCATPAGES	If "no", don't build or install the catman pages.
++
++MKDOC		If "no", don't build or install the documentation.
++
++MKINFO		If "no", don't build or install Info documentation from
++		Texinfo source files.
++
++MKLINT		If "no", don't build or install the lint libraries.
++
++MKMAN		If "no", don't build or install the man or catman pages.
++		Also acts as "MKCATPAGES=no"
++
++MKNLS		If "no", don't build or install the NLS files.
++
++MKOBJ		If "no", don't create objdirs.
++
++MKPIC		If "no", don't build or install shared libraries.
++
++MKPICINSTALL	If "no", don't install the *_pic.a libraries.
++
++MKPROFILE	If "no", don't build or install the profiling libraries.
++
++MKSHARE		If "no", act as "MKCATPAGES=no MKDOC=no MKINFO=no MKMAN=no
++		MKNLS=no".  I.e, don't build catman pages, documentation,
++		Info documentation, man pages, NLS files, ...
++
++=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
++
++The include file <sys.mk> has the default rules for all makes, in the BSD
++environment or otherwise.  You probably don't want to touch this file.
++
++=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
++
++The include file <bsd.man.mk> handles installing manual pages and their
++links.
++
++It has a two targets:
++
++	maninstall:
++		Install the manual page sources and their links.
++	catinstall:
++		Install the preformatted manual pages and their links.
++
++It sets/uses the following variables:
++
++MANDIR		Base path for manual installation.
++
++MANGRP		Manual group.
++
++MANOWN		Manual owner.
++
++MANMODE		Manual mode.
++
++MANSUBDIR	Subdirectory under the manual page section, i.e. "/vax"
++		or "/tahoe" for machine specific manual pages.
++
++MAN		The manual pages to be installed (use a .1 - .9 suffix).
++
++MLINKS		List of manual page links (using a .1 - .9 suffix).  The
++		linked-to file must come first, the linked file second,
++		and there may be multiple pairs.  The files are soft-linked.
++
++The include file <bsd.man.mk> includes a file named "../Makefile.inc" if
++it exists.
++
++=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
++
++The include file <bsd.own.mk> contains source tree configuration parameters,
++such as the owners, groups, etc. for both manual pages and binaries, and
++a few global "feature configuration" parameters.
++
++It has no targets.
++
++To get system-specific configuration parameters, bsd.own.mk will try to
++include the file specified by the "MAKECONF" variable.  If MAKECONF is not
++set, or no such file exists, the system make configuration file, /etc/mk.conf
++is included.  These files may define any of the variables described below.
++
++bsd.own.mk sets the following variables, if they are not already defined
++(defaults are in brackets):
++
++BSDSRCDIR	The real path to the system sources, so that 'make obj'
++		will work correctly. [/usr/src]
++
++BSDOBJDIR	The real path to the system 'obj' tree, so that 'make obj'
++		will work correctly. [/usr/obj]
++
++BINGRP		Binary group. [wheel]
++
++BINOWN		Binary owner. [root]
++
++BINMODE		Binary mode. [555]
++
++NONBINMODE	Mode for non-executable files. [444]
++
++MANDIR		Base path for manual installation. [/usr/share/man/cat]
++
++MANGRP		Manual group. [wheel]
++
++MANOWN		Manual owner. [root]
++
++MANMODE		Manual mode. [${NONBINMODE}]
++
++MANINSTALL	Manual installation type: maninstall, catinstall, or both
++
++LIBDIR		Base path for library installation. [/usr/lib]
++
++LINTLIBDIR	Base path for lint(1) library installation. [/usr/libdata/lint]
++
++LIBGRP		Library group. [${BINGRP}]
++
++LIBOWN		Library owner. [${BINOWN}]
++
++LIBMODE		Library mode. [${NONBINMODE}]
++
++DOCDIR		Base path for system documentation (e.g. PSD, USD, etc.)
++	        installation. [/usr/share/doc]
++
++DOCGRP		Documentation group. [wheel]
++
++DOCOWN		Documentation owner. [root]
++
++DOCMODE		Documentation mode. [${NONBINMODE}]
++
++NLSDIR		Base path for National Language Support files installation.
++		[/usr/share/nls]
++
++NLSGRP		National Language Support files group. [wheel]
++
++NLSOWN		National Language Support files owner. [root]
++
++NLSMODE		National Language Support files mode. [${NONBINMODE}]
++
++STRIPFLAG	The flag passed to the install program to cause the binary
++		to be stripped.  This is to be used when building your
++		own install script so that the entire system can be made
++		stripped/not-stripped using a single knob. [-s]
++
++COPY		The flag passed to the install program to cause the binary
++		to be copied rather than moved.  This is to be used when
++		building our own install script so that the entire system
++		can either be installed with copies, or with moves using
++		a single knob. [-c]
++
++Additionally, the following variables may be set by bsd.own.mk or in a
++make configuration file to modify the behaviour of the system build
++process (default values are in brackets along with comments, if set by
++bsd.own.mk):
++
++EXPORTABLE_SYSTEM
++		Do not build /usr/src/domestic, even if it is present.
++
++SKEY		Compile in support for S/key authentication. [yes, set
++		unconditionally]
++
++KERBEROS	Compile in support for Kerberos 4 authentication.
++
++KERBEROS5	Compile in support for Kerberos 5 authentication.
++
++MANZ		Compress manual pages at installation time.
++
++SYS_INCLUDE	Copy or symlink kernel include files into /usr/include.
++		Possible values are "symlinks" or "copies" (which is
++		the same as the variable being unset).
++
++NOPROFILE	Do not build profiled versions of system libraries
++
++NOPIC		Do not build PIC versions of system libraries, and
++		do not build shared libraries.
++
++NOLINT		Do not build lint libraries.
++
++OBJECT_FMT	Object file format. [set to "ELF" on  ports that use
++		ELF -- currently if ${MACHINE_ARCH} is "alpha", "mips"
++		or "powerpc" or  set to "a.out" on other ports].
++
++
++bsd.own.mk is generally useful when building your own Makefiles so that
++they use the same default owners etc. as the rest of the tree.
++
++=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
++
++The include file <bsd.prog.mk> handles building programs from one or
++more source files, along with their manual pages.  It has a limited number
++of suffixes, consistent with the current needs of the BSD tree.
++
++It has eight targets:
++
++	all:
++		build the program and its manual page
++	clean:
++		remove the program, any object files and the files a.out,
++		Errs, errs, mklog, and ${PROG}.core.
++	cleandir:
++		remove all of the files removed by the target clean, as
++		well as .depend, tags, and any manual pages.
++		`distclean' is a synonym for `cleandir'.
++	depend:
++		make the dependencies for the source files, and store
++		them in the file .depend.
++	includes:
++		install any header files.
++	install:
++		install the program and its manual pages; if the Makefile
++		does not itself define the target install, the targets
++		beforeinstall and afterinstall may also be used to cause
++		actions immediately before and after the install target
++		is executed.
++	lint:
++		run lint on the source files
++	tags:
++		create a tags file for the source files.
++
++It sets/uses the following variables:
++
++BINGRP		Binary group.
++
++BINOWN		Binary owner.
++
++BINMODE		Binary mode.
++
++CLEANFILES	Additional files to remove for the clean and cleandir targets.
++
++COPTS		Additional flags to the compiler when creating C objects.
++
++CPPFLAGS	Additional flags to the C pre-processor
++
++LDADD		Additional loader objects.  Usually used for libraries.
++		For example, to load with the compatibility and utility
++		libraries, use:
++
++			LDADD+=-lutil -lcompat
++
++LDFLAGS		Additional loader flags.
++
++LINKS		The list of binary links; should be full pathnames, the
++		linked-to file coming first, followed by the linked
++		file.  The files are hard-linked.  For example, to link
++		/bin/test and /bin/[, use:
++
++			LINKS=	${DESTDIR}/bin/test ${DESTDIR}/bin/[
++
++SYMLINKS	The list of symbolic links; should be full pathnames.
++                Syntax is identical to LINKS. Note that DESTDIR is not
++		automatically included in the link.
++
++MAN		Manual pages (should end in .1 - .9).  If no MAN variable is
++		defined, "MAN=${PROG}.1" is assumed.
++
++PROG		The name of the program to build.  If not supplied, nothing
++		is built.
++
++PROGNAME	The name that the above program will be installed as, if
++		different from ${PROG}.
++
++SRCS		List of source files to build the program.  If SRCS is not
++		defined, it's assumed to be ${PROG}.c.
++
++DPADD		Additional dependencies for the program.  Usually used for
++		libraries.  For example, to depend on the compatibility and
++		utility libraries use:
++
++			DPADD+=${LIBCOMPAT} ${LIBUTIL}
++
++		The following libraries are predefined for DPADD:
++
++		LIBC?=		${DESTDIR}/usr/lib/libc.a
++		LIBC_PIC?=	${DESTDIR}/usr/lib/libc_pic.a
++		LIBCOMPAT?=	${DESTDIR}/usr/lib/libcompat.a
++		LIBCRYPT?=	${DESTDIR}/usr/lib/libcrypt.a
++		LIBCURSES?=	${DESTDIR}/usr/lib/libcurses.a
++		LIBDBM?=	${DESTDIR}/usr/lib/libdbm.a
++		LIBDES?=	${DESTDIR}/usr/lib/libdes.a
++		LIBEDIT?=	${DESTDIR}/usr/lib/libedit.a
++		LIBGCC?=	${DESTDIR}/usr/lib/libgcc.a
++		LIBGNUMALLOC?=	${DESTDIR}/usr/lib/libgnumalloc.a
++		LIBKDB?=	${DESTDIR}/usr/lib/libkdb.a
++		LIBKRB?=	${DESTDIR}/usr/lib/libkrb.a
++		LIBKVM?=	${DESTDIR}/usr/lib/libkvm.a
++		LIBL?=		${DESTDIR}/usr/lib/libl.a
++		LIBM?=		${DESTDIR}/usr/lib/libm.a
++		LIBMP?=		${DESTDIR}/usr/lib/libmp.a
++		LIBNTP?=	${DESTDIR}/usr/lib/libntp.a
++		LIBPC?=		${DESTDIR}/usr/lib/libpc.a
++		LIBPCAP?=	${DESTDIR}/usr/lib/libpcap.a
++		LIBPLOT?=	${DESTDIR}/usr/lib/libplot.a
++		LIBPOSIX?=	${DESTDIR}/usr/lib/libposix.a
++		LIBRESOLV?=	${DESTDIR}/usr/lib/libresolv.a
++		LIBRPCSVC?=	${DESTDIR}/usr/lib/librpcsvc.a
++		LIBSKEY?=	${DESTDIR}/usr/lib/libskey.a
++		LIBTERMCAP?=	${DESTDIR}/usr/lib/libtermcap.a
++		LIBTELNET?=	${DESTDIR}/usr/lib/libtelnet.a
++		LIBUTIL?=	${DESTDIR}/usr/lib/libutil.a
++		LIBWRAP?=	${DESTDIR}/usr/lib/libwrap.a
++		LIBY?=		${DESTDIR}/usr/lib/liby.a
++		LIBZ?=		${DESTDIR}/usr/lib/libz.a
++
++
++SHAREDSTRINGS	If defined, a new .c.o rule is used that results in shared
++		strings, using xstr(1). Note that this will not work with
++		parallel makes.
++
++STRIP		The flag passed to the install program to cause the binary
++		to be stripped.
++
++SUBDIR		A list of subdirectories that should be built as well.
++		Each of the targets will execute the same target in the
++		subdirectories.
++
++SCRIPTS		A list of interpreter scripts [file.{sh,csh,pl,awk,...}].
++		These are installed exactly like programs.
++
++SCRIPTSNAME	The name that the above program will be installed as, if
++		different from ${SCRIPTS}. These can be further specialized
++		by setting SCRIPTSNAME_<script>.
++
++FILES		A list of files to install. The installation is controlled
++		by the FILESNAME, FILESOWN, FILESGRP, FILESMODE, FILESDIR
++		variables that can be further specialized by FILES<VAR>_<file>
++
++The include file <bsd.prog.mk> includes the file named "../Makefile.inc"
++if it exists, as well as the include file <bsd.man.mk>.
++
++Some simple examples:
++
++To build foo from foo.c with a manual page foo.1, use:
++
++	PROG=	foo
++
++	.include <bsd.prog.mk>
++
++To build foo from foo.c with a manual page foo.2, add the line:
++
++	MAN=	foo.2
++
++If foo does not have a manual page at all, add the line:
++
++	NOMAN=	noman
++
++If foo has multiple source files, add the line:
++
++	SRCS=	a.c b.c c.c d.c
++
++=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
++
++The include file <bsd.subdir.mk> contains the default targets for building
++subdirectories.  It has the same eight targets as <bsd.prog.mk>: all, 
++clean, cleandir, depend, includes, install, lint, and tags.  For all of
++the directories listed in the variable SUBDIRS, the specified directory 
++will be visited and the target made.  There is also a default target which
++allows the command "make subdir" where subdir is any directory listed in
++the variable SUBDIRS.
++
++=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
++
++The include file <bsd.links.mk> handles the LINKS and SYMLINKS variables
++and is included from from bsd.lib.mk and bsd.prog.mk.
++
++=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
++
++The include file <bsd.files.mk> handles the FILES variables and is included
++from bsd.lib.mk and bsd.prog.mk.
++
++=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
++
++The include file <bsd.inc.mk> defines the includes target and uses two
++variables:
++
++INCS	The list of include files
++
++INCSDIR	The location to install the include files.
++
++=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
++
++The include file <bsd.kinc.mk> defines the many targets (includes,
++subdirectories, etc.), and is used by kernel makefiles to handle
++include file installation.  It is intended to be included alone, by
++kernel Makefiles.  Please see bsd.kinc.mk for more details, and keep
++the documentation in that file up to date.
++
++=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
++
++The include file <bsd.info.mk> is used to generate and install GNU Info
++documentation from respective Texinfo source files.  It defines three
++implicit targets (.txi.info, .texi.info, and .texinfo.info), and uses the
++following variables:
++
++TEXINFO		List of Texinfo source files.  Info documentation will
++		consist of single files with the extension replaced by
++		.info.
++
++INFOFLAGS	Flags to pass to makeinfo.  []
++
++INSTALL_INFO	Name of install-info program.  [install-info]
++
++MAKEINFO	Name of makeinfo program.  [makeinfo]
++
++=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
++
++The include file <bsd.sys.mk> is used by <bsd.prog.mk> and
++<bsd.lib.mk>.  It contains overrides that are used when building
++the NetBSD source tree.  For instance, if "PARALLEL" is defined by
++the program/library Makefile, it includes a set of rules for lex and
++yacc that allow multiple lex and yacc targets to be built in parallel.
++
++=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
++
++The include file <bsd.lib.mk> has support for building libraries.  It has
++the same eight targets as <bsd.prog.mk>: all, clean, cleandir, depend,
++includes, install, lint, and tags.  Additionally, it has a checkver target
++which checks for installed shared object libraries whose version is greater
++that the version of the source. It has a limited number of suffixes,
++consistent with the current needs of the BSD tree.
++
++It sets/uses the following variables:
++
++LIB		The name of the library to build.
++
++LIBDIR		Target directory for libraries.
++
++LINTLIBDIR	Target directory for lint libraries.
++
++LIBGRP		Library group.
++
++LIBOWN		Library owner.
++
++LIBMODE		Library mode.
++
++LDADD		Additional loader objects.
++
++MAN		The manual pages to be installed (use a .1 - .9 suffix).
++
++MKLINKLIB	If "no", act as "MKPICINSTALL=no MKPROFILE=no".
++		Also:
++			- don't install the .a libraries
++			- don't install _pic.a libraries on PIC systems
++			- don't build .a libraries on PIC systems
++			- don't install the .so symlink on ELF systems
++		I.e, only install the shared library (and the .so.major
++		symlink on ELF).
++
++NOCHECKVER_<library>
++NOCHECKVER	If set, disables checking for installed shared object
++		libraries with versions greater than the source.  A
++		particular library name, without the "lib" prefix, may
++		be appended to the variable name to disable the check for
++		only that library.
++
++SRCS		List of source files to build the library.  Suffix types
++		.s, .c, and .f are supported.  Note, .s files are preferred
++		to .c files of the same name.  (This is not the default for
++		versions of make.)
++
++The include file <bsd.lib.mk> includes the file named "../Makefile.inc"
++if it exists, as well as the include file <bsd.man.mk>.
++
++It has rules for building profiled objects; profiled libraries are
++built by default.
++
++Libraries are ranlib'd when made.
++
++=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+--- pmake-1.111.orig/mk/bsd.dep.mk
++++ pmake-1.111/mk/bsd.dep.mk
+@@ -0,0 +1,62 @@
++#	$NetBSD: bsd.dep.mk,v 1.26 1999/02/24 22:04:15 simonb Exp $
++
++.PHONY:		cleandepend
++cleandir distclean: cleandepend
++
++MKDEP?=		mkdep
++
++# some of the rules involve .h sources, so remove them from mkdep line
++depend: beforedepend
++.if defined(SRCS)
++depend: .depend
++	@true # hack to prevent "make depend" from using implicit rules
++.NOPATH: .depend
++.depend: ${SRCS} ${DPSRCS}
++	@rm -f .depend
++	@files="${.ALLSRC:M*.s} ${.ALLSRC:M*.S}"; \
++	if [ "$$files" != " " ]; then \
++	  echo ${MKDEP} -a ${MKDEPFLAGS} \
++	    ${AFLAGS:M-[ID]*:Q} ${CPPFLAGS:Q} ${AINC:Q} $$files; \
++	  ${MKDEP} -a ${MKDEPFLAGS} \
++	    ${AFLAGS:M-[ID]*} ${CPPFLAGS} ${AINC} $$files; \
++	fi
++	@files="${.ALLSRC:M*.c}"; \
++	if [ "$$files" != "" ]; then \
++	  echo ${MKDEP} -a ${MKDEPFLAGS} \
++	    ${CFLAGS:M-[ID]*:Q} ${CPPFLAGS:Q} $$files; \
++	  ${MKDEP} -a ${MKDEPFLAGS} \
++	    ${CFLAGS:M-[ID]*} ${CPPFLAGS} $$files; \
++	fi
++	@files="${.ALLSRC:M*.m}"; \
++	if [ "$$files" != "" ]; then \
++	  echo ${MKDEP} -a ${MKDEPFLAGS} \
++	    ${OBJCFLAGS:M-[ID]*:Q} ${CPPFLAGS:Q} $$files; \
++	  ${MKDEP} -a ${MKDEPFLAGS} \
++	    ${OBJCFLAGS:M-[ID]*} ${CPPFLAGS} $$files; \
++	fi
++	@files="${.ALLSRC:M*.cc} ${.ALLSRC:M*.C} ${.ALLSRC:M*.cxx}"; \
++	if [ "$$files" != "  " ]; then \
++	  echo ${MKDEP} -a ${MKDEPFLAGS} \
++	    ${CXXFLAGS:M-[ID]*:Q} ${CPPFLAGS:Q} $$files; \
++	  ${MKDEP} -a ${MKDEPFLAGS} \
++	    ${CXXFLAGS:M-[ID]*} ${CPPFLAGS} $$files; \
++	fi
++cleandepend:
++	rm -f .depend ${.CURDIR}/tags
++.else
++cleandepend:
++.endif
++depend: afterdepend
++
++beforedepend:
++afterdepend:
++
++.if !target(tags)
++.if defined(SRCS)
++tags: ${SRCS}
++	-cd ${.CURDIR}; ctags -f /dev/stdout ${.ALLSRC:N*.h} | \
++	    sed "s;\${.CURDIR}/;;" > tags
++.else
++tags:
++.endif
++.endif
+--- pmake-1.111.orig/mk/bsd.doc.mk
++++ pmake-1.111/mk/bsd.doc.mk
+@@ -0,0 +1,78 @@
++#	$NetBSD: bsd.doc.mk,v 1.41 1999/02/12 01:10:06 lukem Exp $
++#	@(#)bsd.doc.mk	8.1 (Berkeley) 8/14/93
++
++.if !target(__initialized__)
++__initialized__:
++.if exists(${.CURDIR}/../Makefile.inc)
++.include "${.CURDIR}/../Makefile.inc"
++.endif
++.include <bsd.own.mk>
++.MAIN:		all
++.endif
++
++.PHONY:		cleandoc docinstall print spell
++.if ${MKSHARE} != "no"
++realinstall:	docinstall
++.endif
++clean cleandir distclean: cleandoc
++
++BIB?=		bib
++EQN?=		eqn
++GREMLIN?=	grn
++GRIND?=		vgrind -f
++INDXBIB?=	indxbib
++PIC?=		pic
++REFER?=		refer
++ROFF?=         groff ${MACROS} ${PAGES}
++SOELIM?=	soelim
++TBL?=		tbl
++
++.if !target(all)
++.if ${MKSHARE} != "no"
++all: paper.ps
++.else
++all:
++.endif
++.endif
++
++.if !target(paper.ps)
++paper.ps: ${SRCS}
++	${ROFF} ${.ALLSRC} > ${.TARGET}
++.endif
++
++.if !target(print)
++print: paper.ps
++	lpr -P${PRINTER} ${.ALLSRC}
++.endif
++
++cleandoc:
++	rm -f paper.* [eE]rrs mklog ${CLEANFILES}
++
++.if ${MKDOC} != "no"
++FILES?=	${SRCS}
++.for F in ${FILES} ${EXTRA} Makefile
++docinstall:: ${DESTDIR}${DOCDIR}/${DIR}/${F}
++.if !defined(UPDATE)
++.PHONY: ${DESTDIR}${DOCDIR}/${DIR}/${F}
++.endif
++.if !defined(BUILD)
++${DESTDIR}${DOCDIR}/${DIR}/${F}: .MADE
++.endif
++
++.PRECIOUS: ${DESTDIR}${DOCDIR}/${DIR}/${F}
++${DESTDIR}${DOCDIR}/${DIR}/${F}: ${F}
++	${INSTALL} ${RENAME} ${PRESERVE} -c -o ${DOCOWN} -g ${DOCGRP} \
++		-m ${DOCMODE} ${.ALLSRC} ${.TARGET}
++.endfor
++.endif
++
++.if !target(docinstall)
++docinstall::
++.endif
++
++spell: ${SRCS}
++	spell ${.ALLSRC} | sort | comm -23 - spell.ok > paper.spell
++
++depend includes lint obj tags:
++
++.include <bsd.obj.mk>
+--- pmake-1.111.orig/mk/bsd.files.mk
++++ pmake-1.111/mk/bsd.files.mk
+@@ -0,0 +1,43 @@
++#	$NetBSD: bsd.files.mk,v 1.8 1999/02/11 13:25:42 tv Exp $
++
++# This file can be included multiple times.  It clears the definition of
++# FILES at the end so that this is possible.
++
++.PHONY:		filesinstall
++realinstall:	filesinstall
++
++.if defined(FILES) && !empty(FILES)
++FILESDIR?=${BINDIR}
++FILESOWN?=${BINOWN}
++FILESGRP?=${BINGRP}
++FILESMODE?=${NONBINMODE}
++.for F in ${FILES}
++FILESDIR_${F}?=${FILESDIR}
++FILESOWN_${F}?=${FILESOWN}
++FILESGRP_${F}?=${FILESGRP}
++FILESMODE_${F}?=${FILESMODE}
++.if defined(FILESNAME)
++FILESNAME_${F} ?= ${FILESNAME}
++.else
++FILESNAME_${F} ?= ${F:T}
++.endif
++filesinstall:: ${DESTDIR}${FILESDIR_${F}}/${FILESNAME_${F}}
++.if !defined(UPDATE)
++.PHONY: ${DESTDIR}${FILESDIR_${F}}/${FILESNAME_${F}}
++.endif
++.if !defined(BUILD)
++${DESTDIR}${FILESDIR_${F}}/${FILESNAME_${F}}: .MADE
++.endif
++
++.PRECIOUS: ${DESTDIR}${FILESDIR_${F}}/${FILESNAME_${F}}
++${DESTDIR}${FILESDIR_${F}}/${FILESNAME_${F}}: ${F}
++	${INSTALL} ${RENAME} ${PRESERVE} ${COPY} -o ${FILESOWN_${F}} \
++		-g ${FILESGRP_${F}} -m ${FILESMODE_${F}} ${.ALLSRC} ${.TARGET}
++.endfor
++.endif
++
++.if !target(filesinstall)
++filesinstall::
++.endif
++
++FILES:=
+--- pmake-1.111.orig/mk/bsd.inc.mk
++++ pmake-1.111/mk/bsd.inc.mk
+@@ -0,0 +1,25 @@
++#	$NetBSD: bsd.inc.mk,v 1.12 1999/02/04 11:58:30 christos Exp $
++
++.PHONY:		incinstall
++includes:	${INCS} incinstall
++
++.if defined(INCS)
++.for I in ${INCS}
++incinstall:: ${DESTDIR}${INCSDIR}/$I
++
++.PRECIOUS: ${DESTDIR}${INCSDIR}/$I
++.if !defined(UPDATE)
++.PHONY: ${DESTDIR}${INCSDIR}/$I
++.endif
++${DESTDIR}${INCSDIR}/$I: $I
++	@cmp -s ${.ALLSRC} ${.TARGET} > /dev/null 2>&1 || \
++	    (echo "${INSTALL} ${RENAME} ${PRESERVE} -c -o ${BINOWN} \
++		-g ${BINGRP} -m ${NONBINMODE} ${.ALLSRC} ${.TARGET}" && \
++	     ${INSTALL} ${RENAME} ${PRESERVE} -c -o ${BINOWN} -g ${BINGRP} \
++		-m ${NONBINMODE} ${.ALLSRC} ${.TARGET})
++.endfor
++.endif
++
++.if !target(incinstall)
++incinstall::
++.endif
+--- pmake-1.111.orig/mk/bsd.info.mk
++++ pmake-1.111/mk/bsd.info.mk
+@@ -0,0 +1,60 @@
++#	$NetBSD: bsd.info.mk,v 1.7.2.1 1999/04/22 14:46:13 perry Exp $
++
++.if !target(__initialized__)
++__initialized__:
++.if exists(${.CURDIR}/../Makefile.inc)
++.include "${.CURDIR}/../Makefile.inc"
++.endif
++.include <bsd.own.mk>
++.include <bsd.obj.mk>
++.MAIN:		all
++.endif
++
++MAKEINFO?=	makeinfo
++INFOFLAGS?=	
++INSTALL_INFO?=	install-info
++
++.SUFFIXES: .txi .texi .texinfo .info
++
++.txi.info .texi.info .texinfo.info:
++	@${MAKEINFO} ${INFOFLAGS} --no-split -o $@ $<
++
++.if defined(TEXINFO) && !empty(TEXINFO) && ${MKINFO} != "no"
++INFOFILES=	${TEXINFO:C/\.te?xi(nfo)?$/.info/}
++FILES+=		${INFOFILES}
++
++infoinstall:
++.for F in ${INFOFILES}
++	@${INSTALL_INFO} --remove --info-dir=${DESTDIR}${INFODIR} ${DESTDIR}${INFODIR}/${F}
++	${INSTALL_INFO} --info-dir=${DESTDIR}${INFODIR} ${DESTDIR}${INFODIR}/${F}
++.endfor
++
++.for F in ${INFOFILES}
++FILESDIR_${F}=	${INFODIR}
++FILESOWN_${F}=	${INFOOWN}
++FILESGRP_${F}=	${INFOGRP}
++FILESMODE_${F}=	${INFOMODE}
++FILESNAME_${F}=	${F:T}
++.endfor
++
++all: ${INFOFILES}
++.else
++all:
++.endif
++
++.if ${MKINFO} != "no"
++cleaninfo:
++	rm -f ${INFOFILES}
++.else
++cleaninfo infoinstall:
++.endif
++
++.include <bsd.files.mk>
++
++# These need to happen *after* filesinstall.
++.PHONY: infoinstall cleaninfo
++realinstall: infoinstall
++cleandir distclean: cleaninfo
++
++# Make sure all of the standard targets are defined, even if they do nothing.
++clean depend includes lint regress tags:
+--- pmake-1.111.orig/mk/bsd.kinc.mk
++++ pmake-1.111/mk/bsd.kinc.mk
+@@ -0,0 +1,136 @@
++#	$NetBSD: bsd.kinc.mk,v 1.5 1999/02/04 11:58:30 christos Exp $
++
++# System configuration variables:
++#
++# SYS_INCLUDE	"symlinks": symlinks to include directories are created.
++#		This may not work 100% properly for all headers.
++#
++#		"copies": directories are made, if necessary, and headers
++#		are installed into them.
++#
++# Variables:
++#
++# INCSDIR	Directory to install includes into (and/or make, and/or
++#		symlink, depending on what's going on).
++#
++# KDIR		Kernel directory to symlink to, if SYS_INCLUDE is symlinks.
++#		If unspecified, no action will be taken when making include
++#		for the directory if SYS_INCLUDE is symlinks.
++#
++# INCS		Headers to install, if SYS_INCLUDE is copies.
++#
++# DEPINCS	Headers to install which are built dynamically.
++#
++# SUBDIR	Subdirectories to enter
++#
++# SYMLINKS	Symlinks to make (unconditionally), a la bsd.links.mk.
++#		Note that the original bits will be 'rm -rf'd rather than
++#		just 'rm -f'd, to make the right thing happen with include
++#		directories.
++#
++
++.if !target(__initialized__)
++__initialized__:
++.if exists(${.CURDIR}/../Makefile.inc)
++.include "${.CURDIR}/../Makefile.inc"
++.endif
++.include <bsd.own.mk>
++.MAIN:		all
++.endif
++
++# Change SYS_INCLUDE in bsd.own.mk or /etc/mk.conf to "symlinks" if you
++# don't want copies
++SYS_INCLUDE?=   copies
++
++# If DESTDIR is set, we're probably building a release, so force "copies".
++.if defined(DESTDIR) && (${DESTDIR} != "/" && !empty(DESTDIR))
++SYS_INCLUDE=    copies
++.endif
++
++
++.PHONY:		incinstall
++includes:	${INCS} incinstall
++
++
++.if ${SYS_INCLUDE} == "symlinks"
++
++# don't install includes, just make symlinks.
++
++.if defined(KDIR)
++SYMLINKS+=	${KDIR} ${INCSDIR}
++.endif
++
++.else # not symlinks
++
++# make sure the directory is OK, and install includes.
++
++.PRECIOUS: ${DESTDIR}${INCSDIR}
++.PHONY: ${DESTDIR}${INCSDIR}
++${DESTDIR}${INCSDIR}:
++	@if [ ! -d ${.TARGET} ] || [ -L ${.TARGET} ] ; then \
++		echo creating ${.TARGET}; \
++		/bin/rm -rf ${.TARGET}; \
++		${INSTALL} -d -o ${BINOWN} -g ${BINGRP} -m 755 ${.TARGET}; \
++	fi
++
++incinstall:: ${DESTDIR}${INCSDIR}
++
++.if defined(INCS)
++.for I in ${INCS}
++incinstall:: ${DESTDIR}${INCSDIR}/$I
++
++.PRECIOUS: ${DESTDIR}${INCSDIR}/$I
++.if !defined(UPDATE)
++.PHONY: ${DESTDIR}${INCSDIR}/$I
++.endif
++${DESTDIR}${INCSDIR}/$I: ${DESTDIR}${INCSDIR} $I 
++	@cmp -s ${.CURDIR}/$I ${.TARGET} > /dev/null 2>&1 || \
++	    (echo "${INSTALL} ${RENAME} ${PRESERVE} -c -o ${BINOWN} \
++		-g ${BINGRP} -m ${NONBINMODE} ${.CURDIR}/$I ${.TARGET}" && \
++	     ${INSTALL} ${RENAME} ${PRESERVE} -c -o ${BINOWN} -g ${BINGRP} \
++		-m ${NONBINMODE} ${.CURDIR}/$I ${.TARGET})
++.endfor
++.endif
++
++.if defined(DEPINCS)
++.for I in ${DEPINCS}
++incinstall:: ${DESTDIR}${INCSDIR}/$I
++
++.PRECIOUS: ${DESTDIR}${INCSDIR}/$I
++.if !defined(UPDATE)
++.PHONY: ${DESTDIR}${INCSDIR}/$I
++.endif
++${DESTDIR}${INCSDIR}/$I: ${DESTDIR}${INCSDIR} $I 
++	@cmp -s $I ${.TARGET} > /dev/null 2>&1 || \
++	    (echo "${INSTALL} ${RENAME} ${PRESERVE} -c -o ${BINOWN} \
++		-g ${BINGRP} -m ${NONBINMODE} $I ${.TARGET}" && \
++	     ${INSTALL} ${RENAME} ${PRESERVE} -c -o ${BINOWN} -g ${BINGRP} \
++		-m ${NONBINMODE} $I ${.TARGET})
++.endfor
++.endif
++
++.endif # not symlinks
++
++.if defined(SYMLINKS) && !empty(SYMLINKS)
++incinstall::
++	@set ${SYMLINKS}; \
++	 while test $$# -ge 2; do \
++		l=$$1; \
++		shift; \
++		t=${DESTDIR}$$1; \
++		shift; \
++		echo ".include <bsd.own.mk>"; \
++		echo "all:: $$t"; \
++		echo ".PHONY: $$t"; \
++		echo "$$t:"; \
++		echo "	@echo \"$$t -> $$l\""; \
++		echo "	@rm -rf $$t"; \
++		echo "	@ln -s $$l $$t"; \
++	done | ${MAKE} -f-
++.endif
++
++.if !target(incinstall)
++incinstall::
++.endif
++
++.include <bsd.subdir.mk>
+--- pmake-1.111.orig/mk/bsd.kmod.mk
++++ pmake-1.111/mk/bsd.kmod.mk
+@@ -0,0 +1,95 @@
++#	$NetBSD: bsd.kmod.mk,v 1.30 1999/03/10 06:34:19 ross Exp $
++
++.if !target(__initialized__)
++__initialized__:
++.if exists(${.CURDIR}/../Makefile.inc)
++.include "${.CURDIR}/../Makefile.inc"
++.endif
++.include <bsd.own.mk>
++.include <bsd.obj.mk>
++.MAIN:		all
++.endif
++
++.PHONY:		cleankmod kmodinstall load unload
++realinstall:	kmodinstall
++clean cleandir distclean: cleankmod
++
++S?=		/sys
++KERN=		$S/kern
++
++CFLAGS+=	${COPTS} -D_KERNEL -D_LKM -I. -I${.CURDIR} -I$S -I$S/arch
++
++DPSRCS+=	${SRCS:M*.l:.l=.c} ${SRCS:M*.y:.y=.c}
++CLEANFILES+=	${DPSRCS}
++.if defined(YHEADER)
++CLEANFILES+=	${SRCS:M*.y:.y=.h}
++.endif
++
++OBJS+=		${SRCS:N*.h:N*.sh:R:S/$/.o/g}
++
++.if !defined(PROG)
++PROG=	${KMOD}.o
++.endif
++
++${PROG}: ${DPSRCS} ${OBJS} ${DPADD}
++	${LD} -r ${LDFLAGS} -o tmp.o ${OBJS}
++	mv tmp.o ${.TARGET}
++
++.if	!defined(MAN)
++MAN=	${KMOD}.4
++.endif
++
++all: machine-links ${PROG}
++
++.PHONY:	machine-links
++beforedepend: machine-links
++machine-links:
++	-rm -f machine && \
++	    ln -s $S/arch/${MACHINE}/include machine
++	-rm -f ${MACHINE_ARCH} && \
++	    ln -s $S/arch/${MACHINE_ARCH}/include ${MACHINE_ARCH}
++CLEANFILES+=machine ${MACHINE_ARCH}
++
++cleankmod:
++	rm -f a.out [Ee]rrs mklog core *.core \
++		${PROG} ${OBJS} ${LOBJS} ${CLEANFILES}
++
++#
++# define various install targets
++#
++.if !target(kmodinstall)
++kmodinstall:: ${DESTDIR}${KMODDIR}/${PROG}
++.if !defined(UPDATE)
++.PHONY: ${DESTDIR}${KMODDIR}/${PROG}
++.endif
++.if !defined(BUILD)
++${DESTDIR}${KMODDIR}/${PROG}: .MADE
++.endif
++
++.PRECIOUS: ${DESTDIR}${KMODDIR}/${PROG}
++${DESTDIR}${KMODDIR}/${PROG}: ${PROG}
++	${INSTALL} ${RENAME} ${PRESERVE} ${COPY} -o ${KMODOWN} -g ${KMODGRP} \
++		-m ${KMODMODE} ${.ALLSRC} ${.TARGET}
++.endif
++
++lint: ${LOBJS}
++.if defined(LOBJS) && !empty(LOBJS)
++	${LINT} ${LINTFLAGS} ${LDFLAGS:M-L*} ${LOBJS} ${LDADD}
++.endif
++
++.if !target(load)
++load:	${PROG}
++	/sbin/modload -o ${KMOD} -e${KMOD}_lkmentry ${PROG}
++.endif
++
++.if !target(unload)
++unload: ${PROG}
++	/sbin/modunload -n ${KMOD}
++.endif
++
++.include <bsd.man.mk>
++.include <bsd.links.mk>
++.include <bsd.dep.mk>
++.include <bsd.sys.mk>
++
++.-include "machine/Makefile.inc"
+--- pmake-1.111.orig/mk/bsd.lib.mk
++++ pmake-1.111/mk/bsd.lib.mk
+@@ -0,0 +1,396 @@
++#	$NetBSD: bsd.lib.mk,v 1.152 1999/03/30 09:30:43 fair Exp $
++#	@(#)bsd.lib.mk	8.3 (Berkeley) 4/22/94
++
++.if !target(__initialized__)
++__initialized__:
++.if exists(${.CURDIR}/../Makefile.inc)
++.include "${.CURDIR}/../Makefile.inc"
++.endif
++.include <bsd.own.mk>
++.include <bsd.obj.mk>
++.MAIN:		all
++.endif
++
++.PHONY:		checkver cleanlib libinstall
++realinstall:	checkver libinstall
++clean cleandir distclean: cleanlib
++
++.if exists(${.CURDIR}/shlib_version)
++SHLIB_MAJOR != . ${.CURDIR}/shlib_version ; echo $$major
++SHLIB_MINOR != . ${.CURDIR}/shlib_version ; echo $$minor
++
++# Check for higher installed library versions.
++.if !defined(NOCHECKVER) && !defined(NOCHECKVER_${LIB}) && \
++	exists(${BSDSRCDIR}/lib/checkver)
++checkver:
++	@(cd ${.CURDIR} && \
++		${BSDSRCDIR}/lib/checkver -d ${DESTDIR}${LIBDIR} ${LIB})
++.else
++checkver:
++.endif
++.else
++checkver:
++.endif
++
++# add additional suffixes not exported.
++# .po is used for profiling object files.
++# .so is used for PIC object files.
++.SUFFIXES: .out .a .ln .so .po .o .s .S .c .cc .C .m .F .f .r .y .l .cl .p .h
++.SUFFIXES: .sh .m4 .m
++
++
++# Set PICFLAGS to cc flags for producing position-independent code,
++# if not already set.  Includes -DPIC, if required.
++
++# Data-driven table using make variables to control  how shared libraries
++# are built for different platforms and object formats.
++# OBJECT_FMT:		currently either "ELF" or "a.out", from <bsd.own.mk>
++# SHLIB_SOVERSION:  	version number to be compiled into a shared library
++#                    	via -soname. Usualy ${SHLIB_MAJOR} on ELF.
++#   			NetBSD/pmax used to use ${SHLIB_MAJOR}.{SHLIB-MINOR}.
++# SHLIB_SHFLAGS:	Flags to tell ${LD} to emit  shared library.
++#			with ELF, also set shared-lib version for ld.so.
++# SHLIB_LDSTARTFILE:	support .o file, call C++ file-level constructors
++# SHLIB_LDENDFILE:	support .o file, call C++ file-level destructors
++# CPPICFLAGS:	flags for ${CPP} to preprocess  .[sS]  files for ${AS}
++# CPICFLAGS:	flags for ${CC} to compile  .[cC] files to .so objects.
++# CAPICFLAGS	flags for {$CC} to compiling .[Ss] files
++#		 	(usually just ${CPPPICFLAGS} ${CPICFLAGS})
++# APICFLAGS:	flags for ${AS} to assemble .[sS]  to .so objects.
++
++.if ${MACHINE_ARCH} == "alpha"
++		# Alpha-specific shared library flags
++CPICFLAGS ?= -fpic -DPIC
++CPPPICFLAGS?= -DPIC 
++CAPICFLAGS?= ${CPPPICFLAGS} ${CPICFLAGS}
++APICFLAGS ?=
++.elif ${MACHINE_ARCH} == "mipsel" || ${MACHINE_ARCH} == "mipseb"
++		# mips-specific shared library flags
++
++# On mips, all libs need to be compiled with ABIcalls, not just sharedlibs.
++CPICFLAGS?=
++APICFLAGS?=
++#CPICFLAGS?= -fpic -DPIC
++#APICFLAGS?= -DPIC
++
++# so turn shlib PIC flags on for ${CPP}, ${CC}, and ${AS} as follows:
++AINC+=-DPIC -DABICALLS
++COPTS+=	-fPIC ${AINC}
++AFLAGS+= -fPIC
++AS+=	-KPIC
++
++.elif ${MACHINE_ARCH} == "sparc" && ${OBJECT_FMT} == "ELF"
++
++CPICFLAGS ?= -fpic -DPIC
++CPPPICFLAGS?= -DPIC 
++CAPICFLAGS?= ${CPPPICFLAGS} ${CPICFLAGS}
++APICFLAGS ?= -KPIC
++
++.elif (${MACHINE} == "debian")
++
++SHLIB_TYPE=ELF
++SHLIB_LDSTARTFILE=
++SHLIB_LDENDFILE=
++SHLIB_SOVERSION=${SHLIB_MAJOR}
++CPICFLAGS ?= -fPIC -DPIC
++CPPPICFLAGS?= -DPIC
++CAPICFLAGS?= ${CPPPICFLAGS} ${CPICFLAGS}
++APICFLAGS ?=
++
++.else
++
++# Platform-independent flags for NetBSD a.out shared libraries (and PowerPC)
++SHLIB_LDSTARTFILE=
++SHLIB_LDENDFILE=
++SHLIB_SHFLAGS=
++SHLIB_SOVERSION=${SHLIB_MAJOR}.${SHLIB_MINOR}
++CPICFLAGS?= -fpic -DPIC
++CPPPICFLAGS?= -DPIC 
++CAPICFLAGS?= ${CPPPICFLAGS} ${CPICFLAGS}
++APICFLAGS?= -k
++
++.endif
++
++# Platform-independent linker flags for ELF shared libraries
++.if ${OBJECT_FMT} == "ELF"
++SHLIB_SOVERSION=${SHLIB_MAJOR}
++SHLIB_SHFLAGS=-soname lib${LIB}.so.${SHLIB_SOVERSION}
++SHLIB_LDSTARTFILE= ${DESTDIR}/usr/lib/crtbeginS.o
++SHLIB_LDENDFILE= ${DESTDIR}/usr/lib/crtendS.o
++.endif
++
++CFLAGS+=	${COPTS}
++
++.c.o:
++	@echo ${COMPILE.c:Q} ${.IMPSRC}
++	@${COMPILE.c} ${.IMPSRC} -o ${.TARGET}.o
++	@${LD} -x -r ${.TARGET}.o -o ${.TARGET}
++	@rm -f ${.TARGET}.o
++
++.c.po:
++	@echo ${COMPILE.c:Q} -pg ${.IMPSRC} -o ${.TARGET}
++	@${COMPILE.c} -pg ${.IMPSRC} -o ${.TARGET}.o
++	@${LD} -X -r ${.TARGET}.o -o ${.TARGET}
++	@rm -f ${.TARGET}.o
++
++.c.so:
++	@echo ${COMPILE.c:Q} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET}
++	@${COMPILE.c} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET}.o
++	@${LD} -x -r ${.TARGET}.o -o ${.TARGET}
++	@rm -f ${.TARGET}.o
++
++.c.ln:
++	${LINT} ${LINTFLAGS} ${CPPFLAGS:M-[IDU]*} -i ${.IMPSRC}
++
++.cc.o .C.o:
++	@echo ${COMPILE.cc:Q} ${.IMPSRC}
++	@${COMPILE.cc} ${.IMPSRC} -o ${.TARGET}.o
++	@${LD} -x -r ${.TARGET}.o -o ${.TARGET}
++	@rm -f ${.TARGET}.o
++
++.cc.po .C.po:
++	@echo ${COMPILE.cc:Q} -pg ${.IMPSRC} -o ${.TARGET}
++	@${COMPILE.cc} -pg ${.IMPSRC} -o ${.TARGET}.o
++	@${LD} -X -r ${.TARGET}.o -o ${.TARGET}
++	@rm -f ${.TARGET}.o
++
++.cc.so .C.so:
++	@echo ${COMPILE.cc:Q} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET}
++	@${COMPILE.cc} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET}.o
++	@${LD} -x -r ${.TARGET}.o -o ${.TARGET}
++	@rm -f ${.TARGET}.o
++
++.m.o:
++	@echo ${COMPILE.m:Q} ${.IMPSRC}
++	@${COMPILE.m} ${.IMPSRC} -o ${.TARGET}.o
++	@${LD} -x -r ${.TARGET}.o -o ${.TARGET}
++	@rm -f ${.TARGET}.o
++
++.m.po:
++	@echo ${COMPILE.m:Q} -pg ${.IMPSRC} -o ${.TARGET}
++	@${COMPILE.m} -pg ${.IMPSRC} -o ${.TARGET}.o
++	@${LD} -X -r ${.TARGET}.o -o ${.TARGET}
++	@rm -f ${.TARGET}.o
++
++.m.so:
++	@echo ${COMPILE.m:Q} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET}
++	@${COMPILE.m} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET}.o
++	@${LD} -x -r ${.TARGET}.o -o ${.TARGET}
++	@rm -f ${.TARGET}.o
++
++.S.o .s.o:
++	@echo ${COMPILE.S:Q} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC}
++	@${COMPILE.S} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET}.o
++	@${LD} -x -r ${.TARGET}.o -o ${.TARGET}
++	@rm -f ${.TARGET}.o
++
++.S.po .s.po:
++	@echo ${COMPILE.S:Q} -DGPROF -DPROF ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET}
++	@${COMPILE.S} -DGPROF -DPROF ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET}.o
++	@${LD} -X -r ${.TARGET}.o -o ${.TARGET}
++	@rm -f ${.TARGET}.o
++
++.S.so .s.so:
++	@echo ${COMPILE.S:Q} ${CAPICFLAGS} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET}
++	@${COMPILE.S} ${CAPICFLAGS} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET}.o
++	@${LD} -x -r ${.TARGET}.o -o ${.TARGET}
++	@rm -f ${.TARGET}.o
++
++.if ${MKPIC} == "no" || (defined(LDSTATIC) && ${LDSTATIC} != "") \
++	|| ${MKLINKLIB} != "no"
++_LIBS=lib${LIB}.a
++.else
++_LIBS=
++.endif
++
++.if ${MKPROFILE} != "no"
++_LIBS+=lib${LIB}_p.a
++.endif
++
++.if ${MKPIC} != "no"
++_LIBS+=lib${LIB}_pic.a
++.if defined(SHLIB_MAJOR) && defined(SHLIB_MINOR)
++_LIBS+=lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}
++.endif
++.endif
++
++.if ${MKLINT} != "no" && ${MKLINKLIB} != "no"
++_LIBS+=llib-l${LIB}.ln
++.endif
++
++all: ${SRCS} ${_LIBS}
++
++__archivebuild: .USE
++	@rm -f ${.TARGET}
++	@${AR} cq ${.TARGET} `NM=${NM} ${LORDER} ${.ALLSRC:M*o} | ${TSORT}`
++	${RANLIB} ${.TARGET}
++
++__archiveinstall: .USE
++	${INSTALL} ${RENAME} ${PRESERVE} ${COPY} -o ${LIBOWN} -g ${LIBGRP} \
++		-m 600 ${.ALLSRC} ${.TARGET}
++	${RANLIB} -t ${.TARGET}
++	chmod ${LIBMODE} ${.TARGET}
++
++DPSRCS+=	${SRCS:M*.l:.l=.c} ${SRCS:M*.y:.y=.c}
++CLEANFILES+=	${DPSRCS}
++.if defined(YHEADER)
++CLEANFILES+=	${SRCS:M*.y:.y=.h}
++.endif
++
++OBJS+=		${SRCS:N*.h:N*.sh:R:S/$/.o/g}
++lib${LIB}.a:: ${OBJS} __archivebuild
++	@echo building standard ${LIB} library
++
++POBJS+=		${OBJS:.o=.po}
++lib${LIB}_p.a:: ${POBJS} __archivebuild
++	@echo building profiled ${LIB} library
++
++SOBJS+=		${OBJS:.o=.so}
++lib${LIB}_pic.a:: ${SOBJS} __archivebuild
++	@echo building shared object ${LIB} library
++
++lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}: lib${LIB}_pic.a ${DPADD} \
++    ${SHLIB_LDSTARTFILE} ${SHLIB_LDENDFILE}
++	@echo building shared ${LIB} library \(version ${SHLIB_MAJOR}.${SHLIB_MINOR}\)
++	@rm -f lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}
++.if defined(DESTDIR)
++	$(CC) -shared ${SHLIB_SHFLAGS} -o ${.TARGET} \
++	    ${SHLIB_LDSTARTFILE} \
++	    -Wl,--whole-archive lib${LIB}_pic.a \
++	    -nostdlib -L${DESTDIR}${LIBDIR} -R${LIBDIR} \
++	    -Wl,--no-whole-archive ${LDADD} \
++	    ${SHLIB_LDENDFILE}
++.else
++	$(CC) -shared ${SHLIB_SHFLAGS} -o ${.TARGET} \
++	    ${SHLIB_LDSTARTFILE} \
++	    -Wl,--whole-archive lib${LIB}_pic.a -Wl,--no-whole-archive ${LDADD} \
++	    ${SHLIB_LDENDFILE}
++.endif
++.if ${OBJECT_FMT} == "ELF"
++	rm -f lib${LIB}.so.${SHLIB_MAJOR}
++	ln -s lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
++	    lib${LIB}.so.${SHLIB_MAJOR}
++	rm -f lib${LIB}.so
++	ln -s lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
++	    lib${LIB}.so
++.endif
++
++LOBJS+=		${LSRCS:.c=.ln} ${SRCS:M*.c:.c=.ln}
++LLIBS?=		-lc
++llib-l${LIB}.ln: ${LOBJS}
++	@echo building llib-l${LIB}.ln
++	@rm -f llib-l${LIB}.ln
++	@${LINT} -C${LIB} ${.ALLSRC} ${LLIBS}
++
++cleanlib:
++	rm -f a.out [Ee]rrs mklog core *.core ${CLEANFILES}
++	rm -f lib${LIB}.a ${OBJS}
++	rm -f lib${LIB}_p.a ${POBJS}
++	rm -f lib${LIB}_pic.a lib${LIB}.so.* lib${LIB}.so ${SOBJS}
++	rm -f llib-l${LIB}.ln ${LOBJS}
++
++.if defined(SRCS)
++afterdepend: .depend
++	@(TMP=/tmp/_depend$$$$; \
++	    sed -e 's/^\([^\.]*\).o[ ]*:/\1.o \1.po \1.so \1.ln:/' \
++	      < .depend > $$TMP; \
++	    mv $$TMP .depend)
++.endif
++
++.if !target(libinstall)
++# Make sure it gets defined, in case MKPIC==no && MKLINKLIB==no
++libinstall::
++
++.if ${MKLINKLIB} != "no"
++libinstall:: ${DESTDIR}${LIBDIR}/lib${LIB}.a
++.if !defined(UPDATE)
++.PHONY: ${DESTDIR}${LIBDIR}/lib${LIB}.a
++.endif
++.if !defined(BUILD)
++${DESTDIR}${LIBDIR}/lib${LIB}.a: .MADE
++.endif
++
++.PRECIOUS: ${DESTDIR}${LIBDIR}/lib${LIB}.a
++${DESTDIR}${LIBDIR}/lib${LIB}.a: lib${LIB}.a __archiveinstall
++.endif
++
++.if ${MKPROFILE} != "no"
++libinstall:: ${DESTDIR}${LIBDIR}/lib${LIB}_p.a
++.if !defined(UPDATE)
++.PHONY: ${DESTDIR}${LIBDIR}/lib${LIB}_p.a
++.endif
++.if !defined(BUILD)
++${DESTDIR}${LIBDIR}/lib${LIB}_p.a: .MADE
++.endif
++
++.PRECIOUS: ${DESTDIR}${LIBDIR}/lib${LIB}_p.a
++${DESTDIR}${LIBDIR}/lib${LIB}_p.a: lib${LIB}_p.a __archiveinstall
++.endif
++
++.if ${MKPIC} != "no" && ${MKPICINSTALL} != "no"
++libinstall:: ${DESTDIR}${LIBDIR}/lib${LIB}_pic.a
++.if !defined(UPDATE)
++.PHONY: ${DESTDIR}${LIBDIR}/lib${LIB}_pic.a
++.endif
++.if !defined(BUILD)
++${DESTDIR}${LIBDIR}/lib${LIB}_pic.a: .MADE
++.endif
++
++.PRECIOUS: ${DESTDIR}${LIBDIR}/lib${LIB}_pic.a
++${DESTDIR}${LIBDIR}/lib${LIB}_pic.a: lib${LIB}_pic.a __archiveinstall
++.endif
++
++.if ${MKPIC} != "no" && defined(SHLIB_MAJOR) && defined(SHLIB_MINOR)
++libinstall:: ${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}
++.if !defined(UPDATE)
++.PHONY: ${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}
++.endif
++.if !defined(BUILD)
++${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}: .MADE
++.endif
++
++.PRECIOUS: ${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}
++${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}: lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}
++	${INSTALL} ${RENAME} ${PRESERVE} ${COPY} -o ${LIBOWN} -g ${LIBGRP} \
++		-m ${LIBMODE} ${.ALLSRC} ${.TARGET}
++.if ${OBJECT_FMT} == "a.out" && !defined(DESTDIR)
++	/sbin/ldconfig -m ${LIBDIR}
++.endif
++.if ${OBJECT_FMT} == "ELF"
++	rm -f ${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_MAJOR}
++	ln -s lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
++	    ${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_MAJOR}
++	rm -f ${DESTDIR}${LIBDIR}/lib${LIB}.so
++.if ${MKLINKLIB} != "no"
++	ln -s lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
++	    ${DESTDIR}${LIBDIR}/lib${LIB}.so
++.endif
++.endif
++.endif
++
++.if ${MKLINT} != "no" && ${MKLINKLIB} != "no"
++libinstall:: ${DESTDIR}${LINTLIBDIR}/llib-l${LIB}.ln
++.if !defined(UPDATE)
++.PHONY: ${DESTDIR}${LINTLIBDIR}/llib-l${LIB}.ln
++.endif
++.if !defined(BUILD)
++${DESTDIR}${LINTLIBDIR}/llib-l${LIB}.ln: .MADE
++.endif
++
++.PRECIOUS: ${DESTDIR}${LINTLIBDIR}/llib-l${LIB}.ln
++${DESTDIR}${LINTLIBDIR}/llib-l${LIB}.ln: llib-l${LIB}.ln
++	${INSTALL} ${RENAME} ${PRESERVE} ${COPY} -o ${LIBOWN} -g ${LIBGRP} \
++		-m ${LIBMODE} ${.ALLSRC} ${DESTDIR}${LINTLIBDIR}
++.endif
++.endif
++
++.include <bsd.man.mk>
++.include <bsd.nls.mk>
++.include <bsd.files.mk>
++.include <bsd.inc.mk>
++.include <bsd.links.mk>
++.include <bsd.dep.mk>
++.include <bsd.sys.mk>
++
++# Make sure all of the standard targets are defined, even if they do nothing.
++lint regress:
+--- pmake-1.111.orig/mk/bsd.links.mk
++++ pmake-1.111/mk/bsd.links.mk
+@@ -0,0 +1,43 @@
++#	$NetBSD: bsd.links.mk,v 1.8 1998/12/31 15:28:52 castor Exp $
++
++.PHONY:		linksinstall
++realinstall:	linksinstall
++
++.if defined(SYMLINKS) && !empty(SYMLINKS)
++linksinstall::
++	@set ${SYMLINKS}; \
++	 while test $$# -ge 2; do \
++		l=$$1; \
++		shift; \
++		t=${DESTDIR}$$1; \
++		shift; \
++		echo ".include <bsd.own.mk>"; \
++		echo "all:: $$t"; \
++		echo ".PHONY: $$t"; \
++		echo "$$t:"; \
++		echo "	@echo \"$$t -> $$l\""; \
++		echo "	@rm -f $$t"; \
++		echo "	@ln -s $$l $$t"; \
++	done | ${MAKE} -f-
++.endif
++.if defined(LINKS) && !empty(LINKS)
++linksinstall::
++	@set ${LINKS}; \
++	 while test $$# -ge 2; do \
++		l=${DESTDIR}$$1; \
++		shift; \
++		t=${DESTDIR}$$1; \
++		shift; \
++		echo ".include <bsd.own.mk>"; \
++		echo "all:: $$t"; \
++		echo ".PHONY: $$t"; \
++		echo "$$t:"; \
++		echo "	@echo \"$$t -> $$l\""; \
++		echo "	@rm -f $$t"; \
++		echo "	@ln $$l $$t"; \
++	done | ${MAKE} -f-
++.endif
++
++.if !target(linksinstall)
++linksinstall:
++.endif
+--- pmake-1.111.orig/mk/bsd.man.mk
++++ pmake-1.111/mk/bsd.man.mk
+@@ -0,0 +1,156 @@
++#	$NetBSD: bsd.man.mk,v 1.45 1999/02/13 16:34:39 christos Exp $
++#	@(#)bsd.man.mk	8.1 (Berkeley) 6/8/93
++
++.if !target(__initialized__)
++__initialized__:
++.if exists(${.CURDIR}/../Makefile.inc)
++.include "${.CURDIR}/../Makefile.inc"
++.endif
++.include <bsd.own.mk>
++.include <bsd.obj.mk>
++.MAIN:		all
++.endif
++
++.PHONY:		catinstall maninstall catpages manpages catlinks manlinks cleanman
++.if ${MKMAN} != "no"
++realinstall:	${MANINSTALL}
++.endif
++cleandir distclean: cleanman
++
++MANTARGET?=	cat
++NROFF?=		nroff
++TBL?=		tbl
++
++.SUFFIXES: .1 .2 .3 .4 .5 .6 .7 .8 .9 \
++	   .cat1 .cat2 .cat3 .cat4 .cat5 .cat6 .cat7 .cat8 .cat9
++
++.9.cat9 .8.cat8 .7.cat7 .6.cat6 .5.cat5 .4.cat4 .3.cat3 .2.cat2 .1.cat1:
++.if !defined(USETBL)
++	@echo "${NROFF} -mandoc ${.IMPSRC} > ${.TARGET}"
++	@${NROFF} -mandoc ${.IMPSRC} > ${.TARGET} || \
++	 (rm -f ${.TARGET}; false)
++.else
++	@echo "${TBL} ${.IMPSRC} | ${NROFF} -mandoc > ${.TARGET}"
++	@${TBL} ${.IMPSRC} | ${NROFF} -mandoc > ${.TARGET} || \
++	 (rm -f ${.TARGET}; false)
++.endif
++
++.if defined(MAN) && !empty(MAN)
++MANPAGES=	${MAN}
++CATPAGES=	${MANPAGES:C/(.*).([1-9])/\1.cat\2/}
++.endif
++
++MINSTALL=	${INSTALL} ${RENAME} ${PRESERVE} ${COPY} -o ${MANOWN} \
++			-g ${MANGRP} -m ${MANMODE}
++
++.if defined(MANZ)
++# chown and chmod are done afterward automatically
++MCOMPRESS=	gzip -9cf
++MCOMPRESSSUFFIX= .gz
++.endif
++
++catinstall: catlinks
++maninstall: manlinks
++
++__installpage: .USE
++.if defined(MCOMPRESS) && !empty(MCOMPRESS)
++	@rm -f ${.TARGET}
++	${MCOMPRESS} ${.ALLSRC} > ${.TARGET}
++	@chown ${MANOWN}:${MANGRP} ${.TARGET}
++	@chmod ${MANMODE} ${.TARGET}
++.else
++	${MINSTALL} ${.ALLSRC} ${.TARGET}
++.endif
++
++
++# Rules for cat'ed man page installation
++.if defined(CATPAGES) && !empty(CATPAGES) && ${MKCATPAGES} != "no"
++.   for P in ${CATPAGES}
++catpages:: ${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX}
++
++.	if !defined(UPDATE)
++.PHONY: ${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX}
++.	endif
++.	if !defined(BUILD)
++${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX}: .MADE
++.	endif
++
++.PRECIOUS: ${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX}
++${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX}: ${P} __installpage
++.   endfor
++.else
++catpages::
++.endif
++
++# Rules for source page installation
++.if defined(MANPAGES) && !empty(MANPAGES)
++.   for P in ${MANPAGES}
++manpages:: ${DESTDIR}${MANDIR}/man${P:T:E}${MANSUBDIR}/${P}${MCOMPRESSSUFFIX}
++.	if !defined(UPDATE)
++.PHONY: ${DESTDIR}${MANDIR}/man${P:T:E}${MANSUBDIR}/${P}${MCOMPRESSSUFFIX}
++.	endif
++
++.PRECIOUS: ${DESTDIR}${MANDIR}/man${P:T:E}${MANSUBDIR}/${P}${MCOMPRESSSUFFIX}
++${DESTDIR}${MANDIR}/man${P:T:E}${MANSUBDIR}/${P}${MCOMPRESSSUFFIX}: ${P} __installpage
++.   endfor
++.else
++manpages::
++.endif
++
++.if ${MKCATPAGES} != "no"
++catlinks: catpages
++.if defined(MLINKS) && !empty(MLINKS)
++	@set ${MLINKS}; \
++	while test $$# -ge 2; do \
++		name=$$1; \
++		shift; \
++		dir=${DESTDIR}${MANDIR}/cat$${name##*.}; \
++		l=$${dir}${MANSUBDIR}/$${name%.*}.0${MCOMPRESSSUFFIX}; \
++		name=$$1; \
++		shift; \
++		dir=${DESTDIR}${MANDIR}/cat$${name##*.}; \
++		t=$${dir}${MANSUBDIR}/$${name%.*}.0${MCOMPRESSSUFFIX}; \
++		if [ -z "${UPDATE}" -o ! -f $$t ]; then \
++		    echo $$t -\> $$l; \
++		    ln -sf $$l $$t; \
++		fi; \
++	done
++.endif
++.else
++catlinks:
++.endif
++
++manlinks: manpages
++.if defined(MLINKS) && !empty(MLINKS)
++	@set ${MLINKS}; \
++	while test $$# -ge 2; do \
++		name=$$1; \
++		shift; \
++		dir=${DESTDIR}${MANDIR}/man$${name##*.}; \
++		l=$${dir}${MANSUBDIR}/$${name}${MCOMPRESSSUFFIX}; \
++		name=$$1; \
++		shift; \
++		dir=${DESTDIR}${MANDIR}/man$${name##*.}; \
++		t=$${dir}${MANSUBDIR}/$${name}${MCOMPRESSSUFFIX}; \
++		if [ -z "${UPDATE}" -o ! -f $$t ]; then \
++		    echo $$t -\> $$l; \
++		    ln -sf $$l $$t; \
++		fi; \
++	done
++.endif
++
++.if defined(CATPAGES)
++.if ${MKCATPAGES} != "no" && ${MKMAN} != "no"
++all: ${CATPAGES}
++.else
++all:
++.endif
++
++cleanman:
++	rm -f ${CATPAGES}
++.else
++cleanman:
++.endif
++
++# Make sure all of the standard targets are defined, even if they do nothing.
++clean depend includes lint regress tags:
+--- pmake-1.111.orig/mk/bsd.nls.mk
++++ pmake-1.111/mk/bsd.nls.mk
+@@ -0,0 +1,64 @@
++#	$NetBSD: bsd.nls.mk,v 1.17 1999/02/12 12:38:45 lukem Exp $
++
++.if !target(__initialized__)
++__initialized__:
++.if exists(${.CURDIR}/../Makefile.inc)
++.include "${.CURDIR}/../Makefile.inc"
++.endif
++
++.MAIN:		all
++.endif
++.PHONY:		cleannls nlsinstall
++.if ${MKNLS} != "no"
++realinstall:	nlsinstall
++.endif
++cleandir distclean: cleannls
++
++.SUFFIXES: .cat .msg
++
++.msg.cat:
++	@rm -f ${.TARGET}
++	gencat ${.TARGET} ${.IMPSRC}
++
++.if defined(NLS) && !empty(NLS)
++NLSALL= ${NLS:.msg=.cat}
++.endif
++
++.if !defined(NLSNAME)
++.if defined(PROG)
++NLSNAME=${PROG}
++.else
++NLSNAME=lib${LIB}
++.endif
++.endif
++
++.if defined(NLSALL)
++.if ${MKNLS} != "no"
++all: ${NLSALL}
++.endif
++
++cleannls:
++	rm -f ${NLSALL}
++
++.for F in ${NLSALL}
++nlsinstall:: ${DESTDIR}${NLSDIR}/${F:T:R}/${NLSNAME}.cat
++.if !defined(UPDATE)
++.PHONY: ${DESTDIR}${NLSDIR}/${F:T:R}/${NLSNAME}.cat
++.endif
++.if !defined(BUILD)
++${DESTDIR}${NLSDIR}/${F:T:R}/${NLSNAME}.cat: .MADE
++.endif
++
++.PRECIOUS: ${DESTDIR}${NLSDIR}/${F:T:R}/${NLSNAME}.cat
++${DESTDIR}${NLSDIR}/${F:T:R}/${NLSNAME}.cat: ${F}
++	${INSTALL} -d ${.TARGET:H}
++	${INSTALL} ${RENAME} ${PRESERVE} ${COPY} -o ${NLSOWN} -g ${NLSGRP} \
++		-m ${NLSMODE} ${.ALLSRC} ${.TARGET}
++.endfor
++.else
++cleannls:
++.endif
++
++.if !target(nlsinstall)
++nlsinstall::
++.endif
+--- pmake-1.111.orig/mk/bsd.obj.mk
++++ pmake-1.111/mk/bsd.obj.mk
+@@ -0,0 +1,54 @@
++#	$NetBSD: bsd.obj.mk,v 1.17 1999/02/12 04:13:26 lukem Exp $
++
++.if !target(__initialized_obj__)
++__initialized_obj__:
++.include <bsd.own.mk>
++.endif
++
++.if ${MKOBJ} == "no"
++obj:
++.else
++
++.if defined(OBJMACHINE)
++__objdir=	obj.${MACHINE}
++.else
++__objdir=	obj
++.endif
++
++.if defined(USR_OBJMACHINE)
++__usrobjdir=	${BSDOBJDIR}.${MACHINE}
++__usrobjdirpf=	
++.else
++__usrobjdir=	${BSDOBJDIR}
++.if defined(OBJMACHINE)
++__usrobjdirpf=	.${MACHINE}
++.else
++__usrobjdirpf=
++.endif
++.endif
++
++obj:
++	@cd ${.CURDIR}; rm -f ${__objdir} > /dev/null 2>&1 || true; \
++	here=`/bin/pwd`; subdir=$${here#${BSDSRCDIR}/}; \
++	if test $$here != $$subdir ; then \
++		dest=${__usrobjdir}/$$subdir${__usrobjdirpf} ; \
++		echo "$$here/${__objdir} -> $$dest"; \
++		rm -rf ${__objdir}; \
++		ln -s $$dest ${__objdir}; \
++		if test -d ${__usrobjdir} -a ! -d $$dest; then \
++			mkdir -p $$dest; \
++		else \
++			true; \
++		fi; \
++	else \
++		true ; \
++		dest=$$here/${__objdir} ; \
++		if test ! -d ${__objdir} ; then \
++			echo "making $$dest" ; \
++			mkdir $$dest; \
++		fi ; \
++	fi;
++.endif
++
++print-objdir:
++	@echo ${.OBJDIR}
+--- pmake-1.111.orig/mk/bsd.own.mk
++++ pmake-1.111/mk/bsd.own.mk
+@@ -0,0 +1,245 @@
++#	$NetBSD: bsd.own.mk,v 1.120 1999/02/24 14:42:36 drochner Exp $
++
++.if !defined(_BSD_OWN_MK_)
++_BSD_OWN_MK_=1
++
++.if defined(MAKECONF) && exists(${MAKECONF})
++.include "${MAKECONF}"
++.elif exists(/etc/mk.conf)
++.include "/etc/mk.conf"
++.endif
++
++# Defining `SKEY' causes support for S/key authentication to be compiled in.
++SKEY=		yes
++# Defining `KERBEROS' causes support for Kerberos authentication to be
++# compiled in.
++#KERBEROS=	yes
++# Defining 'KERBEROS5' causes support for Kerberos5 authentication to be
++# compiled in.
++#KERBEROS5=	yes
++
++# where the system object and source trees are kept; can be configurable
++# by the user in case they want them in ~/foosrc and ~/fooobj, for example
++BSDSRCDIR?=	/usr/src
++BSDOBJDIR?=	/usr/obj
++
++BINGRP?=	root
++BINOWN?=	root
++BINMODE?=	755
++NONBINMODE?=	644
++
++# Define MANZ to have the man pages compressed (gzip)
++MANZ=		1
++
++MANDIR?=	/usr/share/man
++MANGRP?=	root
++MANOWN?=	root
++MANMODE?=	${NONBINMODE}
++MANINSTALL?=	maninstall catinstall
++
++INFODIR?=	/usr/share/info
++INFOGRP?=	root
++INFOOWN?=	root
++INFOMODE?=	${NONBINMODE}
++
++LIBDIR?=	/usr/lib
++LINTLIBDIR?=	/usr/libdata/lint
++LIBGRP?=	${BINGRP}
++LIBOWN?=	${BINOWN}
++LIBMODE?=	${NONBINMODE}
++
++DOCDIR?=        /usr/share/doc
++DOCGRP?=	root
++DOCOWN?=	root
++DOCMODE?=       ${NONBINMODE}
++
++NLSDIR?=	/usr/share/nls
++NLSGRP?=	root
++NLSOWN?=	root
++NLSMODE?=	${NONBINMODE}
++
++KMODDIR?=	/usr/lkm
++KMODGRP?=	root
++KMODOWN?=	root
++KMODMODE?=	${NONBINMODE}
++
++COPY?=		-c
++.if defined(UPDATE)
++PRESERVE?=	-p
++.else
++PRESERVE?=
++.endif
++RENAME?=
++STRIPFLAG?=	-s
++
++# Define SYS_INCLUDE to indicate whether you want symbolic links to the system
++# source (``symlinks''), or a separate copy (``copies''); (latter useful
++# in environments where it's not possible to keep /sys publicly readable)
++#SYS_INCLUDE= 	symlinks
++
++# XXX The next two are temporary until the transition to UVM is complete.
++
++# Systems on which UVM is the standard VM system.
++.if ${MACHINE} != "pica"
++UVM?=		yes
++.endif
++
++# Systems that use UVM's new pmap interface.
++.if ${MACHINE} == "alpha" || \
++    ${MACHINE} == "i386" || \
++    ${MACHINE} == "pc532" || \
++    ${MACHINE} == "vax"
++PMAP_NEW?=	yes
++.endif
++
++# Data-driven table using make variables to control how 
++# toolchain-dependent targets and shared libraries are built
++# for different platforms and object formats.
++# OBJECT_FMT:		currently either "ELF" or "a.out".
++# SHLIB_TYPE:		"ELF" or "a.out" or "" to force static libraries.
++#
++#.if ${MACHINE_ARCH} == "alpha" || \
++#    ${MACHINE_ARCH} == "mipsel" || ${MACHINE_ARCH} == "mipseb" || \
++#    ${MACHINE_ARCH} == "powerpc" || \
++#    ${MACHINE_ARCH} == "sparc64"
++#OBJECT_FMT?=ELF
++#.else
++
++# On Debian GNU/Linux, Everything is ELF.
++OBJECT_FMT?=a.out
++#.endif
++
++# GNU sources and packages sometimes see architecture names differently.
++# This table maps an architecture name to its GNU counterpart.
++# Use as so:  ${GNU_ARCH.${TARGET_ARCH}} or ${MACHINE_GNU_ARCH}
++GNU_ARCH.alpha=alpha
++GNU_ARCH.arm32=arm
++GNU_ARCH.i386=i386
++GNU_ARCH.m68k=m68k
++GNU_ARCH.mipseb=mipseb
++GNU_ARCH.mipsel=mipsel
++GNU_ARCH.ns32k=ns32k
++GNU_ARCH.powerpc=powerpc
++GNU_ARCH.sparc=sparc
++GNU_ARCH.sparc64=sparc
++GNU_ARCH.vax=vax
++.if ${MACHINE_ARCH} == "mips"
++.INIT:
++	@echo Must set MACHINE_ARCH to one of mipseb or mipsel
++	@false
++.endif
++
++.if ${MACHINE_ARCH} == "sparc64"
++MACHINE_GNU_ARCH=${MACHINE_ARCH}
++.else
++MACHINE_GNU_ARCH=${GNU_ARCH.${MACHINE_ARCH}}
++.endif
++
++TARGETS+=	all clean cleandir depend distclean includes install lint obj \
++		regress tags
++.PHONY:		all clean cleandir depend distclean includes install lint obj \
++		regress tags beforedepend afterdepend beforeinstall \
++		afterinstall realinstall
++
++# set NEED_OWN_INSTALL_TARGET, if it's not already set, to yes
++# this is used by bsd.pkg.mk to stop "install" being defined
++NEED_OWN_INSTALL_TARGET?=	yes
++
++.if ${NEED_OWN_INSTALL_TARGET} == "yes"
++.if !target(install)
++install:	.NOTMAIN beforeinstall subdir-install realinstall afterinstall
++beforeinstall:	.NOTMAIN
++subdir-install:	.NOTMAIN beforeinstall
++realinstall:	.NOTMAIN beforeinstall
++afterinstall:	.NOTMAIN subdir-install realinstall
++.endif
++.endif
++
++# Define MKxxx variables (which are either yes or no) for users
++# to set in /etc/mk.conf and override on the make commandline.
++# These should be tested with `== "no"' or `!= "no"'.
++# The NOxxx variables should only be used by Makefiles.
++#
++
++MKCATPAGES?=no
++
++.if defined(NODOC)
++MKDOC=no
++#.elif !defined(MKDOC)
++#MKDOC=yes
++.else
++MKDOC?=yes
++.endif
++
++MKINFO?=yes
++
++.if defined(NOLINKLIB)
++MKLINKLIB=no
++.else
++MKLINKLIB?=yes
++.endif
++.if ${MKLINKLIB} == "no"
++MKPICINSTALL=no
++MKPROFILE=no
++.endif
++
++.if defined(NOLINT)
++MKLINT=no
++.else
++MKLINT?=yes
++.endif
++
++.if defined(NOMAN)
++MKMAN=no
++.else
++MKMAN?=yes
++.endif
++.if ${MKMAN} == "no"
++MKCATPAGES=no
++.endif
++
++.if defined(NONLS)
++MKNLS=no
++.else
++MKNLS?=yes
++.endif
++
++.if defined(NOOBJ)
++MKOBJ=no
++.else
++MKOBJ?=yes
++.endif
++
++.if defined(NOPIC)
++MKPIC=no
++.else
++MKPIC?=yes
++.endif
++
++.if defined(NOPICINSTALL)
++MKPICINSTALL=no
++.else
++MKPICINSTALL?=yes
++.endif
++
++.if defined(NOPROFILE)
++MKPROFILE=no
++.else
++MKPROFILE?=yes
++.endif
++
++.if defined(NOSHARE)
++MKSHARE=no
++.else
++MKSHARE?=yes
++.endif
++.if ${MKSHARE} == "no"
++MKCATPAGES=no
++MKDOC=no
++MKINFO=no
++MKMAN=no
++MKNLS=no
++.endif
++
++
++.endif		# _BSD_OWN_MK_
+--- pmake-1.111.orig/mk/bsd.prog.mk
++++ pmake-1.111/mk/bsd.prog.mk
+@@ -0,0 +1,202 @@
++#	$NetBSD: bsd.prog.mk,v 1.100 1999/02/12 01:10:08 lukem Exp $
++#	@(#)bsd.prog.mk	8.2 (Berkeley) 4/2/94
++
++.if !target(__initialized__)
++__initialized__:
++.if exists(${.CURDIR}/../Makefile.inc)
++.include "${.CURDIR}/../Makefile.inc"
++.endif
++.include <bsd.own.mk>
++.include <bsd.obj.mk>
++.MAIN:		all
++.endif
++
++.PHONY:		cleanprog proginstall scriptsinstall
++realinstall:	proginstall scriptsinstall
++clean cleandir distclean: cleanprog
++
++CFLAGS+=	${COPTS}
++
++# ELF platforms depend on crtbegin.o and crtend.o
++.if ${OBJECT_FMT} == "ELF"
++LIBCRTBEGIN?=	${DESTDIR}/usr/lib/crtbegin.o
++LIBCRTEND?=	${DESTDIR}/usr/lib/crtend.o
++.else
++LIBCRTBEGIN?=
++LIBCRTEND?=
++.endif
++
++LIBCRT0?=	
++
++LIBBZ2?=	${DESTDIR}/usr/lib/libbz2.a
++LIBC?=		${DESTDIR}/usr/lib/libc.a
++LIBC_PIC?=	${DESTDIR}/usr/lib/libc_pic.a
++LIBCOMPAT?=	${DESTDIR}/usr/lib/libcompat.a
++LIBCRYPT?=	${DESTDIR}/usr/lib/libcrypt.a
++LIBCURSES?=	${DESTDIR}/usr/lib/libcurses.a
++LIBDBM?=	${DESTDIR}/usr/lib/libdbm.a
++LIBDES?=	${DESTDIR}/usr/lib/libdes.a
++LIBEDIT?=	${DESTDIR}/usr/lib/libedit.a
++LIBGCC?=	${DESTDIR}/usr/lib/libgcc.a
++LIBGNUMALLOC?=	${DESTDIR}/usr/lib/libgnumalloc.a
++LIBKDB?=	${DESTDIR}/usr/lib/libkdb.a
++LIBKRB?=	${DESTDIR}/usr/lib/libkrb.a
++LIBKVM?=	${DESTDIR}/usr/lib/libkvm.a
++LIBL?=		${DESTDIR}/usr/lib/libl.a
++LIBM?=		${DESTDIR}/usr/lib/libm.a
++LIBMP?=		${DESTDIR}/usr/lib/libmp.a
++LIBNTP?=	${DESTDIR}/usr/lib/libntp.a
++LIBOBJC?=	${DESTDIR}/usr/lib/libobjc.a
++LIBPC?=		${DESTDIR}/usr/lib/libpc.a
++LIBPCAP?=	${DESTDIR}/usr/lib/libpcap.a
++LIBPLOT?=	${DESTDIR}/usr/lib/libplot.a
++LIBPOSIX?=	${DESTDIR}/usr/lib/libposix.a
++LIBRESOLV?=	${DESTDIR}/usr/lib/libresolv.a
++LIBRPCSVC?=	${DESTDIR}/usr/lib/librpcsvc.a
++LIBSKEY?=	${DESTDIR}/usr/lib/libskey.a
++LIBTERMCAP?=	${DESTDIR}/usr/lib/libtermcap.a
++LIBTELNET?=	${DESTDIR}/usr/lib/libtelnet.a
++LIBUTIL?=	${DESTDIR}/usr/lib/libutil.a
++LIBWRAP?=	${DESTDIR}/usr/lib/libwrap.a
++LIBY?=		${DESTDIR}/usr/lib/liby.a
++LIBZ?=		${DESTDIR}/usr/lib/libz.a
++
++.if defined(SHAREDSTRINGS)
++CLEANFILES+=strings
++.c.o:
++	${CC} -E ${CFLAGS} ${.IMPSRC} | xstr -c -
++	@${CC} ${CFLAGS} -c x.c -o ${.TARGET}
++	@rm -f x.c
++
++.cc.o:
++	${CXX} -E ${CXXFLAGS} ${.IMPSRC} | xstr -c -
++	@mv -f x.c x.cc
++	@${CXX} ${CXXFLAGS} -c x.cc -o ${.TARGET}
++	@rm -f x.cc
++
++.C.o:
++	${CXX} -E ${CXXFLAGS} ${.IMPSRC} | xstr -c -
++	@mv -f x.c x.C
++	@${CXX} ${CXXFLAGS} -c x.C -o ${.TARGET}
++	@rm -f x.C
++.endif
++
++
++.if defined(PROG)
++SRCS?=		${PROG}.c
++
++DPSRCS+=	${SRCS:M*.l:.l=.c} ${SRCS:M*.y:.y=.c}
++CLEANFILES+=	${DPSRCS}
++.if defined(YHEADER)
++CLEANFILES+=	${SRCS:M*.y:.y=.h}
++.endif
++
++.if !empty(SRCS:N*.h:N*.sh)
++OBJS+=		${SRCS:N*.h:N*.sh:R:S/$/.o/g}
++LOBJS+=		${LSRCS:.c=.ln} ${SRCS:M*.c:.c=.ln}
++.endif
++
++.if defined(OBJS) && !empty(OBJS)
++.NOPATH: ${OBJS}
++.if defined(DESTDIR)
++
++${PROG}: ${LIBCRT0} ${DPSRCS} ${OBJS} ${LIBC} ${LIBCRTBEGIN} ${LIBCRTEND} ${DPADD}
++	${CC} ${LDFLAGS} ${LDSTATIC} -o ${.TARGET} -nostdlib -L${DESTDIR}/usr/lib ${LIBCRT0} ${LIBCRTBEGIN} ${OBJS} ${LDADD} -lgcc -lc -lgcc ${LIBCRTEND}
++
++.else
++
++${PROG}: ${LIBCRT0} ${DPSRCS} ${OBJS} ${LIBC} ${LIBCRTBEGIN} ${LIBCRTEND} ${DPADD}
++	${CC} ${LDFLAGS} ${LDSTATIC} -o ${.TARGET} ${OBJS} ${LDADD}
++
++.endif	# defined(DESTDIR)
++.endif	# defined(OBJS) && !empty(OBJS)
++
++.if !defined(MAN)
++MAN=	${PROG}.1
++.endif	# !defined(MAN)
++.endif	# defined(PROG)
++
++all: ${PROG}
++
++cleanprog:
++	rm -f a.out [Ee]rrs mklog core *.core \
++	    ${PROG} ${OBJS} ${LOBJS} ${CLEANFILES}
++
++.if defined(SRCS)
++afterdepend: .depend
++	@(TMP=/tmp/_depend$$$$; \
++	    sed -e 's/^\([^\.]*\).o[ ]*:/\1.o \1.ln:/' \
++	      < .depend > $$TMP; \
++	    mv $$TMP .depend)
++.endif
++
++.if defined(PROG) && !target(proginstall)
++PROGNAME?= ${PROG}
++proginstall:: ${DESTDIR}${BINDIR}/${PROGNAME}
++.if !defined(UPDATE)
++.PHONY: ${DESTDIR}${BINDIR}/${PROGNAME}
++.endif
++.if !defined(BUILD)
++${DESTDIR}${BINDIR}/${PROGNAME}: .MADE
++.endif
++
++.PRECIOUS: ${DESTDIR}${BINDIR}/${PROGNAME}
++${DESTDIR}${BINDIR}/${PROGNAME}: ${PROG}
++	${INSTALL} ${RENAME} ${PRESERVE} ${COPY} ${STRIPFLAG} -o ${BINOWN} \
++	    -g ${BINGRP} -m ${BINMODE} ${.ALLSRC} ${.TARGET}
++.endif
++
++.if !target(proginstall)
++proginstall::
++.endif
++
++.if defined(SCRIPTS) && !target(scriptsinstall)
++SCRIPTSDIR?=${BINDIR}
++SCRIPTSOWN?=${BINOWN}
++SCRIPTSGRP?=${BINGRP}
++SCRIPTSMODE?=${BINMODE}
++.for S in ${SCRIPTS}
++SCRIPTSDIR_${S}?=${SCRIPTSDIR}
++SCRIPTSOWN_${S}?=${SCRIPTSOWN}
++SCRIPTSGRP_${S}?=${SCRIPTSGRP}
++SCRIPTSMODE_${S}?=${SCRIPTSMODE}
++.if defined(SCRIPTSNAME)
++SCRIPTSNAME_${S} ?= ${SCRIPTSNAME}
++.else
++SCRIPTSNAME_${S} ?= ${S:T:R}
++.endif
++SCRIPTSDIR_${S} ?= ${SCRIPTSDIR}
++scriptsinstall:: ${DESTDIR}${SCRIPTSDIR_${S}}/${SCRIPTSNAME_${S}}
++.if !defined(UPDATE)
++.PHONY: ${DESTDIR}${SCRIPTSDIR_${S}}/${SCRIPTSNAME_${S}}
++.endif
++.if !defined(BUILD)
++${DESTDIR}${SCRIPTSDIR_${S}}/${SCRIPTSNAME_${S}}: .MADE
++.endif
++
++.PRECIOUS: ${DESTDIR}${SCRIPTSDIR_${S}}/${SCRIPTSNAME_${S}}
++${DESTDIR}${SCRIPTSDIR_${S}}/${SCRIPTSNAME_${S}}: ${S}
++	${INSTALL} ${RENAME} ${PRESERVE} ${COPY} -o ${SCRIPTSOWN_${S}} -g \
++	    ${SCRIPTSGRP_${S}} -m ${SCRIPTSMODE_${S}} ${.ALLSRC} ${.TARGET}
++.endfor
++.endif
++
++.if !target(scriptsinstall)
++scriptsinstall::
++.endif
++
++lint: ${LOBJS}
++.if defined(LOBJS) && !empty(LOBJS)
++	${LINT} ${LINTFLAGS} ${LDFLAGS:M-L*} ${LOBJS} ${LDADD}
++.endif
++
++.include <bsd.man.mk>
++.include <bsd.nls.mk>
++.include <bsd.files.mk>
++.include <bsd.inc.mk>
++.include <bsd.links.mk>
++.include <bsd.dep.mk>
++.include <bsd.sys.mk>
++
++# Make sure all of the standard targets are defined, even if they do nothing.
++regress:
+--- pmake-1.111.orig/mk/bsd.subdir.mk
++++ pmake-1.111/mk/bsd.subdir.mk
+@@ -0,0 +1,34 @@
++#	$NetBSD: bsd.subdir.mk,v 1.31 1999/02/11 05:01:39 tv Exp $
++#	@(#)bsd.subdir.mk	8.1 (Berkeley) 6/8/93
++
++.if !target(__initialized__)
++__initialized__:
++.if exists(${.CURDIR}/../Makefile.inc)
++.include "${.CURDIR}/../Makefile.inc"
++.endif
++.include <bsd.own.mk>
++.MAIN:		all
++.endif
++
++.for dir in ${SUBDIR}
++.if exists(${dir}.${MACHINE})
++__REALSUBDIR+=${dir}.${MACHINE}
++.else
++__REALSUBDIR+=${dir}
++.endif
++.endfor
++
++.for dir in ${__REALSUBDIR}
++.for targ in ${TARGETS}
++.PHONY: ${targ}-${dir}
++${targ}-${dir}: .MAKE
++	@echo "${targ} ===> ${_THISDIR_}${dir}"
++	@cd ${.CURDIR}/${dir}; \
++	${MAKE} "_THISDIR_=${_THISDIR_}${dir}/" ${targ}
++subdir-${targ}: ${targ}-${dir}
++${targ}: subdir-${targ}
++.endfor
++.endfor
++
++# Make sure all of the standard targets are defined, even if they do nothing.
++${TARGETS}:
+--- pmake-1.111.orig/mk/bsd.sys.mk
++++ pmake-1.111/mk/bsd.sys.mk
+@@ -0,0 +1,110 @@
++#	$NetBSD: bsd.sys.mk,v 1.34 1999/01/31 09:17:20 mrg Exp $
++#
++# Overrides used for NetBSD source tree builds.
++
++.if defined(WARNS) && ${WARNS} == 1
++CFLAGS+= -Wall -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith
++.endif
++.if !defined(NOGCCERROR)
++CFLAGS+= -Werror
++.endif
++CFLAGS+= ${CWARNFLAGS}
++
++.if defined(DESTDIR)
++CPPFLAGS+= -nostdinc -idirafter ${DESTDIR}/usr/include
++LINTFLAGS+= -d ${DESTDIR}/usr/include
++.endif
++
++.if defined(AUDIT)
++CPPFLAGS+= -D__AUDIT__
++.endif
++
++# Helpers for cross-compiling
++HOST_CC?=	cc
++HOST_CFLAGS?=	-O
++HOST_COMPILE.c?=${HOST_CC} ${HOST_CFLAGS} ${HOST_CPPFLAGS} -c
++HOST_LINK.c?=	${HOST_CC} ${HOST_CFLAGS} ${HOST_CPPFLAGS} ${HOST_LDFLAGS}
++
++HOST_CPP?=	cpp
++HOST_CPPFLAGS?=
++
++HOST_LD?=	ld
++HOST_LDFLAGS?=
++
++STRIPPROG?=	strip
++
++
++.SUFFIXES:	.m .o .ln .lo
++
++# Objective C
++# (Defined here rather than in <sys.mk> because `.m' is not just
++#  used for Objective C source)
++.m:
++	${LINK.m} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
++.m.o:
++	${COMPILE.m} ${.IMPSRC}
++
++# Host-compiled C objects
++.c.lo:
++	${HOST_COMPILE.c} -o ${.TARGET} ${.IMPSRC}
++
++
++.if defined(PARALLEL) || defined(LPREFIX)
++LPREFIX?=yy
++LFLAGS+=-P${LPREFIX}
++# Lex
++.l:
++	${LEX.l} -o${.TARGET:R}.${LPREFIX}.c ${.IMPSRC}
++	${LINK.c} -o ${.TARGET} ${.TARGET:R}.${LPREFIX}.c ${LDLIBS} -ll
++	rm -f ${.TARGET:R}.${LPREFIX}.c
++.l.c:
++	${LEX.l} -o${.TARGET} ${.IMPSRC}
++.l.o:
++	${LEX.l} -o${.TARGET:R}.${LPREFIX}.c ${.IMPSRC}
++	${COMPILE.c} -o ${.TARGET} ${.TARGET:R}.${LPREFIX}.c 
++	rm -f ${.TARGET:R}.${LPREFIX}.c
++.l.lo:
++	${LEX.l} -o${.TARGET:R}.${LPREFIX}.c ${.IMPSRC}
++	${HOST_COMPILE.c} -o ${.TARGET} ${.TARGET:R}.${LPREFIX}.c 
++	rm -f ${.TARGET:R}.${LPREFIX}.c
++.endif
++
++# Yacc
++.if defined(YHEADER) || defined(YPREFIX)
++.if defined(YPREFIX)
++YFLAGS+=-p${YPREFIX}
++.endif
++.if defined(YHEADER)
++YFLAGS+=-d
++.endif
++.y:
++	${YACC.y} -b ${.TARGET:R} ${.IMPSRC}
++	${LINK.c} -o ${.TARGET} ${.TARGET:R}.tab.c ${LDLIBS}
++	rm -f ${.TARGET:R}.tab.c ${.TARGET:R}.tab.h
++.y.h: ${.TARGET:R}.c
++.y.c:
++	${YACC.y} -o ${.TARGET} ${.IMPSRC}
++.y.o:
++	${YACC.y} -b ${.TARGET:R} ${.IMPSRC}
++	${COMPILE.c} -o ${.TARGET} ${.TARGET:R}.tab.c
++	rm -f ${.TARGET:R}.tab.c ${TARGET:R}.tab.h
++.y.lo:
++	${YACC.y} -b ${.TARGET:R} ${.IMPSRC}
++	${HOST_COMPILE.c} -o ${.TARGET} ${.TARGET:R}.tab.c
++	rm -f ${.TARGET:R}.tab.c ${TARGET:R}.tab.h
++.elif defined(PARALLEL)
++.y:
++	${YACC.y} -b ${.TARGET:R} ${.IMPSRC}
++	${LINK.c} -o ${.TARGET} ${.TARGET:R}.tab.c ${LDLIBS}
++	rm -f ${.TARGET:R}.tab.c
++.y.c:
++	${YACC.y} -o ${.TARGET} ${.IMPSRC}
++.y.o:
++	${YACC.y} -b ${.TARGET:R} ${.IMPSRC}
++	${COMPILE.c} -o ${.TARGET} ${.TARGET:R}.tab.c
++	rm -f ${.TARGET:R}.tab.c
++.y.lo:
++	${YACC.y} -b ${.TARGET:R} ${.IMPSRC}
++	${HOST_COMPILE.c} -o ${.TARGET} ${.TARGET:R}.tab.c
++	rm -f ${.TARGET:R}.tab.c
++.endif
+--- pmake-1.111.orig/mk/sys.mk
++++ pmake-1.111/mk/sys.mk
+@@ -0,0 +1,207 @@
++#	$NetBSD: sys.mk,v 1.54 1999/03/10 14:06:14 mycroft Exp $
++#	@(#)sys.mk	8.2 (Berkeley) 3/21/94
++
++unix?=		We run Debian GNU.
++
++.SUFFIXES: .out .a .ln .o .s .S .c .cc .C .F .f .r .y .l .cl .p .h .sh .m4
++
++.LIBS:		.a
++
++AR?=		ar
++ARFLAGS?=	rl
++RANLIB?=	ranlib
++
++AS?=		as
++AFLAGS?=
++COMPILE.s?=	${CC} ${AFLAGS} -c
++LINK.s?=	${CC} ${AFLAGS} ${LDFLAGS}
++COMPILE.S?=	${CC} ${AFLAGS} ${CPPFLAGS} -c -traditional-cpp
++LINK.S?=	${CC} ${AFLAGS} ${CPPFLAGS} ${LDFLAGS}
++
++CC?=		cc
++.if ${MACHINE_ARCH} == "alpha" || \
++    ${MACHINE_ARCH} == "arm32" || \
++    ${MACHINE_ARCH} == "i386" || \
++    ${MACHINE_ARCH} == "m68k" || \
++    ${MACHINE_ARCH} == "mipsel" || ${MACHINE_ARCH} == "mipseb" || \
++    ${MACHINE_ARCH} == "sparc"
++CFLAGS?=	-O2
++.else
++CFLAGS?=	-O
++.endif
++COMPILE.c?=	${CC} ${CFLAGS} ${CPPFLAGS} -c
++LINK.c?=	${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}
++
++CXX?=		c++
++CXXFLAGS?=	${CFLAGS}
++COMPILE.cc?=	${CXX} ${CXXFLAGS} ${CPPFLAGS} -c
++LINK.cc?=	${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}
++
++OBJC?=		${CC}
++OBJCFLAGS?=	${CFLAGS}
++COMPILE.m?=	${OBJC} ${OBJCFLAGS} ${CPPFLAGS} -c
++LINK.m?=	${OBJC} ${OBJCFLAGS} ${CPPFLAGS} ${LDFLAGS}
++
++CPP?=		cpp
++CPPFLAGS?=	
++
++FC?=		f77
++FFLAGS?=	-O
++RFLAGS?=
++COMPILE.f?=	${FC} ${FFLAGS} -c
++LINK.f?=	${FC} ${FFLAGS} ${LDFLAGS}
++COMPILE.F?=	${FC} ${FFLAGS} ${CPPFLAGS} -c
++LINK.F?=	${FC} ${FFLAGS} ${CPPFLAGS} ${LDFLAGS}
++COMPILE.r?=	${FC} ${FFLAGS} ${RFLAGS} -c
++LINK.r?=	${FC} ${FFLAGS} ${RFLAGS} ${LDFLAGS}
++
++INSTALL?=	install
++
++LEX?=		lex
++LFLAGS?=
++LEX.l?=		${LEX} ${LFLAGS}
++
++LD?=		ld
++LDFLAGS?=
++
++LINT?=		lint
++LINTFLAGS?=	-chapbxzF
++
++LORDER?=	lorder
++
++MAKE?=		pmake
++
++NM?=		nm
++
++PC?=		pc
++PFLAGS?=
++COMPILE.p?=	${PC} ${PFLAGS} ${CPPFLAGS} -c
++LINK.p?=	${PC} ${PFLAGS} ${CPPFLAGS} ${LDFLAGS}
++
++SHELL?=		sh
++
++SIZE?=		size
++
++TSORT?= 	tsort
++
++YACC?=		yacc
++YFLAGS?=
++YACC.y?=	${YACC} ${YFLAGS}
++
++# C
++.c:
++	${LINK.c} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
++.c.o:
++	${COMPILE.c} ${.IMPSRC}
++.c.a:
++	${COMPILE.c} ${.IMPSRC}
++	${AR} ${ARFLAGS} $@ $*.o
++	rm -f $*.o
++.c.ln:
++	${LINT} ${LINTFLAGS} ${CPPFLAGS:M-[IDU]*} -i ${.IMPSRC}
++
++# C++
++.cc:
++	${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
++.cc.o:
++	${COMPILE.cc} ${.IMPSRC}
++.cc.a:
++	${COMPILE.cc} ${.IMPSRC}
++	${AR} ${ARFLAGS} $@ $*.o
++	rm -f $*.o
++
++.C:
++	${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
++.C.o:
++	${COMPILE.cc} ${.IMPSRC}
++.C.a:
++	${COMPILE.cc} ${.IMPSRC}
++	${AR} ${ARFLAGS} $@ $*.o
++	rm -f $*.o
++
++# Fortran/Ratfor
++.f:
++	${LINK.f} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
++.f.o:
++	${COMPILE.f} ${.IMPSRC}
++.f.a:
++	${COMPILE.f} ${.IMPSRC}
++	${AR} ${ARFLAGS} $@ $*.o
++	rm -f $*.o
++
++.F:
++	${LINK.F} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
++.F.o:
++	${COMPILE.F} ${.IMPSRC}
++.F.a:
++	${COMPILE.F} ${.IMPSRC}
++	${AR} ${ARFLAGS} $@ $*.o
++	rm -f $*.o
++
++.r:
++	${LINK.r} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
++.r.o:
++	${COMPILE.r} ${.IMPSRC}
++.r.a:
++	${COMPILE.r} ${.IMPSRC}
++	${AR} ${ARFLAGS} $@ $*.o
++	rm -f $*.o
++
++# Pascal
++.p:
++	${LINK.p} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
++.p.o:
++	${COMPILE.p} ${.IMPSRC}
++.p.a:
++	${COMPILE.p} ${.IMPSRC}
++	${AR} ${ARFLAGS} $@ $*.o
++	rm -f $*.o
++
++# Assembly
++.s:
++	${LINK.s} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
++.s.o:
++	${COMPILE.s} ${.IMPSRC}
++.s.a:
++	${COMPILE.s} ${.IMPSRC}
++	${AR} ${ARFLAGS} $@ $*.o
++	rm -f $*.o
++.S:
++	${LINK.S} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}
++.S.o:
++	${COMPILE.S} ${.IMPSRC}
++.S.a:
++	${COMPILE.S} ${.IMPSRC}
++	${AR} ${ARFLAGS} $@ $*.o
++	rm -f $*.o
++
++# Lex
++.l:
++	${LEX.l} ${.IMPSRC}
++	${LINK.c} -o ${.TARGET} lex.yy.c ${LDLIBS} -ll
++	rm -f lex.yy.c
++.l.c:
++	${LEX.l} ${.IMPSRC}
++	mv lex.yy.c ${.TARGET}
++.l.o:
++	${LEX.l} ${.IMPSRC}
++	${COMPILE.c} -o ${.TARGET} lex.yy.c 
++	rm -f lex.yy.c
++
++# Yacc
++.y:
++	${YACC.y} ${.IMPSRC}
++	${LINK.c} -o ${.TARGET} y.tab.c ${LDLIBS}
++	rm -f y.tab.c
++.y.c:
++	${YACC.y} ${.IMPSRC}
++	mv y.tab.c ${.TARGET}
++.y.o:
++	${YACC.y} ${.IMPSRC}
++	${COMPILE.c} -o ${.TARGET} y.tab.c
++	rm -f y.tab.c
++
++# Shell
++.sh:
++	rm -f ${.TARGET}
++	cp ${.IMPSRC} ${.TARGET}
diff --git a/package/pmake/pmake-110_mkdep.patch b/package/pmake/pmake-110_mkdep.patch
new file mode 100644
index 0000000..70435cc
--- /dev/null
+++ b/package/pmake/pmake-110_mkdep.patch
@@ -0,0 +1,230 @@
+Patch vampirised from Debian's package pmake_1.111-3.2:
+    http://snapshot.debian.org/archive/debian/20120601T033558Z/pool/main/p/pmake/
+
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+
+--- pmake-1.111.orig/mkdep
++++ pmake-1.111/mkdep
+@@ -0,0 +1,113 @@
++#!/bin/sh -
++#
++#	$OpenBSD: mkdep.gcc.sh,v 1.8 1998/09/02 06:40:07 deraadt Exp $
++#	$NetBSD: mkdep.gcc.sh,v 1.9 1994/12/23 07:34:59 jtc Exp $
++#
++# Copyright (c) 1991, 1993
++#	The Regents of the University of California.  All rights reserved.
++#
++# Redistribution and use in source and binary forms, with or without
++# modification, are permitted provided that the following conditions
++# are met:
++# 1. Redistributions of source code must retain the above copyright
++#    notice, this list of conditions and the following disclaimer.
++# 2. Redistributions in binary form must reproduce the above copyright
++#    notice, this list of conditions and the following disclaimer in the
++#    documentation and/or other materials provided with the distribution.
++# 3. All advertising materials mentioning features or use of this software
++#    must display the following acknowledgement:
++#	This product includes software developed by the University of
++#	California, Berkeley and its contributors.
++# 4. Neither the name of the University nor the names of its contributors
++#    may be used to endorse or promote products derived from this software
++#    without specific prior written permission.
++#
++# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++# ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++# SUCH DAMAGE.
++#
++#	@(#)mkdep.gcc.sh	8.1 (Berkeley) 6/6/93
++#
++
++D=.depend			# default dependency file is .depend
++append=0
++pflag=
++
++while :
++	do case "$1" in
++		# -a appends to the depend file
++		-a)
++			append=1
++			shift ;;
++
++		# -f allows you to select a makefile name
++		-f)
++			D=$2
++			shift; shift ;;
++
++		# the -p flag produces "program: program.c" style dependencies
++		# so .o's don't get produced
++		-p)
++			pflag=p
++			shift ;;
++		*)
++			break ;;
++	esac
++done
++
++if [ $# = 0 ] ; then
++	echo 'usage: mkdep [-p] [-f depend_file] [cc_flags] file ...'
++	exit 1
++fi
++
++DTMP=/tmp/mkdep$$
++TMP=$DTMP/mkdep
++
++um=`umask`
++umask 022
++if ! mkdir $DTMP ; then
++	echo failed to create tmp dir $DTMP
++	exit 1
++fi
++
++umask $um
++trap 'rm -rf $DTMP ; trap 2 ; kill -2 $$' 1 2 3 13 15
++
++if [ x$pflag = x ]; then
++	${CC:-cc} -M "$@" | sed -e 's; \./; ;g' > $TMP
++else
++	${CC:-cc} -M "$@" | sed -e 's;\.o :; :;' -e 's; \./; ;g' > $TMP
++fi
++
++if [ $? != 0 ]; then
++	echo 'mkdep: compile failed.'
++	rm -rf $DTMP
++	exit 1
++fi
++
++if [ $append = 1 ]; then
++	cat $TMP >> $D
++	if [ $? != 0 ]; then
++		echo 'mkdep: append failed.'
++		rm -rf $DTMP
++		exit 1
++	fi
++else
++	mv $TMP $D
++	if [ $? != 0 ]; then
++		echo 'mkdep: rename failed.'
++		rm -rf $DTMP
++		exit 1
++	fi
++fi
++
++rm -rf $DTMP
++exit 0
+--- pmake-1.111.orig/mkdep.1
++++ pmake-1.111/mkdep.1
+@@ -0,0 +1,106 @@
++.\"	$OpenBSD: mkdep.1,v 1.3 1998/09/26 19:55:08 aaron Exp $
++.\"	$NetBSD: mkdep.1,v 1.3 1994/12/23 07:34:56 jtc Exp $
++.\"
++.\" Copyright (c) 1987, 1990, 1993
++.\"	The Regents of the University of California.  All rights reserved.
++.\"
++.\" Redistribution and use in source and binary forms, with or without
++.\" modification, are permitted provided that the following conditions
++.\" are met:
++.\" 1. Redistributions of source code must retain the above copyright
++.\"    notice, this list of conditions and the following disclaimer.
++.\" 2. Redistributions in binary form must reproduce the above copyright
++.\"    notice, this list of conditions and the following disclaimer in the
++.\"    documentation and/or other materials provided with the distribution.
++.\" 3. All advertising materials mentioning features or use of this software
++.\"    must display the following acknowledgement:
++.\"	This product includes software developed by the University of
++.\"	California, Berkeley and its contributors.
++.\" 4. Neither the name of the University nor the names of its contributors
++.\"    may be used to endorse or promote products derived from this software
++.\"    without specific prior written permission.
++.\"
++.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++.\" SUCH DAMAGE.
++.\"
++.\"     @(#)mkdep.1	8.1 (Berkeley) 6/6/93
++.\"
++.Dd June 6, 1993
++.Dt MKDEP 1
++.Os BSD 4.2
++.Sh NAME
++.Nm mkdep
++.Nd construct Makefile dependency list
++.Sh SYNOPSIS
++.Nm mkdep
++.Op Fl ap
++.Op Fl f Ar file
++.Op Ar flags
++.Ar file Op Ar ...
++.Sh DESCRIPTION
++.Nm mkdep
++takes a set of flags for the C compiler and a list
++of C source files as arguments and constructs a set of include
++file dependencies which are written into the file ``.depend''.
++An example of its use in a Makefile might be:
++.Bd -literal -offset indent
++CFLAGS= -O -I../include
++SRCS= file1.c file2.c
++
++depend:
++	mkdep ${CFLAGS} ${SRCS}
++.Ed
++.Pp
++where the macro SRCS is the list of C source files and the macro
++CFLAGS is the list of flags for the C compiler.
++.Pp
++The options are as follows:
++.Bl -tag -width Ds
++.It Fl a
++Append to the output file,
++so that multiple
++.Nm mkdep Ns 's
++may be run from a single Makefile.
++.It Fl f Ar file
++Write the include file dependencies to 
++.Ar file ,
++instead of the default ``.depend''.
++.It Fl p
++Cause
++.Nm mkdep
++to produce dependencies of the form:
++.Bd -literal -offset indent
++program: program.c
++.Ed
++.Pp
++so that subsequent makes will produce
++.Ar program
++directly from its C module rather than using an intermediate
++.Pa \&.o
++module.
++This is useful for programs whose source is contained in a single
++module.
++.El
++.Sh SEE ALSO
++.Xr cc 1 ,
++.Xr cpp 1 ,
++.Xr make 1
++.Sh FILES
++.Bl -tag -width .depend -compact
++.It Pa .depend
++file containing list of dependencies
++.El
++.Sh HISTORY
++The
++.Nm mkdep
++command appeared in
++.Bx 4.3 Tahoe .
diff --git a/package/pmake/pmake-120_fixes.patch b/package/pmake/pmake-120_fixes.patch
new file mode 100644
index 0000000..5a57e4e
--- /dev/null
+++ b/package/pmake/pmake-120_fixes.patch
@@ -0,0 +1,266 @@
+Patch vampirised from Debian's package pmake_1.111-3.2:
+    http://snapshot.debian.org/archive/debian/20120601T033558Z/pool/main/p/pmake/
+
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+
+--- pmake-1.111.orig/arch.c
++++ pmake-1.111/arch.c
+@@ -173,7 +173,7 @@
+ static FILE *ArchFindMember(char *, char *, struct ar_hdr *, const char *);
+ #if defined(__svr4__) || defined(__SVR4) || defined(__ELF__)
+ #define SVR4ARCHIVES
+-static int ArchSVR4Entry(Arch *, char *, size_t, FILE *);
++static int ArchSVR4Entry(Arch *, char **, size_t, FILE *);
+ #endif
+ 
+ #ifdef CLEANUP
+@@ -535,7 +535,7 @@
+     Arch	  *ar;	      /* Archive descriptor */
+     Hash_Entry	  *he;	      /* Entry containing member's description */
+     struct ar_hdr arh;        /* archive-member header for reading archive */
+-    char	  memName[MAXPATHLEN+1];
++    char	  *memName = NULL; 
+     	    	    	    /* Current member name while hashing. */
+ 
+     /*
+@@ -617,7 +617,6 @@
+     ar->fnametab = NULL;
+     ar->fnamesize = 0;
+     Hash_InitTable(&ar->members, -1);
+-    memName[AR_MAX_NAME_LEN] = '\0';
+ 
+     while (fread ((char *)&arh, sizeof (struct ar_hdr), 1, arch) == 1) {
+ 	if (strncmp ( arh.ar_fmag, ARFMAG, sizeof (arh.ar_fmag)) != 0) {
+@@ -636,10 +635,9 @@
+ 	    arh.ar_size[sizeof(arh.ar_size)-1] = '\0';
+ 	    size = (int) strtol(arh.ar_size, NULL, 10);
+ 
+-	    (void) strncpy (memName, arh.ar_name, sizeof(arh.ar_name));
+-	    for (cp = &memName[AR_MAX_NAME_LEN]; *cp == ' '; cp--) {
+-		continue;
+-	    }
++	    memName = estrdup(arh.ar_name);
++
++	    for(cp = strchr(memName, 0)-1; *cp == ' '; cp--);
+ 	    cp[1] = '\0';
+ 
+ #ifdef SVR4ARCHIVES
+@@ -650,7 +648,7 @@
+ 		/*
+ 		 * svr4 magic mode; handle it
+ 		 */
+-		switch (ArchSVR4Entry(ar, memName, size, arch)) {
++		switch (ArchSVR4Entry(ar, &memName, size, arch)) {
+ 		case -1:  /* Invalid data */
+ 		    goto badarch;
+ 		case 0:	  /* List of files entry */
+@@ -675,8 +673,8 @@
+ 
+ 		unsigned int elen = atoi(&memName[sizeof(AR_EFMT1)-1]);
+ 
+-		if (elen > MAXPATHLEN)
+-			goto badarch;
++		memName = erealloc(memName, elen+1);
++		
+ 		if (fread (memName, elen, 1, arch) != 1)
+ 			goto badarch;
+ 		memName[elen] = '\0';
+@@ -692,6 +690,9 @@
+ 	    memcpy ((Address)Hash_GetValue (he), (Address)&arh,
+ 		sizeof (struct ar_hdr));
+ 	}
++	/* time to free memName */
++	free(memName);
++
+ 	fseek (arch, (size + 1) & ~1, SEEK_CUR);
+     }
+ 
+@@ -742,15 +743,15 @@
+  *-----------------------------------------------------------------------
+  */
+ static int
+-ArchSVR4Entry(Arch *ar, char *name, size_t size, FILE *arch)
++ArchSVR4Entry(Arch *ar, char **name, size_t size, FILE *arch)
+ {
+ #define ARLONGNAMES1 "//"
+ #define ARLONGNAMES2 "/ARFILENAMES"
+     size_t entry;
+     char *ptr, *eptr;
+ 
+-    if (strncmp(name, ARLONGNAMES1, sizeof(ARLONGNAMES1) - 1) == 0 ||
+-	strncmp(name, ARLONGNAMES2, sizeof(ARLONGNAMES2) - 1) == 0) {
++    if (strncmp(*name, ARLONGNAMES1, sizeof(ARLONGNAMES1) - 1) == 0 ||
++	strncmp(*name, ARLONGNAMES2, sizeof(ARLONGNAMES2) - 1) == 0) {
+ 
+ 	if (ar->fnametab != NULL) {
+ 	    if (DEBUG(ARCH)) {
+@@ -793,30 +794,30 @@
+ 	return 0;
+     }
+ 
+-    if (name[1] == ' ' || name[1] == '\0')
++    if ((*name)[1] == ' ' || (*name)[1] == '\0')
+ 	return 2;
+ 
+-    entry = (size_t) strtol(&name[1], &eptr, 0);
+-    if ((*eptr != ' ' && *eptr != '\0') || eptr == &name[1]) {
++    entry = (size_t) strtol(&(*name)[1], &eptr, 0);
++    if ((*eptr != ' ' && *eptr != '\0') || eptr == &(*name)[1]) {
+ 	if (DEBUG(ARCH)) {
+-	    printf("Could not parse SVR4 name %s\n", name);
++	    printf("Could not parse SVR4 name %s\n", *name);
+ 	}
+ 	return 2;
+     }
+     if (entry >= ar->fnamesize) {
+ 	if (DEBUG(ARCH)) {
+ 	    printf("SVR4 entry offset %s is greater than %lu\n",
+-		   name, (u_long)ar->fnamesize);
++		   *name, (u_long)ar->fnamesize);
+ 	}
+ 	return 2;
+     }
+ 
+     if (DEBUG(ARCH)) {
+-	printf("Replaced %s with %s\n", name, &ar->fnametab[entry]);
++	printf("Replaced %s with %s\n", *name, &ar->fnametab[entry]);
+     }
+ 
+-    (void) strncpy(name, &ar->fnametab[entry], MAXPATHLEN);
+-    name[MAXPATHLEN] = '\0';
++		free(*name);
++		*name = estrdup(&ar->fnametab[entry]);
+     return 1;
+ }
+ #endif
+@@ -926,12 +927,9 @@
+ 		isdigit((unsigned char)arhPtr->ar_name[sizeof(AR_EFMT1) - 1])) {
+ 
+ 		unsigned int elen = atoi(&arhPtr->ar_name[sizeof(AR_EFMT1)-1]);
+-		char ename[MAXPATHLEN];
++		char *ename = NULL;
+ 
+-		if (elen > MAXPATHLEN) {
+-			fclose (arch);
+-			return NULL;
+-		}
++		ename = emalloc(elen+1);
+ 		if (fread (ename, elen, 1, arch) != 1) {
+ 			fclose (arch);
+ 			return NULL;
+@@ -945,6 +943,8 @@
+ 			fseek (arch, -sizeof(struct ar_hdr) - elen, SEEK_CUR);
+ 			return (arch);
+ 		}
++		/* time to free ename */
++		free(ename);
+ 		fseek (arch, -elen, SEEK_CUR);
+ 		goto skip;
+ 	} else
+--- pmake-1.111.orig/buf.c
++++ pmake-1.111/buf.c
+@@ -192,7 +192,8 @@
+ {
+ 
+     if (numBytesPtr != (int *)NULL) {
+-	*numBytesPtr = bp->inPtr - bp->outPtr;
++	intptr_t num = bp->inPtr - bp->outPtr;
++	*numBytesPtr = num;
+     }
+ 
+     return (bp->outPtr);
+--- pmake-1.111.orig/compat.c
++++ pmake-1.111/compat.c
+@@ -130,7 +130,7 @@
+ 
+     Shell_Init();		/* setup default shell */
+     
+-    for (cp = "#=|^(){};&<>*?[]:$`\\\n"; *cp != '\0'; cp++) {
++    for (cp = "~#=|^(){};&<>*?[]:$`\\\n"; *cp != '\0'; cp++) {
+ 	meta[(unsigned char) *cp] = 1;
+     }
+     /*
+@@ -498,7 +498,7 @@
+ 	    }
+ 	    goto cohorts;
+ 	} else if (DEBUG(MAKE)) {
+-	    printf("out-of-date.\n");
++	    printf("out-of-date\n");
+ 	}
+ 
+ 	/*
+--- pmake-1.111.orig/job.c
++++ pmake-1.111/job.c
+@@ -2162,7 +2162,8 @@
+ 	    (void) fprintf(stdout, "Remaking `%s'\n", gn->name);
+   	    (void) fflush(stdout);
+ 	    (void) strcpy(job->outFile, TMPPAT);
+-	    job->outFd = mkstemp(job->outFile);
++	    if ((job->outFd = mkstemp(job->outFile)) == -1)
++	       Punt("Cannot create temp file: %s", strerror(errno));
+ 	    (void) fcntl(job->outFd, F_SETFD, 1);
+ 	}
+     }
+--- pmake-1.111.orig/main.c
++++ pmake-1.111/main.c
+@@ -825,7 +825,10 @@
+ 	 * in a different format).
+ 	 */
+ #ifdef POSIX
+-	Main_ParseArgLine(getenv("MAKEFLAGS"));
++	/*
++	 * If we are called by GNU make, do not read MAKEFLAGS.
++	 */
++	Main_ParseArgLine(getenv(getenv("MAKELEVEL") ? "MAKE" : "MAKEFLAGS"));
+ #else
+ 	Main_ParseArgLine(getenv("MAKE"));
+ #endif
+@@ -1149,6 +1152,9 @@
+ 	}
+ 	free(path);
+ 	return(TRUE);
++	/* `path' is not freed before return because its
++	 * pointer is stored somewhere else
++	 */
+ }
+ 
+ 
+--- pmake-1.111.orig/make.1
++++ pmake-1.111/make.1
+@@ -33,7 +33,7 @@
+ .Dt MAKE 1
+ .Os
+ .Sh NAME
+-.Nm make
++.Nm pmake
+ .Nd maintain program dependencies
+ .Sh SYNOPSIS
+ .Nm
+@@ -1233,7 +1233,7 @@
+ .It Ic defined
+ Takes a variable name as an argument and evaluates to true if the variable
+ has been defined.
+-.It Ic make
++.It Ic pmake
+ Takes a target name as an argument and evaluates to true if the target
+ was specified as part of
+ .Nm Ns 's
+@@ -1602,7 +1602,6 @@
+ .Sh SEE ALSO
+ .Xr mkdep 1
+ .Sh HISTORY
+-A
+-.Nm
++A make
+ command appeared in
+ .At v7 .
+--- pmake-1.111.orig/var.c
++++ pmake-1.111/var.c
+@@ -124,6 +124,7 @@
+  */
+ 
+ #ifndef NO_REGEX
++#include    <stdio.h>
+ #include    <sys/types.h>
+ #include    <regex.h>
+ #endif
diff --git a/package/pmake/pmake-130_maxpathlen.patch b/package/pmake/pmake-130_maxpathlen.patch
new file mode 100644
index 0000000..fa8fd5f
--- /dev/null
+++ b/package/pmake/pmake-130_maxpathlen.patch
@@ -0,0 +1,39 @@
+Patch vampirised from Debian's package pmake_1.111-3.2:
+    http://snapshot.debian.org/archive/debian/20120601T033558Z/pool/main/p/pmake/
+
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+
+diff -u pmake-1.111/main.c pmake-1.111/main.c
+--- pmake-1.111/main.c
++++ pmake-1.111/main.c
+@@ -636,6 +636,17 @@
+ 	char found_path[MAXPATHLEN + 1];	/* for searching for sys.mk */
+ 	struct timeval rightnow;		/* to initialize random seed */
+ 
++#ifdef MAXPATHLEN_UNDEFINED
++	if (sysconf(_PC_PATH_MAX) > MAXPATHLEN) {
++		fprintf(stderr, "This operating system runs with "
++		    "sysconf(_PC_PATH_MAX) > MAXPATHLEN\n(%ld > %ld). "
++		    "Please change the guesstimated value at the bottom\n"
++		    "of 'make.h' and recompile, or reduce the actual "
++		    "value.\n", sysconf(_PC_PATH_MAX), (long)MAXPATHLEN);
++		return (255);
++	}
++#endif
++
+ 	/*
+ 	 * Set the seed to produce a different random sequences
+ 	 * on each program execution.
+--- pmake-1.111.orig/make.h
++++ pmake-1.111/make.h
+@@ -476,4 +476,10 @@
+ #define MAX(a, b) ((a > b) ? a : b)
+ #endif
+ 
++/* maybe Debian GNU/HURD */
++#ifndef MAXPATHLEN
++#define MAXPATHLEN	4096	/* some sensible value */
++#define MAXPATHLEN_UNDEFINED	/* triggers check in main.c */
++#endif
++
+ #endif /* _MAKE_H_ */
diff --git a/package/pmake/pmake-140_multiarch.patch b/package/pmake/pmake-140_multiarch.patch
new file mode 100644
index 0000000..aef8fd3
--- /dev/null
+++ b/package/pmake/pmake-140_multiarch.patch
@@ -0,0 +1,354 @@
+Patch vampirised from Debian's package pmake_1.111-3.2:
+    http://snapshot.debian.org/archive/debian/20120601T033558Z/pool/main/p/pmake/
+
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+
+---
+ Makefile.boot  |    5 +-
+ arch.c         |    9 ---
+ main.c         |   31 ++++++++++++
+ make.1         |    1 
+ mk/bsd.lib.mk  |    8 +++
+ mk/bsd.own.mk  |    2 
+ mk/bsd.prog.mk |  136 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 7 files changed, 179 insertions(+), 13 deletions(-)
+
+--- a/arch.c
++++ b/arch.c
+@@ -146,15 +146,6 @@ __RCSID("$NetBSD: arch.c,v 1.44 2005/02/
+ #include    "dir.h"
+ #include    "config.h"
+ 
+-#ifdef TARGET_MACHINE
+-#undef MAKE_MACHINE
+-#define MAKE_MACHINE TARGET_MACHINE
+-#endif
+-#ifdef TARGET_MACHINE_ARCH
+-#undef MAKE_MACHINE_ARCH
+-#define MAKE_MACHINE_ARCH TARGET_MACHINE_ARCH
+-#endif
+-
+ static Lst	  archives;   /* Lst of archives we've already examined */
+ 
+ typedef struct Arch {
+--- a/main.c
++++ b/main.c
+@@ -146,6 +146,19 @@ __RCSID("$NetBSD: main.c,v 1.111 2005/06
+ #define	DEFMAXLOCAL DEFMAXJOBS
+ #endif	/* DEFMAXLOCAL */
+ 
++#ifdef TARGET_MACHINE
++#undef MAKE_MACHINE
++#define MAKE_MACHINE TARGET_MACHINE
++#endif
++#ifdef TARGET_MACHINE_ARCH
++#undef MAKE_MACHINE_ARCH
++#define MAKE_MACHINE_ARCH TARGET_MACHINE_ARCH
++#endif
++#ifdef TARGET_MACHINE_MULTIARCH
++#undef MAKE_MACHINE_MULTIARCH
++#define MAKE_MACHINE_MULTIARCH TARGET_MACHINE_MULTIARCH
++#endif
++
+ Lst			create;		/* Targets to be made */
+ time_t			now;		/* Time at start of make */
+ GNode			*DEFAULT;	/* .DEFAULT node */
+@@ -628,6 +641,7 @@ main(int argc, char **argv)
+ 	char mdpath[MAXPATHLEN];
+     	char *machine = getenv("MACHINE");
+ 	const char *machine_arch = getenv("MACHINE_ARCH");
++	const char *machine_multiarch = getenv("MACHINE_MULTIARCH");
+ 	char *syspath = getenv("MAKESYSPATH");
+ 	Lst sysMkPath;			/* Path of sys.mk */
+ 	char *cp = NULL, *start;
+@@ -711,8 +725,8 @@ main(int argc, char **argv)
+ 	 * so we can share an executable for similar machines.
+ 	 * (i.e. m68k: amiga hp300, mac68k, sun3, ...)
+ 	 *
+-	 * Note that both MACHINE and MACHINE_ARCH are decided at
+-	 * run-time.
++	 * Note that all of MACHINE, MACHINE_ARCH and MACHINE_MULTIARCH
++	 * are decided at run-time.
+ 	 */
+ 	if (!machine) {
+ #ifdef MAKE_NATIVE
+@@ -745,6 +759,18 @@ main(int argc, char **argv)
+ #endif
+ 	}
+ 
++	if (!machine_multiarch) {
++#ifndef MACHINE_MULTIARCH
++#ifdef MAKE_MACHINE_MULTIARCH
++	    machine_multiarch = MAKE_MACHINE_MULTIARCH;
++#else
++	    machine_multiarch = "unknown-unknown-unknown";
++#endif
++#else
++	    machine_multiarch = MACHINE_MULTIARCH;
++#endif
++	}
++
+ 	/*
+ 	 * Just in case MAKEOBJDIR wants us to do something tricky.
+ 	 */
+@@ -753,6 +779,7 @@ main(int argc, char **argv)
+ 	Var_Set(".CURDIR", curdir, VAR_GLOBAL, 0);
+ 	Var_Set("MACHINE", machine, VAR_GLOBAL, 0);
+ 	Var_Set("MACHINE_ARCH", machine_arch, VAR_GLOBAL, 0);
++	Var_Set("MACHINE_MULTIARCH", machine_multiarch, VAR_GLOBAL, 0);
+ #ifdef MAKE_VERSION
+ 	Var_Set("MAKE_VERSION", MAKE_VERSION, VAR_GLOBAL, 0);
+ #endif
+--- a/make.1
++++ b/make.1
+@@ -1569,6 +1569,7 @@ If no sources are specified, any previou
+ uses the following environment variables, if they exist:
+ .Ev MACHINE ,
+ .Ev MACHINE_ARCH ,
++.Ev MACHINE_MULTIARCH ,
+ .Ev MAKE ,
+ .Ev MAKEFLAGS ,
+ .Ev MAKEOBJDIR ,
+--- a/Makefile.boot
++++ b/Makefile.boot
+@@ -4,7 +4,8 @@
+ #
+ # You only want to use this if you aren't running NetBSD.
+ #
+-# modify MACHINE and MACHINE_ARCH as appropriate for your target architecture
++# modify MACHINE, MACHINE_ARCH and MACHINE_MULTIARCH as appropriate for
++# your target architecture
+ #
+ CC=gcc -O -g
+ 
+@@ -13,11 +14,13 @@ CC=gcc -O -g
+ 
+ MACHINE=i386
+ MACHINE_ARCH=i386
++MACHINE_MULTIARCH=i386-linux-gnu
+ # tested on HP-UX 10.20
+ #MAKE_MACHINE=hp700
+ #MAKE_MACHINE_ARCH=hppa
+ CFLAGS= -DTARGET_MACHINE=\"${MACHINE}\" \
+ 	-DTARGET_MACHINE_ARCH=\"${MACHINE_ARCH}\" \
++	-DTARGET_MACHINE_MULTIARCH=\"${MACHINE_MULTIARCH}\" \
+ 	-DMAKE_MACHINE=\"${MACHINE}\"
+ LIBS=
+ 
+--- a/mk/bsd.prog.mk
++++ b/mk/bsd.prog.mk
+@@ -19,8 +19,16 @@ CFLAGS+=	${COPTS}
+ 
+ # ELF platforms depend on crtbegin.o and crtend.o
+ .if ${OBJECT_FMT} == "ELF"
++.if exists(${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/crtbegin.o)
++LIBCRTBEGIN?=	${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/crtbegin.o
++.else
+ LIBCRTBEGIN?=	${DESTDIR}/usr/lib/crtbegin.o
++.endif
++.if exists(${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/crtend.o)
++LIBCRTEND?=	${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/crtend.o
++.else
+ LIBCRTEND?=	${DESTDIR}/usr/lib/crtend.o
++.endif
+ .else
+ LIBCRTBEGIN?=
+ LIBCRTEND?=
+@@ -28,38 +36,166 @@ LIBCRTEND?=
+ 
+ LIBCRT0?=	
+ 
++.if exists(${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libbz2.a)
++LIBBZ2?=	${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libbz2.a
++.else
+ LIBBZ2?=	${DESTDIR}/usr/lib/libbz2.a
++.endif
++.if exists(${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libc.a)
++LIBC?=		${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libc.a
++.else
+ LIBC?=		${DESTDIR}/usr/lib/libc.a
++.endif
++.if exists(${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libc_pic.a)
++LIBC_PIC?=	${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libc_pic.a
++.else
+ LIBC_PIC?=	${DESTDIR}/usr/lib/libc_pic.a
++.endif
++.if exists(${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libcompat.a)
++LIBCOMPAT?=	${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libcompat.a
++.else
+ LIBCOMPAT?=	${DESTDIR}/usr/lib/libcompat.a
++.endif
++.if exists(${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libcrypt.a)
++LIBCRYPT?=	${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libcrypt.a
++.else
+ LIBCRYPT?=	${DESTDIR}/usr/lib/libcrypt.a
++.endif
++.if exists(${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libcurses.a)
++LIBCURSES?=	${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libcurses.a
++.else
+ LIBCURSES?=	${DESTDIR}/usr/lib/libcurses.a
++.endif
++.if exists(${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libdbm.a)
++LIBDBM?=	${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libdbm.a
++.else
+ LIBDBM?=	${DESTDIR}/usr/lib/libdbm.a
++.endif
++.if exists(${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libdes.a)
++LIBDES?=	${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libdes.a
++.else
+ LIBDES?=	${DESTDIR}/usr/lib/libdes.a
++.endif
++.if exists(${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libedit.a)
++LIBEDIT?=	${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libedit.a
++.else
+ LIBEDIT?=	${DESTDIR}/usr/lib/libedit.a
++.endif
++.if exists(${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libgcc.a)
++LIBGCC?=	${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libgcc.a
++.else
+ LIBGCC?=	${DESTDIR}/usr/lib/libgcc.a
++.endif
++.if exists(${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libgnumalloc.a)
++LIBGNUMALLOC?=	${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libgnumalloc.a
++.else
+ LIBGNUMALLOC?=	${DESTDIR}/usr/lib/libgnumalloc.a
++.endif
++.if exists(${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libkdb.a)
++LIBKDB?=	${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libkdb.a
++.else
+ LIBKDB?=	${DESTDIR}/usr/lib/libkdb.a
++.endif
++.if exists(${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libkrb.a)
++LIBKRB?=	${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libkrb.a
++.else
+ LIBKRB?=	${DESTDIR}/usr/lib/libkrb.a
++.endif
++.if exists(${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libkvm.a)
++LIBKVM?=	${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libkvm.a
++.else
+ LIBKVM?=	${DESTDIR}/usr/lib/libkvm.a
++.endif
++.if exists(${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libl.a)
++LIBL?=		${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libl.a
++.else
+ LIBL?=		${DESTDIR}/usr/lib/libl.a
++.endif
++.if exists(${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libm.a)
++LIBM?=		${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libm.a
++.else
+ LIBM?=		${DESTDIR}/usr/lib/libm.a
++.endif
++.if exists(${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libmp.a)
++LIBMP?=		${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libmp.a
++.else
+ LIBMP?=		${DESTDIR}/usr/lib/libmp.a
++.endif
++.if exists(${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libntp.a)
++LIBNTP?=	${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libntp.a
++.else
+ LIBNTP?=	${DESTDIR}/usr/lib/libntp.a
++.endif
++.if exists(${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libobjc.a)
++LIBOBJC?=	${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libobjc.a
++.else
+ LIBOBJC?=	${DESTDIR}/usr/lib/libobjc.a
++.endif
++.if exists(${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libpc.a)
++LIBPC?=		${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libpc.a
++.else
+ LIBPC?=		${DESTDIR}/usr/lib/libpc.a
++.endif
++.if exists(${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libpcap.a)
++LIBPCAP?=	${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libpcap.a
++.else
+ LIBPCAP?=	${DESTDIR}/usr/lib/libpcap.a
++.endif
++.if exists(${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libplot.a)
++LIBPLOT?=	${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libplot.a
++.else
+ LIBPLOT?=	${DESTDIR}/usr/lib/libplot.a
++.endif
++.if exists(${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libposix.a)
++LIBPOSIX?=	${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libposix.a
++.else
+ LIBPOSIX?=	${DESTDIR}/usr/lib/libposix.a
++.endif
++.if exists(${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libresolv.a)
++LIBRESOLV?=	${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libresolv.a
++.else
+ LIBRESOLV?=	${DESTDIR}/usr/lib/libresolv.a
++.endif
++.if exists(${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/librpcsvc.a)
++LIBRPCSVC?=	${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/librpcsvc.a
++.else
+ LIBRPCSVC?=	${DESTDIR}/usr/lib/librpcsvc.a
++.endif
++.if exists(${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libskey.a)
++LIBSKEY?=	${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libskey.a
++.else
+ LIBSKEY?=	${DESTDIR}/usr/lib/libskey.a
++.endif
++.if exists(${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libtermcap.a)
++LIBTERMCAP?=	${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libtermcap.a
++.else
+ LIBTERMCAP?=	${DESTDIR}/usr/lib/libtermcap.a
++.endif
++.if exists(${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libtelnet.a)
++LIBTELNET?=	${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libtelnet.a
++.else
+ LIBTELNET?=	${DESTDIR}/usr/lib/libtelnet.a
++.endif
++.if exists(${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libutil.a)
++LIBUTIL?=	${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libutil.a
++.else
+ LIBUTIL?=	${DESTDIR}/usr/lib/libutil.a
++.endif
++.if exists(${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libwrap.a)
++LIBWRAP?=	${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libwrap.a
++.else
+ LIBWRAP?=	${DESTDIR}/usr/lib/libwrap.a
++.endif
++.if exists(${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/liby.a)
++LIBY?=		${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/liby.a
++.else
+ LIBY?=		${DESTDIR}/usr/lib/liby.a
++.endif
++.if exists(${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libz.a)
++LIBZ?=		${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/libz.a
++.else
+ LIBZ?=		${DESTDIR}/usr/lib/libz.a
++.endif
+ 
+ .if defined(SHAREDSTRINGS)
+ CLEANFILES+=strings
+--- a/mk/bsd.lib.mk
++++ b/mk/bsd.lib.mk
+@@ -115,9 +115,17 @@ APICFLAGS?= -k
+ .if ${OBJECT_FMT} == "ELF"
+ SHLIB_SOVERSION=${SHLIB_MAJOR}
+ SHLIB_SHFLAGS=-soname lib${LIB}.so.${SHLIB_SOVERSION}
++.if exists(${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/crtbeginS.o)
++SHLIB_LDSTARTFILE= ${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/crtbeginS.o
++.else
+ SHLIB_LDSTARTFILE= ${DESTDIR}/usr/lib/crtbeginS.o
++.endif
++.if exists(${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/crtendS.o)
++SHLIB_LDENDFILE= ${DESTDIR}/usr/lib/${MACHINE_MULTIARCH}/crtendS.o
++.else
+ SHLIB_LDENDFILE= ${DESTDIR}/usr/lib/crtendS.o
+ .endif
++.endif
+ 
+ CFLAGS+=	${COPTS}
+ 
+--- a/mk/bsd.own.mk
++++ b/mk/bsd.own.mk
+@@ -42,7 +42,7 @@ INFOGRP?=	root
+ INFOOWN?=	root
+ INFOMODE?=	${NONBINMODE}
+ 
+-LIBDIR?=	/usr/lib
++LIBDIR?=	/usr/lib/${MACHINE_MULTIARCH}
+ LINTLIBDIR?=	/usr/libdata/lint
+ LIBGRP?=	${BINGRP}
+ LIBOWN?=	${BINOWN}
diff --git a/package/pmake/pmake-150_mktemp.patch b/package/pmake/pmake-150_mktemp.patch
new file mode 100644
index 0000000..5ccb2a8
--- /dev/null
+++ b/package/pmake/pmake-150_mktemp.patch
@@ -0,0 +1,31 @@
+Patch vampirised from Debian's package pmake_1.111-3.2:
+    http://snapshot.debian.org/archive/debian/20120601T033558Z/pool/main/p/pmake/
+
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+
+Index: pmake-1.111/mk/bsd.lib.mk
+===================================================================
+--- pmake-1.111.orig/mk/bsd.lib.mk	2011-05-29 15:38:35.843998781 +0200
++++ pmake-1.111/mk/bsd.lib.mk	2011-05-29 15:39:16.091998780 +0200
+@@ -299,7 +299,7 @@
+ 
+ .if defined(SRCS)
+ afterdepend: .depend
+-	@(TMP=/tmp/_depend$$$$; \
++	@(TMP=`mktemp -t _dependXXXXXXXXXX` || exit $$?; \
+ 	    sed -e 's/^\([^\.]*\).o[ ]*:/\1.o \1.po \1.so \1.ln:/' \
+ 	      < .depend > $$TMP; \
+ 	    mv $$TMP .depend)
+Index: pmake-1.111/mk/bsd.prog.mk
+===================================================================
+--- pmake-1.111.orig/mk/bsd.prog.mk	2011-05-29 15:39:21.999998780 +0200
++++ pmake-1.111/mk/bsd.prog.mk	2011-05-29 15:39:30.923998779 +0200
+@@ -260,7 +260,7 @@
+ 
+ .if defined(SRCS)
+ afterdepend: .depend
+-	@(TMP=/tmp/_depend$$$$; \
++	@(TMP=`mktemp -t _dependXXXXXXXXXX` || exit $$?; \
+ 	    sed -e 's/^\([^\.]*\).o[ ]*:/\1.o \1.ln:/' \
+ 	      < .depend > $$TMP; \
+ 	    mv $$TMP .depend)
diff --git a/package/pmake/pmake.mk b/package/pmake/pmake.mk
new file mode 100644
index 0000000..efd36f5
--- /dev/null
+++ b/package/pmake/pmake.mk
@@ -0,0 +1,46 @@
+#############################################################
+#
+# pmake
+#
+##############################################################
+
+PMAKE_VERSION       = 1.111
+PMAKE_SOURCE        = pmake_$(PMAKE_VERSION).orig.tar.gz
+PMAKE_SITE          = http://snapshot.debian.org/archive/debian/20120601T033558Z/pool/main/p/pmake
+PMAKE_LICENSE       = BSD-3c BSD-4c
+# No license file. License texts are spread in the boilerplates
+# of each individual source files; some are BSD-3c, some BSD-4c.
+
+# CFLAGS vampirised from Debian's rules, adapted to buildroot variables
+HOST_PMAKE_CFLAGS = -O2 -g -Wall -D__COPYRIGHT\(x\)= -D__RCSID\(x\)= -I.        \
+                -DMACHINE=\\\"buildroot\\\"                                 \
+                -DMACHINE_ARCH=\\\"$(ARCH)\\\" -DMACHINE_MULTIARCH=\\\"\\\" \
+                -DHAVE_SETENV -DHAVE_STRERROR -DHAVE_STRDUP -DHAVE_STRFTIME \
+                -DHAVE_VSNPRINTF -D_GNU_SOURCE -Wno-unused
+
+define HOST_PMAKE_BUILD_CMDS
+	$(MAKE) -C $(@D) -f Makefile.boot CFLAGS="$(HOST_PMAKE_CFLAGS)"
+endef
+
+# The generated file is named bmake, but we want pmake; but:
+#  - pmake uses support files (in  mk/)
+#  - it's not possible to tell pmake, at build-time, where to expect
+#    these support files, and pmake expects them in /usr/share/mk/
+#  - but pmake has an option to override that search path at runtime
+#  - so we install bmake as bmake
+#  - and we install a wraper named pmake that calls pmake with the
+#    appropriate search path
+define HOST_PMAKE_INSTALL_CMDS
+	$(INSTALL) -m 0755 $(@D)/bmake $(HOST_DIR)/usr/bin/bmake
+	$(INSTALL) -d -m 0755 $(HOST_DIR)/usr/share/pmake/mk
+	for mk in $(@D)/mk/*; do                                        \
+	    $(INSTALL) -m 0644 $${mk} $(HOST_DIR)/usr/share/pmake/mk;   \
+	done
+	printf '#!/bin/sh\nexec %s -m %s $$@\n' \
+	       $(HOST_DIR)/usr/bin/bmake        \
+	       $(HOST_DIR)/usr/share/pmake/mk   \
+	       >$(HOST_DIR)/usr/bin/pmake
+	chmod 0755 $(HOST_DIR)/usr/bin/pmake
+endef
+
+$(eval $(host-generic-package))
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 21/52] package/libbsd: new package
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (19 preceding siblings ...)
  2012-12-10 23:44 ` [Buildroot] [PATCH 20/52] package/pmake: add host pmake Yann E. MORIN
@ 2012-12-10 23:44 ` Yann E. MORIN
  2012-12-10 23:44 ` [Buildroot] [PATCH 22/52] package/libedit2: " Yann E. MORIN
                   ` (30 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:44 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 package/Config.in        |    1 +
 package/libbsd/Config.in |   10 ++++++++++
 package/libbsd/libbsd.mk |   21 +++++++++++++++++++++
 3 files changed, 32 insertions(+), 0 deletions(-)
 create mode 100644 package/libbsd/Config.in
 create mode 100644 package/libbsd/libbsd.mk

diff --git a/package/Config.in b/package/Config.in
index c90fcd8..e016378 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -508,6 +508,7 @@ source "package/libargtable2/Config.in"
 source "package/argp-standalone/Config.in"
 source "package/boost/Config.in"
 source "package/libatomic_ops/Config.in"
+source "package/libbsd/Config.in"
 source "package/libcap/Config.in"
 source "package/libcap-ng/Config.in"
 source "package/libdaemon/Config.in"
diff --git a/package/libbsd/Config.in b/package/libbsd/Config.in
new file mode 100644
index 0000000..7f2b55a
--- /dev/null
+++ b/package/libbsd/Config.in
@@ -0,0 +1,10 @@
+config BR2_PACKAGE_LIBBSD
+	bool "libbsd"
+	help
+	  This library provides useful functions commonly found on BSD
+	  systems, and lacking on others like GNU systems, thus making
+	  it easier to port projects with strong BSD origins, without
+	  needing to embed the same code over and over again on each
+	  project.
+	  
+	  http://libbsd.freedesktop.org/
diff --git a/package/libbsd/libbsd.mk b/package/libbsd/libbsd.mk
new file mode 100644
index 0000000..3af1002
--- /dev/null
+++ b/package/libbsd/libbsd.mk
@@ -0,0 +1,21 @@
+#############################################################
+#
+# libbsd
+#
+#############################################################
+
+LIBBSD_VERSION         = 0.4.2
+LIBBSD_SOURCE          = libbsd-$(LIBBSD_VERSION).tar.gz
+LIBBSD_SITE            = http://libbsd.freedesktop.org/releases
+LIBBSD_LICENSE         = BSD-3c MIT
+LIBBSD_LICENSE_FILES   = LICENSE
+
+# man-pages are BSD-4c, so that license only matters
+# if doc is kept in the target rootfs
+ifeq ($(BR2_HAVE_DOCUMENTATION),y)
+LIBBSD_LICENSE        += (libraries), BSD-4c (documentation)
+endif
+
+LIBBSD_INSTALL_STAGING = YES
+
+$(eval $(autotools-package))
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 22/52] package/libedit2: new package
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (20 preceding siblings ...)
  2012-12-10 23:44 ` [Buildroot] [PATCH 21/52] package/libbsd: new package Yann E. MORIN
@ 2012-12-10 23:44 ` Yann E. MORIN
  2012-12-10 23:44 ` [Buildroot] [PATCH 23/52] package/ceph: " Yann E. MORIN
                   ` (29 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:44 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/Config.in                                  |    1 +
 package/libedit2/Config.in                         |    9 +++
 package/libedit2/libedit2-01-Makefile.patch        |   25 +++++++
 package/libedit2/libedit2-02-el.c-issetugid.patch  |   24 ++++++
 package/libedit2/libedit2-03-el.c-MAXPATHLEN.patch |   40 +++++++++++
 .../libedit2/libedit2-04-readline.h-stdio.patch    |   17 +++++
 .../libedit2/libedit2-08-readline-history.h.patch  |   20 +++++
 .../libedit2/libedit2-10-define_SIZE_T_MAX.patch   |   18 +++++
 .../libedit2/libedit2-12-libedit-Makefile.patch    |   54 ++++++++++++++
 package/libedit2/libedit2-20-fortify.patch         |   23 ++++++
 package/libedit2/libedit2.mk                       |   75 ++++++++++++++++++++
 package/libedit2/libedit2.pc                       |   13 ++++
 12 files changed, 319 insertions(+), 0 deletions(-)
 create mode 100644 package/libedit2/Config.in
 create mode 100644 package/libedit2/libedit2-01-Makefile.patch
 create mode 100644 package/libedit2/libedit2-02-el.c-issetugid.patch
 create mode 100644 package/libedit2/libedit2-03-el.c-MAXPATHLEN.patch
 create mode 100644 package/libedit2/libedit2-04-readline.h-stdio.patch
 create mode 100644 package/libedit2/libedit2-08-readline-history.h.patch
 create mode 100644 package/libedit2/libedit2-10-define_SIZE_T_MAX.patch
 create mode 100644 package/libedit2/libedit2-12-libedit-Makefile.patch
 create mode 100644 package/libedit2/libedit2-20-fortify.patch
 create mode 100644 package/libedit2/libedit2.mk
 create mode 100644 package/libedit2/libedit2.pc

diff --git a/package/Config.in b/package/Config.in
index e016378..47c01db 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -538,6 +538,7 @@ endmenu
 menu "Text and terminal handling"
 source "package/enchant/Config.in"
 source "package/icu/Config.in"
+source "package/libedit2/Config.in"
 source "package/libiconv/Config.in"
 source "package/linenoise/Config.in"
 source "package/ncurses/Config.in"
diff --git a/package/libedit2/Config.in b/package/libedit2/Config.in
new file mode 100644
index 0000000..1e7b95d
--- /dev/null
+++ b/package/libedit2/Config.in
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_LIBEDIT2
+	bool "libedit2"
+	select BR2_PACKAGE_LIBBSD
+	select BR2_PACKAGE_NCURSES
+	help
+	  The editline library (from BSD) provides generic line editing
+	  and history functions. It slightly resembles GNU readline.
+	  
+	  http://ftp.netbsd.org/pub/NetBSD/NetBSD-release-5-0/src/lib/libedit/
diff --git a/package/libedit2/libedit2-01-Makefile.patch b/package/libedit2/libedit2-01-Makefile.patch
new file mode 100644
index 0000000..91645e4
--- /dev/null
+++ b/package/libedit2/libedit2-01-Makefile.patch
@@ -0,0 +1,25 @@
+ 01-Makefile.diff by Neal H Walfield <neal@cs.uml.edu> and
+ Gergely Nagy <algernon@debian.org>
+
+ Add the necessary includes and other things to the libedit
+ Makefile, so it will compile on GNU systems, with our supplied
+ glue code
+
+ Yann E. MORIN: patch from debian.
+
+--- a/libedit/Makefile
++++ b/libedit/Makefile
+@@ -1,6 +1,13 @@
+ #	$NetBSD: Makefile,v 1.36 2007/05/28 12:06:18 tls Exp $
+ #	@(#)Makefile	8.1 (Berkeley) 6/4/93
+ 
++OS!=	sh -c "case `uname -s` in GNU|GNU/*) echo GNU ;; *) uname -s ;; esac"
++
++.if ${OS} == GNU || ${OS} == Linux
++CFLAGS += -include bsd/bsd.h
++MKLINT=no
++.endif
++
+ USE_SHLIBDIR=	yes
+ 
+ WARNS=	3
diff --git a/package/libedit2/libedit2-02-el.c-issetugid.patch b/package/libedit2/libedit2-02-el.c-issetugid.patch
new file mode 100644
index 0000000..b060fa4
--- /dev/null
+++ b/package/libedit2/libedit2-02-el.c-issetugid.patch
@@ -0,0 +1,24 @@
+ 02-el.c-issetugid.diff by Gergely Nagy <algernon@debian.org>
+
+ issetugid(2) is not implemented on GNU systems, so #ifdef it out
+
+ Yann E. MORIN: patch from debian.
+
+--- a/libedit/el.c	2008-04-06 02:53:28.000000000 +1100
++++ b/libedit/el.c	2009-06-23 08:51:48.000000000 +1000
+@@ -479,12 +479,14 @@ el_source(EditLine *el, const char *fnam
+ 
+ 	fp = NULL;
+ 	if (fname == NULL) {
+-#ifdef HAVE_ISSETUGID
++#if 1
+ 		static const char elpath[] = "/.editrc";
+ 		char path[MAXPATHLEN];
+ 
++#ifndef __GLIBC__
+ 		if (issetugid())
+ 			return (-1);
++#endif
+ 		if ((ptr = getenv("HOME")) == NULL)
+ 			return (-1);
+ 		if (strlcpy(path, ptr, sizeof(path)) >= sizeof(path))
diff --git a/package/libedit2/libedit2-03-el.c-MAXPATHLEN.patch b/package/libedit2/libedit2-03-el.c-MAXPATHLEN.patch
new file mode 100644
index 0000000..aadd36a
--- /dev/null
+++ b/package/libedit2/libedit2-03-el.c-MAXPATHLEN.patch
@@ -0,0 +1,40 @@
+ 03-el.c-MAXPATHLEN.diff by Gergely Nagy <algernon@debian.org>
+
+ on systems without MAXPATHLEN, allocate memory dynamically
+
+ Yann E. MORIN: patch from debian.
+
+--- a/libedit/el.c	2009-06-23 08:57:04.000000000 +1000
++++ b/libedit/el.c	2009-06-23 08:57:30.000000000 +1000
+@@ -481,7 +481,11 @@ el_source(EditLine *el, const char *fnam
+ 	if (fname == NULL) {
+ #if 1
+ 		static const char elpath[] = "/.editrc";
++#ifdef MAXPATHLEN
+ 		char path[MAXPATHLEN];
++#else
++		char *path;
++#endif
+ 
+ #ifndef __GLIBC__
+ 		if (issetugid())
+@@ -489,10 +493,19 @@ el_source(EditLine *el, const char *fnam
+ #endif
+ 		if ((ptr = getenv("HOME")) == NULL)
+ 			return (-1);
++#ifndef MAXPATHLEN
++                path = (char *)malloc(strlen(ptr) + strlen(elpath) + 10);
++		if (path == NULL)
++			return (-1);
++		/* Always succeeds, since we have enough memory */
++		strcpy(path, ptr);
++		strcat(path, elpath);
++#else
+ 		if (strlcpy(path, ptr, sizeof(path)) >= sizeof(path))
+ 			return (-1);
+ 		if (strlcat(path, elpath, sizeof(path)) >= sizeof(path))
+ 			return (-1);
++#endif
+ 		fname = path;
+ #else
+ 		/*
diff --git a/package/libedit2/libedit2-04-readline.h-stdio.patch b/package/libedit2/libedit2-04-readline.h-stdio.patch
new file mode 100644
index 0000000..84257b9
--- /dev/null
+++ b/package/libedit2/libedit2-04-readline.h-stdio.patch
@@ -0,0 +1,17 @@
+ 04-readline.h-stdio.diff by Gergely Nagy <algernon@debian.org>
+
+ since readline.h uses types defined in stdio.h, that header should
+ be included
+
+ Yann E. MORIN: patch from debian.
+
+--- a/libedit/readline/readline.h	2008-04-29 16:53:01.000000000 +1000
++++ b/libedit/readline/readline.h	2009-06-23 08:35:58.000000000 +1000
+@@ -31,6 +31,7 @@
+ #ifndef _READLINE_H_
+ #define _READLINE_H_
+ 
++#include <stdio.h>
+ #include <sys/types.h>
+ 
+ /* list of readline stuff supported by editline library's readline wrapper */
diff --git a/package/libedit2/libedit2-08-readline-history.h.patch b/package/libedit2/libedit2-08-readline-history.h.patch
new file mode 100644
index 0000000..f30093f
--- /dev/null
+++ b/package/libedit2/libedit2-08-readline-history.h.patch
@@ -0,0 +1,20 @@
+ 08-readline-history.h.diff by Pawel Wiecek <coven@debian.org>
+ (compatibility with older versions)
+
+ Setting the global variable rl_inhibit_completion to 1 did indeed
+ disable completion, but the invoking key (e.g., <TAB>) was not
+ inserted directly into the input line as it should be.
+ This patch fixes this problem, and also declares rl_inhibit_completion
+ in readline.h for better readline compatibility.
+
+ Yann E. MORIN: patch from debian.
+
+--- a/libedit/readline/Makefile	2003-08-03 19:23:15.000000000 +1000
++++ b/libedit/readline/Makefile	2009-06-23 08:35:58.000000000 +1000
+@@ -10,4 +10,6 @@ INCS=		readline.h
+ INCSDIR=	/usr/include/readline
+ INCSYMLINKS=	readline.h ${INCSDIR}/history.h
+ 
++incinstall:: linksinstall
++
+ .include <bsd.prog.mk>
diff --git a/package/libedit2/libedit2-10-define_SIZE_T_MAX.patch b/package/libedit2/libedit2-10-define_SIZE_T_MAX.patch
new file mode 100644
index 0000000..c8ce262
--- /dev/null
+++ b/package/libedit2/libedit2-10-define_SIZE_T_MAX.patch
@@ -0,0 +1,18 @@
+ 10-define_SIZE_T_MAX.diff by Anibal Monsalve Salazar
+ define SIZE_T_MAX as UINT_MAX in limits.h
+
+ Yann E. MORIN: patch from debian.
+
+--- a/libedit/readline.c	2008-04-29 16:53:01.000000000 +1000
++++ a/libedit/readline.c	2008-06-14 23:54:16.000000000 +1000
+@@ -61,6 +61,10 @@ __RCSID("$NetBSD: readline.c,v 1.75 2008
+ #include "readline/readline.h"
+ #include "filecomplete.h"
+ 
++#ifndef SIZE_T_MAX
++#define SIZE_T_MAX UINT_MAX
++#endif
++
+ void rl_prep_terminal(int);
+ void rl_deprep_terminal(void);
+ 
diff --git a/package/libedit2/libedit2-12-libedit-Makefile.patch b/package/libedit2/libedit2-12-libedit-Makefile.patch
new file mode 100644
index 0000000..3234f33
--- /dev/null
+++ b/package/libedit2/libedit2-12-libedit-Makefile.patch
@@ -0,0 +1,54 @@
+ 12-libedit-Makefile.diff by Anibal Monsalve Salazar
+ without this patch I get the following message:
+ make: ${_MKTARGET_CREATE} expands to empty string
+
+ Yann E. MORIN: patch from debian.
+
+--- a/libedit/Makefile	2007-05-28 22:06:18.000000000 +1000
++++ a/libedit/Makefile	2008-06-15 13:53:50.000000000 +1000
+@@ -59,45 +59,37 @@ CLEANFILES+=	${AHDR} fcns.h help.h fcns.
+ SUBDIR=	readline
+ 
+ vi.h: vi.c makelist Makefile
+-	${_MKTARGET_CREATE}
+ 	${HOST_SH} ${LIBEDITDIR}/makelist -h ${LIBEDITDIR}/vi.c \
+ 	    > ${.TARGET}.tmp && \
+ 	    mv ${.TARGET}.tmp ${.TARGET}
+ 
+ emacs.h: emacs.c makelist Makefile
+-	${_MKTARGET_CREATE}
+ 	${HOST_SH} ${LIBEDITDIR}/makelist -h ${LIBEDITDIR}/emacs.c \
+ 	    > ${.TARGET}.tmp && \
+ 	    mv ${.TARGET}.tmp ${.TARGET}
+ 
+ common.h: common.c makelist Makefile
+-	${_MKTARGET_CREATE}
+ 	${HOST_SH} ${LIBEDITDIR}/makelist -h ${LIBEDITDIR}/common.c \
+ 	    > ${.TARGET}.tmp && \
+ 	    mv ${.TARGET}.tmp ${.TARGET}
+ 
+ fcns.h: ${AHDR} makelist Makefile
+-	${_MKTARGET_CREATE}
+ 	${HOST_SH} ${LIBEDITDIR}/makelist -fh ${AHDR} > ${.TARGET}.tmp && \
+ 	    mv ${.TARGET}.tmp ${.TARGET}
+ 
+ fcns.c: ${AHDR} fcns.h help.h makelist Makefile
+-	${_MKTARGET_CREATE}
+ 	${HOST_SH} ${LIBEDITDIR}/makelist -fc ${AHDR} > ${.TARGET}.tmp && \
+ 	    mv ${.TARGET}.tmp ${.TARGET}
+ 
+ help.c: ${ASRC} makelist Makefile
+-	${_MKTARGET_CREATE}
+ 	${HOST_SH} ${LIBEDITDIR}/makelist -bc ${ASRC} > ${.TARGET}.tmp && \
+ 	    mv ${.TARGET}.tmp ${.TARGET}
+ 
+ help.h: ${ASRC} makelist Makefile
+-	${_MKTARGET_CREATE}
+ 	${HOST_SH} ${LIBEDITDIR}/makelist -bh ${ASRC} > ${.TARGET}.tmp && \
+ 	    mv ${.TARGET}.tmp ${.TARGET}
+ 
+ editline.c: ${OSRCS} makelist Makefile
+-	${_MKTARGET_CREATE}
+ 	${HOST_SH} ${LIBEDITDIR}/makelist -e ${OSRCS:T} > ${.TARGET}.tmp && \
+ 	    mv ${.TARGET}.tmp ${.TARGET}
+ 
diff --git a/package/libedit2/libedit2-20-fortify.patch b/package/libedit2/libedit2-20-fortify.patch
new file mode 100644
index 0000000..0a41ce3
--- /dev/null
+++ b/package/libedit2/libedit2-20-fortify.patch
@@ -0,0 +1,23 @@
+http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=488456
+
+Patch by Kees Cook <kees@outflux.net>
+
+Yann E. MORIN: patch from debian.
+
+--- a/libedit/vi.c	2006-10-22 17:48:13.000000000 +1000
++++ b/libedit/vi.c	2009-06-23 08:35:58.000000000 +1000
+@@ -1012,8 +1012,12 @@ vi_histedit(EditLine *el, int c)
+ 	if (fd < 0)
+ 		return CC_ERROR;
+ 	cp = el->el_line.buffer;
+-	write(fd, cp, el->el_line.lastchar - cp +0u);
+-	write(fd, "\n", 1);
++	if (write(fd, cp, el->el_line.lastchar - cp +0u)<0 ||
++	    write(fd, "\n", 1)<0) {
++		close(fd);
++		unlink(tempfile);
++		return CC_ERROR;
++	}
+ 	pid = fork();
+ 	switch (pid) {
+ 	case -1:
diff --git a/package/libedit2/libedit2.mk b/package/libedit2/libedit2.mk
new file mode 100644
index 0000000..b9ca41e
--- /dev/null
+++ b/package/libedit2/libedit2.mk
@@ -0,0 +1,75 @@
+#############################################################
+#
+# libedit2
+#
+#############################################################
+
+# Note: libedit2 does not have a regular homepage, and it seems
+# there is no place where to download a tarball from. That's
+# why we use the Debian way-back machine.
+LIBEDIT2_VERSION_MAJOR   = 2
+LIBEDIT2_VERSION_MINOR   = 11-20080614
+LIBEDIT2_VERSION         = $(LIBEDIT2_VERSION_MAJOR).$(LIBEDIT2_VERSION_MINOR)
+LIBEDIT2_SOURCE          = libedit_$(LIBEDIT2_VERSION).orig.tar.bz2
+LIBEDIT2_SITE            = http://snapshot.debian.org/archive/debian/20120601T033558Z/pool/main/libe/libedit
+LIBEDIT2_SUBDIR          = libedit
+LIBEDIT2_INSTALL_STAGING = YES
+LIBEDIT2_DEPENDENCIES    = host-pmake libbsd ncurses
+
+define POST_PATCH_PERMISSIONS
+	chmod +x $(@D)/libedit/makelist
+endef
+
+LIBEDIT2_POST_PATCH_HOOKS += POST_PATCH_PERMISSIONS
+
+define LIBEDIT2_FIX_VIS_H_INCLUDE
+	$(SED) 's/^#include <vis.h>$$/#include <bsd\/vis.h>/;' $(@D)/libedit/filecomplete.c
+	$(SED) 's/^#include <vis.h>$$/#include <bsd\/vis.h>/;' $(@D)/libedit/history.c
+	$(SED) 's/^#include <vis.h>$$/#include <bsd\/vis.h>/;' $(@D)/libedit/readline.c
+endef
+LIBEDIT2_POST_PATCH_HOOKS += LIBEDIT2_FIX_VIS_H_INCLUDE
+
+LIBEDIT2_PMAKE_ARGS = MKPROFILE=no MKCATPAGES=no MLINKS= MANPAGES= NOGCCERROR=1         \
+                      SHLIB_SHFLAGS="-Wl,-soname,libedit.so.${LIBEDIT2_VERSION_MAJOR}"  \
+
+define LIBEDIT2_BUILD_CMDS
+	cd $(@D)/$(LIBEDIT2_SUBDIR); \
+	$(TARGET_CONFIGURE_OPTS) LDADD="-lbsd -lcurses" pmake $(LIBEDIT2_PMAKE_ARGS)
+endef
+
+LIBEDIT2_MAN_LINKS = el_init el_end el_reset el_gets el_getc el_push el_parse   \
+                     el_set el_get el_source el_resize el_line el_insertstr     \
+                     el_deletestr history_init history_end history
+
+# $1: DESTDIR to install into
+# Can't use pmake to install, it wants to be root. sigh... :-(
+define LIBEDIT2_INSTALL_CMDS
+	$(INSTALL) -D -m 0644 package/libedit2/libedit2.pc $(1)/usr/lib/pkgconfig/libedit2.pc
+	ln -sf libedit2.pc $(1)/usr/lib/pkgconfig/libedit.pc
+	$(INSTALL) -D -m 0644 $(@D)/libedit/libedit.a $(1)/usr/lib/libedit.a
+	$(INSTALL) -D -m 0644 $(@D)/libedit/libedit_pic.a $(1)/usr/lib/libedit_pic.a
+	$(INSTALL) -D -m 0644 $(@D)/libedit/libedit.so.2.11 $(1)/usr/lib/libedit.so.2.11
+	$(INSTALL) -D -m 0644 $(@D)/libedit/histedit.h $(1)/usr/include/histedit.h
+	ln -sf libedit.so.$(LIBEDIT2_VERSION) $(1)/usr/lib/libedit.so.$(LIBEDIT2_VERSION_MAJOR)
+	ln -sf libedit.so.$(LIBEDIT2_VERSION_MAJOR) $(1)/usr/lib/libedit.so
+	$(INSTALL) -D -m 0644 $(@D)/libedit/readline/readline.h $(1)/usr/include/editline/readline.h
+	if [ "$(BR2_HAVE_DOCUMENTATION)" = "y" ]; then                                              \
+	    $(INSTALL) -v -D -m 0644 $(@D)/libedit/editline.3 $(1)/usr/share/man/man3/editline.3el; \
+	    $(INSTALL) -v -D -m 0644 $(@D)/libedit/editrc.3 $(1)/usr/share/man/man5/editrc.5el;     \
+	    for lnk in $(LIBEDIT2_MAN_LINKS); do                                                    \
+	        ln -sfv editline.3el $(1)/usr/share/man/man3/$${lnk}.3el;                           \
+	    done;                                                                                   \
+	fi
+endef
+#	cd $(@D)/libedit; pmake install incinstall DESTDIR=$(1) $(LIBEDIT2_PMAKE_ARGS)
+#	cd $(@D)/libedit/readline; pmake incinstall DESTDIR=$(1) $(LIBEDIT2_PMAKE_ARGS)
+
+define LIBEDIT2_INSTALL_STAGING_CMDS
+	$(call LIBEDIT2_INSTALL_CMDS,$(STAGING_DIR))
+endef
+
+define LIBEDIT2_INSTALL_TARGET_CMDS
+	$(call LIBEDIT2_INSTALL_CMDS,$(TARGET_DIR))
+endef
+
+$(eval $(generic-package))
diff --git a/package/libedit2/libedit2.pc b/package/libedit2/libedit2.pc
new file mode 100644
index 0000000..47ac871
--- /dev/null
+++ b/package/libedit2/libedit2.pc
@@ -0,0 +1,13 @@
+prefix=/usr
+exec_prefix=${prefix}
+libdir=${exec_prefix}/lib
+includedir=${prefix}/include
+
+Name: libedit
+Description: Not just a replacement library for libreadline and libhistory.
+Version: 2.11
+Requires: libbsd ncurses
+Requires.private:
+Libs: -L${libdir} -ledit
+Libs.private:
+Cflags: -I${includedir}
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 23/52] package/ceph: new package
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (21 preceding siblings ...)
  2012-12-10 23:44 ` [Buildroot] [PATCH 22/52] package/libedit2: " Yann E. MORIN
@ 2012-12-10 23:44 ` Yann E. MORIN
  2012-12-10 23:44 ` [Buildroot] [PATCH 24/52] package/qemu: build for the target (i386 or x86_64 only) Yann E. MORIN
                   ` (28 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:44 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/Config.in                          |    1 +
 package/ceph/Config.in                     |   18 ++++++++
 package/ceph/ceph-no-envz.patch            |   63 ++++++++++++++++++++++++++++
 package/ceph/ceph-no-getloadavg.patch      |   61 +++++++++++++++++++++++++++
 package/ceph/ceph-no-posix_fallocate.patch |   50 ++++++++++++++++++++++
 package/ceph/ceph.mk                       |   53 +++++++++++++++++++++++
 6 files changed, 246 insertions(+), 0 deletions(-)
 create mode 100644 package/ceph/Config.in
 create mode 100644 package/ceph/ceph-no-envz.patch
 create mode 100644 package/ceph/ceph-no-getloadavg.patch
 create mode 100644 package/ceph/ceph-no-posix_fallocate.patch
 create mode 100644 package/ceph/ceph.mk

diff --git a/package/Config.in b/package/Config.in
index 47c01db..d395326 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -588,6 +588,7 @@ source "package/bind/Config.in"
 source "package/bmon/Config.in"
 source "package/bridge-utils/Config.in"
 source "package/can-utils/Config.in"
+source "package/ceph/Config.in"
 source "package/connman/Config.in"
 source "package/ctorrent/Config.in"
 source "package/conntrack-tools/Config.in"
diff --git a/package/ceph/Config.in b/package/ceph/Config.in
new file mode 100644
index 0000000..db26886
--- /dev/null
+++ b/package/ceph/Config.in
@@ -0,0 +1,18 @@
+comment "ceph requires libnss, and libuuid (from util-linux)"
+	depends on !BR2_PACKAGE_BOOST
+	depends on !BR2_PACKAGE_LIBNSS
+	depends on !BR2_PACKAGE_UTIL_LINUX_LIBUUID
+
+config BR2_PACKAGE_CEPH
+	bool "ceph"
+	depends on BR2_PACKAGE_BOOST
+	depends on BR2_PACKAGE_LIBNSS
+	depends on BR2_PACKAGE_UTIL_LINUX_LIBUUID
+	select BR2_PACKAGE_EXPAT
+	select BR2_PACKAGE_KEYUTILS
+	select BR2_PACKAGE_LIBEDIT2
+	help
+	  Ceph is a distributed object store and file system designed to
+	  provide excellent performance, reliability and scalability.
+	  
+	  http://ceph.com/
diff --git a/package/ceph/ceph-no-envz.patch b/package/ceph/ceph-no-envz.patch
new file mode 100644
index 0000000..c0369ba
--- /dev/null
+++ b/package/ceph/ceph-no-envz.patch
@@ -0,0 +1,63 @@
+tools+base: do not include envz.h on uClibc
+
+uClibc does not have envz, and no envz function is in fact used.
+So, simply do not include it under uClibc.
+
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+
+--- ceph-0.51.orig/src/tools/common.cc	2012-09-09 00:13:32.128838177 +0200
++++ ceph-0.51/src/tools/common.cc	2012-09-09 00:13:59.432064556 +0200
+@@ -17,9 +17,9 @@
+ #include <string>
+ using namespace std;
+ 
+-#if !defined(DARWIN) && !defined(__FreeBSD__)
++#if !defined(DARWIN) && !defined(__FreeBSD__) && !defined(__UCLIBC__)
+ #include <envz.h>
+-#endif // DARWIN
++#endif // DARWIN || __UCLIBC__
+ 
+ #include <memory>
+ #include <sys/types.h>
+--- ceph-0.51.orig/src/ceph_syn.cc	2012-09-09 00:25:23.302722032 +0200
++++ ceph-0.51/src/ceph_syn.cc	2012-09-09 00:24:39.702892463 +0200
+@@ -31,9 +31,9 @@
+ #include "common/ceph_argparse.h"
+ #include "common/pick_address.h"
+ 
+-#if !defined(DARWIN) && !defined(__FreeBSD__)
++#if !defined(DARWIN) && !defined(__FreeBSD__) && !defined(__UCLIBC__)
+ #include <envz.h>
+-#endif // DARWIN || __FreeBSD__
++#endif // DARWIN || __FreeBSD__ || __UCLIBC__
+ 
+ #include <sys/types.h>
+ #include <sys/stat.h>
+--- ceph-0.51.orig/src/ceph_fuse.cc	2012-09-09 00:43:46.875065556 +0200
++++ ceph-0.51/src/ceph_fuse.cc	2012-09-09 00:44:21.161597834 +0200
+@@ -32,9 +32,9 @@
+ #include "global/global_init.h"
+ #include "common/safe_io.h"
+        
+-#ifndef DARWIN
++#if !defined(DARWIN) && !defined(__UCLIBC__)
+ #include <envz.h>
+-#endif // DARWIN
++#endif // DARWIN || __UCLIBC__
+ 
+ #include <sys/types.h>
+ #include <sys/stat.h>
+--- ceph-0.51.orig/src/testmsgr.cc	2012-09-09 00:44:48.108158886 +0200
++++ ceph-0.51/src/testmsgr.cc	2012-09-09 00:45:18.218040882 +0200
+@@ -28,9 +28,9 @@
+ #include "global/global_init.h"
+ #include "common/ceph_argparse.h"
+ 
+-#ifndef DARWIN
++#if !defined(DARWIN) && !defined(__UCLIBC__)
+ #include <envz.h>
+-#endif // DARWIN
++#endif // DARWIN || __UCLIBC__
+ 
+ #include <sys/types.h>
+ #include <sys/stat.h>
diff --git a/package/ceph/ceph-no-getloadavg.patch b/package/ceph/ceph-no-getloadavg.patch
new file mode 100644
index 0000000..7e887df
--- /dev/null
+++ b/package/ceph/ceph-no-getloadavg.patch
@@ -0,0 +1,61 @@
+OSD: do not use getloadavg(3) on uClibc
+
+getloadavg(3) is not available on uClibc, so do not use it.
+
+getloadavg is used in two places:
+  - once to log the loadavg in the heartbeat logs: we simply remove this;
+  - once to decide whether to schedule scrub (whatever it is) or not: we
+    simply use the existing coin-flip random choice in this case.
+
+The second change will probably have an impact on performances... :-(
+
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+
+diff -durN ceph-0.51.orig/src/osd/OSD.cc ceph-0.51/src/osd/OSD.cc
+--- ceph-0.51.orig/src/osd/OSD.cc	2012-08-26 00:58:06.000000000 +0200
++++ ceph-0.51/src/osd/OSD.cc	2012-09-08 23:56:31.396177885 +0200
+@@ -15,6 +15,7 @@
+ #include <fstream>
+ #include <iostream>
+ #include <errno.h>
++#include <features.h> /* For __ULIBC__ */
+ #include <sys/stat.h>
+ #include <signal.h>
+ #include <boost/scoped_ptr.hpp>
+@@ -1942,10 +1943,12 @@
+ {
+   dout(30) << "heartbeat" << dendl;
+ 
++#ifndef __UCLIBC__
+   // get CPU load avg
+   double loadavgs[1];
+   if (getloadavg(loadavgs, 1) == 1)
+     logger->fset(l_osd_loadavg, loadavgs[0]);
++#endif
+ 
+   dout(30) << "heartbeat checking stats" << dendl;
+ 
+@@ -3216,6 +3219,7 @@
+ 
+ bool OSDService::scrub_should_schedule()
+ {
++#ifndef __UCLIBC__
+   double loadavgs[1];
+ 
+   // TODOSAM: is_active should be conveyed to OSDService
+@@ -3249,6 +3253,15 @@
+ 	   << " < max " << g_conf->osd_scrub_load_threshold
+ 	   << " = yes" << dendl;
+   return loadavgs[0] < g_conf->osd_scrub_load_threshold;
++#else // ! defined  __UCLIBC__
++  bool coin_flip = (rand() % 3) == whoami % 3;
++  if (coin_flip) {
++    dout(20) << "scrub_should_schedule randomly yes" << dendl;
++  } else {
++    dout(20) << "scrub_should_schedule randomly backing off" << dendl;
++  }
++  return coin_flip;
++#endif // ! defined  __UCLIBC__
+ }
+ 
+ void OSD::sched_scrub()
diff --git a/package/ceph/ceph-no-posix_fallocate.patch b/package/ceph/ceph-no-posix_fallocate.patch
new file mode 100644
index 0000000..479705d
--- /dev/null
+++ b/package/ceph/ceph-no-posix_fallocate.patch
@@ -0,0 +1,50 @@
+Do not call posix_fallocate() on uClibc
+
+Based on a patch by Thomas, for lttng-babeltrace, in which he states:
+
+    uClibc does not implement posix_fallocate(), and posix_fallocate() is
+    mostly only an hint to the kernel that we will need such or such
+    amount of space inside a file. So we just don't call posix_fallocate()
+    when building against uClibc.
+
+Just do the same here.
+
+NOTE! IMHO, this patch is not correct, because overcommit (eg. for sparse
+files) on the underlying filesystem may cause allocation failures later on,
+which is exactly the situation that posix_fallocate is supposed to avoid.
+But, as uClibc still lacks posix_fallocate, we have no choice.
+
+If you really are concerned about this issue, there exists a posix_fallocate
+patch that is not upstream, but is used by the AlpineLinux distribution:
+    http://git.alpinelinux.org/cgit/aports/tree/main/libc0.9.32/posix_fallocate.patch?id=98a000b8e92b3aa1e0b7a5f94a74910bb0993c4d
+    http://git.alpinelinux.org/cgit/aports/tree/main/libc0.9.32/posix_fallocate-fix.patch?id=98a000b8e92b3aa1e0b7a5f94a74910bb0993c4d
+
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+
+diff -durN ceph-0.50.orig/src/os/FileJournal.cc ceph-0.50/src/os/FileJournal.cc
+--- ceph-0.50.orig/src/os/FileJournal.cc	2012-08-13 18:43:14.000000000 +0200
++++ ceph-0.50/src/os/FileJournal.cc	2012-09-08 23:07:12.597910027 +0200
+@@ -23,6 +23,7 @@
+ #include "include/compat.h"
+ 
+ #include <fcntl.h>
++#include <features.h>
+ #include <sstream>
+ #include <stdio.h>
+ #include <sys/types.h>
+@@ -303,6 +304,7 @@
+ 	   << newsize << " bytes: " << cpp_strerror(err) << dendl;
+       return -err;
+     }
++#ifndef __UCLIBC__
+     ret = ::posix_fallocate(fd, 0, newsize);
+     if (ret < 0) {
+       int err = errno;
+@@ -310,6 +312,7 @@
+ 	   << newsize << " bytes: " << cpp_strerror(err) << dendl;
+       return -err;
+     }
++#endif
+     max_size = newsize;
+   }
+   else {
diff --git a/package/ceph/ceph.mk b/package/ceph/ceph.mk
new file mode 100644
index 0000000..0849837
--- /dev/null
+++ b/package/ceph/ceph.mk
@@ -0,0 +1,53 @@
+#############################################################
+#
+# ceph
+#
+#############################################################
+
+CEPH_VERSION         = 0.51
+CEPH_SOURCE          = ceph-$(CEPH_VERSION).tar.bz2
+CEPH_SITE            = http://ceph.com/download/
+CEPH_LICENSE         = LGPLv2.1 CC-BY-SA Apache-2.0 GPLv2 LGPLv2+ BSD-3c MIT PD
+CEPH_LICENSE_FILES   = COPYING
+CEPH_INSTALL_STAGING = YES
+
+CEPH_DEPENDENCIES    = \
+    boost              \
+    expat              \
+    keyutils           \
+    libedit2           \
+    libnss             \
+    util-linux         \
+
+# We disable everything for now, because the dependency tree can become
+# quite deep if we try to enable some features, and I have not tested that.
+# We need@least one crypto lib, and the currently only one available in
+# BR, that ceph can use, is libnss
+CEPH_CONF_OPT =                     \
+    --with-nss                      \
+    --without-profiler              \
+    --without-debug                 \
+    --without-tcmalloc              \
+    --without-hadoop                \
+    --without-libatomic-ops         \
+    --without-system-leveldb        \
+    --without-system-libs3          \
+    --without-rest-bench            \
+    --without-cryptopp              \
+    --with-ocf                      \
+
+ifeq ($(BR2_PACKAGE_LIBFUSE),y)
+CEPH_DEPENDENCIES += libfuse
+CEPH_CONF_OPT     += --with-fuse
+else
+CEPH_CONF_OPT     += --without-fuse
+endif
+
+ifeq ($(BR2_PACKAGE_LIBAIO),y)
+CEPH_DEPENDENCIES += libaio
+CEPH_CONF_OPT     += --with-libaio
+else
+CEPH_CONF_OPT     += --without-libaio
+endif
+
+$(eval $(autotools-package))
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 24/52] package/qemu: build for the target (i386 or x86_64 only)
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (22 preceding siblings ...)
  2012-12-10 23:44 ` [Buildroot] [PATCH 23/52] package/ceph: " Yann E. MORIN
@ 2012-12-10 23:44 ` Yann E. MORIN
  2012-12-10 23:44 ` [Buildroot] [PATCH 25/52] package/qemu: add basic target selection Yann E. MORIN
                   ` (27 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:44 UTC (permalink / raw)
  To: buildroot

Untested for other architectures, so only enabled for known-working ones.

We explicitly disable all features that depends on other packages,
for now. Such features will be added one by one in the next patches.
Features that do not rely on external packages are explicitly enabled
to catch the dependencies on toolchain features early.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/Config.in      |    1 +
 package/qemu/Config.in |   25 ++++++++++++++++
 package/qemu/qemu.mk   |   73 ++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 99 insertions(+), 0 deletions(-)
 create mode 100644 package/qemu/Config.in

diff --git a/package/Config.in b/package/Config.in
index d395326..a93aed2 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -571,6 +571,7 @@ source "package/collectd/Config.in"
 source "package/empty/Config.in"
 source "package/googlefontdirectory/Config.in"
 source "package/mobile-broadband-provider-info/Config.in"
+source "package/qemu/Config.in"
 source "package/shared-mime-info/Config.in"
 source "package/snowball-init/Config.in"
 source "package/sound-theme-borealis/Config.in"
diff --git a/package/qemu/Config.in b/package/qemu/Config.in
new file mode 100644
index 0000000..4b05e3d
--- /dev/null
+++ b/package/qemu/Config.in
@@ -0,0 +1,25 @@
+comment "QEMU requires a toolchain with threads"
+	depends on !BR2_i386 && !BR2_x86_64
+	depends on !BR2_TOOLCHAIN_HAS_THREADS
+
+config BR2_PACKAGE_QEMU
+	bool "QEMU"
+	depends on BR2_i386 || BR2_x86_64
+	depends on BR2_TOOLCHAIN_HAS_THREADS
+	select BR2_PACKAGE_LIBGLIB2
+	select BR2_PACKAGE_ZLIB
+	help
+	  QEMU is a generic and open source machine emulator and virtualizer.
+	  
+	  When used as a machine emulator, QEMU can run OSes and programs made
+	  for one machine (e.g. an ARM board) on a different machine (e.g.
+	  your own PC). By using dynamic translation, it achieves very good
+	  performance.
+	  
+	  When used as a virtualizer, QEMU achieves near native performances
+	  by executing the guest code directly on the host CPU. QEMU supports
+	  virtualization when executing under the Xen hypervisor or using the
+	  KVM kernel module in Linux. When using KVM, QEMU can virtualize x86,
+	  server and embedded PowerPC, and S390 guests.
+	  
+	  http://qemu.org/
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index 241a392..4c7be50 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -81,3 +81,76 @@ $(eval $(host-autotools-package))
 
 # variable used by other packages
 QEMU_USER = $(HOST_DIR)/usr/bin/qemu-$(QEMU_ARCH)
+
+#-------------------------------------------------------------
+# Target-qemu
+
+QEMU_DEPENDENCIES = host-pkgconf host-python libglib2 zlib
+
+# Need the LIBS variable because librt and libm are
+# not automatically pulled. :-(
+QEMU_LIBS = -lrt -lm
+
+QEMU_OPTS =
+
+QEMU_VARS =                                                                         \
+    PYTHON=$(HOST_DIR)/usr/bin/python                                               \
+    PYTHONPATH=$(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages    \
+
+# Note: although QEMU uses a ./configure script, it is not compatible with
+#       the traditional autotools options (eg. --target et al.), so we have
+#       to override the default provided by the autotools-package infra, and
+#       provide our own. Sigh... :-/
+
+define QEMU_CONFIGURE_CMDS
+	( cd $(@D);                                 \
+	    LIBS='$(QEMU_LIBS)'                     \
+	    $(TARGET_CONFIGURE_OPTS)                \
+	    $(TARGET_CONFIGURE_ARGS)                \
+	    $(QEMU_VARS)                            \
+	    ./configure                             \
+	        --prefix=/usr                       \
+	        --cross-prefix=$(TARGET_CROSS)      \
+	        --audio-drv-list=                   \
+	        --audio-card-list=                  \
+	        --enable-kvm                        \
+	        --enable-nptl                       \
+	        --enable-attr                       \
+	        --enable-vhost-net                  \
+	        --enable-system                     \
+	        --enable-linux-user                 \
+	        --disable-bsd-user                  \
+	        --disable-xen                       \
+	        --disable-slirp                     \
+	        --disable-sdl                       \
+	        --disable-vnc                       \
+	        --disable-virtfs                    \
+	        --disable-brlapi                    \
+	        --disable-curses                    \
+	        --disable-curl                      \
+	        --disable-fdt                       \
+	        --disable-bluez                     \
+	        --disable-guest-base                \
+	        --disable-uuid                      \
+	        --disable-vde                       \
+	        --disable-linux-aio                 \
+	        --disable-cap-ng                    \
+	        --disable-docs                      \
+	        --disable-spice                     \
+	        --disable-rbd                       \
+	        --disable-libiscsi                  \
+	        --disable-usb-redir                 \
+	        --disable-smartcard                 \
+	        --disable-strip                     \
+	        --disable-seccomp                   \
+	        --disable-sparse                    \
+	        $(QEMU_OPTS)                        \
+	)
+endef
+
+# Need the LIBS_QGA because it does not 'inherit' the LIBS_TOOLS
+# we set at configure time, and there is no conrresponding LIBS_QGA
+# at configure time
+QEMU_MAKE_ENV += LIBS_TOOLS="$(QEMU_LIBS)" LIBS_QGA="$(QEMU_LIBS)" LIBS="$(QEMU_LIBS)"
+
+$(eval $(autotools-package))
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 25/52] package/qemu: add basic target selection
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (23 preceding siblings ...)
  2012-12-10 23:44 ` [Buildroot] [PATCH 24/52] package/qemu: build for the target (i386 or x86_64 only) Yann E. MORIN
@ 2012-12-10 23:44 ` Yann E. MORIN
  2012-12-10 23:44 ` [Buildroot] [PATCH 26/52] package/qemu: add fine-grained " Yann E. MORIN
                   ` (26 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:44 UTC (permalink / raw)
  To: buildroot

qemu-1.2.1 requires that at least one target emulation be enabled, so
we use some kconfig-tricks to force at least the systems emulations to
be enabled if user emulation is not selected.

This limitation will be lifted in the upcoming qemu-1.3.x

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |   32 ++++++++++++++++++++++++++++++++
 package/qemu/qemu.mk   |   14 ++++++++++++--
 2 files changed, 44 insertions(+), 2 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index 4b05e3d..ddf3665 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -23,3 +23,35 @@ config BR2_PACKAGE_QEMU
 	  server and embedded PowerPC, and S390 guests.
 	  
 	  http://qemu.org/
+
+if BR2_PACKAGE_QEMU
+
+comment "Emulators selection"
+
+# QEMU 1.2.x requires that at least one target emulation be selected, so
+# we use the following two symbols to force systems emulation if user
+# emulation is not selected. This limitation will be lifted when qemu-1.3.0
+# is out.
+config BR2_PACKAGE_QEMU_EMUL_SET
+	bool
+
+config BR2_PACKAGE_QEMU_FORCE_SYSTEM
+	bool
+	default n if BR2_PACKAGE_QEMU_EMUL_SET
+	default y if ! BR2_PACKAGE_QEMU_EMUL_SET
+	select BR2_PACKAGE_QEMU_SYSTEM
+
+config BR2_PACKAGE_QEMU_SYSTEM
+	bool "Enable all systems emulation"
+	help
+	  Say 'y' to build all system emulators/virtualisers that QEMU supports.
+
+config BR2_PACKAGE_QEMU_LINUX_USER
+	bool "Enable all Linux user-land emulation"
+	select BR2_PACKAGE_QEMU_EMUL_SET
+	help
+	  Say 'y' to build all Linux user-land emulators that QEMU supports.
+
+# Note: bsd-user can not be build on Linux
+
+endif # BR2_PACKAGE_QEMU
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index 4c7be50..0085abd 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -97,6 +97,18 @@ QEMU_VARS =
     PYTHON=$(HOST_DIR)/usr/bin/python                                               \
     PYTHONPATH=$(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages    \
 
+ifeq ($(BR2_PACKAGE_QEMU_SYSTEM),y)
+QEMU_OPTS += --enable-system
+else
+QEMU_OPTS += --disable-system
+endif
+
+ifeq ($(BR2_PACKAGE_QEMU_LINUX_USER),y)
+QEMU_OPTS += --enable-linux-user
+else
+QEMU_OPTS += --disable-linux-user
+endif
+
 # Note: although QEMU uses a ./configure script, it is not compatible with
 #       the traditional autotools options (eg. --target et al.), so we have
 #       to override the default provided by the autotools-package infra, and
@@ -117,8 +129,6 @@ define QEMU_CONFIGURE_CMDS
 	        --enable-nptl                       \
 	        --enable-attr                       \
 	        --enable-vhost-net                  \
-	        --enable-system                     \
-	        --enable-linux-user                 \
 	        --disable-bsd-user                  \
 	        --disable-xen                       \
 	        --disable-slirp                     \
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 26/52] package/qemu: add fine-grained target selection
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (24 preceding siblings ...)
  2012-12-10 23:44 ` [Buildroot] [PATCH 25/52] package/qemu: add basic target selection Yann E. MORIN
@ 2012-12-10 23:44 ` Yann E. MORIN
  2012-12-10 23:44 ` [Buildroot] [PATCH 27/52] package/qemu: add SDL frontends Yann E. MORIN
                   ` (25 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:44 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |   21 +++++++++++++++++++++
 package/qemu/qemu.mk   |    4 ++++
 2 files changed, 25 insertions(+), 0 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index ddf3665..f76b443 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -28,6 +28,25 @@ if BR2_PACKAGE_QEMU
 
 comment "Emulators selection"
 
+config BR2_PACKAGE_QEMU_CUSTOM_TARGETS
+	string "Enable specific targets"
+	help
+	  Enter here the list of QEMU targets you want to build. For example:
+
+	    System emulation      | User-land emulation
+	    ----------------------+-----------------------
+	    i386-softmmu          | i386-linux-user
+	    arm-softmmu           | ppc-linux-user
+	    x86_64-softmmu        | sparc-bsd-user
+	    ...                   | ...
+
+config QEMU_FOO
+	bool # To break the indentation
+
+if BR2_PACKAGE_QEMU_CUSTOM_TARGETS = ""
+
+comment "... or you can select emulator families to enable, below:"
+
 # QEMU 1.2.x requires that at least one target emulation be selected, so
 # we use the following two symbols to force systems emulation if user
 # emulation is not selected. This limitation will be lifted when qemu-1.3.0
@@ -54,4 +73,6 @@ config BR2_PACKAGE_QEMU_LINUX_USER
 
 # Note: bsd-user can not be build on Linux
 
+endif # BR2_PACKAGE_QEMU_CUSTOM_TARGETS == ""
+
 endif # BR2_PACKAGE_QEMU
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index 0085abd..0fbd670 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -109,6 +109,10 @@ else
 QEMU_OPTS += --disable-linux-user
 endif
 
+ifneq ($(call qstrip,$(BR2_PACKAGE_QEMU_CUSTOM_TARGETS)),)
+QEMU_OPTS += --target-list="$(call qstrip,$(BR2_PACKAGE_QEMU_CUSTOM_TARGETS))"
+endif
+
 # Note: although QEMU uses a ./configure script, it is not compatible with
 #       the traditional autotools options (eg. --target et al.), so we have
 #       to override the default provided by the autotools-package infra, and
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 27/52] package/qemu: add SDL frontends
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (25 preceding siblings ...)
  2012-12-10 23:44 ` [Buildroot] [PATCH 26/52] package/qemu: add fine-grained " Yann E. MORIN
@ 2012-12-10 23:44 ` Yann E. MORIN
  2012-12-10 23:44 ` [Buildroot] [PATCH 28/52] package/qemu: add option to enable/disable the VNC frontend Yann E. MORIN
                   ` (24 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:44 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |    9 +++++++++
 package/qemu/qemu.mk   |   10 +++++++++-
 2 files changed, 18 insertions(+), 1 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index f76b443..a92ca00 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -75,4 +75,13 @@ config BR2_PACKAGE_QEMU_LINUX_USER
 
 endif # BR2_PACKAGE_QEMU_CUSTOM_TARGETS == ""
 
+comment "Frontends"
+
+config BR2_PACKAGE_QEMU_SDL
+	bool "Enable SDL frontend"
+	select BR2_PACKAGE_SDL
+	help
+	  Say 'y' to enable the SDL frontend, that is, a graphical window
+	  presenting the VM's display.
+
 endif # BR2_PACKAGE_QEMU
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index 0fbd670..4de6cd0 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -96,6 +96,7 @@ QEMU_OPTS =
 QEMU_VARS =                                                                         \
     PYTHON=$(HOST_DIR)/usr/bin/python                                               \
     PYTHONPATH=$(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages    \
+    SDL_CONFIG=$(STAGING_DIR)/usr/bin/sdl-config                                    \
 
 ifeq ($(BR2_PACKAGE_QEMU_SYSTEM),y)
 QEMU_OPTS += --enable-system
@@ -113,6 +114,14 @@ ifneq ($(call qstrip,$(BR2_PACKAGE_QEMU_CUSTOM_TARGETS)),)
 QEMU_OPTS += --target-list="$(call qstrip,$(BR2_PACKAGE_QEMU_CUSTOM_TARGETS))"
 endif
 
+ifeq ($(BR2_PACKAGE_QEMU_SDL),y)
+QEMU_OPTS += --enable-sdl
+QEMU_DEPENDENCIES += sdl
+QEMU_VARS += SDL_CONFIG=$(BR2_STAGING_DIR)/usr/bin/sdl-config
+else
+QEMU_OPTS += --disable-sdl
+endif
+
 # Note: although QEMU uses a ./configure script, it is not compatible with
 #       the traditional autotools options (eg. --target et al.), so we have
 #       to override the default provided by the autotools-package infra, and
@@ -136,7 +145,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-bsd-user                  \
 	        --disable-xen                       \
 	        --disable-slirp                     \
-	        --disable-sdl                       \
 	        --disable-vnc                       \
 	        --disable-virtfs                    \
 	        --disable-brlapi                    \
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 28/52] package/qemu: add option to enable/disable the VNC frontend
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (26 preceding siblings ...)
  2012-12-10 23:44 ` [Buildroot] [PATCH 27/52] package/qemu: add SDL frontends Yann E. MORIN
@ 2012-12-10 23:44 ` Yann E. MORIN
  2012-12-10 23:44 ` [Buildroot] [PATCH 29/52] package/qemu: add VNC jpeg and png compression Yann E. MORIN
                   ` (23 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:44 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |    7 +++++++
 package/qemu/qemu.mk   |   11 ++++++++++-
 2 files changed, 17 insertions(+), 1 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index a92ca00..057c1d6 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -77,6 +77,13 @@ endif # BR2_PACKAGE_QEMU_CUSTOM_TARGETS == ""
 
 comment "Frontends"
 
+config BR2_PACKAGE_QEMU_VNC
+	bool "Enable VNC frontend"
+	select BR2_PACKAGE_VNC
+	help
+	  Say 'y' to enable the VNC frontend, that is, QEMU will act as a
+	  VNC server presenting the VM's display.
+
 config BR2_PACKAGE_QEMU_SDL
 	bool "Enable SDL frontend"
 	select BR2_PACKAGE_SDL
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index 4de6cd0..99f4114 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -114,6 +114,12 @@ ifneq ($(call qstrip,$(BR2_PACKAGE_QEMU_CUSTOM_TARGETS)),)
 QEMU_OPTS += --target-list="$(call qstrip,$(BR2_PACKAGE_QEMU_CUSTOM_TARGETS))"
 endif
 
+ifeq ($(BR2_PACKAGE_QEMU_VNC),y)
+QEMU_OPTS += --enable-vnc
+else
+QEMU_OPTS += --disable-vnc
+endif
+
 ifeq ($(BR2_PACKAGE_QEMU_SDL),y)
 QEMU_OPTS += --enable-sdl
 QEMU_DEPENDENCIES += sdl
@@ -145,7 +151,10 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-bsd-user                  \
 	        --disable-xen                       \
 	        --disable-slirp                     \
-	        --disable-vnc                       \
+	        --disable-vnc-jpeg                  \
+	        --disable-vnc-png                   \
+	        --disable-vnc-tls                   \
+	        --disable-vnc-sasl                  \
 	        --disable-virtfs                    \
 	        --disable-brlapi                    \
 	        --disable-curses                    \
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 29/52] package/qemu: add VNC jpeg and png compression
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (27 preceding siblings ...)
  2012-12-10 23:44 ` [Buildroot] [PATCH 28/52] package/qemu: add option to enable/disable the VNC frontend Yann E. MORIN
@ 2012-12-10 23:44 ` Yann E. MORIN
  2012-12-10 23:44 ` [Buildroot] [PATCH 30/52] package/qemu: add VNC TLS-encryption Yann E. MORIN
                   ` (22 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:44 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |   10 ++++++++++
 package/qemu/qemu.mk   |   16 ++++++++++++++--
 2 files changed, 24 insertions(+), 2 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index 057c1d6..74d207c 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -84,6 +84,16 @@ config BR2_PACKAGE_QEMU_VNC
 	  Say 'y' to enable the VNC frontend, that is, QEMU will act as a
 	  VNC server presenting the VM's display.
 
+config BR2_PACKAGE_QEMU_VNC_PNG
+	bool "PNG compression"
+	depends on BR2_PACKAGE_QEMU_VNC
+	select BR2_PACKAGE_LIBPNG
+
+config BR2_PACKAGE_QEMU_VNC_JPEG
+	bool "JPEG compression"
+	depends on BR2_PACKAGE_QEMU_VNC
+	select BR2_PACKAGE_JPEG
+
 config BR2_PACKAGE_QEMU_SDL
 	bool "Enable SDL frontend"
 	select BR2_PACKAGE_SDL
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index 99f4114..29e1315 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -120,6 +120,20 @@ else
 QEMU_OPTS += --disable-vnc
 endif
 
+ifeq ($(BR2_PACKAGE_QEMU_VNC_PNG),y)
+QEMU_OPTS += --enable-vnc-png
+QEMU_DEPENDENCIES += libpng
+else
+QEMU_OPTS += --disable-vnc-png
+endif
+
+ifeq ($(BR2_PACKAGE_QEMU_VNC_JPEG),y)
+QEMU_OPTS += --enable-vnc-jpeg
+QEMU_DEPENDENCIES += jpeg
+else
+QEMU_OPTS += --disable-vnc-jpeg
+endif
+
 ifeq ($(BR2_PACKAGE_QEMU_SDL),y)
 QEMU_OPTS += --enable-sdl
 QEMU_DEPENDENCIES += sdl
@@ -151,8 +165,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-bsd-user                  \
 	        --disable-xen                       \
 	        --disable-slirp                     \
-	        --disable-vnc-jpeg                  \
-	        --disable-vnc-png                   \
 	        --disable-vnc-tls                   \
 	        --disable-vnc-sasl                  \
 	        --disable-virtfs                    \
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 30/52] package/qemu: add VNC TLS-encryption
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (28 preceding siblings ...)
  2012-12-10 23:44 ` [Buildroot] [PATCH 29/52] package/qemu: add VNC jpeg and png compression Yann E. MORIN
@ 2012-12-10 23:44 ` Yann E. MORIN
  2012-12-10 23:44 ` [Buildroot] [PATCH 31/52] package/qemu: add option to not install blobs Yann E. MORIN
                   ` (21 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:44 UTC (permalink / raw)
  To: buildroot

Only TLS is supported, as buildroot has no package for the SASL library.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |   11 +++++++++++
 package/qemu/qemu.mk   |    8 +++++++-
 2 files changed, 18 insertions(+), 1 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index 74d207c..14c3704 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -94,6 +94,17 @@ config BR2_PACKAGE_QEMU_VNC_JPEG
 	depends on BR2_PACKAGE_QEMU_VNC
 	select BR2_PACKAGE_JPEG
 
+# TLS does not work with static link, because the gnutls .pc is missing a
+# dependency on libintl... :-(
+config BR2_PACKAGE_QEMU_VNC_TLS
+	bool "TLS encryption"
+	depends on BR2_PACKAGE_QEMU_VNC
+	depends on !BR2_PREFER_STATIC_LIB
+	select BR2_PACKAGE_GNUTLS
+
+comment "VNC TLS encryption does not work for static link"
+    depends on BR2_PACKAGE_QEMU_VNC && BR2_PREFER_STATIC_LIB
+
 config BR2_PACKAGE_QEMU_SDL
 	bool "Enable SDL frontend"
 	select BR2_PACKAGE_SDL
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index 29e1315..61509ec 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -134,6 +134,13 @@ else
 QEMU_OPTS += --disable-vnc-jpeg
 endif
 
+ifeq ($(BR2_PACKAGE_QEMU_VNC_TLS),y)
+QEMU_OPTS += --enable-vnc-tls
+QEMU_DEPENDENCIES += gnutls
+else
+QEMU_OPTS += --disable-vnc-tls
+endif
+
 ifeq ($(BR2_PACKAGE_QEMU_SDL),y)
 QEMU_OPTS += --enable-sdl
 QEMU_DEPENDENCIES += sdl
@@ -165,7 +172,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-bsd-user                  \
 	        --disable-xen                       \
 	        --disable-slirp                     \
-	        --disable-vnc-tls                   \
 	        --disable-vnc-sasl                  \
 	        --disable-virtfs                    \
 	        --disable-brlapi                    \
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 31/52] package/qemu: add option to not install blobs
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (29 preceding siblings ...)
  2012-12-10 23:44 ` [Buildroot] [PATCH 30/52] package/qemu: add VNC TLS-encryption Yann E. MORIN
@ 2012-12-10 23:44 ` Yann E. MORIN
  2012-12-10 23:44 ` [Buildroot] [PATCH 32/52] package/qemu: add option to remove unwanted keymaps Yann E. MORIN
                   ` (20 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:44 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |   16 ++++++++++++++++
 package/qemu/qemu.mk   |    4 ++++
 2 files changed, 20 insertions(+), 0 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index 14c3704..e530303 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -112,4 +112,20 @@ config BR2_PACKAGE_QEMU_SDL
 	  Say 'y' to enable the SDL frontend, that is, a graphical window
 	  presenting the VM's display.
 
+comment "Misc. features"
+
+config BR2_PACKAGE_QEMU_BLOBS
+	bool "Install binary blobs"
+	default y
+	help
+	  Say 'y' here (the default) to install binary blobs (such as BIOS
+	  or firmwares for the different machines simulated by QEMU).
+	  Say 'n' to not install those blobs.
+	  
+	  Note: Some machines may be unbootable without those blobs.
+	        If unsure, say 'y'.
+	  
+	  Note2: This has nothing to do with the licensing of the blobs;
+	         some (most?) even have a free and/or open source license.
+
 endif # BR2_PACKAGE_QEMU
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index 61509ec..bf4aeb9 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -149,6 +149,10 @@ else
 QEMU_OPTS += --disable-sdl
 endif
 
+ifeq ($(BR2_PACKAGE_QEMU_BLOBS),)
+QEMU_OPTS += --disable-blobs
+endif
+
 # Note: although QEMU uses a ./configure script, it is not compatible with
 #       the traditional autotools options (eg. --target et al.), so we have
 #       to override the default provided by the autotools-package infra, and
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 32/52] package/qemu: add option to remove unwanted keymaps
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (30 preceding siblings ...)
  2012-12-10 23:44 ` [Buildroot] [PATCH 31/52] package/qemu: add option to not install blobs Yann E. MORIN
@ 2012-12-10 23:44 ` Yann E. MORIN
  2012-12-10 23:44 ` [Buildroot] [PATCH 33/52] package/qemu: add uuid support Yann E. MORIN
                   ` (19 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:44 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |   12 ++++++++++
 package/qemu/qemu.mk   |   55 ++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 67 insertions(+), 0 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index e530303..5181fdc 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -128,4 +128,16 @@ config BR2_PACKAGE_QEMU_BLOBS
 	  Note2: This has nothing to do with the licensing of the blobs;
 	         some (most?) even have a free and/or open source license.
 
+config BR2_PACKAGE_QEMU_KEYMAPS
+	string "Keymaps to keep"
+	default "all"
+	help
+	  Enter the list of keymap(s) to keep. To keep many keymaps, you can
+	  use shell globs, or you can enter a space-separated list of keymaps:
+	    - empty to remove all keymaps
+	    - 'all' to keep all keymaps
+	    - 'fr*' to keep all french keymaps
+	    - 'de fr* en-*' for german, french and english keymaps
+	    - and so on (see the QEMU source for all supported keymaps)
+
 endif # BR2_PACKAGE_QEMU
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index bf4aeb9..9ed6d6f 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -153,6 +153,61 @@ ifeq ($(BR2_PACKAGE_QEMU_BLOBS),)
 QEMU_OPTS += --disable-blobs
 endif
 
+# Post-install removal of unwanted keymaps:
+# - if we want 'all', we do nothing;
+# - if we want none, we completely remove the keymap dir
+# - otherwise:
+#   - we completely remove the keymap dir; and recreate it empty
+#   - we recursively copy only those keymaps we want (as keymaps may include
+#     some common files)
+#
+# NOTE-1: we need the un-quoted list of keymaps, so it is interpreted as a glob
+#         by the shell.
+# NOTE-2: yes, all (current!) keymaps do include the 'common' keymap, which in
+#         turn includes the 'modifiers' keymap, so we could unconditionally
+#         copy those two, for a much simpler code. Doing it the way it's done
+#         is more generic, and will adapt to any future keymaps which has
+#         multiple includes, or none.
+# NOTE-3: we can't use $(SED), because it expands to include the '-i' option,
+#         which we do *not* want here, because we are not munging a file, but
+#         using sed as a enhanced grep.
+#
+QEMU_KEYMAPS = $(call qstrip,$(BR2_PACKAGE_QEMU_KEYMAPS))
+
+ifeq ($(QEMU_KEYMAPS),all)      #--- Keep all keymaps ---#
+define QEMU_POST_INSTALL_KEYMAPS
+	@: Nothing
+endef
+
+else ifeq ($(QEMU_KEYMAPS),)    #--- Remove all keymaps ---#
+define QEMU_POST_INSTALL_KEYMAPS
+	rm -rf "$(TARGET_DIR)/usr/share/qemu/keymaps"
+endef
+
+else                            #--- Keep selected keymaps ---#
+define QEMU_POST_INSTALL_KEYMAPS
+	rm -rf "$(TARGET_DIR)/usr/share/qemu/keymaps"
+	mkdir -p "$(TARGET_DIR)/usr/share/qemu/keymaps"
+	add_keymap() {                                                  \
+	    local k="$${1}"; local dest="$${2}";                        \
+	    if [ -n "$${k}" -a ! -f "$${dest}/$${k}" ]; then            \
+	        cp -v "$${k}" "$${dest}";                               \
+	        for k in $$(sed -r -e '/^include[[:space:]]+(.*)$$/!d;' \
+	                           -e 's//\1/;' "$${k}" ); do           \
+	            add_keymap "$${k}" "$${dest}";                      \
+	        done;                                                   \
+	    fi;                                                         \
+	};                                                              \
+	cd $(@D)/pc-bios/keymaps;                                       \
+	for k in $(QEMU_KEYMAPS); do                                    \
+	    add_keymap "$${k}" "$(TARGET_DIR)/usr/share/qemu/keymaps";  \
+	done
+endef
+
+endif # Keymaps to keep
+
+QEMU_POST_INSTALL_TARGET_HOOKS += QEMU_POST_INSTALL_KEYMAPS
+
 # Note: although QEMU uses a ./configure script, it is not compatible with
 #       the traditional autotools options (eg. --target et al.), so we have
 #       to override the default provided by the autotools-package infra, and
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 33/52] package/qemu: add uuid support
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (31 preceding siblings ...)
  2012-12-10 23:44 ` [Buildroot] [PATCH 32/52] package/qemu: add option to remove unwanted keymaps Yann E. MORIN
@ 2012-12-10 23:44 ` Yann E. MORIN
  2012-12-10 23:44 ` [Buildroot] [PATCH 34/52] package/qemu: add support for capabilities Yann E. MORIN
                   ` (18 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:44 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |   10 ++++++++++
 package/qemu/qemu.mk   |    8 +++++++-
 2 files changed, 17 insertions(+), 1 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index 5181fdc..0c4aa0a 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -114,6 +114,16 @@ config BR2_PACKAGE_QEMU_SDL
 
 comment "Misc. features"
 
+config BR2_PACKAGE_QEMU_UUID
+	bool "Enable VMs UUID"
+	depends on BR2_PACKAGE_UTIL_LINUX
+	select BR2_PACKAGE_UTIL_LINUX_LIBUUID
+	help
+	  Say 'y' here to have QEMU support UUIDs for VMs.
+
+comment "UUID support requires util-linux (for libuuid)"
+	depends on !BR2_PACKAGE_UTIL_LINUX
+
 config BR2_PACKAGE_QEMU_BLOBS
 	bool "Install binary blobs"
 	default y
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index 9ed6d6f..54cbefc 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -149,6 +149,13 @@ else
 QEMU_OPTS += --disable-sdl
 endif
 
+ifeq ($(BR2_PACKAGE_QEMU_UUID),y)
+QEMU_OPTS += --enable-uuid
+QEMU_DEPENDENCIES += util-linux
+else
+QEMU_OPTS += --disable-uuid
+endif
+
 ifeq ($(BR2_PACKAGE_QEMU_BLOBS),)
 QEMU_OPTS += --disable-blobs
 endif
@@ -239,7 +246,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-fdt                       \
 	        --disable-bluez                     \
 	        --disable-guest-base                \
-	        --disable-uuid                      \
 	        --disable-vde                       \
 	        --disable-linux-aio                 \
 	        --disable-cap-ng                    \
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 34/52] package/qemu: add support for capabilities
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (32 preceding siblings ...)
  2012-12-10 23:44 ` [Buildroot] [PATCH 33/52] package/qemu: add uuid support Yann E. MORIN
@ 2012-12-10 23:44 ` Yann E. MORIN
  2012-12-10 23:44 ` [Buildroot] [PATCH 35/52] package/qemu: add attr/xattr option Yann E. MORIN
                   ` (17 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:44 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |    7 +++++++
 package/qemu/qemu.mk   |   11 ++++++++++-
 2 files changed, 17 insertions(+), 1 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index 0c4aa0a..1ef6c25 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -124,6 +124,13 @@ config BR2_PACKAGE_QEMU_UUID
 comment "UUID support requires util-linux (for libuuid)"
 	depends on !BR2_PACKAGE_UTIL_LINUX
 
+config BR2_PACKAGE_QEMU_CAP
+	bool "Enable capabilities"
+	select BR2_PACKAGE_LIBCAP
+	select BR2_PACKAGE_LIBCAP_NG
+	help
+	  Say 'y' here if you want QEMU to support capabilities.
+
 config BR2_PACKAGE_QEMU_BLOBS
 	bool "Install binary blobs"
 	default y
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index 54cbefc..a69ca9d 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -156,6 +156,16 @@ else
 QEMU_OPTS += --disable-uuid
 endif
 
+# There's no configure flag to disable use of libcap
+# so we must use an environment variable
+ifeq ($(BR2_PACKAGE_QEMU_CAP),y)
+QEMU_OPTS += --enable-cap-ng
+QEMU_DEPENDENCIES += libcap libcap-ng
+else
+QEMU_OPTS += --disable-cap-ng
+QEMU_VARS += cap=no
+endif
+
 ifeq ($(BR2_PACKAGE_QEMU_BLOBS),)
 QEMU_OPTS += --disable-blobs
 endif
@@ -248,7 +258,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-guest-base                \
 	        --disable-vde                       \
 	        --disable-linux-aio                 \
-	        --disable-cap-ng                    \
 	        --disable-docs                      \
 	        --disable-spice                     \
 	        --disable-rbd                       \
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 35/52] package/qemu: add attr/xattr option
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (33 preceding siblings ...)
  2012-12-10 23:44 ` [Buildroot] [PATCH 34/52] package/qemu: add support for capabilities Yann E. MORIN
@ 2012-12-10 23:44 ` Yann E. MORIN
  2012-12-10 23:44 ` [Buildroot] [PATCH 36/52] package/qemu: add support for virtfs Yann E. MORIN
                   ` (16 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:44 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |    6 ++++++
 package/qemu/qemu.mk   |    7 ++++++-
 2 files changed, 12 insertions(+), 1 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index 1ef6c25..138949c 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -131,6 +131,12 @@ config BR2_PACKAGE_QEMU_CAP
 	help
 	  Say 'y' here if you want QEMU to support capabilities.
 
+config BR2_PACKAGE_QEMU_ATTR
+	bool "Enable attr and xattr"
+	help
+	  Say 'y' here to have QEMU support attributes (attr) and eXtended
+	  attibutes (xattr).
+
 config BR2_PACKAGE_QEMU_BLOBS
 	bool "Install binary blobs"
 	default y
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index a69ca9d..7e4d08f 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -166,6 +166,12 @@ QEMU_OPTS += --disable-cap-ng
 QEMU_VARS += cap=no
 endif
 
+ifeq ($(BR2_PACKAGE_QEMU_ATTR),y)
+QEMU_OPTS += --enable-attr
+else
+QEMU_OPTS += --disable-attr
+endif
+
 ifeq ($(BR2_PACKAGE_QEMU_BLOBS),)
 QEMU_OPTS += --disable-blobs
 endif
@@ -243,7 +249,6 @@ define QEMU_CONFIGURE_CMDS
 	        --audio-card-list=                  \
 	        --enable-kvm                        \
 	        --enable-nptl                       \
-	        --enable-attr                       \
 	        --enable-vhost-net                  \
 	        --disable-bsd-user                  \
 	        --disable-xen                       \
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 36/52] package/qemu: add support for virtfs
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (34 preceding siblings ...)
  2012-12-10 23:44 ` [Buildroot] [PATCH 35/52] package/qemu: add attr/xattr option Yann E. MORIN
@ 2012-12-10 23:44 ` Yann E. MORIN
  2012-12-10 23:44 ` [Buildroot] [PATCH 37/52] package/qemu: add support for cURL Yann E. MORIN
                   ` (15 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:44 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |   16 ++++++++++++++++
 package/qemu/qemu.mk   |    7 ++++++-
 2 files changed, 22 insertions(+), 1 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index 138949c..237fb7b 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -112,6 +112,22 @@ config BR2_PACKAGE_QEMU_SDL
 	  Say 'y' to enable the SDL frontend, that is, a graphical window
 	  presenting the VM's display.
 
+comment "Block backends"
+
+config BR2_PACKAGE_QEMU_VIRTFS
+	bool "Enable plan9 ressources using VirtFS"
+	select BR2_PACKAGE_QEMU_CAP
+	select BR2_PACKAGE_QEMU_ATTR
+	help
+	  Say 'y' here if you want QEMU to provide a plan9 virtual "share"
+	  accessible from the guest OS for relatively fast access to host
+	  files.
+	  
+	  This requires that the guest OS is capable of accessing plan9
+	  ressources (typically, in Linux, this is done by a network
+	  file-system called 9p, and can be accelerated by using the 9p
+	  virtio).
+
 comment "Misc. features"
 
 config BR2_PACKAGE_QEMU_UUID
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index 7e4d08f..b34ff69 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -149,6 +149,12 @@ else
 QEMU_OPTS += --disable-sdl
 endif
 
+ifeq ($(BR2_PACKAGE_QEMU_VIRTFS),y)
+QEMU_OPTS += --enable-virtfs
+else
+QEMU_OPTS += --disable-virtfs
+endif
+
 ifeq ($(BR2_PACKAGE_QEMU_UUID),y)
 QEMU_OPTS += --enable-uuid
 QEMU_DEPENDENCIES += util-linux
@@ -254,7 +260,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-xen                       \
 	        --disable-slirp                     \
 	        --disable-vnc-sasl                  \
-	        --disable-virtfs                    \
 	        --disable-brlapi                    \
 	        --disable-curses                    \
 	        --disable-curl                      \
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 37/52] package/qemu: add support for cURL
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (35 preceding siblings ...)
  2012-12-10 23:44 ` [Buildroot] [PATCH 36/52] package/qemu: add support for virtfs Yann E. MORIN
@ 2012-12-10 23:44 ` Yann E. MORIN
  2012-12-10 23:44 ` [Buildroot] [PATCH 38/52] package/qemu: enable use of the curses frontend Yann E. MORIN
                   ` (14 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:44 UTC (permalink / raw)
  To: buildroot

QEMU can use libcurl as a block backend, to access remote block devices.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |   10 ++++++++++
 package/qemu/qemu.mk   |    8 +++++++-
 2 files changed, 17 insertions(+), 1 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index 237fb7b..47857ec 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -128,6 +128,16 @@ config BR2_PACKAGE_QEMU_VIRTFS
 	  file-system called 9p, and can be accelerated by using the 9p
 	  virtio).
 
+config BR2_PACKAGE_QEMU_CURL
+	bool "Enable remote block-devices using cURL"
+	depends on !BR2_PREFER_STATIC_LIB
+	select BR2_PACKAGE_LIBCURL
+	help
+	  Say 'y' to access remote block-devices using libcurl.
+
+comment "cURL support is not possible with static linking"
+    depends on BR2_PREFER_STATIC_LIB
+
 comment "Misc. features"
 
 config BR2_PACKAGE_QEMU_UUID
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index b34ff69..e0270f0 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -155,6 +155,13 @@ else
 QEMU_OPTS += --disable-virtfs
 endif
 
+ifeq ($(BR2_PACKAGE_QEMU_CURL),y)
+QEMU_OPTS += --enable-curl
+QEMU_DEPENDENCIES += libcurl
+else
+QEMU_OPTS += --disable-curl
+endif
+
 ifeq ($(BR2_PACKAGE_QEMU_UUID),y)
 QEMU_OPTS += --enable-uuid
 QEMU_DEPENDENCIES += util-linux
@@ -262,7 +269,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-vnc-sasl                  \
 	        --disable-brlapi                    \
 	        --disable-curses                    \
-	        --disable-curl                      \
 	        --disable-fdt                       \
 	        --disable-bluez                     \
 	        --disable-guest-base                \
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 38/52] package/qemu: enable use of the curses frontend
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (36 preceding siblings ...)
  2012-12-10 23:44 ` [Buildroot] [PATCH 37/52] package/qemu: add support for cURL Yann E. MORIN
@ 2012-12-10 23:44 ` Yann E. MORIN
  2012-12-10 23:44 ` [Buildroot] [PATCH 39/52] package/qemu: add BlueZ connectivity Yann E. MORIN
                   ` (13 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:44 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |   11 +++++++++++
 package/qemu/qemu.mk   |    8 +++++++-
 2 files changed, 18 insertions(+), 1 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index 47857ec..15239a7 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -112,6 +112,17 @@ config BR2_PACKAGE_QEMU_SDL
 	  Say 'y' to enable the SDL frontend, that is, a graphical window
 	  presenting the VM's display.
 
+config BR2_PACKAGE_QEMU_CURSES
+	bool "Enable the curses frontend"
+	select BR2_PACKAGE_NCURSES
+	help
+	  Say 'y' to use curses to display the text-mode of VGA outpout.
+	  
+	  If the VM's graphic adapter does not support VGA text-mode, or it
+	  is in graphical mode, then nothing will be displayed with this
+	  frontend (although you can still use the SDL or VNC frontends to
+	  display the graphical output).
+
 comment "Block backends"
 
 config BR2_PACKAGE_QEMU_VIRTFS
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index e0270f0..90197f9 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -149,6 +149,13 @@ else
 QEMU_OPTS += --disable-sdl
 endif
 
+ifeq ($(BR2_PACKAGE_QEMU_CURSES),y)
+QEMU_OPTS += --enable-curses
+QEMU_DEPENDENCIES += ncurses
+else
+QEMU_OPTS += --disable-curses
+endif
+
 ifeq ($(BR2_PACKAGE_QEMU_VIRTFS),y)
 QEMU_OPTS += --enable-virtfs
 else
@@ -268,7 +275,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-slirp                     \
 	        --disable-vnc-sasl                  \
 	        --disable-brlapi                    \
-	        --disable-curses                    \
 	        --disable-fdt                       \
 	        --disable-bluez                     \
 	        --disable-guest-base                \
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 39/52] package/qemu: add BlueZ connectivity
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (37 preceding siblings ...)
  2012-12-10 23:44 ` [Buildroot] [PATCH 38/52] package/qemu: enable use of the curses frontend Yann E. MORIN
@ 2012-12-10 23:44 ` Yann E. MORIN
  2012-12-10 23:45 ` [Buildroot] [PATCH 40/52] package/qemu: add AIO support Yann E. MORIN
                   ` (12 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:44 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |   11 +++++++++++
 package/qemu/qemu.mk   |    8 +++++++-
 2 files changed, 18 insertions(+), 1 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index 15239a7..d912036 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -149,6 +149,17 @@ config BR2_PACKAGE_QEMU_CURL
 comment "cURL support is not possible with static linking"
     depends on BR2_PREFER_STATIC_LIB
 
+comment "Networking"
+
+config BR2_PACKAGE_QEMU_BLUEZ
+	bool "Enable BlueZ connectivity"
+	depends on BR2_PACKAGE_BLUEZ_UTILS
+	help
+	  Say 'y' here to enable BlueZ (bluetooth) connectivity in QEMU.
+
+comment "BlueZ connectivity depends on bluez-utils"
+	depends on !BR2_PACKAGE_BLUEZ_UTILS
+
 comment "Misc. features"
 
 config BR2_PACKAGE_QEMU_UUID
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index 90197f9..1657b8f 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -169,6 +169,13 @@ else
 QEMU_OPTS += --disable-curl
 endif
 
+ifeq ($(BR2_PACKAGE_QEMU_BLUEZ),y)
+QEMU_OPTS += --enable-bluez
+QEMU_DEPENDENCIES += bluez_utils
+else
+QEMU_OPTS += --disable-bluez
+endif
+
 ifeq ($(BR2_PACKAGE_QEMU_UUID),y)
 QEMU_OPTS += --enable-uuid
 QEMU_DEPENDENCIES += util-linux
@@ -276,7 +283,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-vnc-sasl                  \
 	        --disable-brlapi                    \
 	        --disable-fdt                       \
-	        --disable-bluez                     \
 	        --disable-guest-base                \
 	        --disable-vde                       \
 	        --disable-linux-aio                 \
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 40/52] package/qemu: add AIO support
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (38 preceding siblings ...)
  2012-12-10 23:44 ` [Buildroot] [PATCH 39/52] package/qemu: add BlueZ connectivity Yann E. MORIN
@ 2012-12-10 23:45 ` Yann E. MORIN
  2012-12-10 23:45 ` [Buildroot] [PATCH 41/52] package/qemu: add support for VDE switches Yann E. MORIN
                   ` (11 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:45 UTC (permalink / raw)
  To: buildroot

Add support for Asynchronous Input/Ouput (AIO).

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |    9 +++++++++
 package/qemu/qemu.mk   |    8 +++++++-
 2 files changed, 16 insertions(+), 1 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index d912036..c91ce33 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -149,6 +149,15 @@ config BR2_PACKAGE_QEMU_CURL
 comment "cURL support is not possible with static linking"
     depends on BR2_PREFER_STATIC_LIB
 
+config BR2_PACKAGE_QEMU_AIO
+	bool "Enable AIO"
+	depends on BR2_PACKAGE_LIBAIO
+	help
+	  Say 'y' here to enable Asynchronous Input/Output (AIO).
+
+comment "AIO support depends on libaio"
+	depends on !BR2_PACKAGE_LIBAIO
+
 comment "Networking"
 
 config BR2_PACKAGE_QEMU_BLUEZ
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index 1657b8f..941babc 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -169,6 +169,13 @@ else
 QEMU_OPTS += --disable-curl
 endif
 
+ifeq ($(BR2_PACKAGE_QEMU_AIO),y)
+QEMU_OPTS += --enable-linux-aio
+QEMU_DEPENDENCIES += libaio
+else
+QEMU_OPTS += --disable-linux-aio
+endif
+
 ifeq ($(BR2_PACKAGE_QEMU_BLUEZ),y)
 QEMU_OPTS += --enable-bluez
 QEMU_DEPENDENCIES += bluez_utils
@@ -285,7 +292,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-fdt                       \
 	        --disable-guest-base                \
 	        --disable-vde                       \
-	        --disable-linux-aio                 \
 	        --disable-docs                      \
 	        --disable-spice                     \
 	        --disable-rbd                       \
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 41/52] package/qemu: add support for VDE switches
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (39 preceding siblings ...)
  2012-12-10 23:45 ` [Buildroot] [PATCH 40/52] package/qemu: add AIO support Yann E. MORIN
@ 2012-12-10 23:45 ` Yann E. MORIN
  2012-12-10 23:45 ` [Buildroot] [PATCH 42/52] package/qemu: add iSCSI support Yann E. MORIN
                   ` (10 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:45 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |    7 +++++++
 package/qemu/qemu.mk   |    8 +++++++-
 2 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index c91ce33..38bb290 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -169,6 +169,13 @@ config BR2_PACKAGE_QEMU_BLUEZ
 comment "BlueZ connectivity depends on bluez-utils"
 	depends on !BR2_PACKAGE_BLUEZ_UTILS
 
+config BR2_PACKAGE_QEMU_VDE
+	bool "Enable VDE"
+	select BR2_PACKAGE_VDE2
+	help
+	  Say 'y' here to have QEMU connect to VDE (Virtual Distributed
+	  Ethernet) switches.
+
 comment "Misc. features"
 
 config BR2_PACKAGE_QEMU_UUID
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index 941babc..eaea30c 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -183,6 +183,13 @@ else
 QEMU_OPTS += --disable-bluez
 endif
 
+ifeq ($(BR2_PACKAGE_QEMU_VDE),y)
+QEMU_OPTS += --enable-vde
+QEMU_DEPENDENCIES += vde2
+else
+QEMU_OPTS += --disable-vde
+endif
+
 ifeq ($(BR2_PACKAGE_QEMU_UUID),y)
 QEMU_OPTS += --enable-uuid
 QEMU_DEPENDENCIES += util-linux
@@ -291,7 +298,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-brlapi                    \
 	        --disable-fdt                       \
 	        --disable-guest-base                \
-	        --disable-vde                       \
 	        --disable-docs                      \
 	        --disable-spice                     \
 	        --disable-rbd                       \
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 42/52] package/qemu: add iSCSI support
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (40 preceding siblings ...)
  2012-12-10 23:45 ` [Buildroot] [PATCH 41/52] package/qemu: add support for VDE switches Yann E. MORIN
@ 2012-12-10 23:45 ` Yann E. MORIN
  2012-12-10 23:45 ` [Buildroot] [PATCH 43/52] package/qemu: add support for USB redirection Yann E. MORIN
                   ` (9 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:45 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |    6 ++++++
 package/qemu/qemu.mk   |    8 +++++++-
 2 files changed, 13 insertions(+), 1 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index 38bb290..a10abb1 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -149,6 +149,12 @@ config BR2_PACKAGE_QEMU_CURL
 comment "cURL support is not possible with static linking"
     depends on BR2_PREFER_STATIC_LIB
 
+config BR2_PACKAGE_QEMU_ISCSI
+	bool "Enable remote block-devices using iSCSI"
+	select BR2_PACKAGE_LIBISCSI
+	help
+	  Say 'y' here to have QEMU use iSCSI targets as block-devices.
+
 config BR2_PACKAGE_QEMU_AIO
 	bool "Enable AIO"
 	depends on BR2_PACKAGE_LIBAIO
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index eaea30c..4c67215 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -169,6 +169,13 @@ else
 QEMU_OPTS += --disable-curl
 endif
 
+ifeq ($(BR2_PACKAGE_QEMU_ISCSI),y)
+QEMU_OPTS += --enable-libiscsi
+QEMU_DEPENDENCIES += libiscsi
+else
+QEMU_OPTS += --disable-libiscsi
+endif
+
 ifeq ($(BR2_PACKAGE_QEMU_AIO),y)
 QEMU_OPTS += --enable-linux-aio
 QEMU_DEPENDENCIES += libaio
@@ -301,7 +308,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-docs                      \
 	        --disable-spice                     \
 	        --disable-rbd                       \
-	        --disable-libiscsi                  \
 	        --disable-usb-redir                 \
 	        --disable-smartcard                 \
 	        --disable-strip                     \
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 43/52] package/qemu: add support for USB redirection
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (41 preceding siblings ...)
  2012-12-10 23:45 ` [Buildroot] [PATCH 42/52] package/qemu: add iSCSI support Yann E. MORIN
@ 2012-12-10 23:45 ` Yann E. MORIN
  2012-12-10 23:45 ` [Buildroot] [PATCH 44/52] package/qemu: add support for Spice Yann E. MORIN
                   ` (8 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:45 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |    9 +++++++++
 package/qemu/qemu.mk   |    8 +++++++-
 2 files changed, 16 insertions(+), 1 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index a10abb1..322066b 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -155,6 +155,15 @@ config BR2_PACKAGE_QEMU_ISCSI
 	help
 	  Say 'y' here to have QEMU use iSCSI targets as block-devices.
 
+config BR2_PACKAGE_QEMU_USBREDIR
+	bool "Enable USB redirection"
+	depends on BR2_PACKAGE_USBREDIR
+	help
+	  Say 'y' here to have QEMU support USB redirection over the network.
+
+comment "USB redirection requires usbredir"
+	depends on !BR2_PACKAGE_USBREDIR
+
 config BR2_PACKAGE_QEMU_AIO
 	bool "Enable AIO"
 	depends on BR2_PACKAGE_LIBAIO
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index 4c67215..8da3069 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -176,6 +176,13 @@ else
 QEMU_OPTS += --disable-libiscsi
 endif
 
+ifeq ($(BR2_PACKAGE_QEMU_USBREDIR),y)
+QEMU_OPTS += --enable-usb-redir
+QEMU_DEPENDENCIES += usbredir
+else
+QEMU_OPTS += --disable-usb-redir
+endif
+
 ifeq ($(BR2_PACKAGE_QEMU_AIO),y)
 QEMU_OPTS += --enable-linux-aio
 QEMU_DEPENDENCIES += libaio
@@ -308,7 +315,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-docs                      \
 	        --disable-spice                     \
 	        --disable-rbd                       \
-	        --disable-usb-redir                 \
 	        --disable-smartcard                 \
 	        --disable-strip                     \
 	        --disable-seccomp                   \
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 44/52] package/qemu: add support for Spice
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (42 preceding siblings ...)
  2012-12-10 23:45 ` [Buildroot] [PATCH 43/52] package/qemu: add support for USB redirection Yann E. MORIN
@ 2012-12-10 23:45 ` Yann E. MORIN
  2012-12-10 23:45 ` [Buildroot] [PATCH 45/52] package/qemu: enable sound Yann E. MORIN
                   ` (7 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:45 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |    9 +++++++++
 package/qemu/qemu.mk   |    8 +++++++-
 2 files changed, 16 insertions(+), 1 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index 322066b..deabb6f 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -123,6 +123,15 @@ config BR2_PACKAGE_QEMU_CURSES
 	  frontend (although you can still use the SDL or VNC frontends to
 	  display the graphical output).
 
+config BR2_PACKAGE_QEMU_SPICE
+	bool "Enable Spice frontend"
+	depends on BR2_PACKAGE_SPICE
+	help
+	  Say 'y' here to have QEMU support Spice as a (VNC-like) frontend.
+
+comment "Spice support requires spice-server"
+	depends on !BR2_PACKAGE_SPICE
+
 comment "Block backends"
 
 config BR2_PACKAGE_QEMU_VIRTFS
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index 8da3069..34a3a04 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -156,6 +156,13 @@ else
 QEMU_OPTS += --disable-curses
 endif
 
+ifeq ($(BR2_PACKAGE_QEMU_SPICE),y)
+QEMU_OPTS += --enable-spice
+QEMU_DEPENDENCIES += spice
+else
+QEMU_OPTS += --disable-spice
+endif
+
 ifeq ($(BR2_PACKAGE_QEMU_VIRTFS),y)
 QEMU_OPTS += --enable-virtfs
 else
@@ -313,7 +320,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-fdt                       \
 	        --disable-guest-base                \
 	        --disable-docs                      \
-	        --disable-spice                     \
 	        --disable-rbd                       \
 	        --disable-smartcard                 \
 	        --disable-strip                     \
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 45/52] package/qemu: enable sound
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (43 preceding siblings ...)
  2012-12-10 23:45 ` [Buildroot] [PATCH 44/52] package/qemu: add support for Spice Yann E. MORIN
@ 2012-12-10 23:45 ` Yann E. MORIN
  2012-12-10 23:45 ` [Buildroot] [PATCH 46/52] package/qemu: add support for libseccomp Yann E. MORIN
                   ` (6 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:45 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |   38 ++++++++++++++++++++++++++++++++++++++
 package/qemu/qemu.mk   |   19 +++++++++++++++++--
 2 files changed, 55 insertions(+), 2 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index deabb6f..dad72a8 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -200,6 +200,44 @@ config BR2_PACKAGE_QEMU_VDE
 	  Say 'y' here to have QEMU connect to VDE (Virtual Distributed
 	  Ethernet) switches.
 
+comment "Sound"
+
+config BR2_PACKAGE_QEMU_SOUND_CARDS
+	string "Enable sound cards"
+	default "ac97 es1370 hda"
+	help
+	  Enter here the list of sound cards you want QEMU to emulate.
+	  The available sound cards are:
+	    ac97 es1370 sb16 cs4231a adlib gus hda
+	  
+	  The default is: ac97 es1370 hda
+	  
+	  Note: even if you say 'n' to both alsa and SDL drivers, below, QEMU
+	  always include the 'wav' driver, which stores the generated sound
+	  into a file, and the 'none' driver, which discards generated sound.
+
+config BR2_PACKAGE_QEMU_MIXEMU
+	bool "Enable mixer emulation"
+	help
+	  Say 'y' here to have QEMU emulate a mixer device.
+
+config BR2_PACKAGE_QEMU_SOUND_ALSA
+	bool "Enable sound via alsa"
+	select BR2_PACKAGE_ALSA_LIB
+	help
+	  Say 'y' here to have QEMU play sound from the VMs via alsa.
+	  
+	  Note: this is only for system emulation, not user emulation.
+
+config BR2_PACKAGE_QEMU_SOUND_SDL
+	bool "Enable sound via SDL"
+	select BR2_PACKAGE_QEMU_SDL # Requires that SDL frontend be selected
+	select BR2_PACKAGE_SDL
+	help
+	  Say 'y' here to have QEMU play sound from the VMs via SDL.
+	  
+	  Note: this is only for system emulation, not user emulation.
+
 comment "Misc. features"
 
 config BR2_PACKAGE_QEMU_UUID
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index 34a3a04..dfe9cbb 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -211,6 +211,23 @@ else
 QEMU_OPTS += --disable-vde
 endif
 
+QEMU_SND_DRV =
+ifeq ($(BR2_PACKAGE_QEMU_SOUND_ALSA),y)
+QEMU_SND_DRV += alsa
+QEMU_DEPENDENCIES += alsa-lib
+endif
+ifeq ($(BR2_PACKAGE_QEMU_SOUND_SDL),y)
+QEMU_SND_DRV += sdl
+QEMU_DEPENDENCIES += sdl
+endif
+ifneq ($(QEMU_SND_DRV),)
+QEMU_OPTS += --audio-drv-list="$(QEMU_SND_DRV)"
+endif
+QEMU_OPTS += --audio-card-list=$(BR2_PACKAGE_QEMU_SOUND_CARDS)
+ifeq ($(BR2_PACKAGE_QEMU_MIXEMU),y)
+QEMU_OPTS += --enable-mixemu
+endif
+
 ifeq ($(BR2_PACKAGE_QEMU_UUID),y)
 QEMU_OPTS += --enable-uuid
 QEMU_DEPENDENCIES += util-linux
@@ -307,8 +324,6 @@ define QEMU_CONFIGURE_CMDS
 	    ./configure                             \
 	        --prefix=/usr                       \
 	        --cross-prefix=$(TARGET_CROSS)      \
-	        --audio-drv-list=                   \
-	        --audio-card-list=                  \
 	        --enable-kvm                        \
 	        --enable-nptl                       \
 	        --enable-vhost-net                  \
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 46/52] package/qemu: add support for libseccomp
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (44 preceding siblings ...)
  2012-12-10 23:45 ` [Buildroot] [PATCH 45/52] package/qemu: enable sound Yann E. MORIN
@ 2012-12-10 23:45 ` Yann E. MORIN
  2012-12-10 23:45 ` [Buildroot] [PATCH 47/52] package/qemu: option to build the docs Yann E. MORIN
                   ` (5 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:45 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |    7 +++++++
 package/qemu/qemu.mk   |    8 +++++++-
 2 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index dad72a8..4aa8647 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -263,6 +263,13 @@ config BR2_PACKAGE_QEMU_ATTR
 	  Say 'y' here to have QEMU support attributes (attr) and eXtended
 	  attibutes (xattr).
 
+config BR2_PACKAGE_QEMU_SECCOMP
+	bool "Enable seccomp filter"
+	select BR2_PACKAGE_LIBSECCOMP
+	help
+	  Say 'y' here to have QEMU to use the Linux kernel's seccomp filter,
+	  to more tightly confine the VMs.
+
 config BR2_PACKAGE_QEMU_BLOBS
 	bool "Install binary blobs"
 	default y
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index dfe9cbb..a980c76 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -251,6 +251,13 @@ else
 QEMU_OPTS += --disable-attr
 endif
 
+ifeq ($(BR2_PACKAGE_QEMU_SECCOMP),y)
+QEMU_OPTS += --enable-seccomp
+QEMU_DEPENDENCIES += libseccomp
+else
+QEMU_OPTS += --disable-seccomp
+endif
+
 ifeq ($(BR2_PACKAGE_QEMU_BLOBS),)
 QEMU_OPTS += --disable-blobs
 endif
@@ -338,7 +345,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-rbd                       \
 	        --disable-smartcard                 \
 	        --disable-strip                     \
-	        --disable-seccomp                   \
 	        --disable-sparse                    \
 	        $(QEMU_OPTS)                        \
 	)
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 47/52] package/qemu: option to build the docs
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (45 preceding siblings ...)
  2012-12-10 23:45 ` [Buildroot] [PATCH 46/52] package/qemu: add support for libseccomp Yann E. MORIN
@ 2012-12-10 23:45 ` Yann E. MORIN
  2012-12-10 23:45 ` [Buildroot] [PATCH 48/52] package/qemu: move sub-options into a sub-menu Yann E. MORIN
                   ` (4 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:45 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/qemu.mk |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index a980c76..1ee1afa 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -262,6 +262,12 @@ ifeq ($(BR2_PACKAGE_QEMU_BLOBS),)
 QEMU_OPTS += --disable-blobs
 endif
 
+ifeq ($(BR2_HAVE_DOCUMENTATION),y)
+QEMU_OPTS += --enable-docs
+else
+QEMU_OPTS += --disable-docs
+endif
+
 # Post-install removal of unwanted keymaps:
 # - if we want 'all', we do nothing;
 # - if we want none, we completely remove the keymap dir
@@ -341,7 +347,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-brlapi                    \
 	        --disable-fdt                       \
 	        --disable-guest-base                \
-	        --disable-docs                      \
 	        --disable-rbd                       \
 	        --disable-smartcard                 \
 	        --disable-strip                     \
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 48/52] package/qemu: move sub-options into a sub-menu
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (46 preceding siblings ...)
  2012-12-10 23:45 ` [Buildroot] [PATCH 47/52] package/qemu: option to build the docs Yann E. MORIN
@ 2012-12-10 23:45 ` Yann E. MORIN
  2012-12-10 23:45 ` [Buildroot] [PATCH 49/52] package/qemu: enable a static build Yann E. MORIN
                   ` (3 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:45 UTC (permalink / raw)
  To: buildroot

As there are now quite a few options to QEMU, move them into their own
sub-menu, so it looks a bit less crowded in the 'misc' menu.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index 4aa8647..435775a 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -2,7 +2,7 @@ comment "QEMU requires a toolchain with threads"
 	depends on !BR2_i386 && !BR2_x86_64
 	depends on !BR2_TOOLCHAIN_HAS_THREADS
 
-config BR2_PACKAGE_QEMU
+menuconfig BR2_PACKAGE_QEMU
 	bool "QEMU"
 	depends on BR2_i386 || BR2_x86_64
 	depends on BR2_TOOLCHAIN_HAS_THREADS
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 49/52] package/qemu: enable a static build
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (47 preceding siblings ...)
  2012-12-10 23:45 ` [Buildroot] [PATCH 48/52] package/qemu: move sub-options into a sub-menu Yann E. MORIN
@ 2012-12-10 23:45 ` Yann E. MORIN
  2012-12-10 23:45 ` [Buildroot] [PATCH 50/52] package/dtc: new package Yann E. MORIN
                   ` (2 subsequent siblings)
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:45 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

---
It can be useful to have a statically-linked QEMU (especially the
linux-user and bsd-user emulators) to avoid run-time issues with
dynamically-loaded libraries.

There is an issue where QEMU could not be able to properly (re)map
libraries in memory due to some overlap between its own memory
mappings and the mappings of the user application being translated
(it's a complex issue, so don't count on me to properly explain it,
I did not understood it completely either... :-/ ).
---
 package/qemu/Config.in              |   48 +++++++++++++++++++----
 package/qemu/qemu-static-curl.patch |   72 +++++++++++++++++++++++++++++++++++
 package/qemu/qemu-static-sdl.patch  |   54 ++++++++++++++++++++++++++
 package/qemu/qemu.mk                |    4 ++
 4 files changed, 170 insertions(+), 8 deletions(-)
 create mode 100644 package/qemu/qemu-static-curl.patch
 create mode 100644 package/qemu/qemu-static-sdl.patch

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index 435775a..f88a1f4 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -99,11 +99,11 @@ config BR2_PACKAGE_QEMU_VNC_JPEG
 config BR2_PACKAGE_QEMU_VNC_TLS
 	bool "TLS encryption"
 	depends on BR2_PACKAGE_QEMU_VNC
-	depends on !BR2_PREFER_STATIC_LIB
+	depends on !BR2_PACKAGE_QEMU_STATIC
 	select BR2_PACKAGE_GNUTLS
 
 comment "VNC TLS encryption does not work for static link"
-    depends on BR2_PACKAGE_QEMU_VNC && BR2_PREFER_STATIC_LIB
+    depends on BR2_PACKAGE_QEMU_VNC && BR2_PACKAGE_QEMU_STATIC
 
 config BR2_PACKAGE_QEMU_SDL
 	bool "Enable SDL frontend"
@@ -126,11 +126,21 @@ config BR2_PACKAGE_QEMU_CURSES
 config BR2_PACKAGE_QEMU_SPICE
 	bool "Enable Spice frontend"
 	depends on BR2_PACKAGE_SPICE
+	depends on !BR2_PACKAGE_QEMU_STATIC || BR2_PREFER_STATIC_LIB
 	help
 	  Say 'y' here to have QEMU support Spice as a (VNC-like) frontend.
 
-comment "Spice support requires spice-server"
-	depends on !BR2_PACKAGE_SPICE
+	  Note:
+	    Spice links against alsa-libs, but alsa-libs can't be built both
+	    shared and static at the same time, so we can not link with a
+	    static spice to get a static QEMU (BR2_PACKAGE_QEMU_STATIC) if
+	    buildroot as a whole does not also build only static libraries
+	    (BR2_PREFER_STATIC_LIB).
+
+if !BR2_PACKAGE_SPICE || ( BR2_PACKAGE_QEMU_STATIC && !BR2_PREFER_STATIC_LIB )
+comment "Spice support requires spice-server, and does not work for a static"
+comment "build of QEMU unless BR2_PREFER_STATIC_LIB is set, too"
+endif
 
 comment "Block backends"
 
@@ -150,14 +160,10 @@ config BR2_PACKAGE_QEMU_VIRTFS
 
 config BR2_PACKAGE_QEMU_CURL
 	bool "Enable remote block-devices using cURL"
-	depends on !BR2_PREFER_STATIC_LIB
 	select BR2_PACKAGE_LIBCURL
 	help
 	  Say 'y' to access remote block-devices using libcurl.
 
-comment "cURL support is not possible with static linking"
-    depends on BR2_PREFER_STATIC_LIB
-
 config BR2_PACKAGE_QEMU_ISCSI
 	bool "Enable remote block-devices using iSCSI"
 	select BR2_PACKAGE_LIBISCSI
@@ -238,6 +244,24 @@ config BR2_PACKAGE_QEMU_SOUND_SDL
 	  
 	  Note: this is only for system emulation, not user emulation.
 
+<<<<<<< HEAD
+=======
+# Alsa can not build both shared and static libs@the same time.
+# But we may want to build QEMU staticaly, even though the global
+# BR2_PREFER_STATIC_LIB is not set. Disable that case.
+config BR2_PACKAGE_QEMU_SOUND_ALSA
+	bool "Enable sound via alsa"
+	depends on !BR2_PACKAGE_QEMU_STATIC || BR2_PREFER_STATIC_LIB
+	select BR2_PACKAGE_ALSA_LIB
+	help
+	  Say 'y' here to have QEMU play sound from the VMs via alsa.
+	  
+	  Note: this is only for system emulation, not user emulation.
+
+comment "Alsa sound static link works only if BR2_PREFER_STATIC is set"
+	depends on BR2_PACKAGE_QEMU_STATIC && !BR2_PREFER_STATIC_LIB
+
+>>>>>>> dd73234... package/qemu: enable a static build
 comment "Misc. features"
 
 config BR2_PACKAGE_QEMU_UUID
@@ -296,4 +320,12 @@ config BR2_PACKAGE_QEMU_KEYMAPS
 	    - 'de fr* en-*' for german, french and english keymaps
 	    - and so on (see the QEMU source for all supported keymaps)
 
+config BR2_PREFER_STATIC_LIB
+    select BR2_PACKAGE_QEMU_STATIC
+
+config BR2_PACKAGE_QEMU_STATIC
+	bool "Build statically"
+	help
+	  Build static qemu executable(s).
+
 endif # BR2_PACKAGE_QEMU
diff --git a/package/qemu/qemu-static-curl.patch b/package/qemu/qemu-static-curl.patch
new file mode 100644
index 0000000..0029d7d
--- /dev/null
+++ b/package/qemu/qemu-static-curl.patch
@@ -0,0 +1,72 @@
+configure: fix detection for cURL libs when static linking
+
+Currently, to check for cURL, configure uses either pkg-config (the default),
+or curl-config (as a fallback).
+
+But curl-config and pkg-config do not have the same set of options:
+  - to check for shared libs, both use the option: --libs
+  - to check for static libs:
+    - pkg-config uses: --static --libs
+    - curl-config uses: --static-libs
+
+To add to the complexity, pkg-config is called through the querry_pkg_config
+wrapper, that already passes --static when static linking is required, but
+there is no such wrapper for curl-config, so we miss the occasion to pass
+--static-libs
+
+To fix this:
+  - introduce a new variable QEMU_XXX_CONFIG_LIBS_FLAGS that mirrors the
+    behavior of QEMU_PKG_CONFIG_FLAGS; this variable can be used by all
+    xxx-config scripts (eg. curl-config, but later sdl-config too).
+    Default it to '--libs', which is for shared linking;
+  - properly use either --libs for pkg-config (--static is already takend
+    care of in the wrapper), or $QEMU_XXX_CONFIG_LIBS_FLAGS for
+    curl-config.
+    
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+
+---
+Patch sent upstream:
+    http://lists.nongnu.org/archive/html/qemu-trivial/2012-08/msg00165.html
+
+diff --git a/configure b/configure
+index d97fd81..e6a7c14 100755
+--- a/configure
++++ b/configure
+@@ -101,7 +101,7 @@ audio_win_int=""
+ cc_i386=i386-pc-linux-gnu-gcc
+ libs_qga=""
+ debug_info="yes"
+-
++QEMU_XXX_CONFIG_LIBS_FLAGS="--libs"
+ target_list=""
+ 
+ # Default value for a variable defining feature "foo".
+@@ -580,6 +580,7 @@ for opt do
+     static="yes"
+     LDFLAGS="-static $LDFLAGS"
+     QEMU_PKG_CONFIG_FLAGS="--static $QEMU_PKG_CONFIG_FLAGS"
++    QEMU_XXX_CONFIG_LIBS_FLAGS="--static-libs"
+   ;;
+   --mandir=*) mandir="$optarg"
+   ;;
+@@ -1977,8 +1978,10 @@ fi
+ 
+ if $pkg_config libcurl --modversion >/dev/null 2>&1; then
+   curlconfig="$pkg_config libcurl"
++  curlconfiglibs="--libs"
+ else
+   curlconfig=curl-config
++  curlconfiglibs="$QEMU_XXX_CONFIG_LIBS_FLAGS"
+ fi
+ 
+ if test "$curl" != "no" ; then
+@@ -1987,7 +1990,7 @@ if test "$curl" != "no" ; then
+ int main(void) { curl_easy_init(); curl_multi_setopt(0, 0, 0); return 0; }
+ EOF
+   curl_cflags=`$curlconfig --cflags 2>/dev/null`
+-  curl_libs=`$curlconfig --libs 2>/dev/null`
++  curl_libs=`$curlconfig $curlconfiglibs 2>/dev/null`
+   if compile_prog "$curl_cflags" "$curl_libs" ; then
+     curl=yes
+     libs_tools="$curl_libs $libs_tools"
diff --git a/package/qemu/qemu-static-sdl.patch b/package/qemu/qemu-static-sdl.patch
new file mode 100644
index 0000000..59e4a60
--- /dev/null
+++ b/package/qemu/qemu-static-sdl.patch
@@ -0,0 +1,54 @@
+configure: fix detection for SDL libs when static linking
+
+Currently, configure checks for SDL libs with either pkg-config (the
+default), or with sdl-config (as a fallback).
+
+As for cURL (previous patch), sdl-config does not have the same set of
+options as pkg-config:
+  - to check for shared libs, both use the option: --libs
+  - to check for static libs:
+    - pkg-config uses: --static --libs
+    - curl-config uses: --static-libs
+
+Fix that by using the previously introduced $QEMU_XXX_CONFIG_LIBS_FLAGS
+variable, the way ot was done previously for cURL.
+
+Also, simplify the code-path for checking for SDL libs with a single,
+non-conditional call to $sdlconfig, which is either pkg-config or
+sdl-config, as checked just above.
+
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+
+---
+Patch sent upstream:
+    http://lists.nongnu.org/archive/html/qemu-trivial/2012-08/msg00166.html
+
+diff --git a/configure b/configure
+index e6a7c14..6bfedc7 100755
+--- a/configure
++++ b/configure
+@@ -1547,9 +1547,11 @@ fi
+ 
+ if $pkg_config sdl --modversion >/dev/null 2>&1; then
+   sdlconfig="$pkg_config sdl"
++  sdlconfiglibs="--libs"
+   _sdlversion=`$sdlconfig --modversion 2>/dev/null | sed 's/[^0-9]//g'`
+ elif has ${sdl_config}; then
+   sdlconfig="$sdl_config"
++  sdlconfiglibs="$QEMU_XXX_CONFIG_LIBS_FLAGS"
+   _sdlversion=`$sdlconfig --version | sed 's/[^0-9]//g'`
+ else
+   if test "$sdl" = "yes" ; then
+@@ -1569,11 +1571,7 @@ if test "$sdl" != "no" ; then
+ int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
+ EOF
+   sdl_cflags=`$sdlconfig --cflags 2> /dev/null`
+-  if test "$static" = "yes" ; then
+-    sdl_libs=`$sdlconfig --static-libs 2>/dev/null`
+-  else
+-    sdl_libs=`$sdlconfig --libs 2> /dev/null`
+-  fi
++  sdl_libs=`$sdlconfig $sdlconfiglibs 2> /dev/null`
+   if compile_prog "$sdl_cflags" "$sdl_libs" ; then
+     if test "$_sdlversion" -lt 121 ; then
+       sdl_too_old=yes
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index 1ee1afa..f113892 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -268,6 +268,10 @@ else
 QEMU_OPTS += --disable-docs
 endif
 
+ifeq ($(BR2_PACKAGE_QEMU_STATIC),y)
+QEMU_OPTS += --static
+endif
+
 # Post-install removal of unwanted keymaps:
 # - if we want 'all', we do nothing;
 # - if we want none, we completely remove the keymap dir
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 50/52] package/dtc: new package
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (48 preceding siblings ...)
  2012-12-10 23:45 ` [Buildroot] [PATCH 49/52] package/qemu: enable a static build Yann E. MORIN
@ 2012-12-10 23:45 ` Yann E. MORIN
  2012-12-11 12:38   ` Thomas De Schampheleire
  2012-12-10 23:45 ` [Buildroot] [PATCH 51/52] package/dtc: add option to install programs Yann E. MORIN
  2012-12-10 23:45 ` [Buildroot] [PATCH 52/52] package/qemu: add support for FDT Yann E. MORIN
  51 siblings, 1 reply; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:45 UTC (permalink / raw)
  To: buildroot

dtc is the Device Tree Compiler, and manipulates device trees.

Cc: Arnout Vandecappelle <arnout@mind.be>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

---
Although Arnout suggested to move it out of the libraries sub-menu,
I kept it there, as by default, only the library is installed, like
it is done for, eg., libcurl.
---
 package/Config.in                          |    1 +
 package/dtc/Config.in                      |    9 +++++++
 package/dtc/dtc-extra_cflags.patch         |   27 ++++++++++++++++++++++
 package/dtc/dtc-separate-lib-install.patch |   28 +++++++++++++++++++++++
 package/dtc/dtc.mk                         |   34 ++++++++++++++++++++++++++++
 5 files changed, 99 insertions(+), 0 deletions(-)
 create mode 100644 package/dtc/Config.in
 create mode 100644 package/dtc/dtc-extra_cflags.patch
 create mode 100644 package/dtc/dtc-separate-lib-install.patch
 create mode 100644 package/dtc/dtc.mk

diff --git a/package/Config.in b/package/Config.in
index a93aed2..ef7f44d 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -417,6 +417,7 @@ endmenu
 
 menu "Hardware handling"
 source "package/ccid/Config.in"
+source "package/dtc/Config.in"
 source "package/lcdapi/Config.in"
 source "package/libaio/Config.in"
 source "package/libraw1394/Config.in"
diff --git a/package/dtc/Config.in b/package/dtc/Config.in
new file mode 100644
index 0000000..96225e3
--- /dev/null
+++ b/package/dtc/Config.in
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_DTC
+	bool "dtc"
+	help
+	  The Device Tree Compiler, dtc, takes as input a device-tree in
+	  a given format and outputs a device-tree in another format.
+	  
+	  Note that only the library is installed for now.
+	  
+	  http://git.jdl.com/gitweb/?p=dtc.git  (no home page)
diff --git a/package/dtc/dtc-extra_cflags.patch b/package/dtc/dtc-extra_cflags.patch
new file mode 100644
index 0000000..9d1882b
--- /dev/null
+++ b/package/dtc/dtc-extra_cflags.patch
@@ -0,0 +1,27 @@
+Makefile: append the CFLAGS to existing ones
+
+Allow the user to pass custom CFLAGS (eg. optimisation flags).
+
+Do not use EXTRA_CFLAGS, append to existing CFLAGS with +=  (Arnout)
+
+Cc: Arnout Vandecappelle <arnout@mind.be>
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+
+---
+Patch not sent upstream.
+
+Although not specific to buildroot, I am not sure this is the best
+way to handle user-supplied CFLAGS.
+
+diff -durN dtc-e4b497f367a3b2ae99cc52089a14a221b13a76ef.orig/Makefile dtc-e4b497f367a3b2ae99cc52089a14a221b13a76ef/Makefile
+--- dtc-e4b497f367a3b2ae99cc52089a14a221b13a76ef.orig/Makefile	2012-10-22 22:02:47.541240846 +0200
++++ dtc-e4b497f367a3b2ae99cc52089a14a221b13a76ef/Makefile	2012-10-22 22:03:21.151047833 +0200
+@@ -18,7 +18,7 @@
+ CPPFLAGS = -I libfdt -I .
+ WARNINGS = -Werror -Wall -Wpointer-arith -Wcast-qual -Wnested-externs \
+ 	-Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls
+-CFLAGS = -g -Os -fPIC -Werror $(WARNINGS)
++CFLAGS += -g -Os -fPIC -Werror $(WARNINGS)
+ 
+ BISON = bison
+ LEX = flex
diff --git a/package/dtc/dtc-separate-lib-install.patch b/package/dtc/dtc-separate-lib-install.patch
new file mode 100644
index 0000000..c86d587
--- /dev/null
+++ b/package/dtc/dtc-separate-lib-install.patch
@@ -0,0 +1,28 @@
+Makefile: add a rule to only install libfdt
+
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+
+---
+Patch not sent upstream.
+
+It's really specific to buildroot, and is probably not
+good (aka generic) enough to be pushed upstream.
+
+diff --git a/Makefile b/Makefile
+index 1169e6c..39e7190 100644
+--- a/Makefile
++++ b/Makefile
+@@ -160,10 +160,12 @@ endif
+ # intermediate target and building them again "for real"
+ .SECONDARY: $(DTC_GEN_SRCS) $(CONVERT_GEN_SRCS)
+ 
+-install: all $(SCRIPTS)
++install: all $(SCRIPTS) libfdt_install
+ 	@$(VECHO) INSTALL
+ 	$(INSTALL) -d $(DESTDIR)$(BINDIR)
+ 	$(INSTALL) $(BIN) $(SCRIPTS) $(DESTDIR)$(BINDIR)
++
++libfdt_install: libfdt
+ 	$(INSTALL) -d $(DESTDIR)$(LIBDIR)
+ 	$(INSTALL) $(LIBFDT_lib) $(DESTDIR)$(LIBDIR)
+ 	ln -sf $(notdir $(LIBFDT_lib)) $(DESTDIR)$(LIBDIR)/$(LIBFDT_soname)
diff --git a/package/dtc/dtc.mk b/package/dtc/dtc.mk
new file mode 100644
index 0000000..a0e1e35
--- /dev/null
+++ b/package/dtc/dtc.mk
@@ -0,0 +1,34 @@
+#############################################################
+#
+# dtc
+#
+#############################################################
+
+DTC_VERSION         = e4b497f367a3b2ae99cc52089a14a221b13a76ef
+DTC_SITE            = git://git.jdl.com/software/dtc.git
+DTC_LICENSE         = GPLv2+/BSD-2c
+DTC_LICENSE_FILES   = README.license GPL
+# Note: the dual-license only applies to the library.
+#       The DT compiler (dtc) is GPLv2+, but we do not install it.
+DTC_INSTALL_STAGING = YES
+
+define DTC_BUILD_CMDS
+	$(TARGET_CONFIGURE_OPTS)    \
+	CFLAGS="$(TARGET_CFLAGS)"   \
+	$(MAKE) -C $(@D) PREFIX=/usr libfdt
+endef
+
+#?libfdt_install is our own install rule added by our patch
+define DTC_INSTALL_STAGING_CMDS
+	$(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) PREFIX=/usr libfdt_install
+endef
+
+define DTC_INSTALL_TARGET_CMDS
+	$(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) PREFIX=/usr libfdt_install
+endef
+
+define DTC_CLEAN_CMDS
+	$(MAKE) -C $(@D) libfdt_clean
+endef
+
+$(eval $(generic-package))
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 51/52] package/dtc: add option to install programs
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (49 preceding siblings ...)
  2012-12-10 23:45 ` [Buildroot] [PATCH 50/52] package/dtc: new package Yann E. MORIN
@ 2012-12-10 23:45 ` Yann E. MORIN
  2012-12-10 23:45 ` [Buildroot] [PATCH 52/52] package/qemu: add support for FDT Yann E. MORIN
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:45 UTC (permalink / raw)
  To: buildroot

By default, we only install the libfdt library.

As suggested by Arnout, add an option that also
installs the few dtc programs.

Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

---
dtdiff, a diff for device trees, requires bash.

I did not add a 'depends on bash' (or a 'select' either), because
requiring bash just for that is a bit far-fetched.

Instead, at dtc install time, if bash is selected, dtdiff is installed
as usual to the target rootfs; if bash is not selected, dtdiff is
removed from the target rootfs.
---
 package/dtc/Config.in |   24 ++++++++++++++++++++++--
 package/dtc/dtc.mk    |   29 +++++++++++++++++++++++------
 2 files changed, 45 insertions(+), 8 deletions(-)

diff --git a/package/dtc/Config.in b/package/dtc/Config.in
index 96225e3..1c65a10 100644
--- a/package/dtc/Config.in
+++ b/package/dtc/Config.in
@@ -1,9 +1,29 @@
 config BR2_PACKAGE_DTC
-	bool "dtc"
+	bool "dtc (libfdt)"
 	help
 	  The Device Tree Compiler, dtc, takes as input a device-tree in
 	  a given format and outputs a device-tree in another format.
 	  
-	  Note that only the library is installed for now.
+	  Note that only the library is installed.
+	  If you want the programs, say 'y' here, and to "dtc programs", below.
 	  
 	  http://git.jdl.com/gitweb/?p=dtc.git  (no home page)
+
+if BR2_PACKAGE_DTC
+
+config BR2_PACKAGE_DTC_PROGRAMS
+	bool "dtc programs"
+	help
+	  Say 'y' here if you also want the programs on the target:
+	    - convert-dtsv0     convert from version 0 to version 1
+	    - dtc               the device tree compiler
+	    - dtdiff            compare two device trees (needs bash)
+	    - fdtdump           print a readable version of a flat device tree
+	    - fdtget            read values from device tree
+	    - fdtput            write a property value to a device tree
+	  
+	  Note: dtdiff requires bash, so if bash is not selected, dtdiff will
+	        be removed from the target file system. Enable bash if you
+	        need dtdiff on the target.
+
+endif
diff --git a/package/dtc/dtc.mk b/package/dtc/dtc.mk
index a0e1e35..42843d5 100644
--- a/package/dtc/dtc.mk
+++ b/package/dtc/dtc.mk
@@ -8,27 +8,44 @@ DTC_VERSION         = e4b497f367a3b2ae99cc52089a14a221b13a76ef
 DTC_SITE            = git://git.jdl.com/software/dtc.git
 DTC_LICENSE         = GPLv2+/BSD-2c
 DTC_LICENSE_FILES   = README.license GPL
-# Note: the dual-license only applies to the library.
-#       The DT compiler (dtc) is GPLv2+, but we do not install it.
 DTC_INSTALL_STAGING = YES
 
+ifeq ($(BR2_PACKAGE_DTC_PROGRAMS),y)
+DTC_LICENSE        += (for the library), GPLv2+ (for the executables)
+# Use default goal to build everything
+DTC_BUILD_GOAL      =
+DTC_INSTALL_GOAL    = install
+DTC_CLEAN_GOAL      = clean
+else # $(BR2_PACKAGE_DTC_PROGRAMS) != y
+DTC_BUILD_GOAL      = libfdt
+#?libfdt_install is our own install rule added by our patch
+DTC_INSTALL_GOAL    = libfdt_install
+DTC_CLEAN_GOAL      = libfdt_clean
+ifeq ($(BR2_PACKAGE_BASH),)
+DTC_POST_INSTALL_TARGET_HOOKS += DTC_POST_INSTALL_TARGET_RM_DTDIFF
+endif
+endif # $(BR2_PACKAGE_DTC_PROGRAMS) != y
+
 define DTC_BUILD_CMDS
 	$(TARGET_CONFIGURE_OPTS)    \
 	CFLAGS="$(TARGET_CFLAGS)"   \
-	$(MAKE) -C $(@D) PREFIX=/usr libfdt
+	$(MAKE) -C $(@D) PREFIX=/usr $(DTC_BUILD_GOAL)
 endef
 
-#?libfdt_install is our own install rule added by our patch
+# For staging, only the library is needed
 define DTC_INSTALL_STAGING_CMDS
 	$(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) PREFIX=/usr libfdt_install
 endef
 
 define DTC_INSTALL_TARGET_CMDS
-	$(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) PREFIX=/usr libfdt_install
+	$(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) PREFIX=/usr $(DTC_INSTALL_GOAL)
+endef
+define DTC_POST_INSTALL_TARGET_RM_DTDIFF
+	rm -f $(TARGET_DIR)/usr/bin/dtdiff
 endef
 
 define DTC_CLEAN_CMDS
-	$(MAKE) -C $(@D) libfdt_clean
+	$(MAKE) -C $(@D) $(DTC_CLEAN_GOAL)
 endef
 
 $(eval $(generic-package))
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 52/52] package/qemu: add support for FDT
  2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
                   ` (50 preceding siblings ...)
  2012-12-10 23:45 ` [Buildroot] [PATCH 51/52] package/dtc: add option to install programs Yann E. MORIN
@ 2012-12-10 23:45 ` Yann E. MORIN
  51 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-10 23:45 UTC (permalink / raw)
  To: buildroot

FDT is the Flat Device Tree, and allows QEMU to pass DTs to the VMs.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |    7 +++++++
 package/qemu/qemu.mk   |    8 +++++++-
 2 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index f88a1f4..b258df6 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -264,6 +264,13 @@ comment "Alsa sound static link works only if BR2_PREFER_STATIC is set"
 >>>>>>> dd73234... package/qemu: enable a static build
 comment "Misc. features"
 
+config BR2_PACKAGE_QEMU_FDT
+        bool "Enable FDT"
+        select BR2_PACKAGE_DTC
+        help
+          Say 'y' here to have QEMU capable of constructing Device Trees,
+          and passing them to the VMs.
+
 config BR2_PACKAGE_QEMU_UUID
 	bool "Enable VMs UUID"
 	depends on BR2_PACKAGE_UTIL_LINUX
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index f113892..5496ee5 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -228,6 +228,13 @@ ifeq ($(BR2_PACKAGE_QEMU_MIXEMU),y)
 QEMU_OPTS += --enable-mixemu
 endif
 
+ifeq ($(BR2_PACKAGE_QEMU_FDT),y)
+QEMU_OPTS += --enable-fdt
+QEMU_DEPENDENCIES += dtc
+else
+QEMU_OPTS += --disable-fdt
+endif
+
 ifeq ($(BR2_PACKAGE_QEMU_UUID),y)
 QEMU_OPTS += --enable-uuid
 QEMU_DEPENDENCIES += util-linux
@@ -349,7 +356,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-slirp                     \
 	        --disable-vnc-sasl                  \
 	        --disable-brlapi                    \
-	        --disable-fdt                       \
 	        --disable-guest-base                \
 	        --disable-rbd                       \
 	        --disable-smartcard                 \
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 50/52] package/dtc: new package
  2012-12-10 23:45 ` [Buildroot] [PATCH 50/52] package/dtc: new package Yann E. MORIN
@ 2012-12-11 12:38   ` Thomas De Schampheleire
  2012-12-11 13:07     ` Yann E. MORIN
  0 siblings, 1 reply; 56+ messages in thread
From: Thomas De Schampheleire @ 2012-12-11 12:38 UTC (permalink / raw)
  To: buildroot

Hi Yann,

On Tue, Dec 11, 2012 at 12:45 AM, Yann E. MORIN <yann.morin.1998@free.fr> wrote:
> dtc is the Device Tree Compiler, and manipulates device trees.
>
> Cc: Arnout Vandecappelle <arnout@mind.be>
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
>
> ---
> Although Arnout suggested to move it out of the libraries sub-menu,
> I kept it there, as by default, only the library is installed, like
> it is done for, eg., libcurl.
> ---
>  package/Config.in                          |    1 +
>  package/dtc/Config.in                      |    9 +++++++
>  package/dtc/dtc-extra_cflags.patch         |   27 ++++++++++++++++++++++
>  package/dtc/dtc-separate-lib-install.patch |   28 +++++++++++++++++++++++
>  package/dtc/dtc.mk                         |   34 ++++++++++++++++++++++++++++
>  5 files changed, 99 insertions(+), 0 deletions(-)
>  create mode 100644 package/dtc/Config.in
>  create mode 100644 package/dtc/dtc-extra_cflags.patch
>  create mode 100644 package/dtc/dtc-separate-lib-install.patch
>  create mode 100644 package/dtc/dtc.mk
>
> diff --git a/package/Config.in b/package/Config.in
> index a93aed2..ef7f44d 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -417,6 +417,7 @@ endmenu
>
>  menu "Hardware handling"
>  source "package/ccid/Config.in"
> +source "package/dtc/Config.in"
>  source "package/lcdapi/Config.in"
>  source "package/libaio/Config.in"
>  source "package/libraw1394/Config.in"
> diff --git a/package/dtc/Config.in b/package/dtc/Config.in
> new file mode 100644
> index 0000000..96225e3
> --- /dev/null
> +++ b/package/dtc/Config.in
> @@ -0,0 +1,9 @@
> +config BR2_PACKAGE_DTC
> +       bool "dtc"
> +       help
> +         The Device Tree Compiler, dtc, takes as input a device-tree in
> +         a given format and outputs a device-tree in another format.
> +
> +         Note that only the library is installed for now.
> +
> +         http://git.jdl.com/gitweb/?p=dtc.git  (no home page)
> diff --git a/package/dtc/dtc-extra_cflags.patch b/package/dtc/dtc-extra_cflags.patch
> new file mode 100644
> index 0000000..9d1882b
> --- /dev/null
> +++ b/package/dtc/dtc-extra_cflags.patch
> @@ -0,0 +1,27 @@
> +Makefile: append the CFLAGS to existing ones
> +
> +Allow the user to pass custom CFLAGS (eg. optimisation flags).
> +
> +Do not use EXTRA_CFLAGS, append to existing CFLAGS with +=  (Arnout)
> +
> +Cc: Arnout Vandecappelle <arnout@mind.be>
> +Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> +
> +---
> +Patch not sent upstream.
> +
> +Although not specific to buildroot, I am not sure this is the best
> +way to handle user-supplied CFLAGS.
> +
> +diff -durN dtc-e4b497f367a3b2ae99cc52089a14a221b13a76ef.orig/Makefile dtc-e4b497f367a3b2ae99cc52089a14a221b13a76ef/Makefile
> +--- dtc-e4b497f367a3b2ae99cc52089a14a221b13a76ef.orig/Makefile 2012-10-22 22:02:47.541240846 +0200
> ++++ dtc-e4b497f367a3b2ae99cc52089a14a221b13a76ef/Makefile      2012-10-22 22:03:21.151047833 +0200
> +@@ -18,7 +18,7 @@
> + CPPFLAGS = -I libfdt -I .
> + WARNINGS = -Werror -Wall -Wpointer-arith -Wcast-qual -Wnested-externs \
> +       -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls
> +-CFLAGS = -g -Os -fPIC -Werror $(WARNINGS)
> ++CFLAGS += -g -Os -fPIC -Werror $(WARNINGS)
> +
> + BISON = bison
> + LEX = flex
> diff --git a/package/dtc/dtc-separate-lib-install.patch b/package/dtc/dtc-separate-lib-install.patch
> new file mode 100644
> index 0000000..c86d587
> --- /dev/null
> +++ b/package/dtc/dtc-separate-lib-install.patch
> @@ -0,0 +1,28 @@
> +Makefile: add a rule to only install libfdt
> +
> +Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> +
> +---
> +Patch not sent upstream.
> +
> +It's really specific to buildroot, and is probably not
> +good (aka generic) enough to be pushed upstream.
> +
> +diff --git a/Makefile b/Makefile
> +index 1169e6c..39e7190 100644
> +--- a/Makefile
> ++++ b/Makefile
> +@@ -160,10 +160,12 @@ endif
> + # intermediate target and building them again "for real"
> + .SECONDARY: $(DTC_GEN_SRCS) $(CONVERT_GEN_SRCS)
> +
> +-install: all $(SCRIPTS)
> ++install: all $(SCRIPTS) libfdt_install
> +       @$(VECHO) INSTALL
> +       $(INSTALL) -d $(DESTDIR)$(BINDIR)
> +       $(INSTALL) $(BIN) $(SCRIPTS) $(DESTDIR)$(BINDIR)
> ++
> ++libfdt_install: libfdt
> +       $(INSTALL) -d $(DESTDIR)$(LIBDIR)
> +       $(INSTALL) $(LIBFDT_lib) $(DESTDIR)$(LIBDIR)
> +       ln -sf $(notdir $(LIBFDT_lib)) $(DESTDIR)$(LIBDIR)/$(LIBFDT_soname)
> diff --git a/package/dtc/dtc.mk b/package/dtc/dtc.mk
> new file mode 100644
> index 0000000..a0e1e35
> --- /dev/null
> +++ b/package/dtc/dtc.mk
> @@ -0,0 +1,34 @@
> +#############################################################
> +#
> +# dtc
> +#
> +#############################################################
> +
> +DTC_VERSION         = e4b497f367a3b2ae99cc52089a14a221b13a76ef
> +DTC_SITE            = git://git.jdl.com/software/dtc.git
> +DTC_LICENSE         = GPLv2+/BSD-2c
> +DTC_LICENSE_FILES   = README.license GPL
> +# Note: the dual-license only applies to the library.
> +#       The DT compiler (dtc) is GPLv2+, but we do not install it.
> +DTC_INSTALL_STAGING = YES
> +
> +define DTC_BUILD_CMDS
> +       $(TARGET_CONFIGURE_OPTS)    \
> +       CFLAGS="$(TARGET_CFLAGS)"   \
> +       $(MAKE) -C $(@D) PREFIX=/usr libfdt
> +endef
> +
> +# libfdt_install is our own install rule added by our patch
> +define DTC_INSTALL_STAGING_CMDS
> +       $(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) PREFIX=/usr libfdt_install
> +endef
> +
> +define DTC_INSTALL_TARGET_CMDS
> +       $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) PREFIX=/usr libfdt_install
> +endef
> +
> +define DTC_CLEAN_CMDS
> +       $(MAKE) -C $(@D) libfdt_clean
> +endef
> +
> +$(eval $(generic-package))
> --
> 1.7.2.5

Are you aware of the following code in linux/linux.mk ?

define LINUX_INSTALL_HOST_TOOLS
# Installing dtc (device tree compiler) as host tool, if selected
if grep -q "CONFIG_DTC=y" $(@D)/.config; then \
$(INSTALL) -D -m 0755 $(@D)/scripts/dtc/dtc $(HOST_DIR)/usr/bin/dtc ; \
fi
endef

In this case, the dtc shipped with the linux kernel is simply used.
This was considered to be sufficient for most cases.

If this is not true and there really is a need for the separate dtc
package, I think we should link both together in some way, either by a
comment, or by a mutually exclusive configuration, or ...

Best regards,
Thomas

^ permalink raw reply	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 50/52] package/dtc: new package
  2012-12-11 12:38   ` Thomas De Schampheleire
@ 2012-12-11 13:07     ` Yann E. MORIN
  0 siblings, 0 replies; 56+ messages in thread
From: Yann E. MORIN @ 2012-12-11 13:07 UTC (permalink / raw)
  To: buildroot

Thomas, All,

On Tuesday 11 December 2012 13:38:03 Thomas De Schampheleire wrote:
> On Tue, Dec 11, 2012 at 12:45 AM, Yann E. MORIN <yann.morin.1998@free.fr> wrote:
> > dtc is the Device Tree Compiler, and manipulates device trees.
> >
> > Cc: Arnout Vandecappelle <arnout@mind.be>
> > Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

> Are you aware of the following code in linux/linux.mk ?
> 
> define LINUX_INSTALL_HOST_TOOLS
> # Installing dtc (device tree compiler) as host tool, if selected
> if grep -q "CONFIG_DTC=y" $(@D)/.config; then \
> $(INSTALL) -D -m 0755 $(@D)/scripts/dtc/dtc $(HOST_DIR)/usr/bin/dtc ; \
> fi
> endef

I was vaguely aware of it, yes, although I did not look at it, for a
few reasons:

  - the DTC in the kernel is not at par with the DTC in the package
    (they diverge a bit, and the DTC in the kernel was recently
    resynce, cset #cd29672).

  - for QEMU, I really needed the libfdt library, not the tools; but
    the dtc in the Linux kernel does not build the libfdt library.

  - as Arnout suggested adding the tools on the target too, I deemed
    preferable to use the tools coming with the library rather than
    risk ABI incompatibility between the ones from dtc and the .ones
    from the kernel

  - the one from the kernel is a host tool, used to build the kernel
    itself, while the ones from dtc are target tools, that are supposed
    to be used to build DTCs for use by QEMU. Thus they serve two
    different purposes, and there is no strong requirement that they
    be compatible.

It's also a reason why I did not add $(eval $(host-generic-package))
in the dtc package.

And a fifth reason (the most important one, to me!):
  - I have had a patch accepted in dtc! ;-)

> In this case, the dtc shipped with the linux kernel is simply used.
> This was considered to be sufficient for most cases.

Probably, yes.

> If this is not true and there really is a need for the separate dtc
> package, I think we should link both together in some way, either by a
> comment, or by a mutually exclusive configuration, or ...

OK for a comment for now.

What could probbably be done, later, is to make the dtc package a host
package too, and have the Linux kernel depends on, and use it, instead
of its internal copy (that can be lagging behind).

Does that sound reasonable to you?

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +0/33 662376056 | Software  Designer | \ / CAMPAIGN     |   ^                |
| --==< O_o >==-- '------------.-------:  X  AGAINST      |  /e\  There is no  |
| http://ymorin.is-a-geek.org/ | (*_*) | / \ HTML MAIL    |  """  conspiracy.  |
'------------------------------'-------'------------------'--------------------'

^ permalink raw reply	[flat|nested] 56+ messages in thread

* [Buildroot] [PATCH 01/52] package/qemu: add license information
  2012-12-10 23:44 ` [Buildroot] [PATCH 01/52] package/qemu: add license information Yann E. MORIN
@ 2012-12-12  9:00   ` Peter Korsgaard
  0 siblings, 0 replies; 56+ messages in thread
From: Peter Korsgaard @ 2012-12-12  9:00 UTC (permalink / raw)
  To: buildroot

>>>>> "Yann" == Yann E MORIN <yann.morin.1998@free.fr> writes:

 Yann> QEMU is such a snakes-nest of licenses... :-/

Yeah :/

Committed, thanks.

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 56+ messages in thread

end of thread, other threads:[~2012-12-12  9:00 UTC | newest]

Thread overview: 56+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-12-10 23:44 [Buildroot] [pull request] Pull request for branch yem-qemu v5 Yann E. MORIN
2012-12-10 23:44 ` [Buildroot] [PATCH 01/52] package/qemu: add license information Yann E. MORIN
2012-12-12  9:00   ` Peter Korsgaard
2012-12-10 23:44 ` [Buildroot] [PATCH 02/52] package/qemu: fix host-qemu variable names Yann E. MORIN
2012-12-10 23:44 ` [Buildroot] [PATCH 03/52] package/qemu: fix host dependencies Yann E. MORIN
2012-12-10 23:44 ` [Buildroot] [PATCH 04/52] package/qemu: use autotools-package infrastructure Yann E. MORIN
2012-12-10 23:44 ` [Buildroot] [PATCH 05/52] package/qemu: bump version Yann E. MORIN
2012-12-10 23:44 ` [Buildroot] [PATCH 06/52] package/vde2: new package Yann E. MORIN
2012-12-10 23:44 ` [Buildroot] [PATCH 07/52] package/libiscsi: " Yann E. MORIN
2012-12-10 23:44 ` [Buildroot] [PATCH 08/52] package/usbredir: " Yann E. MORIN
2012-12-10 23:44 ` [Buildroot] [PATCH 09/52] package/celt051: " Yann E. MORIN
2012-12-10 23:44 ` [Buildroot] [PATCH 10/52] package/python-pyparsing: " Yann E. MORIN
2012-12-10 23:44 ` [Buildroot] [PATCH 11/52] package/spice-protocol: " Yann E. MORIN
2012-12-10 23:44 ` [Buildroot] [PATCH 12/52] package/cegui06: " Yann E. MORIN
2012-12-10 23:44 ` [Buildroot] [PATCH 13/52] package/slirp: " Yann E. MORIN
2012-12-10 23:44 ` [Buildroot] [PATCH 14/52] package/spice: " Yann E. MORIN
2012-12-10 23:44 ` [Buildroot] [PATCH 15/52] package/spice: enable client Yann E. MORIN
2012-12-10 23:44 ` [Buildroot] [PATCH 16/52] package/spice: enable GUI Yann E. MORIN
2012-12-10 23:44 ` [Buildroot] [PATCH 17/52] package/spice: enable slirp support Yann E. MORIN
2012-12-10 23:44 ` [Buildroot] [PATCH 18/52] package/libseccomp: new package Yann E. MORIN
2012-12-10 23:44 ` [Buildroot] [PATCH 19/52] package/keyutils: " Yann E. MORIN
2012-12-10 23:44 ` [Buildroot] [PATCH 20/52] package/pmake: add host pmake Yann E. MORIN
2012-12-10 23:44 ` [Buildroot] [PATCH 21/52] package/libbsd: new package Yann E. MORIN
2012-12-10 23:44 ` [Buildroot] [PATCH 22/52] package/libedit2: " Yann E. MORIN
2012-12-10 23:44 ` [Buildroot] [PATCH 23/52] package/ceph: " Yann E. MORIN
2012-12-10 23:44 ` [Buildroot] [PATCH 24/52] package/qemu: build for the target (i386 or x86_64 only) Yann E. MORIN
2012-12-10 23:44 ` [Buildroot] [PATCH 25/52] package/qemu: add basic target selection Yann E. MORIN
2012-12-10 23:44 ` [Buildroot] [PATCH 26/52] package/qemu: add fine-grained " Yann E. MORIN
2012-12-10 23:44 ` [Buildroot] [PATCH 27/52] package/qemu: add SDL frontends Yann E. MORIN
2012-12-10 23:44 ` [Buildroot] [PATCH 28/52] package/qemu: add option to enable/disable the VNC frontend Yann E. MORIN
2012-12-10 23:44 ` [Buildroot] [PATCH 29/52] package/qemu: add VNC jpeg and png compression Yann E. MORIN
2012-12-10 23:44 ` [Buildroot] [PATCH 30/52] package/qemu: add VNC TLS-encryption Yann E. MORIN
2012-12-10 23:44 ` [Buildroot] [PATCH 31/52] package/qemu: add option to not install blobs Yann E. MORIN
2012-12-10 23:44 ` [Buildroot] [PATCH 32/52] package/qemu: add option to remove unwanted keymaps Yann E. MORIN
2012-12-10 23:44 ` [Buildroot] [PATCH 33/52] package/qemu: add uuid support Yann E. MORIN
2012-12-10 23:44 ` [Buildroot] [PATCH 34/52] package/qemu: add support for capabilities Yann E. MORIN
2012-12-10 23:44 ` [Buildroot] [PATCH 35/52] package/qemu: add attr/xattr option Yann E. MORIN
2012-12-10 23:44 ` [Buildroot] [PATCH 36/52] package/qemu: add support for virtfs Yann E. MORIN
2012-12-10 23:44 ` [Buildroot] [PATCH 37/52] package/qemu: add support for cURL Yann E. MORIN
2012-12-10 23:44 ` [Buildroot] [PATCH 38/52] package/qemu: enable use of the curses frontend Yann E. MORIN
2012-12-10 23:44 ` [Buildroot] [PATCH 39/52] package/qemu: add BlueZ connectivity Yann E. MORIN
2012-12-10 23:45 ` [Buildroot] [PATCH 40/52] package/qemu: add AIO support Yann E. MORIN
2012-12-10 23:45 ` [Buildroot] [PATCH 41/52] package/qemu: add support for VDE switches Yann E. MORIN
2012-12-10 23:45 ` [Buildroot] [PATCH 42/52] package/qemu: add iSCSI support Yann E. MORIN
2012-12-10 23:45 ` [Buildroot] [PATCH 43/52] package/qemu: add support for USB redirection Yann E. MORIN
2012-12-10 23:45 ` [Buildroot] [PATCH 44/52] package/qemu: add support for Spice Yann E. MORIN
2012-12-10 23:45 ` [Buildroot] [PATCH 45/52] package/qemu: enable sound Yann E. MORIN
2012-12-10 23:45 ` [Buildroot] [PATCH 46/52] package/qemu: add support for libseccomp Yann E. MORIN
2012-12-10 23:45 ` [Buildroot] [PATCH 47/52] package/qemu: option to build the docs Yann E. MORIN
2012-12-10 23:45 ` [Buildroot] [PATCH 48/52] package/qemu: move sub-options into a sub-menu Yann E. MORIN
2012-12-10 23:45 ` [Buildroot] [PATCH 49/52] package/qemu: enable a static build Yann E. MORIN
2012-12-10 23:45 ` [Buildroot] [PATCH 50/52] package/dtc: new package Yann E. MORIN
2012-12-11 12:38   ` Thomas De Schampheleire
2012-12-11 13:07     ` Yann E. MORIN
2012-12-10 23:45 ` [Buildroot] [PATCH 51/52] package/dtc: add option to install programs Yann E. MORIN
2012-12-10 23:45 ` [Buildroot] [PATCH 52/52] package/qemu: add support for FDT Yann E. MORIN

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.