aboutsummaryrefslogtreecommitdiff
path: root/doc/bugs/Use_install__40__1__41___instead_of_cp__40__1__41___for_installing_files.mdwn
blob: 12c0ad07fa12e30e4add15b5ee6c57f3f701f817 (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
Currently ikiwiki uses cp(1) with GNU extensions in Makefile.PL for installing files, thus causing problems on FreeBSD which doesn't have a cp(1) with GNU extensions in the base system.

Here is a patch against ikiwiki-1.51 for using find(1) and install(1) instead of cp(1).

    --- Makefile.PL.orig	Sun Apr 29 12:57:51 2007
    +++ Makefile.PL	Sun Apr 29 13:08:38 2007
    @@ -47,8 +47,12 @@ extra_clean:
     
     extra_install:
     	install -d $(DESTDIR)$(PREFIX)/share/ikiwiki
    -	find basewiki templates \( -type f -or -type l \) ! -regex '.*\.svn.*' \
    -		-exec cp --parents -aL {} $(DESTDIR)$(PREFIX)/share/ikiwiki \;
    +	for dir in `find -L basewiki templates -type d ! -regex '.*\.svn.*'`; do \
    +		install -d $(DESTDIR)$(PREFIX)/share/ikiwiki/$$dir; \
    +		for file in `find -L $$dir -maxdepth 1 -type f`; do \
    +			install -m 644 $$file $(DESTDIR)$(PREFIX)/share/ikiwiki/$$dir; \
    +		done; \
    +	done
     
     	install -d $(DESTDIR)$(PREFIX)/share/man/man1
     	install -m 644 ikiwiki.man $(DESTDIR)$(PREFIX)/share/man/man1/ikiwiki.1

> Couldn't it just use install -D ? --[[Joey]]

>> No, apparently FreeBSD `install` does not support `-D`.  See [the FreeBSD install manpage](http://www.freebsd.org/cgi/man.cgi?query=install&apropos=0&sektion=0&manpath=FreeBSD+6.2-RELEASE&format=html). --[[JoshTriplett]]

>> Patch applied; [[done]]. --[[JoshTriplett]]

There are still/again "cp -a"s in the Makefile as of 3.00

> It's a cp -a || install. Is that causing you a problem somehow?
> --[[Joey]]