Bug 242546

Summary: [REVIVE] science/orthanc: Orthanc is a DICOM server for healthcare and medical research
Product: Ports & Packages Reporter: Frank Scholl <maintainer.freebsd>
Component: Individual Port(s)Assignee: Guangyuan Yang <ygy>
Status: Closed FIXED    
Severity: Affects Only Me CC: diizzy, maintainer.freebsd, thierry, ygy
Priority: --- Keywords: feature, needs-qa
Version: Latest   
Hardware: Any   
OS: Any   
Bug Depends on: 255974    
Bug Blocks: 242547, 242548, 242549, 242552    
Attachments:
Description Flags
.shar of the orthanc port.
none
orthanc-1.6.1
none
Diff / the latest version of science/ortanc
maintainer.freebsd: maintainer-approval+
orthanc-1.7.1
none
orthanc-1.7.2
none
orthanc-1.7.2_1
none
Diff / the latest version of science/ortanc (orthanc-1.7.2_1, diff based on r471825)
none
Diff / the latest version of science/ortanc (orthanc-1.7.2_1, diff based on r544608)
none
orthanc patch fixed
none
orthanc 1.9.3
maintainer.freebsd: maintainer-approval+
orthanc 1.9.3_1
maintainer.freebsd: maintainer-approval+
orthanc-1.9.3.diff
maintainer.freebsd: maintainer-approval+
orthanc-1.9.3.diff maintainer.freebsd: maintainer-approval+

Description Frank Scholl 2019-12-10 15:28:15 UTC
Created attachment 209831 [details]
.shar of the orthanc port.

Port expired on 2018-06-06, fixed and cleaned up the build, updated descriptions, willing to maintain the port from now on.

https://www.freshports.org/science/orthanc
Comment 1 Frank Scholl 2020-05-25 06:08:40 UTC
Created attachment 214830 [details]
orthanc-1.6.1

Update to Orthanc 1.6.1, made portlint happy, builds in poudriere
Comment 2 Thierry Thomas freebsd_committer 2020-06-19 20:56:32 UTC
- This is a resurrection: attached is the diff against the latest version.
	(the 1rst line is kept)

- you don´t have to list the same dependency several time, e.g.
LIB_DEPENDS=	libboost_atomic.so:devel/boost-libs \
		libboost_chrono.so:devel/boost-libs \
		libboost_date_time.so:devel/boost-libs \
		libboost_filesystem.so:devel/boost-libs \
		libboost_locale.so:devel/boost-libs \
		libboost_regex.so:devel/boost-libs \
		libboost_system.so:devel/boost-libs \
		libboost_thread.so:devel/boost-libs \
  should be replaced by
LIB_DEPENDS=	libboost_thread.so:devel/boost-libs

- it uses libiconv
  => you should add iconv to USES=

- you registered a dependency to lua51, but if lua53 is installed, OrthancRecoverCompressedFile is linked to liblua-5.3.so
Comment 3 Thierry Thomas freebsd_committer 2020-06-19 20:59:05 UTC
Created attachment 215799 [details]
Diff / the latest version of science/ortanc

Reminder: also update MOVED and science/Makefile.
Comment 4 Frank Scholl 2020-06-24 15:16:57 UTC
orthanc-1.7.1

- update to Orthanc 1.7.1
- cleaned up dependency list
- updated USES= to contain iconv and lua without a specific version number
- tested build in poudriere

Attached the new .shar of this port. Am I supposed to provide a .diff if when resurrecting an old port and should I provide .diffs for MOVED and the category's Makefile as well?
Comment 5 Frank Scholl 2020-06-24 15:19:08 UTC
Created attachment 215907 [details]
orthanc-1.7.1

orthanc-1.7.1
Comment 6 Thierry Thomas freebsd_committer 2020-06-24 15:32:37 UTC
(In reply to Frank Scholl from comment #4)

The remark about the diff, MOVED and science/Makefile is just a reminder for the committer, you are note supposed to provide it.

Thanks for your new patch, I'll check it ASAP.
Comment 7 Frank Scholl 2020-06-25 16:59:41 UTC
Just wanted to let you now that all dependent ports from the block list are updated to build with Orthanc 1.7.1.
Comment 8 Thierry Thomas freebsd_committer 2020-06-26 16:43:28 UTC
Unfortunately it fails, because some files and directories are produced under $STAGEDIR but never installed:

====> Checking for pkg-plist issues (check-plist)
===> Parsing plist
===> Checking for items in STAGEDIR missing from pkg-plist
Error: Orphaned: /wrkdirs/usr/ports/science/orthanc/work/.build/%%LUA_LIBDIR%%ConnectivityChecks.so
Error: Orphaned: /wrkdirs/usr/ports/science/orthanc/work/.build/%%LUA_LIBDIR%%ConnectivityChecks.so.%%PORTVERSION%%
Error: Orphaned: @dir /wrkdirs/usr/ports/science/orthanc/work/.build
Error: Orphaned: @dir /wrkdirs/usr/ports/science/orthanc/work
Error: Orphaned: @dir /wrkdirs/usr/ports/science/orthanc
Error: Orphaned: @dir /wrkdirs/usr/ports/science
Error: Orphaned: @dir /wrkdirs/usr/ports
Error: Orphaned: @dir /wrkdirs/usr
Error: Orphaned: @dir /wrkdirs
===> Checking for items in pkg-plist which are not in STAGEDIR
Error: Missing: etc/rc.d/orthanc
===> Error: Plist issues found.
*** Error code 1

Stop.
make: stopped in /usr/ports/science/orthanc
=>> Error: check-plist failures detected
build of science/orthanc | orthanc-1.7.1 ended at Fri Jun 26 18:31:58 CEST 2020

If this ConnectivityChecks.so is required, you should moved it under a usable directory.

And I guess that the working directory might be removed.
Comment 9 Frank Scholl 2020-06-29 13:58:09 UTC
Thank you. Looking into that for this port and taking care for the other dependent ports as well (make check-orphaned and make check-plist).
Comment 10 Frank Scholl 2020-07-13 08:26:34 UTC
I am still looking into this, coming back with the next patch when it is ready.
Comment 11 Frank Scholl 2020-08-04 16:05:25 UTC
Created attachment 217005 [details]
orthanc-1.7.2

Updated orthanc to 1.7.2, the .so you mentioned before is not built anymore (and removed from pkg-plist). Cleaned up pkg-plist in respect to USE_RC_SUBR as well (rc script from files should not be mentioned in pkg-plist).
Comment 12 Thierry Thomas freebsd_committer 2020-08-04 17:18:00 UTC
Put back to pool, sorry.
Comment 13 Frank Scholl 2020-08-06 09:02:11 UTC
(In reply to Thierry Thomas from comment #12)

Thank you for your assistance so far!
Comment 14 Frank Scholl 2020-08-07 14:02:53 UTC
Created attachment 217069 [details]
orthanc-1.7.2_1

Fixed the to be patched files. Tested with poudriere.

Question regarding USE_RC_SUBR: how should a maintainer deal with an rc script? Should it be included in pkg-plist (so people can grep through to find installed files as mentioned in the handbook) or is it ok to just use USE_RC_SUBR (like I did now)?

Depending on your answer regarding this question I will provide an updated .shar.
Comment 15 Frank Scholl 2020-08-10 09:00:55 UTC
(In reply to Thierry Thomas from comment #3)
+
The maintainer e-mail address is correct.
Comment 16 Frank Scholl 2020-08-10 09:34:46 UTC
Created attachment 217125 [details]
Diff / the latest version of science/ortanc (orthanc-1.7.2_1, diff based on r471825)

To make it easier for the next one taking over this bug, I added a .diff like thierry's.
Comment 17 Frank Scholl 2020-08-10 09:39:46 UTC
Created attachment 217126 [details]
Diff / the latest version of science/ortanc (orthanc-1.7.2_1, diff based on r544608)

This diff is based on today's head (r544608), including:

- removed orthanc from MOVED
- added orthanc to science/Makefile
- all files from the attached .shar

I hope this helps to resurrect science/orthanc. If there is anything I am supposed to prepare, please let me know.
Comment 18 Mark Linimon freebsd_committer freebsd_triage 2020-08-15 05:29:23 UTC
^Triage: restore state to Open because it has been unassigned.
Comment 19 Loïc Bartoletti freebsd_committer 2020-09-04 05:21:24 UTC
Created attachment 217732 [details]
orthanc patch fixed

Are you sure that the diff is the good one? DOS2UNIX doesn't found "CMakeLists.txt", is it ${WRKSRC}/OrthancServer/CMAkeLists.txt?

I fixed your patch for CMakeLists.txt, it must have the path as patch-OrthancServer_Resources_Configuration.json (see https://www.freebsd.org/doc/en/books/porters-handbook/book.html#slow-patch)
Comment 20 Dmitry Marakasov freebsd_committer 2021-02-19 23:50:06 UTC
Fails to fetch:

=> Orthanc-1.7.2.tar.gz doesn't seem to exist in /portdistfiles/orthanc.
=> Attempting to fetch http://orthanc-server.com/downloads/get.php?path=/orthanc/Orthanc-1.7.2.tar.gz
fetch: http://orthanc-server.com/downloads/get.php?path=/orthanc/Orthanc-1.7.2.tar.gz: No address record

% host -tA orthanc-server.com
orthanc-server.com has no A record
Comment 21 Frank Scholl 2021-02-20 07:39:26 UTC
We are currently working on a updated port, based on Orthanc 1.9.0 and the feedback we received so far. The build system changed a bit and some hosts on which Orthanc had been hosted were changed. I think the Orthanc project started to move a way from Atlassian services.
Comment 22 Frank Scholl 2021-05-18 12:44:28 UTC
Created attachment 225062 [details]
orthanc 1.9.3

This is the current version of orthanc 1.9.3 as a diff to HEAD (a561062c47a3).

All advices from Marc, Loïc and Dmitry went into this diff. The port now builds against the shared library provided through www/civetweb (new port) and builds on 11.4, 12.2 and 13.0. Tested with poudriere testport on amd64.
Comment 23 Frank Scholl 2021-05-18 12:45:36 UTC
Comment on attachment 217732 [details]
orthanc patch fixed

This diff is superseded by 1.9.3.
Comment 24 Daniel Engberg freebsd_committer 2021-05-20 01:02:00 UTC
Ordering in Makefile is incorrect, please consider using portlint and/or portfmt

If unit tests works please enable those in the ports, otherwise can probably disable googletest dependency.

You can probably use CMAKE_ON / _OFF instead of CMAKE_ARGS but that's just a cosmetic change for readability.

Does it build using Poudriere?

Best regards,
Dnaiel
Comment 25 Frank Scholl 2021-05-28 17:05:20 UTC
Created attachment 225335 [details]
orthanc 1.9.3_1

This port got an update to reflect the changes suggested by Daniel:

- now uses CMAKE_ON / CMAKE_OFF instead of using CMAKE_ARGS.

I tried to remove the googletest dependency, but it is needed to build properly. So this dependency needs to stay in.

Further information:
- portlint is fine.
- Builds in poudriere (testport), tested for 11.4, 12.2 and 13.0
Comment 26 Guangyuan Yang freebsd_committer 2021-06-03 12:20:48 UTC
(In reply to Frank Scholl from comment #25)

A quick review:

- Use DISTVERSION instead of PORTVERSION, check porter's handbook 5.2.2.
- No need to set PORTREVISION for a new port.

Otherwise it looks good to my eyes. Once the diff has been updated, I will do some further testing. Thank you!
Comment 27 Frank Scholl 2021-06-06 11:39:21 UTC
Created attachment 225590 [details]
orthanc-1.9.3.diff

- DISTVERSION is used instead of PORTVERSION
- PORTREVISION is removed.

We are using the orthanc related packages through portshaker combined with poudriere in our production environment since those ports have been MOVED. This is the reason why we had PORTREVISION in the .diff as well to let pkg upgrade pull in  the packages on the target machines. The diffs we attached in the bugtracker always matched what we were using at this time. But for a "new port" from the ports repository's perspective, this is of course not needed. Didn't think about that, sorry.
Comment 28 Guangyuan Yang freebsd_committer 2021-06-07 22:50:11 UTC
(In reply to Frank Scholl from comment #27)

Thanks for the changes - a minor nit before committing:

- The old COMMENTS is "RESTful DICOM server for healthcare and medical research", which also aligns with the `desc` field in the current `files/orthanc.in` file. Could we make that consistent, i.e. update the COMMENTS?

And two more things:

- The current link on https://www.orthanc-server.com/download.php for FreeBSD seem to point at this PR. Please don't forget to update it once this port is committed.
- It is encouraged to submit patches to upstream in the future ;)
Comment 29 Frank Scholl 2021-06-08 12:45:17 UTC
Created attachment 225634 [details]
orthanc-1.9.3.diff

- `COMMENTS` (Makefile) and `desc` (files/orthanc.in) are identical
- both reflect the project's current and official wording
  (https://www.orthanc-server.com/static.php?page=about)
- portlint is still happy with the new `COMMENT` :)

Regarding the two other things:

- The current link on https://www.orthanc-server.com/download.php for FreeBSD will be replaced by a freshport link, as soon as the port is available again.
- We already submitted a patch upstream to let cmake properly detect installed shared libraries (had been a PREFIX thing) and will continue to do so.
Comment 30 commit-hook freebsd_committer 2021-06-08 18:17:36 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=d0359493ee0443e596be74b336ea12e6db936a01

commit d0359493ee0443e596be74b336ea12e6db936a01
Author:     Frank Scholl <maintainer.freebsd@xpoundit.com>
AuthorDate: 2021-06-08 18:15:17 +0000
Commit:     Guangyuan Yang <ygy@FreeBSD.org>
CommitDate: 2021-06-08 18:15:17 +0000

    science/orthanc: Revive port

    Orthanc is a Lightweight DICOM server for healthcare and medical
    research.

    PR:             242546
    Approved by:    lwhsu (mentor)

 MOVED                                              |  1 -
 science/orthanc/Makefile (new)                     | 57 +++++++++++++++++++
 science/orthanc/distinfo (new)                     |  3 +
 science/orthanc/files/orthanc.in (new)             | 40 ++++++++++++++
 ...sources_CMake_CivetwebConfiguration.cmake (new) | 64 ++++++++++++++++++++++
 ...rthancServer_Resources_Configuration.json (new) | 25 +++++++++
 science/orthanc/pkg-descr (new)                    | 23 ++++++++
 science/orthanc/pkg-plist (new)                    | 18 ++++++
 8 files changed, 230 insertions(+), 1 deletion(-)
Comment 31 commit-hook freebsd_committer 2021-06-08 18:21:40 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=e7091bee9b00f24849eebc839de53095a1595911

commit e7091bee9b00f24849eebc839de53095a1595911
Author:     Guangyuan Yang <ygy@FreeBSD.org>
AuthorDate: 2021-06-08 18:19:06 +0000
Commit:     Guangyuan Yang <ygy@FreeBSD.org>
CommitDate: 2021-06-08 18:20:55 +0000

    science/orthanc: Hook to the build

    PR:             242546
    Fixes:          d0359493ee0443e596be74b336ea12e6db936a01
    Approved by:    lwhsu (mentor, implicit), portmgr (fix build)

 science/Makefile | 1 +
 1 file changed, 1 insertion(+)
Comment 32 Guangyuan Yang freebsd_committer 2021-06-08 18:24:20 UTC
(In reply to Frank Scholl from comment #29)

I think one last thing for future port submissions is to also update <category>/Makefile to hook it to the build (see the second commit above, as I almost forgot), if it is a new/revived port.

Thanks again for making these changes and for all the efforts!