| # Copyright 2022 The ChromiumOS Authors |
| # Distributed under the terms of the GNU General Public License v2 |
| |
| # This is a scaled DLC used for testing new features in DLC. It does not really |
| # build anything, it just creates a DLC image with random content. |
| |
| EAPI=7 |
| |
| inherit dlc |
| |
| DESCRIPTION="A scaled DLC" |
| HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform2/+/master/dlcservice" |
| SRC_URI="" |
| |
| LICENSE="BSD-Google" |
| SLOT="0" |
| KEYWORDS="*" |
| IUSE="dlc" |
| REQUIRED_USE="dlc" |
| |
| # Required |
| DLC_PREALLOC_BLOCKS="1024" |
| |
| # Enabled scaled design. |
| DLC_SCALED=true |
| |
| src_unpack() { |
| # Because we are not pulling in any sources, we need to have an empty |
| # source directory to satisfy the build success. |
| S="${WORKDIR}" |
| } |
| |
| src_install() { |
| # Create a few files with random content. The contents of these files |
| # are not important. We added this randomness so by each emerge a new |
| # image is generated that has a different hash, size, etc and that can |
| # be reflected in the DLC manifest in rootfs. This way we can catch |
| # problems, like, when a DLC image change is not reflected in its rootfs |
| # manifest. If the image is always the same, we might not catch problems |
| # like that. |
| # To reproduce the same image file, replace the seed with the target |
| # seed value. If the image already exist, the seed value exists in |
| # /root/seed after you mount it. |
| local seed="${RANDOM}" |
| einfo "Using random seed ${seed} to generate the scaled DLC files." |
| # We just loaded seed with RANDOM, but we still need to set its value |
| # back so we can reliable reproduce the same random sequence again if |
| # needed too. Otherwise it is just a no-op. Setting the value of RANDOM |
| # acts as setting a seed value for bash's random generator. |
| RANDOM="${seed}" |
| |
| # Setup DLC paths. |
| into "$(dlc_add_path /opt)" |
| insinto "$(dlc_add_path /opt)" |
| exeinto "$(dlc_add_path /opt)" |
| |
| echo seed | newins - seed |
| |
| local n |
| for n in {1..3}; do |
| local scaled_file="scaled-file-${n}.bin" |
| local count=$(( RANDOM % 10000 )) |
| printf "%i-${PVR}\n" $(seq 0 "${count}") >> "${scaled_file}" |
| doins "${scaled_file}" |
| done |
| |
| dlc_src_install |
| } |