Skip to contentSkip to conversation

more python enhancements

PATCH New Hamish Moffatt 3 participants 6 messages Jan 18, 2008 – Jan 23, 2008

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 more python enhancements

Here's another improvement to the Python package.

1. Don't install the development headers, tools and static library into the target system unless new configuration item is enabled.

2. Always install the development headers etc into the staging_dir, so they can be used to build extension modules.

Hamish

Signature · 8 lines
Hamish Moffatt VK3SB <[email protected]> <[email protected]>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: br-python2.patch
Type: text/x-diff
Size: 2725 bytes
Desc: not available
Url : http://busybox.net/lists/buildroot/attachments/20080118/e3319227/attachment.bin 
#1 lore raw

PATCH 1/1 more python enhancements

Quoted 26 lines · Hamish Moffatt

Here's another improvement to the Python package.

1. Don't install the development headers, tools and static library into the target system unless new configuration item is enabled.

2. Always install the development headers etc into the staging_dir, so they can be used to build extension modules.

Hamish

Signature · 4 lines
Hamish Moffatt VK3SB <[email protected]> <[email protected]>

Index: python.mk
===================================================================
python.mk +0 -0
@@ -4,6 +4,7 @@
 #
 #############################################################

PYTHON_VERSION=2.4.2
+PYTHON_VERSION_SHORT=2.4 PYTHON_SOURCE:=Python-$(PYTHON_VERSION).tar.bz2 PYTHON_SITE:=http://python.org/ftp/python/$(PYTHON_VERSION) PYTHON_DIR:=$(BUILD_DIR)/Python-$(PYTHON_VERSION)

python.mk line 141

Quoted 6 lines
python.mk +2 -1
@@ -136,16 +137,36 @@
 	find $(TARGET_DIR)/usr/lib/ -name '*.pyo' -exec rm {} \; && \
 	rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \
 		$(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc \
-		$(TARGET_DIR)/usr/lib/python*/test
+		$(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_SHORT)/test
+	cp -a $(TARGET_DIR)/usr/include/python$(PYTHON_VERSION_SHORT) $(STAGING_DIR)/usr/include/

NO.
There is no portable "cp -a", either use $(INSTALL) which would be preferred or if nothing else helps cp -dpf

python.mk line 143

Quoted 2 lines
python.mk +2 -0
+	mkdir -p $(STAGING_DIR)/usr/lib/python$(PYTHON_VERSION_SHORT)
+	cp -a $(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_SHORT)/config $(STAGING_DIR)/usr/lib/python$(PYTHON_VERSION_SHORT)/

$(INSTALL) -D

Quoted 24 lines
python.mk +1 -0
+
 ifeq ($(BR2_PACKAGE_PYTHON_PY_ONLY),y)
 	find $(TARGET_DIR)/usr/lib/ -name '*.pyc' -exec rm {} \;

endif
ifeq ($(BR2_PACKAGE_PYTHON_PYC_ONLY),y)

	find $(TARGET_DIR)/usr/lib/ -name '*.py' -exec rm {} \;

endif

python.mk +14 -0
+ifneq ($(BR2_PACKAGE_PYTHON_DEV),y)
+	rm -rf $(TARGET_DIR)/usr/include/python$(PYTHON_VERSION_SHORT)
+	rm -rf $(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_SHORT)/config
+	find $(TARGET_DIR)/usr/lib/ -name '*.py' -exec rm {} \;
+endif
+ifneq ($(BR2_PACKAGE_PYTHON_BSDDB),y)
+	rm -rf $(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_SHORT)/bsddb
+endif
+ifneq ($(BR2_PACKAGE_PYTHON_CURSES),y)
+	rm -rf $(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_SHORT)/curses
+endif
+ifneq ($(BR2_PACKAGE_PYTHON_TKINTER),y)
+	rm -rf $(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_SHORT)/lib-tk
+endif

python: uclibc $(PYTHON_DEPS) $(TARGET_DIR)/$(PYTHON_TARGET_BINARY)

python.mk

Quoted 2 lines
python.mk +2 -0
+python-test:
+	@echo Version = $(PYTHON_VERSION)

What's that supposed to do? remove this, please.

Quoted 8 lines

python-clean:

	-$(MAKE) -C $(PYTHON_DIR) distclean
	rm $(PYTHON_DIR)/.configured $(TARGET_DIR)/$(PYTHON_TARGET_BINARY)

Index: Config.in
===================================================================

Config.in line 15

Quoted 10 lines
Config.in +7 -0
@@ -6,6 +6,14 @@
 
 	  http://www.python.org/
 
+config BR2_PACKAGE_PYTHON_DEV
+	depends on BR2_PACKAGE_PYTHON
+	bool "development files on target"
+	default n
+	help
+	  If enabled, development files (headers and static libpython) will be
+	  installed on the target.

It would be saner to have this as one central know like i did for HAVE_{MAN,INFO}PAGES, fwiw (at least that's what i have in my tree).

regards,

#2 lore raw

PATCH 1/1 more python enhancements

Quoted 6 lines · Bernhard Fischer

Review

Quoted 1 line · Hamish Moffatt
(quoted diff) +1 -0
+	cp -a $(TARGET_DIR)/usr/include/python$(PYTHON_VERSION_SHORT) $(STAGING_DIR)/usr/include/

NO.
There is no portable "cp -a", either use $(INSTALL) which would be preferred or if nothing else helps cp -dpf

Portability is a nice goal but I think the horse has already bolted. There's a ton of packages using "cp -a" already. Do you think there is much chance of building on a non-GNU system?

"cp -dpf" doesn't do directories. Need -dpr.

Quoted 4 lines

Review

Quoted 2 lines
(quoted diff) +2 -0
+	mkdir -p $(STAGING_DIR)/usr/lib/python$(PYTHON_VERSION_SHORT)
+	cp -a $(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_SHORT)/config $(STAGING_DIR)/usr/lib/python$(PYTHON_VERSION_SHORT)/

$(INSTALL) -D

install doesn't seem to copy whole directories in any circumstance, which config is (hence the cp -a).

[10:56AM] hamish at bach:~/tmp $ mkdir testdir [10:56AM] hamish at bach:~/tmp $ install -D testdir installtest
install: omitting directory `testdir'

Quoted 4 lines

Review

Quoted 2 lines
(quoted diff) +2 -0
+python-test:
+	@echo Version = $(PYTHON_VERSION)

What's that supposed to do? remove this, please.

Will do, thanks.

Quoted 1 line
Quoted 1 line

+config BR2_PACKAGE_PYTHON_DEV

[..]

Quoted 2 lines

It would be saner to have this as one central know like i did for HAVE_{MAN,INFO}PAGES, fwiw (at least that's what i have in my tree).

True. Do you want to create an item in the top-level Config.in? I will happily amend the python package to use it.

New patch attached.

cheers,
Hamish

$ grep "cp -a" */*.mk
acpid/acpid.mk:	cp -a $(ACPID_DIR)/acpid $(TARGET_DIR)/usr/sbin/acpid
atk/atk.mk:	cp -a $(STAGING_DIR)/lib/libatk-1.0.so $(TARGET_DIR)/lib/
atk/atk.mk:	cp -a $(STAGING_DIR)/lib/libatk-1.0.so.0* $(TARGET_DIR)/lib/
avahi/avahi.mk:	cp -af $(STAGING_DIR)/etc/avahi/avahi-autoipd.action $(TARGET_DIR)/etc/avahi/
avahi/avahi.mk:	cp -af $(BASE_DIR)/package/avahi/busybox-udhcpc-default.script $(TARGET_DIR)/usr/share/udhcpc/default.script
avahi/avahi.mk:	cp -af $(BASE_DIR)/package/avahi/S05avahi-setup.sh $(TARGET_DIR)/etc/init.d/
avahi/avahi.mk:	cp -af $(STAGING_DIR)/etc/avahi/avahi-daemon.conf $(TARGET_DIR)/etc/avahi/
avahi/avahi.mk:	cp -af $(BASE_DIR)/package/avahi/S50avahi-daemon $(TARGET_DIR)/etc/init.d/
berkeleydb/berkeleydb.mk:	cp -a $(STAGING_DIR)/lib/libdb*so* $(TARGET_DIR)/lib/
bind/bind.mk:	    cp -a libdns*so* libisc*so* libbind9*so* \
bison/bison.mk:	cp -a package/bison/yacc $(TARGET_DIR)/usr/bin/yacc
bridge/bridge.mk:	cp -af $(BRIDGE_BUILD_DIR)/brctl/brctl $(TARGET_DIR)/$(BRIDGE_TARGET_BINARY)
bridge/bridge.mk:	#cp -af $(BRIDGE_BUILD_DIR)/brctl/brctld $(TARGET_DIR)/usr/sbin/
cairo/cairo.mk:	cp -a $(STAGING_DIR)/lib/libcairo.so $(TARGET_DIR)/lib/
cairo/cairo.mk:	cp -a $(STAGING_DIR)/lib/libcairo.so.2* $(TARGET_DIR)/lib/
curl/curl.mk:	cp -a $(CURL_DESTDIR)/lib/libcurl.so* $(TARGET_DIR)/usr/lib
curl/curl.mk:	cp -a $(CURL_DESTDIR)/bin/$(CURL_BINARY) $(TARGET_DIR)/usr/bin
customize/customize.mk:		cp -af $(CUST_DIR)/$$f $(TARGET_DIR)/$$f; \
dash/dash.mk:	cp -a $(DASH_DIR)/$(DASH_BINARY) $(TARGET_DIR)/$(DASH_TARGET_BINARY)
dbus-glib/dbus-glib.mk:	cp -a $(DBUS_GLIB_DIR)/dbus/.libs/libdbus-glib-1.so* $(STAGING_DIR)/usr/lib
dbus-glib/dbus-glib.mk:	cp -a $(DBUS_GLIB_DIR)/dbus/.libs/libdbus-glib-1.so.2* $(TARGET_DIR)/usr/lib
dbus-glib/dbus-glib.mk:	cp -a $(DBUS_GLIB_DIR)/dbus/.libs/dbus-binding-tool $(TARGET_DIR)/usr/bin
fontconfig/fontconfig.mk:	cp -a $(STAGING_DIR)/usr/bin/fc-cache $(TARGET_DIR)/usr/bin/
fontconfig/fontconfig.mk:	cp -a $(STAGING_DIR)/usr/bin/fc-list $(TARGET_DIR)/usr/bin/
grep/grep.mk:	    cp -a $(GNUGREP_DIR)/src/grep $(GNUGREP_DIR)/src/egrep \
gtk2-engines/gtk2-engines.mk:	cp -a $(STAGING_DIR)/lib/gtk-2.0/2.10.0/engines/*.so \
gtk2-engines/gtk2-engines.mk:	cp -a $(STAGING_DIR)/usr/share/themes/Clearlooks \
hostapd/hostapd.mk:	cp -af $(BASE_DIR)/package/hostapd/defconfig $(HOSTAPD_DIR)/hostapd/.config
hostapd/hostapd.mk:	cp -af $(HOSTAPD_DIR)/hostapd/hostapd $(TARGET_DIR)/usr/sbin/
hostapd/hostapd.mk:	cp -af $(HOSTAPD_DIR)/hostapd/hostapd_cli $(TARGET_DIR)/usr/sbin/
hostap/hostap.mk:	cp -af $(HOSTAP_DIR)/driver/etc/hostap_cs.conf $(TARGET_DIR)/etc/pcmcia/
hostap/hostap.mk:	cp -af $(HOSTAP_DIR)/utils/hostap_crypt_conf $(TARGET_DIR)/usr/bin/
hostap/hostap.mk:	cp -af $(HOSTAP_DIR)/utils/hostap_diag $(TARGET_DIR)/usr/bin/
hostap/hostap.mk:	cp -af $(HOSTAP_DIR)/utils/prism2_param $(TARGET_DIR)/usr/bin/
hostap/hostap.mk:	cp -af $(HOSTAP_DIR)/utils/prism2_srec $(TARGET_DIR)/usr/bin/
hostap/hostap.mk:	cp -af $(HOSTAP_DIR)/hostapd/hostapd $(TARGET_DIR)/usr/sbin/
hwdata/hwdata.mk:	cp -a $(HWDATA_DIR)/pci.ids $(TARGET_DIR)/usr/share/hwdata
hwdata/hwdata.mk:	cp -a $(HWDATA_DIR)/usb.ids $(TARGET_DIR)/usr/share/hwdata
libdaemon/libdaemon.mk:	cp -af $(LIBDAEMON_DIR) $(LIBDAEMON_DIR)-0rig
libglib2/libglib2.mk:	cp -a $(STAGING_DIR)/lib/libglib-2.0.so $(TARGET_DIR)/lib/
libglib2/libglib2.mk:	cp -a $(STAGING_DIR)/lib/libglib-2.0.so.0* $(TARGET_DIR)/lib/
libglib2/libglib2.mk:	cp -a $(STAGING_DIR)/lib/libgmodule-2.0.so $(TARGET_DIR)/lib/
libglib2/libglib2.mk:	cp -a $(STAGING_DIR)/lib/libgmodule-2.0.so.0* $(TARGET_DIR)/lib/
libglib2/libglib2.mk:	cp -a $(STAGING_DIR)/lib/libgobject-2.0.so $(TARGET_DIR)/lib/
libglib2/libglib2.mk:	cp -a $(STAGING_DIR)/lib/libgobject-2.0.so.0* $(TARGET_DIR)/lib/
libglib2/libglib2.mk:	cp -a $(STAGING_DIR)/lib/libgthread-2.0.so $(TARGET_DIR)/lib/
libglib2/libglib2.mk:	cp -a $(STAGING_DIR)/lib/libgthread-2.0.so.0* $(TARGET_DIR)/lib/
libgtk12/libgtk12.mk:	cp -a $(STAGING_DIR)/lib/libgtk.so $(TARGET_DIR)/lib/
libgtk12/libgtk12.mk:	cp -a $(STAGING_DIR)/lib/libgtk-1.2.so.0 $(TARGET_DIR)/lib/
libgtk12/libgtk12.mk:	cp -a $(STAGING_DIR)/lib/libgtk-1.2.so.0.9.1 $(TARGET_DIR)/lib/
libgtk12/libgtk12.mk:	cp -a $(STAGING_DIR)/lib/libgdk.so $(TARGET_DIR)/lib/
libgtk12/libgtk12.mk:	cp -a $(STAGING_DIR)/lib/libgdk-1.2.so.0 $(TARGET_DIR)/lib/
libgtk12/libgtk12.mk:	cp -a $(STAGING_DIR)/lib/libgdk-1.2.so.0.9.1 $(TARGET_DIR)/lib/
libgtk2/libgtk2.mk:	cp -a $(STAGING_DIR)/lib/libgtk-x11-2.0.so $(TARGET_DIR)/lib/
libgtk2/libgtk2.mk:	cp -a $(STAGING_DIR)/lib/libgtk-x11-2.0.so.0* $(TARGET_DIR)/lib/
libgtk2/libgtk2.mk:	cp -a $(STAGING_DIR)/lib/libgdk*-2.0.so $(TARGET_DIR)/lib/
libgtk2/libgtk2.mk:	cp -a $(STAGING_DIR)/lib/libgdk*-2.0.so.0* $(TARGET_DIR)/lib/
libgtk2/libgtk2.mk:	cp -a $(STAGING_DIR)/lib/gtk-2.0/2.10.0/engines/*.so \
libgtk2/libgtk2.mk:	cp -a $(STAGING_DIR)/lib/gtk-2.0/2.10.0/printbackends/*.so \
libgtk2/libgtk2.mk:	cp -a $(STAGING_DIR)/lib/gtk-2.0/2.10.0/immodules/*.so \
libgtk2/libgtk2.mk:	cp -a $(STAGING_DIR)/lib/gtk-2.0/2.10.0/loaders/*.so \
liblockfile/liblockfile.mk:	cp -a $(STAGING_DIR)/usr/lib/liblockfile.so* $(TARGET_DIR)/usr/lib
libxml2/libxml2.mk:	cp -af $(LIBXML2_DIR)/include/libxml $(STAGING_DIR)/usr/include/libxml2
libxml2/libxml2.mk:	cp -af $(LIBXML2_DIR)/usr/include/libxml2 $(TARGET_DIR)/usr/include/libxml2
lockfile-progs/lockfile-progs.mk:	cp -a $(LOCKFILE_PROGS_DIR)/bin/lockfile* $(TARGET_DIR)/usr/bin
lvm2/lvm2.mk:	for binary in $(LVM2_SBIN); do echo $$binary; cp -a $(STAGING_DIR)/sbin/$$binary $(TARGET_DIR)/sbin; done
madwifi/madwifi.mk:#	cp -af defnoconfig $(HOSTAPD_DIR)/hostapd/.config
madwifi/madwifi.mk:	cp -af $(MADWIFI_DIR)/tools/athstats $(TARGET_DIR)/usr/sbin/
madwifi/madwifi.mk:	cp -af $(MADWIFI_DIR)/tools/80211stats $(TARGET_DIR)/usr/sbin/
madwifi/madwifi.mk:	cp -af $(MADWIFI_DIR)/tools/athkey $(TARGET_DIR)/usr/sbin/
madwifi/madwifi.mk:	cp -af $(MADWIFI_DIR)/tools/athchans $(TARGET_DIR)/usr/sbin/
madwifi/madwifi.mk:	cp -af $(MADWIFI_DIR)/tools/athctrl $(TARGET_DIR)/usr/sbin/
madwifi/madwifi.mk:	cp -af $(MADWIFI_DIR)/tools/athdebug $(TARGET_DIR)/usr/sbin/
madwifi/madwifi.mk:	cp -af $(MADWIFI_DIR)/tools/80211debug $(TARGET_DIR)/usr/sbin/
madwifi/madwifi.mk:	cp -af $(MADWIFI_DIR)/tools/wlanconfig $(TARGET_DIR)/usr/sbin/
matchbox/matchbox.mk:	cp -af $(STAGING_DIR)/etc/matchbox/ $(TARGET_DIR)/etc/
matchbox/matchbox.mk:	cp -af $(STAGING_DIR)/usr/share/matchbox $(TARGET_DIR)/usr/share/
matchbox/matchbox.mk:	cp -af $(STAGING_DIR)/usr/share/matchbox/pixmaps/hourglass-*.png $(TARGET_DIR)/usr/share/matchbox/pixmaps/
matchbox/matchbox.mk:	cp -af $(STAGING_DIR)/etc/matchbox/ $(TARGET_DIR)/etc/
matchbox/matchbox.mk:	cp -af $(STAGING_DIR)/usr/share/matchbox $(TARGET_DIR)/usr/share/
matchbox/matchbox.mk:	cp -af $(STAGING_DIR)/usr/share/matchbox/* $(TARGET_DIR)/usr/share/matchbox/
matchbox/matchbox.mk:	cp -af $(STAGING_DIR)/usr/share/matchbox/* $(TARGET_DIR)/usr/share/matchbox/
matchbox/matchbox.mk:	cp -af $(STAGING_DIR)/usr/share/matchbox/matchbox-keyboard $(TARGET_DIR)/usr/share/matchbox/
metacity/metacity.mk:	cp -a $(STAGING_DIR)/usr/share/themes/Clearlooks \
metacity/metacity.mk:	cp -a package/metacity/Xsession $(TARGET_DIR)/etc/X11/
mkdosfs/mkdosfs.mk:	cp -a $(MKDOSFS_DIR)/$(MKDOSFS_BINARY) $(TARGET_DIR)/$(MKDOSFS_TARGET_BINARY)
mrouted/mrouted.mk:	cp -a $(MROUTED_DIR)/$(MROUTED_BINARY) $(TARGET_DIR)/$(MROUTED_TARGET_BINARY)
netsnmp/netsnmp.mk:	cp -a $(STAGING_DIR)/usr/include/net-snmp $(TARGET_DIR)/usr/include/net-snmp
netsnmp/netsnmp.mk:	cp -a $(STAGING_DIR)/usr/include/ucd-snmp $(TARGET_DIR)/usr/include/net-snmp
newt/newt.mk:	cp -a $(NEWT_DIR)/libnewt.a $(STAGING_DIR)/usr/lib/
newt/newt.mk:	cp -a $(NEWT_DIR)/newt.h $(STAGING_DIR)/usr/include/
newt/newt.mk:	cp -a $(NEWT_DIR)/libnewt.so* $(STAGING_DIR)/usr/lib/
newt/newt.mk:	cp -a $(STAGING_DIR)/usr/lib/libnewt.so* $(TARGET_DIR)/usr/lib/
openntpd/openntpd.mk:	cp -af $(OPENNTPD_DIR)/ntpd.conf $(TARGET_DIR)/etc/ntpd.conf
openssl/openssl.mk:	cp -a $(STAGING_DIR)/usr/include/openssl $(TARGET_DIR)/usr/include/
pango/pango.mk:	cp -a $(STAGING_DIR)/lib/libpango-1.0.so $(TARGET_DIR)/lib/
pango/pango.mk:	cp -a $(STAGING_DIR)/lib/libpango-1.0.so.0* $(TARGET_DIR)/lib/
pango/pango.mk:	cp -a $(STAGING_DIR)/lib/libpangox-1.0.so $(TARGET_DIR)/lib/
pango/pango.mk:	cp -a $(STAGING_DIR)/lib/libpangox-1.0.so.0* $(TARGET_DIR)/lib/
pango/pango.mk:	cp -a $(STAGING_DIR)/lib/libpangoft2-1.0.so $(TARGET_DIR)/lib/
pango/pango.mk:	cp -a $(STAGING_DIR)/lib/libpangoft2-1.0.so.0* $(TARGET_DIR)/lib/
pango/pango.mk:	cp -a $(STAGING_DIR)/lib/libpangoxft-1.0.so $(TARGET_DIR)/lib/
pango/pango.mk:	cp -a $(STAGING_DIR)/lib/libpangoxft-1.0.so.0* $(TARGET_DIR)/lib/
pango/pango.mk:	cp -a $(STAGING_DIR)/lib/libpangocairo-1.0.so $(TARGET_DIR)/lib/
pango/pango.mk:	cp -a $(STAGING_DIR)/lib/libpangocairo-1.0.so.0* $(TARGET_DIR)/lib/
pango/pango.mk:	cp -a $(STAGING_DIR)/lib/pango/1.5.0/modules/*.so $(TARGET_DIR)/lib/pango/1.5.0/modules/
patch/patch.mk:	cp -a $(GNUPATCH_DIR)/$(GNUPATCH_BINARY) $(TARGET_DIR)/$(GNUPATCH_TARGET_BINARY)
python/python.mk:	cp -a $(TARGET_DIR)/usr/include/python$(PYTHON_VERSION_SHORT) $(STAGING_DIR)/usr/include/
python/python.mk:	cp -a $(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_SHORT)/config $(STAGING_DIR)/usr/lib/python$(PYTHON_VERSION_SHORT)/
sqlite/sqlite.mk:	cp -a $(STAGING_DIR)/usr/bin/sqlite3 $(TARGET_DIR)/usr/bin
sqlite/sqlite.mk:	cp -a $(STAGING_DIR)/lib/libsqlite3*.so* $(TARGET_DIR)/lib/
tar/tar.mk:		cp -a $(GNUTAR_DIR)/$(GNUTAR_BINARY) \
tcpdump/dhcpdump.mk:	cp -af $< $@
tftpd/tftpd.mk:	    cp -a $(TFTP_HPA_DIR)/$(TFTP_HPA_BINARY) $(TARGET_DIR)/$(TFTP_HPA_TARGET_BINARY); fi
ttcp/ttcp.mk:	cp -af $(DL_DIR)/$(TTCP_SOURCE) $(TTCP_BUILD_DIR)
ttcp/ttcp.mk:	cp -af $(TTCP_BUILD_DIR)/ttcp $(TARGET_DIR)/usr/bin/
wipe/wipe.mk:	cp -a $(WIPE_DIR)/$(WIPE_BINARY) $(TARGET_DIR)/$(WIPE_TARGET_BINARY)
xerces/xerces.mk:	cp -a $(STAGING_DIR)/lib/libxerces-c.so* $(TARGET_DIR)/usr/lib
xerces/xerces.mk:	cp -a $(STAGING_DIR)/lib/libxerces-depdom.so* $(TARGET_DIR)/usr/lib
Signature · 9 lines
Hamish Moffatt VK3SB <[email protected]> <[email protected]>

-------------- next part --------------
A non-text attachment was scrubbed...
Name: br-python3.patch
Type: text/x-diff
Size: 2389 bytes
Desc: not available
Url : http://busybox.net/lists/buildroot/attachments/20080121/37bd0e80/attachment.bin 
#3 lore raw

PATCH 1/1 more python enhancements

Quoted 1 line · Hamish Moffatt

New patch attached.

Could somebody apply this please? Bernard?

thanks,
Hamish

Quoted 64 lines

Index: python.mk
===================================================================

package/python/python.mk renamed from package/python/python.mk.orig +20 -1
@@ -4,6 +4,7 @@
 #
 #############################################################
 PYTHON_VERSION=2.4.2
+PYTHON_VERSION_SHORT=2.4
 PYTHON_SOURCE:=Python-$(PYTHON_VERSION).tar.bz2
 PYTHON_SITE:=http://python.org/ftp/python/$(PYTHON_VERSION)
 PYTHON_DIR:=$(BUILD_DIR)/Python-$(PYTHON_VERSION)
@@ -136,13 +137,31 @@
 	find $(TARGET_DIR)/usr/lib/ -name '*.pyo' -exec rm {} \; && \
 	rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \
 		$(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc \
-		$(TARGET_DIR)/usr/lib/python*/test
+		$(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_SHORT)/test
+	cp -dpr $(TARGET_DIR)/usr/include/python$(PYTHON_VERSION_SHORT) $(STAGING_DIR)/usr/include/
+	mkdir -p $(STAGING_DIR)/usr/lib/python$(PYTHON_VERSION_SHORT)
+	cp -dpr $(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_SHORT)/config $(STAGING_DIR)/usr/lib/python$(PYTHON_VERSION_SHORT)/
+
 ifeq ($(BR2_PACKAGE_PYTHON_PY_ONLY),y)
 	find $(TARGET_DIR)/usr/lib/ -name '*.pyc' -exec rm {} \;
 endif
 ifeq ($(BR2_PACKAGE_PYTHON_PYC_ONLY),y)
 	find $(TARGET_DIR)/usr/lib/ -name '*.py' -exec rm {} \;
 endif
+ifneq ($(BR2_PACKAGE_PYTHON_DEV),y)
+	rm -rf $(TARGET_DIR)/usr/include/python$(PYTHON_VERSION_SHORT)
+	rm -rf $(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_SHORT)/config
+	find $(TARGET_DIR)/usr/lib/ -name '*.py' -exec rm {} \;
+endif
+ifneq ($(BR2_PACKAGE_PYTHON_BSDDB),y)
+	rm -rf $(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_SHORT)/bsddb
+endif
+ifneq ($(BR2_PACKAGE_PYTHON_CURSES),y)
+	rm -rf $(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_SHORT)/curses
+endif
+ifneq ($(BR2_PACKAGE_PYTHON_TKINTER),y)
+	rm -rf $(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_SHORT)/lib-tk
+endif
 
 python: uclibc $(PYTHON_DEPS) $(TARGET_DIR)/$(PYTHON_TARGET_BINARY)
 

Index: Config.in
===================================================================

package/python/Config.in renamed from package/python/Config.in.orig +8 -0
@@ -6,6 +6,14 @@
 
 	  http://www.python.org/
 
+config BR2_PACKAGE_PYTHON_DEV
+	depends on BR2_PACKAGE_PYTHON
+	bool "development files on target"
+	default n
+	help
+	  If enabled, development files (headers and static libpython) will be
+	  installed on the target.
+
 choice
 	prompt "Module format to install"
 	depends on BR2_PACKAGE_PYTHON
Signature · 8 lines
Hamish Moffatt VK3SB <[email protected]> <[email protected]>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: br-python3.patch
Type: text/x-diff
Size: 2389 bytes
Desc: not available
Url : http://busybox.net/lists/buildroot/attachments/20080124/b53fca3b/attachment.bin 
#4 lore raw

PATCH 1/1 more python enhancements

In reply to Hamish Moffatt
Quoted 12 lines · Hamish Moffatt

Here's another improvement to the Python package.

1. Don't install the development headers, tools and static library into the target system unless new configuration item is enabled.

2. Always install the development headers etc into the staging_dir, so they can be used to build extension modules.

Hamish

Quoted 6 lines

------------------------------------------------------------------------

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

Hi,

please supply correct patch (svn diff or diff -urN)

--- python.mk (.../mirror/buildroot/package/python) (revision 3461)
+++ python.mk (.../beethoven/elara/trunk/buildroot/package/python) (revision 3461)

I do not know how to apply it.

Regards,
Ivan
--------------------------------
Embedded Linux engineer,
Promwad Company: http://www.promwad.com/
Homepage : http://www.ivankuten.com/
--------------------------------

#5 lore raw

PATCH 1/1 more python enhancements

Quoted 14 lines · Ivan Kuten
Quoted 7 lines · Hamish Moffatt

Here's another improvement to the Python package.

1. Don't install the development headers, tools and static library into the target system unless new configuration item is enabled.

2. Always install the development headers etc into the staging_dir, so they can be used to build extension modules.

please supply correct patch (svn diff or diff -urN)

beethoven/elara/trunk/buildroot/package/python) (revision 3461) renamed from mirror/buildroot/package/python) (revision 3461) +0 -0
Quoted 1 line

I do not know how to apply it.

Oh sorry. The attached should do; I edited it by hand to add full paths.

Alternative you could apply it within the package/python directory using "patch -p0 < br-python2.patch".

Hamish

Signature · 8 lines
Hamish Moffatt VK3SB <[email protected]> <[email protected]>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: br-python2.patch
Type: text/x-diff
Size: 2793 bytes
Desc: not available
Url : http://busybox.net/lists/buildroot/attachments/20080119/0cde40c3/attachment.bin