Comments (9)
Short answer - yes, merging your work in MLL will be great!
Long answer - I'm currently thinking of a way to simplify the build structure. As you can see, currently there is one main "flat" folder and tons of scripts there. If you compare this structure with the first version of MLL it's easy to notice that the current build process is way more advanced/productive/optimized/improved and it is also way more complex.
Since there is no tight schedule, nor I have any particular plans when to release the next "official" MLL version, it's perfectly OK to merge your work in MLL and then I can continue with the architectural reorganization process.
from minimal.
@ivandavidov I've actually seen this problem of the simplification of the MLL Build Script, and if you go to the 'rewrite' branch of my project 'AwlsomeLinux' you can see that I have reduced it to three scripts, one for the Core Creation, one for the Image Creation, and one for the Overlay Creation. If you want I can apply this to my fork of 'Minimal' and I can create a pull request.
from minimal.
Regarding architecture, having sub folders for each tasks would make sense. then you can run the scripts with run-parts(8) instead of having it being called explicitly in another script.
I dont think that merging it into even bigger scripts (the iso creating is huge for example) is a good idea.
from minimal.
Yeah I agree with that @K1773R Besides the simplified version that I created is VERY self-centered, but one thing that you could also do is define functions in the script. For example, in the Image script, src_pack() {code here}
is defined and at the bottom of the script src_pack
is called. But of course this would make the script huge, but not very complicated.
from minimal.
@AwlsomeAlex - I appreciate your enthusiasm but I'll ask you to hold off with such major pull requests. As K1773R already mentioned, writing even longer scripts is not the right solution here. One drawback of such approach is that instead of loose coupling you introduce tight coupling which is harder to maintain in the long run.
@K1773R - thank you for the run-parts hint. I didn't know about it. :)
In a perfect world full of unicorns, what I'd like to have in MLL is only one shell script (probably the one which wraps all other script executions) and just one folder which holds the initramfs structure, the overlay bundle scripts, etc. This folder in turn has to have quite simple file/folder structure. After all, the main goal of MLL is to be an educational project (simpler than Linux From Scratch), so everything in MLL must be simple to understand and even simpler to follow.
from minimal.
@K1773R - considering the current script mess and the fact that I don't spend much time on this project, I don't think that merging your work will do any good. At least not at this point.
Here is my grand plan at the moment:
- Structural reorganization - find better project structure where the flat folder full of scripts is organized better.
- No more new features or enhancements, except for version bumps and bug fixes (if the reported issue is indeed a bug).
- Release the current state of the project (with updated project structure) as new MLL version. Some features are not complete (e.g. the installer is not EFI-ready, there is no multi-arch support in 64-bit mode, etc.) but these features are all part of the 'overlay' functionality and they will be available to the general audience without support or warranty of any kind.
- Think of a way to incorporate other flavors of MLL in the same project. So far there is your PowerPC MLL version and my unofficial AArch64 MLL for Odroid-C2 (not in this repository). However, currently both forks use architecture specific stuff and even though these differences can be isolated in separate script files, the overall MLL project structure has to be very well planned in advance to provide before/after' callbacks' and provide way to 'override' certain script in favor of another script. Once this infrastructure is in place, this should allow the possibility to use the MLL build infrastructure and provide additional scripts (or perhaps override some of the existing scripts) which should be used for other CPU architectures.
I have no specific time frames or anything else in mind. I hope I'll have more free time to work on MLL soon!
from minimal.
Feel free to reorganize anytime. Just keep multi architecture in mind, so i can add/do the powerpc part when done. Notify me when you need some ideas about organizing it and when i should work on my part of the project :)
from minimal.
For now I was able to refactor the overlay
functionality in separate build subsystem which is more or less independent from the base build system. I'm open for suggestions how to reorganize the base scripts in such way that we could have both easy differentiation between architectures (e.g. perhaps a folder per architecture) and script separation between architectures (e.g. no need for clever if
conditions in the base scripts in order to split the logic between different architecture branches).
Another problem - we have not only scripts here, but also configurations and additional folders (e.g. the initramfs/rootfs folder) and depending on the architecture that we build, changes may be required on all these places.
from minimal.
@K1773R - I'll close this issue since I haven't come up with any reasonable way to merge your work and keep the simplicity of the associated build processes at the same time.
I'm open for suggestions and if you come up with architectural solution which works fine, I'll be glad to integrate the proposed solution.
from minimal.
Related Issues (20)
- Migrate Travis CI workflow to GitHub workflow HOT 1
- Implement Xorg with FLWM onto MLL HOT 3
- Missing CRC32 at the rootfs compression HOT 3
- Missing gpg and or at least sha256 hash check against MtM attacks HOT 2
- Grouping of the log output / missing logs HOT 1
- Fails to build on Ubuntu 20.04.2 LTS HOT 3
- [Package Request] jwm HOT 1
- pulling in bundles from web...live HOT 2
- Your linker does not support HOT 1
- yo HOT 1
- Update v86 HOT 2
- How to get 32-bit version? HOT 2
- Build, Compile errors and package download file was missing... HOT 2
- can't build the iso. HOT 1
- Files not available
- make[2]: *** [scripts/Makefile.build:357: arch/x86/entry/thunk_64.o] Error 1 HOT 2
- How to add minimal GUI HOT 1
- Dead links in README.md
- All builds end up with Kernel panic - not syncing: No working init found HOT 4
- Possible issues with connecting tty / ttyS0, qemu, virtual console
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from minimal.