Ticket #743 (reopened Defect)

Opened 1 year ago

Last modified 4 weeks ago

Unix "make install" doesn't install gettext files correctly

Reported by: Nicolas Assigned to: korpela
Priority: Undetermined Milestone: Undetermined
Component: Client - Build Version:
Keywords: Cc:

Description

The custom install rules in locale/client/Makefile.am are incorrect.

  1. It's trying to copy the .po files. Those are source code; it should install the .mo files.
  2. It doesn't work with out-of-source builds. The makefile copies the files from the current directory, which isn't necessarily the source directory, where the files actually are. The only file in build_dir/locale/client is the Makefile.

To reproduce 2., do

mkdir build;
cd build;
../configure --prefix=~/local/boinc-test; #or wherever...
cd locale/client;
make install; # this looks in build/locale/client/<lang> instead of locale/client/<lang>

Change History

09/29/08 09:06:59 changed by Nicolas

  • owner changed from romw to korpela.

Hmm, I guess the default owner setting for "Client - Setup" tickets assumes "Setup" is the Windows installer :) Reassigning.

10/03/08 05:29:05 changed by fthomas

Additionally, the makefile should build the .mo files from the .po files at build time.

10/06/08 08:08:41 changed by Nicolas

  • component changed from Client - Setup to Client - Build.

10/30/09 13:57:18 changed by romw

  • status changed from new to closed.
  • resolution set to fixed.

fixed in r19426

10/30/09 14:33:37 changed by Nicolas

  • status changed from closed to reopened.
  • resolution deleted.

I don't think so. See item 2 in bug description; I even posted instructions to reproduce.

~/src/boinc$ mkdir build; cd build
~/src/boinc/build$ ../configure --prefix=$HOME/local/boinc-test
...
~/src/boinc/build$ cd locale
~/src/boinc/build/locale$ ls
Makefile
~/src/boinc/build/locale$ make install
make[1]: Entering directory `/home/nicolas/src/boinc/build/locale'
make  install-exec-hook
make[2]: Entering directory `/home/nicolas/src/boinc/build/locale'
mydir=/home/nicolas/local/boinc-test/share/locale  ;\
        for ldir in ar be bg ca cs da de el es fa fr gl hr hu it ja ko lt lv nl pl pt pt_BR ro ru sk sv_SE tr uk zh_CN zh_TW ; do \
          /usr/bin/install -c -d $mydir/$ldir ; \
          if [ -f $ldir/BOINC-Manager.mo ] ; then \
            /usr/bin/install -c $ldir/BOINC-Manager.mo $mydir/$ldir/BOINC-Manager.mo ; \
          fi ;\
        done
make[2]: Leaving directory `/home/nicolas/src/boinc/build/locale'
make[1]: Nothing to be done for `install-data-am'.
make[1]: Leaving directory `/home/nicolas/src/boinc/build/locale'

It didn't install any file at all. The PREFIX/share/locale directory only has empty subdirectories:

$ ls /home/nicolas/local/boinc-test/share/locale
ar  bg  cs  de  es  fr  hr  it  ko  lv  pl  pt_BR  ru  sv_SE  uk     zh_TW
be  ca  da  el  fa  gl  hu  ja  lt  nl  pt  ro     sk  tr     zh_CN
$ ls /home/nicolas/local/boinc-test/share/locale/es
$ ls /home/nicolas/local/boinc-test/share/locale/de
$

If this page is incomplete or incorrect, please edit it or add it to the wiki to-do list. To do this, you must be logged in; click Login or Register above.