Opened 16 years ago

Last modified 14 years ago

#743 reopened Defect

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

Reported by: Nicolas Owned by: Eric 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 (6)

comment:1 Changed 16 years ago by Nicolas

Owner: changed from romw to Eric Korpela

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

comment:2 Changed 16 years ago by fthomas

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

comment:3 Changed 16 years ago by Nicolas

Component: Client - SetupClient - Build

comment:4 Changed 15 years ago by romw

Resolution: fixed
Status: newclosed

fixed in r19426

comment:5 Changed 15 years ago by Nicolas

Resolution: fixed
Status: closedreopened

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
$

comment:6 Changed 14 years ago by Christian Beer

I'm not sure if out-of-source builds should work for this. Translations are updated with the upgrade script.

Note: See TracTickets for help on using tickets.