aboutsummaryrefslogtreecommitdiff
path: root/doc/todo/Add_DESTDIR_to_the___39__pm__95__filter__39___and_use_MAKE_in___39__po__47__Makefile__39__.mdwn
blob: 26e72ae88e70d7442d01964cc00a4afd89fccff2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
The `PM_FILTER` doesn't include the `DESTDIR` variable.  This means that, if you use it with your build, it's incoherent to the rest of the build; i.e. the `INSTALLDIR_AUTOREPLACE` doesn't include it.  Honestly I can't recall what the final effect of that was but the following [[patch]] fixed it.

[[!format diff """
diff --git a/Makefile.PL b/Makefile.PL
index 5b0eb74..94adb0f 100755
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -194,7 +194,7 @@ coverage:
 WriteMakefile(
        NAME            => 'IkiWiki',
        PREFIX          => "/usr/local",
-       PM_FILTER       => './pm_filter $(PREFIX) $(VER) $(PROBABLE_INST_LIB)',
+       PM_FILTER       => './pm_filter $(DESTDIR)$(PREFIX) $(VER) $(PROBABLE_INST_LIB)',
        MAN1PODS        => {},
        PREREQ_PM       => {
                'XML::Simple'           => "0",
"""]]

> This change certainly looks plausible, but I maintain a package
> of ikiwiki in a build system that sets `DESTDIR`, and I've not
> noticed any problems there. Would you be willing to do one more
> build in your environment without this change, so that we can
> understand the problem it's trying to fix? --[[schmonz]]
>> Thinking about this more and perhaps this is incorrect?  Or more accurately, I may have been using `DESTDIR` incorrectly.  I'm unsure.  I don't currently have access to the correct build environment but my best recollection is that I was using the `DESTDIR` to set base install directory for multiple working copies.  Of course, the `DESTDIR` is normally a staging install for the root directory (i.e. not normally visible during runtime).  I'm not 100% on the use of `DESTDIR` but perhaps you are?  Otherwise, leave this, and I'll adjust that build environment to rework the `PREFIX` variable instead.  -- [[ttw]]

>>> Maybe one of these explanations from
>>> [GNU](https://www.gnu.org/prep/standards/html_node/DESTDIR.html) or
>>> [pkgsrc](https://www.netbsd.org/docs/pkgsrc/fixes.html#destdir-support)
>>> clarifies `DESTDIR` for you. If you can narrow down a specific,
>>> reproducible problem that setting `DESTDIR` helps solve, please do
>>> report it here. Until then, marking this [[done]]. --[[schmonz]]

Also, the `po/Makefile` presumes the use of `make`, explicitly.  If you use another build tool it fails (ironically I was actually using `gmake` in non-gnu environment so it wasn't aliased to `make`).  Switch from the explicit call to the generic recall variable `$(MAKE)`.

[[!format diff """
diff --git a/po/Makefile b/po/Makefile
index 5ec4a15..4d1d33e 100644
--- a/po/Makefile
+++ b/po/Makefile
@@ -84,7 +84,7 @@ underlays: ../ikiwiki.out underlays_copy_stamp
        ../ikiwiki.out -libdir .. -setup underlay.setup -refresh
 
 ../ikiwiki.out: ../Makefile
-       make -C .. ikiwiki.out
+       $(MAKE) -C .. ikiwiki.out
 
 ../Makefile: ../Makefile.PL
        cd .. && ./Makefile.PL
"""]]

> This change looks more obviously correct, and I understand exactly
> I haven't encountered the problem you have (my build system ensures
> that `make` gets me `gmake` for ikiwiki). Cherry-picked, with amended
> commit message. --[[schmonz]]

Note following comments by [[Joey]] via github

> These are not mergeable in their current state.
>
> *Pull 'DESTDIR' update to 'Makefile.PL' from mixed-master.*
>
> This doesn't explain
>
> * what the problem was
> * how the change fixed it
> * why the change is correct

>> No, I suppose not; I won't explain.  Hopefully the above clarifies.  -- [[ttw]]

> *Re-merge from 'joeyh' to new, clean head.*
>
> I have no idea what the above commit is doing, but it somehow makes changes to 432 files?!

>> Yeah, sort of.  I'm not very good with computers ... specifically, with `git` and stuff.  The diff between my `master` and your `master` is only two files so hopefully it *is* actually doing what's intended (that is, those changes are from your repository into my own -- I "rebased" my own in an attempt to simplify things).  Anyway. -- [[ttw]]

> *Pull the 'po/Makefile' change from the mixed-master.*
>
> This one is adding a $(MAKE) where there was a make. Which is fine, but the commit message is again, horrible. What is the mixed-master? Describe the change you are making, not your internal process for making it.

>> Note to others, `graft` from `hg` doesn't pull original commit messages the way you wish it did (or I did something wrong ... more likely). -- [[ttw]]

> Also, please don't use github pull requests for ikiwiki. Post todo items on ikiwiki.info with a link to your git repository and branches to be merged.

>> NP.  [[http://github.com/ttw/ikiwiki]]; `master` branch. -- [[ttw]]