blob: aebcf4b7d978c1103dd0e4e496f1eb266edcb064 [file] [log] [blame]
Jan Kundráte8b18112018-04-04 23:11:23 +02001CZECHLIGHT_CFG_FS_INSTALL_IMAGES = YES
Tomáš Pecka68a22862022-05-30 15:52:29 +02002CZECHLIGHT_CFG_FS_DEPENDENCIES = host-e2fsprogs host-libyang netopeer2 systemd
Jan Kundráte8b18112018-04-04 23:11:23 +02003
4CZECHLIGHT_CFG_FS_LOCATION = $(BINARIES_DIR)/cfg.ext4
5
6define CZECHLIGHT_CFG_FS_INSTALL_IMAGES_CMDS
7 rm -f $(CZECHLIGHT_CFG_FS_LOCATION)
8 $(HOST_DIR)/sbin/mkfs.ext4 -L cfg $(CZECHLIGHT_CFG_FS_LOCATION) $(call qstrip,$(CZECHLIGHT_CFG_FS_SIZE))
9endef
10
Jan Kundrát62dbb4a2018-04-05 20:42:09 +020011ifeq ($(BR2_PACKAGE_CZECHLIGHT_CFG_FS)-$(call qstrip,$(CZECHLIGHT_CFG_FS_SIZE)),y-)
12$(error CZECHLIGHT_CFG_FS_SIZE cannot be empty)
13endif
14
Jan Kundrát6b05a1d2019-03-06 17:01:28 +010015define CZECHLIGHT_CFG_FS_BUILD_CMDS
Jan Kundrát757863a2019-12-05 15:57:55 +010016 $(TARGET_CC) $(CZECHLIGHT_CFG_FS_PKGDIR)/czechlight-random-seed.c -o $(@D)/czechlight-random-seed
Jan Kundrát6b05a1d2019-03-06 17:01:28 +010017endef
18
Jan Kundráte40feeb2022-07-08 14:27:29 +020019CZECHLIGHT_CFG_FS_SYSTEMD_FOR_MULTIUSER = \
20 czechlight-install-yang.service \
Tomáš Peckab31a0892023-07-19 11:12:29 +020021 czechlight-migrate.service
Jan Kundráte40feeb2022-07-08 14:27:29 +020022
23$(ifeq ($(CZECHLIGHT_CFG_FS_PERSIST_SYSREPO),y))
24 CZECHLIGHT_CFG_FS_SYSTEMD_FOR_MULTIUSER += \
25 sysrepo-persistent-cfg.service \
26 cfg-restore-sysrepo.service
27$(endif)
28$(ifeq ($(CZECHLIGHT_CFG_FS_PERSIST_KEYS),y))
29 CZECHLIGHT_CFG_FS_SYSTEMD_FOR_MULTIUSER += openssh-persistent-keys.service
30$(endif)
31$(ifeq ($(CZECHLIGHT_CFG_FS_PERSIST_NETWORK),y))
32 CZECHLIGHT_CFG_FS_SYSTEMD_FOR_MULTIUSER += cfg-restore-systemd-networkd.service
33$(endif)
34
Jan Kundrát960274e2018-04-09 11:20:56 +020035define CZECHLIGHT_CFG_FS_INSTALL_TARGET_CMDS
Jan Kundrát567058d2018-11-08 19:15:56 +010036 mkdir -p $(TARGET_DIR)/cfg
Jan Kundráte40feeb2022-07-08 14:27:29 +020037 mkdir -p $(TARGET_DIR)/usr/lib/systemd/system/multi-user.target.wants/
38
39 $(INSTALL) -D -m 0755 -t $(TARGET_DIR)/sbin \
40 $(BR2_EXTERNAL_CZECHLIGHT_PATH)/package/czechlight-cfg-fs/init-czechlight.sh \
Jan Kundrát80972db2023-06-05 22:27:16 +020041 $(BR2_EXTERNAL_CZECHLIGHT_PATH)/package/czechlight-cfg-fs/cfg-save-sysrepo \
42 $(BR2_EXTERNAL_CZECHLIGHT_PATH)/package/czechlight-cfg-fs/impl-cfg-save-sysrepo \
Jan Kundráte40feeb2022-07-08 14:27:29 +020043 $(@D)/czechlight-random-seed
44
Tomáš Pecka04eb7372022-06-07 08:03:04 +020045 $(INSTALL) -D -m 0755 -t $(TARGET_DIR)/usr/libexec/czechlight-cfg-fs \
Jan Kundráte40feeb2022-07-08 14:27:29 +020046 $(BR2_EXTERNAL_CZECHLIGHT_PATH)/package/czechlight-cfg-fs/czechlight-install-yang.sh \
Tomáš Pecka04eb7372022-06-07 08:03:04 +020047 $(BR2_EXTERNAL_CZECHLIGHT_PATH)/package/czechlight-cfg-fs/czechlight-migrate.sh \
48 $(BR2_EXTERNAL_CZECHLIGHT_PATH)/package/czechlight-cfg-fs/czechlight-migration-list.sh
49
50 $(INSTALL) -D -m 0644 -t $(TARGET_DIR)/usr/libexec/czechlight-cfg-fs/migrations \
51 $(BR2_EXTERNAL_CZECHLIGHT_PATH)/package/czechlight-cfg-fs/migrations/*
52
Jan Kundráte40feeb2022-07-08 14:27:29 +020053
54 for UNIT in $(CZECHLIGHT_CFG_FS_SYSTEMD_FOR_MULTIUSER); do \
55 $(INSTALL) -D -m 0644 -t $(TARGET_DIR)/usr/lib/systemd/system/ \
56 $(BR2_EXTERNAL_CZECHLIGHT_PATH)/package/czechlight-cfg-fs/$${UNIT}; \
57 ln -sf ../$${UNIT} $(TARGET_DIR)/usr/lib/systemd/system/multi-user.target.wants/ ;\
58 done
Jan Kundrát960274e2018-04-09 11:20:56 +020059endef
60
Jan Kundrát86665c42018-06-06 13:38:22 +020061# Configure OpenSSH to look for *user* keys in the /cfg
62define CZECHLIGHT_CFG_FS_OPENSSH_AUTH_PATH_PATCH
63 $(SED) 's|^AuthorizedKeysFile.*|AuthorizedKeysFile /cfg/ssh-user-auth/%u|' $(TARGET_DIR)/etc/ssh/sshd_config
64endef
65OPENSSH_POST_INSTALL_TARGET_HOOKS += CZECHLIGHT_CFG_FS_OPENSSH_AUTH_PATH_PATCH
66
Jan Kundrátf908bda2021-01-22 19:51:50 +010067NETOPEER2_CONF_OPTS += \
68 -DNP2SRV_SSH_AUTHORIZED_KEYS_PATTERN="/cfg/ssh-user-auth/%s" \
69 -DNP2SRV_SSH_AUTHORIZED_KEYS_ARG_IS_USERNAME=ON
70
Jan Kundráte8b18112018-04-04 23:11:23 +020071$(eval $(generic-package))