in my opinion, this fits nicely into the oe-core, into the
scripts/contrib folder.



On Tue, 2017-08-08 at 17:24 -0700, Behan Webster wrote:
> I maintain a script (ready-for.sh) which checks requirements for various 
> courses I teach which makes sure you have the right computer, RAM, disk space 
> available, and such in order to do the class. It also makes sure that the 
> required packages for your $DISTRO are installed (supported distros are 
> CentOS, Debian, Fedora, Mint, openSUSE, RHEL, SLES, Ubuntu, with some initial 
> support for ArchLinux). It has a full test suite to make sure the package 
> lists are valid and available for each of the distro. It also can output a 
> JSON version of the requirements (if you want to extract requirements for 
> something else like a webpage or document) and includes an auto-updater. Its 
> designed to make getting ready for a specific course very easy for a new 
> person. I also use it to debug setup issues on people’s computers over the 
> phone or email.
> 
> One of the courses I maintain requirements for is the LF Yocto Project 
> course. And recently I rebuilt the script into something more generic 
> (check-requirements.sh) which specifically allows you to check for 
> requirements for the various groupings of packages in the Yocto Project 
> documentation.
> 
> I’ve made it initially available as an alpha release via 
> https://cm.converseincode.com/cr/ <https://cm.converseincode.com/cr/> , and I 
> plan to maintain it along with the script described above since they share so 
> much of the same code.
> 
> The idea is that users would download and run this script once in order to 
> make sure their machines are ready to build OE or Poky or whatever, instead 
> of reading the setup document and manually installing all the packages. One 
> would still have to clone the appropriate git repo to get a copy of OE or 
> Poky after that.
> 
> As an example, here it is being run on an Ubuntu-16.04 machine which is 
> missing packages for building the documentation. (Showing the YP requirements 
> are boring, because this computer already meets those requirements because I 
> build OE all the time). It is to be run as a normal user, but uses sudo 
> internally when it needs to run privileged commands. In fact if you try to 
> run it as root, it complains.
> 
> $ sudo ./check-requirements.sh 
> [sudo] password for behanw: 
> FAIL: Please don't run as root
> NOTE: Sudo will be used internally by this script as required.
> 
> $ ./check-requirements.sh --list
> Available (4) options:
>   YPDOC - Requirements for Yocto Project Documentation
>   YPGUI - Requirements for Yocto Project GUI
>   YP - Requirements for Yocto Project
>   YPST - Requirements for OpenEmbedded Self-Test
> 
> $ ./check-requirements.sh YPDOC
> Checking that this computer is suitable for YPDOC: Requirements for Yocto 
> Project Documentation
> --------------------------------------------------------------------------------
> PASS: CPU architecture is x86_64
> PASS: 4 core CPU (good enough but 8 is preferred)
> PASS: Your CPU appears powerful enough (currently at 23228 BogoMIPS 
> cumulatively)
> PASS: 6 GiB RAM
> PASS: 158 GiB free disk space in /home/behanw
> PASS: Linux distribution architecture is x86_64
> PASS: Linux distribution is Ubuntu:amd64-16.04 (xenial)
> PASS: Internet is available (which is required in this case)
> --------------------------------------------------------------------------------
> WARN: Some packages are missing
> NOTE: Need to install: dblatex docbook-dsssl docbook-utils fop jadetex 
> java-wrappers libavalon-framework-java libbatik-java libbsf-java 
> libfontbox-java libfop-java libosp5 libostyle1c2 libsgmls-perl libsp1c2 
> libxmlgraphics-commons-java openjade sgmlspl sp texlive-bibtex-extra 
> texlive-math-extra xmlto
> You can install missing packages by running:
>   ./check-requirements.sh --install YPDOC
> or by:
>   sudo apt-get --no-install-recommends install dblatex docbook-dsssl 
> docbook-utils fop jadetex java-wrappers libavalon-framework-java 
> libbatik-java libbsf-java libfontbox-java libfop-java libosp5 libostyle1c2 
> libsgmls-perl libsp1c2 libxmlgraphics-commons-java openjade sgmlspl sp 
> texlive-bibtex-extra texlive-math-extra xmlto
> --------------------------------------------------------------------------------
> WARN: Your computer doesn't meet the stated requirements unless you can fix 
> the above warnings.
> WARN: You also have some missing packages.
> 
> $ ./check-requirements.sh --install YPDOC
> Checking that this computer is suitable for YPDOC: Requirements for Yocto 
> Project Documentation
> --------------------------------------------------------------------------------
> <snip>
> --------------------------------------------------------------------------------
> WARN: Some packages are missing
> WARN: About to install: dblatex docbook-dsssl docbook-utils fop jadetex 
> java-wrappers libavalon-framework-java libbatik-java libbsf-java 
> libfontbox-java libfop-java libosp5 libostyle1c2 libsgmls-perl libsp1c2 
> libxmlgraphics-commons-java openjade sgmlspl sp texlive-bibtex-extra 
> texlive-math-extra xmlto 
> Is that okay? [y/N] 
> 
> Is this useful? Thoughts? Suggestions?
> 
> Give it a try and let me know what you think. It’s extensible, so adding 
> other groupings of packages and such, or adding aliases for OE or something 
> is all trivially done.
> 
> Thanks,
> 
> Behan


-- 
_______________________________________________
Openembedded-devel mailing list
Openembedded-devel@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-devel

Reply via email to