aboutsummaryrefslogtreecommitdiff
path: root/doc/bugs/Use_install__40__1__41___instead_of_cp__40__1__41___for_installing_files.mdwn
blob: 88a187dfc220a1d5a2f8a6bc1f186df184352fa1 (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
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; [[bugs/done]]. --[[JoshTriplett]]