Modernizing calendar(1) (was: svn commit: r365984 - head/usr.bin/calendar/calendars)

Warner Losh imp at bsdimp.com
Tue Oct 20 04:47:08 UTC 2020


On Mon, Oct 19, 2020 at 9:54 PM Greg 'groggy' Lehey <grog at freebsd.org>
wrote:

> This discussion, from a month ago, seems to have died a death.  First I'll
> summarize what imp@ says:
>
> On Wednesday, 23 September 2020 at  9:18:27 -0600, Warner Losh wrote:
> >
> > 1. I'll do for calendar what I did for CTM. We'll split it out into its
> own
> > git repo. git filter-patch is straight-forward to use, but has a number
> of
> > caveats with the imperfect github mirror we have. I'll do it against the
> > beta cgit mirror and write up the process since I'm pretty sure people
> will
> > want to replicate it in the future.
> > 2. Delete the contentious bits (details to follow)
> > 3. Adjust the build (since calendar uses cpp to build up its databases)
> > 4. Prune the new repo to just the contentious bits into that repo (likely
> > under github.com/freebsd/calendar, like we've done for CTM and other
> things)
> > 5. Create a port you can optionally install
> > 6. Adjust calendar to work when things are there (or not there)
> > 7. Remove the contentious bits from FreeBSD...
>
> This shows the procedural approach.  But what do we really want?  I
> think that we should agree that we don't want to remove functionality,
> just bring things into the 21st century.  As I see it, there are three
> approaches:
>
> 1. Nobody cares enough about it, so leave it as it is.
>
>    Given the lack of input on the subject, this might be the best
>    choice.  It's certainly the easiest.  But it leaves a lot of dead
>    wood and unbalanced and incorrect content.
>

Nah, people want the crusty old files of it gone. Trust me.


> 2. Move the non-FreeBSD related stuff into a port.  This is imp@'s
>    approach above.  As you can see, it's rather involved, and it seems
>    to me that we shouldn't be doing this sort of thing until we've
>    moved the project to git and the dust has settled.  It also
>    complicates maintenance, and it doesn't address the dead wood and
>    dubious content.
>

It's actually not all that involved. I've done it before for CTM and it's
about 1/2 hour of work to pull all the history along. 0 hours of work if
you don't care about the history. It actually goes hand in hand with #3
below.


> 3. Create a separate port that sucks in and maintains suitable
>    calendar entries from *somewhere* and maintain a directory
>    hierarchy, say /usr/local/calendar, in the same form as the current
>    /usr/share/calendar.  Modify the calendar(1) in the tree to look at
>    this hierarchy as well.  /usr/share/calendar should remain for the
>    few FreeBSD-related files (as far as I can tell, only
>    calendar.freebsd).
>

Yea, I think you're right. The FreeBSD one is the interesting bit to the
project, and there's enough people that have .calendar files to make it
interesting to stay in base. Were it not for this FreeBSD connection, maybe
it could just live entirely in ports. Calendar has been around since 7th
Edition Unix, so there's history there as well, though that seems less
important these days.

The calendar.usholiday isn't too bad. It could remain too. It's super short
and the only tweaking needed would be when the times change.

It might make sense to do one for eu and asia too that list the major
holidays elsewhere given how connected the world is. Then again, that may
be a bit beyond the remit of the current system too, but we're a world-wide
group that could easily crowd source this. The current calendar.holiday is
way too obscure and bizarre, though some people like it.


>    This would be my preferred approach.  The issue is identifying
>    *somewhere*.  I've done a bit of searching on the web, and I've
>    found lots of "on this day" sites, but nothing that would easily
>    lend itself to conversion to calendar(1) files of the kind I'm
>    looking for.  Input here would be welcome.
>

Ah, that's a second problem. But let's not get bogged down in solving that
and then fail to do the split properly. Let's get things split, let's move
the database to ports. Unless it's really so awful as to not be worth
the move. Then this whole problem boils down to just removing
usr.bin/calendar/calendars (except for calendar.freebsd), and then working
offline on pulling stuff in via the net somehow.

Warner


More information about the freebsd-arch mailing list