Code Monkey home page Code Monkey logo

Comments (6)

ivandavidov avatar ivandavidov commented on August 15, 2024

@dbc - I'm happy to hear you were able to resolve this issue quickly! Good work!

The MLL project provides a relatively simple build infrastructure and there might be some other glitches like this one. I'm using Ubuntu and Linux Mint as test machines and I'm using the defaults provided by these machines. This is why I haven't faced this issue in particular.

from minimal.

yhaenggi avatar yhaenggi commented on August 15, 2024

Well, you shouldnt have relative paths in $PATH anyway...
relying on $PATH is good, as you can include wrappers like ccache, icecc and other wrappers.

from minimal.

dbc avatar dbc commented on August 15, 2024

Well, when I first started using Unix on a PDP-11 over 35 years ago I was taught that the user's $PATH was expected to be different for every user, it's theirs to control. So a script that depends on the user's path contents and order is broken by definition. Portable scripts and makefiles use explicit paths to executables.

from minimal.

ivandavidov avatar ivandavidov commented on August 15, 2024

Well, the problem with GNU/Linux based operating systems is that there is no easy way to tell where the dependencies have been installed. Unlike BSD, where we have common physical layout, in GNU/Linux world we have complete mess of different folders and software pieces which can be invoked in many different ways.

That said, if the user is experienced enough to change the $PATH shell variable, then the same user should be also skilled enough to figure out what is wrong if something doesn't work as expected.

from minimal.

dbc avatar dbc commented on August 15, 2024

You do speak truth. Although the minimal build scripts only use a small handfull of tools. It might be worth going through them to see if they are all mentioned in LSB file system layout, in which case portability should be pretty good. Or to be really pedantic, every script could start with some common boilerplate like: CP=/usr/bin/cp and then refer to the tools as $CP, etc.

The only script that tripped for me was 09_, which is when busybox appears in the local directory, and the busybox version of cpio doesn't support -R. The scripts may have been picking up busybox in other places but I didn't notice because the functionality lines up and of course I wasn't cross-compiling.

from minimal.

ivandavidov avatar ivandavidov commented on August 15, 2024

The MLL build infrastructure relies on already existing source bundles and their internal build processes which in most cases are defined via Makefile. That said, MLL is just a 'mediator' between the build host and the actual build process for the specified source bundle. There are some source bundles which use a lot of build dependencies (glibc is one of them) and it will be really hard to implement all proper checks in order to avoid collisions with modified $PATH variables.

I agree there is issue here but the potential impact in reality is really low.. Besides, in your particular use case you were able to fix this problem - so I'm closing the issue.

from minimal.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.