r47073: build environment: scripts modified, support both git and svn as the main repo
The changes have no impact for "end-users" of my firmware, instead they have implications to people cloning my build environment (explanation in message #2 of this thread).
I have edited the build scripts in a major way, and here is a short explanation about the changes.
I have noticed that GIT is steadily getting more popular as the preferred cvs platform. I still use SVN for the Openwrt main sources, and the Openwrt repo itself and bug tracker are still SVN based. But in any case, the new build scripts support either SVN or GIT as the cvs platform. You can select one of them in the "buildroot creation" script.
Main changes:
* All build scripts are now in <buildroot>/hnscripts instead of <buildroot>, and the scripts are included in the -openwrt.patch
* New buildroot creation script is packaged separately and has been clarified.
* User can select to use either GIT or SVN as the main Openwrt repo format when creating a new build environment. (I have tested both going from SVN to GIT repo and from GIT back to a new SVN environment.)
* Buildscripts have been edited to support both SVN and GIT as the main repo.
* Explicit requirement for /Openwrt as the base has been removed. The build environment can now be created anywhere (as long as the path stays reasonably short).
* The log file "build.log" has been moved to <buildroot>/logs.
Differences between SVN and GIT versions:
- My SVN version continues to use the last check-in in any repo as the version, while GIT uses explicitly the default Openwrt logic about last check-in that has affected this branch (trunk or chaos). E.g. currently the SVN chaos build says r47073 while GIT version would say r47072 (as 47073 did not affecto chaos branch). (As feeds evolve separately, I prefer to set the version as recent as possible, but with GIT there is no possibility for that logic.)
- GIT build is also partially hurt by the default .gitignore, where <buildroot>/files has been excluded from version control. My build has files there, so I may edit the default .gitignore in near future. I understand the exclusion logic for the core Openwrt developers, for treating that folder normally eases things for people building private builds.
- Both versions will create an otherwise identical "release package", but the -status.txt and the -openwrt.patch files have small format differences due to GIT/SVN differences. "Release packages" created in either cvs are compatible and can be used to create either build environment the next time.
Note: if you have an existing copy of my build system and you want the new scripts, it is possible to copy the new scripts into your old repo (to <buildroot>/hnscripts directory), as the build system structure has not changed otherwise. You can probably get the new scripts easiest by grabbing the most recent release (r47073 or newer) from Dropbox and either
- use the new creation script to create a surplus copy of the build system to a new location and then manually copy the new scripts to your old build environment, or
- copy the -openwrt.patch from the newest release and edit that to extract just the new scripts.
In either case, add the new scripts to svn/git version control to preserve them properly.