guix-science
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: packaging python-cyvcf2


From: Alexis Simon
Subject: Re: packaging python-cyvcf2
Date: Fri, 22 Mar 2024 12:38:41 -0700
User-agent: Mozilla Thunderbird


On 22/03/2024 08:25, Simon Tournier wrote:
Hi,

On jeu., 21 mars 2024 at 18:03, Alexis Simon via Guix-Science 
<guix-science@gnu.org> wrote:

The build is failing with this error:
running build_ext
# cyvcf2: htslib mode is BUILTIN
# cyvcf2: htslib configure options is None
error: [Errno 2] No such file or directory: './configure'
error: in phase 'build': uncaught exception:
%exception #<&invoke-error program: "python" arguments: ("./setup.py"
"build") exit-status: 1 term-signal: #f stop-signal: #f>

What is very disturbing is that it builds fine in a debugging
environment following the documentation [2]

Indeed!  Well, another undocumented trick. ;-)

         guix build -L . python-cyvcf2 \
              --with-source=python-cyvcf2=/tmp/cyvcf2-0.30.28

where /tmp/cyvcf2-0.30.28 is the uncompressed output of “guix build -S”
that I tweak.  Adding this:

--8<---------------cut here---------------start------------->8---
diff -u /tmp/guix-build-python-cyvcf2-0.30.28.drv-0/cyvcf2-0.30.28/setup.py 
/tmp/cyvcf2-0.30.28/setup.py
--- /tmp/guix-build-python-cyvcf2-0.30.28.drv-0/cyvcf2-0.30.28/setup.py 
2024-01-30 17:46:32.000000000 +0100
+++ /tmp/cyvcf2-0.30.28/setup.py        2024-03-22 16:15:28.124301350 +0100
@@ -83,7 +83,13 @@
          if htslib_configure_options:
              configure_args.extend(htslib_configure_options.split())
- subprocess.run(configure_args, check=True)
+        print(configure_args,
+              "File exists?", os.path.exists(configure_args[0]),
+              flush=True)
+        try:
+            subprocess.run(configure_args, check=True)
+        except:
+            print("BANG!")
      subprocess.run(["make"], check=True)
os.chdir(current_directory)
--8<---------------cut here---------------end--------------->8---

It leads to this output:

--8<---------------cut here---------------start------------->8---
running build_ext
# cyvcf2: htslib mode is BUILTIN
# cyvcf2: htslib configure options is None
['./configure', 'CFLAGS=-fPIC'] File exists? True
echo '# Default htscodecs.mk generated by Makefile' > htscodecs.mk
echo 'include $(HTSPREFIX)htscodecs_bundled.mk' >> htscodecs.mk
./hts_probe_cc.sh 'gcc' '-g -Wall -O2 -fvisibility=hidden ' '-fvisibility=hidden' 
>> htscodecs.mk
/gnu/store/rib9g2ig1xf3kclyl076w28parmncg4k-bash-minimal-5.1.16/bin/sh: line 1: 
./hts_probe_cc.sh: No such file or directory
Makefile:141: htscodecs.mk: No such file or directory
make: *** [Makefile:124: htscodecs.mk] Error 127
BANG!
Traceback (most recent call last):
[...]
--8<---------------cut here---------------end--------------->8---

Arf, then I have not investigated further.

I think it does not come from ’./configure’ as wrongly reported but from
something triggered by it.

Let me know your progress.  Maybe I could give a closer look next week.

Thanks a lot for the trick, I was able to finish compiling it, but going another route (i.e. unbundling htslib).

I've abandoned running the tests though, I'm hitting a module not found error. pytest doesn't manage to load the just built module, probably an issue with the paths.

I'm attaching the new version for reference.

Cheers,
Alexis


Cheers,
simon

Attachment: cyvcf2.scm
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]