Hi 郭涛 and Alexandru,

ldconfig depends on using eglibc to fulfill libc requirement.
Symbol: PACKAGE_ldconfig [=n]
Type  : tristate
Prompt: ldconfig............................... Shared library path configuration
Location:
(3) -> Utilities
Defined at tmp/.config-package.in:82365
Depends on: !USE_MUSL [=y]

If we make python depend on ldconfig, then are we saying python cannot be used with MUSL libc? I don't know what the default libc is for OpenWRT or whether one is considered experimental more than the other. But this is something to consider.
Thanks,
Andrew

On 1/18/17 03:32, 郭涛 wrote:
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
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to