Hi Andrew & Alexandru Forget the patch in prev mail, use attached patch instead.
To use ctypes.util.find_library, you need one of gcc, ldconfig or objdump. I suggest you use ldconfig After install ldconfig, run ldconfig first to update cache then run ldconfig -p to show all of your libraries in my case, it shows: 195 libs found in cache `/etc/ld.so.cache' (version 1.7.0) uhttpd_tls.so (libc0) => /usr/lib/uhttpd_tls.so rclibrary.so (libc0) => /usr/lib/rclibrary.so libz.so.1 (libc0) => /usr/lib/libz.so.1 libz.so (libc0) => /usr/lib/libz.so libyaml-0.so.2 (libc0) => /usr/lib/libyaml-0.so.2 ...... All libraries are libc0, that's why ctypes.util.find_library does not work on my platform You need to run 'uname -m' to get your matchine name and run 'ldconfig -p' to get library type. Atter all, append '$machine' : '$type' to mach_map list in ctypes/util.py and try find_library('pthread') >>> from ctypes.util import find_library >>> >>> find_library('pthread') 'libpthread.so.0' 2017-01-17 22:22 GMT+08:00 Alexandru Ardelean <ardeleana...@gmail.com>: > Will give it a try. > > On Mon, Jan 16, 2017 at 9:41 PM, Andrew McConachie <and...@depht.com> wrote: >> Hi Alexandru and 郭涛, >> >> Attached is the Makefile I made for python-iptables. I can work around this >> by hardwiring library locations in the source of python-iptables, but I'd >> rather do it the correct way. To reproduce this build an OpenWrt system with >> this Makefile and then just create a simple Python script with 'import >> iptc'. >> >> I am cloning OpenWrt from Github and running make menuconfig;make to build >> everything. My Github version is about 6 days old with the last commit at >> 5ba298c. >> >> I also found that /proc/sys/kernel/modprobe contains /sbin/modprobe, while >> the modprobe binary is at /usr/sbin/modprobe. According to the Debian man >> page on proc(5), /proc/sys/kernel/modprobe should point to the modprobe >> binary. Googling about seems also to suggest that this file should contain >> the location of the modprobe binary. So I would say this is also a bug. >> >> Thanks! >> --Andrew >> >> >> On 1/16/17 07:23, Alexandru Ardelean wrote: >>> >>> Hey Andrew & 郭涛 >>> >>> Sorry I did not answer sooner. >>> >>> @Andrew: do you have a Makefile for the python-iptables packages ? >>> I'd like to try to build it and see the issue. Or, are you just using >>> that .py file ? >>> Can you give a bit more input on which Python version you're using, >>> and which OpenWrt version? >>> >>> If the issue is still present in the current packages trunk, I'd like to >>> fix it. >>> And if 郭涛's fix works, we can apply it to trunk. >>> >>> Thanks >>> Alex >>> >>> >>> On Mon, Jan 16, 2017 at 6:23 AM, 郭涛 <guotao...@gmail.com> wrote: >>>> >>>> I also meet this issue. >>>> I fixed it using below change >>>> >>>> >>>> https://github.com/gt945/Netgear-D7800-Openwrt-Packages/commit/fab71ca0ebf36d5f7b495b96f14d459e794b7224 >>>> >>>> >>>> 2017-01-13 0:43 GMT+08:00 Andrew McConachie <and...@depht.com>: >>>>> >>>>> Hi OpenWRT Devs, >>>>> >>>>> I'm building an OpenWRT package for python-iptables for a project I'm >>>>> working on and getting this error message when attempting to use it. >>>>> >>>>> import iptc >>>>> File "/usr/lib/python2.7/site-packages/iptc/__init__.py", line 10, in >>>>> <module> >>>>> from ip4tc import (is_table_available, Table, Chain, Rule, Match, >>>>> Target, >>>>> File "/usr/lib/python2.7/site-packages/iptc/ip4tc.py", line 13, in >>>>> <module> >>>>> from xtables import (XT_INV_PROTO, NFPROTO_IPV4, XTablesError, >>>>> xtables, >>>>> File "/usr/lib/python2.7/site-packages/iptc/xtables.py", line 677, in >>>>> <module> >>>>> _optind = ct.c_long.in_dll(_libc, "optind") >>>>> AttributeError: 'NoneType' object has no attribute '_handle' >>>>> >>>>> You can view xtables.py here if you're curious. >>>>> https://github.com/ldx/python-iptables/blob/master/iptc/xtables.py >>>>> >>>>> The problem is that my python-iptables package cannot find libc >>>>> functions >>>>> using ctypes.util.find_library(). I've tried building OpenWRT using both >>>>> musl and eglibc but neither work. I've also tried building OpenWRT with >>>>> objdump and ldconfig. When I include ldconfig via 'make menuconfig' it >>>>> doesn't actually populate my OpenWRT image with an ldconfig binary. >>>>> Maybe >>>>> this is the problem? >>>>> >>>>> This bug report looks similar to my problem, but it's about MIPS and >>>>> marked >>>>> as closed. >>>>> https://dev.openwrt.org/ticket/20123 >>>>> >>>>> Any help or pointers would be much appreciated. >>>>> >>>>> Thanks, >>>>> Andrew >>>>> _______________________________________________ >>>>> openwrt-devel mailing list >>>>> openwrt-devel@lists.openwrt.org >>>>> https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel >>>> >>>> _______________________________________________ >>>> openwrt-devel mailing list >>>> openwrt-devel@lists.openwrt.org >>>> https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel >> >>
--- a/Lib/ctypes/util.py +++ b/Lib/ctypes/util.py @@ -223,6 +223,7 @@ elif os.name == "posix": 'sparc64-64': 'libc6,64bit', 's390x-64': 'libc6,64bit', 'ia64-64': 'libc6,IA-64', + 'armv7l-32': 'libc0', } abi_type = mach_map.get(machine, 'libc6')
_______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel