imagebuilder.patch 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. --- a/target/imagebuilder/Makefile
  2. +++ b/target/imagebuilder/Makefile
  3. @@ -38,13 +38,14 @@ $(BIN_DIR)/$(IB_NAME).tar.xz: clean
  4. ./files/repositories.conf \
  5. $(TMP_DIR)/.targetinfo \
  6. $(TMP_DIR)/.packageinfo \
  7. + $(TOPDIR)/files \
  8. $(PKG_BUILD_DIR)/
  9. -ifeq ($(CONFIG_IB_STANDALONE),)
  10. echo '## Remote package repositories' >> $(PKG_BUILD_DIR)/repositories.conf
  11. $(call FeedSourcesAppend,$(PKG_BUILD_DIR)/repositories.conf)
  12. $(VERSION_SED_SCRIPT) $(PKG_BUILD_DIR)/repositories.conf
  13. -endif
  14. + $(SED) 's/^src\/gz \(.*\) https.*top\/\(packages.*\)/src \1 file:\/\/www\/wwwroot\/op.supes.top\/\2/' $(PKG_BUILD_DIR)/repositories.conf
  15. + $(SED) 's/\/kiddin9//' $(PKG_BUILD_DIR)/repositories.conf
  16. $(INSTALL_DIR) $(PKG_BUILD_DIR)/packages
  17. # create an empty package index so `opkg` doesn't report an error
  18. --- a/target/imagebuilder/files/Makefile
  19. +++ b/target/imagebuilder/files/Makefile
  20. @@ -113,6 +113,14 @@ BUILD_PACKAGES:=$(filter-out $(filter -%,$(BUILD_PACKAGES)) $(patsubst -%,%,$(fi
  21. PACKAGES:=
  22. _call_image: staging_dir/host/.prereq-build
  23. + [ "$(DATE)" ] && DATE="$(DATE)" || DATE="`date +'%m.%d.%Y'`"; \
  24. + mkdir -p $(USER_FILES)/etc/uci-defaults || true; \
  25. + echo -e " \
  26. + sed -i \"s/[0-9]\+.[0-9]\+.[0-9]\{4\}/$$DATE/\" /etc/openwrt_release \n \
  27. + sed -i \"s/DISTRIB_ID=.*/DISTRIB_ID='$(PARTSIZE)'/\" /etc/openwrt_release \n \
  28. + sed -i \"s/OpenWrt .* by/OpenWrt $$DATE by/\" /etc/banner \n \
  29. + echo \"$$DATE\" >/etc/openwrt_version \n \
  30. + "> $(USER_FILES)/etc/uci-defaults/99-version; \
  31. echo 'Building images for $(BOARD)$(if $($(USER_PROFILE)_NAME), - $($(USER_PROFILE)_NAME))'
  32. echo 'Packages: $(BUILD_PACKAGES)'
  33. echo
  34. @@ -124,6 +132,8 @@ _call_image: staging_dir/host/.prereq-build
  35. $(MAKE) -s build_image
  36. $(MAKE) -s json_overview_image_info
  37. $(MAKE) -s checksum
  38. + rm -rf $(KERNEL_BUILD_DIR)/tmp
  39. + rm -rf $(KERNEL_BUILD_DIR)/root.*
  40. _call_manifest: FORCE
  41. rm -rf $(TARGET_DIR)
  42. @@ -164,7 +174,15 @@ package_install: FORCE
  43. @echo Installing packages...
  44. $(OPKG) install $(firstword $(wildcard $(LINUX_DIR)/libc_*.ipk $(PACKAGE_DIR)/libc_*.ipk))
  45. $(OPKG) install $(firstword $(wildcard $(LINUX_DIR)/kernel_*.ipk $(PACKAGE_DIR)/kernel_*.ipk))
  46. - $(OPKG) install $(BUILD_PACKAGES)
  47. + packages="luci-i18n-base-zh-cn luci-i18n-base-en"; \
  48. + for p in $(BUILD_PACKAGES); do \
  49. + if [[ $$p == luci-app-* && "`$(OPKG) list | grep luci-i18n-\`echo $$p | cut -d - -f 3-\`-zh-cn`" ]]; then \
  50. + packages="luci-i18n-`echo $$p | cut -d - -f 3-`-zh-cn $$packages"; \
  51. + fi \
  52. + done; \
  53. + $(OPKG) install --force-overwrite --force-checksum --force-depends $(BUILD_PACKAGES); \
  54. + $(OPKG) install $$packages || true
  55. + $(OPKG) install --force-overwrite --force-checksum --force-depends --force-maintainer --force-reinstall my-default-settings
  56. prepare_rootfs: FORCE
  57. @echo
  58. @@ -183,7 +201,7 @@ build_image: FORCE
  59. @echo
  60. @echo Building images...
  61. rm -rf $(BUILD_DIR)/json_info_files/
  62. - $(NO_TRACE_MAKE) -C target/linux/$(BOARD)/image install TARGET_BUILD=1 IB=1 EXTRA_IMAGE_NAME="$(EXTRA_IMAGE_NAME)" \
  63. + nice -n 19 $(NO_TRACE_MAKE) -C target/linux/$(BOARD)/image install TARGET_BUILD=1 IB=1 EXTRA_IMAGE_NAME="$(EXTRA_IMAGE_NAME)" \
  64. $(if $(USER_PROFILE),PROFILE="$(USER_PROFILE)")
  65. $(BIN_DIR)/profiles.json: FORCE
  66. --- a/include/image.mk
  67. +++ b/include/image.mk
  68. @@ -7,6 +7,7 @@ include $(INCLUDE_DIR)/prereq.mk
  69. include $(INCLUDE_DIR)/kernel.mk
  70. include $(INCLUDE_DIR)/version.mk
  71. include $(INCLUDE_DIR)/image-commands.mk
  72. +-include $(TOPDIR)/.profiles.mk
  73. ifndef IB
  74. ifdef CONFIG_TARGET_PER_DEVICE_ROOTFS
  75. @@ -225,10 +226,10 @@ $(eval $(foreach S,$(JFFS2_BLOCKSIZE),$(call Image/mkfs/jffs2/template,$(S))))
  76. $(eval $(foreach S,$(NAND_BLOCKSIZE),$(call Image/mkfs/jffs2-nand/template,$(S))))
  77. define Image/mkfs/squashfs-common
  78. + echo -998 > /proc/$$$$/oom_score_adj || true
  79. $(STAGING_DIR_HOST)/bin/mksquashfs4 $(call mkfs_target_dir,$(1)) $@ \
  80. -nopad -noappend -root-owned \
  81. - -comp $(SQUASHFSCOMP) $(SQUASHFSOPT) \
  82. - -processors 1
  83. + -comp $(SQUASHFSCOMP) $(SQUASHFSOPT)
  84. endef
  85. ifeq ($(CONFIG_TARGET_ROOTFS_SECURITY_LABELS),y)
  86. @@ -291,11 +292,34 @@ define Image/gzip-ext4-padded-squashfs
  87. endef
  88. +ROOTFSTZ = $(IMG_PREFIX)$(if $(PROFILE_SANITIZED),-$(PROFILE_SANITIZED))-rootfs.tar.gz
  89. ifdef CONFIG_TARGET_ROOTFS_TARGZ
  90. define Image/Build/targz
  91. $(TAR) -cp --numeric-owner --owner=0 --group=0 --mode=a-s --sort=name \
  92. $(if $(SOURCE_DATE_EPOCH),--mtime="@$(SOURCE_DATE_EPOCH)") \
  93. - -C $(TARGET_DIR)/ . | gzip -9n > $(BIN_DIR)/$(IMG_PREFIX)$(if $(PROFILE_SANITIZED),-$(PROFILE_SANITIZED))-rootfs.tar.gz
  94. + -C $(TARGET_DIR)/ . | gzip -9n > $(BIN_DIR)/$(ROOTFSTZ)
  95. +
  96. + mkdir $(BUILD_DIR)/json_info_files
  97. + touch $(BUILD_DIR)/json_info_files/$(ROOTFSTZ).json
  98. + @mkdir -p $$(shell dirname $$@)
  99. + DEVICE_ID="$(PROFILE_SANITIZED)" \
  100. + BIN_DIR="$(BIN_DIR)" \
  101. + SOURCE_DATE_EPOCH=$(SOURCE_DATE_EPOCH) \
  102. + IMAGE_NAME="$(ROOTFSTZ)" \
  103. + IMAGE_TYPE="rootfs" \
  104. + IMAGE_FILESYSTEM="rootfs" \
  105. + IMAGE_PREFIX="$(IMG_PREFIX)" \
  106. + DEVICE_VENDOR="$(shell echo $($(PROFILE)_NAME) | cut -d " " -f1)" \
  107. + DEVICE_MODEL="$(shell echo $($(PROFILE)_NAME) | cut -d " " -f2-)" \
  108. + DEVICE_VARIANT="$$(DEVICE_VARIANT)" \
  109. + DEVICE_TITLE="$($(PROFILE)_NAME)" \
  110. + DEVICE_PACKAGES="$($(PROFILE)_PACKAGES)" \
  111. + TARGET="$(BOARD)" \
  112. + SUBTARGET="$(if $(SUBTARGET),$(SUBTARGET),generic)" \
  113. + VERSION_NUMBER="$(VERSION_NUMBER)" \
  114. + VERSION_CODE="$(VERSION_CODE)" \
  115. + SUPPORTED_DEVICES="$($(PROFILE)_SUPPORTED_DEVICES)" \
  116. + $(TOPDIR)/scripts/json_add_image_info.py $(BUILD_DIR)/json_info_files/$(ROOTFSTZ).json
  117. endef
  118. endif
  119. --- a/scripts/json_overview_image_info.py
  120. +++ b/scripts/json_overview_image_info.py
  121. @@ -47,7 +47,7 @@ def get_initial_output(image_info):
  122. if output:
  123. - default_packages, output["arch_packages"] = run(
  124. + default_packages, output["arch_packages"], output["kernel_version"] = run(
  125. [
  126. "make",
  127. "--no-print-directory",
  128. @@ -55,6 +55,7 @@ def get_initial_output(image_info):
  129. "target/linux/",
  130. "val.DEFAULT_PACKAGES",
  131. "val.ARCH_PACKAGES",
  132. + "val.LINUX_VERSION",
  133. ],
  134. stdout=PIPE,
  135. stderr=PIPE,