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

Buildozer tried to download kivy-sdk-packager from an invalid url #1758

Closed
ericlinsechs opened this issue Dec 26, 2023 · 6 comments
Closed

Comments

@ericlinsechs
Copy link

ericlinsechs commented Dec 26, 2023

Versions

  • Python: 3.10.4
  • OS: macOS 13.6.3
  • Buildozer: 1.5.1.dev0

Description

// REPLACE ME: What are you trying to get done, what has happened, what went wrong, and what did you expect?
I tried to run Buildozer to package my python kivy project. But i got HTTP Error 404 during packaging because the url of kivy-sdk-packager is invalid.

buildozer.spec

Command:

buildozer osx debug

Spec file:

[app]

# (str) Title of your application
title = Easy Tags

# (str) Package name
package.name = EasyTags

# (str) Package domain (needed for android/ios packaging)
package.domain = org.test

# (str) Source code where the main.py live
source.dir = ./easy_tags

# (list) Source files to include (leave empty to include all the files)
source.include_exts = py,png,jpg,kv,atlas

# (list) List of inclusions using pattern matching
#source.include_patterns = assets/*,images/*.png

# (list) Source files to exclude (leave empty to not exclude anything)
#source.exclude_exts = spec

# (list) List of directory to exclude (leave empty to not exclude anything)
#source.exclude_dirs = tests, bin, venv

# (list) List of exclusions using pattern matching
# Do not prefix with './'
#source.exclude_patterns = license,images/*/*.jpg

# (str) Application versioning (method 1)
version = 0.1

# (str) Application versioning (method 2)
# version.regex = __version__ = ['"](.*)['"]
# version.filename = %(source.dir)s/main.py

# (list) Application requirements
# comma separated e.g. requirements = sqlite3,kivy
requirements = python3,kivy

# (str) Custom source folders for requirements
# Sets custom source for any requirements with recipes
# requirements.source.kivy = ../../kivy

# (str) Presplash of the application
#presplash.filename = %(source.dir)s/data/presplash.png

# (str) Icon of the application
#icon.filename = %(source.dir)s/data/icon.png

# (list) Supported orientations
# Valid options are: landscape, portrait, portrait-reverse or landscape-reverse
orientation = portrait

# (list) List of services to declare
# This is currently only relevant to Android services.
# Each service consists of a name (a valid Java class name, with the first letter capitalized)
# followed by a colon, followed by the name of the Python script (.py file) that should be
# launched. This is optionally followed by ":foreground" for foreground services or
# ":foreground:sticky" for sticky foreground services. The default is a background service.
# Bound services are not supported.
#services = NAME:ENTRYPOINT_TO_PY,NAME2:ENTRYPOINT2_TO_PY

Logs

# Ensure build layout
# Check configuration tokens
# Preparing build
# Check requirements for osx
# Check if kivy-sdk-packager exists
# kivy-sdk-packager does not exist, clone it
# Downloading https://github.com/kivy/kivy-sdk-packager/archive/master.zipmaster.zip
Traceback (most recent call last):
  File "/Users/ericlin/.pyenv/versions/3.10.4/bin/buildozer", line 8, in <module>
    sys.exit(main())
  File "/Users/ericlin/.pyenv/versions/3.10.4/lib/python3.10/site-packages/buildozer/scripts/client.py", line 16, in main
    Buildozer().run_command(sys.argv[1:])
  File "/Users/ericlin/.pyenv/versions/3.10.4/lib/python3.10/site-packages/buildozer/__init__.py", line 682, in run_command
    self.target.run_commands(args)
  File "/Users/ericlin/.pyenv/versions/3.10.4/lib/python3.10/site-packages/buildozer/targets/osx.py", line 189, in run_commands
    func(args)
  File "/Users/ericlin/.pyenv/versions/3.10.4/lib/python3.10/site-packages/buildozer/target.py", line 106, in cmd_debug
    self.buildozer.prepare_for_build()
  File "/Users/ericlin/.pyenv/versions/3.10.4/lib/python3.10/site-packages/buildozer/__init__.py", line 88, in prepare_for_build
    self.target.check_requirements()
  File "/Users/ericlin/.pyenv/versions/3.10.4/lib/python3.10/site-packages/buildozer/targets/osx.py", line 79, in check_requirements
    self.ensure_sdk()
  File "/Users/ericlin/.pyenv/versions/3.10.4/lib/python3.10/site-packages/buildozer/targets/osx.py", line 32, in ensure_sdk
    buildops.download(
  File "/Users/ericlin/.pyenv/versions/3.10.4/lib/python3.10/site-packages/buildozer/buildops.py", line 416, in download
    with urlopen(request) as response:
  File "/Users/ericlin/.pyenv/versions/3.10.4/lib/python3.10/urllib/request.py", line 216, in urlopen
    return opener.open(url, data, timeout)
  File "/Users/ericlin/.pyenv/versions/3.10.4/lib/python3.10/urllib/request.py", line 525, in open
    response = meth(req, response)
  File "/Users/ericlin/.pyenv/versions/3.10.4/lib/python3.10/urllib/request.py", line 634, in http_response
    response = self.parent.error(
  File "/Users/ericlin/.pyenv/versions/3.10.4/lib/python3.10/urllib/request.py", line 557, in error
    result = self._call_chain(*args)
  File "/Users/ericlin/.pyenv/versions/3.10.4/lib/python3.10/urllib/request.py", line 496, in _call_chain
    result = func(*args)
  File "/Users/ericlin/.pyenv/versions/3.10.4/lib/python3.10/urllib/request.py", line 749, in http_error_302
    return self.parent.open(new, timeout=req.timeout)
  File "/Users/ericlin/.pyenv/versions/3.10.4/lib/python3.10/urllib/request.py", line 525, in open
    response = meth(req, response)
  File "/Users/ericlin/.pyenv/versions/3.10.4/lib/python3.10/urllib/request.py", line 634, in http_response
    response = self.parent.error(
  File "/Users/ericlin/.pyenv/versions/3.10.4/lib/python3.10/urllib/request.py", line 563, in error
    return self._call_chain(*args)
  File "/Users/ericlin/.pyenv/versions/3.10.4/lib/python3.10/urllib/request.py", line 496, in _call_chain
    result = func(*args)
  File "/Users/ericlin/.pyenv/versions/3.10.4/lib/python3.10/urllib/request.py", line 643, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 404: Not Found
@Julian-O
Copy link
Contributor

Julian-O commented Jan 30, 2024

As hinted by quanon on Discord:

This seems to be an error in some code I modified.

'https://github.com/kivy/kivy-sdk-packager/archive/master.zip',

The download function takes a URL and a file name. Counter-intuitively, it adds the filename to the URL before downloading.

To compensate, master.zip should be removed from the end of the URL.

@Julian-O
Copy link
Contributor

Julian-O commented Jan 30, 2024

I know why this didn't fail the unit-tests on my machine - I don't have a Mac. But why didn't it fail the GitHub automated CI tests? Do we not have an integration test that builds from scratch?

@misl6
Copy link
Member

misl6 commented Feb 4, 2024

We do not have tests for macOS (and is bad)

@fenghuaxueyeyzh
Copy link

Discord 上的 quanon 正如所暗示的:

这似乎是我修改了某些代码中的错误。

'https://github.com/kivy/kivy-sdk-packager/archive/master.zip',

下载函数采用URL和文件名。与直觉相反,它在下载之前将文件名添加到URL中。

为了补偿,master.zip应该从 URL 删除。
[INFO]: COMMAND:

cd /home/mark/桌面/demo/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/other_builds/pyjnius-sdl2/armeabi-v7a__ndk_target_21/pyjnius && /home/mark/桌面/demo/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/other_builds/hostpython3/desktop/hostpython3/native-build/python3 setup.py build_ext -v

[WARNING]: ERROR: /home/mark/桌面/demo/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/other_builds/hostpython3/desktop/hostpython3/native-build/python3 failed!

Command failed: /usr/bin/python3 -m pythonforandroid.toolchain create --dist_name=myapp --bootstrap=sdl2 --requirements=python3,kivy --arch arm64-v8a --arch armeabi-v7a --copy-libs --color=always --storage-dir="/home/mark/桌面/demo/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a" --ndk-api=21 --ignore-setup-py --debug

ENVIRONMENT:

SHELL = '/bin/bash'

SESSION_MANAGER = 'local/mark-VirtualBox:@/tmp/.ICE-unix/2540,unix/mark-VirtualBox:/tmp/.ICE-unix/2540'

QT_ACCESSIBILITY = '1'

COLORTERM = 'truecolor'

XDG_CONFIG_DIRS = '/etc/xdg/xdg-ubuntu:/etc/xdg'

SSH_AGENT_LAUNCHER = 'gnome-keyring'

XDG_MENU_PREFIX = 'gnome-'

GNOME_DESKTOP_SESSION_ID = 'this-is-deprecated'

LANGUAGE = 'zh_CN:zh'

GNOME_SHELL_SESSION_MODE = 'ubuntu'

SSH_AUTH_SOCK = '/run/user/1000/keyring/ssh'

XMODIFIERS = '@im=ibus'

DESKTOP_SESSION = 'ubuntu'

GTK_MODULES = 'gail:atk-bridge'

DBUS_STARTER_BUS_TYPE = 'session'

PWD = '/home/mark/桌面/demo'

LOGNAME = 'mark'

XDG_SESSION_DESKTOP = 'ubuntu'

XDG_SESSION_TYPE = 'wayland'

SYSTEMD_EXEC_PID = '2540'

XAUTHORITY = '/run/user/1000/.mutter-Xwaylandauth.0OIXJ2'

HOME = '/home/mark'

USERNAME = 'mark'

IM_CONFIG_PHASE = '1'

LANG = 'zh_CN.UTF-8'

LS_COLORS = 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:.tar=01;31:.tgz=01;31:.arc=01;31:.arj=01;31:.taz=01;31:.lha=01;31:.lz4=01;31:.lzh=01;31:.lzma=01;31:.tlz=01;31:.txz=01;31:.tzo=01;31:.t7z=01;31:.zip=01;31:.z=01;31:.dz=01;31:.gz=01;31:.lrz=01;31:.lz=01;31:.lzo=01;31:.xz=01;31:.zst=01;31:.tzst=01;31:.bz2=01;31:.bz=01;31:.tbz=01;31:.tbz2=01;31:.tz=01;31:.deb=01;31:.rpm=01;31:.jar=01;31:.war=01;31:.ear=01;31:.sar=01;31:.rar=01;31:.alz=01;31:.ace=01;31:.zoo=01;31:.cpio=01;31:.7z=01;31:.rz=01;31:.cab=01;31:.wim=01;31:.swm=01;31:.dwm=01;31:.esd=01;31:.jpg=01;35:.jpeg=01;35:.mjpg=01;35:.mjpeg=01;35:.gif=01;35:.bmp=01;35:.pbm=01;35:.pgm=01;35:.ppm=01;35:.tga=01;35:.xbm=01;35:.xpm=01;35:.tif=01;35:.tiff=01;35:.png=01;35:.svg=01;35:.svgz=01;35:.mng=01;35:.pcx=01;35:.mov=01;35:.mpg=01;35:.mpeg=01;35:.m2v=01;35:.mkv=01;35:.webm=01;35:.webp=01;35:.ogm=01;35:.mp4=01;35:.m4v=01;35:.mp4v=01;35:.vob=01;35:.qt=01;35:.nuv=01;35:.wmv=01;35:.asf=01;35:.rm=01;35:.rmvb=01;35:.flc=01;35:.avi=01;35:.fli=01;35:.flv=01;35:.gl=01;35:.dl=01;35:.xcf=01;35:.xwd=01;35:.yuv=01;35:.cgm=01;35:.emf=01;35:.ogv=01;35:.ogx=01;35:.aac=00;36:.au=00;36:.flac=00;36:.m4a=00;36:.mid=00;36:.midi=00;36:.mka=00;36:.mp3=00;36:.mpc=00;36:.ogg=00;36:.ra=00;36:.wav=00;36:.oga=00;36:.opus=00;36:.spx=00;36:.xspf=00;36:'

XDG_CURRENT_DESKTOP = 'ubuntu:GNOME'

VTE_VERSION = '6800'

WAYLAND_DISPLAY = 'wayland-0'

GNOME_TERMINAL_SCREEN = '/org/gnome/Terminal/screen/d755794c_9640_4d3e_b663_12386caaa937'

https_proxy = 'http://127.0.0.1:7890'

GNOME_SETUP_DISPLAY = ':1'

LESSCLOSE = '/usr/bin/lesspipe %s %s'

XDG_SESSION_CLASS = 'user'

TERM = 'xterm-256color'

LESSOPEN = '| /usr/bin/lesspipe %s'

USER = 'mark'

GNOME_TERMINAL_SERVICE = ':1.137'

DISPLAY = ':0'

SHLVL = '1'

QT_IM_MODULE = 'ibus'

DBUS_STARTER_ADDRESS = 'unix:path=/run/user/1000/bus,guid=4272032ffcd2309180b5e44365ed3f2c'

http_proxy = 'http://127.0.0.1:7890'

XDG_RUNTIME_DIR = '/run/user/1000'

XDG_DATA_DIRS = '/usr/share/ubuntu:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop'

PATH = '/home/mark/.buildozer/android/platform/apache-ant-1.9.4/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/home/mark/.local/bin/'

GDMSESSION = 'ubuntu'

DBUS_SESSION_BUS_ADDRESS = 'unix:path=/run/user/1000/bus,guid=4272032ffcd2309180b5e44365ed3f2c'

_ = '/home/mark/.local/bin/buildozer'

PACKAGES_PATH = '/home/mark/.buildozer/android/packages'

ANDROIDSDK = '/home/mark/.buildozer/android/platform/android-sdk'

ANDROIDNDK = '/home/mark/.buildozer/android/platform/android-ndk-r25b'

ANDROIDAPI = '27'

ANDROIDMINAPI = '21'

Buildozer failed to execute the last command

The error might be hidden in the log above this error

Please read the full log, and search for it before

raising an issue with buildozer itself.

In case of a bug report, please add a full log with log_level = 2

@fenghuaxueyeyzh
Copy link

我们没有针对 macOS 的测试(而且很糟糕)
[INFO]: COMMAND:

cd /home/mark/桌面/demo/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/other_builds/pyjnius-sdl2/armeabi-v7a__ndk_target_21/pyjnius && /home/mark/桌面/demo/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/other_builds/hostpython3/desktop/hostpython3/native-build/python3 setup.py build_ext -v

[WARNING]: ERROR: /home/mark/桌面/demo/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/other_builds/hostpython3/desktop/hostpython3/native-build/python3 failed!

Command failed: /usr/bin/python3 -m pythonforandroid.toolchain create --dist_name=myapp --bootstrap=sdl2 --requirements=python3,kivy --arch arm64-v8a --arch armeabi-v7a --copy-libs --color=always --storage-dir="/home/mark/桌面/demo/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a" --ndk-api=21 --ignore-setup-py --debug

ENVIRONMENT:

SHELL = '/bin/bash'

SESSION_MANAGER = 'local/mark-VirtualBox:@/tmp/.ICE-unix/2540,unix/mark-VirtualBox:/tmp/.ICE-unix/2540'

QT_ACCESSIBILITY = '1'

COLORTERM = 'truecolor'

XDG_CONFIG_DIRS = '/etc/xdg/xdg-ubuntu:/etc/xdg'

SSH_AGENT_LAUNCHER = 'gnome-keyring'

XDG_MENU_PREFIX = 'gnome-'

GNOME_DESKTOP_SESSION_ID = 'this-is-deprecated'

LANGUAGE = 'zh_CN:zh'

GNOME_SHELL_SESSION_MODE = 'ubuntu'

SSH_AUTH_SOCK = '/run/user/1000/keyring/ssh'

XMODIFIERS = '@im=ibus'

DESKTOP_SESSION = 'ubuntu'

GTK_MODULES = 'gail:atk-bridge'

DBUS_STARTER_BUS_TYPE = 'session'

PWD = '/home/mark/桌面/demo'

LOGNAME = 'mark'

XDG_SESSION_DESKTOP = 'ubuntu'

XDG_SESSION_TYPE = 'wayland'

SYSTEMD_EXEC_PID = '2540'

XAUTHORITY = '/run/user/1000/.mutter-Xwaylandauth.0OIXJ2'

HOME = '/home/mark'

USERNAME = 'mark'

IM_CONFIG_PHASE = '1'

LANG = 'zh_CN.UTF-8'

LS_COLORS = 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:.tar=01;31:.tgz=01;31:.arc=01;31:.arj=01;31:.taz=01;31:.lha=01;31:.lz4=01;31:.lzh=01;31:.lzma=01;31:.tlz=01;31:.txz=01;31:.tzo=01;31:.t7z=01;31:.zip=01;31:.z=01;31:.dz=01;31:.gz=01;31:.lrz=01;31:.lz=01;31:.lzo=01;31:.xz=01;31:.zst=01;31:.tzst=01;31:.bz2=01;31:.bz=01;31:.tbz=01;31:.tbz2=01;31:.tz=01;31:.deb=01;31:.rpm=01;31:.jar=01;31:.war=01;31:.ear=01;31:.sar=01;31:.rar=01;31:.alz=01;31:.ace=01;31:.zoo=01;31:.cpio=01;31:.7z=01;31:.rz=01;31:.cab=01;31:.wim=01;31:.swm=01;31:.dwm=01;31:.esd=01;31:.jpg=01;35:.jpeg=01;35:.mjpg=01;35:.mjpeg=01;35:.gif=01;35:.bmp=01;35:.pbm=01;35:.pgm=01;35:.ppm=01;35:.tga=01;35:.xbm=01;35:.xpm=01;35:.tif=01;35:.tiff=01;35:.png=01;35:.svg=01;35:.svgz=01;35:.mng=01;35:.pcx=01;35:.mov=01;35:.mpg=01;35:.mpeg=01;35:.m2v=01;35:.mkv=01;35:.webm=01;35:.webp=01;35:.ogm=01;35:.mp4=01;35:.m4v=01;35:.mp4v=01;35:.vob=01;35:.qt=01;35:.nuv=01;35:.wmv=01;35:.asf=01;35:.rm=01;35:.rmvb=01;35:.flc=01;35:.avi=01;35:.fli=01;35:.flv=01;35:.gl=01;35:.dl=01;35:.xcf=01;35:.xwd=01;35:.yuv=01;35:.cgm=01;35:.emf=01;35:.ogv=01;35:.ogx=01;35:.aac=00;36:.au=00;36:.flac=00;36:.m4a=00;36:.mid=00;36:.midi=00;36:.mka=00;36:.mp3=00;36:.mpc=00;36:.ogg=00;36:.ra=00;36:.wav=00;36:.oga=00;36:.opus=00;36:.spx=00;36:.xspf=00;36:'

XDG_CURRENT_DESKTOP = 'ubuntu:GNOME'

VTE_VERSION = '6800'

WAYLAND_DISPLAY = 'wayland-0'

GNOME_TERMINAL_SCREEN = '/org/gnome/Terminal/screen/d755794c_9640_4d3e_b663_12386caaa937'

https_proxy = 'http://127.0.0.1:7890'

GNOME_SETUP_DISPLAY = ':1'

LESSCLOSE = '/usr/bin/lesspipe %s %s'

XDG_SESSION_CLASS = 'user'

TERM = 'xterm-256color'

LESSOPEN = '| /usr/bin/lesspipe %s'

USER = 'mark'

GNOME_TERMINAL_SERVICE = ':1.137'

DISPLAY = ':0'

SHLVL = '1'

QT_IM_MODULE = 'ibus'

DBUS_STARTER_ADDRESS = 'unix:path=/run/user/1000/bus,guid=4272032ffcd2309180b5e44365ed3f2c'

http_proxy = 'http://127.0.0.1:7890'

XDG_RUNTIME_DIR = '/run/user/1000'

XDG_DATA_DIRS = '/usr/share/ubuntu:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop'

PATH = '/home/mark/.buildozer/android/platform/apache-ant-1.9.4/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/home/mark/.local/bin/'

GDMSESSION = 'ubuntu'

DBUS_SESSION_BUS_ADDRESS = 'unix:path=/run/user/1000/bus,guid=4272032ffcd2309180b5e44365ed3f2c'

_ = '/home/mark/.local/bin/buildozer'

PACKAGES_PATH = '/home/mark/.buildozer/android/packages'

ANDROIDSDK = '/home/mark/.buildozer/android/platform/android-sdk'

ANDROIDNDK = '/home/mark/.buildozer/android/platform/android-ndk-r25b'

ANDROIDAPI = '27'

ANDROIDMINAPI = '21'

Buildozer failed to execute the last command

The error might be hidden in the log above this error

Please read the full log, and search for it before

raising an issue with buildozer itself.

In case of a bug report, please add a full log with log_level = 2

@misl6
Copy link
Member

misl6 commented Mar 10, 2024

Original issues (last comment looks unrelated) should have been fixed via #1768

Feel free to open a new one if the issue persists.

@misl6 misl6 closed this as completed Mar 10, 2024
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

4 participants