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

Re: bitseq - Clarification on autopkgtest setup for 32-bit.



Hi Harish,

Thanks for the status, I have focused on answering your
questions for now, but have not gone through review yet, to give
you some time to wrap up the changes you still wanted to bring,
notably for the readme file about test data.  I did push changes
and tags to help you with the handling of the component tarball,
so you may want to refresh your copy of the bitseq code.  Also,
I have left a question to you about your autopkgtest command
execution being stuck, let's see the steps how to resolve that.

harish chavre, on 2025-06-18:
> I have updated the autopkgtest for bitseq to use pregenerated
> data to avoid running Bowtie during the test. , placed outside
> the debian directory. However, I haven't added the
> d/t/README.debian  file yet , please guide me on how best to
> write it?

Since the dataset is not dynamically constructed by bowtie
anymore, but is precomputed and shipped via the component
tarball debian-tests-data, the point of the free form text file
debian/tests/README.debian would be to describe:

 1. why precomputing the dataset was needed (because it requires
    running bowtie, which is not available on 32-bit platforms);

 2. how the dataset can be reconstructed (using bowtie on a
    64-bit platform independently, invoking the command that
    used to be present in the first version of the autopkgtest).

It does not need to be litterature, something clear and concise,
to the point, will suffice.  Something along those lines might
give you some inspiration:

	Debian Tests Data
	=================
	
	bitseq normally parses the output of bowtie, which is usually
	invoked prior to bitseq, but bowtie is not available on 32-bit
	architectures.  The component tarball debian-tests-data will
	thus ship the output of bowtie commands.  Test data can be
	reconstructed with:
	
		bowtie-build -f Ref.fasta index
		bowtie -q -v 3 --all -m 100 --sam index Reads.fastq  -S out.sam

> I also tried running
> autopkgtest bitseq_0.7.5+dfsg-7_amd64.changes --unshare --arch i386 --release unstable
> to test on another architecture after doing all the setup
> mentioned in previous mails, , but the command gets stuck
> after a few lines.

Per chance could you also copy and paste the few lines before
which autopkgtest got stuck?  They might give us clues what went
wrong exactly.  I have already attempted to cover this question
in my first answer of June 11th, but it is quite likely I missed
the point if my initial information did not help.

> After pushing the changes to Salsa, I noticed the build
> pipeline failed.  please review and suggest what might be
> wrong?
> [] https://salsa.debian.org/med-team/bitseq/-/commits/master

Salsa logs for the build job shows notably the following errors:

	 dpkg-source -b .
	dpkg-source: info: using source format '3.0 (quilt)'
	dpkg-source: info: building bitseq using existing ./bitseq_0.7.5+dfsg.orig.tar.xz
	dpkg-source: info: using patch list from debian/patches/series
	dpkg-source: error: cannot represent change to debian-tests-data/index.1.ebwt: binary file contents changed
	dpkg-source: error: add debian-tests-data/index.1.ebwt in debian/source/include-binaries if you want to store the modified binary in the debian tarball
	dpkg-source: error: cannot represent change to debian-tests-data/index.2.ebwt: binary file contents changed
	dpkg-source: error: add debian-tests-data/index.2.ebwt in debian/source/include-binaries if you want to store the modified binary in the debian tarball
	dpkg-source: error: cannot represent change to debian-tests-data/index.3.ebwt: binary file contents changed
	dpkg-source: error: add debian-tests-data/index.3.ebwt in debian/source/include-binaries if you want to store the modified binary in the debian tarball
	dpkg-source: error: cannot represent change to debian-tests-data/index.4.ebwt: binary file contents changed
	dpkg-source: error: add debian-tests-data/index.4.ebwt in debian/source/include-binaries if you want to store the modified binary in the debian tarball
	dpkg-source: error: cannot represent change to debian-tests-data/index.rev.1.ebwt: binary file contents changed
	dpkg-source: error: add debian-tests-data/index.rev.1.ebwt in debian/source/include-binaries if you want to store the modified binary in the debian tarball
	dpkg-source: error: cannot represent change to debian-tests-data/index.rev.2.ebwt: binary file contents changed
	dpkg-source: error: add debian-tests-data/index.rev.2.ebwt in debian/source/include-binaries if you want to store the modified binary in the debian tarball
	dpkg-source: error: unrepresentable changes to source
	dpkg-buildpackage: error: dpkg-source -b . subprocess returned exit status 1

I believe they are the root cause of the pipeline failure for
all three jobs at the build step.  I happen to have also run
into this issue when trying to build your changes on my end too,
when driving the package construction with `gbp buildpackage`.
What happens is: changes brought to the component tarball are
upstream changes, because they are not part of the debian/
directory.  It is thus necessary to bump the upstream version to
match the changes brought to the component version.  Otherwise,
as you can see above and in Salsa logs, the step consisting in
the construction of the source package from the git tree will
complain about the files that are not part of the regular
upstream version 0.7.5+dsfg.  Honestly, introduction of foreign
datasets upstream via components tarball is hard to get right,
because it goes off tracks a lot compared to typical packaging
tasks.  Here are the steps that I ran to recover:

 1. I first edited the debian/gbp.conf with:

	[DEFAULT]
	pristine-tar=True
	component=['debian-tests-data']

    Actually, I even identified in the git log that you issued
    d/gbp.conf file in 8927d2e08026aa0a055cf9b81bc4e7648bb47a76,
    but 5b46266bfcba234e735f51877127e099a0cc9da6 looks to have
    erased it, perhaps due to being in "upstream" branch instead
    of the default master;

 2. I tagged the tip of "upstream" branch "upstream/0.7.5+dfsg2"
    so that the tooling around gbp is capable of selecting the
    dedicated version including the components tarball:

	git tag upstream/0.7.5+dfsg2 upstream

 3. I then initialised the d/changelog file in order to align it
    to the 0.7.5+dfsg2 upstream by giving it the packaging
    version 0.7.5+dfsg2-1, `gbp dch` is still useful to wrap up
    a skeleton of changelog entry, but it is necessary to ensure
    that the version number does reflect the new upstream repack
    version, in addition to the usual making sure that changelog
    entries autogenerated make sense and are useful;

 4. I rebuilt the original and component tarball out of the gbp
    upstream branch using:
	
	gbp export-orig --no-pristine-tar

 5. At this point, I took an extra step to examine the newly
    issued bitseq_0.7.5+dfsg2.orig.tar.xz and compared it to the
    pristine bitseq_0.7.5+dfsg.orig.tar.xz in order to ensure
    there were no components tarball changes leaking into the
    original tarball by accident;

 6. I reinjected the changes brought to the components tarball
    into the pristine-tar branch with:

	gbp pristine-tar commit ../bitseq_0.7.5+dfsg2.orig.tar.xz --component debian-tests-data

Changes are pushed to Salsa, so you won't have to go through
those steps yourself, but you may want to take good note of them
in case you run into another similar situation involving changes
in component data.

I let you proceed with writing the d/t/README.debian, also don't
forget to gather troubleshooting elements for the autopkgtest
command execution.  Once the autopkgtest invocation on i386 is
on track, it will be possible to verify whether bitseq seems
capable of running on 32-bit systems; I've had a peek at how
things are doing, but let you discover the results by yourself.
;)

Have a nice day,  :)
-- 
  .''`.  Étienne Mollier <emollier@debian.org>
 : :' :  pgp: 8f91 b227 c7d6 f2b1 948c  8236 793c f67e 8f0d 11da
 `. `'   sent from /dev/pts/2, please excuse my verbosity
   `-

Attachment: signature.asc
Description: PGP signature


Reply to: