Hi,

I was trying to install the buildtools by using the scripts/install-buildtools 
script, however the call fails. The issue I found seems a bit weird, as IMHO 
the script would always fail, hence I am not sure whether it's really an issue 
or I am misusing the script. Anyway, I am using the script from the 
openembedded-core - OpenEmbedded Core layer ( 
https://git.openembedded.org/openembedded-core ) repository, commit 41390f52.

The command executed:

> 
> ./scripts/install-buildtools --debug --without-extended-buildtools
> --directory ./build-tools --base-url
> https://downloads.yoctoproject.org/releases/yocto --release yocto-4.0.14
> --installer-version 4.0.14

The command fails and its output is given in [1].

Now, I dug a bit deeper and found two potential issues (if they are even 
issues, I am not sure anymore).

1. First one is in here ( 
https://git.openembedded.org/openembedded-core/tree/scripts/install-buildtools#n304
 ). Basically, while environment variables are read from 
build-tools/environment-setup-x86_64-pokysdk-linux (see [2] for its content), 
some of them are read with double quotes (e.g. PATH ) and as such written in 
os.environ ( here ( 
https://git.openembedded.org/openembedded-core/tree/scripts/install-buildtools#n306
 ) ), which makes them not correctly used later on. Some come without quotes 
and are fine to be used (e.g., PKG_CONFIG_LIBDIR ). A solution to this problem 
is removing the double quotes from envvar if present in the envvar, e.g., 
ENVVAR="foo" becomes ENVVAR=foo and as such is written in os.environ.

2. Another issue I found is related to this line ( 
https://git.openembedded.org/openembedded-core/tree/scripts/install-buildtools#n334
 ). If the command is called with --directory , as in my case, the function 
starts_with will always fail because which_tool will never start with 
install_dir. The only case where this is not an issue is in when --directory is 
omitted, since INSTALL_DIR is used in that case and its a full path already. A 
solution is also simple, we can just check if install_dir is in which_tool , 
instead of whether which_tool starts with install_dir.

Now my question is am I misunderstanding something or am I misusing the 
install-buildtools script somehow? If this is really an issue I'd be more than 
glad to provide a patch.

Cheers
Aleksandar

[1]

> 
> DEBUG: milestone regex: None
> INFO: Fetching buildtools installer
> INFO: Fetching buildtools installer checksum
> DEBUG: checksum regex match: <re.Match object; span=(0, 113),
> match='62e811c2f1a91f6d2d5e07ee3031af9bff58c15f515ff5968>
> DEBUG: checksum:
> 62e811c2f1a91f6d2d5e07ee3031af9bff58c15f515ff59688bf39f1f8a4341d
> DEBUG: path: None
> DEBUG: filename: x86_64-buildtools-nativesdk-standalone-4.0.14.sh
> INFO: Checksum success
> INFO: Making installer executable
> DEBUG: os.stat_result(st_mode=33252, st_ino=2376165, st_dev=2080,
> st_nlink=1, st_uid=1000, st_gid=1000, st_size=29509071,
> st_atime=1702587153, st_mtime=1699048064, st_ctime=1702587153)
> Build tools installer version 4.0.14
> ====================================
> You are about to install the SDK to
> "/home/anikolic/git/openembedded-core/build-tools". Proceed [Y/n]? Y
> Extracting SDK...........done
> Setting it up...done
> SDK has been successfully set up and is ready to be used.
> Each time you wish to use the SDK in a new shell session, you need to
> source the environment setup script e.g.
> $ .
> /home/anikolic/git/openembedded-core/build-tools/environment-setup-x86_64-pokysdk-linux
> 
> INFO: Setting up the environment
> DEBUG: export regex: <re.Match object; span=(0, 361), match='export
> PATH="/home/anikolic/git/openembedded-core>
> DEBUG: env_var: PATH
> DEBUG: env_val:
> "/home/anikolic/git/openembedded-core/build-tools/sysroots/x86_64-pokysdk-linux/usr/bin:/home/anikolic/git/openembedded-core/build-tools/sysroots/x86_64-pokysdk-linux/usr/sbin:/home/anikolic/git/openembedded-core/build-tools/sysroots/x86_64-pokysdk-linux/bin:/home/anikolic/git/openembedded-core/build-tools/sysroots/x86_64-pokysdk-linux/sbin:$PATH"
> 
> DEBUG: export regex: <re.Match object; span=(0, 109), match='export
> OECORE_NATIVE_SYSROOT="/home/anikolic/git/>
> DEBUG: env_var: OECORE_NATIVE_SYSROOT
> DEBUG: env_val:
> "/home/anikolic/git/openembedded-core/build-tools/sysroots/x86_64-pokysdk-linux"
> 
> DEBUG: export regex: <re.Match object; span=(0, 136), match='export
> GIT_SSL_CAINFO="/home/anikolic/git/openemb>
> DEBUG: env_var: GIT_SSL_CAINFO
> DEBUG: env_val:
> "/home/anikolic/git/openembedded-core/build-tools/sysroots/x86_64-pokysdk-linux/etc/ssl/certs/ca-certificates.crt"
> 
> DEBUG: export regex: <re.Match object; span=(0, 135), match='export
> SSL_CERT_FILE="/home/anikolic/git/openembe>
> DEBUG: env_var: SSL_CERT_FILE
> DEBUG: env_val:
> "/home/anikolic/git/openembedded-core/build-tools/sysroots/x86_64-pokysdk-linux/etc/ssl/certs/ca-certificates.crt"
> 
> DEBUG: export regex: <re.Match object; span=(0, 140), match='export
> REQUESTS_CA_BUNDLE="/home/anikolic/git/ope>
> DEBUG: env_var: REQUESTS_CA_BUNDLE
> DEBUG: env_val:
> "/home/anikolic/git/openembedded-core/build-tools/sysroots/x86_64-pokysdk-linux/etc/ssl/certs/ca-certificates.crt"
> 
> DEBUG: export regex: <re.Match object; span=(0, 136), match='export
> CURL_CA_BUNDLE="/home/anikolic/git/openemb>
> DEBUG: env_var: CURL_CA_BUNDLE
> DEBUG: env_val:
> "/home/anikolic/git/openembedded-core/build-tools/sysroots/x86_64-pokysdk-linux/etc/ssl/certs/ca-certificates.crt"
> 
> DEBUG: export regex: <re.Match object; span=(0, 80),
> match='HOST_PKG_PATH=$(command -p pkg-config --variable=>
> DEBUG: env_var: HOST_PKG_PATH
> DEBUG: env_val: $(command -p pkg-config --variable=pc_path pkg-config
> 2>/dev/null)
> DEBUG: export regex: <re.Match object; span=(0, 280), match='export
> PKG_CONFIG_LIBDIR=/home/anikolic/git/opene>
> DEBUG: env_var: PKG_CONFIG_LIBDIR
> DEBUG: env_val:
> /home/anikolic/git/openembedded-core/build-tools/sysroots/x86_64-pokysdk-linux//usr/lib/pkgconfig:/home/anikolic/git/openembedded-core/build-tools/sysroots/x86_64-pokysdk-linux//usr/share/pkgconfig:${HOST_PKG_PATH:-/usr/lib/pkgconfig:/usr/share/pkgconfig}DEBUG:
> export regex: None
> DEBUG: export regex: None
> DEBUG: export regex: None
> DEBUG: export regex: None
> DEBUG: export regex: None
> DEBUG: export regex: None
> DEBUG: export regex: None
> DEBUG: export regex: None
> INFO: Testing installation
> DEBUG: extended regex: None
> DEBUG: install_dir: ./build-tools
> DEBUG: cmd: ['/usr/bin/which', 'tar']
> DEBUG: tool: tar
> DEBUG: proc.args: ['/usr/bin/which', 'tar']
> DEBUG: proc.communicate(): output b''
> DEBUG: proc.communicate(): errors None
> DEBUG: which tar:
> ERROR: Something went wrong: tar not found in ./build-tools
> ERROR: Something went wrong: installation failed
> 

[2]

> 
> export
> PATH="/home/anikolic/git/openembedded-core/build-tools/sysroots/x86_64-pokysdk-linux/usr/bin:/home/anikolic/git/openembedded-core/build-tools/sysroots/x86_64-pokysdk-linux/usr/sbin:/home/anikolic/git/openembedded-core/build-tools/sysroots/x86_64-pokysdk-linux/bin:/home/anikolic/git/openembedded-core/build-tools/sysroots/x86_64-pokysdk-linux/sbin:$PATH"
> 
> export
> OECORE_NATIVE_SYSROOT="/home/anikolic/git/openembedded-core/build-tools/sysroots/x86_64-pokysdk-linux"
> 
> export
> GIT_SSL_CAINFO="/home/anikolic/git/openembedded-core/build-tools/sysroots/x86_64-pokysdk-linux/etc/ssl/certs/ca-certificates.crt"
> 
> export
> SSL_CERT_FILE="/home/anikolic/git/openembedded-core/build-tools/sysroots/x86_64-pokysdk-linux/etc/ssl/certs/ca-certificates.crt"
> 
> export
> REQUESTS_CA_BUNDLE="/home/anikolic/git/openembedded-core/build-tools/sysroots/x86_64-pokysdk-linux/etc/ssl/certs/ca-certificates.crt"
> 
> export
> CURL_CA_BUNDLE="/home/anikolic/git/openembedded-core/build-tools/sysroots/x86_64-pokysdk-linux/etc/ssl/certs/ca-certificates.crt"
> 
> HOST_PKG_PATH=$(command -p pkg-config --variable=pc_path pkg-config
> 2>/dev/null)
> export
> PKG_CONFIG_LIBDIR=/home/anikolic/git/openembedded-core/build-tools/sysroots/x86_64-pokysdk-linux//usr/lib/pkgconfig:/home/anikolic/git/openembedded-core/build-tools/sysroots/x86_64-pokysdk-linux//usr/share/pkgconfig:${HOST_PKG_PATH:-/usr/lib/pkgconfig:/usr/share/pkgconfig}
> 
> if [ -d "$OECORE_NATIVE_SYSROOT/environment-setup.d" ]; then
> for envfile in $OECORE_NATIVE_SYSROOT/environment-setup.d/*.sh; do
> . $envfile
> done
> fi
> # We have to unset this else it can confuse oe-selftest and other tools
> # which may also use the overlapping namespace.
> unset OECORE_NATIVE_SYSROOT
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#192405): 
https://lists.openembedded.org/g/openembedded-core/message/192405
Mute This Topic: https://lists.openembedded.org/mt/103179229/21656
Mute #poky:https://lists.openembedded.org/g/openembedded-core/mutehashtag/poky
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to