diff --git a/ports/ports/e2fsprogs.inc b/ports/ports/e2fsprogs.inc new file mode 100644 index 000000000..35fba0dbf --- /dev/null +++ b/ports/ports/e2fsprogs.inc @@ -0,0 +1,3 @@ +E2FSPROGS_BRANCH = v1.42.9 +E2FSPROGS = e2fsprogs-$(E2FSPROGS_BRANCH) +E2FSPROGS_URL = https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git diff --git a/ports/ports/e2fsprogs.mk b/ports/ports/e2fsprogs.mk new file mode 100644 index 000000000..20c752f8a --- /dev/null +++ b/ports/ports/e2fsprogs.mk @@ -0,0 +1,23 @@ +include ports/e2fsprogs.inc + +# +# Check for tools +# +$(call check_tool,git) + +# +# Interface to top-level prepare Makefile +# +PORTS += $(E2FSPROGS) + +prepare:: $(CONTRIB_DIR)/$(E2FSPROGS) + +# +# Port-specific local rules +# +$(CONTRIB_DIR)/$(E2FSPROGS): + $(VERBOSE)git clone $(E2FSPROGS_URL) $(CONTRIB_DIR)/$(E2FSPROGS) && \ + cd $(CONTRIB_DIR)/$(E2FSPROGS) && \ + git checkout $(E2FSPROGS_BRANCH) + $(VERBOSE)for i in src/noux-pkg/e2fsprogs/patches/*.patch; do \ + patch -N -p0 < $$i; done || true diff --git a/ports/src/noux-pkg/e2fsprogs/patches/MCONFIG.in.patch b/ports/src/noux-pkg/e2fsprogs/patches/MCONFIG.in.patch new file mode 100644 index 000000000..190862bdf --- /dev/null +++ b/ports/src/noux-pkg/e2fsprogs/patches/MCONFIG.in.patch @@ -0,0 +1,11 @@ +--- contrib/e2fsprogs-v1.42.9/MCONFIG.in.orig 2014-01-07 12:04:39.022395752 +0100 ++++ contrib/e2fsprogs-v1.42.9/MCONFIG.in 2014-01-07 12:08:02.010390431 +0100 +@@ -62,6 +62,8 @@ + @ifGNUmake@ endif + @ifGNUmake@ endif + ++CHECK_CMD = true ++ + @ifNotGNUmake@ CHECK_CMD=@true + + CC = @CC@ diff --git a/ports/src/noux-pkg/e2fsprogs/patches/Makefile.in.patch b/ports/src/noux-pkg/e2fsprogs/patches/Makefile.in.patch new file mode 100644 index 000000000..85c199ac3 --- /dev/null +++ b/ports/src/noux-pkg/e2fsprogs/patches/Makefile.in.patch @@ -0,0 +1,66 @@ +--- contrib/e2fsprogs-v1.42.9/misc/Makefile.in.orig 2014-01-07 15:22:06.554085193 +0100 ++++ contrib/e2fsprogs-v1.42.9/misc/Makefile.in 2014-01-07 14:13:32.026193047 +0100 +@@ -84,7 +84,7 @@ + $(srcdir)/ismounted.c $(srcdir)/../e2fsck/profile.c \ + $(srcdir)/e2undo.c $(srcdir)/e2freefrag.c + +-LIBS= $(LIBEXT2FS) $(LIBCOM_ERR) ++LIBS= $(LIBEXT2FS) $(LIBCOM_ERR) @LIBS@ + DEPLIBS= $(LIBEXT2FS) $(DEPLIBCOM_ERR) + PROFILED_LIBS= $(PROFILED_LIBEXT2FS) $(PROFILED_LIBCOM_ERR) + PROFILED_DEPLIBS= $(PROFILED_LIBEXT2FS) $(DEPPROFILED_LIBCOM_ERR) +--- contrib/e2fsprogs-v1.42.9/ext2ed/Makefile.in.orig 2014-01-07 15:24:29.566081444 +0100 ++++ contrib/e2fsprogs-v1.42.9/ext2ed/Makefile.in 2014-01-07 14:13:58.522192352 +0100 +@@ -16,7 +16,7 @@ + + DOC_DIR = $datadir/doc/ext2ed + +-LIBS = -lncurses $(LIBEXT2FS) ++LIBS = -lncurses $(LIBEXT2FS) @LIBS@ + + SRCS= $(srcdir)/main.c $(srcdir)/init.c $(srcdir)/general_com.c \ + $(srcdir)/inode_com.c $(srcdir)/dir_com.c $(srcdir)/super_com.c \ +--- contrib/e2fsprogs-v1.42.9/intl/Makefile.in.orig 2014-01-07 15:25:01.830080600 +0100 ++++ contrib/e2fsprogs-v1.42.9/intl/Makefile.in 2014-01-07 12:29:48.842356174 +0100 +@@ -191,7 +191,7 @@ + .c.o: + $(E) " CC $<" + $(Q) $(COMPILE) $< +- $(Q) $(CHECK_CMD) $(ALL_CFLAGS) $< ++ #$(Q) $(CHECK_CMD) $(ALL_CFLAGS) $< + + .y.c: + $(YACC) $(YFLAGS) --output $@ $< +--- contrib/e2fsprogs-v1.42.9/e2fsck/Makefile.in.orig 2014-01-07 15:26:48.000000000 +0100 ++++ contrib/e2fsprogs-v1.42.9/e2fsck/Makefile.in 2014-01-07 14:14:31.250191497 +0100 +@@ -16,7 +16,7 @@ + FMANPAGES= e2fsck.conf.5 + + LIBS= $(LIBQUOTA) $(LIBEXT2FS) $(LIBCOM_ERR) $(LIBBLKID) $(LIBUUID) \ +- $(LIBINTL) $(LIBE2P) ++ $(LIBINTL) $(LIBE2P) @LIBS@ + DEPLIBS= $(DEPLIBQUOTA) $(LIBEXT2FS) $(DEPLIBCOM_ERR) $(DEPLIBBLKID) \ + $(DEPLIBUUID) $(DEPLIBE2P) + +--- contrib/e2fsprogs-v1.42.9/resize/Makefile.in.orig 2014-01-07 15:27:41.000000000 +0100 ++++ contrib/e2fsprogs-v1.42.9/resize/Makefile.in 2014-01-07 14:14:39.522191277 +0100 +@@ -28,7 +28,7 @@ + $(srcdir)/resource_track.c \ + $(srcdir)/sim_progress.c + +-LIBS= $(LIBE2P) $(LIBEXT2FS) $(LIBCOM_ERR) $(LIBINTL) ++LIBS= $(LIBE2P) $(LIBEXT2FS) $(LIBCOM_ERR) $(LIBINTL) @LIBS@ + DEPLIBS= $(LIBE2P) $(LIBEXT2FS) $(DEPLIBCOM_ERR) + + STATIC_LIBS= $(STATIC_LIBE2P) $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR) \ +--- contrib/e2fsprogs-v1.42.9/debugfs/Makefile.in.orig 2014-01-07 15:28:14.000000000 +0100 ++++ contrib/e2fsprogs-v1.42.9/debugfs/Makefile.in 2014-01-07 14:14:47.890191058 +0100 +@@ -31,7 +31,7 @@ + $(srcdir)/filefrag.c $(srcdir)/extent_inode.c $(srcdir)/zap.c + + LIBS= $(LIBEXT2FS) $(LIBE2P) $(LIBSS) $(LIBCOM_ERR) $(LIBBLKID) \ +- $(LIBUUID) ++ $(LIBUUID) @LIBS@ + DEPLIBS= $(LIBEXT2FS) $(LIBE2P) $(DEPLIBSS) $(DEPLIBCOM_ERR) \ + $(DEPLIBBLKID) $(DEPLIBUUID) + diff --git a/ports/src/noux-pkg/e2fsprogs/patches/Makefile.library.patch b/ports/src/noux-pkg/e2fsprogs/patches/Makefile.library.patch new file mode 100644 index 000000000..d521d7067 --- /dev/null +++ b/ports/src/noux-pkg/e2fsprogs/patches/Makefile.library.patch @@ -0,0 +1,11 @@ +--- contrib/e2fsprogs-v1.42.9/lib/Makefile.library.orig 2014-01-07 12:22:50.526367140 +0100 ++++ contrib/e2fsprogs-v1.42.9/lib/Makefile.library 2014-01-07 12:24:59.142363769 +0100 +@@ -2,6 +2,8 @@ + + install-shlibs:: + ++install-shlibs-strip:: ++ + uninstall-shlibs:: + + real-subdirs:: diff --git a/ports/src/noux-pkg/e2fsprogs/patches/README b/ports/src/noux-pkg/e2fsprogs/patches/README new file mode 100644 index 000000000..2c6c0c5a4 --- /dev/null +++ b/ports/src/noux-pkg/e2fsprogs/patches/README @@ -0,0 +1,5 @@ +These patches mainly circumvent shortcomings in the original autotool +buildsystem, e.g. missing @LIBS@ definitions, which lead to non-working +binaries on Genode because the actual start-up code is missing. Furthmore, +TLS support is disabled by force because we currently do not need it and +it would require us to link against libgcc_eh.a (__emutls_* is needed). diff --git a/ports/src/noux-pkg/e2fsprogs/patches/configure.patch b/ports/src/noux-pkg/e2fsprogs/patches/configure.patch new file mode 100644 index 000000000..6f902ac8e --- /dev/null +++ b/ports/src/noux-pkg/e2fsprogs/patches/configure.patch @@ -0,0 +1,38 @@ +--- contrib/e2fsprogs-v1.42.9/configure.orig 2014-01-07 14:59:39.000000000 +0100 ++++ contrib/e2fsprogs-v1.42.9/configure 2014-01-07 15:59:14.598026789 +0100 +@@ -4225,10 +4225,10 @@ + ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' + ac_compiler_gnu=$ac_cv_c_compiler_gnu + +-if test "$GCC" = yes; then +- RDYNAMIC="-rdynamic" +- +-fi ++#if test "$GCC" = yes; then ++# RDYNAMIC="-rdynamic" ++# ++#fi + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -5526,6 +5526,9 @@ + + fi + ++# disable TLS by force ++try_tls="no" ++ + if test "$try_tls" = "yes" + then + +@@ -11349,7 +11352,9 @@ + $as_echo "Setting root_sysconfdir to $root_sysconfdir" >&6; } + fi + +- ++# force sbindir ++root_sbindir='/bin' ++sbindir='/bin' + + + diff --git a/ports/src/noux-pkg/e2fsprogs/target.mk b/ports/src/noux-pkg/e2fsprogs/target.mk new file mode 100644 index 000000000..832e1db91 --- /dev/null +++ b/ports/src/noux-pkg/e2fsprogs/target.mk @@ -0,0 +1,11 @@ +NOUX_CONFIGURE_FLAGS = --disable-tls --enable-fsck + +# NOTE: --sbindir=/bin is broken and the easist fix is patching configure +# directly and therefore is not used. + +# +# Needed for +# +NOUX_CFLAGS += -D__BSD_VISIBLE + +include $(REP_DIR)/mk/noux.mk