Commit 8ea22fdc authored by iv's avatar iv

nayuos: Minor changes.

parent 382a23ca
...@@ -48,7 +48,7 @@ scripts_dir = {{ scripts_dir }} ...@@ -48,7 +48,7 @@ scripts_dir = {{ scripts_dir }}
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
template = {{ scripts_dir }}/cros_full_build.sh.in template = {{ scripts_dir }}/cros_full_build.sh.in
rendered = ${directory:run}/cros_full_build.sh rendered = ${directory:run}/cros_full_build.sh
md5sum = 0e10850c8f9272272ed1a4cabce66529 md5sum = 711901bd5da4f7edd11d711e65b14bbc
mode = 0770 mode = 0770
context = context =
# for access to the eggs from the instance # for access to the eggs from the instance
...@@ -58,4 +58,5 @@ context = ...@@ -58,4 +58,5 @@ context =
key branch parameters:configuration.branch key branch parameters:configuration.branch
key boards_list parameters:configuration.boards key boards_list parameters:configuration.boards
key ebuilds_dir directory:ebuilds_dir key ebuilds_dir directory:ebuilds_dir
key scripts_dir directory:scripts_dir key scripts_dir directory:scripts_dir
\ No newline at end of file raw nayu_packages dev-vcs/git net-misc/re6stnet
\ No newline at end of file
...@@ -11,6 +11,7 @@ repo init -u https://chromium.googlesource.com/chromiumos/manifest.git -b ${BRAN ...@@ -11,6 +11,7 @@ repo init -u https://chromium.googlesource.com/chromiumos/manifest.git -b ${BRAN
repo sync >> $DL_LOG repo sync >> $DL_LOG
############################## Prepare chroot environment ################################### ############################## Prepare chroot environment ###################################
BUILD_LOG={{ instance_log_dir }}/cros_build.log
{{ depot_tools_export_path_cmd }} {{ depot_tools_export_path_cmd }}
cd {{ cros_location }} cd {{ cros_location }}
...@@ -22,21 +23,38 @@ cros_sdk --download || exit 1 ...@@ -22,21 +23,38 @@ cros_sdk --download || exit 1
# just need to change -sqlite by sqlite on the right line # just need to change -sqlite by sqlite on the right line
PACKAGE_USE_FILE={{ cros_location }}/src/third_party/chromiumos-overlay/profiles/targets/chromeos/package.use PACKAGE_USE_FILE={{ cros_location }}/src/third_party/chromiumos-overlay/profiles/targets/chromeos/package.use
line_number=$(sed -n '/dev-lang\/python/=' ${PACKAGE_USE_FILE}) line_number=$(sed -n '/dev-lang\/python/=' ${PACKAGE_USE_FILE})
if [ $line ] ; then if [ $line_number ] ; then
sed -i "${line_number}s/-sqlite/sqlite/" ${PACKAGE_USE_FILE} echo $line_number
sed -i "${line_number}s/-sqlite/sqlite/" ${PACKAGE_USE_FILE}
if [[ ! $(sed -n ${line_number}p ${PACKAGE_USE_FILE} | grep ipv6) ]]; then
sed -i "${line_number}s/$/ ipv6/" ${PACKAGE_USE_FILE}
fi
fi fi
# add custom script for modifying the final image after building
# that is useful for custumizing Chromium OS and producing Nayu images for now
#cp {{ scripts_dir }}/modify_image.sh {{ cros_location }}/src/scripts/modify_image.sh \
# && chmod 770 {{ cros_location }}/src/scripts/modify_image.sh || exit 1
# add custom ebuilds # add custom ebuilds
for category in $( ls {{ ebuilds_dir }} ); do for category in $( ls {{ ebuilds_dir }} ); do
echo ${category} echo ${category}
cp -R {{ ebuilds_dir }}/${category}/* {{ cros_location}}/src/third_party/chromiumos-overlay/${category}/ cp -R {{ ebuilds_dir }}/${category}/* {{ cros_location}}/src/third_party/chromiumos-overlay/${category}/
done done
### packages management ###
BASE_CHROMEOS_DEV_ROOT_EBUILD={{ cros_location}}/src/third_party/chromiumos-overlay/chromeos-base/chromeos-dev-root/chromeos-dev-root-0.0.1.ebuild
VIRTUAL_CHROMEOS_OS_DEV_EBUILD={{ cros_location}}/src/third_party/chromiumos-overlay/virtual/target-chromium-os-dev/target-chromium-os-dev-1.ebuild
# change the virtual ebuild responsible for installing all packages to add the ones
# needed for NayuOS
for package in {{ nayu_packages }} ; do
if cat ${VIRTUAL_CHROMEOS_OS_DEV_EBUILD} | grep ${package} ; then
echo "no need to change ${VIRTUAL_CHROMEOS_OS_DEV_EBUILD} file to add ${package}..." >> "${BUILD_LOG}"
else
printf "\n\nRDEPEND=\"\${RDEPEND}\n ${package}\"\n">> ${VIRTUAL_CHROMEOS_OS_DEV_EBUILD}
fi
done
# do not install the Upstart init script that starts ssh daemon at boot time
sed -i '/openssh-server-init/ d' ${BASE_CHROMEOS_DEV_ROOT_EBUILD}
######################################## Build ############################################## ######################################## Build ##############################################
BOARDS="{{ boards_list }}" BOARDS="{{ boards_list }}"
...@@ -50,35 +68,33 @@ for board in ${BOARDS}; do ...@@ -50,35 +68,33 @@ for board in ${BOARDS}; do
IMAGE_LOCATION=${board}.chromiumos.img IMAGE_LOCATION=${board}.chromiumos.img
NAYU_IMAGE_LOCATION=${board}.nayuos.img NAYU_IMAGE_LOCATION=${board}.nayuos.img
BUILD_LOG={{ instance_log_dir }}/cros_build.log
# preparing packages (for chroot and image) # preparing packages (for chroot and image)
date >> $BUILD_LOG date >> "${BUILD_LOG}"
echo "building packages for a ${board}-flavoured Chromium OS..." >> $BUILD_LOG echo "building packages for a ${board}-flavoured Chromium OS..." >> "${BUILD_LOG}"
cros_sdk -- ./build_packages --board=${board} >> $BUILD_LOG cros_sdk -- ./build_packages --board=${board} >> "${BUILD_LOG}"
# Chromium original dev image # Chromium original dev image
date >> $BUILD_LOG date >> "${BUILD_LOG}"
echo "building image for a ${board}-flavoured Chromium OS..." >> $BUILD_LOG echo "building image for a ${board}-flavoured Chromium OS..." >> "${BUILD_LOG}"
cros_sdk -- ./build_image --board=${board} >> $BUILD_LOG \ cros_sdk -- ./build_image --board=${board} >> "${BUILD_LOG}" \
&& echo "removing old image if any and creating image file $IMAGE_LOCATION..." >> $BUILD_LOG \ && echo "removing old image if any and creating image file $IMAGE_LOCATION..." >> "${BUILD_LOG}" \
&& cros_sdk -- rm -f $IMAGE_LOCATION && cros_sdk -- touch $IMAGE_LOCATION \ && cros_sdk -- rm -f $IMAGE_LOCATION && cros_sdk -- touch $IMAGE_LOCATION \
&& cros_sdk -- cros flash --board=${board} file://$IMAGE_LOCATION >> $BUILD_LOG && cros_sdk -- cros flash --board=${board} file://$IMAGE_LOCATION >> "${BUILD_LOG}"
# NayuOS # NayuOS
date >> $BUILD_LOG # /usr/local/usr/lib/debug is needed because of symbolic links that leads
echo "rebuilding image with noenable_rootfs_verification and modifying image" >> $BUILD_LOG # to this directory when installing some packages (babeld-re6stnet in particular)
cros_sdk -- ./build_image --noenable_rootfs_verification --board=${board} >> $BUILD_LOG \ # because installation will fail if the symbolic link is broken
&& echo "modifying image, removing old image if any and creating image file $NAYU_IMAGE_LOCATION..." >> $BUILD_LOG \ date >> "${BUILD_LOG}"
echo "rebuilding image with noenable_rootfs_verification" >> "${BUILD_LOG}"
cros_sdk -- ./build_image --noenable_rootfs_verification --board=${board} >> "${BUILD_LOG}" \
&& echo "adding packages image, removing old image if any and creating image file $NAYU_IMAGE_LOCATION..." >> "${BUILD_LOG}" \
&& cros_sdk -- sudo install -d /usr/local/usr/lib/debug \ && cros_sdk -- sudo install -d /usr/local/usr/lib/debug \
&& cros_sdk -- sudo emerge-${board} net-misc/babeld-re6stnet net-libs/miniupnpc net-misc/re6stnet >> $BUILD_LOG \
&& cros_sdk -- ./modify_image.sh ${board} \
&& cros_sdk -- rm -f $NAYU_IMAGE_LOCATION && cros_sdk -- touch $NAYU_IMAGE_LOCATION \ && cros_sdk -- rm -f $NAYU_IMAGE_LOCATION && cros_sdk -- touch $NAYU_IMAGE_LOCATION \
&& cros_sdk -- cros flash --board=${board} file://$NAYU_IMAGE_LOCATION >> $BUILD_LOG \ && cros_sdk -- cros flash --board=${board} file://$NAYU_IMAGE_LOCATION >> "${BUILD_LOG}" \
|| exit 1 || exit 1
# add some packages to the board's packages
echo "adding re6st and its dependencies to the chroot/build/${board}/packages..." >> $BUILD_LOG
if [ ${board} == daisy ]; then if [ ${board} == daisy ]; then
echo "daisy board: removing accepted license for the next builds..." echo "daisy board: removing accepted license for the next builds..."
cros_sdk -- sudo sh -c "mv /etc/make.conf.user.save /etc/make.conf.user" cros_sdk -- sudo sh -c "mv /etc/make.conf.user.save /etc/make.conf.user"
......
...@@ -35,7 +35,7 @@ command = sudo -V ...@@ -35,7 +35,7 @@ command = sudo -V
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
template = ${:_profile_base_location_}/instance.cfg template = ${:_profile_base_location_}/instance.cfg
rendered = ${buildout:directory}/instance.cfg rendered = ${buildout:directory}/instance.cfg
md5sum = 78f4aa77239313bdc9de3907fe332bd7 md5sum = 274271cee06f175653ff20f351cc5c65
mode = 0644 mode = 0644
scripts_dir = ${:_profile_base_location_}/scripts scripts_dir = ${:_profile_base_location_}/scripts
ebuilds_dir = ${:_profile_base_location_}/custom_ebuilds ebuilds_dir = ${:_profile_base_location_}/custom_ebuilds
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment