29 Commits

Author SHA1 Message Date
Chris Johns
13f4c37999 sb: Add support to search for a suitable version of python.
The command python has been removed from upstream python and python2
and python3 is now used. This patch wraps the commands in a shell
script that locates a suitable python to run.

Updates #3537
2018-10-21 09:49:02 +11:00
Chris Johns
38fd56c8a8 sb: Monitor the build disk usage. Report the usage, total and various sizes
- Track the size of a build of a package in a build set to determine the
  maximum amout of disk space used. This can be used as a guide to
  documenting how much space a user needs to set aside to build a specific
  set of tools.

- The `%clean` stage of a build is now split into a separate script.
  I do not think this is an issue because I could not find any `%clean`
  sections in any build configs we have. In time support for the
  `%clean` section will be removed, the package builder cleans up.

Closes #3516
2018-09-28 07:36:49 +10:00
Chris Johns
cabaff8206 sb/path: Walk up to root checking if a path is writable.
A dirname of / is / so the path will never have a length of 0.

Close #3392
2018-04-13 13:02:51 +10:00
Stephan Gambke
dde330b8f8 sb: Fix path.py
is_abspath() now considers zero-length strings

Also: Remove not needed line in expand()
2018-02-05 09:40:47 +11:00
Chris Johns
3ddbd791b8 sb: Add an orphan check to sb-check.
The orphans check lets you see which configuration and build set
files in the RSB are not referernced. You can audit the list and
remove any configuration files not being used. Top level
build set files are included so you need to becareful not to
remove something that is valid and useful. To run:

 $ ./source-builder/sb-check --check-orphans
2018-01-18 13:16:47 +11:00
Chris Johns
4021c28ed0 sb: Fix the interface to all path function to be shell paths.
- Add an is_abspath call.
- Convert the path or paths to shell paths on entry to all path
  calls. This is safe to do for a path that is already a shell path.
- Fix exists to use shell paths.
2017-10-15 01:37:05 +11:00
Chris Johns
55f2d69e9b sb: Allow checking if '.' exists as a path. 2017-09-22 12:02:27 +10:00
Chris Johns
4578e0ac47 sb: Fix long path support in copy_tree and removeall path support.
The change lets the LM32 target build on Windows which has temporary
install paths greater than the Win32 API max size. The buildroot path
compression is still needed as the GNU assembler does not like paths
that exceed the max Windows limit.

Closes #2992.
2017-08-09 09:36:07 +10:00
Sebastian Huber
cb3fac1ea7 sb: Make error messages unique
Enable traceability from the error message to the script location.  This
eases debugging.
2017-06-14 10:27:16 +02:00
Chris Johns
3a972f6102 sb: Update code base to support Python3 and Python2.
Fix Windows support to allow MSYS2 Python to be used.

Updates #2619.
2016-03-07 15:02:58 +11:00
Chris Johns
6444d5806d Canandian Cross Compiling and RTEMS 3rd party package building Fixes.
The change fixes installing for RTEMS 3rd Party packages where the
RSB considered them Canadian Cross Compiling (Cxc). Fixing the
Cxc issue broke real Cxc builds. The change corrects the issue of
macros being changed in the Cxc and the prep data not being udpated.
The configuration is loaded again after the updated macros. The
macros are also copied and restored to ensure a clean stable base.

The change also introduces --rtems-tools and --rtems-bsp to align
the command line with the waf configure process or RTEMS application.
2015-07-20 13:49:42 +10:00
Chris Johns
5b5d6bff74 sb: Fix the downloader file:// URL to copy the file to the local path. 2015-06-16 20:57:06 +10:00
Chris Johns
88cb50a3a4 Fix removall for Windows and POSIX file systems. 2015-03-07 09:24:51 +11:00
Chris Johns
a84249d261 Windows fixes to build with MSYS2.
The path handling has been cleaned up and support for file names
longer than 256 characters.
2015-03-07 09:24:51 +11:00
Chris Johns
be63b8a517 Fix coping and delete on Windows.
This change uses a python.org feature to make the paths uicode
which changes the WIN32 API used. The default WIN32 is limited
to file lengths of 256 characters.
2015-02-18 10:26:52 +11:00
Chris Johns
d4eb08f55a Windows native build fixes.
The testing of building on Windows is done using MSYS2.
2015-02-07 17:58:17 +11:00
Chris Johns
edf60aa82f sb: Do not assume the src is valid. 2014-02-04 18:35:33 +11:00
Chris Johns
d4fa10150a sb: Fixed the errors as found by Gedare. 2013-08-27 12:21:14 +10:00
Chris Johns
5e536f822d sb: Import log for the copytree warnings. 2013-08-27 07:48:10 +10:00
Chris Johns
85007c35d1 sb: Fix copy_tree coping links on Linux
Overwriting symlinks did not work on Linux. This change manages the
coping of links with special code. The copy worked on FreeBSD.
2013-08-22 11:38:44 +10:00
Chris Johns
869b8a6bd3 sb: Fix the copy tree.
Python's distutil's copy tree code maintains a cache of directories
created so deleting a tree a different way then coping the same
tree results in an error because the destination folders in the
tree are not present because distutils thinks they exist. The
solution is to implement a copy tree function.
2013-08-15 12:20:29 +10:00
Chris Johns
ca047f1e12 Better error message on rmdir failure. 2013-05-13 14:46:30 +10:00
Chris Johns
255e032bab PR 2115 - Fix checking when the path does not fully exist. 2013-04-15 11:15:01 +10:00
Chris Johns
9994530920 PR 2115 - Check prefix path write access before starting to build.
Added a check in the options post processing to check is the
prefix path allows writes. No actual write check is made. just
the permissions are checked. If the --no-install options is
used the check is not made.

Moved the --no-install option from the set builder to the options
module.
2013-04-15 10:05:23 +10:00
Chris Johns
06dad0acd8 Make exists support lists. Add a path expander call. 2013-04-13 10:30:07 +10:00
Chris Johns
bc710668cf Fix host paths on Windows. 2013-02-27 16:04:29 +11:00
Chris Johns
ee47d7210e Create tar directory when making build set tar files.
Move the mkdir and removeall code from the build module to the path
module.
2013-02-22 14:44:51 +11:00
Chris Johns
73e8afb106 If the path is empty do prepend a dirsep. 2013-02-14 18:00:06 +11:00
Chris Johns
c80560d9a4 Move into the source-builder tree. 2012-11-06 10:09:40 +11:00