Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

groff: 1.22.4 -> 1.23.0 #241870

Merged
merged 2 commits into from
Jul 25, 2023
Merged

groff: 1.22.4 -> 1.23.0 #241870

merged 2 commits into from
Jul 25, 2023

Conversation

afh
Copy link
Contributor

@afh afh commented Jul 6, 2023

Description of changes

Update groff to 1.23.0

In order to enableHtml on Darwin #241869 is needed as it fixes the psutils build on the platform.

ℹ️ Notice that groffer has been removed from the upstream repo (see upstream commit 1d2df80a933d for details).

Things done
  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 23.11 Release Notes (or backporting 23.05 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md.

@afh afh requested review from pSub, spacefrogg, trofi and toonn July 6, 2023 09:34
@wegank
Copy link
Member

wegank commented Jul 6, 2023

@ofborg build groff groff.passthru.tests

@trofi
Copy link
Contributor

trofi commented Jul 6, 2023

groff has about 50 reverse dependencies in nixpkgs. I tried to build my system with your change and encountered man-db failure:

FAIL: man1/zsoelim.1
FAIL: man8/accessdb.8
FAIL: man1/apropos.1
FAIL: man1/whatis.1
FAIL: man8/catman.8
FAIL: man5/manpath.5
FAIL: man1/manpath.1
FAIL: man8/mandb.8
FAIL: man1/man.1
==========================================
   man-db 2.11.2: man/it/test-suite.log
==========================================

# TOTAL: 9
# PASS:  0
# SKIP:  0
# XFAIL: 0
# FAIL:  9
# XPASS: 0
# ERROR: 0

.. contents:: :depth: 2

FAIL: man1/apropos.1
====================

man -E UTF-8 -l ./man1/apropos.1 produced error output:
grotty:<standard input>:(<standard input>):9: warning: unrecognized X command 'sgr 0' ignored
FAIL man1/apropos.1 (exit status: 1)

Do you see it by chance? Or should I retest on clean staging? (I have a few local patches)

@afh
Copy link
Contributor Author

afh commented Jul 6, 2023

Thanks for trying out this PR, @trofi. At first glance the failed tests might be related to bug #61561: [grotty] remove 'sgr' device control command. Does this seem plausible to you?
If you have extra CPU cycles to spare retesting on a clean staging would help validate whether it is a man-db using groff 1.23.0 issue or something else.

@trofi
Copy link
Contributor

trofi commented Jul 6, 2023

Tested on clean staging at 87956df:

@reckenrode
Copy link
Contributor

I believe #235505 can be closed if this PR is merged.

Yep. Thanks for working on this.

@afh
Copy link
Contributor Author

afh commented Jul 8, 2023

Thank you for testing this PR in a clean staging, @trofi, and confirming that the man-db errors stem from the changes proposed here.

I raised this issue on the groff mailing list and the helpful folks noticed that NixOS disables groff colors by default by outputting sgr 0 in site.tmac. With groff 1.23 this is no longer possible.

From this I see several paths forward:

  • Avoid shutting off SGR by default. The version of less that ships with NixOS should support it. Yet this may have undesired effects for NixOS users as the current preference is no colors.
  • Maintain grotty's legacy output format without SGR and OSC emitted by ensuring that grotty is called with the -c, for example by setting MANROFFOPT to include -c or set the GROFF_NO_SGR environment variable to any value.

Another recommendation from the groff mailing list was to ensure hyperlinks are enabled for terminals by having .nr U 1 in man.local.

(For details see this mail thread)

Before making more changes to this PR I'd like to be sure that the general direction is right for NixOS, i.e. enable SGR or maintain legacy output format (see above).

  • What are the reasons that SGR is shut off in NixOS?
  • What are the implications of enabling SGR for the system and its users?

@trofi
Copy link
Contributor

trofi commented Jul 8, 2023

Good find! Looks like it was set up in 111b5eb groff: Add site.tmac to fix man page coloring 6 years ago. Don't know if it applies any more (or ever applied) to nixpkgs.

@toonn
Copy link
Contributor

toonn commented Jul 8, 2023

FWIW, I'd go with upstream recommendation unless there's a good reason not to.
I'm still building this on x86_64-darwin, it's a huge rebuild.

@trofi
Copy link
Contributor

trofi commented Jul 9, 2023

Does it make man-db build for you? Mine still fails with this branch applied on to of today's clean staging:

FAIL: man1/manpath.1
====================

man -E UTF-8 -l ./man1/manpath.1 produced error output:
troff:<standard input>:125: warning [p 2, 0.3i]: cannot break line
troff:<standard input>:125: warning [p 2, 0.5i]: cannot break line
troff:<standard input>:125: warning [p 2, 0.7i]: cannot break line
troff:<standard input>:125: warning [p 2, 0.8i]: cannot break line
troff:<standard input>:125: warning [p 2, 1.0i]: cannot break line
troff:<standard input>:125: warning [p 2, 1.2i]: cannot break line
troff:<standard input>:125: warning [p 2, 1.3i]: cannot break line
troff:<standard input>:125: warning [p 2, 1.5i]: cannot break line
troff:<standard input>:125: warning [p 2, 1.7i]: cannot break line
FAIL man1/manpath.1 (exit status: 1)

@afh
Copy link
Contributor Author

afh commented Jul 9, 2023

☝️ The changes in this PR now have the sgr 0 related groff requests removed from site.tmac.

@trofi can you build another system to verify that said removal fixes the man-db issues you reported earlier?

ℹ️ This mail thread from the groff mailing list goes a bit into the history of where changes to site.tmac (may) have originated from. I found it an entertaining and interesting read.

Glad to you share my view on the upstream recommendation, @toonn.

❓ What other Nix folks or channels should be made aware of this proposed change, so people can chime in with their expertise?

❓ Are the changes in site.tmac worthy of a mention in the release notes?

Additionally I'd like to introduce a useA4Paper option (open to naming suggestions) to the groff package, which effectively passes PAGE=A4 in the configureFlags when enabled to make the default groff papersize for typesetting output devices A4 instead of letter. I believe this will be helpful to 🇪🇺 folks, like me, who prefer A4 over letter.
❓ Would Nixpkgs maintainers prefer this to be a separate commit or PR or would it be acceptable to include this addition in this PR?

@trofi
Copy link
Contributor

trofi commented Jul 9, 2023

Still fails like in the comment from 30 minutes ago: #241870 (comment)

@afh
Copy link
Contributor Author

afh commented Jul 9, 2023

Thanks for the update @trofi! Seems like GitHub did not show me your recent comment until after I posted mine. Let me look into this.

@toonn
Copy link
Contributor

toonn commented Jul 9, 2023

Would it have to change configureFlags? Won't that cause a rebuild of groff and therefore almost anything with man pages? It seems like groff should be respecting locale settings.

@reckenrode
Copy link
Contributor

I’m running nix build 'github:NixOS/nixpkgs?ref=pull/241870/head#groff'. I’ll post an update once it finishes.

@reckenrode
Copy link
Contributor

$ nix build 'github:NixOS/nixpkgs?ref=pull/241870/head#groff'
$ ./result/bin/groff --version
GNU groff version 1.23.0
Copyright (C) 2022 Free Software Foundation, Inc.
GNU groff comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of groff and its subprograms
under the terms of the GNU General Public License.
For more information about these matters, see the file
named COPYING.

called subprograms:

GNU troff (groff) version 1.23.0
GNU grops (groff) version 1.23.0

@toonn
Copy link
Contributor

toonn commented Jul 10, 2023

Can you reproduce trofi's failure for man-db on either architecture?

@reckenrode
Copy link
Contributor

Can you reproduce trofi's failure for man-db on either architecture?

It builds for me on aarch64-darwin.

$ nix build 'github:NixOS/nixpkgs?ref=pull/241870/head#man-db'
$ ./result/bin/mandb --help
Usage: mandb [OPTION...] [MANPATH]

  -c, --create               create dbs from scratch, rather than updating
  -C, --config-file=FILE     use this user configuration file
  -d, --debug                emit debugging messages
  -f, --filename=FILENAME    update just the entry for this filename
  -p, --no-purge             don't purge obsolete entries from the dbs
  -q, --quiet                work quietly, except for 'bogus' warning
  -s, --no-straycats         don't look for or add stray cats to the dbs
  -t, --test                 check manual pages for correctness
  -u, --user-db              produce user databases only
  -?, --help                 give this help list
      --usage                give a short usage message

Mandatory or optional arguments to long options are also mandatory or optional
for any corresponding short options.

@trofi
Copy link
Contributor

trofi commented Jul 10, 2023

Today's output for x86_64-linux:

$ nix build --no-link github:NixOS/nixpkgs/pull/241870/merge#man-db
error: builder for '/nix/store/dj07q7zzp3hcp2gbrggpbch0n9pz384n-man-db-2.11.2.drv' failed with exit code 2;
       last 10 log lines:
       > ============================================================================
       > make[4]: *** [Makefile:1977: test-suite.log] Error 1
       > make[4]: Leaving directory '/build/man-db-2.11.2/man/it'
       > make[3]: *** [Makefile:2085: check-TESTS] Error 2
       > make[3]: Leaving directory '/build/man-db-2.11.2/man/it'
       > make[2]: *** [Makefile:2216: check-am] Error 2
       > make[2]: Leaving directory '/build/man-db-2.11.2/man/it'
       > make[1]: *** [Makefile:2046: check-recursive] Error 1
       > make[1]: Leaving directory '/build/man-db-2.11.2/man'
       > make: *** [Makefile:1757: check-recursive] Error 1
       For full logs, run 'nix log /nix/store/dj07q7zzp3hcp2gbrggpbch0n9pz384n-man-db-2.11.2.drv'.

@reckenrode
Copy link
Contributor

I get a similar failure on aarch64-linux.

@reckenrode
Copy link
Contributor

It builds if I build it interactively using nix develop 'github:NixOS/nixpkgs?ref=pull/241870/head#man-db'. 🤨

@afh
Copy link
Contributor Author

afh commented Jul 10, 2023

I can confirm that nix build 'github:NixOS/nixpkgs?ref=pull/241870/head#man-db' builds without any errors for me on aarch64-darwin.

@reckenrode can you share more details on the failure on x86_64 and aarch64 linux or is it exactly the cannot break line error as reported by trofi earlier?

@reckenrode
Copy link
Contributor

@reckenrode can you share more details on the failure on x86_64 and aarch64 linux or is it exactly the cannot break line error as reported by trofi earlier?

It’s the same error.

==========================================
   man-db 2.11.2: man/it/test-suite.log
==========================================

# TOTAL: 9
# PASS:  8
# SKIP:  0
# XFAIL: 0
# FAIL:  1
# XPASS: 0
# ERROR: 0

.. contents:: :depth: 2

FAIL: man1/manpath.1
====================

man -E UTF-8 -l ./man1/manpath.1 produced error output:
troff:<standard input>:125: warning [p 2, 0.3i]: cannot break line
troff:<standard input>:125: warning [p 2, 0.5i]: cannot break line
troff:<standard input>:125: warning [p 2, 0.7i]: cannot break line
troff:<standard input>:125: warning [p 2, 0.8i]: cannot break line
troff:<standard input>:125: warning [p 2, 1.0i]: cannot break line
troff:<standard input>:125: warning [p 2, 1.2i]: cannot break line
troff:<standard input>:125: warning [p 2, 1.3i]: cannot break line
troff:<standard input>:125: warning [p 2, 1.5i]: cannot break line
troff:<standard input>:125: warning [p 2, 1.7i]: cannot break line
FAIL man1/manpath.1 (exit status: 1)

============================================================================
Testsuite summary for man-db 2.11.2
============================================================================
# TOTAL: 9
# PASS:  8
# SKIP:  0
# XFAIL: 0
# FAIL:  1
# XPASS: 0
# ERROR: 0
============================================================================
See man/it/test-suite.log
Please report to cjwatson@debian.org
============================================================================

@afh
Copy link
Contributor Author

afh commented Jul 10, 2023

Thanks for the helpful comment and question, @toonn, much appreciated! It made me rethink about my idea. To answer your questions:

Would it have to change configureFlags?

There might be other ways, but it's the "easiest" I've found so far.

Won't that cause a rebuild of groff and therefore almost anything with man pages?

I'm afraid yes, so that approach is very likely highly undesirable.

It seems like groff should be respecting locale settings.

There is a whole email thread over on the groff mailing list that does into the detail about selecting the papersize (on the fly), which helped me understand a bit of the history of why things are the way they are.

I'm uncertain whether the locale is a good reference to derive the preferred papersize from. Linux systems seem to offer /etc/papersize (and groff does query it in its configure script), yet Darwin and OpenBSD (my two main systems) do not have it. Le sigh.

I'll keep digging for another way to customize the groff default paper format from within the nixpkgs package.

@reckenrode
Copy link
Contributor

reckenrode commented Jul 10, 2023

This would explain why man-db builds on Darwin. It doesn’t do any checks.

doCheck = !stdenv.hostPlatform.isMusl /* iconv binary */ && !stdenv.hostPlatform.isDarwin;

@afh
Copy link
Contributor Author

afh commented Jul 10, 2023

Great find @reckenrode, I went ahead and locally removed the !stdenv.hostPlatform.isDarwin on doCheck as to see what issues arise. At first glance the line-breaking warnings seem to not appear, yet several test failures around recoding UTF-8 from/to ISO-8859-1.

Darwin man-db test failures
  =============================================
     man-db 2.11.2: src/tests/test-suite.log
  =============================================

  # TOTAL: 31
  # PASS:  25
  # SKIP:  0
  # XFAIL: 0
  # FAIL:  6
  # XPASS: 0
  # ERROR: 0

  .. contents:: :depth: 2

  FAIL: man-recode-in-place
  =========================

    PASS: --in-place with no coding tag
    PASS: --in-place with gzip and coding tag matching target encoding
  --- /private/tmp/nix-build-man-db-2.11.2.drv-0/tmp.dG45SzWeIk/c.1.exp   2023-07-10 22:23:56.935370087 +0000
  +++ /private/tmp/nix-build-man-db-2.11.2.drv-0/tmp.dG45SzWeIk/c.1       2023-07-10 22:23:58.098508039 +0000
  @@ -1,3 +1,3 @@
  -'\" -*- coding: UTF-8
  +'\" -*- coding: ISO-8859-1
   .SH NAME
  -b \- é
  +b \- <E9>
    FAIL: --in-place with gzip and coding tag not matching target encoding
    PASS: --in-place removes compressed input files
  FAIL man-recode-in-place (exit status: 1)

  FAIL: man-recode-suffix
  =======================

    PASS: --suffix with no coding tag
    PASS: --suffix with gzip and coding tag matching target encoding
  --- /private/tmp/nix-build-man-db-2.11.2.drv-0/tmp.KZ9hPSpTxQ/c.1.exp   2023-07-10 22:23:56.935370170 +0000
  +++ /private/tmp/nix-build-man-db-2.11.2.drv-0/tmp.KZ9hPSpTxQ/c.1.out   2023-07-10 22:23:58.098563582 +0000
  @@ -1,3 +1,3 @@
  -'\" -*- coding: UTF-8
  +'\" -*- coding: ISO-8859-1
   .SH NAME
  -b \- é
  +b \- <E9>
    FAIL: --suffix with gzip and coding tag not matching target encoding
  FAIL man-recode-suffix (exit status: 1)

  FAIL: manconv-coding-tags
  =========================

  --- /private/tmp/nix-build-man-db-2.11.2.drv-0/tmp.Dbab2RlUzJ/1.exp     2023-07-10 22:23:57.362385092 +0000
  +++ /private/tmp/nix-build-man-db-2.11.2.drv-0/tmp.Dbab2RlUzJ/1.out     2023-07-10 22:23:58.280514136 +0000
  @@ -1,2 +1,2 @@
  -'\" -*- coding: UTF-8
  -á
  +'\" -*- coding: ISO-8859-1
  +<E1>
    FAIL: simple coding tag
  --- /private/tmp/nix-build-man-db-2.11.2.drv-0/tmp.Dbab2RlUzJ/2.exp     2023-07-10 22:23:58.298024486 +0000
  +++ /private/tmp/nix-build-man-db-2.11.2.drv-0/tmp.Dbab2RlUzJ/2.out     2023-07-10 22:23:58.421205658 +0000
  @@ -1,2 +1,2 @@
  -'\" -*- mode: troff; coding: UTF-8 -*-
  -á
  +'\" -*- mode: troff; coding: ISO-8859-1 -*-
  +<E1>
    FAIL: mode and coding tags
  --- /private/tmp/nix-build-man-db-2.11.2.drv-0/tmp.Dbab2RlUzJ/3.exp     2023-07-10 22:23:58.438768676 +0000
  +++ /private/tmp/nix-build-man-db-2.11.2.drv-0/tmp.Dbab2RlUzJ/3.out     2023-07-10 22:23:58.546394855 +0000
  @@ -1,2 +1,2 @@
  -'\" -*- mode: troff; coding: UTF-8 -*-
  -á
  +'\" -*- mode: troff; coding: ISO-LATIN-1 -*-
  +<E1>
    FAIL: iso-latin-1 coding alias
    PASS: preprocessor comment but no coding tag
    PASS: coding tag matches target encoding
  FAIL manconv-coding-tags (exit status: 1)

  FAIL: manconv-guess-from-encoding
  =================================

  --- /private/tmp/nix-build-man-db-2.11.2.drv-0/tmp.vEfMCT9yR3/coding-tag.7.exp  2023-07-10 22:23:57.408382226 +0000
  +++ /private/tmp/nix-build-man-db-2.11.2.drv-0/tmp.vEfMCT9yR3/coding-tag.7.out  2023-07-10 22:23:58.280520011 +0000
  @@ -1,5 +1,5 @@
   .TH coding-tag 7
   .SH NAME
  -coding-tag \- é
  +coding-tag \- <E9>
   .SH DESCRIPTION
   test
    FAIL: recode from encoding guessed from directory name
  ./manconv-guess-from-encoding: line 31: zcat: command not found
  --- /private/tmp/nix-build-man-db-2.11.2.drv-0/tmp.vEfMCT9yR3/lang-dir.7.exp    2023-07-10 22:23:58.372104567 +0000
  +++ /private/tmp/nix-build-man-db-2.11.2.drv-0/tmp.vEfMCT9yR3/lang-dir.7.out    2023-07-10 22:23:58.500125092 +0000
  @@ -1 +1,6 @@
  -'\" -*- coding: UTF-8 -*-
  +'\" -*- coding: ISO-8859-1 -*-
  +.TH lang-dir 7
  +.SH NAME
  +lang-dir \- <E9>
  +.SH DESCRIPTION
  +test
    FAIL: recode from encoding guessed from directory name
  FAIL manconv-guess-from-encoding (exit status: 1)

  FAIL: manconv-incomplete-char-at-eof
  ====================================

    FAIL: incomplete character at EOF
  FAIL manconv-incomplete-char-at-eof (exit status: 1)

  FAIL: manconv-odd-combinations
  ==============================

  --- /private/tmp/nix-build-man-db-2.11.2.drv-0/tmp.ABhG8ulUCp/1.exp     2023-07-10 22:23:57.460950112 +0000
  +++ /private/tmp/nix-build-man-db-2.11.2.drv-0/tmp.ABhG8ulUCp/1.out     2023-07-10 22:23:58.281112227 +0000
  @@ -1 +1 @@
  - ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ
  +<A0><A1><A2><A3><A4><A5><A6><A7><A8><A9><AA><AB><AC><AD><AE><AF><B0><B1><B2><B3><B4><B5><B6><B7><B8><B9><BA><BB><BC><BD><BE><BF><C0><C1><C2><C3><C4><C5><C6><C7><C8><C9><CA><CB><CC><CD><CE><CF><D0><D1><D2><D3><D4><D5><D6><D7><D8><D9><DA><DB><DC><DD><DE><DF><E0><E1><E2><E3><E  <E4><E5><E6><E7><E8><E9><EA><EB><EC><ED><EE><EF><F0><F1><F2><F3><F4><F5><F6><F7><F8><F9><FA><FB><FC><FD><FE><FF>
    FAIL: -f UTF-8:ISO-8859-1 -t UTF-8 on ISO-8859-1 input
  --- /private/tmp/nix-build-man-db-2.11.2.drv-0/tmp.ABhG8ulUCp/1-latin2.exp      2023-07-10 22:23:58.302727214 +0000
  +++ /private/tmp/nix-build-man-db-2.11.2.drv-0/tmp.ABhG8ulUCp/1-latin2.out      2023-07-10 22:23:58.399791340 +0000
  @@ -1 +1 @@
  - Ą˘Ł¤ĽŚ§¨ŠŞŤŹ­ŽŻ°ą˛ł´ľśˇ¸šşťź˝žżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙
  +<A0><A1><A2><A3><A4><A5><A6><A7><A8><A9><AA><AB><AC><AD><AE><AF><B0><B1><B2><B3><B4><B5><B6><B7><B8><B9><BA><BB><BC><BD><BE><BF><C0><C1><C2><C3><C4><C5><C6><C7><C8><C9><CA><CB><CC><CD><CE><CF><D0><D1><D2><D3><D4><D5><D6><D7><D8><D9><DA><DB><DC><DD><DE><DF><E0><E1><E2><E3><E  <E4><E5><E6><E7><E8><E9><EA><EB><EC><ED><EE><EF><F0><F1><F2><F3><F4><F5><F6><F7><F8><F9><FA><FB><FC><FD><FE><FF>
    FAIL: -f UTF-8:ISO-8859-2 -t UTF-8 on ISO-8859-2 input
  --- /private/tmp/nix-build-man-db-2.11.2.drv-0/tmp.ABhG8ulUCp/2.exp     2023-07-10 22:23:58.420780611 +0000
  +++ /private/tmp/nix-build-man-db-2.11.2.drv-0/tmp.ABhG8ulUCp/2.out     2023-07-10 22:23:58.517127936 +0000
  @@ -1,2 +1,2 @@
  -Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б  ─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░  Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─  ░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б  ─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░  Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─  ░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б  ─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░  Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─  ░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б  ─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б─░Б
  -Б─░
  +‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐  ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐  ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐  ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐<E2>
  +‐
    FAIL: -f UTF-8:KOI8-R -t UTF-8 on KOI8-R input with UTF-8 prefix
    PASS: -f UTF-8:ISO-8859-1 -t UTF-8 preserves UTF-8 input
  --- /private/tmp/nix-build-man-db-2.11.2.drv-0/tmp.ABhG8ulUCp/4.exp     2023-07-10 22:23:58.682304732 +0000
  +++ /private/tmp/nix-build-man-db-2.11.2.drv-0/tmp.ABhG8ulUCp/4.out     2023-07-10 22:23:58.778913519 +0000
  @@ -1 +1 @@
  -<B9><B3>
  +š·ł
    FAIL: recognises input encoding and omits invalid output character
  --- /private/tmp/nix-build-man-db-2.11.2.drv-0/tmp.ABhG8ulUCp/5.exp     2023-07-10 22:23:58.804019343 +0000
  +++ /private/tmp/nix-build-man-db-2.11.2.drv-0/tmp.ABhG8ulUCp/5.out     2023-07-10 22:23:58.889803824 +0000
  @@ -1,3 +1,3 @@
  -'\" -*- coding: UTF-8
  -REGISTERED SIGN:
  +'\" -*- coding: ISO-8859-7
  +REGISTERED SIGN: <AE>
   trailing data
    FAIL: copes with invalid input characters
  FAIL manconv-odd-combinations (exit status: 1)

@toonn
Copy link
Contributor

toonn commented Jul 11, 2023

macOS sets LC_PAPER AFAIK that's what paper sizes are supposed to be derived from.

EDIT: This is a lie, I was setting this with HM. Excuse me for the confusion.

@afh
Copy link
Contributor Author

afh commented Jul 11, 2023

@toonn, unfortunately that does not seem to be the case for me. Checking locale(1) on macOS 13.4.1 does not mention LC_PAPER and searching the Internet for it reveals that it seems to be a glibc extension as stated in locale(5) on Linux:

In addition, since glibc 2.2, the GNU C library supports the
following nonstandard categories:

       •  LC_ADDRESS
       •  LC_IDENTIFICATION
       •  LC_MEASUREMENT
       •  LC_NAME
       •  LC_PAPER
       •  LC_TELEPHONE

Do you have any reference about LC_PAPER reference being available on macOS by any chance?

@afh
Copy link
Contributor Author

afh commented Jul 11, 2023

ℹ️ The man-db test failures have been raised upstream.

Enable tests on Darwin
@afh
Copy link
Contributor Author

afh commented Jul 20, 2023

Kindly requesting re-review now that upstream has provided patches forthat fix the test failures (for details see gitlab:man-db/man-db#25 and gitlab:man-db/man-db#25) and newly enabled man-db tests on Darwin are passing locally for me.

@afh afh requested review from trofi and wegank July 20, 2023 21:36
@afh
Copy link
Contributor Author

afh commented Jul 20, 2023

☝️ /cc @trofi, @wegank, @toonn, @reckenrode

@reckenrode
Copy link
Contributor

@ofborg eval

@toonn
Copy link
Contributor

toonn commented Jul 24, 2023

I've been building this for the last two days again. No eval errors yet but only halfway there. I'm not sure why but many Python packages seem to be taking ages to build.

@reckenrode
Copy link
Contributor

I was able to build groff on both x86_64-darwin and aarch64-darwin. I didn’t run nixpkgs-review due to the (presumably) large number of rebuilds.

@afh
Copy link
Contributor Author

afh commented Jul 25, 2023

That's good news, thanks @reckenrode. Do you know if any actions need to be taken for this PR in order to address the ofborg-eval check and if yes which actions?

@toonn
Copy link
Contributor

toonn commented Jul 25, 2023

AFAICT that's unrelated. My build still hasn't finished but I'll trust reckenrode's.

Copy link
Contributor

@toonn toonn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Previous message should've been an approval rather than a comment.

@toonn toonn merged commit ee7c309 into NixOS:staging Jul 25, 2023
19 of 21 checks passed
@reckenrode
Copy link
Contributor

I was going to say. 😅

I think the go-modules stuff is fallout from #242905.

@afh afh deleted the update-groff branch July 25, 2023 13:18
@afh
Copy link
Contributor Author

afh commented Jul 25, 2023

Thanks everyone for your help on this, I'm very excited for this to have been merged! 😃👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants