submitting a new port, sort of

Jim DeLaHunt list+macports-dev at jdlh.com
Wed Jun 18 21:20:30 UTC 2025


Hello, Elwood Downey, and welcome to MacPorts-dev!

On 2025-06-17 21:20, Elwood Downey wrote:
> ...I skimmed your instructions for submitting a new port but 1) I do 
> not have and do not want a github account and 2) I am super lazy when 
> it comes to systemy things, I only enjoy programming.
>
> So on the outside chance someone else would be willing to do it all 
> for me, I hereby humbly submit my amateur radio program HamClock 
> <https://clearskyinstitute.com/ham/HamClock> for consideration as a 
> new port.
> ...[elided]...
> name                hamclock
> version             4.18
> categories          amateur radio
> platforms           darwin
> license             MIT
> maintainers         Elwood Downey, ecdowney at clearskyinstitute.com
> description         provides useful data for amateur radio operators
> long_description    HamClock is a kiosk-style application that 
> provides real time space weather, radio propagation models, operating 
> events and other information particularly useful to the radio amateur.
> homepage https://www.clearskyinstitute.com/ham/HamClock
> master_sites 
> https://www.clearskyinstitute.com/ham/HamClock/ESPHamClock.tgz

What a lovely project! HamClock appears to integrate a lot of useful 
data from many sources. I can imagine it being very valuable to the 
people for whom it is intended. It would be a fine port IMHO.

I took the liberty of doing a "systemy thing" for you: creating a 
Macports trac ticket #72625[1] requesting that a port be created for 
Hamclock. This doesn't commit me or anyone else to do the work, but it 
provides a starting point for anyone interested. It includes a link to 
this thread[2] in the macports-dev archives.

 From my limited experience writing ports, I can imagine five or so 
hurdles.

One, as Ryan said, HamClock's self-update function conflicts with a 
macports principle that ports don't modify themselves, only macports 
modifies ports.

Two, and related, there appears to be only URLs for the current version 
of the source code, while macports works better with repositories which 
offer URLs for each software version. So for HamClock that might be:

    https://www.clearskyinstitute.com/ham/HamClock/4.18/ESPHamClock.tgz

Normally, macports deal with target project version changes by having 
someone update the portfile and submit it to Macports. Each version of a 
portfile describes a specific version of the target project, and gives a 
specific URL for that verion of the target project's source code. When 
the target project releases a new version, someone notices and updates 
the portfile to specify the new version and the new download URL. They 
submit the new portfile to Macports. Eventually Macports users update 
their Portfile collection from Macports. Then the user's copy of 
Macports becomes aware of the new port version, and offers to perform 
the update.

Three, as Dave Allured points out, the portfile author needs to figure 
out what other libs HamClock depends on, and which ports supply those 
libs. These dependencies get recorded in the portfile.

Four, the HamClock top-level Makefile hard-codes some install paths and 
library paths. The portfile will need to patch these. That is a normal 
thing to do, and functions exist to do it, but it will be an extra task 
for the portfile author.

Five, HamClock can display graphics at various horizontal and vertical 
pixel sizes, and as a local display (via X11) or as a web service. The 
portfile can offer "variants" as a way to let the user choose these 
options at build time. The portfile author might choose to offer these 
variants, and tie them back to the Makefile targets. That is a further 
task.

Also, at the risk of distracting you with "systemy" things, might I 
suggest a few clarifications to the HamClock website[3]?

  * The download tab did not make it clear to me that it offered source
    code. I interpreted it as offering precompiled binaries. Consider
    adding a subheading "Source code" before the first line of the tab,
    and changing the following line "revision history" to be a subheading.
  * If you decide to have separate URLs to the various versions of the
    source code, then maybe you will want somewhere a list of versions,
    each with the download link for that version's source code.
  * The website doesn't make it clear that the project's code is freely
    licensed. Yes, the source code archive has a LICENSE file containing
    the MIT licence text, but that isn't visible before downloading.
    Consider having a tab "License", or a link from a relevant place
    like the source code link in the Download tab, pointing to the
    software license.
  * Do you seek contributions of bug fixes and patches with
    improvements?  If so, I would expect to see a tab reading "How to
    contribute" or the like. I don't see that.

Overall, HamClock looks like a lovely project. Thank you for proposing 
it to macports. I hope someone takes the offer and finishes the portfile.

Best regards,
     —Jim "VE7YJD" DeLaHunt


[1] hamclock: make a port for Hamclock project 
<https://trac.macports.org/ticket/72625>
[2] thread "submitting a new port, sort of" 
<https://lists.macports.org/pipermail/macports-dev/2025-June/046320.html>
[3] <https://www.clearskyinstitute.com/ham/HamClock/>


-- 
.   --Jim DeLaHunt,jdlh at jdlh.com     http://blog.jdlh.com/ (http://jdlh.com/)
       multilingual websites consultant, Vancouver, B.C., Canada
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macports.org/pipermail/macports-dev/attachments/20250618/3f74b04d/attachment.htm>


More information about the macports-dev mailing list