We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
vlc recipe build fail
### Logs

A first build fails with

```
[INFO]:    Building vlc for arm64-v8a
[INFO]:    -> directory context /home/bobf/ex/hello/.buildozer/android/platform/build-arm64-v8a/build/other_builds/vlc/arm64-v8a__ndk_target_21/vlc/vlc-port-android
[INFO]:    compiling vlc from sources
[DEBUG]:   environment: {'SHELL': '/bin/bash', 'WSL2_GUI_APPS_ENABLED': '1', 'WSL_DISTRO_NAME': 'Ubuntu-22.04', 'WT_SESSION': '15e13e88-1c44-49f6-a30f-3567f5691f5f', 'NAME': 'DESK', 'PWD': '/home/bobf/ex/hello', 'LOGNAME': 'bobf', 'KIVY': '/mnt/c/users/bobf/documents/kivy', 'UIMD': '/mnt/c/users/bobf/documents/pm/uimd', 'HOME': '/home/bobf', 'LANG': 'C.UTF-8', 'WSL_INTEROP': '/run/WSL/9_interop', '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:', 'WAYLAND_DISPLAY': 'wayland-0', 'LESSCLOSE': '/usr/bin/lesspipe %s %s', 'TERM': 'xterm-256color', 'LESSOPEN': '| /usr/bin/lesspipe %s', 'USER': 'bobf', 'WIN': '/mnt/c/users/bobf', 'DISPLAY': ':0', 'SHLVL': '1', 'XDG_RUNTIME_DIR': '/mnt/wslg/runtime-dir', 'WSLENV': 'WT_SESSION::WT_PROFILE_ID', 'XDG_DATA_DIRS': '/usr/local/share:/usr/share:/var/lib/snapd/desktop', 'GITHUB': '/mnt/c/users/bobf/documents/GitHub', 'PATH': '/home/bobf/.buildozer/android/platform/apache-ant-1.9.4/bin:/home/bobf/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/wsl/lib:/mnt/c/Program Files (x86)/Common Files/Oracle/Java/javapath:/mnt/c/WINDOWS/system32:/mnt/c/WINDOWS:/mnt/c/WINDOWS/System32/Wbem:/mnt/c/WINDOWS/System32/WindowsPowerShell/v1.0/:/mnt/c/WINDOWS/System32/OpenSSH/:/mnt/c/Program Files/Git/cmd:/mnt/c/Program Files/dotnet/:/mnt/c/Users/Bobf/AppData/Local/Programs/Python/Python311/Scripts/:/mnt/c/Users/Bobf/AppData/Local/Programs/Python/Python311/:/mnt/c/Users/Bobf/AppData/Local/Programs/Python/Python310/Scripts/:/mnt/c/Users/Bobf/AppData/Local/Programs/Python/Python310/:/mnt/c/Users/Bobf/AppData/Local/Microsoft/WindowsApps:/mnt/c/Users/Bobf/AppData/Local/Android/Sdk/platform-tools:/mnt/c/Users/Bobf/AppData/Local/Android/Sdk/emulator:/mnt/c/Program Files/MySQL/MySQL Server 8.0/bin:/mnt/c/tools/kotlinc/bin:/mnt/c/Users/Bobf/AppData/Local/Programs/MiKTeX/miktex/bin/x64/:/mnt/c/Users/Bobf/AppData/Local/GitHubDesktop/bin:/mnt/c/Tools/ffmpeg-2023-01-25-essentials/bin:/snap/bin:/home/bobf/.local/bin/', 'HOSTTYPE': 'x86_64', 'PULSE_SERVER': 'unix:/mnt/wslg/PulseServer', 'WT_PROFILE_ID': '{d7b20cea-47a9-518c-95a4-c8bd91e2e1c6}', 'OLDPWD': '/home/bobf/ex/regression', '_': '/home/bobf/.local/bin/buildozer', 'PACKAGES_PATH': '/home/bobf/.buildozer/android/packages', 'ANDROIDSDK': '/home/bobf/.buildozer/android/platform/android-sdk', 'ANDROIDNDK': '/home/bobf/.buildozer/android/platform/android-ndk-r25b', 'ANDROIDAPI': '31', 'ANDROIDMINAPI': '21', 'ANDROID_ABI': 'arm64-v8a', 'ANDROID_NDK': '/home/bobf/.buildozer/android/platform/android-ndk-r25b', 'ANDROID_SDK': '/home/bobf/.buildozer/android/platform/android-sdk'}
Traceback (most recent call last):
  File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/home/bobf/ex/hello/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py", line 1312, in <module>
    main()
  File "/home/bobf/ex/hello/.buildozer/android/platform/python-for-android/pythonforandroid/entrypoints.py", line 18, in main
    ToolchainCL()
  File "/home/bobf/ex/hello/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py", line 734, in __init__
    getattr(self, command)(args)
  File "/home/bobf/ex/hello/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py", line 153, in wrapper_func
    build_dist_from_args(ctx, dist, args)
  File "/home/bobf/ex/hello/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py", line 212, in build_dist_from_args
    build_recipes(build_order, python_modules, ctx,
  File "/home/bobf/ex/hello/.buildozer/android/platform/python-for-android/pythonforandroid/build.py", line 504, in build_recipes
    recipe.build_arch(arch)
  File "/home/bobf/ex/hello/.buildozer/android/platform/python-for-android/pythonforandroid/recipes/vlc/__init__.py", line 68, in build_arch
    shprint(sh.Command('./compile.sh'), _env=env,
  File "/home/bobf/.local/lib/python3.10/site-packages/sh.py", line 1342, in __init__
    raise CommandNotFound(path)
sh.CommandNotFound: ./compile.sh
========================================
```
subsequent builds fail with 
```
[DEBUG]:   -> running git clone http://git.videolan.org/git/vlc-ports/android.git /home/bobf/ex/hello/.buildozer/android/platform/build-arm64-v8a/build/other_builds/vlc/arm64-v8a__ndk_target_21/vlc/vlc-port-android
[DEBUG]:        fatal: destination path '/home/bobf/ex/hello/.buildozer/android/platform/build-arm64-v8a/build/other_builds/vlc/arm64-v8a__ndk_target_21/vlc/vlc-port-android' already exists and is not an empty directory.
Exception in thread background thread for pid 21212:
```


--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `pythonforandroid/recipes/vlc/__init__.py`
Content:
```
1 from pythonforandroid.toolchain import Recipe, current_directory
2 from pythonforandroid.logger import info, debug, shprint, warning
3 from os.path import join, isdir, isfile
4 from os import environ
5 import sh
6 
7 
8 class VlcRecipe(Recipe):
9     version = '3.0.0'
10     url = None
11     name = 'vlc'
12 
13     depends = []
14 
15     port_git = 'http://git.videolan.org/git/vlc-ports/android.git'
16 #    vlc_git = 'http://git.videolan.org/git/vlc.git'
17     ENV_LIBVLC_AAR = 'LIBVLC_AAR'
18     aars = {}  # for future use of multiple arch
19 
20     def prebuild_arch(self, arch):
21         super().prebuild_arch(arch)
22         build_dir = self.get_build_dir(arch.arch)
23         port_dir = join(build_dir, 'vlc-port-android')
24         if self.ENV_LIBVLC_AAR in environ:
25             aar = environ.get(self.ENV_LIBVLC_AAR)
26             if isdir(aar):
27                 aar = join(aar, 'libvlc-{}.aar'.format(self.version))
28             if not isfile(aar):
29                 warning("Error: {} is not valid libvlc-<ver>.aar bundle".format(aar))
30                 info("check {} environment!".format(self.ENV_LIBVLC_AAR))
31                 exit(1)
32             self.aars[arch] = aar
33         else:
34             aar_path = join(port_dir, 'libvlc', 'build', 'outputs', 'aar')
35             self.aars[arch] = aar = join(aar_path, 'libvlc-{}.aar'.format(self.version))
36             warning("HINT: set path to precompiled libvlc-<ver>.aar bundle "
37                     "in {} environment!".format(self.ENV_LIBVLC_AAR))
38             info("libvlc-<ver>.aar should build "
39                  "from sources at {}".format(port_dir))
40             if not isfile(join(port_dir, 'compile.sh')):
41                 info("clone vlc port for android sources from {}".format(
42                             self.port_git))
43                 shprint(sh.git, 'clone', self.port_git, port_dir,
44                         _tail=20, _critical=True)
45 # now "git clone ..." is a part of compile.sh
46 #            vlc_dir = join(port_dir, 'vlc')
47 #            if not isfile(join(vlc_dir, 'Makefile.am')):
48 #                info("clone vlc sources from {}".format(self.vlc_git))
49 #                shprint(sh.git, 'clone', self.vlc_git, vlc_dir,
50 #                            _tail=20, _critical=True)
51 
52     def build_arch(self, arch):
53         super().build_arch(arch)
54         build_dir = self.get_build_dir(arch.arch)
55         port_dir = join(build_dir, 'vlc-port-android')
56         aar = self.aars[arch]
57         if not isfile(aar):
58             with current_directory(port_dir):
59                 env = dict(environ)
60                 env.update({
61                     'ANDROID_ABI': arch.arch,
62                     'ANDROID_NDK': self.ctx.ndk_dir,
63                     'ANDROID_SDK': self.ctx.sdk_dir,
64                 })
65                 info("compiling vlc from sources")
66                 debug("environment: {}".format(env))
67                 if not isfile(join('bin', 'VLC-debug.apk')):
68                     shprint(sh.Command('./compile.sh'), _env=env,
69                             _tail=50, _critical=True)
70                 shprint(sh.Command('./compile-libvlc.sh'), _env=env,
71                         _tail=50, _critical=True)
72         shprint(sh.cp, '-a', aar, self.ctx.aars_dir)
73 
74 
75 recipe = VlcRecipe()
76
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/pythonforandroid/recipes/vlc/__init__.py b/pythonforandroid/recipes/vlc/__init__.py
--- a/pythonforandroid/recipes/vlc/__init__.py
+++ b/pythonforandroid/recipes/vlc/__init__.py
@@ -6,7 +6,7 @@
 
 
 class VlcRecipe(Recipe):
-    version = '3.0.0'
+    version = '3.0.18'
     url = None
     name = 'vlc'
 
@@ -52,7 +52,7 @@
     def build_arch(self, arch):
         super().build_arch(arch)
         build_dir = self.get_build_dir(arch.arch)
-        port_dir = join(build_dir, 'vlc-port-android')
+        port_dir = join(build_dir, 'vlc-port-android', 'buildsystem')
         aar = self.aars[arch]
         if not isfile(aar):
             with current_directory(port_dir):
@@ -67,7 +67,7 @@
                 if not isfile(join('bin', 'VLC-debug.apk')):
                     shprint(sh.Command('./compile.sh'), _env=env,
                             _tail=50, _critical=True)
-                shprint(sh.Command('./compile-libvlc.sh'), _env=env,
+                shprint(sh.Command('./compile-medialibrary.sh'), _env=env,
                         _tail=50, _critical=True)
         shprint(sh.cp, '-a', aar, self.ctx.aars_dir)

{"golden_diff": "diff --git a/pythonforandroid/recipes/vlc/__init__.py b/pythonforandroid/recipes/vlc/__init__.py\n--- a/pythonforandroid/recipes/vlc/__init__.py\n+++ b/pythonforandroid/recipes/vlc/__init__.py\n@@ -6,7 +6,7 @@\n \n \n class VlcRecipe(Recipe):\n-    version = '3.0.0'\n+    version = '3.0.18'\n     url = None\n     name = 'vlc'\n \n@@ -52,7 +52,7 @@\n     def build_arch(self, arch):\n         super().build_arch(arch)\n         build_dir = self.get_build_dir(arch.arch)\n-        port_dir = join(build_dir, 'vlc-port-android')\n+        port_dir = join(build_dir, 'vlc-port-android', 'buildsystem')\n         aar = self.aars[arch]\n         if not isfile(aar):\n             with current_directory(port_dir):\n@@ -67,7 +67,7 @@\n                 if not isfile(join('bin', 'VLC-debug.apk')):\n                     shprint(sh.Command('./compile.sh'), _env=env,\n                             _tail=50, _critical=True)\n-                shprint(sh.Command('./compile-libvlc.sh'), _env=env,\n+                shprint(sh.Command('./compile-medialibrary.sh'), _env=env,\n                         _tail=50, _critical=True)\n         shprint(sh.cp, '-a', aar, self.ctx.aars_dir)\n", "issue": "vlc recipe build fail\n### Logs\r\n\r\nA first build fails with\r\n\r\n```\r\n[INFO]:    Building vlc for arm64-v8a\r\n[INFO]:    -> directory context /home/bobf/ex/hello/.buildozer/android/platform/build-arm64-v8a/build/other_builds/vlc/arm64-v8a__ndk_target_21/vlc/vlc-port-android\r\n[INFO]:    compiling vlc from sources\r\n[DEBUG]:   environment: {'SHELL': '/bin/bash', 'WSL2_GUI_APPS_ENABLED': '1', 'WSL_DISTRO_NAME': 'Ubuntu-22.04', 'WT_SESSION': '15e13e88-1c44-49f6-a30f-3567f5691f5f', 'NAME': 'DESK', 'PWD': '/home/bobf/ex/hello', 'LOGNAME': 'bobf', 'KIVY': '/mnt/c/users/bobf/documents/kivy', 'UIMD': '/mnt/c/users/bobf/documents/pm/uimd', 'HOME': '/home/bobf', 'LANG': 'C.UTF-8', 'WSL_INTEROP': '/run/WSL/9_interop', '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:', 'WAYLAND_DISPLAY': 'wayland-0', 'LESSCLOSE': '/usr/bin/lesspipe %s %s', 'TERM': 'xterm-256color', 'LESSOPEN': '| /usr/bin/lesspipe %s', 'USER': 'bobf', 'WIN': '/mnt/c/users/bobf', 'DISPLAY': ':0', 'SHLVL': '1', 'XDG_RUNTIME_DIR': '/mnt/wslg/runtime-dir', 'WSLENV': 'WT_SESSION::WT_PROFILE_ID', 'XDG_DATA_DIRS': '/usr/local/share:/usr/share:/var/lib/snapd/desktop', 'GITHUB': '/mnt/c/users/bobf/documents/GitHub', 'PATH': '/home/bobf/.buildozer/android/platform/apache-ant-1.9.4/bin:/home/bobf/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/wsl/lib:/mnt/c/Program Files (x86)/Common Files/Oracle/Java/javapath:/mnt/c/WINDOWS/system32:/mnt/c/WINDOWS:/mnt/c/WINDOWS/System32/Wbem:/mnt/c/WINDOWS/System32/WindowsPowerShell/v1.0/:/mnt/c/WINDOWS/System32/OpenSSH/:/mnt/c/Program Files/Git/cmd:/mnt/c/Program Files/dotnet/:/mnt/c/Users/Bobf/AppData/Local/Programs/Python/Python311/Scripts/:/mnt/c/Users/Bobf/AppData/Local/Programs/Python/Python311/:/mnt/c/Users/Bobf/AppData/Local/Programs/Python/Python310/Scripts/:/mnt/c/Users/Bobf/AppData/Local/Programs/Python/Python310/:/mnt/c/Users/Bobf/AppData/Local/Microsoft/WindowsApps:/mnt/c/Users/Bobf/AppData/Local/Android/Sdk/platform-tools:/mnt/c/Users/Bobf/AppData/Local/Android/Sdk/emulator:/mnt/c/Program Files/MySQL/MySQL Server 8.0/bin:/mnt/c/tools/kotlinc/bin:/mnt/c/Users/Bobf/AppData/Local/Programs/MiKTeX/miktex/bin/x64/:/mnt/c/Users/Bobf/AppData/Local/GitHubDesktop/bin:/mnt/c/Tools/ffmpeg-2023-01-25-essentials/bin:/snap/bin:/home/bobf/.local/bin/', 'HOSTTYPE': 'x86_64', 'PULSE_SERVER': 'unix:/mnt/wslg/PulseServer', 'WT_PROFILE_ID': '{d7b20cea-47a9-518c-95a4-c8bd91e2e1c6}', 'OLDPWD': '/home/bobf/ex/regression', '_': '/home/bobf/.local/bin/buildozer', 'PACKAGES_PATH': '/home/bobf/.buildozer/android/packages', 'ANDROIDSDK': '/home/bobf/.buildozer/android/platform/android-sdk', 'ANDROIDNDK': '/home/bobf/.buildozer/android/platform/android-ndk-r25b', 'ANDROIDAPI': '31', 'ANDROIDMINAPI': '21', 'ANDROID_ABI': 'arm64-v8a', 'ANDROID_NDK': '/home/bobf/.buildozer/android/platform/android-ndk-r25b', 'ANDROID_SDK': '/home/bobf/.buildozer/android/platform/android-sdk'}\r\nTraceback (most recent call last):\r\n  File \"/usr/lib/python3.10/runpy.py\", line 196, in _run_module_as_main\r\n    return _run_code(code, main_globals, None,\r\n  File \"/usr/lib/python3.10/runpy.py\", line 86, in _run_code\r\n    exec(code, run_globals)\r\n  File \"/home/bobf/ex/hello/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py\", line 1312, in <module>\r\n    main()\r\n  File \"/home/bobf/ex/hello/.buildozer/android/platform/python-for-android/pythonforandroid/entrypoints.py\", line 18, in main\r\n    ToolchainCL()\r\n  File \"/home/bobf/ex/hello/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py\", line 734, in __init__\r\n    getattr(self, command)(args)\r\n  File \"/home/bobf/ex/hello/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py\", line 153, in wrapper_func\r\n    build_dist_from_args(ctx, dist, args)\r\n  File \"/home/bobf/ex/hello/.buildozer/android/platform/python-for-android/pythonforandroid/toolchain.py\", line 212, in build_dist_from_args\r\n    build_recipes(build_order, python_modules, ctx,\r\n  File \"/home/bobf/ex/hello/.buildozer/android/platform/python-for-android/pythonforandroid/build.py\", line 504, in build_recipes\r\n    recipe.build_arch(arch)\r\n  File \"/home/bobf/ex/hello/.buildozer/android/platform/python-for-android/pythonforandroid/recipes/vlc/__init__.py\", line 68, in build_arch\r\n    shprint(sh.Command('./compile.sh'), _env=env,\r\n  File \"/home/bobf/.local/lib/python3.10/site-packages/sh.py\", line 1342, in __init__\r\n    raise CommandNotFound(path)\r\nsh.CommandNotFound: ./compile.sh\r\n========================================\r\n```\r\nsubsequent builds fail with \r\n```\r\n[DEBUG]:   -> running git clone http://git.videolan.org/git/vlc-ports/android.git /home/bobf/ex/hello/.buildozer/android/platform/build-arm64-v8a/build/other_builds/vlc/arm64-v8a__ndk_target_21/vlc/vlc-port-android\r\n[DEBUG]:        fatal: destination path '/home/bobf/ex/hello/.buildozer/android/platform/build-arm64-v8a/build/other_builds/vlc/arm64-v8a__ndk_target_21/vlc/vlc-port-android' already exists and is not an empty directory.\r\nException in thread background thread for pid 21212:\r\n```\r\n\n", "before_files": [{"content": "from pythonforandroid.toolchain import Recipe, current_directory\nfrom pythonforandroid.logger import info, debug, shprint, warning\nfrom os.path import join, isdir, isfile\nfrom os import environ\nimport sh\n\n\nclass VlcRecipe(Recipe):\n    version = '3.0.0'\n    url = None\n    name = 'vlc'\n\n    depends = []\n\n    port_git = 'http://git.videolan.org/git/vlc-ports/android.git'\n#    vlc_git = 'http://git.videolan.org/git/vlc.git'\n    ENV_LIBVLC_AAR = 'LIBVLC_AAR'\n    aars = {}  # for future use of multiple arch\n\n    def prebuild_arch(self, arch):\n        super().prebuild_arch(arch)\n        build_dir = self.get_build_dir(arch.arch)\n        port_dir = join(build_dir, 'vlc-port-android')\n        if self.ENV_LIBVLC_AAR in environ:\n            aar = environ.get(self.ENV_LIBVLC_AAR)\n            if isdir(aar):\n                aar = join(aar, 'libvlc-{}.aar'.format(self.version))\n            if not isfile(aar):\n                warning(\"Error: {} is not valid libvlc-<ver>.aar bundle\".format(aar))\n                info(\"check {} environment!\".format(self.ENV_LIBVLC_AAR))\n                exit(1)\n            self.aars[arch] = aar\n        else:\n            aar_path = join(port_dir, 'libvlc', 'build', 'outputs', 'aar')\n            self.aars[arch] = aar = join(aar_path, 'libvlc-{}.aar'.format(self.version))\n            warning(\"HINT: set path to precompiled libvlc-<ver>.aar bundle \"\n                    \"in {} environment!\".format(self.ENV_LIBVLC_AAR))\n            info(\"libvlc-<ver>.aar should build \"\n                 \"from sources at {}\".format(port_dir))\n            if not isfile(join(port_dir, 'compile.sh')):\n                info(\"clone vlc port for android sources from {}\".format(\n                            self.port_git))\n                shprint(sh.git, 'clone', self.port_git, port_dir,\n                        _tail=20, _critical=True)\n# now \"git clone ...\" is a part of compile.sh\n#            vlc_dir = join(port_dir, 'vlc')\n#            if not isfile(join(vlc_dir, 'Makefile.am')):\n#                info(\"clone vlc sources from {}\".format(self.vlc_git))\n#                shprint(sh.git, 'clone', self.vlc_git, vlc_dir,\n#                            _tail=20, _critical=True)\n\n    def build_arch(self, arch):\n        super().build_arch(arch)\n        build_dir = self.get_build_dir(arch.arch)\n        port_dir = join(build_dir, 'vlc-port-android')\n        aar = self.aars[arch]\n        if not isfile(aar):\n            with current_directory(port_dir):\n                env = dict(environ)\n                env.update({\n                    'ANDROID_ABI': arch.arch,\n                    'ANDROID_NDK': self.ctx.ndk_dir,\n                    'ANDROID_SDK': self.ctx.sdk_dir,\n                })\n                info(\"compiling vlc from sources\")\n                debug(\"environment: {}\".format(env))\n                if not isfile(join('bin', 'VLC-debug.apk')):\n                    shprint(sh.Command('./compile.sh'), _env=env,\n                            _tail=50, _critical=True)\n                shprint(sh.Command('./compile-libvlc.sh'), _env=env,\n                        _tail=50, _critical=True)\n        shprint(sh.cp, '-a', aar, self.ctx.aars_dir)\n\n\nrecipe = VlcRecipe()\n", "path": "pythonforandroid/recipes/vlc/__init__.py"}], "after_files": [{"content": "from pythonforandroid.toolchain import Recipe, current_directory\nfrom pythonforandroid.logger import info, debug, shprint, warning\nfrom os.path import join, isdir, isfile\nfrom os import environ\nimport sh\n\n\nclass VlcRecipe(Recipe):\n    version = '3.0.18'\n    url = None\n    name = 'vlc'\n\n    depends = []\n\n    port_git = 'http://git.videolan.org/git/vlc-ports/android.git'\n#    vlc_git = 'http://git.videolan.org/git/vlc.git'\n    ENV_LIBVLC_AAR = 'LIBVLC_AAR'\n    aars = {}  # for future use of multiple arch\n\n    def prebuild_arch(self, arch):\n        super().prebuild_arch(arch)\n        build_dir = self.get_build_dir(arch.arch)\n        port_dir = join(build_dir, 'vlc-port-android')\n        if self.ENV_LIBVLC_AAR in environ:\n            aar = environ.get(self.ENV_LIBVLC_AAR)\n            if isdir(aar):\n                aar = join(aar, 'libvlc-{}.aar'.format(self.version))\n            if not isfile(aar):\n                warning(\"Error: {} is not valid libvlc-<ver>.aar bundle\".format(aar))\n                info(\"check {} environment!\".format(self.ENV_LIBVLC_AAR))\n                exit(1)\n            self.aars[arch] = aar\n        else:\n            aar_path = join(port_dir, 'libvlc', 'build', 'outputs', 'aar')\n            self.aars[arch] = aar = join(aar_path, 'libvlc-{}.aar'.format(self.version))\n            warning(\"HINT: set path to precompiled libvlc-<ver>.aar bundle \"\n                    \"in {} environment!\".format(self.ENV_LIBVLC_AAR))\n            info(\"libvlc-<ver>.aar should build \"\n                 \"from sources at {}\".format(port_dir))\n            if not isfile(join(port_dir, 'compile.sh')):\n                info(\"clone vlc port for android sources from {}\".format(\n                            self.port_git))\n                shprint(sh.git, 'clone', self.port_git, port_dir,\n                        _tail=20, _critical=True)\n# now \"git clone ...\" is a part of compile.sh\n#            vlc_dir = join(port_dir, 'vlc')\n#            if not isfile(join(vlc_dir, 'Makefile.am')):\n#                info(\"clone vlc sources from {}\".format(self.vlc_git))\n#                shprint(sh.git, 'clone', self.vlc_git, vlc_dir,\n#                            _tail=20, _critical=True)\n\n    def build_arch(self, arch):\n        super().build_arch(arch)\n        build_dir = self.get_build_dir(arch.arch)\n        port_dir = join(build_dir, 'vlc-port-android', 'buildsystem')\n        aar = self.aars[arch]\n        if not isfile(aar):\n            with current_directory(port_dir):\n                env = dict(environ)\n                env.update({\n                    'ANDROID_ABI': arch.arch,\n                    'ANDROID_NDK': self.ctx.ndk_dir,\n                    'ANDROID_SDK': self.ctx.sdk_dir,\n                })\n                info(\"compiling vlc from sources\")\n                debug(\"environment: {}\".format(env))\n                if not isfile(join('bin', 'VLC-debug.apk')):\n                    shprint(sh.Command('./compile.sh'), _env=env,\n                            _tail=50, _critical=True)\n                shprint(sh.Command('./compile-medialibrary.sh'), _env=env,\n                        _tail=50, _critical=True)\n        shprint(sh.cp, '-a', aar, self.ctx.aars_dir)\n\n\nrecipe = VlcRecipe()\n", "path": "pythonforandroid/recipes/vlc/__init__.py"}]}