All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
From: Alejandro Colomar <alx@kernel.org>
To: linux-man@vger.kernel.org, Petr Vorel <pvorel@suse.cz>,
	Stefan Puiu <stefan.puiu@gmail.com>, Jakub Wilk <jwilk@jwilk.net>
Cc: Michael Kerrisk <mtk.manpages@gmail.com>,
	Marcos Fouces <marcos@debian.org>
Subject: Re: Revert 70ac1c478 ("src.mk, All pages: Move man* to man/")
Date: Wed, 2 Aug 2023 23:38:57 +0200	[thread overview]
Message-ID: <18ebd939-3a57-756a-e70b-785be43690f3@kernel.org> (raw)
In-Reply-To: <a8f7856e-d442-29de-e95b-99a0e932646e@gmail.com>


[-- Attachment #1.1: Type: text/plain, Size: 5527 bytes --]

Hi all,

On 2022-09-15 15:40, Alex Colomar wrote:
> Hi all,
> 
> On 9/9/22 10:46, Petr Vorel wrote:
>>> On Thu, Sep 8, 2022 at 1:28 AM Alejandro Colomar <alx.manpages@gmail.com> wrote:
>>>> On 9/7/22 22:53, Jakub Wilk wrote:
>>>>> * Petr Vorel <pvorel@suse.cz>, 2022-09-06 11:41:
>>>>>> Although I agree that number of man* is quite high and single man
>>>>>> directory looks nicer, from practical reasons I'd prefer to revert
>>>>>> this commit.
>>
>>>>> I don't like the new layout either.
>>
>>>> Thank you both for sharing your opinion.  I'll revert it, then.  Let me
>>>> a few weeks before doing that, since I'm in the middle of some other big
>>>> changes (about lint-c), so to not have to stash and fix conflicts at
>>>> that scale.  If in the meantime someone finds the new layout nice,
>>>> please speak up :)
>>
>>> I think one other aspect to consider is that it makes history
>>> searching harder. If you type 'git log <file>', by default you only
>>> get the history to the last move. You need 'git log --follow' to see
>>> the whole history. Then if you want to do a 'git blame' on an old
>>> version of the file, pre-move, I think you need to find the old path
>>> and use that. If the maintainer's opinion of where a file should be
>>> changes often, that makes it more fun :).
>>
>> Yes, I have experience from other projects that moving around does not help.
>> But here simple revert is working well:
>> $ git revert 70ac1c4785fc1e158ab2349a962dba2526bf4fbc
>> git is smart: new changes in unshare.2 (8f4ed6463) and fanotify_mark.2
>> (c06943bee) didn't cause a conflict. But still, if you decide on revert, I'd do
>> it early (don't put new commits before it)
>>
>> $ git log man2/_exit.2 # shows previous history
>>
> 
> Reverted (before any other patches).

I'm packaging 6.05 for Debian, and I found issues.  The problem is
present due a combination of the patch below and not having a man/
dir.

Since we support any kind of dirs within $(MANDIR), and not just
man*, `make check` happily checks any file whose name resembles a
manual page.  This is useful for linting random projects that put
their pages together with their sources, in an unorganized
directory structure.  Most projects do this.

In the Debian manpages packaging, this finds patches in .pc/, which
are placed there by quilt(1).

I see several different solutions to make gbp-buildpackage(1) work:

-  My preferred one would be to move (again) the pages to a man/
   dir in the root of the project and define `MANDIR:=$(srcdir)/man`.
   Then, `make check` would just ignore .pc/ in the root of the repo.

-  Revert the patch below.  I don't like it, since then we wouldn't
   be able to use our build system to lint other project's manual
   pages, which is an interesting feature.

-  Revert the patch in the Debian packaging.  However, other
   distributors may have similar problems.

-  Completely disable `make check` (via override_dh_auto_test) in
   Debian packaging.  I don't like this.  I think distros running
   `make check` is useful to detect regressions.

What do you think?

Thanks,
Alex

---

commit 11e3443c0c6812460402382857e6af9c83938e47
Author: Alejandro Colomar <alx@kernel.org>
Date:   Sat Apr 29 19:29:50 2023 +0200

    *.mk: Allow non-standard source MANDIRS
    
    Some projects don't store their source manual pages in a directory
    structure resembling $MANPATH.  Allow such a directory structure so that
    we can for example lint groff's source manual pages:
    
    $ make check lint MANDIR=~/src/gnu/groff;
    
    Signed-off-by: Alejandro Colomar <alx@kernel.org>

diff --git a/share/mk/build/_.mk b/share/mk/build/_.mk
index 6cc820073..2f8ae0bcb 100644
--- a/share/mk/build/_.mk
+++ b/share/mk/build/_.mk
@@ -23,12 +23,12 @@ MKDIR := mkdir -p
 RM    := rm
 
 
-NONSO_MAN := $(shell $(FIND) $(MANDIR)/man*/ -type f \
+NONSO_MAN := $(shell $(FIND) $(MANDIR)/ -type f \
                | $(GREP) '$(MANEXT)' \
                | $(XARGS) $(GREP) -l '^\.TH ' \
                | $(SORT) \
                | $(SED) 's,:,\\:,g')
-NONSO_MDOC := $(shell $(FIND) $(MANDIR)/man*/ -type f \
+NONSO_MDOC := $(shell $(FIND) $(MANDIR)/ -type f \
                | $(GREP) '$(MANEXT)' \
                | $(XARGS) $(GREP) -l '^\.Dt ' \
                | $(SORT) \
diff --git a/share/mk/build/src.mk b/share/mk/build/src.mk
index 4da142a74..86d024e2f 100644
--- a/share/mk/build/src.mk
+++ b/share/mk/build/src.mk
@@ -57,7 +57,7 @@ LD  := $(CC) $(CFLAGS)
 _SRCPAGEDIRS   := $(patsubst $(MANDIR)/%,$(_MANDIR)/%.d/,$(NONSO_MAN))
 
 _UNITS_src_src := $(patsubst $(MANDIR)/%,$(_MANDIR)/%,$(shell \
-               $(FIND) $(MANDIR)/man*/ -type f \
+               $(FIND) $(MANDIR)/ -type f \
                | $(GREP) '$(MANEXT)' \
                | $(XARGS) $(GREP) -H '^\.\\" SRC BEGIN ' \
                | $(SED) 's,:\.\\" SRC BEGIN (,.d/,' \
diff --git a/share/mk/src.mk b/share/mk/src.mk
index 76deb8230..169bf7e6d 100644
--- a/share/mk/src.mk
+++ b/share/mk/src.mk
@@ -15,7 +15,7 @@ MANDIR := $(srcdir)
 MANEXT := \.[0-9]\w*\(\.man\)\?\(\.in\)\?$
 
 
-MANPAGES := $(shell $(FIND) $(MANDIR)/man*/ -type f \
+MANPAGES := $(shell $(FIND) $(MANDIR)/ -type f \
                | $(GREP) '$(MANEXT)' \
                | $(SORT) \
                | $(SED) 's,:,\\:,g')


-- 
<http://www.alejandro-colomar.es/>
GPG key fingerprint: A9348594CE31283A826FBDD8D57633D441E25BB5

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  parent reply	other threads:[~2023-08-02 21:39 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-06  9:41 Revert 70ac1c478 ("src.mk, All pages: Move man* to man/") Petr Vorel
2022-09-06 11:19 ` Alejandro Colomar
2022-09-06 11:57   ` Alejandro Colomar
2022-09-06 11:58     ` Alejandro Colomar
2022-09-06 16:09   ` Petr Vorel
2022-09-07 20:53 ` Jakub Wilk
2022-09-07 22:11   ` Alejandro Colomar
2022-09-08 12:42     ` Stefan Puiu
2022-09-09  8:46       ` Petr Vorel
2022-09-15 13:40         ` Alex Colomar
2022-09-15 13:48           ` Petr Vorel
2023-08-02 21:38           ` Alejandro Colomar [this message]
2023-08-02 21:45             ` Alejandro Colomar
2024-03-26  1:28         ` Move man* to man/ (was: Revert 70ac1c478 ("src.mk, All pages: Move man* to man/")) Alejandro Colomar
2024-04-26 12:43           ` Ping: " Alejandro Colomar
2024-04-26 18:03             ` Petr Vorel
2024-04-26 20:19               ` Alejandro Colomar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=18ebd939-3a57-756a-e70b-785be43690f3@kernel.org \
    --to=alx@kernel.org \
    --cc=jwilk@jwilk.net \
    --cc=linux-man@vger.kernel.org \
    --cc=marcos@debian.org \
    --cc=mtk.manpages@gmail.com \
    --cc=pvorel@suse.cz \
    --cc=stefan.puiu@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.