f2fs-tools: import from packages, clean up, and update to latest

Signed-off-by: Felix Fietkau <nbd@nbd.name>
Felix Fietkau 2016-09-06 13:12:17 +02:00
parent 03cd416795
commit dbbd5eef58
4 changed files with 174 additions and 0 deletions

View File

@ -0,0 +1,90 @@
#
# Copyright (C) 2014 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=f2fs-tools
PKG_VERSION:=1.7.0
PKG_RELEASE:=1
PKG_LICENSE:=GPLv2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://git.kernel.org/cgit/linux/kernel/git/jaegeuk/f2fs-tools.git/snapshot/
PKG_MD5SUM:=9db22274264f0c88dbee012f257917b1
PKG_FIXUP:=autoreconf
PKG_BUILD_PARALLEL:=1
PKG_INSTALL:=1
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
include $(INCLUDE_DIR)/package.mk
define Package/f2fs-tools/Default
SECTION:=utils
CATEGORY:=Utilities
SUBMENU:=Filesystem
DEPENDS:=+libf2fs
URL:=http://git.kernel.org/cgit/linux/kernel/git/jaegeuk/f2fs-tools.git
endef
define Package/mkf2fs
$(Package/f2fs-tools/Default)
TITLE:=Utility for creating a Flash-Friendly File System (F2FS)
endef
define Package/f2fsck
$(Package/f2fs-tools/Default)
TITLE:=Utility for checking/repairing a Flash-Friendly File System (F2FS)
endef
define Package/f2fs-tools
$(Package/f2fs-tools/Default)
TITLE:=Tools for Flash-Friendly File System (F2FS)
DEPENDS += +mkf2fs +f2fsck
endef
define Package/libf2fs
SECTION:=libs
CATEGORY:=Libraries
TITLE:=Library for Flash-Friendly File System (F2FS) tools
DEPENDS:=+libuuid
endef
define Package/libf2fs/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) \
$(PKG_INSTALL_DIR)/usr/lib/libf2fs.so* $(1)/usr/lib/
endef
define Package/mkf2fs/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/mkfs.f2fs $(1)/usr/sbin
endef
define Package/f2fsck/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/fsck.f2fs $(1)/usr/sbin
ln -s /usr/sbin/fsck.f2fs $(1)/usr/sbin/defrag.f2fs
ln -s /usr/sbin/fsck.f2fs $(1)/usr/sbin/dump.f2fs
ln -s /usr/sbin/fsck.f2fs $(1)/usr/sbin/sload.f2fs
ln -s /usr/sbin/fsck.f2fs $(1)/usr/sbin/resize.f2fs
endef
define Package/f2fs-tools/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/f2fstat $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/fibmap.f2fs $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/parse.f2fs $(1)/usr/sbin
endef
$(eval $(call BuildPackage,libf2fs))
$(eval $(call BuildPackage,mkf2fs))
$(eval $(call BuildPackage,f2fsck))
$(eval $(call BuildPackage,f2fs-tools))

View File

@ -0,0 +1,19 @@
--- a/configure.ac
+++ b/configure.ac
@@ -20,14 +20,9 @@ AC_DEFINE([F2FS_MINOR_VERSION], m4_bpats
[\([0-9]*\).\([0-9]*\)\(\w\|\W\)*], [\2]),
[Minor version for f2fs-tools])
-AC_CHECK_FILE(.git,
- AC_DEFINE([F2FS_TOOLS_DATE],
- "m4_bpatsubst(f2fs_tools_gitdate,
- [\([0-9-]*\)\(\w\|\W\)*], [\1])",
- [f2fs-tools date based on Git commits]),
- AC_DEFINE([F2FS_TOOLS_DATE],
+AC_DEFINE([F2FS_TOOLS_DATE],
"f2fs_tools_date",
- [f2fs-tools date based on Source releases]))
+ [f2fs-tools date based on Source releases])
AC_CONFIG_SRCDIR([config.h.in])
AC_CONFIG_HEADER([config.h])

View File

@ -0,0 +1,10 @@
--- a/include/f2fs_fs.h
+++ b/include/f2fs_fs.h
@@ -15,6 +15,7 @@
#include <inttypes.h>
#include <linux/types.h>
#include <sys/types.h>
+#include <byteswap.h>
#ifdef HAVE_CONFIG_H
#include <config.h>

View File

@ -0,0 +1,55 @@
--- a/configure.ac
+++ b/configure.ac
@@ -49,7 +49,7 @@ AC_PATH_PROG([LDCONFIG], [ldconfig],
# Checks for libraries.
PKG_CHECK_MODULES([libuuid], [uuid])
-PKG_CHECK_MODULES([libselinux], [libselinux])
+# PKG_CHECK_MODULES([libselinux], [libselinux])
# Checks for header files.
AC_CHECK_HEADERS([linux/fs.h fcntl.h mntent.h stdlib.h string.h \
--- a/fsck/sload.c
+++ b/fsck/sload.c
@@ -16,10 +16,11 @@
#include <libgen.h>
#include <dirent.h>
#include <mntent.h>
+
+#ifdef WITH_ANDROID
#include <selinux/selinux.h>
#include <selinux/label.h>
-#ifdef WITH_ANDROID
#include <selinux/label.h>
#include <private/android_filesystem_config.h>
@@ -110,10 +111,12 @@ static int build_directory(struct f2fs_s
handle_selabel(dentries + i, S_ISDIR(stat.st_mode),
target_out_dir);
+#ifdef WITH_ANDROID
if (sehnd && selabel_lookup(sehnd, &dentries[i].secon,
dentries[i].path, stat.st_mode) < 0)
ERR_MSG("Cannot lookup security context for %s\n",
dentries[i].path);
+#endif
dentries[i].pino = dir_ino;
@@ -218,6 +221,7 @@ int f2fs_sload(struct f2fs_sb_info *sbi,
return ret;
}
+#ifdef WITH_ANDROID
if (sehnd) {
char *secontext = NULL;
@@ -233,6 +237,7 @@ int f2fs_sload(struct f2fs_sb_info *sbi,
}
free(secontext);
}
+#endif
/* update curseg info; can update sit->types */
move_curseg_info(sbi, SM_I(sbi)->main_blkaddr);