Skip to content

buildozer does not build recipes before pip-installing plain-python packages when targeting iOS #1577

Open
@dvjdjvu

Description

@dvjdjvu

Versions

  • Python: 3.11.2
  • OS: mac OS Ventura 13
  • Buildozer: 1.5.0

Description

I try to build test project, but in mac OS /bin/false in /usr/bin/false. And I can't create link, because file system read only.

buildozer.spec

Command:

buildozer ios debug

Spec file:

[app]

# (str) Title of your application
title = Intercom

# (str) Package name
package.name = intercom

# (str) Package domain (needed for android/ios packaging)
package.domain = com.intercom

## run-as com.intercom.intercom

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

# (list) Source files to include (let empty to include all the files)
source.include_exts = py,png,jpg,jpeg,ttf,kv,mp3,so,xml,mo
#,so,2,6,2,1,a

source.include_patterns = img/*, font/*, ui/*, music/*, data/locales/en/LC_MESSAGES/*, data/locales/ru/LC_MESSAGES/*

# (list) Application version
version = 0.1.5

# (list) Application requirements
# comma separated e.g. requirements = sqlite3,kivy
#requirements = python3, kivy==2.1.0, Cython, jnius, pyVoIP, git+https://github.com/kivy/python-for-android.git, sh, colorama, git+https://github.com/kivy/audiostream.git
requirements = python3,
               hostpython3,
               kivy-ios,
               kivymd,
               oscpy,
               python-osc,
               phonenumbers,
               requests,
               urllib3,
               chardet,
               charset_normalizer,
               idna,
               #Cython,
               #jnius,
               Pillow,
               #camera4kivy,
               #gestures4kivy,
               https://github.com/kivy/plyer/archive/refs/heads/master.zip,
               libiconv,
               libzbar,
               pyzbar,
               xcamera


# git+https://github.com/kivy/audiostream.git
#baresipy, pexpect, ptyprocess, opentone, responsivevoice, requests, urllib3, charset-normalizer, idna, pydub, ffmpeg
#, git+https://github.com/dvjdjvu/pyVoIP
# git+https://github.com/kivy-garden/xcamera.git

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

# (str) Presplash of the application
presplash.filename = %(source.dir)s/img/loading.png
android.presplash_color = #FFAA05

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

# (str) Supported orientation (one of landscape, sensorLandscape, portrait or all)
orientation = portrait

# (bool) Indicate if the application should be fullscreen or not
#fullscreen = 1
fullscreen = 0

# NAME_SERVICE:PATH_TO_PY
# (list) List of service to declare
# Not use %(source.dir)s
services = Intercom:./service.py:foreground

#
# Android specific
#

# (list) Permissions
android.permissions = INTERNET \
                      CAMERA \
                      RECORD_AUDIO \
                      CAPTURE_AUDIO_OUTPUT \
                      USE_SIP \
                      CONFIGURE_SIP \
                      MODIFY_AUDIO_SETTINGS \
                      PROCESS_OUTGOING_CALLS \
                      WRITE_SETTINGS \
                      READ_PHONE_STATE \
                      ACCESS_WIFI_STATE \
                      ACCESS_NETWORK_STATE \
                      WAKE_LOCK \
                      VIBRATE \
                      READ_LOGS \
                      WRITE_EXTERNAL_STORAGE \
                      READ_MEDIA_AUDIO \
                      FOREGROUND_SERVICE \
                      RECEIVE_BOOT_COMPLETED \
                      QUICKBOOT_POWERON \
                      BIND_JOB_SERVICE
                      #CALL_PHONE \


# (int) Target Android API, should be as high as possible.
android.api = 31

# (int) Minimum API your APK will support.
android.minapi = 23

# (str) Android NDK version to use
android.ndk = 23b
#android.ndk = 19c
#android.ndk = 25b

# (bool) If True, then skip trying to update the Android sdk
# This can be useful to avoid excess Internet downloads or save time
# when an update is due and you just want to test/build your package
android.skip_update = False

# (bool) If True, then automatically accept SDK license
# agreements. This is intended for automation only. If set to False,
# the default, you will be shown the license when first running
# buildozer.
android.accept_sdk_license = True

# (str) The Android arch to build for, choices: armeabi-v7a, arm64-v8a, x86, x86_64
android.archs = arm64-v8a, armeabi-v7a
#android.archs = x86

#android.gradle_dependencies = 'de.d0pam1n:pjsip-for-android:2.6'

#android.add_jars = %(source.dir)s/java_lib/AJVoIP.jar
#android.add_aars = %(source.dir)s/libs_lib/*.aar

# (list) Android additionnal libraries to copy into libs/armeabi
android.add_src = %(source.dir)s/java_src
android.add_libs_arm64_v8a = %(source.dir)s/libs/libs_arm64_v8a/*.*
android.add_libs_armeabi_v7a = %(source.dir)s/libs/libs_armeabi-v7a/*.*
#android.library_references = /home/djvu/workspace/intercom/phone/libs/libs_arm64_v8a/*.*

#android.copy_libs = 1

# правила сохранения настроек приложения (в случае переустановке)
android.allow_backup = True
android.backup_rules = %(source.dir)s/xml/backup.xml

#android.manifest.intent_filters = %(source.dir)s/xml/intent_filters.xml
#android.extra_manifest_xml = %(source.dir)s/xml/intent_filters.xml
android.extra_manifest_application = %(source.dir)s/xml/receivers.xml
#android.extra_manifest_application = %(source.dir)s/xml/intent_filters.xml
#android.extra_manifest_application_arguments = %(source.dir)s/xml/intent_filters.xml

#android.release_artifact = aab # aab or apk
# В каком формате собрать выходной пакет
android.release_artifact = apk

#
# iOS specific
#

# Alternately, specify the URL and branch of a git checkout:
ios.kivy_ios_url = https://github.com/kivy/kivy-ios
ios.kivy_ios_branch = master

ios.ios_deploy_url = https://github.com/phonegap/ios-deploy
ios.ios_deploy_branch = master

# (bool) Whether or not to sign the code
ios.codesign.allowed = false

[buildozer]

# (int) Log level (0 = error only, 1 = info, 2 = debug (with command output))
log_level = 2

# (int) Display warning if buildozer is run as root (0 = False, 1 = True)
warn_on_root = 0

# (str) Path to build artifact storage, absolute or relative to spec file
build_dir = ./.buildozer

# (str) Path to build output (i.e. .apk, .ipa) storage
bin_dir = ./bin

# (str) Filename to the hook for p4a
#p4a.hook = camerax_provider/gradle_options.py

Logs

      Updated build/lib.macosx-13-x86_64-cpython-311/kivy/include/config.h
      Updated /private/tmp/pip-install-8f41mdg7/kivy_aa8dceb766c346d39ad112f180a3fa3a/kivy/include/config.h
      Updated build/lib.macosx-13-x86_64-cpython-311/kivy/include/config.pxi
      Updated /private/tmp/pip-install-8f41mdg7/kivy_aa8dceb766c346d39ad112f180a3fa3a/kivy/include/config.pxi
      Updated build/lib.macosx-13-x86_64-cpython-311/kivy/setupconfig.py
      Updated /private/tmp/pip-install-8f41mdg7/kivy_aa8dceb766c346d39ad112f180a3fa3a/kivy/setupconfig.py
      Detected compiler is unix
       error: command '/bin/false' failed: No such file or directory
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for kivy
Failed to build kivy
ERROR: Could not build wheels for kivy, which is required to install pyproject.toml-based projects

[notice] A new release of pip available: 22.3.1 -> 23.0.1
[notice] To update, run: pip install --upgrade pip
# Command failed: ['pip', 'install', '--target=/Users/djvu/workspace/test/phone/.buildozer/applibs', 'kivymd']
# ENVIRONMENT:
#     VIRTUAL_ENV = '/Users/djvu/workspace/test/phone/.buildozer/venv'
#     PATH = '/Users/djvu/workspace/test/phone/.buildozer/venv/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin'
#     CC = '/bin/false'
#     CXX = '/bin/false'
# 
# 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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions