git: a27dcf53f655 - main - net/unison251: Add new port to preserve current old unison version.
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 13 Mar 2022 21:28:31 UTC
The branch main has been updated by madpilot:
URL: https://cgit.FreeBSD.org/ports/commit/?id=a27dcf53f655fa61691b2e89c7a0fedf437a8f47
commit a27dcf53f655fa61691b2e89c7a0fedf437a8f47
Author: Guido Falsi <madpilot@FreeBSD.org>
AuthorDate: 2022-03-13 21:25:43 +0000
Commit: Guido Falsi <madpilot@FreeBSD.org>
CommitDate: 2022-03-13 21:28:26 +0000
net/unison251: Add new port to preserve current old unison version.
Preserve old unison 2.51 version as net/unison251 before updating
to the latest version.
---
net/Makefile | 1 +
net/unison251/Makefile | 109 +++++++++++++++++++++
net/unison251/distinfo | 3 +
net/unison251/files/patch-Makefile.OCaml | 35 +++++++
net/unison251/files/patch-fsmonitor_linux_Makefile | 20 ++++
net/unison251/files/unison.desktop.in | 12 +++
net/unison251/pkg-descr | 11 +++
net/unison251/pkg-message | 8 ++
net/unison251/pkg-message.nox11 | 7 ++
net/unison251/pkg-plist | 7 ++
10 files changed, 213 insertions(+)
diff --git a/net/Makefile b/net/Makefile
index 9dc4134e4e84..3d762fe2bb20 100644
--- a/net/Makefile
+++ b/net/Makefile
@@ -1532,6 +1532,7 @@
SUBDIR += unison232
SUBDIR += unison240
SUBDIR += unison248
+ SUBDIR += unison251
SUBDIR += unix2tcp
SUBDIR += urelay
SUBDIR += uriparser
diff --git a/net/unison251/Makefile b/net/unison251/Makefile
new file mode 100644
index 000000000000..4d3a66d5b3a4
--- /dev/null
+++ b/net/unison251/Makefile
@@ -0,0 +1,109 @@
+# Created by: Dan Pelleg <dpelleg+unison@cs.cmu.edu>
+
+PORTNAME= unison
+PORTVERSION= 2.51.5
+DISTVERSIONPREFIX= v
+CATEGORIES= net
+
+MAINTAINER= madpilot@FreeBSD.org
+COMMENT= User-level file synchronization tool
+
+LICENSE= GPLv3+
+LICENSE_FILE= ${WRKSRC}/COPYING
+
+FLAVORS= x11 nox11
+FLAVOR?= ${FLAVORS:[1]}
+
+VERSIONSUFFIX= 251
+
+nox11_PKGNAMESUFFIX= ${VERSIONSUFFIX}-nox11
+nox11_CONFLICTS_INSTALL= unison${VERSIONSUFFIX}
+
+x11_PKGNAMESUFFIX= ${VERSIONSUFFIX}
+x11_CONFLICTS_INSTALL= unison${VERSIONSUFFIX}-nox11
+x11_BUILD_DEPENDS= lablgtk2:x11-toolkits/ocaml-lablgtk2 \
+ icotool:graphics/icoutils
+x11_LIB_DEPENDS= libfontconfig.so:x11-fonts/fontconfig \
+ libfreetype.so:print/freetype2 \
+ libharfbuzz.so:print/harfbuzz
+x11_RUN_DEPENDS= lablgtk2:x11-toolkits/ocaml-lablgtk2
+
+PLIST_SUB= PORTVERSION=${PORTVERSION} VERSIONSUFFIX=${VERSIONSUFFIX}
+USES= gmake localbase
+USE_OCAML= yes
+WRKSRC_SUBDIR= src
+NO_OCAML_RUNDEPENDS=yes
+CONFLICTS= unison-devel
+MAKE_ENV= CLIBS="${LIBS:S/^-/-ccopt -/}" COFLAGS="${CFLAGS:C/ *(-[^ ]*) */ -ccopt \"\1 \"/gW}"
+ALL_TARGET= unison all
+
+USE_GITHUB= yes
+GH_ACCOUNT= bcpierce00
+
+DOCS= NEWS README
+
+OPTIONS_DEFINE= DOCS FSMONITOR
+OPTIONS_DEFAULT?= FSMONITOR
+
+FSMONITOR_DESC= Compile and install fsmonitor plugin
+
+OPTIONS_SUB= YES
+
+FSMONITOR_LIB_DEPENDS= libinotify.so:devel/libinotify
+
+.if ${FLAVOR} == nox11
+MAKE_ARGS= UISTYLE=text
+PKGMESSAGE= ${PKGDIR}/pkg-message.nox11
+PLIST_SUB+= X11="@comment "
+.else
+MAKE_ARGS= UISTYLE=gtk2
+SUB_FILES= ${PORTNAME}.desktop
+USE_GNOME+= atk cairo gdkpixbuf2 glib20 gtk20 pango
+USES+= gettext-runtime gnome
+PLIST_SUB+= X11=""
+.endif
+
+post-patch-FSMONITOR-off:
+ @${REINPLACE_CMD} -e 's/-include fsmonitor/#&/' \
+ ${WRKSRC}/Makefile.OCaml
+
+post-patch-FSMONITOR-on:
+ @${REINPLACE_CMD} \
+ -e '/let suffix = if Util.osType/s/else "" in/else "${VERSIONSUFFIX}" in/' \
+ ${WRKSRC}/fswatch.ml
+
+post-patch:
+.if ${FLAVOR} == nox11
+ @${REINPLACE_CMD} -e 's/CFLAGS/COFLAGS/g' \
+ ${WRKSRC}/Makefile.OCaml ${WRKSRC}/fsmonitor/linux/Makefile
+.else
+ @${REINPLACE_CMD} -Ee 's@(\+|/)(lablgtk2)@\1site-lib/\2@' \
+ -e 's/CFLAGS/COFLAGS/g' \
+ ${WRKSRC}/Makefile.OCaml ${WRKSRC}/fsmonitor/linux/Makefile
+.endif
+
+post-build:
+ (cd ${WRKSRC} && HOME=${WRKSRC} ./unison -selftest -ui text -batch)
+.if ${FLAVOR} == x11
+ @${ECHO} Building text-only version
+ @${ECHO} ${WRKSRC}
+ ${SETENV} ${MAKE_ENV} ${MAKE_CMD} -C ${WRKSRC} UISTYLE=text NAME=unison-text
+ @cd ${WRKSRC}/win32rc && ${LOCALBASE}/bin/icotool -x U.ico
+.endif
+
+do-install:
+ ${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} ${STAGEDIR}${PREFIX}/bin/${PORTNAME}${VERSIONSUFFIX}
+.if ${FLAVOR} == x11
+ ${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME}-text ${STAGEDIR}${PREFIX}/bin/${PORTNAME}${VERSIONSUFFIX}-text
+ ${INSTALL_DATA} ${WRKDIR}/${PORTNAME}.desktop ${STAGEDIR}${DESKTOPDIR}/${PORTNAME}${VERSIONSUFFIX}.desktop
+ ${INSTALL_DATA} ${WRKSRC}/win32rc/U_4_48x48x32.png ${STAGEDIR}${PREFIX}/share/pixmaps/${PORTNAME}${VERSIONSUFFIX}.png
+.endif
+
+do-install-DOCS-on:
+ @${MKDIR} ${STAGEDIR}${DOCSDIR}
+ cd ${WRKSRC} && ${INSTALL_DATA} ${DOCS} ${STAGEDIR}${DOCSDIR}
+
+do-install-FSMONITOR-on:
+ ${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME}-fsmonitor ${STAGEDIR}${PREFIX}/bin/${PORTNAME}-fsmonitor${VERSIONSUFFIX}
+
+.include <bsd.port.mk>
diff --git a/net/unison251/distinfo b/net/unison251/distinfo
new file mode 100644
index 000000000000..2216a412a298
--- /dev/null
+++ b/net/unison251/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1639862759
+SHA256 (bcpierce00-unison-v2.51.5_GH0.tar.gz) = 7e876371992ebf890b60f32df880a98a75fe8c47c06b7b2ae2ad36be48013e83
+SIZE (bcpierce00-unison-v2.51.5_GH0.tar.gz) = 1385407
diff --git a/net/unison251/files/patch-Makefile.OCaml b/net/unison251/files/patch-Makefile.OCaml
new file mode 100644
index 000000000000..45859e189c5a
--- /dev/null
+++ b/net/unison251/files/patch-Makefile.OCaml
@@ -0,0 +1,35 @@
+--- Makefile.OCaml.orig 2021-06-23 14:30:30 UTC
++++ Makefile.OCaml
+@@ -34,7 +34,11 @@ ifeq ($(shell uname),OpenBSD)
+ else
+ ifeq ($(shell uname),NetBSD)
+ OSARCH=NetBSD
++else
++ifeq ($(shell uname),FreeBSD)
++ OSARCH=FreeBSD
+ endif
++endif
+ ifeq ($(shell uname),Linux)
+ OSARCH=Linux
+ endif
+@@ -290,6 +294,11 @@ ifeq ($(OSARCH),Linux)
+ INCLFLAGS+=-I fsmonitor -I fsmonitor/linux
+ endif
+
++ifeq ($(OSARCH),FreeBSD)
++-include fsmonitor/linux/Makefile src/fsmonitor/linux/Makefile
++INCLFLAGS+=-I fsmonitor -I fsmonitor/linux
++endif
++
+ ifeq ($(OSARCH),solaris)
+ -include fsmonitor/solaris/Makefile src/fsmonitor/solaris/Makefile
+ INCLFLAGS+=-I fsmonitor -I fsmonitor/solaris
+@@ -432,7 +441,7 @@ fswatch.cmi : ubase/prefs.cmi
+
+ %.o %.obj: %.c
+ @echo "$(CAMLC): $< ---> $@"
+- $(CAMLC) $(CAMLFLAGS) -ccopt $(OUTPUT_SEL)$(CWD)/$@ -c $(CWD)/$<
++ $(CAMLC) $(CAMLFLAGS) -ccopt $(OUTPUT_SEL)$(CWD)/$@ -c $(CFLAGS) $(CWD)/$<
+
+ $(NAME)$(EXEC_EXT): $(CAMLOBJS) $(COBJS)
+ @echo Linking $@
diff --git a/net/unison251/files/patch-fsmonitor_linux_Makefile b/net/unison251/files/patch-fsmonitor_linux_Makefile
new file mode 100644
index 000000000000..820041472d23
--- /dev/null
+++ b/net/unison251/files/patch-fsmonitor_linux_Makefile
@@ -0,0 +1,20 @@
+--- fsmonitor/linux/Makefile.orig 2017-03-23 16:47:46 UTC
++++ fsmonitor/linux/Makefile
+@@ -18,6 +18,10 @@ else
+ FSMCAMLLIBS=$(FSMOCAMLLIBS)
+ endif
+
++ifeq ($(OSARCH),FreeBSD)
++ CLIBS+=-cclib -linotify
++endif
++
+ buildexecutable:: $(FSMONITOR)$(EXEC_EXT)
+
+ $(FSMONITOR)$(EXEC_EXT): $(FSMCAMLOBJS) $(FSMCOBJS)
+@@ -26,4 +30,4 @@ $(FSMONITOR)$(EXEC_EXT): $(FSMCAMLOBJS) $(FSMCOBJS)
+
+ clean::
+ rm -f $(DIR)/*.cm[iox] $(DIR)/*.o $(DIR)/*~
+- rm -f $(FSMONITOR)$(EXEC_EXT)
+\ No newline at end of file
++ rm -f $(FSMONITOR)$(EXEC_EXT)
diff --git a/net/unison251/files/unison.desktop.in b/net/unison251/files/unison.desktop.in
new file mode 100644
index 000000000000..789ccaa366b6
--- /dev/null
+++ b/net/unison251/files/unison.desktop.in
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=Unison
+GenericName=File-synchronization tool
+Type=Application
+Terminal=false
+StartupNotify=true
+Categories=GTK;Utility;
+Exec=unison
+Icon=unison.png
+Comment=Synchronize files (directories) over different disks (hosts)
+Comment[ru]=Синхронизация файлов (каталогов) на нескольких дисках (компьютерах)
diff --git a/net/unison251/pkg-descr b/net/unison251/pkg-descr
new file mode 100644
index 000000000000..0fdae72e6019
--- /dev/null
+++ b/net/unison251/pkg-descr
@@ -0,0 +1,11 @@
+Unison is a file-synchronization tool for Unix and Windows. It allows two
+replicas of a collection of files and directories to be stored on different
+hosts (or different disks on the same host), modified separately, and then
+brought up to date by propagating the changes in each replica to the other.
+
+Unison shares a number of features with tools such as configuration
+management packages (CVS, PRCS, etc.) distributed filesystems (Coda, etc.)
+uni-directional mirroring utilities (rsync, etc.) and other synchronizers
+(Intellisync, Reconcile, etc).
+
+WWW: https://www.cis.upenn.edu/~bcpierce/unison/
diff --git a/net/unison251/pkg-message b/net/unison251/pkg-message
new file mode 100644
index 000000000000..1795b612e0a8
--- /dev/null
+++ b/net/unison251/pkg-message
@@ -0,0 +1,8 @@
+[
+{ type: install
+ message: <<EOM
+Together with a gtk-enabled version, a text-only unison-text binary
+is installed as it depends on a smaller number of libraries.
+EOM
+}
+]
diff --git a/net/unison251/pkg-message.nox11 b/net/unison251/pkg-message.nox11
new file mode 100644
index 000000000000..31b179babd46
--- /dev/null
+++ b/net/unison251/pkg-message.nox11
@@ -0,0 +1,7 @@
+[
+{ type: install
+ message: <<EOM
+A text-only unison binary is installed.
+EOM
+}
+]
diff --git a/net/unison251/pkg-plist b/net/unison251/pkg-plist
new file mode 100644
index 000000000000..18aa92847fa3
--- /dev/null
+++ b/net/unison251/pkg-plist
@@ -0,0 +1,7 @@
+bin/unison%%VERSIONSUFFIX%%
+%%FSMONITOR%%bin/unison-fsmonitor%%VERSIONSUFFIX%%
+%%X11%%share/applications/unison%%VERSIONSUFFIX%%.desktop
+%%X11%%bin/unison%%VERSIONSUFFIX%%-text
+%%X11%%share/pixmaps/unison%%VERSIONSUFFIX%%.png
+%%PORTDOCS%%%%DOCSDIR%%/NEWS
+%%PORTDOCS%%%%DOCSDIR%%/README