diff options
Diffstat (limited to 'build-release')
-rwxr-xr-x | build-release | 195 |
1 files changed, 195 insertions, 0 deletions
diff --git a/build-release b/build-release new file mode 100755 index 00000000..bd034fa9 --- /dev/null +++ b/build-release @@ -0,0 +1,195 @@ +#!/bin/bash + +# +# build-release script: generates libreboot_bin and libreboot_src release archives +# +# Copyright (C) 2014 Francis Rowe <info@gluglug.org.uk> +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# + +# MAKE SURE THAT YOU RAN "buildall" OR "builddeps" *AT LEAST ONCE* +# You should also run the 'build' script before running this + +# Delete old archives before continuing +# ---------------------------------------------------------------------------------------------------------------------------- + +echo "Deleting old release archives" + +rm -rf libreboot_src.tar.xz +rm -rf libreboot_bin.tar.xz + +# Get manifest which will be used to copy everything +ls > releasefilelist + +# Prepare libreboot_src archive ready for release +# ---------------------------------------------------------------------------------------------------------------------------- + +echo "Preparing libreboot_src release archive" + +mkdir libreboot_src + +for resource in $(cat releasefilelist) +do + cp -r $resource libreboot_src +done + +cd libreboot_src + +# clean everything +./cleandeps + +# back to main checkout directory +cd ../ + +# Further work in libreboot_src: delete *.git and *.svn +# To save space since they are not useful in the release archives +# Changes to these projects should be submitted upstream +# ---------------------------------------------------------------------------------------------------------------------------- + +cd libreboot_src + +# These instructions will also work even if .git or .svn are already deleted +# because "rm -rf" won't complain if they are missing. It is still useful on +# the release archives (non-git), for example if the user re-downloads these programmes. + +# # bucts needs .git to stay, otherwise it won't compile +# # We don't need .git* (please submit all upstreamable changes directly to bucts upstream) +# # removing them, to reduce the size of the archive +# cd bucts +# rm -rf .git +# rm -rf .gitignore +# cd ../ +# # it was found to cause issues when deleting: +# # GIT_DISCOVERY_ACROSS_FILESYSTEM not set + +# coreboot: +# the instructions for coreboot remain in getgb script +# they need to stay there, because otherwise "git diff" +# will show the blobs that were deleted (which means, +# that libreboot would be distributing blobs) + +# Flashrom: +cd flashrom +rm -rf .svn +cd ../ + +# GRUB: +cd grub/ +rm -rf .git +rm -rf .gitignore +cd ../ + +# SeaBIOS: +cd seabios +rm -rf .git +rm -rf .gitignore +cd ../ + +cd ../ + +# Prepare libreboot_bin archive ready for release +# ---------------------------------------------------------------------------------------------------------------------------- + +echo "Preparing libreboot_bin release archive" + +mkdir libreboot_bin + +# Include the ROM's in the binary archive +cp -r bin libreboot_bin/ + +# Include flashrom utility in binary archive +# (source only, no binaries. To eliminate cross-distro dependency issue) +cp -r libreboot_src/flashrom libreboot_bin/ + +# For installing build dependencies +cp deps-trisquel libreboot_bin/ +cp deps-parabola libreboot_bin/ + +# Build scripts for flashrom and bucts +cp builddeps-flashrom libreboot_bin/ +cp builddeps-bucts libreboot_bin/ + +# Include the same documentation in binary archive +cp -r docs libreboot_bin/ + +# include X60 cmos.layout file +cp coreboot/src/mainboard/lenovo/x60/cmos.layout libreboot_bin/x60cmos.layout +cp coreboot/src/mainboard/lenovo/t60/cmos.layout libreboot_bin/t60cmos.layout +cp coreboot/src/mainboard/apple/macbook21/cmos.layout libreboot_bin/macbook21cmos.layout + +# X60/T60: BUC.TS utility is needed to flash libreboot while Lenovo BIOS is running +# (source only, no binaries. To eliminate cross-distro dependency issue) +cp -r libreboot_src/bucts libreboot_bin/ + +# Include a copy of nvramtool in libreboot_bin +# (source only, no binaries. To eliminate cross-distro dependency issue) +cp -r libreboot_src/coreboot/util/nvramtool libreboot_bin/ + +# X60/X60T/T60: Script for setting up powertop (kills high pitched noise) +cp powertop.trisquel6 libreboot_bin/ +cp powertop.trisquel6.init libreboot_bin/ + +cp macbook21_firstflash ../libreboot_bin + +# (lazy hack) to make builddep-flashrom work in libreboot_bin: +cp -r resources libreboot_bin/ + +# X60/T60: so that the user can use libreboot_bin to overwrite lenovo bios with libreboot +cp lenovobios_firstflash libreboot_bin/ +cp lenovobios_secondflash libreboot_bin/ + +# Flashrom script (makes flashing easier: ./flash path/to/libreboot.rom) +cp flash libreboot_bin/ + +# patch the version of cbfstool included in libreboot_bin, +# so that it can be built/executed standalone +# this modification is only suitable for the version included in libreboot_bin +# do not patch the one in libreboot_src with this +# (source only, no binaries. To eliminate cross-distro dependency issue) +cp -r libreboot_src/coreboot/util/cbfstool libreboot_bin/cbfstool_standalone +# Patching libreboot_bin/cbfstool_standalone to be buildable (and executable) without residing in coreboot source tree +rm -rf libreboot_bin/cbfstool_standalone/rmodule.c +cp resources/cbfstool/patch/rmodule.c libreboot_bin/cbfstool_standalone/rmodule.c +cp libreboot_src/coreboot/src/include/rmodule-defs.h libreboot_bin/cbfstool_standalone/rmodule-defs.h + +# Create the release tarballs +# ---------------------------------------------------------------------------------------------------------------------------- + +# Also delete the manifest +rm -rf libreboot_src/releasefilelist +rm -rf libreboot_bin/releasefilelist +rm -rf releasefilelist + +echo "Creating compressed libreboot_src release archive" + +# create lzma compressed src archive +tar cfJ libreboot_src.tar.xz libreboot_src + +echo "Creating compressed libreboot_bin release archive" + +# create lzma compressed bin archive +tar cfJ libreboot_bin.tar.xz libreboot_bin + +# Delete the uncompressed release directories +# ---------------------------------------------------------------------------------------------------------------------------- + +echo "Deleted the uncompressed release archives" + +rm -rf libreboot_src +rm -rf libreboot_bin + +echo "DONE. See libreboot_src.tar.xz and libreboot_bin.tar.xz" + +# ------------------- DONE ---------------------- |