Packaging and build system rework

rework package build system (again) for greater ease of maintenance and flexability
add creation of a local apt repo for package building in pbuilder
add an apt cache to debootstrap to speed up build times and reduce network load
package mosys
more build system improvements to come
This commit is contained in:
Hal Emmerich 2020-06-17 01:51:39 -05:00
parent 1732e941c4
commit c0f14421c1
21 changed files with 406 additions and 68 deletions

View File

@ -70,7 +70,7 @@ clean_initramfs:
rm -r build/PrawnOS-initramfs.cpio.gz rm -r build/PrawnOS-initramfs.cpio.gz
.PHONY: clean_packages .PHONY: clean_packages
packages: clean_packages:
cd packages && $(MAKE) clean cd packages && $(MAKE) clean
.PHONY: clean_pbuilder .PHONY: clean_pbuilder
@ -91,6 +91,7 @@ clean_all:
.PHONY: build_dirs .PHONY: build_dirs
build_dirs: build_dirs:
mkdir -p build/logs/ mkdir -p build/logs/
mkdir -p build/apt-cache/
#:::::::::::::::::::::::::::::: kernel :::::::::::::::::::::::::::::::::::: #:::::::::::::::::::::::::::::: kernel ::::::::::::::::::::::::::::::::::::
.PHONY: kernel .PHONY: kernel
@ -121,7 +122,8 @@ filesystem:
$(MAKE) build_dirs $(MAKE) build_dirs
rm -rf build/logs/fs-log.txt rm -rf build/logs/fs-log.txt
$(MAKE) pbuilder_create $(MAKE) pbuilder_create
[ -f $(BASE) ] || ./scripts/buildFilesystem.sh $(KVER) $(DEBIAN_SUITE) $(BASE) 2>&1 | tee build/logs/fs-log.txt $(MAKE) packages
[ -f $(BASE) ] || ./scripts/buildFilesystem.sh $(KVER) $(DEBIAN_SUITE) $(BASE) $(PRAWNOS_ROOT) 2>&1 | tee build/logs/fs-log.txt
#:::::::::::::::::::::::::::::: packages :::::::::::::::::::::::::::::::: #:::::::::::::::::::::::::::::: packages ::::::::::::::::::::::::::::::::
@ -131,7 +133,11 @@ packages:
.PHONY: packages_install .PHONY: packages_install
install_packages: install_packages:
cd packages && $(MAKE) install INSTALL_TARGET=/tmp/ ifndef INSTALL_TARGET
$(error INSTALL_TARGET is not set)
endif
cd packages && $(MAKE) install INSTALL_TARGET=$(INSTALL_TARGET)
#:::::::::::::::::::::::::::::: image management :::::::::::::::::::::::::: #:::::::::::::::::::::::::::::: image management ::::::::::::::::::::::::::
.PHONY: kernel_inject .PHONY: kernel_inject
@ -155,7 +161,6 @@ image:
cp $(BASE) $(OUTNAME) cp $(BASE) $(OUTNAME)
$(MAKE) kernel_inject $(MAKE) kernel_inject
#:::::::::::::::::::::::::::::: pbuilder management ::::::::::::::::::::::: #:::::::::::::::::::::::::::::: pbuilder management :::::::::::::::::::::::
.PHONY: pbuilder_create .PHONY: pbuilder_create
pbuilder_create: pbuilder_create:

View File

@ -2,17 +2,18 @@
PRAWNOS_ROOT := $(shell git rev-parse --show-toplevel) PRAWNOS_ROOT := $(shell git rev-parse --show-toplevel)
include $(PRAWNOS_ROOT)/scripts/common.mk include $(PRAWNOS_ROOT)/scripts/common.mk
#package specific vars
VERSION := $(shell cd src/; dpkg-parsechangelog --show-field Version) VERSION := $(shell cd src/; dpkg-parsechangelog --show-field Version)
PACKAGE_NAME := flashmap_$(VERSION)_armhf PACKAGE_NAME := flashmap_$(VERSION)_armhf
PACKAGE_NAME_DEB := $(PACKAGE_NAME).deb PACKAGE_NAME_DEB := $(PACKAGE_NAME).deb
PACKAGE_LOCAL_BUILD_DEPS :=
$(PACKAGE_NAME_DEB): $(PACKAGE_NAME_DEB):
@echo Building $@ $(PRAWNOS_PACKAGE_SCRIPTS_PBUILD_PACKAGE) $(PACKAGE_NAME_DEB) \
cd src/; pdebuild --configfile $(PBUILDER_RC) \ $(PBUILDER_VARS) \
--buildresult .. \ $(PRAWNOS_LOCAL_APT_VARS) \
-- \ $(PACKAGE_LOCAL_BUILD_DEPS)
--basetgz $(PBUILDER_CHROOT) \
.PHONY: clean .PHONY: clean
clean: clean:
@ -25,15 +26,8 @@ clean:
rm -rf *.debian.tar.xz rm -rf *.debian.tar.xz
rm -rf *.buildinfo rm -rf *.buildinfo
.PHONY: upload
upload:
dput deb.prawnos.com *.changes
install: install:
ifndef INSTALL_TARGET $(PRAWNOS_PACKAGE_SCRIPTS_INSTALL_PACKAGE) $(PACKAGE_NAME_DEB) $(INSTALL_TARGET)
$(error INSTALL_TARGET is not set)
endif .PHONY: upload
ifeq ("$(wildcard $(PACKAGE_NAME_DEB))","") $(PRAWNOS_PACKAGE_SCRIPTS_UPLOAD_PACKAGE)
$(error $(PACKAGE_NAME_DEB) must be built first)
endif
cp $(PACKAGE_NAME_DEB) $(INSTALL_TARGET)

View File

@ -2,6 +2,7 @@
PRAWNOS_ROOT := $(shell git rev-parse --show-toplevel) PRAWNOS_ROOT := $(shell git rev-parse --show-toplevel)
include $(PRAWNOS_ROOT)/scripts/common.mk include $(PRAWNOS_ROOT)/scripts/common.mk
#package specific vars
VERSION := $(shell cd src/; dpkg-parsechangelog --show-field Version) VERSION := $(shell cd src/; dpkg-parsechangelog --show-field Version)
PACKAGE_NAME := font-source-code-pro_$(VERSION)_all PACKAGE_NAME := font-source-code-pro_$(VERSION)_all
PACKAGE_NAME_DEB := $(PACKAGE_NAME).deb PACKAGE_NAME_DEB := $(PACKAGE_NAME).deb
@ -9,6 +10,8 @@ PACKAGE_NAME_DEB := $(PACKAGE_NAME).deb
$(PACKAGE_NAME_DEB): $(PACKAGE_NAME_DEB):
@echo Building $@ @echo Building $@
cd src/; debuild -us -uc cd src/; debuild -us -uc
mkdir -p $PRAWNOS_LOCAL_APT_REPO
cp $PACKAGE_NAME $PRAWNOS_LOCAL_APT_REPO
.PHONY: clean .PHONY: clean
clean: clean:
@ -21,15 +24,8 @@ clean:
rm -rf *.debian.tar.xz rm -rf *.debian.tar.xz
rm -rf *.buildinfo rm -rf *.buildinfo
.PHONY: upload
upload:
dput deb.prawnos.com *.changes
install: install:
ifndef INSTALL_TARGET $(PRAWNOS_PACKAGE_SCRIPTS_INSTALL_PACKAGE) $(PACKAGE_NAME_DEB) $(INSTALL_TARGET)
$(error INSTALL_TARGET is not set)
endif .PHONY: upload
ifeq ("$(wildcard $(PACKAGE_NAME_DEB))","") $(PRAWNOS_PACKAGE_SCRIPTS_UPLOAD_PACKAGE)
$(error $(PACKAGE_NAME_DEB) must be built first)
endif
cp $(PACKAGE_NAME_DEB) $(INSTALL_TARGET)

View File

@ -19,3 +19,11 @@ install:
for dir in $(SUBDIRS) ; do \ for dir in $(SUBDIRS) ; do \
make install INSTALL_TARGET=$(INSTALL_TARGET) -C $$dir ; \ make install INSTALL_TARGET=$(INSTALL_TARGET) -C $$dir ; \
done done
#this allows a makefile or script to specifically build one filesystem package
.PHONY: build_package
build_package:
ifndef BUILD_PACKAGE
$(error BUILD_PACKAGE is not set)
endif
make -C $(BUILD_PACKAGE)

29
packages/filesystem/mosys/.gitignore vendored Normal file
View File

@ -0,0 +1,29 @@
#since we have not changed upstream, and this is packaged don't keep the source files
src/*
!src/debian
#only include specific /debian files
src/debian/*
!src/debian/compat
!src/debian/changelog
!src/debian/control
!src/debian/rules
!src/debian/copyright
!src/debian/docs
!src/debian/watch
!src/debian/source
!src/debian/source/format
#generic packaging artifacts
debhelper-build-stamp
.debhelper
*.deb
*.dsc
*.build
*.buildinfo
*.changes
*.log
*.substvars
*.diff.gz
*.upload
*.debian.tar.xz

View File

@ -0,0 +1,33 @@
#import all shared make vars
PRAWNOS_ROOT := $(shell git rev-parse --show-toplevel)
include $(PRAWNOS_ROOT)/scripts/common.mk
#package specific vars
VERSION := $(shell cd src/; dpkg-parsechangelog --show-field Version)
PACKAGE_NAME := mosys_$(VERSION)_armhf
PACKAGE_NAME_DEB := $(PACKAGE_NAME).deb
PACKAGE_LOCAL_BUILD_DEPS := flashmap
$(PACKAGE_NAME_DEB):
$(PRAWNOS_PACKAGE_SCRIPTS_PBUILD_PACKAGE) $(PACKAGE_NAME_DEB) \
$(PBUILDER_VARS) \
$(PRAWNOS_LOCAL_APT_VARS) \
$(PACKAGE_LOCAL_BUILD_DEPS)
.PHONY: clean
clean:
rm -rf *.upload
rm -rf *.deb
rm -rf *.changes
rm -rf *.dsc
rm -rf *.build
rm -rf *.diff.gz
rm -rf *.debian.tar.xz
rm -rf *.buildinfo
install:
$(PRAWNOS_PACKAGE_SCRIPTS_INSTALL_PACKAGE) $(PACKAGE_NAME_DEB) $(INSTALL_TARGET)
.PHONY: upload
$(PRAWNOS_PACKAGE_SCRIPTS_UPLOAD_PACKAGE)

Binary file not shown.

View File

@ -0,0 +1,5 @@
mosys (69.10895) stable; urgency=medium
* Initial release.
-- Hal Emmerich <hal@halemmerich.com> Sun, 14 Jun 2020 15:12:07 -0500

View File

@ -0,0 +1 @@
10

View File

@ -0,0 +1,22 @@
Source: mosys
Priority: optional
Maintainer: Hal Emmerich <hal@halemmerich.com>
Uploaders: Hal Emmerich <hal@halemmerich.com>
Build-Depends: debhelper (>= 10),
clang,
uuid-dev,
meson,
pkg-config,
cmake,
libcmocka-dev,
cargo,
flashmap
Standards-Version: 4.3.0
Homepage: https://chromium.googlesource.com/chromiumos/platform/mosys
Vcs-Browser: https://chromium.googlesource.com/chromiumos/platform/mosys
Vcs-Git: https://chromium.googlesource.com/chromiumos/platform/mosys
Package: mosys
Architecture: any
Depends: flashmap, ${misc:Depends}, ${shlibs:Depends}
Description: mosys util for use with crosystem from vboot-utils

View File

@ -0,0 +1,37 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: mosys
Source: https://chromium.googlesource.com/chromiumos/platform/mosys
Files: *
Copyright: 2010 Google Inc. All rights reserved.
Files: debian/*
Copyright: 2020 Hal Emmerich <hal@halemmerich.com>
License: GPL-2+
License:
Copyright (c) 2010, Google Inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of Google Inc. nor the names of its
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

View File

@ -0,0 +1,16 @@
#!/usr/bin/make -f
# -*- makefile -*-
# Use already defined upstream version as DEB_VERSION_UPSTREAM.
include /usr/share/dpkg/pkg-info.mk
export DH_VERBOSE=1
export DEB_CFLAGS_MAINT_APPEND=-Wno-error
export CC=clang
%:
dh $@
override_dh_auto_configure:
dh_auto_configure -- -Darch=arm

View File

@ -2,17 +2,18 @@
PRAWNOS_ROOT := $(shell git rev-parse --show-toplevel) PRAWNOS_ROOT := $(shell git rev-parse --show-toplevel)
include $(PRAWNOS_ROOT)/scripts/common.mk include $(PRAWNOS_ROOT)/scripts/common.mk
#package specific vars
VERSION := $(shell cd src/; dpkg-parsechangelog --show-field Version) VERSION := $(shell cd src/; dpkg-parsechangelog --show-field Version)
PACKAGE_NAME := xsecurelock_$(VERSION)_armhf PACKAGE_NAME := xsecurelock_$(VERSION)_armhf
PACKAGE_NAME_DEB := $(PACKAGE_NAME).deb PACKAGE_NAME_DEB := $(PACKAGE_NAME).deb
PACKAGE_LOCAL_BUILD_DEPS :=
$(PACKAGE_NAME_DEB): $(PACKAGE_NAME_DEB):
@echo Building $@ $(PRAWNOS_PACKAGE_SCRIPTS_PBUILD_PACKAGE) $(PACKAGE_NAME_DEB) \
cd src/; pdebuild --configfile $(PBUILDER_RC) \ $(PBUILDER_VARS) \
--buildresult .. \ $(PRAWNOS_LOCAL_APT_VARS) \
-- \ $(PACKAGE_LOCAL_BUILD_DEPS)
--basetgz $(PBUILDER_CHROOT) \
.PHONY: clean .PHONY: clean
clean: clean:
@ -21,19 +22,13 @@ clean:
rm -rf *.changes rm -rf *.changes
rm -rf *.dsc rm -rf *.dsc
rm -rf *.build rm -rf *.build
rm -rf *.diff.gz
rm -rf *.debian.tar.xz rm -rf *.debian.tar.xz
rm -rf *.buildinfo rm -rf *.buildinfo
.PHONY: upload
upload:
dput deb.prawnos.com *.changes
install: install:
ifndef INSTALL_TARGET $(PRAWNOS_PACKAGE_SCRIPTS_INSTALL_PACKAGE) $(PACKAGE_NAME_DEB) $(INSTALL_TARGET)
$(error INSTALL_TARGET is not set)
endif .PHONY: upload
ifeq ("$(wildcard $(PACKAGE_NAME_DEB))","") $(PRAWNOS_PACKAGE_SCRIPTS_UPLOAD_PACKAGE)
$(error $(PACKAGE_NAME_DEB) must be built first)
endif
cp $(PACKAGE_NAME_DEB) $(INSTALL_TARGET)

View File

@ -0,0 +1,2 @@
#!/bin/sh
/usr/bin/apt-get update

View File

@ -39,6 +39,7 @@ dpkg-reconfigure tzdata
#Install shared packages #Install shared packages
DEBIAN_FRONTEND=noninteractive apt install -y ${base_debs_download[@]} DEBIAN_FRONTEND=noninteractive apt install -y ${base_debs_download[@]}
DEBIAN_FRONTEND=noninteractive apt install -y ${mesa_debs_download[@]} DEBIAN_FRONTEND=noninteractive apt install -y ${mesa_debs_download[@]}
DEBIAN_FRONTEND=noninteractive apt install -y ${prawnos_debs_prebuilt[@]}
[ "$DE" = "gnome" ] && apt install -y ${gnome_debs_download[@]} [ "$DE" = "gnome" ] && apt install -y ${gnome_debs_download[@]}
[ "$DE" = "xfce" ] && apt install -y ${xfce_debs_download[@]} [ "$DE" = "xfce" ] && apt install -y ${xfce_debs_download[@]}

View File

@ -0,0 +1,44 @@
#!/bin/bash
set -e
# install the target package into the target location
# This file is part of PrawnOS (http://www.prawnos.com)
# Copyright (c) 2018 Hal Emmerich <hal@halemmerich.com>
# PrawnOS is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2
# as published by the Free Software Foundation.
# PrawnOS 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 PrawnOS. If not, see <https://www.gnu.org/licenses/>.
if [ -z "$1" ]
then
echo "No package name supplied"
exit 1
fi
if [ -z "$2" ]
then
echo "No install location supplied"
exit 1
fi
PACKAGE_NAME=$1
INSTALL_LOCATION=$2
if [ ! -f "$PACKAGE_NAME" ]; then
echo "Error $PACKAGE_NAME must be built first"
exit 1
fi
echo Installing $PACKAGE_NAME to $INSTALL_LOCATION
cp $PACKAGE_NAME $INSTALL_LOCATION

View File

@ -0,0 +1,104 @@
#!/bin/bash
set -e
# build the supplied package using pbuilder
# satisfies build dependencies if necessary
# This file is part of PrawnOS (http://www.prawnos.com)
# Copyright (c) 2018 Hal Emmerich <hal@halemmerich.com>
# PrawnOS is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2
# as published by the Free Software Foundation.
# PrawnOS 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 PrawnOS. If not, see <https://www.gnu.org/licenses/>.
if [ -z "$1" ]
then
echo "No package name supplied"
exit 1
fi
if [ -z "$2" ]
then
echo "No pbuilder chroot supplied"
exit 1
fi
if [ -z "$3" ]
then
echo "No pbuilder RC supplied"
exit 1
fi
if [ -z "$4" ]
then
echo "No pbuilder hooks directory supplied"
exit 1
fi
if [ -z "$5" ]
then
echo "No prawnos apt repo directory supplied"
exit 1
fi
if [ -z "$6" ]
then
echo "No prawnos apt repo sources.list line supplied"
exit 1
fi
PACKAGE_NAME=$1
PBUILDER_CHROOT=$2
PBUILDER_RC=$3
PBUILDER_HOOKS=$4
PRAWNOS_LOCAL_APT_REPO=$5
PRAWNOS_LOCAL_APT_SOURCE=$6
PACKAGE_DIR=$PWD
# only defined if there are build deps we need to satisfy
PACKAGE_LOCAL_BUILD_DEPS=$7
if [ -z "$PACKAGE_LOCAL_BUILD_DEPS" ]
then
echo Building $PACKAGE_NAME
cd src
pdebuild --configfile $PBUILDER_RC \
--buildresult $PACKAGE_DIR \
-- \
--basetgz $PBUILDER_CHROOT
else
echo Satisfying local build deps for $PACKAGE_NAME
for dep in $PACKAGE_LOCAL_BUILD_DEPS ; do \
make build_package BUILD_PACKAGE=$dep -C .. ; \
done
cd $PRAWNOS_LOCAL_APT_REPO && dpkg-scanpackages . /dev/null > Packages
echo $PACKAGE_NAME build deps satisfied
cd $PACKAGE_DIR
echo Building $PACKAGE_NAME
cd src
pdebuild --configfile $PBUILDER_RC \
--buildresult $PACKAGE_DIR \
-- \
--override-config \
--basetgz $PBUILDER_CHROOT \
--hookdir $PBUILDER_HOOKS \
--bindmounts $PRAWNOS_LOCAL_APT_REPO \
--othermirror "$PRAWNOS_LOCAL_APT_SOURCE"
fi
mkdir -p $PRAWNOS_LOCAL_APT_REPO
cp $PACKAGE_DIR/$PACKAGE_NAME $PRAWNOS_LOCAL_APT_REPO

View File

@ -0,0 +1,24 @@
#!/bin/bash
set -e
# upload the target package to the official prawnos apt repo
# (of course this will only work if you can authenticate with the repo)
# This file is part of PrawnOS (http://www.prawnos.com)
# Copyright (c) 2018 Hal Emmerich <hal@halemmerich.com>
# PrawnOS is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2
# as published by the Free Software Foundation.
# PrawnOS 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 PrawnOS. If not, see <https://www.gnu.org/licenses/>.
dput deb.prawnos.com *.changes

View File

@ -46,9 +46,15 @@ then
echo "No base file system image filename supplied" echo "No base file system image filename supplied"
exit 1 exit 1
fi fi
if [ -z "$4" ]
then
echo "No prawnos_root path supplied"
exit 1
fi
KVER=$1 KVER=$1
DEBIAN_SUITE=$2 DEBIAN_SUITE=$2
BASE=$3 BASE=$3
PRAWNOS_ROOT=$4
outmnt=$(mktemp -d -p `pwd`) outmnt=$(mktemp -d -p `pwd`)
@ -62,13 +68,6 @@ package_lists=$script_resources/package_lists.sh
# Import the package lists # Import the package lists
source $package_lists source $package_lists
#HACK XSECURELOCK our usage of stable and unstable packages has caught up to us. We end up carrying conflicting files if
# we grab build-essential from stable and xsecurelock from unstable. This was fixed by grabbing build-essential from
# unstable as well, but that conflicts with some of the gnome packages it seems. Luckily, we can now build xsecurelock
# for buster instead of grabbing it from unstable.
# I'm rethinking the build system to make (heh) this more elegant, but for now to get the build fixed I'll implement this
XSECURELOCK_PATH=packages/filesystem/xsecurelock
#A hacky way to ensure the loops are properly unmounted and the temp files are properly deleted. #A hacky way to ensure the loops are properly unmounted and the temp files are properly deleted.
#Without this, a reboot is sometimes required to properly clean the loop devices and ensure a clean build #Without this, a reboot is sometimes required to properly clean the loop devices and ensure a clean build
@ -163,7 +162,7 @@ fi
# install Debian on it # install Debian on it
export DEBIAN_FRONTEND=noninteractive export DEBIAN_FRONTEND=noninteractive
# need ca-certs, gnupg, openssl to handle https apt links and key adding for deb.prawnos.com # need ca-certs, gnupg, openssl to handle https apt links and key adding for deb.prawnos.com
qemu-debootstrap --arch armhf $DEBIAN_SUITE --include openssl,ca-certificates,gnupg,locales,init --keyring=$build_resources/debian-archive-keyring.gpg $outmnt $PRAWNOS_DEBOOTSTRAP_MIRROR qemu-debootstrap --arch armhf $DEBIAN_SUITE --include openssl,ca-certificates,gnupg,locales,init --keyring=$build_resources/debian-archive-keyring.gpg $outmnt $PRAWNOS_DEBOOTSTRAP_MIRROR --cache-dir=$PRAWNOS_ROOT/build/apt-cache/
chroot $outmnt passwd -d root chroot $outmnt passwd -d root
@ -222,8 +221,9 @@ chroot $outmnt apt update
chroot $outmnt apt install -y ${base_debs_install[@]} chroot $outmnt apt install -y ${base_debs_install[@]}
#build and install crossystem/mosys, funky way to call the bash function inside the chroot #build and install crossystem/mosys, funky way to call the bash function inside the chroot
export -f build_install_crossystem # TODO!! UNCOMMENT!
chroot $outmnt /bin/bash -ec "build_install_crossystem" # export -f build_install_crossystem
# chroot $outmnt /bin/bash -ec "build_install_crossystem"
#add the live-boot fstab #add the live-boot fstab
cp -f $build_resources/external_fstab $outmnt/etc/fstab cp -f $build_resources/external_fstab $outmnt/etc/fstab
@ -244,13 +244,10 @@ chroot $outmnt apt install -y libinput-tools xdotool build-essential
# apt install ./local-package.deb alone doesn't work because apt will resort to downloading it from deb.prawnos.com, which we dont want # apt install ./local-package.deb alone doesn't work because apt will resort to downloading it from deb.prawnos.com, which we dont want
# copy into /var/cache/apt/archives to place it in the cache # copy into /var/cache/apt/archives to place it in the cache
#next call apt install -d on the ./filename or on the package name and apt will recognize it already has the package cached, so will only cache the dependencies #next call apt install -d on the ./filename or on the package name and apt will recognize it already has the package cached, so will only cache the dependencies
#HACK XSECURELOCK
PRAWN_ROOT=$(pwd) #Copy the built prawnos debs over to the image, and update apts cache
cd $XSECURELOCK_PATH && make cd $PRAWNOS_ROOT && make packages_install INSTALL_TARGET=$outmnt/var/cache/apt/archives/
cd $PRAWN_ROOT chroot $outmnt apt install -y -d ${prawnos_debs_prebuilt_download[@]}
#TODO: replace with cd packages && make install $outmnt/var/cache/apt/archives/
cp $XSECURELOCK_PATH/xsecurelock_*_armhf.deb $outmnt/var/cache/apt/archives/
chroot $outmnt apt install -y -d xsecurelock
#Download the shared packages to be installed by Install.sh: #Download the shared packages to be installed by Install.sh:
chroot $outmnt apt-get install -y -d ${base_debs_download[@]} chroot $outmnt apt-get install -y -d ${base_debs_download[@]}

View File

@ -3,9 +3,25 @@ COMMON_MK := 1
#Place all shared make vars below #Place all shared make vars below
#========================================================================================= #=========================================================================================
PBUILDER_CHROOT := $(PRAWNOS_ROOT)/build/prawnos-pbuilder-armhf-base.tgz PRAWNOS_BUILD := $(PRAWNOS_ROOT)/build
PBUILDER_RC := $(PRAWNOS_ROOT)/resources/BuildResources/pbuilder/prawnos-pbuilder.rc PRAWNOS_LOCAL_APT_REPO := $(PRAWNOS_BUILD)/prawnos-local-apt-repo
PRAWNOS_LOCAL_APT_SOURCE := "deb [trusted=yes] file://$(PRAWNOS_LOCAL_APT_REPO) ./"
PRAWNOS_SCRIPTS := $(PRAWNOS_ROOT)/scripts
PRAWNOS_PACKAGE_SCRIPTS := $(PRAWNOS_SCRIPTS)/PackageScripts
PRAWNOS_PACKAGE_SCRIPTS_INSTALL_PACKAGE := $(PRAWNOS_SCRIPTS)/PackageScripts/installPackage.sh
PRAWNOS_PACKAGE_SCRIPTS_PBUILD_PACKAGE := $(PRAWNOS_SCRIPTS)/PackageScripts/pbuildPackage.sh
PRAWNOS_PACKAGE_SCRIPTS_UPLOAD_PACKAGE := $(PRAWNOS_SCRIPTS)/PackageScripts/uploadPackage.sh
PBUILDER_DIR := $(PRAWNOS_ROOT)/resources/BuildResources/pbuilder
PBUILDER_CHROOT := $(PRAWNOS_BUILD)/prawnos-pbuilder-armhf-base.tgz
PBUILDER_RC := $(PBUILDER_DIR)/prawnos-pbuilder.rc
PBUILDER_HOOKS := $(PBUILDER_DIR)/hooks
PBUILDER_VARS := $(PBUILDER_CHROOT) $(PBUILDER_RC) $(PBUILDER_HOOKS)
PRAWNOS_LOCAL_APT_VARS := $(PRAWNOS_LOCAL_APT_REPO) $(PRAWNOS_LOCAL_APT_SOURCE)
# Otherwise errors are ignored when output is piped to tee: # Otherwise errors are ignored when output is piped to tee:
SHELL := /bin/bash -o pipefail SHELL := /bin/bash -o pipefail
#========================================================================================= #=========================================================================================
endif # COMMON_MK endif # COMMON_MK

View File

@ -163,4 +163,13 @@ gnome_debs_download=(
seahorse seahorse
) )
prawnos_debs_prebuilt_download=(
font-source-code-pro
xsecurelock
)
prawnos_debs_prebuilt_install=(
flashmap
)
# ====================================== END Package Lists ======================================= # ====================================== END Package Lists =======================================