Skip to contentSkip to conversation

Add QEMU for runing on the target

PATCH Superseded Yann E. MORIN 3 participants 66 messages Oct 24, 2012 – Nov 13, 2012 1 message not in the archive

v1 of 4 Superseded Latest is v4 →

lore
Share & tools
lore
#0 lore raw

cover Add QEMU for runing on the target

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).

For now, I've only build-tested it for an x86_64 uClibc-based target. It's not complete, but there have been requests (on IRC) by a few users that are trrying to achieve a similar setup (looks like it). So, to avoid duplication, here's the full patchset I have here.

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

[PATCH 01/47] package/cURL: fix static link whith openSSL [PATCH 02/47] package/libfdt: new package
[PATCH 03/47] package/vde2: new package
[PATCH 04/47] package/libiscsi: new package
[PATCH 05/47] package/usbredir: new package
[PATCH 06/47] package/celt051: new package
[PATCH 07/47] package/python-pyparsing: new package
[PATCH 08/47] package/spice-protocol: new package
[PATCH 09/47] package/libcegui: new package
[PATCH 10/47] package/slirp: new package
[PATCH 11/47] package/spice-server: new package
[PATCH 12/47] package/spice: enable client
[PATCH 13/47] package/spice: enable GUI
[PATCH 14/47] package/spice: enable slirp support
[PATCH 15/47] package/libseccomp: new package
[PATCH 16/47] package/keyutils: new package
[PATCH 17/47] package/pmake: add host pmake
[PATCH 18/47] package/libbsd: new package
[PATCH 19/47] package/libedit2: new package
[PATCH 20/47] package/ceph: new package
[PATCH 21/47] package/qemu: new package
[PATCH 22/47] package/qemu: add basic target selection
[PATCH 23/47] package/qemu: add fine-grained target selection [PATCH 24/47] package/qemu: add SDL frontends
[PATCH 25/47] package/qemu: add option to enable/disable the VNC frontend [PATCH 26/47] package/qemu: add VNC jpeg and png compression [PATCH 27/47] package/qemu: add VNC TLS-encryption
[PATCH 28/47] package/qemu: add option to not install blobs [PATCH 29/47] package/qemu: add option to remove unwanted keymaps [PATCH 30/47] package/qemu: add uuid support
[PATCH 31/47] package/qemu: add support for capabilities [PATCH 32/47] package/qemu: add attr/xattr option
[PATCH 33/47] package/qemu: add support for virtfs
[PATCH 34/47] package/qemu: add support for cURL
[PATCH 35/47] package/qemu: enable use of the curses frontend [PATCH 36/47] package/qemu: add BlueZ connectivity
[PATCH 37/47] package/qemu: add AIO support
[PATCH 38/47] package/qemu: add support for FDT
[PATCH 39/47] package/qemu: add support for VDE switches [PATCH 40/47] package/qemu: add iSCSI support
[PATCH 41/47] package/qemu: add support for USB redirection [PATCH 42/47] package/qemu: add support for Spice
[PATCH 43/47] package/qemu: enable sound
[PATCH 44/47] package/qemu: add support for libseccomp
[PATCH 45/47] package/qemu: option to build the docs
[PATCH 46/47] package/qemu: move sub-options into a sub-menu [PATCH 47/47] package/qemu: enable a static build

Regards,
Yann E. MORIN.

#1 lore raw

PATCH 1/47 package/cURL: fix static link whith openSSL

When openSSL is selected, cURL is configured to use it.

But in this case, the libcurl.pc file /forgets/ to require link against -ldl.

This can happen, for example, when BR2_PREFER_STATIC_LIB is not set, but an executable wants to be linked statically (for various reasons which are irrelevant here).

Fix that by appending a 'Requires: openssl' line to the installed libcurl.pc, if openSSL is enabled.

---
 package/libcurl/libcurl.mk |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)
package/libcurl/libcurl.mk +8 -2
index 8d8fdb4..80e2922 100644
@@ -29,14 +29,20 @@ define LIBCURL_TARGET_CLEANUP
 	rm -rf $(TARGET_DIR)/usr/bin/curl-config \
 	       $(if $(BR2_PACKAGE_CURL),,$(TARGET_DIR)/usr/bin/curl)
 endef
-
+define LIBCURL_FIX_TARGET_PC
+	printf 'Requires: openssl\n' >>$(TARGET_DIR)/usr/lib/pkgconfig/libcurl.pc
+endef
 LIBCURL_POST_INSTALL_TARGET_HOOKS += LIBCURL_TARGET_CLEANUP
+LIBCURL_POST_INSTALL_TARGET_HOOKS += $(if $(BR2_PACKAGE_OPENSSL),LIBCURL_FIX_TARGET_PC)
 
 define LIBCURL_STAGING_FIXUP_CURL_CONFIG
 	$(SED) "s,prefix=/usr,prefix=$(STAGING_DIR)/usr," $(STAGING_DIR)/usr/bin/curl-config
 endef
-
+define LIBCURL_FIX_STAGING_PC
+	printf 'Requires: openssl\n' >>$(STAGING_DIR)/usr/lib/pkgconfig/libcurl.pc
+endef
 LIBCURL_POST_INSTALL_STAGING_HOOKS += LIBCURL_STAGING_FIXUP_CURL_CONFIG
+LIBCURL_POST_INSTALL_STAGING_HOOKS += $(if $(BR2_PACKAGE_OPENSSL),LIBCURL_FIX_STAGING_PC)
 
 $(eval $(autotools-package))
 
Signature · 1 line
1.7.2.5
#2 lore raw

PATCH 1/47 package/cURL: fix static link whith openSSL

Quoted 31 lines · Yann E. MORIN

When openSSL is selected, cURL is configured to use it.

But in this case, the libcurl.pc file /forgets/ to require link against -ldl.

This can happen, for example, when BR2_PREFER_STATIC_LIB is not set, but an executable wants to be linked statically (for various reasons which are irrelevant here).

Fix that by appending a 'Requires: openssl' line to the installed libcurl.pc, if openSSL is enabled.

---
  package/libcurl/libcurl.mk |   10 ++++++++--
  1 files changed, 8 insertions(+), 2 deletions(-)
package/libcurl/libcurl.mk +4 -1
index 8d8fdb4..80e2922 100644
@@ -29,14 +29,20 @@ define LIBCURL_TARGET_CLEANUP
  	rm -rf $(TARGET_DIR)/usr/bin/curl-config \
  	       $(if $(BR2_PACKAGE_CURL),,$(TARGET_DIR)/usr/bin/curl)
  endef
-
+define LIBCURL_FIX_TARGET_PC
+	printf 'Requires: openssl\n'>>$(TARGET_DIR)/usr/lib/pkgconfig/libcurl.pc
+endef
  LIBCURL_POST_INSTALL_TARGET_HOOKS += LIBCURL_TARGET_CLEANUP
+LIBCURL_POST_INSTALL_TARGET_HOOKS += $(if $(BR2_PACKAGE_OPENSSL),LIBCURL_FIX_TARGET_PC)

package/libcurl/libcurl.mk define LIBCURL_TARGET_CLEANUP · line 45

Quoted 10 lines
package/libcurl/libcurl.mk +4 -1
 
  define LIBCURL_STAGING_FIXUP_CURL_CONFIG
  	$(SED) "s,prefix=/usr,prefix=$(STAGING_DIR)/usr," $(STAGING_DIR)/usr/bin/curl-config
  endef
-
+define LIBCURL_FIX_STAGING_PC
+	printf 'Requires: openssl\n'>>$(STAGING_DIR)/usr/lib/pkgconfig/libcurl.pc
+endef
  LIBCURL_POST_INSTALL_STAGING_HOOKS += LIBCURL_STAGING_FIXUP_CURL_CONFIG
+LIBCURL_POST_INSTALL_STAGING_HOOKS += $(if $(BR2_PACKAGE_OPENSSL),LIBCURL_FIX_STAGING_PC)

Why not add it to $(@D)/libcurl.pc.in in a post-patch hook? Then it only has
to be done once, and I also feel it's a better place to patch things.

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#3 lore raw

PATCH 1/47 package/cURL: fix static link whith openSSL

Arnout, All,

Quoted 6 lines · On Thursday 25 October 2012 Arnout Vandecappelle wrote:
Quoted 5 lines · Yann E. MORIN

When openSSL is selected, cURL is configured to use it.

But in this case, the libcurl.pc file /forgets/ to require link against -ldl.

Quoted 6 lines
Quoted 6 lines

This can happen, for example, when BR2_PREFER_STATIC_LIB is not set, but an executable wants to be linked statically (for various reasons which are irrelevant here).

Fix that by appending a 'Requires: openssl' line to the installed libcurl.pc, if openSSL is enabled.

[--SNIP--]

Quoted 8 lines

package/libcurl/libcurl.mk define LIBCURL_TARGET_CLEANUP · line 45

Quoted 5 lines
package/libcurl/libcurl.mk +4 -0
+define LIBCURL_FIX_STAGING_PC
+	printf 'Requires: openssl\n'>>$(STAGING_DIR)/usr/lib/pkgconfig/libcurl.pc
+endef
  LIBCURL_POST_INSTALL_STAGING_HOOKS += LIBCURL_STAGING_FIXUP_CURL_CONFIG
+LIBCURL_POST_INSTALL_STAGING_HOOKS += $(if $(BR2_PACKAGE_OPENSSL),LIBCURL_FIX_STAGING_PC)

Why not add it to $(@D)/libcurl.pc.in in a post-patch hook? Then it only has
to be done once, and I also feel it's a better place to patch things.

Yep, good idea! Thanks!

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

A message that is not in the archive (sent off-list or not yet received): 7D104BEF3E404707964408D74CCF1F01@JohanW7

#5 lore raw

PATCH 1/47 package/cURL: fix static link whithopenSSL

Johan, All,

[Please keep the list in CC, don't reply only to me]

Quoted 2 lines · On Friday 26 October 2012 Sagaert Johan wrote:

Is this fixing the problem I had 6 months ago where the curl binary just said :segmentation fault when it was build with openssl support ?

No idea; probably not. This fixes a build-time issue.

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#6 lore raw

PATCH 2/47 package/libfdt: new package

In reply to Yann E. MORIN

libfdt allows one to manipulate a Flat Device Tree.

---
 package/Config.in                          |    1 +
 package/dtc/Config.in                      |    9 +++++++
 package/dtc/dtc-extra_cflags.patch         |   12 +++++++++
 package/dtc/dtc-separate-lib-install.patch |   28 +++++++++++++++++++++
 package/dtc/dtc.mk                         |   36 ++++++++++++++++++++++++++++
 5 files changed, 86 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
package/Config.in +1 -0
index 1650c71..c9cb3ed 100644
@@ -396,6 +396,7 @@ source "package/libaio/Config.in"
 source "package/libraw1394/Config.in"
 source "package/tslib/Config.in"
 source "package/libfreefare/Config.in"
+source "package/dtc/Config.in"
 source "package/libftdi/Config.in"
 source "package/libhid/Config.in"
 source "package/libiqrf/Config.in"
package/dtc/Config.in new file +9 -0
new file mode 100644
index 0000000..7b86c60
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_DTC
+	bool "dtc"
+	help
+	  dtc is the Device Tree Compiler, to generate Device Trees.
+	  libfdt if a library to manipulate Flat Device Trees.
+	  
+	  Note that only the library is installed for now.
+	  
+	  http://git.jdl.com/gitweb/?p=dtc.git  (no home page)
package/dtc/dtc-extra_cflags.patch new file +12 -0
new file mode 100644
index 0000000..03225e7
@@ -0,0 +1,12 @@
+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) $(EXTRA_CFLAGS)
+ 
+ BISON = bison
+ LEX = flex
package/dtc/dtc-separate-lib-install.patch new file +28 -0
new file mode 100644
index 0000000..c86d587
@@ -0,0 +1,28 @@
+Makefile: add a rule to only install libfdt
+
+Signed-off-by: "Yann E. MORIN" <[email protected]>
+
+---
+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)
package/dtc/dtc.mk new file +36 -0
new file mode 100644
index 0000000..d53e78a
@@ -0,0 +1,36 @@
+#############################################################
+#
+# libcurl
+#
+#############################################################
+
+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
+
+# Need -fPIC for x86-64
+define DTC_BUILD_CMDS
+	$(TARGET_CONFIGURE_OPTS) $(MAKE1) -C $(@D)                          \
+	                                  EXTRA_CFLAGS="$(TARGET_CFLAGS)"   \
+	                                  PREFIX=/usr                       \
+	                                  libfdt
+endef
+
+#?libfdt_install is our own install rule added by our patch
+define DTC_INSTALL_STAGING_CMDS
+	$(MAKE1) -C $(@D) DESTDIR=$(STAGING_DIR) PREFIX=/usr libfdt_install
+endef
+
+define DTC_INSTALL_TARGET_CMDS
+	$(MAKE1) -C $(@D) DESTDIR=$(TARGET_DIR) PREFIX=/usr libfdt_install
+endef
+
+define DTC_CLEAN_CMDS
+	$(MAKE) -C $(@D) libfdt_clean
+endef
+
+$(eval $(generic-package))
Signature · 1 line
1.7.2.5
#7 lore raw

PATCH 2/47 package/libfdt: new package

The package is called dtc, not libfdt.

Quoted 1 line · Yann E. MORIN

libfdt allows one to manipulate a Flat Device Tree.

Flattened Device Tree

Quoted 19 lines
---
  package/Config.in                          |    1 +
  package/dtc/Config.in                      |    9 +++++++
  package/dtc/dtc-extra_cflags.patch         |   12 +++++++++
  package/dtc/dtc-separate-lib-install.patch |   28 +++++++++++++++++++++
  package/dtc/dtc.mk                         |   36 ++++++++++++++++++++++++++++
  5 files changed, 86 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

package/Config.in +0 -0
index 1650c71..c9cb3ed 100644

package/Config.in source "package/libaio/Config.in" · line 399

Quoted 4 lines
package/Config.in +1 -0
@@ -396,6 +396,7 @@ source "package/libaio/Config.in"
  source "package/libraw1394/Config.in"
  source "package/tslib/Config.in"
  source "package/libfreefare/Config.in"
+source "package/dtc/Config.in"

Alphabetical order.

Also, even if for now it only installs libftd, I guess it shouldn't be
a problem to install dtc as well. In that case it fits more in Development tools or Hardware handling.

package/dtc/Config.in line 4

Quoted 13 lines
package/Config.in +0 -0
  source "package/libftdi/Config.in"
  source "package/libhid/Config.in"
  source "package/libiqrf/Config.in"
package/dtc/Config.in new file +4 -0
new file mode 100644
index 0000000..7b86c60
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_DTC
+	bool "dtc"
+	help
+	  dtc is the Device Tree Compiler, to generate Device Trees.

dtc generates Flattened Device Trees (i.e. it flattens the device
tree).

package/dtc/Config.in line 5

Quoted 1 line
package/dtc/Config.in new file +1 -0
+	  libfdt if a library to manipulate Flat Device Trees.

Flattened

package/dtc/Config.in line 7

Quoted 2 lines
package/dtc/Config.in new file +2 -0
+	
+	  Note that only the library is installed for now.

Why? Build failures in the binaries?

Quoted 8 lines
package/dtc/Config.in new file +2 -0
+	
+	  http://git.jdl.com/gitweb/?p=dtc.git  (no home page)
package/dtc/dtc-extra_cflags.patch new file +0 -0
new file mode 100644
index 0000000..03225e7

package/dtc/dtc-extra_cflags.patch line 9

Quoted 9 lines
package/dtc/dtc-extra_cflags.patch new file +9 -0
@@ -0,0 +1,12 @@
+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) $(EXTRA_CFLAGS)

Why not CFLAGS += ...?

And maybe CPPFLAGS should also be fixed.

Quoted 48 lines
package/dtc/dtc-extra_cflags.patch new file +3 -0
+
+ BISON = bison
+ LEX = flex
package/dtc/dtc-separate-lib-install.patch new file +28 -0
new file mode 100644
index 0000000..c86d587
@@ -0,0 +1,28 @@
+Makefile: add a rule to only install libfdt
+
+Signed-off-by: "Yann E. MORIN"<[email protected]>
+
+---
+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)
package/dtc/dtc.mk new file +5 -0
new file mode 100644
index 0000000..d53e78a
@@ -0,0 +1,36 @@
+#############################################################
+#
+# libcurl
+#
+#############################################################

package/dtc/dtc.mk line 15

Quoted 10 lines
package/dtc/dtc.mk new file +10 -0
+
+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
+
+# Need -fPIC for x86-64

???

package/dtc/dtc.mk line 17

Quoted 2 lines
package/dtc/dtc.mk new file +2 -0
+define DTC_BUILD_CMDS
+	$(TARGET_CONFIGURE_OPTS) $(MAKE1) -C $(@D)                          \

Looking at the Makefile, I don't see why parallel builds would fail...

package/dtc/dtc.mk line 19

Quoted 2 lines
package/dtc/dtc.mk new file +2 -0
+	                                  EXTRA_CFLAGS="$(TARGET_CFLAGS)"   \
+	                                  PREFIX=/usr                       \

It's nicer to put these two options in DTC_MAKE_OPTS.

Regards,
Arnout

Quoted 17 lines
package/dtc/dtc.mk new file +17 -0
+	                                  libfdt
+endef
+
+# libfdt_install is our own install rule added by our patch
+define DTC_INSTALL_STAGING_CMDS
+	$(MAKE1) -C $(@D) DESTDIR=$(STAGING_DIR) PREFIX=/usr libfdt_install
+endef
+
+define DTC_INSTALL_TARGET_CMDS
+	$(MAKE1) -C $(@D) DESTDIR=$(TARGET_DIR) PREFIX=/usr libfdt_install
+endef
+
+define DTC_CLEAN_CMDS
+	$(MAKE) -C $(@D) libfdt_clean
+endef
+
+$(eval $(generic-package))
Signature · 6 lines
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#8 lore raw

PATCH 2/47 package/libfdt: new package

Arnout, All,

Quoted 1 line · On Thursday 25 October 2012 Arnout Vandecappelle wrote:

The package is called dtc, not libfdt.

Gah... Yes.

Quoted 4 lines · Yann E. MORIN
Quoted 1 line

libfdt allows one to manipulate a Flat Device Tree.

Flattened Device Tree

Yep.

[--SNIP--]

Quoted 11 lines

package/Config.in source "package/libaio/Config.in" · line 399

Quoted 9 lines
package/Config.in +1 -0
index 1650c71..c9cb3ed 100644
@@ -396,6 +396,7 @@ source "package/libaio/Config.in"
  source "package/libraw1394/Config.in"
  source "package/tslib/Config.in"
  source "package/libfreefare/Config.in"
+source "package/dtc/Config.in"

Alphabetical order.

Yep.

Quoted 3 lines

Also, even if for now it only installs libftd, I guess it shouldn't be
a problem to install dtc as well. In that case it fits more in Development tools or Hardware handling.

"Hardware handling" sounds like the proper place, IMHO.

Quoted 8 lines
Quoted 8 lines
package/Config.in +0 -0
  source "package/libftdi/Config.in"
  source "package/libhid/Config.in"
  source "package/libiqrf/Config.in"
package/dtc/Config.in new file +0 -0
new file mode 100644
index 0000000..7b86c60
Quoted 8 lines

package/dtc/Config.in line 4

Quoted 5 lines
package/dtc/Config.in new file +4 -0
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_DTC
+	bool "dtc"
+	help
+	  dtc is the Device Tree Compiler, to generate Device Trees.

dtc generates Flattened Device Trees (i.e. it flattens the device
tree).

From Documentation/manual.txt:

---8<---
The currently supported Input Formats are:
- "dtb": "blob" format. A flattened device-tree block with header in one binary blob.
- "dts": "source" format. A text file containing a "source" for a device-tree.
- "fs" format. A representation equivalent to the output of /proc/device-tree where nodes are directories and properties are files.

The currently supported Output Formats are:
- "dtb": "blob" format
- "dts": "source" format
- "asm": assembly language file. A file that can be sourced by gas to generate a device-tree "blob". That file can then simply be added to your Makefile. Additionally, the assembly file exports some symbols that can be used.
---8<---

So, dtc does not /generate/ flattened, it uses them as _input_. What about this formulation (also from the same manual.txt) :

The Device Tree Compiler, dtc, takes as input a device-tree in a given format and outputs a device-tree in another format.

Quoted 2 lines

package/dtc/Config.in line 7

Quoted 1 line
package/dtc/Config.in new file +1 -0
+	  Note that only the library is installed for now.

Why? Build failures in the binaries?

Because I do not need it in my use-case, so I did not test it, so I did not install it.

Also, this package could probably also be a host package. This patch only adds dtc as a target package.

[--SNIP--]

Quoted 11 lines

package/dtc/Config.in

Quoted 7 lines
package/dtc/Config.in new file +7 -0
++++ 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) $(EXTRA_CFLAGS)

Why not CFLAGS += ...?

And maybe CPPFLAGS should also be fixed.

I'll look again at this.

[--SNIP--]

Quoted 9 lines

package/dtc/dtc.mk line 3

Quoted 9 lines
package/dtc/dtc.mk new file +3 -0
new file mode 100644
index 0000000..d53e78a
@@ -0,0 +1,36 @@
+#############################################################
+#
+# libcurl

dtc, not libcurl. Sigh...

Quoted 5 lines
Quoted 5 lines
package/dtc/dtc.mk new file +5 -0
+#
+#############################################################
+
+DTC_VERSION         = e4b497f367a3b2ae99cc52089a14a221b13a76ef
+DTC_SITE            = git://git.jdl.com/software/dtc.git
Quoted 8 lines

package/dtc/dtc.mk line 15

Quoted 7 lines
package/dtc/dtc.mk new file +7 -0
+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
+
+# Need -fPIC for x86-64

???

Probably left-over from debugging?...

Quoted 3 lines

package/dtc/dtc.mk line 17

Quoted 2 lines
package/dtc/dtc.mk new file +2 -0
+define DTC_BUILD_CMDS
+	$(TARGET_CONFIGURE_OPTS) $(MAKE1) -C $(@D)                          \

Looking at the Makefile, I don't see why parallel builds would fail...

I will investigate again.

Quoted 3 lines

package/dtc/dtc.mk line 19

Quoted 2 lines
package/dtc/dtc.mk new file +2 -0
+	                                  EXTRA_CFLAGS="$(TARGET_CFLAGS)"   \
+	                                  PREFIX=/usr                       \

It's nicer to put these two options in DTC_MAKE_OPTS.

OK, I'll see to it.

Thanks!

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#9 lore raw

PATCH 2/47 package/libfdt: new package

Quoted 3 lines · Yann E. MORIN

Arnout, All,

On Thursday 25 October 2012 Arnout Vandecappelle wrote:

[snip]

Quoted 24 lines
Quoted 2 lines

dtc generates Flattened Device Trees (i.e. it flattens the device
tree).

From Documentation/manual.txt:

---8<---
The currently supported Input Formats are:
- "dtb": "blob" format. A flattened device-tree block with header in one binary blob.
- "dts": "source" format. A text file containing a "source" for a device-tree.
- "fs" format. A representation equivalent to the output of /proc/device-tree where nodes are directories and properties are files.

The currently supported Output Formats are:
- "dtb": "blob" format
- "dts": "source" format
- "asm": assembly language file. A file that can be sourced by gas to generate a device-tree "blob". That file can then simply be added to your Makefile. Additionally, the assembly file exports some symbols that can be used.
---8<---

Quoted 1 line

So, dtc does not /generate/ flattened, it uses them as _input_.

Only the dtb is flattened, the source and fs are still a tree.
But anyway, what I wrote wasn't correct either.

Quoted 4 lines

What about this formulation (also from the same manual.txt) :

The Device Tree Compiler, dtc, takes as input a device-tree in a given format and outputs a device-tree in another format.

Much better :-)

Quoted 5 lines
Quoted 2 lines

package/dtc/Config.in line 7

Quoted 1 line
package/dtc/Config.in new file +1 -0
+	  Note that only the library is installed for now.

Why? Build failures in the binaries?

Because I do not need it in my use-case, so I did not test it, so I did not install it.

Well, it just seems silly to do extra effort to remove something from the
build, unless there's a good reason for it. So unless there's a build failure, I would include the dtc as well even if you haven't tested it on the target.

Quoted 2 lines

Also, this package could probably also be a host package. This patch only adds dtc as a target package.

For the host package, it's probably dtc that you need anyway...

Quoted 43 lines

[--SNIP--]

Quoted 11 lines

package/dtc/dtc-extra_cflags.patch line 9

Quoted 7 lines

++++ 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 \

package/dtc/dtc-extra_cflags.patch new file +3 -0
+ 	-Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls
+-CFLAGS = -g -Os -fPIC -Werror $(WARNINGS)
++CFLAGS = -g -Os -fPIC -Werror $(WARNINGS) $(EXTRA_CFLAGS)

Why not CFLAGS += ...?

And maybe CPPFLAGS should also be fixed.

I'll look again at this.

[--SNIP--]

Quoted 9 lines

package/dtc/dtc.mk line 3

Quoted 9 lines
package/dtc/dtc.mk new file +3 -0
new file mode 100644
index 0000000..d53e78a
@@ -0,0 +1,36 @@
+#############################################################
+#
+# libcurl

dtc, not libcurl. Sigh...

Quoted 5 lines
Quoted 5 lines
package/dtc/dtc.mk new file +5 -0
+#
+#############################################################
+
+DTC_VERSION         = e4b497f367a3b2ae99cc52089a14a221b13a76ef
+DTC_SITE            = git://git.jdl.com/software/dtc.git
Quoted 8 lines

package/dtc/dtc.mk line 15

Quoted 7 lines
package/dtc/dtc.mk new file +7 -0
+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
+
+# Need -fPIC for x86-64

???

Quoted 1 line

Probably left-over from debugging?...

Now I see it: the -fPIC is in the upstream Makefile and is required
(unlike the -g -Os -Werror), so the CFLAGS shouldn't just be overridden.

Regards,
Arnout
[snip]

Signature · 6 lines
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#10 lore raw

PATCH 3/47 package/vde2: new package

In reply to Yann E. MORIN

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

---
 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
package/Config.in +1 -0
index c9cb3ed..c64a54a 100644
@@ -640,6 +640,7 @@ source "package/transmission/Config.in"
 source "package/ttcp/Config.in"
 source "package/udpcast/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"
package/vde2/Config.in new file +10 -0
new file mode 100644
index 0000000..1591bc4
@@ -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 computer over the Internet.
+	  VDE is part of virtualsquare project.
+	  
+	  http://vde.sourceforge.net/
+	  
+	  Note: only the libraries are installed.
package/vde2/vde2.mk new file +36 -0
new file mode 100644
index 0000000..b2e0fea
@@ -0,0 +1,36 @@
+#############################################################
+#
+# vde2
+#
+#############################################################
+
+VDE2_VERSION         = 2.3.2
+VDE2_SOURCE          = vde2-$(VDE2_VERSION).tar.bz2
+VDE2_SITE            = http://$(BR2_SOURCEFORGE_MIRROR).dl.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))
Signature · 1 line
1.7.2.5
#11 lore raw

PATCH 4/47 package/libiscsi: new package

In reply to Yann E. MORIN
---
 package/Config.in            |    1 +
 package/libiscsi/Config.in   |   12 ++++++++++++
 package/libiscsi/libiscsi.mk |   22 ++++++++++++++++++++++
 3 files changed, 35 insertions(+), 0 deletions(-)
 create mode 100644 package/libiscsi/Config.in
 create mode 100644 package/libiscsi/libiscsi.mk
package/Config.in +1 -0
index c64a54a..2c5ad8c 100644
@@ -440,6 +440,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"
package/libiscsi/Config.in new file +12 -0
new file mode 100644
index 0000000..f3fc29e
@@ -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)
package/libiscsi/libiscsi.mk new file +22 -0
new file mode 100644
index 0000000..319b5b6
@@ -0,0 +1,22 @@
+#############################################################
+#
+# 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
+
+LIBISCSI_AUTORECONF = YES
+# Having a m4/ directory is mandatory for autoreconf to work
+define LIBISCSI_CREATE_M4_DIR
+	mkdir -p $(@D)/m4
+endef
+LIBISCSI_PRE_CONFIGURE_HOOKS += LIBISCSI_CREATE_M4_DIR
+
+$(eval $(autotools-package))
Signature · 1 line
1.7.2.5
#12 lore raw

PATCH 5/47 package/usbredir: new package

In reply to Yann E. MORIN
---
 package/Config.in            |    1 +
 package/usbredir/Config.in   |   28 ++++++++++++++++++++++++++++
 package/usbredir/usbredir.mk |   34 ++++++++++++++++++++++++++++++++++
 3 files changed, 63 insertions(+), 0 deletions(-)
 create mode 100644 package/usbredir/Config.in
 create mode 100644 package/usbredir/usbredir.mk
package/Config.in +1 -0
index 2c5ad8c..55bb0b2 100644
@@ -461,6 +461,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
 
package/usbredir/Config.in new file +28 -0
new file mode 100644
index 0000000..8d8ac5a
@@ -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
package/usbredir/usbredir.mk new file +34 -0
new file mode 100644
index 0000000..43b47eb
@@ -0,0 +1,34 @@
+#############################################################
+#
+# 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-pkg-config
+
+ifeq ($(BR2_PACKAGE_USBREDIR_SERVER),y)
+
+USBREDIR_LICENSE         += GPLv2+
+USBREDIR_LICENSE_FILES   += COPYING
+
+else # BR2_PACKAGE_USBREDIR_SERVER != y
+
+# It's much easier to remove unwanted files after-the-fact, rather than trying
+# to install only what we want. Sad-and-dull life, but life nonetheless...
+# Note: do not forget to update the license, above, if you keep the server.
+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))
Signature · 1 line
1.7.2.5
#13 lore raw

PATCH 5/47 package/usbredir: new package

On 24/10/12 23:25, Yann E. MORIN wrote:
[snip]

Quoted 4 lines
package/usbredir/usbredir.mk new file +4 -0
+USBREDIR_VERSION         = 0.4.3
+USBREDIR_SOURCE          = usbredir-$(USBREDIR_VERSION).tar.bz2
+USBREDIR_SITE            =http://spice-space.org/download/usbredir
+USBREDIR_LICENSE         = LGPLv2.1+

package/usbredir/usbredir.mk line 20

Quoted 10 lines
package/usbredir/usbredir.mk new file +10 -0
+USBREDIR_LICENSE_FILES   = COPYING.LIB
+USBREDIR_INSTALL_STAGING = YES
+USBREDIR_DEPENDENCIES    = libusb
+
+USBREDIR_DEPENDENCIES    += host-pkg-config
+
+ifeq ($(BR2_PACKAGE_USBREDIR_SERVER),y)
+
+USBREDIR_LICENSE         += GPLv2+
+USBREDIR_LICENSE_FILES   += COPYING

Nice!

package/usbredir/usbredir.mk line 26

Quoted 6 lines
package/usbredir/usbredir.mk new file +6 -0
+
+else # BR2_PACKAGE_USBREDIR_SERVER != y
+
+# It's much easier to remove unwanted files after-the-fact, rather than trying
+# to install only what we want. Sad-and-dull life, but life nonetheless...
+# Note: do not forget to update the license, above, if you keep the server.

It's not the first time this is done in buildroot, so: comment is redundant.

Regards,
Arnout

Quoted 8 lines
package/usbredir/usbredir.mk new file +8 -0
+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))
Signature · 6 lines
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#14 lore raw

PATCH 5/47 package/usbredir: new package

Arnout, All,

Quoted 19 lines · On Friday 26 October 2012 Arnout Vandecappelle wrote:

On 24/10/12 23:25, Yann E. MORIN wrote:
[snip]

Quoted 4 lines
package/usbredir/usbredir.mk new file +4 -0
+USBREDIR_VERSION         = 0.4.3
+USBREDIR_SOURCE          = usbredir-$(USBREDIR_VERSION).tar.bz2
+USBREDIR_SITE            =http://spice-space.org/download/usbredir
+USBREDIR_LICENSE         = LGPLv2.1+

package/usbredir/usbredir.mk line 20

Quoted 10 lines
package/usbredir/usbredir.mk new file +10 -0
+USBREDIR_LICENSE_FILES   = COPYING.LIB
+USBREDIR_INSTALL_STAGING = YES
+USBREDIR_DEPENDENCIES    = libusb
+
+USBREDIR_DEPENDENCIES    += host-pkg-config
+
+ifeq ($(BR2_PACKAGE_USBREDIR_SERVER),y)
+
+USBREDIR_LICENSE         += GPLv2+
+USBREDIR_LICENSE_FILES   += COPYING

Nice!

Quoted 8 lines

package/usbredir/usbredir.mk line 26

Quoted 6 lines
package/usbredir/usbredir.mk new file +6 -0
+
+else # BR2_PACKAGE_USBREDIR_SERVER != y
+
+# It's much easier to remove unwanted files after-the-fact, rather than trying
+# to install only what we want. Sad-and-dull life, but life nonetheless...
+# Note: do not forget to update the license, above, if you keep the server.

It's not the first time this is done in buildroot, so: comment is redundant.

OK. The last sentence is wrong, too, as it's properly taken care of a few lines above.

BTW, this series was just a kind of "drop the stuff onto the wall and see what happens", after requests on the IRC chan. It was not meant for inclusion. But getting early review is very nice! Thank you!

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#15 lore raw

PATCH 5/47 package/usbredir: new package

Quoted 3 lines · Yann E. MORIN

BTW, this series was just a kind of "drop the stuff onto the wall and see what happens", after requests on the IRC chan. It was not meant for inclusion. But getting early review is very nice! Thank you!

I think in general it makes more sense to post an early version of a patch
and catch some review already, rather than spending a lot time to make a patch that you think is perfect and then still get a lot of comments...

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#16 lore raw

PATCH 6/47 package/celt051: new package

In reply to Yann E. MORIN
---
 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
package/multimedia/Config.in +1 -0
index 273d9bc..5e8d60c 100644
@@ -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"
package/multimedia/celt051/Config.in new file +15 -0
new file mode 100644
index 0000000..50ed069
@@ -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/
package/multimedia/celt051/celt.mk new file +30 -0
new file mode 100644
index 0000000..9baaa82
@@ -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))
Signature · 1 line
1.7.2.5
#17 lore raw

PATCH 6/47 package/celt051: new package

Package should be called celt, not celt051

Quoted 2 lines · Yann E. MORIN

[snip]

Quoted 6 lines
package/multimedia/celt051/celt.mk new file +0 -0
new file mode 100644
index 0000000..9baaa82

package/multimedia/celt051/celt.mk line 8

Quoted 8 lines
package/multimedia/celt051/celt.mk new file +8 -0
@@ -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)

How come spice requires a specific version of celt?

package/multimedia/celt051/celt.mk line 10

Quoted 2 lines
package/multimedia/celt051/celt.mk new file +2 -0
+CELT051_VERSION         = 0.5.1.3
+CELT051_SOURCE          = celt-$(CELT051_VERSION).tar.gz

If it's called celt, this is the default so can be left out.

Regards,
Arnout

[snip]

Signature · 6 lines
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#18 lore raw

PATCH 6/47 package/celt051: new package

Arnout, All,

Quoted 1 line · On Saturday 27 October 2012 Arnout Vandecappelle wrote:

Package should be called celt, not celt051

Nope, see below.

Quoted 20 lines · Yann E. MORIN
Quoted 2 lines

[snip]

Quoted 6 lines
package/multimedia/celt051/celt.mk new file +0 -0
new file mode 100644
index 0000000..9baaa82

package/multimedia/celt051/celt.mk line 8

Quoted 8 lines
package/multimedia/celt051/celt.mk new file +8 -0
@@ -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)

How come spice requires a specific version of celt?

The build instructions say:
celt = 0.5.1.3 (this is important, newer versions use a different protocol)

(from: http://www.spice-space.org/page/Building_Instructions)

Also, their ./configure enforce this check.

Quoted 4 lines

package/multimedia/celt051/celt.mk line 10

Quoted 2 lines
package/multimedia/celt051/celt.mk new file +2 -0
+CELT051_VERSION         = 0.5.1.3
+CELT051_SOURCE          = celt-$(CELT051_VERSION).tar.gz

If it's called celt, this is the default so can be left out.

I called it 'celt051' because it's not the latest version, and I want to make it clear that the version shall *not* be updated. See the discussion we had with Thomas last August:

    http://lists.busybox.net/pipermail/buildroot/2012-August/057562.html

I think we should keep calling it 'celt051' and not just 'celt', so that the version is never updated.

To be noted: celt is now deprecated, as it was merged into Opus, as it's now standardised by RFC6716:

    http://www.celt-codec.org/  (at the bottom of the page)
    http://opus-codec.org/
    https://tools.ietf.org/html/rfc6716

However, spice still requires celt-0.5.1.3.

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#19 lore raw

PATCH 7/47 package/python-pyparsing: new package

In reply to Yann E. MORIN
---
 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
package/Config.in +1 -0
index 55bb0b2..62500ce 100644
@@ -291,6 +291,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
package/python-pyparsing/Config.in new file +11 -0
new file mode 100644
index 0000000..126dd0e
@@ -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/
package/python-pyparsing/python-pyparsing.mk new file +38 -0
new file mode 100644
index 0000000..621f636
@@ -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://$(BR2_SOURCEFORGE_MIRROR).dl.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))
Signature · 1 line
1.7.2.5
#20 lore raw

PATCH 8/47 package/spice-protocol: new package

In reply to Yann E. MORIN
---
 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
package/Config.in +1 -0
index 62500ce..330d8a3 100644
@@ -629,6 +629,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"
package/spice-protocol/Config.in new file +12 -0
new file mode 100644
index 0000000..b354361
@@ -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/
package/spice-protocol/spice-protocol.mk new file +14 -0
new file mode 100644
index 0000000..dcfe50d
@@ -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))
Signature · 1 line
1.7.2.5
#21 lore raw

PATCH 8/47 package/spice-protocol: new package

Quoted 2 lines · Yann E. MORIN

on a minimal powerpc internal toolchain

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#22 lore raw

PATCH 9/47 package/libcegui: new package

In reply to Yann E. MORIN
---
 package/Config.in                      |    1 +
 package/cegui06/Config.in              |   14 +++++++++++++
 package/cegui06/cegui06-stddef.h.patch |   26 ++++++++++++++++++++++++
 package/cegui06/cegui06.mk             |   34 ++++++++++++++++++++++++++++++++
 4 files changed, 75 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
package/Config.in +1 -0
index 330d8a3..97d38af 100644
@@ -108,6 +108,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"
package/cegui06/Config.in new file +14 -0
new file mode 100644
index 0000000..7225f9c
@@ -0,0 +1,14 @@
+config BR2_PACKAGE_CEGUI06
+	bool "libcegui06"
+	select BR2_PACKAGE_FREETYPE
+	select BR2_PACKAGE_PCRE
+	select BR2_PACKAGE_EXPAT
+	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/
package/cegui06/cegui06-stddef.h.patch new file +26 -0
new file mode 100644
index 0000000..cc16eff
@@ -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" <[email protected]>
+
+---
+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"
package/cegui06/cegui06.mk new file +34 -0
new file mode 100644
index 0000000..2f562ac
@@ -0,0 +1,34 @@
+#############################################################
+#
+# libcegui
+#
+#############################################################
+
+CEGUI06_VERSION         = 0.6.2
+CEGUI06_SOURCE          = CEGUI-$(CEGUI06_VERSION)b.tar.gz
+CEGUI06_SITE            = http://downloads.sourceforge.net/project/crayzedsgui/CEGUI%20Mk-2/$(CEGUI06_VERSION)
+CEGUI06_LICENSE         = MIT
+CEGUI06_LICENSE_FILES   = COPYING
+CEGUI06_INSTALL_STAGING = YES
+
+CEGUI06_DEPENDENCIES    =       \
+    freetype                    \
+    pcre                        \
+    expat                       \
+
+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))
Signature · 1 line
1.7.2.5
#23 lore raw

PATCH 9/47 package/libcegui: new package

Quoted 1 line · Yann E. MORIN

I guess this again has to be a specific version for spice? Could be good
to document that in the commit message.

It fails to build in a toolchain without threads.

[snip]

package/cegui06/Config.in line 2

Quoted 8 lines
package/cegui06/Config.in new file +2 -0
new file mode 100644
index 0000000..7225f9c
@@ -0,0 +1,14 @@
+config BR2_PACKAGE_CEGUI06
+	bool "libcegui06"

Naming is inconsistent: cegui06 is the package name, but here you call it
libcegui06 and in the commit message libcegui.

[snip]

Quoted 6 lines
package/cegui06/cegui06.mk new file +0 -0
new file mode 100644
index 0000000..2f562ac

package/cegui06/cegui06.mk line 9

Quoted 9 lines
package/cegui06/cegui06.mk new file +9 -0
@@ -0,0 +1,34 @@
+#############################################################
+#
+# libcegui
+#
+#############################################################
+
+CEGUI06_VERSION         = 0.6.2
+CEGUI06_SOURCE          = CEGUI-$(CEGUI06_VERSION)b.tar.gz
+CEGUI06_SITE            = http://downloads.sourceforge.net/project/crayzedsgui/CEGUI%20Mk-2/$(CEGUI06_VERSION)

I would use CEGUI06_VERSION_MAJOR = 0.6.2 and
CEGUI06_VERSION = $(CEGUI06_VERSION_MAJOR)b

[snip]

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#24 lore raw

PATCH 9/47 package/libcegui: new package

Arnout, All,

Quoted 5 lines · On Wednesday 14 November 2012 Arnout Vandecappelle wrote:
Quoted 1 line · Yann E. MORIN

I guess this again has to be a specific version for spice? Could be good
to document that in the commit message.

Ok, will do.

Quoted 1 line

It fails to build in a toolchain without threads.

OK, will fix.

Note: I am testing with a known-working toolchain so far to smooth-out rough edges. When the series is in good shape, I'll do more testing to find out all the dependencies.

Basically, my toolchain has all the features that buildroot checks for:
LFS, Threads, and so on... It's uClibc-based, and for x86_64 for now.

Quoted 12 lines

[snip]

package/cegui06/Config.in line 2

Quoted 8 lines
package/cegui06/Config.in new file +2 -0
new file mode 100644
index 0000000..7225f9c
@@ -0,0 +1,14 @@
+config BR2_PACKAGE_CEGUI06
+	bool "libcegui06"

Naming is inconsistent: cegui06 is the package name, but here you call it
libcegui06 and in the commit message libcegui.

Gah. Sometime, I should better go to sleep rather than code...

Quoted 11 lines

[snip]

Quoted 10 lines
package/cegui06/cegui06.mk new file +4 -0
new file mode 100644
index 0000000..2f562ac
@@ -0,0 +1,34 @@
+#############################################################
+#
+# libcegui
+#
Quoted 8 lines

package/cegui06/cegui06.mk line 9

Quoted 5 lines
package/cegui06/cegui06.mk new file +5 -0
+#############################################################
+
+CEGUI06_VERSION         = 0.6.2
+CEGUI06_SOURCE          = CEGUI-$(CEGUI06_VERSION)b.tar.gz
+CEGUI06_SITE            = http://downloads.sourceforge.net/project/crayzedsgui/CEGUI%20Mk-2/$(CEGUI06_VERSION)

I would use CEGUI06_VERSION_MAJOR = 0.6.2 and
CEGUI06_VERSION = $(CEGUI06_VERSION_MAJOR)b

OK, will do.

Thank you! :-)

Regards,
Yan E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#25 lore raw

PATCH 10/47 package/slirp: new package

In reply to Yann E. MORIN
---
 package/Config.in       |    1 +
 package/slirp/Config.in |   25 +++++++++++++++++++++++++
 package/slirp/slirp.mk  |   15 +++++++++++++++
 3 files changed, 41 insertions(+), 0 deletions(-)
 create mode 100644 package/slirp/Config.in
 create mode 100644 package/slirp/slirp.mk
package/Config.in +1 -0
index 97d38af..33d4525 100644
@@ -463,6 +463,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
package/slirp/Config.in new file +25 -0
new file mode 100644
index 0000000..dedded3
@@ -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
package/slirp/slirp.mk new file +15 -0
new file mode 100644
index 0000000..04a4736
@@ -0,0 +1,15 @@
+#############################################################
+#
+# Spice-slirp
+#
+#############################################################
+
+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
+SLIRP_AUTORECONF      = YES
+
+$(eval $(autotools-package))
Signature · 1 line
1.7.2.5
#26 lore raw

PATCH 11/47 package/spice-server: new package

In reply to Yann E. MORIN
---
 package/Config.in       |    1 +
 package/spice/Config.in |   23 +++++++++++++++++++++++
 package/spice/spice.mk  |   47 +++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 71 insertions(+), 0 deletions(-)
 create mode 100644 package/spice/Config.in
 create mode 100644 package/spice/spice.mk
package/Config.in +1 -0
index 33d4525..844873a 100644
@@ -632,6 +632,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"
package/spice/Config.in new file +23 -0
new file mode 100644
index 0000000..ced3ec7
@@ -0,0 +1,23 @@
+comment "spice server depends on python"
+	depends on !BR2_PACKAGE_PYTHON
+
+config BR2_PACKAGE_SPICE
+	bool "spice server"
+	depends on BR2_PACKAGE_PYTHON
+	select BR2_PACKAGE_PYTHON_PYPARSING
+	select BR2_PACKAGE_SPICE_PROTOCOL
+	select BR2_PACKAGE_PIXMAN
+	select BR2_PACKAGE_CELT051
+	select BR2_PACKAGE_ALSA_LIB
+	select BR2_PACKAGE_OPENSSL
+	select BR2_PACKAGE_JPEG
+	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/
package/spice/spice.mk new file +47 -0

47 lines not on this page · raw message

Signature · 1 line
1.7.2.5
#27 lore raw

PATCH 12/47 package/spice: enable client

In reply to Yann E. MORIN
---
 package/spice/Config.in |   12 ++++++++++++
 package/spice/spice.mk  |    8 +++++++-
 2 files changed, 19 insertions(+), 1 deletions(-)
package/spice/Config.in +12 -0
index ced3ec7..e906acf 100644
@@ -21,3 +21,15 @@ 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_LIBXRANDR
+
+endif # BR2_PACKAGE_SPICE
package/spice/spice.mk +7 -1
index 37b1bff..de7bf71 100644
@@ -26,10 +26,16 @@ SPICE_CONF_OPT =            \
   --disable-gui             \
   --disable-opengl          \
   --disable-smartcard       \
-  --disable-client          \
   --disable-automated-tests \
   --without-sasl            \
 
+ifeq ($(BR2_PACKAGE_SPICE_CLIENT),y)
+SPICE_CONF_OPT += --enable-client
+SPICE_DEPENDENCIES += xlib_libXrandr xlib_libXfixes
+else
+SPICE_CONF_OPT += --disable-client
+endif
+
 SPICE_DEPENDENCIES += host-pkg-config
 
 SPICE_CONF_ENV = PYTHONPATH=$(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages
Signature · 1 line
1.7.2.5
#28 lore raw

PATCH 13/47 package/spice: enable GUI

In reply to Yann E. MORIN
---
 package/spice/Config.in |    8 ++++++++
 package/spice/spice.mk  |    8 +++++++-
 2 files changed, 15 insertions(+), 1 deletions(-)
package/spice/Config.in +8 -0
index e906acf..6e6233d 100644
@@ -32,4 +32,12 @@ config BR2_PACKAGE_SPICE_CLIENT
 	depends on BR2_PACKAGE_XORG7
 	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
package/spice/spice.mk +7 -1
index de7bf71..9253e35 100644
@@ -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 \
@@ -36,6 +35,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_DEPENDENCIES += host-pkg-config
 
 SPICE_CONF_ENV = PYTHONPATH=$(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages
Signature · 1 line
1.7.2.5
#29 lore raw

PATCH 14/47 package/spice: enable slirp support

In reply to Yann E. MORIN
---
 package/spice/Config.in |    7 +++++++
 package/spice/spice.mk  |    8 +++++++-
 2 files changed, 14 insertions(+), 1 deletions(-)
package/spice/Config.in +7 -0
index 6e6233d..846bee1 100644
@@ -40,4 +40,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
package/spice/spice.mk +7 -1
index 9253e35..2bc452b 100644
@@ -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 \
@@ -42,6 +41,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_DEPENDENCIES += host-pkg-config
 
 SPICE_CONF_ENV = PYTHONPATH=$(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages
Signature · 1 line
1.7.2.5
#30 lore raw

PATCH 15/47 package/libseccomp: new package

In reply to Yann E. MORIN
---
 package/Config.in                                  |    1 +
 package/libseccomp/Config.in                       |   13 +++++++++++
 ...ibseccomp-use-system-headers-from-sysroot.patch |   19 +++++++++++++++++
 package/libseccomp/libseccomp.mk                   |   22 ++++++++++++++++++++
 4 files changed, 55 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
package/Config.in +1 -0
index 844873a..ba3ef2c 100644
@@ -489,6 +489,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"
package/libseccomp/Config.in new file +13 -0
new file mode 100644
index 0000000..183cf4e
@@ -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/
package/libseccomp/libseccomp-use-system-headers-from-sysroot.patch new file +19 -0
new file mode 100644
index 0000000..f287377
@@ -0,0 +1,19 @@
+diff -du 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-09-07 00:00:09.918429292 +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"
+Common subdirectories: libseccomp-1.0.0.orig/doc and libseccomp-1.0.0/doc
+Common subdirectories: libseccomp-1.0.0.orig/include and libseccomp-1.0.0/include
+Common subdirectories: libseccomp-1.0.0.orig/install and libseccomp-1.0.0/install
+Common subdirectories: libseccomp-1.0.0.orig/src and libseccomp-1.0.0/src
+Common subdirectories: libseccomp-1.0.0.orig/tests and libseccomp-1.0.0/tests
+Common subdirectories: libseccomp-1.0.0.orig/tools and libseccomp-1.0.0/tools
package/libseccomp/libseccomp.mk new file +22 -0
new file mode 100644
index 0000000..73fe632
@@ -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))
Signature · 1 line
1.7.2.5
#31 lore raw

PATCH 15/47 package/libseccomp: new package

All,

On Wednesday 24 October 2012 Yann E. MORIN wrote:
[--SNIP--]

Quoted 15 lines
package/libseccomp/libseccomp-use-system-headers-from-sysroot.patch new file +9 -0
new file mode 100644
index 0000000..f287377
@@ -0,0 +1,19 @@
+diff -du 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-09-07 00:00:09.918429292 +0200
+@@ -205,7 +205,8 @@
+ #
+ 
+ # system seccomp includes
+-if [[ -r "/usr/include/linux/seccomp.h" ]]; then
++# ${SYSROOT} added by buildroot for cross-compilation

package/libseccomp/libseccomp-use-system-headers-from-sysroot.patch line 19

Quoted 10 lines
package/libseccomp/libseccomp-use-system-headers-from-sysroot.patch new file +10 -0
++if [[ -r "${SYSROOT}/usr/include/linux/seccomp.h" ]]; then
+ 	opt_sysinc_seccomp="yes"
+ else
+ 	opt_sysinc_seccomp="no"
+Common subdirectories: libseccomp-1.0.0.orig/doc and libseccomp-1.0.0/doc
+Common subdirectories: libseccomp-1.0.0.orig/include and libseccomp-1.0.0/include
+Common subdirectories: libseccomp-1.0.0.orig/install and libseccomp-1.0.0/install
+Common subdirectories: libseccomp-1.0.0.orig/src and libseccomp-1.0.0/src
+Common subdirectories: libseccomp-1.0.0.orig/tests and libseccomp-1.0.0/tests
+Common subdirectories: libseccomp-1.0.0.orig/tools and libseccomp-1.0.0/tools

Hmm. I'll have to rework that patch before it can be included...

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#32 lore raw

PATCH 16/47 package/keyutils: new package

In reply to Yann E. MORIN
---
 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
package/Config.in +1 -0
index ba3ef2c..f3d78d0 100644
@@ -706,6 +706,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"
package/keyutils/Config.in new file +7 -0
new file mode 100644
index 0000000..9b5a24b
@@ -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/
package/keyutils/keyutils-01-memleak-from-realloc.patch new file +51 -0

51 lines not on this page · raw message

package/keyutils/keyutils-02-another-memleak.patch new file +32 -0
new file mode 100644
index 0000000..f74fd79
@@ -0,0 +1,32 @@
+Patch vampirised from Debian's packaging of keyutils-1.4
+
+Author: Michael Gebetsroither <[email protected]>
+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;
package/keyutils/keyutils-03-cifs.patch new file +15 -0
new file mode 100644
index 0000000..b2903f9
@@ -0,0 +1,15 @@
+Patch vampirised from Debian's packaging of keyutils-1.4
+
+Author: Marcus Meissner <[email protected]>
+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
package/keyutils/keyutils-04-Makefile-for-buildroot.patch new file +65 -0

65 lines not on this page · raw message

package/keyutils/keyutils-05-fix-install-rule.patch new file +19 -0
new file mode 100644
index 0000000..74e5670
@@ -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" <[email protected]>
+
+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
package/keyutils/keyutils.mk new file +32 -0
new file mode 100644
index 0000000..184b58d
@@ -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))
Signature · 1 line
1.7.2.5
#33 lore raw

PATCH 16/47 package/keyutils: new package

Works for me. Thanks.

/Jarkko

Quoted 301 lines · Yann E. MORIN
---
 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
package/Config.in +1 -0
index ba3ef2c..f3d78d0 100644
@@ -706,6 +706,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"
package/keyutils/Config.in new file +7 -0
new file mode 100644
index 0000000..9b5a24b
@@ -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/
package/keyutils/keyutils-01-memleak-from-realloc.patch new file +51 -0
new file mode 100644
index 0000000..0faa9d8
@@ -0,0 +1,51 @@
+Patch vampirised from Debian's packaging of keyutils-1.4
+
+Author: Michael Gebetsroither <[email protected]>
+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;
+       }
package/keyutils/keyutils-02-another-memleak.patch new file +32 -0
new file mode 100644
index 0000000..f74fd79
@@ -0,0 +1,32 @@
+Patch vampirised from Debian's packaging of keyutils-1.4
+
+Author: Michael Gebetsroither <[email protected]>
+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;
package/keyutils/keyutils-03-cifs.patch new file +15 -0
new file mode 100644
index 0000000..b2903f9
@@ -0,0 +1,15 @@
+Patch vampirised from Debian's packaging of keyutils-1.4
+
+Author: Marcus Meissner <[email protected]>
+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
package/keyutils/keyutils-04-Makefile-for-buildroot.patch new file +65 -0
new file mode 100644
index 0000000..e10abd5
@@ -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
+
package/keyutils/keyutils-05-fix-install-rule.patch new file +19 -0
new file mode 100644
index 0000000..74e5670
@@ -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" <[email protected]>
+
+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
package/keyutils/keyutils.mk new file +32 -1
new file mode 100644
index 0000000..184b58d
@@ -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

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

#34 lore raw

PATCH 16/47 package/keyutils: new package

Jarkko, All,

Quoted 1 line · On Thursday 25 October 2012 Jarkko Sakkinen wrote:

Works for me. Thanks.

May I interpret that as a "Tested-by: you" ?

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#35 lore raw

PATCH 17/47 package/pmake: add host pmake

In reply to Yann E. MORIN

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

---
 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
package/pmake/pmake-100_mk.patch new file +2624 -0
new file mode 100644
index 0000000..1786690
@@ -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" <[email protected]>
+
+--- 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}
package/pmake/pmake-110_mkdep.patch new file +230 -0

230 lines not on this page · raw message

package/pmake/pmake-120_fixes.patch new file +266 -0

146 lines not on this page · raw message

package/pmake/pmake-130_maxpathlen.patch new file +39 -0
new file mode 100644
index 0000000..fa8fd5f

Lines of this file are not shown. View the raw message.

package/pmake/pmake-140_multiarch.patch new file +354 -0

354 lines not on this page · raw message

package/pmake/pmake-150_mktemp.patch new file +31 -0
new file mode 100644
index 0000000..5ccb2a8

Lines of this file are not shown. View the raw message.

package/pmake/pmake.mk new file +46 -0

46 lines not on this page · raw message

The rest of this diff is not shown. View the raw message.

Signature · 1 line
1.7.2.5

Part of the diff is not shown here. View the raw message.

#36 lore raw

PATCH 18/47 package/libbsd: new package

In reply to Yann E. MORIN

From: Yann E. MORIN <[email protected]>

---
 package/Config.in        |    1 +
 package/libbsd/Config.in |   17 +++++++++++++++++
 package/libbsd/libbsd.mk |   25 +++++++++++++++++++++++++
 3 files changed, 43 insertions(+), 0 deletions(-)
 create mode 100644 package/libbsd/Config.in
 create mode 100644 package/libbsd/libbsd.mk
package/Config.in +1 -0
index f3d78d0..5cc5fac 100644
@@ -476,6 +476,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"
package/libbsd/Config.in new file +17 -0
new file mode 100644
index 0000000..d1f9e46
@@ -0,0 +1,17 @@
+config BR2_PACKAGE_LIBBSD_AVAILABLE
+	def_bool y
+
+comment "libbsd requires (other packages)"
+	depends on !BR2_PACKAGE_LIBBSD_AVAILABLE
+
+config BR2_PACKAGE_LIBBSD
+	bool "libbsd"
+	depends on BR2_PACKAGE_LIBBSD_AVAILABLE
+	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/
package/libbsd/libbsd.mk new file +25 -0
new file mode 100644
index 0000000..d7438e8
@@ -0,0 +1,25 @@
+#############################################################
+#
+# 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        += BSD-4c
+endif
+
+LIBBSD_AUTORECONF      = YES
+LIBBSD_AUTORECONF_OPT  = -f -i
+LIBBSD_DEPENDENCIES    = host-automake
+
+LIBBSD_INSTALL_STAGING = YES
+
+$(eval $(autotools-package))
Signature · 1 line
1.7.2.5
#37 lore raw

PATCH 18/47 package/libbsd: new package

Quoted 3 lines · On Wednesday 24 October 2012 Yann E. MORIN wrote:

From: Yann E. MORIN <[email protected]>

Hmmm. Wrong identity... I used that a while ago to test my mail filters. Sigh... :-/

I'll refresh the patch before it is submitted.

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#38 lore raw

PATCH 19/47 package/libedit2: new package

In reply to Yann E. MORIN
---
 package/Config.in                                  |    1 +
 package/libedit2/Config.in                         |   17 +++++
 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, 327 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
package/Config.in +1 -0
index 5cc5fac..f882301 100644
@@ -506,6 +506,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/ncurses/Config.in"
 source "package/newt/Config.in"
package/libedit2/Config.in new file +17 -0
new file mode 100644
index 0000000..0d779cc
@@ -0,0 +1,17 @@
+config BR2_PACKAGE_LIBEDIT2_AVAILABLE
+	def_bool y
+	depends on BR2_PACKAGE_LIBBSD_AVAILABLE
+
+comment "libedit2 requires (other packages)"
+	depends on !BR2_PACKAGE_LIBEDIT2_AVAILABLE
+
+config BR2_PACKAGE_LIBEDIT2
+	bool "libedit2"
+	depends on BR2_PACKAGE_LIBEDIT2_AVAILABLE
+	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/
package/libedit2/libedit2-01-Makefile.patch new file +25 -0
new file mode 100644
index 0000000..91645e4
@@ -0,0 +1,25 @@
+ 01-Makefile.diff by Neal H Walfield <[email protected]> and
+ Gergely Nagy <[email protected]>
+
+ 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
package/libedit2/libedit2-02-el.c-issetugid.patch new file +24 -0
new file mode 100644
index 0000000..b060fa4
@@ -0,0 +1,24 @@
+ 02-el.c-issetugid.diff by Gergely Nagy <[email protected]>
+
+ 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))
package/libedit2/libedit2-03-el.c-MAXPATHLEN.patch new file +40 -0
new file mode 100644
index 0000000..aadd36a
@@ -0,0 +1,40 @@
+ 03-el.c-MAXPATHLEN.diff by Gergely Nagy <[email protected]>
+
+ 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
+ 		/*
package/libedit2/libedit2-04-readline.h-stdio.patch new file +17 -0
new file mode 100644
index 0000000..84257b9
@@ -0,0 +1,17 @@
+ 04-readline.h-stdio.diff by Gergely Nagy <[email protected]>
+
+ 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 */
package/libedit2/libedit2-08-readline-history.h.patch new file +20 -0
new file mode 100644
index 0000000..f30093f
@@ -0,0 +1,20 @@
+ 08-readline-history.h.diff by Pawel Wiecek <[email protected]>
+ (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>
package/libedit2/libedit2-10-define_SIZE_T_MAX.patch new file +18 -0
new file mode 100644
index 0000000..c8ce262
@@ -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);
+ 
package/libedit2/libedit2-12-libedit-Makefile.patch new file +54 -0

54 lines not on this page · raw message

package/libedit2/libedit2-20-fortify.patch new file +23 -0
new file mode 100644
index 0000000..0a41ce3
@@ -0,0 +1,23 @@
+http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=488456
+
+Patch by Kees Cook <[email protected]>
+
+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:
package/libedit2/libedit2.mk new file +75 -0

75 lines not on this page · raw message

package/libedit2/libedit2.pc new file +13 -0
new file mode 100644
index 0000000..47ac871
@@ -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}
Signature · 1 line
1.7.2.5
#39 lore raw

PATCH 20/47 package/ceph: new package

In reply to Yann E. MORIN
---
 package/Config.in                          |    1 +
 package/ceph/Config.in                     |   19 ++++++++
 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, 247 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
package/Config.in +1 -0
index f882301..a24df21 100644
@@ -555,6 +555,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"
package/ceph/Config.in new file +19 -0
new file mode 100644
index 0000000..5704883
@@ -0,0 +1,19 @@
+config BR2_PACKAGE_CEPH_AVAILABLE
+	def_bool y
+	depends on BR2_PACKAGE_LIBNSS
+	depends on BR2_PACKAGE_UTIL_LINUX_LIBUUID
+	depends on BR2_PACKAGE_LIBEDIT2_AVAILABLE
+
+comment "ceph requires libnss, and libuuid (from util-linux)"
+	depends on !BR2_PACKAGE_CEPH_AVAILABLE
+
+config BR2_PACKAGE_CEPH
+	bool "ceph"
+	depends on BR2_PACKAGE_CEPH_AVAILABLE
+	select BR2_PACKAGE_LIBEDIT2
+	select BR2_PACKAGE_EXPAT
+	help
+	  Ceph is a distributed object store and file system designed to
+	  provide excellent performance, reliability and scalability.
+	  
+	  http://ceph.com/
package/ceph/ceph-no-envz.patch new file +63 -0

63 lines not on this page · raw message

package/ceph/ceph-no-getloadavg.patch new file +61 -0

61 lines not on this page · raw message

package/ceph/ceph-no-posix_fallocate.patch new file +50 -0

50 lines not on this page · raw message

package/ceph/ceph.mk new file +53 -0

53 lines not on this page · raw message

Signature · 1 line
1.7.2.5
#40 lore raw

PATCH 21/47 package/qemu: new package

In reply to Yann E. MORIN
---
 package/Config.in      |    1 +
 package/qemu/Config.in |   27 ++++++++++++++
 package/qemu/qemu.mk   |   95 ++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 123 insertions(+), 0 deletions(-)
 create mode 100644 package/qemu/Config.in
 create mode 100644 package/qemu/qemu.mk
package/Config.in +1 -0
index a24df21..08029c0 100644
@@ -538,6 +538,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/sound-theme-borealis/Config.in"
 source "package/sound-theme-freedesktop/Config.in"
package/qemu/Config.in new file +27 -0
new file mode 100644
index 0000000..bd37b34
@@ -0,0 +1,27 @@
+config BR2_PACKAGE_QEMU_AVAILABLE
+	def_bool y
+	depends on BR2_TOOLCHAIN_HAS_THREADS
+
+comment "qemu requires a toolchain with threads"
+	depends on !BR2_PACKAGE_QEMU_AVAILABLE
+
+config BR2_PACKAGE_QEMU
+	bool "QEMU"
+	depends on BR2_PACKAGE_QEMU_AVAILABLE
+	select BR2_PACKAGE_ZLIB
+	select BR2_PACKAGE_LIBGLIB2
+	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/
package/qemu/qemu.mk new file +95 -0

95 lines not on this page · raw message

Signature · 1 line
1.7.2.5
#41 lore raw

PATCH 22/47 package/qemu: add basic target selection

In reply to Yann E. MORIN
---
 package/qemu/Config.in |   33 +++++++++++++++++++++++++++++++++
 package/qemu/qemu.mk   |   21 ++++++++++++++++++---
 2 files changed, 51 insertions(+), 3 deletions(-)
package/qemu/Config.in +33 -0
index bd37b34..c8623bf 100644
@@ -25,3 +25,36 @@ config BR2_PACKAGE_QEMU
 	  server and embedded PowerPC, and S390 guests.
 	  
 	  http://qemu.org/
+
+if BR2_PACKAGE_QEMU
+
+comment "Emulators selection"
+
+# We need at least one to be selected
+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.
+
+config BR2_PACKAGE_QEMU_BSD_USER
+	bool "Enable all BSD user-land emulation"
+	select BR2_PACKAGE_QEMU_EMUL_SET
+	help
+	  Say 'y' to build all BSD user-land emulators that QEMU supports.
+
+endif # BR2_PACKAGE_QEMU
package/qemu/qemu.mk +18 -3
index 83d8227..14d0505 100644
@@ -25,6 +25,24 @@ 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
+
+ifeq ($(BR2_PACKAGE_QEMU_BSD_USER),y)
+QEMU_OPTS += --enable-bsd-user
+else
+QEMU_OPTS += --disable-bsd-user
+endif
+
 # Note: although QEMU uses a ./configure script, it is not compatible with
 #       the traditional autotools options (eg. --target et al.), so we can
 #       not use the autotools-package infrastructure. So we have to use the
@@ -45,9 +63,6 @@ define QEMU_CONFIGURE_CMDS
 	        --enable-nptl                       \
 	        --enable-attr                       \
 	        --enable-vhost-net                  \
-	        --enable-system                     \
-	        --enable-linux-user                 \
-	        --disable-bsd-user                  \
 	        --disable-xen                       \
 	        --disable-slirp                     \
 	        --disable-sdl                       \
Signature · 1 line
1.7.2.5
#42 lore raw

PATCH 23/47 package/qemu: add fine-grained target selection

In reply to Yann E. MORIN
---
 package/qemu/Config.in |   21 +++++++++++++++++++++
 package/qemu/qemu.mk   |    4 ++++
 2 files changed, 25 insertions(+), 0 deletions(-)
package/qemu/Config.in +21 -0
index c8623bf..bd4b939 100644
@@ -30,6 +30,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:"
+
 # We need at least one to be selected
 config BR2_PACKAGE_QEMU_EMUL_SET
 	bool
@@ -57,4 +76,6 @@ config BR2_PACKAGE_QEMU_BSD_USER
 	help
 	  Say 'y' to build all BSD user-land emulators that QEMU supports.
 
+endif # BR2_PACKAGE_QEMU_CUSTOM_TARGETS == ""
+
 endif # BR2_PACKAGE_QEMU
package/qemu/qemu.mk +4 -0
index 14d0505..a942e0b 100644
@@ -43,6 +43,10 @@ else
 QEMU_OPTS += --disable-bsd-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 can
 #       not use the autotools-package infrastructure. So we have to use the
Signature · 1 line
1.7.2.5
#43 lore raw

PATCH 24/47 package/qemu: add SDL frontends

In reply to Yann E. MORIN
---
 package/qemu/Config.in |    9 +++++++++
 package/qemu/qemu.mk   |   10 +++++++++-
 2 files changed, 18 insertions(+), 1 deletions(-)
package/qemu/Config.in +9 -0
index bd4b939..a624632 100644
@@ -78,4 +78,13 @@ config BR2_PACKAGE_QEMU_BSD_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
package/qemu/qemu.mk +9 -1
index a942e0b..acba0d4 100644
@@ -24,6 +24,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
@@ -47,6 +48,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 can
 #       not use the autotools-package infrastructure. So we have to use the
@@ -69,7 +78,6 @@ define QEMU_CONFIGURE_CMDS
 	        --enable-vhost-net                  \
 	        --disable-xen                       \
 	        --disable-slirp                     \
-	        --disable-sdl                       \
 	        --disable-vnc                       \
 	        --disable-virtfs                    \
 	        --disable-brlapi                    \
Signature · 1 line
1.7.2.5
#44 lore raw

PATCH 25/47 package/qemu: add option to enable/disable the VNC frontend

In reply to Yann E. MORIN
---
 package/qemu/Config.in |    7 +++++++
 package/qemu/qemu.mk   |   11 ++++++++++-
 2 files changed, 17 insertions(+), 1 deletions(-)
package/qemu/Config.in +7 -0
index a624632..0c5d39f 100644
@@ -80,6 +80,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
package/qemu/qemu.mk +10 -1
index acba0d4..9182a2d 100644
@@ -48,6 +48,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
@@ -78,7 +84,10 @@ define QEMU_CONFIGURE_CMDS
 	        --enable-vhost-net                  \
 	        --disable-xen                       \
 	        --disable-slirp                     \
-	        --disable-vnc                       \
+	        --disable-vnc-jpeg                  \
+	        --disable-vnc-png                   \
+	        --disable-vnc-tls                   \
+	        --disable-vnc-sasl                  \
 	        --disable-virtfs                    \
 	        --disable-brlapi                    \
 	        --disable-curses                    \
Signature · 1 line
1.7.2.5
#45 lore raw

PATCH 26/47 package/qemu: add VNC jpeg and png compression

In reply to Yann E. MORIN
---
 package/qemu/Config.in |   10 ++++++++++
 package/qemu/qemu.mk   |   16 ++++++++++++++--
 2 files changed, 24 insertions(+), 2 deletions(-)
package/qemu/Config.in +10 -0
index 0c5d39f..9574221 100644
@@ -87,6 +87,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
package/qemu/qemu.mk +14 -2
index 9182a2d..3d45cdc 100644
@@ -54,6 +54,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
@@ -84,8 +98,6 @@ define QEMU_CONFIGURE_CMDS
 	        --enable-vhost-net                  \
 	        --disable-xen                       \
 	        --disable-slirp                     \
-	        --disable-vnc-jpeg                  \
-	        --disable-vnc-png                   \
 	        --disable-vnc-tls                   \
 	        --disable-vnc-sasl                  \
 	        --disable-virtfs                    \
Signature · 1 line
1.7.2.5
#46 lore raw

PATCH 27/47 package/qemu: add VNC TLS-encryption

In reply to Yann E. MORIN

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

---
 package/qemu/Config.in |   11 +++++++++++
 package/qemu/qemu.mk   |    8 +++++++-
 2 files changed, 18 insertions(+), 1 deletions(-)
package/qemu/Config.in +11 -0
index 9574221..4a2c5bf 100644
@@ -97,6 +97,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
package/qemu/qemu.mk +7 -1
index 3d45cdc..f7bcb16 100644
@@ -68,6 +68,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
@@ -98,7 +105,6 @@ define QEMU_CONFIGURE_CMDS
 	        --enable-vhost-net                  \
 	        --disable-xen                       \
 	        --disable-slirp                     \
-	        --disable-vnc-tls                   \
 	        --disable-vnc-sasl                  \
 	        --disable-virtfs                    \
 	        --disable-brlapi                    \
Signature · 1 line
1.7.2.5
#47 lore raw

PATCH 28/47 package/qemu: add option to not install blobs

In reply to Yann E. MORIN
---
 package/qemu/Config.in |   16 ++++++++++++++++
 package/qemu/qemu.mk   |    4 ++++
 2 files changed, 20 insertions(+), 0 deletions(-)
package/qemu/Config.in +16 -0
index 4a2c5bf..ab82bf8 100644
@@ -115,4 +115,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
package/qemu/qemu.mk +4 -0
index f7bcb16..3d1ec44 100644
@@ -83,6 +83,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 can
 #       not use the autotools-package infrastructure. So we have to use the
Signature · 1 line
1.7.2.5
#48 lore raw

PATCH 29/47 package/qemu: add option to remove unwanted keymaps

In reply to Yann E. MORIN
---
 package/qemu/Config.in |   12 ++++++++++
 package/qemu/qemu.mk   |   55 ++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 67 insertions(+), 0 deletions(-)
package/qemu/Config.in +12 -0
index ab82bf8..65d1ffd 100644
@@ -131,4 +131,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
package/qemu/qemu.mk +55 -0

61 lines not on this page · raw message

Signature · 1 line
1.7.2.5
#49 lore raw

PATCH 30/47 package/qemu: add uuid support

In reply to Yann E. MORIN
---
 package/qemu/Config.in |    9 +++++++++
 package/qemu/qemu.mk   |    8 +++++++-
 2 files changed, 16 insertions(+), 1 deletions(-)
package/qemu/Config.in +9 -0
index 65d1ffd..e114fac 100644
@@ -117,6 +117,15 @@ config BR2_PACKAGE_QEMU_SDL
 
 comment "Misc. features"
 
+config BR2_PACKAGE_QEMU_UUID
+	bool "Enable VMs UUID"
+	depends on BR2_PACKAGE_UTIL_LINUX_LIBUUID
+	help
+	  Say 'y' here to have QEMU support UUIDs for VMs.
+
+comment "UUID support requires libuuid (from util-linux)"
+	depends on !BR2_PACKAGE_UTIL_LINUX_LIBUUID
+
 config BR2_PACKAGE_QEMU_BLOBS
 	bool "Install binary blobs"
 	default y
package/qemu/qemu.mk +7 -1
index 8684d66..d899fdb 100644
@@ -83,6 +83,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
@@ -172,7 +179,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-fdt                       \
 	        --disable-bluez                     \
 	        --disable-guest-base                \
-	        --disable-uuid                      \
 	        --disable-vde                       \
 	        --disable-linux-aio                 \
 	        --disable-cap-ng                    \
Signature · 1 line
1.7.2.5
#50 lore raw

PATCH 31/47 package/qemu: add support for capabilities

In reply to Yann E. MORIN
---
 package/qemu/Config.in |    7 +++++++
 package/qemu/qemu.mk   |   11 ++++++++++-
 2 files changed, 17 insertions(+), 1 deletions(-)
package/qemu/Config.in +7 -0
index e114fac..6784d75 100644
@@ -126,6 +126,13 @@ config BR2_PACKAGE_QEMU_UUID
 comment "UUID support requires libuuid (from util-linux)"
 	depends on !BR2_PACKAGE_UTIL_LINUX_LIBUUID
 
+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
package/qemu/qemu.mk +10 -1
index d899fdb..56d0c3c 100644
@@ -90,6 +90,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
@@ -181,7 +191,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-guest-base                \
 	        --disable-vde                       \
 	        --disable-linux-aio                 \
-	        --disable-cap-ng                    \
 	        --disable-docs                      \
 	        --disable-spice                     \
 	        --disable-rbd                       \
Signature · 1 line
1.7.2.5
#51 lore raw

PATCH 32/47 package/qemu: add attr/xattr option

In reply to Yann E. MORIN
---
 package/qemu/Config.in |    6 ++++++
 package/qemu/qemu.mk   |    7 ++++++-
 2 files changed, 12 insertions(+), 1 deletions(-)
package/qemu/Config.in +6 -0
index 6784d75..e15f14c 100644
@@ -133,6 +133,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
package/qemu/qemu.mk +6 -1
index 56d0c3c..70d3f7e 100644
@@ -100,6 +100,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
@@ -177,7 +183,6 @@ define QEMU_CONFIGURE_CMDS
 	        --audio-card-list=                  \
 	        --enable-kvm                        \
 	        --enable-nptl                       \
-	        --enable-attr                       \
 	        --enable-vhost-net                  \
 	        --disable-xen                       \
 	        --disable-slirp                     \
Signature · 1 line
1.7.2.5
#52 lore raw

PATCH 33/47 package/qemu: add support for virtfs

In reply to Yann E. MORIN
---
 package/qemu/Config.in |   16 ++++++++++++++++
 package/qemu/qemu.mk   |    7 ++++++-
 2 files changed, 22 insertions(+), 1 deletions(-)
package/qemu/Config.in +16 -0
index e15f14c..567b9af 100644
@@ -115,6 +115,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
package/qemu/qemu.mk +6 -1
index 70d3f7e..bc3f437 100644
@@ -83,6 +83,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
@@ -187,7 +193,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-xen                       \
 	        --disable-slirp                     \
 	        --disable-vnc-sasl                  \
-	        --disable-virtfs                    \
 	        --disable-brlapi                    \
 	        --disable-curses                    \
 	        --disable-curl                      \
Signature · 1 line
1.7.2.5
#53 lore raw

PATCH 34/47 package/qemu: add support for cURL

In reply to Yann E. MORIN

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

---
 package/qemu/Config.in |   10 ++++++++++
 package/qemu/qemu.mk   |    8 +++++++-
 2 files changed, 17 insertions(+), 1 deletions(-)
package/qemu/Config.in +10 -0
index 567b9af..d03e980 100644
@@ -131,6 +131,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
package/qemu/qemu.mk +7 -1
index bc3f437..6eb6e8f 100644
@@ -89,6 +89,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
@@ -195,7 +202,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-vnc-sasl                  \
 	        --disable-brlapi                    \
 	        --disable-curses                    \
-	        --disable-curl                      \
 	        --disable-fdt                       \
 	        --disable-bluez                     \
 	        --disable-guest-base                \
Signature · 1 line
1.7.2.5
#54 lore raw

PATCH 35/47 package/qemu: enable use of the curses frontend

In reply to Yann E. MORIN
---
 package/qemu/Config.in |   11 +++++++++++
 package/qemu/qemu.mk   |    8 +++++++-
 2 files changed, 18 insertions(+), 1 deletions(-)
package/qemu/Config.in +11 -0
index d03e980..8dff88f 100644
@@ -115,6 +115,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
package/qemu/qemu.mk +7 -1
index 6eb6e8f..5f7021c 100644
@@ -83,6 +83,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
@@ -201,7 +208,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-slirp                     \
 	        --disable-vnc-sasl                  \
 	        --disable-brlapi                    \
-	        --disable-curses                    \
 	        --disable-fdt                       \
 	        --disable-bluez                     \
 	        --disable-guest-base                \
Signature · 1 line
1.7.2.5
#55 lore raw

PATCH 36/47 package/qemu: add BlueZ connectivity

In reply to Yann E. MORIN
---
 package/qemu/Config.in |   11 +++++++++++
 package/qemu/qemu.mk   |    8 +++++++-
 2 files changed, 18 insertions(+), 1 deletions(-)
package/qemu/Config.in +11 -0
index 8dff88f..e467f59 100644
@@ -152,6 +152,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
package/qemu/qemu.mk +7 -1
index 5f7021c..ac7087f 100644
@@ -103,6 +103,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
@@ -209,7 +216,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-vnc-sasl                  \
 	        --disable-brlapi                    \
 	        --disable-fdt                       \
-	        --disable-bluez                     \
 	        --disable-guest-base                \
 	        --disable-vde                       \
 	        --disable-linux-aio                 \
Signature · 1 line
1.7.2.5
#56 lore raw

PATCH 37/47 package/qemu: add AIO support

In reply to Yann E. MORIN

Add support for Asynchronous Input/Ouput (AIO).

---
 package/qemu/Config.in |    9 +++++++++
 package/qemu/qemu.mk   |    8 +++++++-
 2 files changed, 16 insertions(+), 1 deletions(-)
package/qemu/Config.in +9 -0
index e467f59..3fffd60 100644
@@ -152,6 +152,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
package/qemu/qemu.mk +7 -1
index ac7087f..62a935a 100644
@@ -103,6 +103,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
@@ -218,7 +225,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-fdt                       \
 	        --disable-guest-base                \
 	        --disable-vde                       \
-	        --disable-linux-aio                 \
 	        --disable-docs                      \
 	        --disable-spice                     \
 	        --disable-rbd                       \
Signature · 1 line
1.7.2.5
#57 lore raw

PATCH 38/47 package/qemu: add support for FDT

In reply to Yann E. MORIN

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

---
 package/qemu/Config.in |    7 +++++++
 package/qemu/qemu.mk   |    8 +++++++-
 2 files changed, 14 insertions(+), 1 deletions(-)
package/qemu/Config.in +7 -0
index 3fffd60..c718be4 100644
@@ -174,6 +174,13 @@ comment "BlueZ connectivity depends on bluez-utils"
 
 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_LIBUUID
package/qemu/qemu.mk +7 -1
index 62a935a..1303b41 100644
@@ -117,6 +117,13 @@ else
 QEMU_OPTS += --disable-bluez
 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
@@ -222,7 +229,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-slirp                     \
 	        --disable-vnc-sasl                  \
 	        --disable-brlapi                    \
-	        --disable-fdt                       \
 	        --disable-guest-base                \
 	        --disable-vde                       \
 	        --disable-docs                      \
Signature · 1 line
1.7.2.5
#58 lore raw

PATCH 39/47 package/qemu: add support for VDE switches

In reply to Yann E. MORIN
---
 package/qemu/Config.in |    7 +++++++
 package/qemu/qemu.mk   |    8 +++++++-
 2 files changed, 14 insertions(+), 1 deletions(-)
package/qemu/Config.in +7 -0
index c718be4..78ec4c8 100644
@@ -172,6 +172,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_FDT
package/qemu/qemu.mk +7 -1
index 1303b41..ede431b 100644
@@ -117,6 +117,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_FDT),y)
 QEMU_OPTS += --enable-fdt
 QEMU_DEPENDENCIES += dtc
@@ -230,7 +237,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-vnc-sasl                  \
 	        --disable-brlapi                    \
 	        --disable-guest-base                \
-	        --disable-vde                       \
 	        --disable-docs                      \
 	        --disable-spice                     \
 	        --disable-rbd                       \
Signature · 1 line
1.7.2.5
#59 lore raw

PATCH 40/47 package/qemu: add iSCSI support

In reply to Yann E. MORIN
---
 package/qemu/Config.in |    6 ++++++
 package/qemu/qemu.mk   |    8 +++++++-
 2 files changed, 13 insertions(+), 1 deletions(-)
package/qemu/Config.in +6 -0
index 78ec4c8..e92a587 100644
@@ -152,6 +152,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
package/qemu/qemu.mk +7 -1
index ede431b..d1d05e5 100644
@@ -103,6 +103,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
@@ -240,7 +247,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-docs                      \
 	        --disable-spice                     \
 	        --disable-rbd                       \
-	        --disable-libiscsi                  \
 	        --disable-usb-redir                 \
 	        --disable-smartcard                 \
 	        --disable-strip                     \
Signature · 1 line
1.7.2.5
#60 lore raw

PATCH 41/47 package/qemu: add support for USB redirection

In reply to Yann E. MORIN
---
 package/qemu/Config.in |    9 +++++++++
 package/qemu/qemu.mk   |    8 +++++++-
 2 files changed, 16 insertions(+), 1 deletions(-)
package/qemu/Config.in +9 -0
index e92a587..3f608cc 100644
@@ -158,6 +158,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
package/qemu/qemu.mk +7 -1
index d1d05e5..a2d84e1 100644
@@ -110,6 +110,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
@@ -247,7 +254,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-docs                      \
 	        --disable-spice                     \
 	        --disable-rbd                       \
-	        --disable-usb-redir                 \
 	        --disable-smartcard                 \
 	        --disable-strip                     \
 	        --disable-seccomp                   \
Signature · 1 line
1.7.2.5
#61 lore raw

PATCH 42/47 package/qemu: add support for Spice

In reply to Yann E. MORIN
---
 package/qemu/Config.in |   10 ++++++++++
 package/qemu/qemu.mk   |    8 +++++++-
 2 files changed, 17 insertions(+), 1 deletions(-)
package/qemu/Config.in +10 -0
index 3f608cc..01962ea 100644
@@ -126,6 +126,16 @@ 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.
+
+if !BR2_PACKAGE_SPICE
+comment "Spice support requires spice-server"
+endif
+
 comment "Block backends"
 
 config BR2_PACKAGE_QEMU_VIRTFS
package/qemu/qemu.mk +7 -1
index a2d84e1..69a5382 100644
@@ -90,6 +90,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
@@ -252,7 +259,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-brlapi                    \
 	        --disable-guest-base                \
 	        --disable-docs                      \
-	        --disable-spice                     \
 	        --disable-rbd                       \
 	        --disable-smartcard                 \
 	        --disable-strip                     \
Signature · 1 line
1.7.2.5
#62 lore raw

PATCH 43/47 package/qemu: enable sound

In reply to Yann E. MORIN
---
 package/qemu/Config.in |   38 ++++++++++++++++++++++++++++++++++++++
 package/qemu/qemu.mk   |   19 +++++++++++++++++--
 2 files changed, 55 insertions(+), 2 deletions(-)
package/qemu/Config.in +38 -0
index 01962ea..a74fd4b 100644
@@ -204,6 +204,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_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.
+
+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.
+
 comment "Misc. features"
 
 config BR2_PACKAGE_QEMU_FDT
package/qemu/qemu.mk +17 -2
index 69a5382..7609aea 100644
@@ -145,6 +145,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_FDT),y)
 QEMU_OPTS += --enable-fdt
 QEMU_DEPENDENCIES += dtc
@@ -248,8 +265,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                  \
Signature · 1 line
1.7.2.5
#63 lore raw

PATCH 44/47 package/qemu: add support for libseccomp

In reply to Yann E. MORIN
---
 package/qemu/Config.in |    7 +++++++
 package/qemu/qemu.mk   |    7 ++++++-
 2 files changed, 13 insertions(+), 1 deletions(-)
package/qemu/Config.in +7 -0
index a74fd4b..0299f69 100644
@@ -273,6 +273,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
package/qemu/qemu.mk +6 -1
index 7609aea..d087291 100644
@@ -192,6 +192,12 @@ else
 QEMU_OPTS += --disable-attr
 endif
 
+ifeq ($(BR2_PACKAGE_QEMU_SECCOMP),y)
+QEMU_OPTS += --enable-seccomp
+else
+QEMU_OPTS += --disable-seccomp
+endif
+
 ifeq ($(BR2_PACKAGE_QEMU_BLOBS),)
 QEMU_OPTS += --disable-blobs
 endif
@@ -277,7 +283,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-rbd                       \
 	        --disable-smartcard                 \
 	        --disable-strip                     \
-	        --disable-seccomp                   \
 	        --disable-sparse                    \
 	        $(QEMU_OPTS)                        \
 	)
Signature · 1 line
1.7.2.5
#64 lore raw

PATCH 45/47 package/qemu: option to build the docs

In reply to Yann E. MORIN
---
 package/qemu/qemu.mk |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)
package/qemu/qemu.mk +6 -1
index d087291..199d230 100644
@@ -202,6 +202,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
@@ -279,7 +285,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-vnc-sasl                  \
 	        --disable-brlapi                    \
 	        --disable-guest-base                \
-	        --disable-docs                      \
 	        --disable-rbd                       \
 	        --disable-smartcard                 \
 	        --disable-strip                     \
Signature · 1 line
1.7.2.5
#65 lore raw

PATCH 46/47 package/qemu: move sub-options into a sub-menu

In reply to Yann E. MORIN

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.

---
 package/qemu/Config.in |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
package/qemu/Config.in +1 -1
index 0299f69..a082cc8 100644
@@ -5,7 +5,7 @@ config BR2_PACKAGE_QEMU_AVAILABLE
 comment "qemu requires a toolchain with threads"
 	depends on !BR2_PACKAGE_QEMU_AVAILABLE
 
-config BR2_PACKAGE_QEMU
+menuconfig BR2_PACKAGE_QEMU
 	bool "QEMU"
 	depends on BR2_PACKAGE_QEMU_AVAILABLE
 	select BR2_PACKAGE_ZLIB
Signature · 1 line
1.7.2.5
#66 lore raw

PATCH 47/47 package/qemu: enable a static build

In reply to Yann E. MORIN

---

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              |   38 ++++++++++++++----
 package/qemu/qemu-static-curl.patch |   72 +++++++++++++++++++++++++++++++++++
 package/qemu/qemu-static-sdl.patch  |   54 ++++++++++++++++++++++++++
 package/qemu/qemu.mk                |    4 ++
 4 files changed, 159 insertions(+), 9 deletions(-)
 create mode 100644 package/qemu/qemu-static-curl.patch
 create mode 100644 package/qemu/qemu-static-sdl.patch
package/qemu/Config.in +29 -9
index a082cc8..942c254 100644
@@ -102,11 +102,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"
@@ -129,11 +129,20 @@ 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.
-
-if !BR2_PACKAGE_SPICE
-comment "Spice support requires spice-server"
+	  
+	  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"
@@ -154,14 +163,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
@@ -234,14 +239,21 @@ config BR2_PACKAGE_QEMU_SOUND_SDL
 	  
 	  Note: this is only for system emulation, not user emulation.
 
+# Alsa can not build both shared and static libs at 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
+
 comment "Misc. features"
 
 config BR2_PACKAGE_QEMU_FDT
@@ -306,4 +318,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
package/qemu/qemu-static-curl.patch new file +72 -0

72 lines not on this page · raw message

package/qemu/qemu-static-sdl.patch new file +54 -0

54 lines not on this page · raw message

package/qemu/qemu.mk +4 -0
index 199d230..59149df 100644
@@ -208,6 +208,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
Signature · 1 line
1.7.2.5