There is no gain to do device scan in init. Commonly we want to always scan BTRFS devices to ensure that after boot raids are correctly linked. It should be done before any init script tries to mount any raid FS. Comparing init scripts and preinit scripts there are I think two primary considerations. First is if user is expected to restart/reload/stop given service on will. I think that there is no such reason for this as user can easily enough just call btrfs utility it self. Second consideration is if it makes sense to have it optional. This means if we want to have ability to enable and disable given service. I think that there is no such need in this case. It is pretty much doing nothing if you don't have BTRFS FS connected and when you have you probably want to scan it. Signed-off-by: Karel Kočí <karel.koci@nic.cz>
86 lines
2.5 KiB
Makefile
86 lines
2.5 KiB
Makefile
#
|
|
# This is free software, licensed under the GNU General Public License v2.
|
|
# See /LICENSE for more information.
|
|
#
|
|
|
|
include $(TOPDIR)/rules.mk
|
|
|
|
PKG_NAME:=btrfs-progs
|
|
PKG_VERSION:=5.2.1
|
|
PKG_RELEASE:=1
|
|
|
|
PKG_SOURCE:=$(PKG_NAME)-v$(PKG_VERSION).tar.xz
|
|
PKG_SOURCE_URL:=@KERNEL/linux/kernel/people/kdave/btrfs-progs
|
|
PKG_HASH:=36ac4a0198ffff79d5800c537ea4b19769a8fd3ad870f75413d25b20e2d83233
|
|
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-v$(PKG_VERSION)
|
|
|
|
PKG_MAINTAINER:=Karel Kočí <karel.koci@nic.cz>
|
|
PKG_LICENSE:=GPL-2.0-only
|
|
PKG_LICENSE_FILES:=COPYING
|
|
|
|
PKG_INSTALL:=1
|
|
PKG_BUILD_PARALLEL:=1
|
|
PKG_BUILD_DEPENDS:=acl
|
|
|
|
include $(INCLUDE_DIR)/package.mk
|
|
|
|
define Package/btrfs-progs
|
|
SECTION:=utils
|
|
CATEGORY:=Utilities
|
|
SUBMENU:=Filesystem
|
|
TITLE:=Btrfs filesystems utilities
|
|
URL:=https://btrfs.wiki.kernel.org/
|
|
DEPENDS:=+libattr +libuuid +zlib +libblkid +liblzo +libpthread +BTRFS_PROGS_ZSTD:libzstd
|
|
endef
|
|
|
|
define Package/btrfs-progs/description
|
|
Btrfs is a new copy on write filesystem for Linux aimed at implementing
|
|
advanced features while focusing on fault tolerance, repair and easy
|
|
administration. Initially developed by Oracle, Btrfs is licensed under the
|
|
GPL and open for contribution from anyone.
|
|
endef
|
|
|
|
define Package/btrfs-progs/config
|
|
source "$(SOURCE)/Config.in"
|
|
endef
|
|
|
|
boxprogs = btrfsck mkfs.btrfs btrfs-image btrfstune btrfs-find-root
|
|
progs = btrfs-map-logical btrfs-select-super
|
|
|
|
TARGET_CFLAGS += -ffunction-sections -fdata-sections
|
|
TARGET_LDFLAGS += -Wl,--gc-sections -Wl,--as-needed
|
|
|
|
EXTRA_CFLAGS=$(TARGET_CPPFLAGS)
|
|
|
|
CONFIGURE_ARGS += \
|
|
--disable-backtrace \
|
|
--disable-convert \
|
|
--disable-documentation \
|
|
--disable-python
|
|
ifneq ($(CONFIG_BTRFS_PROGS_ZSTD),y)
|
|
CONFIGURE_ARGS += --disable-zstd
|
|
endif
|
|
|
|
MAKE_INSTALL_FLAGS += BUILD_PROGRAMS=0
|
|
|
|
Build/Compile=$(call Build/Compile/Default,btrfs.box $(progs))
|
|
|
|
define Build/InstallDev
|
|
$(INSTALL_DIR) $(1)/usr/include $(1)/usr/lib
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libbtrfs* $(1)/usr/lib/
|
|
endef
|
|
|
|
define Package/btrfs-progs/install
|
|
$(INSTALL_DIR) $(1)/usr/lib
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libbtrfs.so* $(1)/usr/lib
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libbtrfsutil.so* $(1)/usr/lib
|
|
$(INSTALL_DIR) $(1)/usr/bin
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/btrfs.box $(1)/usr/bin/btrfs
|
|
$(foreach prog,$(boxprogs),$(LN) btrfs $(1)/usr/bin/$(prog);)
|
|
$(foreach prog,$(progs),$(INSTALL_BIN) $(PKG_BUILD_DIR)/$(prog) $(1)/usr/bin/;)
|
|
$(INSTALL_DIR) $(1)/lib/preinit
|
|
$(INSTALL_BIN) ./files/btrfs-scan.init $(1)/lib/preinit/85_btrfs_scan
|
|
endef
|
|
|
|
$(eval $(call BuildPackage,btrfs-progs))
|