From 9a321884379a71b5f0986fdfb97a2b6c5bdccd8a Mon Sep 17 00:00:00 2001 From: Francis Rowe Date: Wed, 03 Sep 2014 14:13:00 -0400 Subject: Libreboot release 6 beta 6. - Added modified builddeb* scripts for Parabola GNU/Linux-libre: buildpac, buildpac-flashrom, buildpac-bucts (courtesy of Noah Vesely) - Documentation: updated all relevant areas to mention use of buildpac* scripts for Parabola users. - Documentation: added information showing how to enable or disable bluetooth on the X60 - MacBook1,1 tested! See ../docs/index.html#macbook11" - Documentation: fixed typo in ../docs/index.html#get_edid_panelname (get-edit changed to get-edid) - Documentation: added ../docs/howtos/x60_lcd_change/ (pics only for now) - Added gcry_serpent and gcry_whirlpool to the GRUB module list in the 'build' script (for luks users) - Libreboot is now based on a new coreboot version from August 23rd, 2014: Merged commits (relates to boards that were already supported in libreboot): - http://review.coreboot.org/#/c/6697/ - http://review.coreboot.org/#/c/6698/ (merged already) - http://review.coreboot.org/#/c/6699/ (merged already) - http://review.coreboot.org/#/c/6696/ (merged already) - http://review.coreboot.org/#/c/6695/ (merged already) - http://review.coreboot.org/#/c/5927/ (merged already) - http://review.coreboot.org/#/c/6717/ (merged already) - http://review.coreboot.org/#/c/6718/ (merged already) - http://review.coreboot.org/#/c/6723/ (merged already) (text-mode patch, might enable memtest. macbook21) - http://review.coreboot.org/#/c/6732/ (MERGED) (remove useless ps/2 keyboard delay from macbook21. already merged) - These were also merged in coreboot (relates to boards that libreboot already supported): - http://review.coreboot.org/#/c/5320/ (merged) - http://review.coreboot.org/#/c/5321/ (merged) - http://review.coreboot.org/#/c/5323/ (merged) - http://review.coreboot.org/#/c/6693/ (merged) - http://review.coreboot.org/#/c/6694/ (merged) - http://review.coreboot.org/#/c/5324/ (merged) - Documentation: removed the section about tft_brightness on X60 (new code makes it obsolete) - Removed all patches from resources/libreboot/patch/ and added new patch: 0000_t60_textmode.git.diff - Updated getcb script and DEBLOB script. - Updated configuration files under resources/libreboot/config/ to accomodate new coreboot version. - Removed grub_serial*.cfg and libreboot_serial*.rom, all configs/rom's are now unified (containing same configuration as serial rom's from before). - Documentation: updated ../docs/index.html#rom to reflect the above. - Updated GRUB to new version from August 14th, 2014. - Unified all grub configurations for all machines to a single grub.cfg under resources/grub/config/ - Updated flashrom to new version from August 20th, 2014 - Added getseabios and builddeps-seabios (builddeps and getall were also updated) - Added instructions to 'buildrom-withgrub' to include bios.bin.elf and vgaroms/vgabios.bin from SeaBIOS inside the ROM. - Added seabios (and sgavgabios) to grub as payload option in menu - Disabled serial output in Memtest86+ (no longer needed) to speed up tests. - MemTest86+ now works properly, it can output on the laptop screen (no serial port needed anymore). - Added getgrubinvaders, builddeps-grubinvaders scripts. Added these to getall and builddeps. - Added GRUB Invaders menu entry in resources/grub/config/grub.cfg - Added rules to builddeps-coreboot to build libpayload with TinyCurses. (added appropriate instructions to cleandeps script). - Commented out lines in resources/grub/config/grub.cfg for loading font/background (not useful anymore, now that GRUB is in text-mode). - Commented out lines in buildrom-withgrub that included backgrounds/fonts (not useful anymore, now that GRUB is in text-mode). - Added resources/utilities/i945-pwm/ (from git://git.mtjm.eu/i945-pwm), for debugging acpi brightness on i945 machines. - Added instructions for it in builddeps, builddeps-i945pwm, builddeb and cleandeps - 'build' script: removed the parts that generated sha512sum manifests (not needed, since release tarballs are GPG-signed) - 'build' script: removed the parts that generated libreboot_meta directory (not needed anymore, since _meta will be hosted in git) - Updated ../docs/index.html#build_meta (and other parts of documentation) to accomodate this change. - Documentation: simplified (refactored) the notes in ../docs/index.html#rom - 'build' script: removed the parts that generated libreboot_bin and added them to a new script: 'build-release' - Documentation: ../docs/index.html#build updated to reflect the above. - Removed 'sudo' from builddeb, builddeb-flashrom, powertop.trisquel6 and builddeb-bucts scripts (assuming that the user has it is a really bad idea). - Added all gcry_* modules to grub (luks/cryptomount): gcry_arcfour gcry_camellia gcry_crc gcry_dsa gcry_md4 gcry_rfc2268 gcry_rmd160 gcry_seed gcry_sha1 gcry_sha512 gcry_twofish gcry_blowfish gcry_cast5 gcry_des gcry_idea gcry_md5 gcry_rijndael gcry_rsa gcry_serpent gcry_sha256 gcry_tiger gcry_whirlpool - Added GNUtoo's list of GRUB modules (includes all of the gcry_* modules above), cryptomount should be working now. - Removed builddeb-bucts and builddeb-flashrom, merged them with builddeb (../docs/index.html updated accordingly) - Removed buildpac-bucts and buildpac-flashrom, merged them with buildpac (../docs/index.html updated accordingly) - Renamed builddeb to deps-trisquel (../docs/index.html updated accordingly) - Renamed buildpac to deps-parabola (../docs/index.html updated accordingly) - Documentation: removed all parts talking about build dependencies, replaced them with links to ../docs/index.html#build_dependencies - Documentation: emphasized more strongly on the documentation, the need to re-build bucts and/or flashrom before flashing a ROM image. - build-release: flashrom, nvramtool, cbfstool and bucts are no longer provided pre-compiled in binary archives, and are now in source form only. (to maximize distro compatibility). - Documentation: added ../docs/howtos/encrypted_trisquel.html showing how to setup a fully encrypted Trisquel installation (including /boot) and boot it from the GRUB payload. - 'build' script: replaced grub.elf assembly instructons, it's now handled by a utility added under resources/utilities/grub-assemble - Moved resources/grub/keymap to resources/utilities/grub-assemble/keymap, and updated that utility to use it - Documentation: removed useless links to pictures of keyboard layouts and unmodified layouts. - Removed all unused fonts from dejavu-fonts-ttf-2.34/ directory - 'buildrom-withgrub' script: updated it to create 2 sets of ROM's for each machine: one with text-mode, one with coreboot framebuffer. - Documentation: updated ../docs/index.html#rom to reflect the above - Deleted unused README and COPYING file from main directory - Removed some rm -rf .git* instructions from the get* scripts and moved them to build-release script - Split up default grub.cfg into 6 parts: extra/{common.cfg,txtmode.cfg,vesafb.cfg} and menuentries/{common.cfg,txtmode.cfg,vesafb.cfg} - buildrom-withgrub script uses these to generate the correct grub.cfg for each type of configuration. - grub_memdisk.cfg (used inside grub.elf) now only loads grub.cfg from cbfs. It no longer enables serial output or sets prefix. (menuentries/common.cfg does instead) - resources/grub/config/extra/common.cfg, added: - insmod instructions to load those modules: nativedisk, ehci, ohci, uhci, usb, usbserial_pl2303, usbserial_ftdi, usbserial_usbdebug - set prefix=(memdisk)/boot/grub - For native graphics (recommended by coreboot wiki): - gfxpayload=keep - terminal_output --append gfxterm - Play a beep on startup: - play 480 440 1 - Documentation: added note about 'fb=false' workaround for text-mode debian-installer (Trisquel net install) to ../docs/howtos/grub_boot_installer.html - Documentation: updated ../docs/howtos/grub_cbfs.html to make it safer (and easier) to follow. --- (limited to 'build-release') diff --git a/build-release b/build-release new file mode 100755 index 0000000..bd034fa --- /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 +# +# 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 . +# + +# 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 ---------------------- -- cgit v0.9.1