Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Building Debian package failure on stretch/sid #463

Closed
ageis opened this issue Aug 24, 2017 · 2 comments
Closed

Building Debian package failure on stretch/sid #463

ageis opened this issue Aug 24, 2017 · 2 comments

Comments

@ageis
Copy link
Contributor

ageis commented Aug 24, 2017

Build requirements are all installed, and I followed the documentation. My system is mostly Debian stretch, with a mixture of some more recent packages from testing/sid included. Running the Python scripts works fine, just trying to build the Debian package which fails near to some tests near the end.

I'm attaching the contents my ./deb_dist and build_log.txt which includes some warnings.

Just to demonstrate I'm on latest, running the build script from the HEAD of the latest clean master branch:

kevin@helios:~/dev/onionshare$ git pull
Already up-to-date.
Current branch master is up to date.
kevin@helios:~/dev/onionshare$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working tree clean

I don't know if it's necessary to post the full build output, so I'll just show the actual failure, which seems to indicate a problem with the debian/rules file.

dh_auto_test -O--buildsystem=pybuild
I: pybuild base:184: cd /home/kevin/dev/onionshare/deb_dist/onionshare-1.1/.pybuild/pythonX.Y_3.6/build; python3.6 -m pytest test
=============================================================================================== test session starts ===============================================================================================
platform linux -- Python 3.6.2, pytest-3.0.6, py-1.4.32, pluggy-0.4.0
rootdir: /home/kevin/dev/onionshare/deb_dist/onionshare-1.1, inifile: 
collected 0 items 

========================================================================================== no tests ran in 0.00 seconds ===========================================================================================
E: pybuild pybuild:283: test: plugin distutils failed with: exit code=5: cd /home/kevin/dev/onionshare/deb_dist/onionshare-1.1/.pybuild/pythonX.Y_3.6/build; python3.6 -m pytest test
dh_auto_test: pybuild --test --test-pytest -i python{version} -p "3.6 3.5" returned exit code 13
debian/rules:7: recipe for target 'build' failed
make: *** [build] Error 25
dpkg-buildpackage: error: debian/rules build gave error exit status 2
Traceback (most recent call last):
  File "setup.py", line 65, in <module>
    ('/usr/share/nautilus-python/extensions/', ['install/scripts/onionshare-nautilus.py'])
  File "/usr/lib/python3.5/distutils/core.py", line 148, in setup
    dist.run_commands()
  File "/usr/lib/python3.5/distutils/dist.py", line 955, in run_commands
    self.run_command(cmd)
  File "/usr/lib/python3.5/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "/usr/lib/python3/dist-packages/stdeb/command/bdist_deb.py", line 48, in run
    util.process_command(syscmd,cwd=target_dirs[0])
  File "/usr/lib/python3/dist-packages/stdeb/util.py", line 183, in process_command
    check_call(args, cwd=cwd)
  File "/usr/lib/python3/dist-packages/stdeb/util.py", line 46, in check_call
    raise CalledProcessError(retcode)
stdeb.util.CalledProcessError: 2
OnionShare failed to build!

Note: I then ran git clean -fdx, upgraded all Python 3.5 and 2.7 PyPI modules to their latest versions, and tried it with superuser (root) privileges, received the same result. There was no .deb created, though did we get part of the way in that some deb-src files exist. (see attachments)

build_log.txt
deb_dist.tar.gz

@ageis ageis changed the title Building Debian package failure on Debian stretch/sid Building Debian package failure on stretch/sid Aug 24, 2017
@mig5
Copy link
Collaborator

mig5 commented Nov 5, 2017

The issue seems to be that only files inside the test/ dir that are prefixed with test_ are actually copied into the package being made for turning into a .deb.

The result is that no actual tests are run and this is the return code 5.

I found if I renamed the test files to have a test_ prefix, they'd get copied in automatically. Probably a stdeb/pytest wtf.

The tests, nonetheless, actually still fail for other reasons via this method (apparently requires pytest --fixtures [testpath] to fix some sort of discovery issue)

This is probably a regression from swapping out nosetests for pytest?

A nasty workaround seems to be to remove python3-pytest from the Build-Depends section of stdeb.cfg, if you are happy to skip the tests and just want your .deb file.

@micahflee
Copy link
Collaborator

Thanks @mig5. I did end up renaming the tests to start with test_, but the next problem I ran into was that the tests, when running from there, couldn't find the share files that are necessary for onionshare to work (like wordlist.txt). PR #476 resolves this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants