Skip to content

Commit

Permalink
Add rsync command/target
Browse files Browse the repository at this point in the history
- Add rsync.make

Signed-off-by: Abhisit Sangjan <[email protected]>
  • Loading branch information
abhisit committed Dec 19, 2024
1 parent 546ba92 commit 766a537
Show file tree
Hide file tree
Showing 6 changed files with 168 additions and 0 deletions.
4 changes: 4 additions & 0 deletions build-config/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -506,6 +506,10 @@ ifeq ($(TCPDUMP_ENABLE),yes)
include make/tcpdump.make
endif

ifeq ($(RSYNC_ENABLE),yes)
include make/rsync.make
endif

include make/images.make
include make/demo.make

Expand Down
4 changes: 4 additions & 0 deletions build-config/make/images.make
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,10 @@ ifeq ($(TCPDUMP_ENABLE),yes)
PACKAGES_INSTALL_STAMPS += $(TCPDUMP_STAMP)
endif

ifeq ($(RSYNC_ENABLE),yes)
PACKAGES_INSTALL_STAMPS += $(RSYNC_STAMP)
endif

ifndef MAKE_CLEAN
SYSROOT_NEW_FILES = $(shell \
test -d $(ROOTCONFDIR)/default && \
Expand Down
130 changes: 130 additions & 0 deletions build-config/make/rsync.make
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
#-------------------------------------------------------------------------------
#
# Copyright (C) 2024 Abhisit Sangjan <[email protected]>
#
# SPDX-License-Identifier: GPL-2.0
#
#-------------------------------------------------------------------------------
#
# This is a makefile fragment that defines the build of rsync
#

include make/openssl.make
include make/popt.make

RSYNC_VERSION = 3.3.0
RSYNC_TARBALL = rsync-$(RSYNC_VERSION).tar.gz
RSYNC_TARBALL_URLS += $(ONIE_MIRROR) \
https://download.samba.org/pub/rsync/src
RSYNC_BUILD_DIR = $(USER_BUILDDIR)/rsync
RSYNC_DIR = $(RSYNC_BUILD_DIR)/rsync-$(RSYNC_VERSION)

RSYNC_SRCPATCHDIR = $(PATCHDIR)/rsync
RSYNC_DOWNLOAD_STAMP = $(DOWNLOADDIR)/rsync-download
RSYNC_SOURCE_STAMP = $(USER_STAMPDIR)/rsync-source
RSYNC_PATCH_STAMP = $(USER_STAMPDIR)/rsync-patch
RSYNC_CONFIGURE_STAMP = $(USER_STAMPDIR)/rsync-configure
RSYNC_BUILD_STAMP = $(USER_STAMPDIR)/rsync-build
RSYNC_INSTALL_STAMP = $(STAMPDIR)/rsync-install
RSYNC_STAMP = $(RSYNC_DOWNLOAD_STAMP) \
$(RSYNC_SOURCE_STAMP) \
$(RSYNC_PATCH_STAMP) \
$(RSYNC_CONFIGURE_STAMP) \
$(RSYNC_BUILD_STAMP) \
$(RSYNC_INSTALL_STAMP)

PHONY += rsync \
rsync-download \
rsync-source \
rsync-patch \
rsync-configure \
rsync-build \
rsync-install \
rsync-clean \
rsync-download-clean

rsync: $(RSYNC_STAMP)

DOWNLOAD += $(RSYNC_DOWNLOAD_STAMP)

rsync-download: $(RSYNC_DOWNLOAD_STAMP)
$(RSYNC_DOWNLOAD_STAMP): $(PROJECT_STAMP)
$(Q) rm -f $@ && eval $(PROFILE_STAMP)
$(Q) echo "==== Getting upstream rsync ===="
$(Q) $(SCRIPTDIR)/fetch-package $(DOWNLOADDIR) $(UPSTREAMDIR) \
$(RSYNC_TARBALL) $(RSYNC_TARBALL_URLS)
$(Q) touch $@

SOURCE += $(RSYNC_SOURCE_STAMP)

rsync-source: $(RSYNC_SOURCE_STAMP)
$(RSYNC_SOURCE_STAMP): $(USER_TREE_STAMP) | $(RSYNC_DOWNLOAD_STAMP)
$(Q) rm -f $@ && eval $(PROFILE_STAMP)
$(Q) echo "==== Extracting upstream rsync ===="
$(Q) $(SCRIPTDIR)/extract-package $(RSYNC_BUILD_DIR) $(DOWNLOADDIR)/$(RSYNC_TARBALL)
$(Q) touch $@

rsync-patch: $(RSYNC_PATCH_STAMP)
$(RSYNC_PATCH_STAMP): $(RSYNC_SRCPATCHDIR)/* $(RSYNC_SOURCE_STAMP)
$(Q) rm -f $@ && eval $(PROFILE_STAMP)
$(Q) echo "==== Patching rsync ===="
$(Q) $(SCRIPTDIR)/apply-patch-series $(RSYNC_SRCPATCHDIR)/series $(RSYNC_DIR)
$(Q) touch $@

ifndef MAKE_CLEAN
RSYNC_NEW_FILES = $( \
shell test -d $(RSYNC_DIR) && \
test -f $(RSYNC_BUILD_STAMP) && \
find -L $(RSYNC_DIR) -newer $(RSYNC_BUILD_STAMP) -type f -print -quit \
)
endif

rsync-configure: $(RSYNC_CONFIGURE_STAMP)
$(RSYNC_CONFIGURE_STAMP): $(RSYNC_PATCH_STAMP) $(OPENSSL_INSTALL_STAMP) $(POPT_INSTALL_STAMP) | $(DEV_SYSROOT_INIT_STAMP)
$(Q) rm -f $@ && eval $(PROFILE_STAMP)
$(Q) echo "==== Configure rsync-$(RSYNC_VERSION) ===="
$(Q) cd $(RSYNC_DIR) && \
$(RSYNC_DIR)/configure \
--host=$(TARGET) \
--prefix=/usr \
--disable-xxhash \
--disable-zstd \
--disable-lz4
$(Q) touch $@

rsync-build: $(RSYNC_BUILD_STAMP)
$(RSYNC_BUILD_STAMP): $(RSYNC_CONFIGURE_STAMP) $(RSYNC_NEW_FILES) | $(DEV_SYSROOT_INIT_STAMP)
$(Q) rm -f $@ && eval $(PROFILE_STAMP)
$(Q) echo "==== Building rsync-$(RSYNC_VERSION) ===="
$(Q) PATH='$(CROSSBIN):$(PATH)' \
$(MAKE) -C $(RSYNC_DIR) \
CC=$(CROSSPREFIX)gcc \
CFLAGS="$(ONIE_CFLAGS) -I $(DEV_SYSROOT)/usr/include"
$(Q) PATH='$(CROSSBIN):$(PATH)' \
$(MAKE) -C $(RSYNC_DIR) install DESTDIR=$(DEV_SYSROOT) \
CC=$(CROSSPREFIX)gcc
$(Q) touch $@

rsync-install: $(RSYNC_INSTALL_STAMP)
$(RSYNC_INSTALL_STAMP): $(SYSROOT_INIT_STAMP) $(RSYNC_BUILD_STAMP)
$(Q) rm -f $@ && eval $(PROFILE_STAMP)
$(Q) echo "==== Installing rsync in $(SYSROOTDIR) ===="
$(Q) mkdir -p $(SYSROOTDIR)/usr/bin/
$(Q) cp -av $(DEV_SYSROOT)/usr/bin/rsync $(SYSROOTDIR)/usr/bin/
$(Q) touch $@

USER_CLEAN += rsync-clean
rsync-clean:
$(Q) rm -rf $(RSYNC_BUILD_DIR)
$(Q) rm -f $(RSYNC_STAMP)
$(Q) echo "=== Finished making $@ for $(PLATFORM)"

DOWNLOAD_CLEAN += rsync-download-clean
rsync-download-clean:
$(Q) rm -f $(RSYNC_DOWNLOAD_STAMP) $(DOWNLOADDIR)/$(RSYNC_TARBALL)

#-------------------------------------------------------------------------------
#
# Local Variables:
# mode: makefile-gmake
# End:
28 changes: 28 additions & 0 deletions patches/rsync/dont-use-innetgr.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
Don't use innetgr()

From: Abhisit Sangjan <[email protected]>


---
access.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/access.c b/access.c
index b6afce3..7929d2c 100644
--- a/access.c
+++ b/access.c
@@ -37,10 +37,10 @@ static int match_hostname(const char **host_ptr, const char *addr, const char *t
if (!host || !*host)
return 0;

-#ifdef HAVE_INNETGR
- if (*tok == '@' && tok[1])
- return innetgr(tok + 1, host, NULL, NULL);
-#endif
+//#ifdef HAVE_INNETGR
+// if (*tok == '@' && tok[1])
+// return innetgr(tok + 1, host, NULL, NULL);
+//#endif

/* First check if the reverse-DNS-determined hostname matches. */
if (iwildmatch(tok, host))
1 change: 1 addition & 0 deletions patches/rsync/series
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
dont-use-innetgr.patch
1 change: 1 addition & 0 deletions upstream/rsync-3.3.0.tar.gz.sha1
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
e03db4fbaaebc5aa4934468cd31d22963b6ff888 rsync-3.3.0.tar.gz

0 comments on commit 766a537

Please sign in to comment.