use additional overlays/repositories
This commit is contained in:
parent
5cc933830b
commit
f7c9fa17ca
30
Makefile
30
Makefile
|
@ -3,7 +3,9 @@ VABUILDER_OUTPUT := $(CURDIR)
|
|||
CHROOT := $(VABUILDER_OUTPUT)/build/$(APPLIANCE)
|
||||
VA_PKGDIR = $(VABUILDER_OUTPUT)/packages
|
||||
DISTDIR = $(CURDIR)/distfiles
|
||||
PORTAGE_DIR = $(CURDIR)/portage
|
||||
REPO_DIR = $(CURDIR)/repos
|
||||
REPO_NAMES =
|
||||
PORTAGE_DIR = $(REPO_DIR)/gentoo
|
||||
HOSTNAME = $(APPLIANCE)
|
||||
IMAGES = $(VABUILDER_OUTPUT)/images
|
||||
RAW_IMAGE = $(IMAGES)/$(APPLIANCE).img
|
||||
|
@ -73,13 +75,14 @@ endif
|
|||
|
||||
PATH := $(CURDIR)/scripts:$(PATH)
|
||||
|
||||
export PATH CHROOT container PORTAGE_DIR VA_PKGDIR DISTDIR VA_ARCH
|
||||
export PATH CHROOT container PORTAGE_DIR REPO_DIR REPO_NAMES VA_PKGDIR DISTDIR VA_ARCH
|
||||
|
||||
inroot := systemd-nspawn --quiet \
|
||||
--directory=$(CHROOT) \
|
||||
--machine=$(container) \
|
||||
--capability=CAP_NET_ADMIN \
|
||||
--bind=$(PORTAGE_DIR):/var/db/repos/gentoo \
|
||||
$(foreach repo,$(REPO_NAMES),--bind=$(REPO_DIR)/$(repo):/var/db/repos/$(repo) ) \
|
||||
--bind=$(VA_PKGDIR):/var/cache/binpkgs \
|
||||
--bind=$(DISTDIR):/var/cache/distfiles
|
||||
|
||||
|
@ -128,7 +131,7 @@ else
|
|||
$(M4) -DDRIVE=vda $< > $@
|
||||
endif
|
||||
|
||||
$(PREPROOT): $(STAGE3) $(PORTAGE_DIR) $(CHROOT)/etc/fstab $(etc_portage) $(portage_package_files)
|
||||
$(PREPROOT): $(STAGE3) $(PORTAGE_DIR) $(foreach repo,$(REPO_NAMES),$(REPO_DIR)/$(repo)) $(CHROOT)/etc/fstab $(etc_portage) $(portage_package_files)
|
||||
mkdir -p $(VA_PKGDIR) $(DISTDIR)
|
||||
@print Creating swap file: `basename $(SWAP_FILE)`
|
||||
dd if=/dev/zero of=$(SWAP_FILE) bs=1M count=$(SWAP_SIZE)
|
||||
|
@ -157,6 +160,25 @@ endif
|
|||
rm -f $(CHROOT)/etc/localtime
|
||||
touch $(STAGE3)
|
||||
|
||||
|
||||
sync_repos: $(foreach repo,$(REPO_NAMES),$(REPO_DIR)/$(repo))
|
||||
@print Updating the repositories
|
||||
$(foreach repo,$(REPO_NAMES),git -C $(REPO_DIR)/$(repo) pull;touch $(REPO_DIR)/$(repo);)
|
||||
|
||||
$(foreach repo,$(REPO_NAMES),$(REPO_DIR)/$(repo)):
|
||||
@print Grabbing a repository
|
||||
git clone --depth=1 $(REPO_URI_$(subst $(REPO_DIR)/,,$@)) $@
|
||||
|
||||
$(CHROOT)/etc/portage/repos.conf: $(foreach repo,$(REPO_NAMES),$(REPO_DIR)/$(repo))
|
||||
$(foreach repo,$(REPO_NAMES),\
|
||||
echo "[$(repo)]" >>$@;\
|
||||
echo "location = /var/db/repos/$(repo)" >>$@;\
|
||||
echo "auto-sync = no" >>$@;\
|
||||
echo "" >>$@;\
|
||||
)
|
||||
touch $@
|
||||
|
||||
|
||||
$(CHROOT)/etc/portage/package.%/01$(APPLIANCE): appliances/$(APPLIANCE)/package.% $(STAGE3)
|
||||
mkdir -p `dirname $@`
|
||||
cp $< $@
|
||||
|
@ -175,7 +197,7 @@ $(CHROOT)/var/tmp/profile: $(STAGE3)
|
|||
$(CHROOT)/etc/locale.gen: configs/locale.gen
|
||||
COPY configs/locale.gen /etc/locale.gen
|
||||
|
||||
$(COMPILE_OPTIONS): $(STAGE3) $(PORTAGE_DIR) $(CHROOT)/etc/portage/make.conf configs/locale.gen $(portage_package_files) $(portage_make_conf_local) $(CHROOT)/var/tmp/profile $(CHROOT)/etc/locale.gen
|
||||
$(COMPILE_OPTIONS): $(STAGE3) $(PORTAGE_DIR) $(CHROOT)/etc/portage/make.conf configs/locale.gen $(portage_package_files) $(portage_make_conf_local) $(CHROOT)/var/tmp/profile $(CHROOT)/etc/locale.gen $(CHROOT)/etc/portage/repos.conf
|
||||
RUN locale-gen
|
||||
touch $(COMPILE_OPTIONS)
|
||||
|
||||
|
|
|
@ -7,6 +7,12 @@ import sys
|
|||
def main():
|
||||
environ = os.environ
|
||||
|
||||
repobind = []
|
||||
repodir = environ['REPO_DIR']
|
||||
repos = str.split(environ['REPO_NAMES'])
|
||||
for repo in repos:
|
||||
repobind.append(f"--bind={repodir}/{repo}:/var/db/repos/{repo}")
|
||||
|
||||
command = [
|
||||
"systemd-nspawn",
|
||||
"--quiet",
|
||||
|
@ -16,7 +22,7 @@ def main():
|
|||
f"--bind={environ['PORTAGE_DIR']}:/var/db/repos/gentoo",
|
||||
f"--bind={environ['VA_PKGDIR']}:/var/cache/binpkgs",
|
||||
f"--bind={environ['DISTDIR']}:/var/cache/distfiles",
|
||||
] + sys.argv[1:]
|
||||
] + repobind + sys.argv[1:]
|
||||
|
||||
if os.environ.get("VA_ARCH") == "linux32":
|
||||
command = ["linux32"] + command
|
||||
|
|
Loading…
Reference in New Issue