From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from localhost (localhost [127.0.0.1]) by arlo.cworth.org (Postfix) with ESMTP id 83AD16DE0931 for ; Sun, 20 Oct 2019 05:28:02 -0700 (PDT) X-Virus-Scanned: Debian amavisd-new at cworth.org X-Spam-Flag: NO X-Spam-Score: -0.058 X-Spam-Level: X-Spam-Status: No, score=-0.058 tagged_above=-999 required=5 tests=[AWL=-0.057, SPF_PASS=-0.001] autolearn=disabled Received: from arlo.cworth.org ([127.0.0.1]) by localhost (arlo.cworth.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id S5to79rCSQhA for ; Sun, 20 Oct 2019 05:28:01 -0700 (PDT) Received: from fethera.tethera.net (fethera.tethera.net [198.245.60.197]) by arlo.cworth.org (Postfix) with ESMTPS id 80D296DE01BB for ; Sun, 20 Oct 2019 05:28:01 -0700 (PDT) Received: from remotemail by fethera.tethera.net with local (Exim 4.89) (envelope-from ) id 1iMAJU-0007bq-OX; Sun, 20 Oct 2019 08:28:00 -0400 Received: (nullmailer pid 22164 invoked by uid 1000); Sun, 20 Oct 2019 12:22:38 -0000 From: David Bremner To: Floris Bruynooghe , notmuch@notmuchmail.org Subject: Re: Python3 cffi bindings In-Reply-To: <877e53tgvc.fsf@powell.devork.be> References: <20191008210312.20685-1-flub@devork.be> <8736fvbivq.fsf@tethera.net> <87zhi3a46q.fsf@tethera.net> <877e53tgvc.fsf@powell.devork.be> Date: Sun, 20 Oct 2019 09:22:38 -0300 Message-ID: <878spfsj1t.fsf@tethera.net> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-BeenThere: notmuch@notmuchmail.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Oct 2019 12:28:02 -0000 --=-=-= Content-Type: text/plain Content-Disposition: inline Floris Bruynooghe writes: > > It is possible to run this without installing, but it does need a build > step since cffi (in the mode used - which is the recommended mode) needs > to build an extension module. I did something like this, using my > debian testing system-installed python > > $ export PYTHONPATH=$(pwd)/bindings/python-cffi > $ pushd bindings/python-cffi > $ python3 notdb/_build.py # creates notdb/_capi.cpython-37m-x86_64-linux-gnu.so > $ popd > $ pushd test > $ ./T391-pytest.sh Yes, I think I arrived at a similar place, except 1) using "python3 setup.py --build-lib build/stage" to build. I'm not sure which is better, I think it will depend a bit on when we try to get out of tree builds working. It is a bit nicer to have the build output out of tree, but then I have to copy the tests. 2) instead of changing PYTHONPATH, use "python3 -m pytest", which picks up the module in the current directory. > Does that more or less work? One problem with this is that it will pick > up the system-wide installed notmuch though. I guess the way to change > this is by tweaking CFLAGS=-I... LDFLAGS=-L... or so when building? But > than you also have the whole RPATH/LD_LIBRARY_PATH stuff going on as > well. Does notmuch abstract any of this away already for it's test > suite? The LD_LIBRARY_PATH is already set by the test harness, as is PATH (to find notmuch). It looks like your function notmuch is not respecting PATH (see attached log). if I hack something like diff --git a/bindings/python-cffi/tests/conftest.py b/bindings/python-cffi/tests/conftest.py index 1b7bbc35..ac17397c 100644 --- a/bindings/python-cffi/tests/conftest.py +++ b/bindings/python-cffi/tests/conftest.py @@ -31,7 +31,7 @@ def notmuch(maildir): accidentally do this in the unittests. """ cfg_fname = maildir.path / 'notmuch-config' - cmd = ['notmuch'] + list(args) + cmd = ['../../notmuch'] + list(args) print('Invoking: {}'.format(' '.join(cmd))) proc = subprocess.run(cmd, then the tests pass, but this is obviously not a good solution. --=-=-= Content-Type: application/x-xz Content-Disposition: attachment; filename=test.output.xz Content-Transfer-Encoding: base64 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 --=-=-=--