This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| 
                    developer_documentation [2019/02/14 06:44] ispyisail [Make Custom]  | 
                
                    developer_documentation [2022/04/24 11:50] (current) lantis  | 
            ||
|---|---|---|---|
| Line 45: | Line 45: | ||
| You can browse the repository online here, or clone from one of the URLs below. There is both a local copy of the repository and a Github mirror: | You can browse the repository online here, or clone from one of the URLs below. There is both a local copy of the repository and a Github mirror: | ||
| - | <shell> | + | <code> | 
| apt-get install git | apt-get install git | ||
| - | git clone git://github.com/ericpaulbishop/ | + | git clone git@github.com:ericpaulbishop/ | 
| - | </shell> | + | </code> | 
| - | <shell> | + | SSH | 
| - | git clone http://github.com/ericpaulbishop/ | + | <code> | 
| - | git clone git:// | + | git clone git@github.com:ericpaulbishop/ | 
| - | </shell> | + | </ | 
| + | HTTPS | ||
| + | < | ||
| + | git clone https:// | ||
| + | </code> | ||
| If you want to build an older branch or tag, use the "git checkout" | If you want to build an older branch or tag, use the "git checkout" | ||
| - | <shell> | + | <code> | 
| git checkout 1.2 | git checkout 1.2 | ||
| - | </shell> | + | </code> | 
| Anyone who still prefers working with subversion can make use of the subversion support provided by the github mirror: | Anyone who still prefers working with subversion can make use of the subversion support provided by the github mirror: | ||
| - | <shell> | + | <code> | 
| svn checkout http:// | svn checkout http:// | ||
| - | </shell> | + | </code> | 
| - | <shell> | + | <code> | 
| cd gargoyle | cd gargoyle | ||
| - | </shell> | + | </code> | 
| - | <shell> | + | <code> | 
| make | make | ||
| - | </shell> | + | </code> | 
| You'll notice there are two scripts in the build directory: // | You'll notice there are two scripts in the build directory: // | ||
| Line 77: | Line 81: | ||
| If you run make without the FULL_BUILD=true flag, and you've previously done a build, it will only rebuild the packages and not the underlying version of OpenWrt. This speeds up testing small changes in the packages dramatically. However, to do a complete build from scratch you really need to run the make command with " | If you run make without the FULL_BUILD=true flag, and you've previously done a build, it will only rebuild the packages and not the underlying version of OpenWrt. This speeds up testing small changes in the packages dramatically. However, to do a complete build from scratch you really need to run the make command with " | ||
| - | <shell> | + | <code> | 
| make FULL_BUILD=true | make FULL_BUILD=true | ||
| - | </shell> | + | </code> | 
| Or to build (for example) just the ar71xx architecture: | Or to build (for example) just the ar71xx architecture: | ||
| - | <shell> | + | <code> | 
| make FULL_BUILD=true ar71xx | make FULL_BUILD=true ar71xx | ||
| - | </shell> | + | </code> | 
| Allow building of only one profile for a given architecture by running e.g. "make ar71xx.usb_large" | Allow building of only one profile for a given architecture by running e.g. "make ar71xx.usb_large" | ||
| - | <shell> | + | <code> | 
| make ar71xx.usb_large | make ar71xx.usb_large | ||
| - | </shell> | + | </code> | 
| ar71xx profiles | ar71xx profiles | ||
| Line 108: | Line 112: | ||
| Building Gargoyle for the first time for even one supported platform can take several hours of churning on your computer.  | Building Gargoyle for the first time for even one supported platform can take several hours of churning on your computer.  | ||
| - | Before you can build Gargoyle, you will require the appropriate tools to [[http://wiki.openwrt.org/ | + | Before you can build Gargoyle, you will require the appropriate tools to [[https:// | 
| To install these (list edited to add the additional things missing on Ubuntu Server 10.10), use the following on a 32 bit system: | To install these (list edited to add the additional things missing on Ubuntu Server 10.10), use the following on a 32 bit system: | ||
| - | <shell> | + | <code> | 
| sudo apt-get install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch unzip zlib1g-dev subversion flex uglifyjs texinfo | sudo apt-get install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch unzip zlib1g-dev subversion flex uglifyjs texinfo | ||
| - | </shell> | + | </code> | 
| Or for a 64 bit system: | Or for a 64 bit system: | ||
| - | <shell> | + | <code> | 
| sudo apt-get install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo | sudo apt-get install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo | ||
| - | </shell> | + | </code> | 
| ===== Ubuntu 18.04 ===== | ===== Ubuntu 18.04 ===== | ||
| Enable universe repository | Enable universe repository | ||
| - | <shell> | + | <code> | 
| sudo add-apt-repository universe | sudo add-apt-repository universe | ||
| - | </shell> | + | </code> | 
| - | <shell> | + | <code> | 
| sudo add-apt-repository multiverse | sudo add-apt-repository multiverse | ||
| - | </shell> | + | </code> | 
| ===== NPM ===== | ===== NPM ===== | ||
| Line 137: | Line 141: | ||
| **NOTE:** To save build time, consider also installing npm, which will also install nodejs as a dependency. It is recommended that you install nodejs v6.13.1 (or equivalent) and npm v3.10.10 (or equivalent). See below | **NOTE:** To save build time, consider also installing npm, which will also install nodejs as a dependency. It is recommended that you install nodejs v6.13.1 (or equivalent) and npm v3.10.10 (or equivalent). See below | ||
| - | For more details on building  | + | For more details on building  | 
| ===== Building ===== | ===== Building ===== | ||
| Line 144: | Line 148: | ||
| Simply entering: | Simply entering: | ||
| - | <shell> | + | <code> | 
| make | make | ||
| - | </shell> | + | </code> | 
| will result in all targets being built. If you prefer to build a single target (in this example ar71xx, though you could substitute brcm47xx or another valid target), enter: | will result in all targets being built. If you prefer to build a single target (in this example ar71xx, though you could substitute brcm47xx or another valid target), enter: | ||
| - | <shell> | + | <code> | 
| make ar71xx | make ar71xx | ||
| - | </shell> | + | </code> | 
| The makefile calls the full-build-backfire.sh script found in the same directory.  | The makefile calls the full-build-backfire.sh script found in the same directory.  | ||
| Line 195: | Line 199: | ||
| It is also possible to build Gargoyle using a custom build configuration.  | It is also possible to build Gargoyle using a custom build configuration.  | ||
| - | <shell> | + | <code> | 
| make custom | make custom | ||
| - | </shell> | + | </code> | 
| Line 597: | Line 601: | ||
| ===== Building Older Versions of Gargoyle ===== | ===== Building Older Versions of Gargoyle ===== | ||
| - | Due to changes in upstream infrastructure, | + | Due to changes in upstream infrastructure, | 
| - | The following is a patch to restore  | + | The latest commits on each branch back to 1.6 have all been fixed to build as of November 2020 | 
| - | <code diff> | + | |
| - | --- a/ | + | |
| - | +++ b/ | + | |
| - | @@ -21,15 +21,17 @@ set_version_variables() | + | |
| - | + | ||
| - |   | + | |
| - |   | + | |
| - | -	branch_id=" | + | |
| - | +	branch_id=" | + | |
| - |   | + | |
| - | -	branch_packages_path=" | + | |
| - | +	branch_packages_path=" | + | |
| - | + | ||
| - | + | ||
| - | - # set svn revision number to use | + | |
| - | - # you can set this to an alternate revision | + | |
| - | + # set precise commit in repo to use | + | |
| - | + # you can set this to an alternate commit | + | |
| - | # or empty to checkout latest | + | |
| - | - rnum=46817 | + | |
| - | +	openwrt_commit=" | + | |
| - | +	openwrt_abbrev_commit=$( echo " | + | |
| - | + | + | |
| - | + | ||
| - | #set date here, so it's guaranteed the same for all images | + | |
| - |   | + | |
| - | @@ -82,7 +84,7 @@ create_gargoyle_banner() | + | |
| - |   | + | |
| - |   | + | |
| - |   | + | |
| - | -	local openwrt_revision=" | + | |
| - | +	local openwrt_cmt=" | + | |
| - |   | + | |
| - |   | + | |
| - | + | ||
| - | @@ -92,7 +94,7 @@ create_gargoyle_banner() | + | |
| - | fi | + | |
| - | + | ||
| - |   | + | |
| - | -	local middle_line=$(printf "| %-26s| %-35s|" | + | |
| - | +	local middle_line=$(printf "| %-26s| %-35s|" | + | |
| - |   | + | |
| - | + | ||
| - |  	cat << ' | + | |
| - | @@ -198,7 +200,6 @@ distrib_init () | + | |
| - | fi | + | |
| - |  	#git log --since=5/ | + | |
| - |  	git log $(git describe --abbrev=0 --tags)..$(git log -1 --pretty=format: | + | |
| - | -	svn log -r " | + | |
| - |  	cp -fR " | + | |
| - | } | + | |
| - | + | ||
| - | @@ -334,9 +335,9 @@ fi | + | |
| - | + | ||
| - |   | + | |
| - |   | + | |
| - | -if [ -n " | + | |
| - | -	openwrt_src_dir=" | + | |
| - | -	openwrt_package_dir=" | + | |
| - | +if [ -n " | + | |
| - | +	openwrt_src_dir=" | + | |
| - | +	openwrt_package_dir=" | + | |
| - |   | + | |
| - |  	rm -rf " | + | |
| - |  	rm -rf " | + | |
| - | @@ -345,23 +346,22 @@ fi | + | |
| - | + | ||
| - |  # | + | |
| - |  if [ ! -d " | + | |
| - | -	revision="" | + | |
| - | -	if [ -n " | + | |
| - | -		revision=" | + | |
| - | - fi | + | |
| - |  	echo " | + | |
| - |  	rm -rf " | + | |
| - |  	if [ " | + | |
| - | -		svn checkout $revision svn:// | + | |
| - | +		git clone  git:// | + | |
| - |   | + | |
| - | -		svn checkout $revision svn:// | + | |
| - | +		git clone  git:// | + | |
| - | fi | + | |
| - | -	if [ ! -d " | + | |
| - | +	if [ ! -d " | + | |
| - |   | + | |
| - |   | + | |
| - | fi | + | |
| - | -	cd " | + | |
| - | -	find . -name " | + | |
| - | +	if [ -n " | + | |
| - | +		cd " | + | |
| - | +		git checkout " | + | |
| - | + fi | + | |
| - | + | + | |
| - |  	cd " | + | |
| - |  	mv " | + | |
| - | fi | + | |
| - | @@ -475,14 +475,10 @@ for target in $targets ; do | + | |
| - |  	if [ " | + | |
| - |  		if [ ! -d " | + | |
| - | + | ||
| - | -			if [ " | + | |
| - | -				svn checkout $revision svn:// | + | |
| - | - else | + | |
| - | -				svn checkout $revision " | + | |
| - | - fi | + | |
| - | +			git clone git:// | + | |
| - | + | ||
| - |  			cd " | + | |
| - | -			find . -name " | + | |
| - | + | + | |
| - |   | + | |
| - |   | + | |
| - |   | + | |
| - | @@ -507,10 +503,9 @@ for target in $targets ; do | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | - #enter build directory and make sure we get rid of all those pesky .svn files, | + | |
| - | - #and any crap left over from editing | + | |
| - | +	# | + | |
| - | + #any crap left over from editing | + | |
| - |  	cd " | + | |
| - | -	find . -name " | + | |
| - |  	find . -name " | + | |
| - |  	find . -name " | + | |
| - | + | ||
| - | @@ -534,7 +529,7 @@ for target in $targets ; do | + | |
| - | + | ||
| - | + | ||
| - |   | + | |
| - | -		create_gargoyle_banner " | + | |
| - | +		create_gargoyle_banner " | + | |
| - | + | ||
| - |   | + | |
| - | + | ||
| - | @@ -551,7 +546,7 @@ for target in $targets ; do | + | |
| - | + | ||
| - | + | ||
| - |   | + | |
| - | -		create_gargoyle_banner " | + | |
| - | +		create_gargoyle_banner " | + | |
| - | + | ||
| - |   | + | |
| - | + | ||
| - | @@ -565,8 +560,9 @@ for target in $targets ; do | + | |
| - | + | ||
| - |   | + | |
| - |   | + | |
| - | -	package_files=$(find bin -name " | + | |
| - | -	index_files=$(find bin -name " | + | |
| - | +	package_base_dir=$(find bin -name " | + | |
| - | +	package_files=$(find " | + | |
| - | +	index_files=$(find " | + | |
| - |  	if [ -n " | + | |
| - | + | ||
| - | for pf in $package_files ; do | + | |
| - | @@ -643,7 +639,7 @@ for target in $targets ; do | + | |
| - | + | ||
| - | + | ||
| - |   | + | |
| - | -		create_gargoyle_banner " | + | |
| - | +		create_gargoyle_banner " | + | |
| - | + | ||
| - | + | ||
| - |   | + | |
| - | @@ -674,8 +670,9 @@ for target in $targets ; do | + | |
| - |   | + | |
| - |   | + | |
| - |   | + | |
| - | -		package_files=$(find bin -name " | + | |
| - | -		index_files=$(find bin -name " | + | |
| - | +		package_base_dir=$(find bin -name " | + | |
| - | +		package_files=$(find " | + | |
| - | +		index_files=$(find " | + | |
| - |  		if [ -n " | + | |
| - |   | + | |
| - |   | + | |
| - | @@ -684,7 +681,10 @@ for target in $targets ; do | + | |
| - |   | + | |
| - |   | + | |
| - |   | + | |
| - | - | + | |
| - | + | + | |
| - | + | + | |
| - | + | + | |
| - | + | + | |
| - |  		if [ " | + | |
| - |   | + | |
| - |   | + | |
| - | @@ -719,3 +719,4 @@ for target in $targets ; do | + | |
| - |  	cd " | + | |
| - |   | + | |
| - | + | ||
| - | + | + | |
| - | --- /dev/null | + | |
| - | +++ b/ | + | |
| - | @@ -0,0 +1,13 @@ | + | |
| - | +--- a/ | + | |
| - | ++++ b/ | + | |
| - | +@@ -165,8 +165,8 @@ foreach my $mirror (@ARGV) { | + | |
| - | + 			push @extra, " | + | |
| - | + } | + | |
| - | + foreach my $dir (@extra) { | + | |
| - | +-			push @mirrors, " | + | |
| - | +-			push @mirrors, " | + | |
| - | ++			push @mirrors, " | + | |
| - | ++			push @mirrors, " | + | |
| - | + } | + | |
| - | +     } elsif ($mirror =~ / | + | |
| - | + 		push @mirrors, " | + | |
| - | </ | + | |
| - | The same patch should work for earlier versions including 1.6.2 with some modifications | + | |