buildozer icon indicating copy to clipboard operation
buildozer copied to clipboard

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

Open ericlinsechs opened this issue 1 year ago • 3 comments
trafficstars

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

ericlinsechs avatar Dec 26 '23 05:12 ericlinsechs

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.

Julian-O avatar Jan 30 '24 08:01 Julian-O

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?

Julian-O avatar Jan 30 '24 08:01 Julian-O

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

misl6 avatar Feb 04 '24 09:02 misl6

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

fenghuaxueyeyzh avatar Mar 10 '24 06:03 fenghuaxueyeyzh

我们没有针对 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

fenghuaxueyeyzh avatar Mar 10 '24 06:03 fenghuaxueyeyzh

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.

misl6 avatar Mar 10 '24 09:03 misl6