bin/chroot-maint: Run `ldconfig' after an update.
[distorted-chroot] / Makefile
index 6870ddc..ea89661 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -38,13 +38,9 @@ CONFIG_VARS           =
 ## Level of pickiness to aspire to.
 NOTIFY_FATAL            = 1
 
-## Path to this working tree.
-CONFIG_VARS            += HERE
-HERE                    = $(abspath .)
-
 ## Volume group from which to allocate chroot volumes and snapshots.
 CONFIG_VARS            += VG LVPREFIX
-VG                      = vg-$(shell hostname)
+VG                     := vg-$(shell hostname)
 LVPREFIX                =
 
 ## Logical volume size, as an LVM option.
@@ -68,7 +64,7 @@ APTCONF                        = $(notdir $(wildcard etc/apt-conf.d/[0-9]*[!~]))
 
 ## Proxy setting.
 CONFIG_VARS            += PROXY
-PROXY                  := $(shell \
+PROXY                   = $(shell \
        eval $$(apt-config $(foreach a,$(APTCONF),-cetc/apt-conf.d/$a) \
                shell proxy Acquire::http::proxy); \
        case $${proxy+t} in (t) echo "$$proxy" ;; (*) echo nil ;; esac)
@@ -80,8 +76,8 @@ DISTS                  = $(PRIMARY_DIST) buster bullseye sid
 
 ## Host's native architecture(s).
 CONFIG_VARS            += MYARCH NATIVE_ARCHS
-MYARCH                  = $(shell dpkg --print-architecture)
-OTHERARCHS              = $(shell dpkg --print-foreign-architectures)
+MYARCH                 := $(shell dpkg --print-architecture)
+OTHERARCHS             := $(shell dpkg --print-foreign-architectures)
 NATIVE_ARCHS            = $(MYARCH) $(OTHERARCHS)
 
 ## Foreign (emulated) architectures to support.
@@ -208,8 +204,9 @@ STATE                        = state
 
 ## A directory which will be spliced into chroots as `/usr/local.schroot/'.
 ## This will be our primary point of contact with the chroot.
-CONFIG_VARS            += LOCAL
+CONFIG_VARS            += LOCAL ABSLOCAL
 LOCAL                   = local.schroot
+ABSLOCAL                = $(abspath $(LOCAL))
 
 ## How to run a command as a privileged user.
 CONFIG_VARS            += ROOTLY
@@ -422,9 +419,7 @@ $(PYMODULES): $(STATE)/lib/python/%.so: $$(call c-object,$$($$*_SOURCES))
 ### Scripts.
 
 SCRIPTS                        += chroot-maint
-SCRIPTS                        += mkbuildchroot
 SCRIPTS                        += mkchrootconf
-SCRIPTS                        += install-cross-tools update-cross-tools
 
 SUBST_SCRIPTS           = $(addprefix $(STATE)/bin/,$(SCRIPTS))
 all:: $(SUBST_SCRIPTS)
@@ -531,7 +526,7 @@ $(LOCAL)/etc/schroot/sbuild.schroot: $(STATE)/bin/mkchrootconf
        $(call v_tag,GEN)$(STATE)/bin/mkchrootconf >$@.new && \
                $(ROOTLY) chown root:root $@.new && mv $@.new $@
 CLEANFILES             += $(LOCAL)/etc/schroot/sbuild.schroot
-check::; $(call check-symlink,WARN,/etc/schroot/chroot.d/sbuild,$(HERE)/$(LOCAL)/etc/schroot/sbuild.schroot)
+check::; $(call check-symlink,WARN,/etc/schroot/chroot.d/sbuild,$(ABSLOCAL)/etc/schroot/sbuild.schroot)
 
 schroot-config:: $(LOCAL)/etc/schroot/sbuild.profile/copyfiles
 $(LOCAL)/etc/schroot/sbuild.profile/copyfiles: $(schroot-config_STAMP)
@@ -559,7 +554,7 @@ $(LOCAL)/etc/schroot/sbuild.profile/fstab: \
                <$< >$@.new && mv $@.new $@
 CLEANFILES             += $(LOCAL)/etc/schroot/sbuild.profile/fstab
 
-check::; $(call check-symlink,WARN,/etc/schroot/sbuild,$(HERE)/$(LOCAL)/etc/schroot/sbuild.profile)
+check::; $(call check-symlink,WARN,/etc/schroot/sbuild,$(ABSLOCAL)/etc/schroot/sbuild.profile)
 
 schroot-config:: $(LOCAL)/etc/sbuild.conf
 $(LOCAL)/etc/sbuild.conf: etc/sbuild.conf.in $(schroot-config_STAMP)
@@ -567,7 +562,7 @@ $(LOCAL)/etc/sbuild.conf: etc/sbuild.conf.in $(schroot-config_STAMP)
        $(call v_tag,SUBST)$(call subst-file,### -*-perl-*-) \
                <$< >$@.new && mv $@.new $@
 CLEANFILES             += $(LOCAL)/etc/sbuild.conf
-check::; $(call check-symlink,WARN,/etc/sbuild/sbuild.conf,$(HERE)/$(LOCAL)/etc/sbuild.conf)
+check::; $(call check-symlink,WARN,/etc/sbuild/sbuild.conf,$(ABSLOCAL)/etc/sbuild.conf)
 check::; $(call check-executable,WARN,/usr/local.schroot/hacks/apt-get)
 
 SCHROOT_SCRIPTS                += 11private
@@ -584,10 +579,21 @@ CLEANFILES                += $(COPY_SCHROOT_SCRIPTS)
 CHECK_SCHROOT_SCRIPTS   = $(addprefix check-script/,$(SCHROOT_SCRIPTS))
 check:: $(CHECK_SCHROOT_SCRIPTS)
 $(CHECK_SCHROOT_SCRIPTS): check-script/%:
-       $(call check-symlink,WARN,/etc/schroot/setup.d/$*,$(HERE)/$(LOCAL)/etc/schroot/setup.d/$*)
+       $(call check-symlink,WARN,/etc/schroot/setup.d/$*,$(ABSLOCAL)/etc/schroot/setup.d/$*)
 .PHONY: $(addprefix check-script/,$(SCHROOT_SCRIPTS))
 
 ###--------------------------------------------------------------------------
+### Ccache setup.
+
+CCACHE_CONFIGS          = $(foreach r,$(ALL_CHROOTS), \
+       /var/lib/sbuild/build/.ccache/$(LVPREFIX)$r/ccache.conf)
+all:: $(CCACHE_CONFIGS)
+$(CCACHE_CONFIGS): /var/lib/sbuild/build/.ccache/$(LVPREFIX)%/ccache.conf: \
+               etc/ccache.conf
+       $(V_AT)mkdir -p $(dir $@)
+       $(call v_tag,COPY)cp $< $@.new && mv $@.new $@
+
+###--------------------------------------------------------------------------
 ### `/usr/local/' structure.
 
 LOCAL_COMMON_DIRS       = share/ src/
@@ -627,7 +633,7 @@ $(foreach a,$(ALL_ARCHS),\
 ### Main chroot maintenance.
 
 OPTS                    =
-FRESH                   = create
+FRESH                   = 1w
 JOBS                    = chroot cross-tools pkg-build
 
 MAINTQ_                         = -q