buildozer
buildozer copied to clipboard
Buildozer tried to download kivy-sdk-packager from an invalid url
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
As hinted by quanon on Discord:
This seems to be an error in some code I modified.
https://github.com/kivy/buildozer/blob/079101d9086846c3fc5066de40506742bc044c9a/buildozer/targets/osx.py#L33
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.
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?
We do not have tests for macOS (and is bad)
Discord 上的 quanon 正如所暗示的:
这似乎是我修改了某些代码中的错误。
https://github.com/kivy/buildozer/blob/079101d9086846c3fc5066de40506742bc044c9a/buildozer/targets/osx.py#L33
下载函数采用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
我们没有针对 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
Original issues (last comment looks unrelated) should have been fixed via https://github.com/kivy/buildozer/pull/1768
Feel free to open a new one if the issue persists.