Subject: [bug#75528] [PATCH 1/2] gnu: Add apcupsd.

From: Tomas Volf <[email-masked]>
Date: Fri, 14 Feb 2025 23:57:05 +0100

Maxim Cournoyer <[email-masked]> writes:

>> I did not found a way to report a bug.  Nothing is listed in the manual,
>> and their apcupsd-users mailing list requires JavaScript to sign up (and
>> does not tell me the email address otherwise).
>>
>> I did try to blindly send an email, will see if it will be accepted
>> without being subscribed.  If that happens, I will add the link here.
>
> OK, thank you.

I have now added a link to my message to the mailing list.

>>>
>>>> +         ;; Enable additional drivers.
>>>> +         "--enable-test"
>>>
>>> Is '--enable-test' useful?  What does it do?
>>
>> According to the manual
>>
>> This turns on a test driver that is used only for debugging.
>>
>>
>> Since there does not seem to be any harm in having it on, I enabled it,
>> since Guix seems to aim for feature complete packages (I assume that is
>> the reason for everything being so large).  But I have no use for it, so
>> I can turn it off if you would prefer.
>
> For this kind of very edge case that is not enabled by default, I'd
> leave it off.  Our maximalist take on things doesn't including switching
> on every non-default option, but if extra dependencies are automatically
> picked as part of the configure script, then we would typically add
> them, unless they grow the 'guix size' of the package unreasonably (like
> adding libreoffice to emacs-org-mode because it has support for it :-)).
>
> It's one of the reason.  Other reasons are references kept erroneously,
> static libraries, large documentation, wrappers keeping references to
> native inputs that shouldn't be captured, etc.  There's a lot of work to
> do to reduce the size of the distribution :-).
>
> [...]

Makes sense, I took it out.

>>>> +          (add-before 'configure 'touch-txt-docs
>>>> +            (lambda _
>>>> +              (for-each (lambda (f)
>>>> +                          (call-with-output-file f close-port))
>>>> +                        '("doc/apcupsd.man.txt"
>>>> +                          "doc/apcaccess.man.txt"
>>>> +                          "doc/apctest.man.txt"
>>>> +                          "doc/apccontrol.man.txt"
>>>> +                          "doc/apcupsd.conf.man.txt"))))
>>>
>>> I think I'd rather depend on these than introduce hacks like below.
>>
>> The "hacks" *below* would still be required.  The HTML manual is not
>> built nor installed by default, and there is no target to invoke to
>> install them.  So both 'build-manual and 'move-doc phases would still be
>> required.
>>
>> We could get rid of the "hack" *above* ('touch-txt-docs), true.  It is
>> worth those two additional inputs?
>
> Yes, I meant above, sorry.  I don't see mandoc and util-linux as large
> dependencies enough to justify working around these, especially if they
> are only used at build time.  And, the would actually be useful when
> working on the source of acupsd in a 'guix shell -D acupsd' environment,
> so I'd just add them.
>
> [...]
>

Makes sense, I will remove the phase and add the dependencies into
native-inputs.

>>> Could you please send a v2?
>>
>> Definitely, I will go through your review for the service file as well,
>> and once I have all the answers (both here and there), will send v2.
>
> I haven't seen v2 yet, I guess you are still working out the service
> part?

I did not get to the service part yet (life has sadly been somewhat
busy), will get to it during this weekend.  But I was also waiting for
your response here, there was no reason to send v2 since I was pretty
sure I will need to do additional changes, so v3 would required anyway.

Tomas

-- 
There are only two hard things in Computer Science:
cache invalidation, naming things and off-by-one errors.