On Wed, 11 Nov 2020 09:26:29 -0500 Jean-Marc Pigeon <j...@safe.ca> wrote:
> Hello Scott, > > On Wed, 2020-11-11 at 09:02 -0500, Scott Andrews via blfs-support > wrote: > > [....] > > have a system I can boot my raspberry pi from and ssh into straight > > away. It is a complete "base" headless system. I then add what ever > > that particular system needs for its function. I can replaicate > > this as many times as needed and it is completely stable. > > > > [rant] > > What I have learned from LFS is how to fix issues that LFS > > refuses to fix, and also the building sequence for a core > > system, nothing else. What is really learned from cutting > > and pasting from a book? > > > > You don't really learn until you do use a package manager > > and then you see all the "liberties" that LFS has taken with their > > process that causes all kind of grief for the package > > builder and maintainer. Notice NO ONE (other than individuals) > > builds a system WITHOUT a package manager. > > > > That is insane and why package managers were invented. With > > a package manager you know exactly the dependencies for each and > > every package and you can completely control those. > > Building without a package manager generally results in a chaotic > > system. > > > > BTW it looks like no one here knows of the concept of > > building packages in a clean chroot. Let alone the benefits from > > doing so. > > [/rant] > > The LFS purpose is to demonstrate how to build a "linux system from > scratch" (Period). All you need to know is how to build a tool chain, the rest is easy. LFS doesn't do even a good job at demonstrating how to build a linux system from scratch. It shows you their way only and doesn't explain how the system V init works, or how anything else works for that manner. It is simply a script, ie build sequence which is poorly explained. It is not even generic and they don't want it to be, so if you fit that narrow definition then I guess it works for you. Question: What do you have when you have completed your build? Not much different that installing arch linux or any other distro. If you really want to learn read the arch wiki and USE FreeBSD. then you will really learn operating systems and package building. LFS can't and won't give you a kernel config file that works as a starting point. So if I spend two weeks cut and pasting from the boot and can't get the kernel to boot because I can't get it configured at all, just what is I really learn? All you see is a core dump. Their should be a default kernel config that will at least boot the mess you have just created. It may be very primitive but at least your work can boot. Then you have a starting point to learn how to configure the kernel for your system. When working with the ARM folks you have a kernel that will boot so you can bend, break it and learn. Not look at a screen that tells you nothing and doesn't boot. That ain't learning, that is turning people away as they have spent a large amount of time and end up with nothing usable. Look at the raspberry pi foundation.... That is how you involve and teach people. > Mainly to make sure the components are buildin the "right" order > (trying to avoid > dependecies loop, which not an easy task). LFS doesn't even show you all the dependencies and doesn't have any tools to determine that. Doesn't teach anything about the tool chain other then their method. LFS teaches cut and paste, not much more. Buildroot is another process one can use and it is more complete. It has more support while it is my opinion that LFS is losing support. That is based on the posting to here, much less that years ago. I have monitored the mail here since before LFS-5.0. https://en.wikipedia.org/wiki/Buildroot > > I am using RPM+zypper to build/manage my "own" distribution (see my > signature). > it wouldn't be achieved without LFS and I am still using LFS when > my RPM can't compile anymore because some low level component API was > changed by upstream without consideration. I never had an issue with that and I have been using rpm since about 1995. I have posted to their mail lists concerning many issues and they are always responsive, even to the point of showing you work a rounds to your issue. I have never experienced that on LFS mail lists. > > LFS team is doing a great job, trying to keep all components up to > date AND in working order... > Once again it is not a pre-cooked distribution it is a leaning tools, > as such you are entitled to > adjust you setup according your needs and taste (once you reach the > confidence level about building it) It should be a working distribution...... > > As learning tools, If I could suggest something to the LFS team, > its about discarded components, my advices is to keep them within the > LFS tree > with a RED-TAG explaining why (and when) it was discarded. Discarding > components and knowing why is part of our collective learning process. > > Your dreaming...... My posts here yesterday is about fixing a tool and adhering to standards. Bruce says I am wrong about the LSB standard Here is the standard from LSB-Core-generic about init scripts. Read it for yourself..... Conforming applications may install one or more init scripts. These init scripts must be activated by invoking the install_initd command. Prior to package removal, the changes applied by install_initd must be undone by invoking remove_initd. See Installation and Removal of Init Scripts for more details. install_initd and remove_initd determine actions to take by decoding a specially formatted block of lines in the script. This block shall be delimited by the lines ### BEGIN INIT INFO ### END INIT INFO Notice it states "init scripts must be activated by invoking the install_initd command" LFS doesn't even come close to that as they are manually manufactured. LFS doesn't even have install_initd or remove_initd. More from LSB-Core-generic 22.4 Installation and Removal of Init Scripts Conforming applications may install one or more initialization scripts (or init scripts). An init script shall be installed in /etc/init.d (which may be a symbolic link to another location), by the package installer. During the installer's post-install processing phase the program /usr/lib/lsb/install_initd must be called to activate the init script. Activation consists of arranging for the init script to be called in the correct order on system run-level changes (including system boot and shutdown), based on dependencies supplied in the init script (see Comment Conventions for Init Scripts). The install_initd command should be thought of as a wrapper which hides the implementation details; how any given implementation arranges for the init script to be called at the appropriate time is not specified. Example: if an init script specified "Default-Start: 3 4 5" and "Default-Stop: 0 1 2 6", install_initd might create "start" symbolic links with names starting with 'S' in /etc/rc3.d, /etc/rc4.d and /etc/rc5.d and "stop" symbolic links with names starting with 'K' in /etc/rc0.d, /etc/rc1.d, /etc/rc2.d and /etc/rc6.d. Such a scheme would be similar to the System V Init mechanism, but is by no means the only way this specification could be implemented. The install_initd command takes a single argument, the full pathname of the installed init script. The init script must already be installed in /etc/init.d. The install_initd command will not copy it there, only activate it once it has been installed. For example: /usr/lib/lsb/install_initd /etc/init.d/example.com-coffeed The install_initd command shall return an exit status of zero if the init-script activation was successful or if the init script was already activated. If the dependencies in the init script (see Comment Conventions for Init Scripts) cannot be met, an exit status of one shall be returned and the init script shall not be activated. When a software package is removed, /usr/lib/lsb/remove_initd must be called to deactivate the init script. This must occur before the init script itself is removed, as the dependency information in the script may be required for successful completion. Thus the installer's pre-remove processing phase must call remove_initd, and pass the full path name of the installed init script. The package installer is still responsible for removing the init script. For example: /usr/lib/lsb/remove_initd /etc/init.d/example.com-coffeed The remove_initd program shall return an exit status of zero if the init script has been successfully deactivated or if the init script is not activated. If another init script which depends on a boot facility provided by this init script is activated, an exit status of one shall be returned and the init script shall remain activated. The installer must fail on such an exit code so it does not subsequently remove the init script. Note: This specification does not describe a mechanism for the system administrator to © 2015 Linux Foundation 855 22 System Initialization LSB Core - Generic 5.0 manipulate the run levels at which an init script is started or stopped. There is no assurance that modifying the comment block for this purpose will have the desired effect. Now explain to me how LFS is even remotely compliant..... Please leave the reply to set to blfs mailing group -- http://lists.linuxfromscratch.org/listinfo/blfs-support FAQ: http://www.linuxfromscratch.org/blfs/faq.html Unsubscribe: See the above information page