Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error building git with gui support. #16

Closed
CamilleScholtz opened this issue Oct 23, 2017 · 11 comments
Closed

Error building git with gui support. #16

CamilleScholtz opened this issue Oct 23, 2017 · 11 comments

Comments

@CamilleScholtz
Copy link

CamilleScholtz commented Oct 23, 2017

Running gettext-tiny 0.2.0 on CRUX, I'm 80% sure this is a gettext-tiny caused error:

    SUBDIR git-gui
GITGUI_VERSION = 0.21.GITGUI
    * new locations or Tcl/Tk interpreter
    MSGFMT po/pt_pt.msg     MSGFMT    po/ru.msg make[1]: *** [Makefile:252: po/pt_pt.msg] Error 127
    MSGFMT    po/ja.msg make[1]: *** Waiting for unfinished jobs....
make[1]: *** [Makefile:252: po/ru.msg] Error 127
make[1]: *** [Makefile:252: po/ja.msg] Error 127
make: *** [Makefile:1797: all] Error 2
=======> ERROR: Building '/usr/src/pkg/pkg/git#2.14.2-1.pkg.tar.gz' failed
@rofl0r
Copy link
Member

rofl0r commented Oct 23, 2017

could you please try latest git ? there have been a number of fixes since 0.2.0

@CamilleScholtz
Copy link
Author

Nope, sadly the same error.

@rofl0r
Copy link
Member

rofl0r commented Oct 23, 2017

Error 127 sounds like a segfault... would you be able to catch a backtrace ?

@xhebox
Copy link
Collaborator

xhebox commented Oct 24, 2017

@onodera-punpun cant reproduce, please provide more information, like configure options, set -x, or make V=1

GITGUI_VERSION = 0.21.GITGUI-dirty
    * new locations or Tcl/Tk interpreter
    MSGFMT po/zh_cn.msg     MSGFMT    po/ru.msg     MSGFMT    po/el.msg     MSGFMT po/pt_br.msg     MSGFMT    po/it.msg 366 translated, 8 fuzzy, 17 untranslated.
    MSGFMT    po/bg.msg 520 translated.
    MSGFMT    po/fr.msg 520 translated.
    MSGFMT    po/nb.msg 381 translated, 10 fuzzy.
    MSGFMT    po/hu.msg 519 translated, 1 untranslated.
    MSGFMT    po/sv.msg 474 translated, 39 untranslated.
    MSGFMT    po/vi.msg 520 translated.
    MSGFMT    po/ja.msg 547 translated.
    MSGFMT po/pt_pt.msg 514 translated.
    MSGFMT    po/de.msg 565 translated.

@CamilleScholtz
Copy link
Author

CamilleScholtz commented Oct 24, 2017

No configure options, no CFLAGS, etc:

~/tmp/git-2.14.2 make V=1
make -C git-gui  gitexecdir='/home/onodera/libexec/git-core' all
make[1]: Entering directory '/home/onodera/tmp/git-2.14.2/git-gui'
tclsh po/po2msg.sh --statistics --tcl -l de -d po/ po/de.po
make[1]: tclsh: Command not found
make[1]: *** [Makefile:252: po/de.msg] Error 127
make[1]: Leaving directory '/home/onodera/tmp/git-2.14.2/git-gui'
make: *** [Makefile:1797: all] Error 2

I've now confirmed that it actually does build with normal gettext which doesn't provide tclsh.


gettext-tiny build instructions used, it might be I am doing something wrong here?
https://github.com/6c37/crux-ports-dropin/blob/3.3/gettext-tiny/Pkgfile

@xhebox
Copy link
Collaborator

xhebox commented Oct 24, 2017

@rofl0r @onodera-punpun OK, so here's the reason:

	MSGFMT ?= msgfmt
	ifneq ($(shell $(MSGFMT) --tcl -l C -d . /dev/null 2>/dev/null; echo $$?),0)
		MSGFMT := $(TCL_PATH) po/po2msg.sh
	endif

-l C is not handled correctly, and -d . will cause an abort. i think tiny should work even if these two features are not supported. and we may not implement them since those two options are not included as one of our goals. we still need a discussion on 'abort or ignore to pass?' .

as a temporary solution, install tclsh, or manually edit MAKEFILE. anyway, thanks for your reports :). i am going to sleep.

xhebox added a commit that referenced this issue Nov 6, 2017
#16

Generally speaking, `-l XX -d po --language` is passed to msgfmt to
generate catalog, only one standalone parameter does not make sense. As catalog has been replaced by gettext, we just
stub it.

Here're the changes to stub these three arguments:
1. -l is followed by a language idetifier, and for -d, it's followed by
a directory, which is used to place the generated catalog files.

2. When passed `--language`, like `msgfmt --tcl...`, we cant specific
-o at the same time. Gnu error: `msgfmt: --tcl and --output-file are mutually exclusive
.` That means there should be no output on terminal but that `-d` despite the input file.
Dont check if they're passed at the same time, as the case using `--language` is very
 rare, no translators are using it, but autobuild scripts, scripts only
 pass the correct combination.
xhebox added a commit that referenced this issue Nov 7, 2017
#16

Generally speaking, `-l XX -d po --language` is passed to msgfmt to
generate catalog, only one standalone parameter does not make sense. As catalog has been replaced by gettext, we just
stub it.

Here're the changes to stub these three arguments:
1. -l is followed by a language idetifier, and for -d, it's followed by
a directory, which is used to place the generated catalog files.

2. When passed `--language`, like `msgfmt --tcl...`, we cant specific
-o at the same time. Gnu error: `msgfmt: --tcl and --output-file are mutually exclusive
.` That means there should be no output on terminal but that `-d` despite the input file.
Dont check if they're passed at the same time, as the case using `--language` is very
 rare, no translators are using it, but autobuild scripts, scripts only
 pass the correct combination.
rofl0r pushed a commit that referenced this issue Nov 7, 2017
#16

Generally speaking, `-l XX -d po --language` is passed to msgfmt to
generate catalog, only one standalone parameter does not make sense. As catalog has been replaced by gettext, we just
stub it.

Here're the changes to stub these three arguments:
1. -l is followed by a language idetifier, and for -d, it's followed by
a directory, which is used to place the generated catalog files.

2. When passed `--language`, like `msgfmt --tcl...`, we cant specific
-o at the same time. Gnu error: `msgfmt: --tcl and --output-file are mutually exclusive
.` That means there should be no output on terminal but that `-d` despite the input file.
Dont check if they're passed at the same time, as the case using `--language` is very
 rare, no translators are using it, but autobuild scripts, scripts only
 pass the correct combination.
@rofl0r
Copy link
Member

rofl0r commented Nov 7, 2017

@onodera-punpun i committed @xhebox's fix to master, would you be so kind as to check if your issue is fixed ?

@CamilleScholtz
Copy link
Author

@rofl0r @xhebox Nope, sadly it doesn't seem to work for me.

xhebox added a commit that referenced this issue Nov 9, 2017
#16 (comment)
If we dont handle except_in_fn at the end of all other possibilities, we
may take the other flags as input file wrongly. In that case, we
will ignore the codes after that block once, since except_in_fn is
always 1 initially.
@xhebox
Copy link
Collaborator

xhebox commented Nov 9, 2017

@onodera-punpun really sorry, try new commits again please :) i should have tested but my scripts installed tcl automatically before my test, which means i did not test without tclsh actually.

EDIT: and if convenient, please try autopoint before autoconf or just autoreconf -i to solve the problem in another issue, it's not a bug of programs.

@feizhengyang
Copy link

every chekc this post : http://juniway.blogspot.com/2015/12/build-git-from-source-on-ubuntu.html

  1. sudo apt-get install tcl-dev
  2. sudo apt-get install gettext
  3. sudo apt-get install libcurl4-openssl-dev

this works for me

@rofl0r
Copy link
Member

rofl0r commented Jul 7, 2023

let's pretend this issue is fixed, since we didnt hear anything.
@feizhengyang: nice trolling.

@rofl0r rofl0r closed this as completed Jul 7, 2023
@sabotage-linux sabotage-linux locked as resolved and limited conversation to collaborators Jul 7, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants