Download raw body.
UPDATE net/unison-2.53.4
On Tue 20/02/2024 11:30, Jeremie Courreges-Anglas wrote:
> On Mon, Feb 19 2024, Bjorn Ketelaars <bket@openbsd.org> wrote:
> > Diff below updates net/unison to 2.53.4, which includes bug fixes, minor
> > improvements and clean-ups. Release notes:
> > https://github.com/bcpierce00/unison/releases/tag/v2.53.4.
> >
> > Change in the build system is that the gtk3 flavor of unison is
> > renamed to unison-gui. This is undone in the diff below by setting the
> > correct binary and renaming it in the do-install phase. I'm not sure
> > if this is the way to go, or if there is a better way to do this.
>
> If lablgtk3 is installed then both unison and unison-gui are built, with
> or without FLAVOR=no_x11. The problem is you're *adding* to MAKE_FLAGS
> instead of *setting* ALL_TARGET=gui/tui.
>
> Now that the build system lets you build both, it would be interesting
> to use MULTI_PACKAGES, with a -gui subpackage shipping just the
> unison-gui program and carrying the gtk3 dep. With proper @pkgpaths the
> upgrade path would be mostly transparent for users (gotta retrain their
> fingers to type unison-gui when needed).
>
> Additionally no_x11 could stay as a PSEUDO_FLAVOR so that people can
> build and install the tui program/package without having lablgtk3
> installed.
New diff, which addresses Jeremie's feedback:
- uses MULTI_PACKAGES (with a -x11 subpackage);
- no_x11 as PSEUDO_FLAVOR;
- updated @pkgpath markers;
- added quirks entry;
- updated net/Makefile.
With this users are able to use `pkg_add -u` and:
- update unison-2.53.3 to unison-x11-2.53.4 (pulls in unison-2.53.4 as
RDEP);
- update unison-no_x11-2.53.3 to unison-2.53.4.
Comments/OK?
diff --git devel/quirks/Makefile devel/quirks/Makefile
index b52a6ca153c..29352025828 100644
--- devel/quirks/Makefile
+++ devel/quirks/Makefile
@@ -3,7 +3,7 @@ CATEGORIES = devel databases
DISTFILES =
# API.rev
-PKGNAME = quirks-7.6
+PKGNAME = quirks-7.7
PKG_ARCH = *
MAINTAINER = Marc Espie <espie@openbsd.org>
diff --git devel/quirks/files/Quirks.pm devel/quirks/files/Quirks.pm
index a5641d20104..e0a8ce89fc4 100644
--- devel/quirks/files/Quirks.pm
+++ devel/quirks/files/Quirks.pm
@@ -809,6 +809,8 @@ my $stem_extensions = {
'py-analyzemft' => 'py3-analyzemft',
'llama' => 'walk',
'py-setuptools-git' => 'py3-setuptools-git',
+ 'unison' => 'unison-x11',
+ 'unison-no_x11' => 'unison',
};
my $obsolete_reason = {};
diff --git net/Makefile net/Makefile
index eaee3c5bf66..370c6a22f70 100644
--- net/Makefile
+++ net/Makefile
@@ -749,7 +749,6 @@
SUBDIR += uhttpmock
SUBDIR += unifi
SUBDIR += unison
- SUBDIR += unison,no_x11
SUBDIR += unworkable
SUBDIR += usockets
SUBDIR += utox
diff --git net/unison/Makefile net/unison/Makefile
index d240adb9879..da4c1fef4e1 100644
--- net/unison/Makefile
+++ net/unison/Makefile
@@ -2,12 +2,12 @@
USE_NOEXECONLY = yes
.endif
-COMMENT = multi-platform file synchronization tool
+COMMENT-main = multi-platform file synchronization tool
+COMMENT-x11 = gtk3 based interface for unison
GH_ACCOUNT = bcpierce00
GH_PROJECT = unison
-GH_TAGNAME = v2.53.3
-REVISION = 2
+GH_TAGNAME = v2.53.4
CATEGORIES = net
@@ -16,47 +16,46 @@ MAINTAINER = Bjorn Ketelaars <bket@openbsd.org>
# GPLv3
PERMIT_PACKAGE = Yes
-WANTLIB = c m util
+WANTLIB = c m pthread util
+WANTLIB-x11 = ${WANTLIB} atk-1.0 cairo cairo-gobject fontconfig freetype
+WANTLIB-x11 += gdk-3 gdk_pixbuf-2.0 gio-2.0 glib-2.0 gobject-2.0 gtk-3
+WANTLIB-x11 += harfbuzz intl pango-1.0 pangocairo-1.0
MODULES = lang/ocaml
MODOCAML_RUNDEP = if-not-native
-USE_GMAKE = Yes
+LIB_DEPENDS-x11 = x11/gtk+3
+RUN_DEPENDS-x11 = ${BASE_PKGPATH},-main=${GH_TAGNAME:S/v//} \
+ devel/desktop-file-utils
# CFLAGS _must_ be empty. This is an OCaml compiler.
MAKE_FLAGS = NATIVE=${MODOCAML_NATIVE:S/Yes/true/:S/No/false/} \
OCAMLOPT=ocamlopt.opt \
CFLAGS=
-FLAVORS = no_x11
-FLAVOR ?=
-
-.if ${FLAVOR:Mno_x11}
-MAKE_FLAGS += UISTYLE=text
-.else
-WANTLIB += atk-1.0 cairo cairo-gobject fontconfig freetype gdk-3
-WANTLIB += gdk_pixbuf-2.0 gio-2.0 glib-2.0 gobject-2.0 gtk-3 harfbuzz
-WANTLIB += intl pango-1.0 pangocairo-1.0
-BUILD_DEPENDS += x11/lablgtk3
-LIB_DEPENDS += x11/gtk+3
-RUN_DEPENDS += devel/desktop-file-utils
-MAKE_FLAGS += UISTYLE=gtk3
-.endif
+USE_GMAKE = Yes
-FLAVOR_COMMA = ${FLAVOR_EXT:S/-/,/g}
-SUBST_VARS = FLAVOR_COMMA
+MULTI_PACKAGES = -main -x11
+PSEUDO_FLAVORS = no_x11
+FLAVOR ?=
PORTHOME = ${WRKDIR}
DOCS = NEWS.md README.md
-# Avoid the nightmare of their Makefile install target.
+.include <bsd.port.arch.mk>
+
+.if ${BUILD_PACKAGES:M-x11}
+BUILD_DEPENDS = x11/lablgtk3
+.endif
+
# Do not use INSTALL_PROGRAM, as the bytecode version must not be stripped!
do-install:
${INSTALL_SCRIPT} ${WRKSRC}/src/unison ${PREFIX}/bin
${INSTALL_MAN} ${WRKSRC}/man/unison.1 ${PREFIX}/man/man1
${INSTALL_DATA_DIR} ${PREFIX}/share/doc/unison
@cd ${WRKSRC} && ${INSTALL_DATA} ${DOCS} ${PREFIX}/share/doc/unison
-.if !${FLAVOR:Mno_x11}
+.if ${BUILD_PACKAGES:M-x11}
+ ${INSTALL_SCRIPT} ${WRKSRC}/src/unison-gui ${PREFIX}/bin
${INSTALL_DATA_DIR} ${PREFIX}/share/pixmaps
${INSTALL_DATA} ${WRKSRC}/icons/U.svg \
${PREFIX}/share/pixmaps/unison.svg
diff --git net/unison/distinfo net/unison/distinfo
index df466e43a6d..aaf7e3e2284 100644
--- net/unison/distinfo
+++ net/unison/distinfo
@@ -1,2 +1,2 @@
-SHA256 (unison-2.53.3.tar.gz) = quoE/FvHbc/oYnaDyWWe5MGU1PmSzIqqFbuygg/I3kY=
-SIZE (unison-2.53.3.tar.gz) = 1415490
+SHA256 (unison-2.53.4.tar.gz) = 0Z5CkwE1gdvE0Umu+Js0x2Ih78vYc8eqUZPeSJrduFo=
+SIZE (unison-2.53.4.tar.gz) = 1407429
diff --git net/unison/files/unison.desktop net/unison/files/unison.desktop
index af64ef6617c..f091224ffee 100644
--- net/unison/files/unison.desktop
+++ net/unison/files/unison.desktop
@@ -2,7 +2,7 @@
Encoding=UTF-8
Name=unison
Comment=File synchronisation tool for X11
-TryExec=unison
+TryExec=unison-gui
Exec=unison
Terminal=false
Type=Application
diff --git net/unison/pkg/DESCR net/unison/pkg/DESCR
deleted file mode 100644
index d55c9d37b4d..00000000000
--- net/unison/pkg/DESCR
+++ /dev/null
@@ -1,8 +0,0 @@
-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.
-
-Flavors:
- no_x11 - build without X support
diff --git net/unison/pkg/DESCR-main net/unison/pkg/DESCR-main
new file mode 100644
index 00000000000..d55c9d37b4d
--- /dev/null
+++ net/unison/pkg/DESCR-main
@@ -0,0 +1,8 @@
+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.
+
+Flavors:
+ no_x11 - build without X support
diff --git net/unison/pkg/DESCR-x11 net/unison/pkg/DESCR-x11
new file mode 100644
index 00000000000..1fdf8f99d18
--- /dev/null
+++ net/unison/pkg/DESCR-x11
@@ -0,0 +1 @@
+GTK3 based interface for unison.
diff --git net/unison/pkg/PFRAG.no-no_x11 net/unison/pkg/PFRAG.no-no_x11
deleted file mode 100644
index a8d2b57156d..00000000000
--- net/unison/pkg/PFRAG.no-no_x11
+++ /dev/null
@@ -1,4 +0,0 @@
-share/applications/unison.desktop
-share/pixmaps/
-share/pixmaps/unison.svg
-@tag update-desktop-database
diff --git net/unison/pkg/PLIST net/unison/pkg/PLIST
deleted file mode 100644
index 4b3d8d144fa..00000000000
--- net/unison/pkg/PLIST
+++ /dev/null
@@ -1,13 +0,0 @@
-@pkgpath net/unison/2.4x${FLAVOR_COMMA}
-@pkgpath net/unison/2.5x${FLAVOR_COMMA}
-@pkgpath net/unison/snapshot${FLAVOR_COMMA}
-@pkgpath net/unison/stable${FLAVOR_COMMA}
-@bin bin/unison
-lib/ocaml/
-lib/ocaml/stublibs/
-@man man/man1/unison.1
-share/doc/pkg-readmes/${PKGSTEM}
-share/doc/unison/
-share/doc/unison/NEWS.md
-share/doc/unison/README.md
-!%%no_x11%%
diff --git net/unison/pkg/PLIST-main net/unison/pkg/PLIST-main
new file mode 100644
index 00000000000..eb6c049b92d
--- /dev/null
+++ net/unison/pkg/PLIST-main
@@ -0,0 +1,12 @@
+@pkgpath net/unison/2.4x,no_x11
+@pkgpath net/unison/2.5x,no_x11
+@pkgpath net/unison/snapshot,no_x11
+@pkgpath net/unison/stable,no_x11
+@pkgpath net/unison,no_x11
+@bin bin/unison
+@man man/man1/unison.1
+share/applications/
+share/doc/pkg-readmes/${PKGSTEM}
+share/doc/unison/
+share/doc/unison/NEWS.md
+share/doc/unison/README.md
diff --git net/unison/pkg/PLIST-x11 net/unison/pkg/PLIST-x11
new file mode 100644
index 00000000000..9a111597b31
--- /dev/null
+++ net/unison/pkg/PLIST-x11
@@ -0,0 +1,10 @@
+@pkgpath net/unison/2.4x
+@pkgpath net/unison/2.5x
+@pkgpath net/unison/snapshot
+@pkgpath net/unison/stable
+@pkgpath net/unison
+@bin bin/unison-gui
+share/applications/unison.desktop
+share/pixmaps/
+share/pixmaps/unison.svg
+@tag update-desktop-database
diff --git net/unison/pkg/README net/unison/pkg/README
deleted file mode 100644
index 486568a163a..00000000000
--- net/unison/pkg/README
+++ /dev/null
@@ -1,28 +0,0 @@
-+-----------------------------------------------------------------------
-| Running ${PKGSTEM} on OpenBSD
-+-----------------------------------------------------------------------
-
-This version of unison is compatible with:
-- unison 2.52 or newer. You do not have to pay any attention to OCaml
- compiler versions.
-- unison 2.51 if both versions are compiled with same OCaml compiler
- version.
-- unison 2.48 if both versions are compiled with same OCaml compiler
- version.
-
-It is possible to use the OPAM OCaml package manager to build unison
-with the same version of the OCaml compiler on all machines:
-
-doas pkg_add opam
-export OPAMROOT=~/opam_unison
-opam init --no-setup --compiler ocaml-base-compiler.4.09.0
-opam install unison lablgtk # To build without the gui, remove lablgtk
-$(opam var bin)/unison
-
-Common issue
-=============
-Unison sometimes reports chown() failures that are actually failures to
-change group ownership. This can occur when a user does not belong to
-the specified group and is the owner of the file, or is not the
-superuser. Issue can be addressed by setting the option 'group' to
-'false'.
diff --git net/unison/pkg/README-main net/unison/pkg/README-main
new file mode 100644
index 00000000000..486568a163a
--- /dev/null
+++ net/unison/pkg/README-main
@@ -0,0 +1,28 @@
++-----------------------------------------------------------------------
+| Running ${PKGSTEM} on OpenBSD
++-----------------------------------------------------------------------
+
+This version of unison is compatible with:
+- unison 2.52 or newer. You do not have to pay any attention to OCaml
+ compiler versions.
+- unison 2.51 if both versions are compiled with same OCaml compiler
+ version.
+- unison 2.48 if both versions are compiled with same OCaml compiler
+ version.
+
+It is possible to use the OPAM OCaml package manager to build unison
+with the same version of the OCaml compiler on all machines:
+
+doas pkg_add opam
+export OPAMROOT=~/opam_unison
+opam init --no-setup --compiler ocaml-base-compiler.4.09.0
+opam install unison lablgtk # To build without the gui, remove lablgtk
+$(opam var bin)/unison
+
+Common issue
+=============
+Unison sometimes reports chown() failures that are actually failures to
+change group ownership. This can occur when a user does not belong to
+the specified group and is the owner of the file, or is not the
+superuser. Issue can be addressed by setting the option 'group' to
+'false'.
UPDATE net/unison-2.53.4