On Thu,  3 Aug 2023 17:37 +0100, Stuart Henderson wrote:
> you can get tests to run with these (and this also needs
> SEPARATE_BUILD = No otherwise when it builds the .t binaries, it puts
> them in the build dir, and there's nothing setup to replace the MacOS
> binaries present in the test dir in the tar).
> 
> TEST_DEPENDS =                ${MODPY_RUN_DEPENDS}
> USE_NINJA =           No

Thank you. I have zero experience with C++ and so I know very little
about its build systems.

> > +# Hack to get rid of empty CMakeFiles directories on 1.5.0. Check to see
> > +# if this is still necessary next release.
> > +pre-install:
> > +   rmdir ${WRKBUILD}/doc/man1/CMakeFiles
> > +   rmdir ${WRKBUILD}/doc/man7/CMakeFiles
> 
> I'd go for a tweak to simplify a little and put the comment where make
> will display it on-screen when run, so it's immediately obvious what's
> going on if things change in a future update.

I like this solution, I didn't think to do it like that.

> so here's a diff with those added, a quick change to the comment
> about out-of-source builds (the PR was committed upstream, but it
> doesn't cover the files which just contain .so manpage links;
> timew-day, timew-week, timew-month).
> 
> builds and all regression tests pass; I don't use this myself so not
> tested runtime

Runtime works for me so far.

The timewarrior line in TEST_DEPENDS causes `make test` to fail for
me with this:

===> timewarrior-1.5.0 depends on: timewarrior-=1.5.0 - default 
timewarrior-1.1.1p0 does not match
*** Error 1 in . (/usr/ports/infrastructure/mk/bsd.port.mk:2294 
'/usr/obj/ports/timewarrior-1.5.0/.dep-timewarrior--1.5.0-productivity-timewarrior,')
*** Error 2 in /usr/ports/mystuff/productivity/timewarrior 
(/usr/ports/infrastructure/mk/bsd.port.mk:2612 'test': @lock=timewarrior-1.5.0; 
 ...)

I'm gathering that this will probably work after commit based on
the error? I tested without that line and with timewarrior uninstalled,
and it fails on help.t as you mentioned in the comment.

I didn't quite understand how `timewarrior-=${VERSION}:${BUILD_PKGPATH}`
works. I did see the explanation for `:old_string=new_string` in
make(1), but I don't get what -= does in this context. Can you help
me understand?

Thank you for the help + input, Stuart. I appreciate it. :)

> 
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/productivity/timewarrior/Makefile,v
> retrieving revision 1.5
> diff -u -p -r1.5 Makefile
> --- Makefile  11 Mar 2022 19:51:47 -0000      1.5
> +++ Makefile  3 Aug 2023 16:37:27 -0000
> @@ -1,35 +1,46 @@
> -COMMENT =    command line tracking time tool
> +COMMENT =            command line tracking time tool
>  
> -VERSION =    1.1.1
> -DISTNAME =   timew-${VERSION}
> -PKGNAME =    timewarrior-${VERSION}
> -CATEGORIES = productivity
> -REVISION =   0
> +VERSION =            1.5.0
> +DISTNAME =           timew-${VERSION}
> +PKGNAME =            timewarrior-${VERSION}
> +CATEGORIES =         productivity
>  
> -HOMEPAGE =   https://timewarrior.net/
> +HOMEPAGE =           https://timewarrior.net/
>  
>  # MIT
> -PERMIT_PACKAGE =             Yes
> +PERMIT_PACKAGE =     Yes
>  
>  WANTLIB += c m ${COMPILER_LIBCXX}
>  
> -MASTER_SITES =       https://taskwarrior.org/download/
> +MASTER_SITES =               
> https://github.com/GothenburgBitFactory/timewarrior/releases/download/v${VERSION}/
>  
>  COMPILER =           base-clang ports-gcc
>  
>  MODULES =            devel/cmake \
>                       lang/python
> -MODPY_VERSION =      ${MODPY_DEFAULT_VERSION_2}
>  MODPY_RUNDEP =               No
>  MODPY_BUILDDEP =     No
>  MODPY_ADJ_FILES =    ext/totals.py
>  
> +BUILD_DEPENDS =              textproc/asciidoctor
> +
>  CONFIGURE_STYLE =    cmake
>  
>  CONFIGURE_ARGS +=    -DTIMEW_DOCDIR=share/doc/timewarrior
> -CONFIGURE_ARGS +=    -DTIMEW_RCDIR=share/doc/timewarrior/rc
> -CONFIGURE_ARGS +=    -DTIMEW_MAN1DIR=man/man1
> +CONFIGURE_ARGS +=    -DTIMEW_MANDIR=man
> +
> +# test infrastructure only works with cmake make backend
> +# self-depend added to avoid failure in help.t test which checks
> +# that the (correct version's) manual is displayed
> +USE_NINJA =          No
> +TEST_DEPENDS =               ${MODPY_RUN_DEPENDS} \
> +                     timewarrior-=${VERSION}:${BUILD_PKGPATH}
> +
> +# tests and manpage creation fail with out-of-source-tree builds
> +# upstream commit dd330aa0db61 partially fixes manpages but not tests
> +SEPARATE_BUILD =     No
>  
> -NO_TEST =            Yes
> +post-install:
> +     rmdir ${PREFIX}/man/man{1,7}/CMakeFiles{/*,} # empty dirs present in 
> 1.5.0
>  
>  .include <bsd.port.mk>
> Index: distinfo
> ===================================================================
> RCS file: /cvs/ports/productivity/timewarrior/distinfo,v
> retrieving revision 1.1.1.1
> diff -u -p -r1.1.1.1 distinfo
> --- distinfo  17 May 2018 23:22:21 -0000      1.1.1.1
> +++ distinfo  3 Aug 2023 16:37:27 -0000
> @@ -1,2 +1,2 @@
> -SHA256 (timew-1.1.1.tar.gz) = H32aYuVfxaMSZDNlTMsf19LRNfBvBWl/hxiXydt3zMk=
> -SIZE (timew-1.1.1.tar.gz) = 166484
> +SHA256 (timew-1.5.0.tar.gz) = UefCx3KDe71tVtqNFlBsS23oZEFm4LUjStNq5qcN1PY=
> +SIZE (timew-1.5.0.tar.gz) = 4148590
> Index: pkg/PLIST
> ===================================================================
> RCS file: /cvs/ports/productivity/timewarrior/pkg/PLIST,v
> retrieving revision 1.2
> diff -u -p -r1.2 PLIST
> --- pkg/PLIST 11 Mar 2022 19:51:47 -0000      1.2
> +++ pkg/PLIST 3 Aug 2023 16:37:27 -0000
> @@ -1,12 +1,49 @@
>  @bin bin/timew
> +@man man/man1/timew-annotate.1
> +@man man/man1/timew-cancel.1
> +@man man/man1/timew-chart.1
> +@man man/man1/timew-config.1
> +@man man/man1/timew-continue.1
> +@man man/man1/timew-day.1
> +@man man/man1/timew-delete.1
> +@man man/man1/timew-diagnostics.1
> +@man man/man1/timew-export.1
> +@man man/man1/timew-extensions.1
> +@man man/man1/timew-fill.1
> +@man man/man1/timew-gaps.1
> +@man man/man1/timew-get.1
> +@man man/man1/timew-help.1
> +@man man/man1/timew-join.1
> +@man man/man1/timew-lengthen.1
> +@man man/man1/timew-modify.1
> +@man man/man1/timew-month.1
> +@man man/man1/timew-move.1
> +@man man/man1/timew-report.1
> +@man man/man1/timew-resize.1
> +@man man/man1/timew-shorten.1
> +@man man/man1/timew-show.1
> +@man man/man1/timew-split.1
> +@man man/man1/timew-start.1
> +@man man/man1/timew-stop.1
> +@man man/man1/timew-summary.1
> +@man man/man1/timew-tag.1
> +@man man/man1/timew-tags.1
> +@man man/man1/timew-track.1
> +@man man/man1/timew-undo.1
> +@man man/man1/timew-untag.1
> +@man man/man1/timew-week.1
>  @man man/man1/timew.1
> +@man man/man7/timew-config.7
> +@man man/man7/timew-dates.7
> +@man man/man7/timew-dom.7
> +@man man/man7/timew-durations.7
> +@man man/man7/timew-hints.7
> +@man man/man7/timew-ranges.7
>  share/doc/timewarrior/
>  share/doc/timewarrior/AUTHORS
> -share/doc/timewarrior/COPYING
>  share/doc/timewarrior/ChangeLog
>  share/doc/timewarrior/INSTALL
>  share/doc/timewarrior/LICENSE
> -share/doc/timewarrior/NEWS
>  share/doc/timewarrior/README.md
>  share/doc/timewarrior/doc/
>  share/doc/timewarrior/doc/holidays/
> 

Reply via email to