Skip to contentSkip to conversation

cpupower: add checks for xgettext and msgfmt

PATCH Superseded Siddharth Menon 3 participants 3 messages Oct 17, 2024 CPU power monitoring

v3 of 4 Superseded Latest is v4 →

lore
Share & tools
lore
#0 lore raw

PATCH v3 1/1 cpupower: add checks for xgettext and msgfmt

Check whether xgettext and msgfmt are available on the system before attempting to generate GNU gettext Language Translations. In case of missing dependency, generate warning message directing user to install the necessary package.

---
v1->v2:
- Checks for gettext tools outside the target definitions instead of inline
- Replace command with which
v2->v3:
- Update commit message

 tools/power/cpupower/Makefile | 12 ++++++++++++
 1 file changed, 12 insertions(+)
tools/power/cpupower/Makefile +12 -0
index 6c02f401069e..84987f91d11f 100644
@@ -218,17 +218,28 @@ else
 endif
 	$(QUIET) $(STRIPCMD) $@
 
+ifeq (, $(shell which xgettext))
+$(warning "Install xgettext to extract translatable strings.")
+else
 $(OUTPUT)po/$(PACKAGE).pot: $(UTIL_SRC)
 	$(ECHO) "  GETTEXT " $@
 	$(QUIET) xgettext --default-domain=$(PACKAGE) --add-comments \
 		--keyword=_ --keyword=N_ $(UTIL_SRC) -p $(@D) -o $(@F)
+endif
 
+ifeq (, $(shell which msgfmt))
+$(warning "Install msgfmt to generate binary message catalogs.")
+else
 $(OUTPUT)po/%.gmo: po/%.po
 	$(ECHO) "  MSGFMT  " $@
 	$(QUIET) msgfmt -o $@ po/$*.po
+endif
 
 create-gmo: ${GMO_FILES}
 
+ifeq (, $(shell which msgmerge))
+$(warning "Install msgmerge to merge translations.")
+else
 update-po: $(OUTPUT)po/$(PACKAGE).pot
 	$(ECHO) "  MSGMRG  " $@
 	$(QUIET) @for HLANG in $(LANGUAGES); do \
@@ -241,6 +252,7 @@ update-po: $(OUTPUT)po/$(PACKAGE).pot
 			rm -f $(OUTPUT)po/$$HLANG.new.po; \
 		fi; \
 	done;
+endif
 
 compile-bench: $(OUTPUT)libcpupower.so.$(LIB_MAJ)
 	@V=$(V) confdir=$(confdir) $(MAKE) -C bench O=$(OUTPUT)
Signature · 1 line
2.39.5
maintainer
#1 lore raw
Quoted 5 lines · Siddharth Menon

Check whether xgettext and msgfmt are available on the system before attempting to generate GNU gettext Language Translations. In case of missing dependency, generate warning message directing user to install the necessary package.

Quoted 8 lines

---
v1->v2:
- Checks for gettext tools outside the target definitions instead of inline
- Replace command with which
v2->v3:
- Update commit message

Looks like there is more than just updating commit log in this version. You fixed a problem in your v2. :)

Also when someone suggests an approach and give you a diff, the practice is to add Suggested-by

John, Do you have time to test this? Asking since you tested the previous version. Just want to make sure this one works as well.

Quoted 38 lines
  
  tools/power/cpupower/Makefile | 12 ++++++++++++
  1 file changed, 12 insertions(+)
tools/power/cpupower/Makefile +11 -0
index 6c02f401069e..84987f91d11f 100644
@@ -218,17 +218,28 @@ else
  endif
  	$(QUIET) $(STRIPCMD) $@
 
+ifeq (, $(shell which xgettext))
+$(warning "Install xgettext to extract translatable strings.")
+else
  $(OUTPUT)po/$(PACKAGE).pot: $(UTIL_SRC)
  	$(ECHO) "  GETTEXT " $@
  	$(QUIET) xgettext --default-domain=$(PACKAGE) --add-comments \
  		--keyword=_ --keyword=N_ $(UTIL_SRC) -p $(@D) -o $(@F)
+endif
 
+ifeq (, $(shell which msgfmt))
+$(warning "Install msgfmt to generate binary message catalogs.")
+else
  $(OUTPUT)po/%.gmo: po/%.po
  	$(ECHO) "  MSGFMT  " $@
  	$(QUIET) msgfmt -o $@ po/$*.po
+endif
 
  create-gmo: ${GMO_FILES}
 
+ifeq (, $(shell which msgmerge))
+$(warning "Install msgmerge to merge translations.")
+else
  update-po: $(OUTPUT)po/$(PACKAGE).pot
  	$(ECHO) "  MSGMRG  " $@
  	$(QUIET) @for HLANG in $(LANGUAGES); do \

tools/power/cpupower/Makefile update-po: $(OUTPUT)po/$(PACKAGE).pot · line 258

Quoted 7 lines
tools/power/cpupower/Makefile +1 -0
@@ -241,6 +252,7 @@ update-po: $(OUTPUT)po/$(PACKAGE).pot
  			rm -f $(OUTPUT)po/$$HLANG.new.po; \
  		fi; \
  	done;
+endif
 
  compile-bench: $(OUTPUT)libcpupower.so.$(LIB_MAJ)
  	@V=$(V) confdir=$(confdir) $(MAKE) -C bench O=$(OUTPUT)

thanks,
-- Shuah

maintainer Tested-by Tested-by
#2 lore raw
Quoted 18 lines · Shuah Khan
Quoted 5 lines · Siddharth Menon

Check whether xgettext and msgfmt are available on the system before attempting to generate GNU gettext Language Translations. In case of missing dependency, generate warning message directing user to install the necessary package.

Quoted 8 lines

---
v1->v2:
- Checks for gettext tools outside the target definitions instead of inline
- Replace command with which
v2->v3:
- Update commit message

Looks like there is more than just updating commit log in this version. You fixed a problem in your v2. :)

Quoted 7 lines

Also when someone suggests an approach and give you a diff, the practice is to add Suggested-by

John, Do you have time to test this? Asking since you tested the previous version. Just want to make sure this one works as well.

Yes I do, all 3 messages only appear once when the gettext pkg is not installed on a Fedora 40 server using the make command. When it is installed none of the messages show. Works as expected.

Siddharth, assuming no other changes. :) Please include my Tested-by tags so others know your code was tested in your V4 along with Shuah's Suggested-by and document the clean up of V3's msgmerge.

Quoted 3 lines

thanks,
-- Shuah

Signature · 4 lines
Sincerely,
John Wyatt
Software Engineer, Core Kernel
Red Hat