On Tue 20/02/2024 11:30, Jeremie Courreges-Anglas wrote: > On Mon, Feb 19 2024, Bjorn Ketelaars <b...@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 <es...@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 <b...@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'.