You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

125 lines
3.4 KiB

  1. #
  2. # Copyright (C) 2007-2014 OpenWrt.org
  3. #
  4. # This is free software, licensed under the GNU General Public License v2.
  5. # See /LICENSE for more information.
  6. #
  7. include $(TOPDIR)/rules.mk
  8. PKG_NAME:=rsync
  9. PKG_VERSION:=3.2.3
  10. PKG_RELEASE:=3
  11. PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
  12. PKG_SOURCE_URL:=https://download.samba.org/pub/rsync/src
  13. PKG_HASH:=becc3c504ceea499f4167a260040ccf4d9f2ef9499ad5683c179a697146ce50e
  14. PKG_MAINTAINER:=Maxim Storchak <m.storchak@gmail.com>
  15. PKG_LICENSE:=GPL-3.0-or-later
  16. PKG_LICENSE_FILES:=COPYING
  17. PKG_CPE_ID:=cpe:/a:rsync:rsync
  18. PKG_INSTALL:=1
  19. PKG_BUILD_PARALLEL:=1
  20. include $(INCLUDE_DIR)/package.mk
  21. include $(INCLUDE_DIR)/nls.mk
  22. define Package/rsync
  23. SECTION:=net
  24. CATEGORY:=Network
  25. SUBMENU:=File Transfer
  26. TITLE:=Fast remote file copy program (like rcp)
  27. DEPENDS:=+libpopt +zlib +RSYNC_xattr:libattr +RSYNC_acl:libacl +RSYNC_zstd:libzstd $(ICONV_DEPENDS)
  28. URL:=https://rsync.samba.org/
  29. MENU:=1
  30. endef
  31. define Package/rsync/config
  32. source "$(SOURCE)/Config.in"
  33. endef
  34. TARGET_CFLAGS += $(if $(CONFIG_IPV6),-DINET6,)
  35. CONFIGURE_ARGS += \
  36. --without-included-popt \
  37. --without-included-zlib \
  38. --disable-debug \
  39. --disable-asm \
  40. --disable-lz4 \
  41. --disable-locale \
  42. --disable-md2man \
  43. --disable-openssl \
  44. --disable-simd \
  45. --disable-xxhash \
  46. --$(if $(CONFIG_BUILD_NLS),en,dis)able-iconv \
  47. --$(if $(CONFIG_BUILD_NLS),en,dis)able-iconv-open \
  48. --$(if $(CONFIG_RSYNC_zstd),en,dis)able-zstd \
  49. --$(if $(CONFIG_RSYNC_xattr),en,dis)able-xattr-support \
  50. --$(if $(CONFIG_RSYNC_acl),en,dis)able-acl-support \
  51. $(if $(CONFIG_IPV6),,--disable-ipv6)
  52. define Package/rsyncd
  53. SECTION:=net
  54. CATEGORY:=Network
  55. SUBMENU:=File Transfer
  56. TITLE:=Rsync daemon
  57. DEPENDS:=+rsync
  58. URL:=https://rsync.samba.org/
  59. endef
  60. define Package/rrsync
  61. SECTION:=net
  62. CATEGORY:=Network
  63. SUBMENU:=File Transfer
  64. TITLE:=Restricted rsync script
  65. DEPENDS:=+rsync +perlbase-file +perl @(PACKAGE_openssh-server||PACKAGE_openssh-server-pam)
  66. URL:=https://www.samba.org/ftp/unpacked/rsync/support/rrsync
  67. endef
  68. define Package/rsync/description
  69. rsync is a program that allows files to be copied to and from remote machines
  70. in much the same way as rcp. It has many more options than rcp, and uses the
  71. rsync remote-update protocol to greatly speed up file transfers when the
  72. destination file already exists.
  73. The rsync remote-update protocol allows rsync to transfer just the differences
  74. between two sets of files across the network link.
  75. endef
  76. define Package/rsync/install
  77. $(INSTALL_DIR) $(1)/usr/bin
  78. $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/$(PKG_NAME) $(1)/usr/bin/
  79. endef
  80. define Package/rsyncd/description
  81. rsyncd is a configuration file and initscript to utilize rsync as a daemon. It
  82. uses the same binary as rsync.
  83. endef
  84. define Package/rsyncd/conffiles
  85. /etc/rsyncd.conf
  86. endef
  87. define Package/rsyncd/install
  88. $(INSTALL_DIR) $(1)/etc
  89. $(INSTALL_DATA) ./files/rsyncd.conf $(1)/etc/
  90. $(INSTALL_DIR) $(1)/etc/init.d
  91. $(INSTALL_BIN) ./files/rsyncd.init $(1)/etc/init.d/rsyncd
  92. endef
  93. define Package/rrsync/description
  94. rrsync is a script which wraps around rsync to restrict its permission to a
  95. particular subdirectory via ~/.ssh/authorized_keys and/or to read-only
  96. or write-only mode
  97. endef
  98. define Package/rrsync/install
  99. $(INSTALL_DIR) $(1)/usr/bin
  100. $(INSTALL_BIN) $(PKG_BUILD_DIR)/support/rrsync $(1)/usr/bin
  101. endef
  102. $(eval $(call BuildPackage,rsync))
  103. $(eval $(call BuildPackage,rsyncd))
  104. $(eval $(call BuildPackage,rrsync))