diff options
author | Akinori Hattori <hattya@gentoo.org> | 2024-04-28 15:09:35 +0900 |
---|---|---|
committer | Akinori Hattori <hattya@gentoo.org> | 2024-04-28 15:09:35 +0900 |
commit | 3ca08dc865a28a3d885b4b4f44c3a45e828566b5 (patch) | |
tree | cf573a7e3c5b10b2b4755a1194f8d60e176f9be9 /app-text | |
parent | app-text/cmigemo: update to EAPI 8 (diff) | |
download | gentoo-3ca08dc865a28a3d885b4b4f44c3a45e828566b5.tar.gz gentoo-3ca08dc865a28a3d885b4b4f44c3a45e828566b5.tar.bz2 gentoo-3ca08dc865a28a3d885b4b4f44c3a45e828566b5.zip |
app-text/cmigemo: fix build
Closes: https://bugs.gentoo.org/881575
Closes: https://bugs.gentoo.org/882397
Signed-off-by: Akinori Hattori <hattya@gentoo.org>
Diffstat (limited to 'app-text')
-rw-r--r-- | app-text/cmigemo/cmigemo-1.3c-r4.ebuild | 8 | ||||
-rw-r--r-- | app-text/cmigemo/files/cmigemo-1.3c-gentoo.patch | 10 | ||||
-rw-r--r-- | app-text/cmigemo/files/cmigemo-1.3c-parallel-build.patch | 73 | ||||
-rw-r--r-- | app-text/cmigemo/files/cmigemo-1.3c-parallel-install.patch | 113 |
4 files changed, 200 insertions, 4 deletions
diff --git a/app-text/cmigemo/cmigemo-1.3c-r4.ebuild b/app-text/cmigemo/cmigemo-1.3c-r4.ebuild index 3a03e2143a77..624176e11d29 100644 --- a/app-text/cmigemo/cmigemo-1.3c-r4.ebuild +++ b/app-text/cmigemo/cmigemo-1.3c-r4.ebuild @@ -31,6 +31,8 @@ PATCHES=( # bug #246953 "${FILESDIR}"/${P}-gentoo.patch "${FILESDIR}"/${P}-ldflags.patch + "${FILESDIR}"/${P}-parallel-build.patch + "${FILESDIR}"/${P}-parallel-install.patch ) DOCS=( doc/{README_j,TODO_j,vimigemo}.txt ) @@ -48,8 +50,7 @@ src_prepare() { src_compile() { append-flags -fPIC - # parallel make b0rked - emake -j1 \ + emake \ CC="$(tc-getCC)" \ CFLAGS="${CFLAGS}" \ LDFLAGS="${LDFLAGS}" \ @@ -57,8 +58,7 @@ src_compile() { } src_install() { - # parallel make b0rked - emake -j1 \ + emake \ prefix="${ED}/usr" \ libdir="${ED}/usr/$(get_libdir)" \ gcc-install diff --git a/app-text/cmigemo/files/cmigemo-1.3c-gentoo.patch b/app-text/cmigemo/files/cmigemo-1.3c-gentoo.patch index 7cda25704894..74c5f17b9c78 100644 --- a/app-text/cmigemo/files/cmigemo-1.3c-gentoo.patch +++ b/app-text/cmigemo/files/cmigemo-1.3c-gentoo.patch @@ -9,6 +9,16 @@ include config.mk include compile/unix.mak +--- a/compile/unix.mak ++++ b/compile/unix.mak +@@ -22,6 +22,7 @@ + $(MKDIR) $$i; \ + fi \ + done ++ touch $@ + + $(outdir)cmigemo$(EXEEXT): $(objdir)main.$(O) $(libmigemo_LIB) + $(CC) -o $@ $(objdir)main.$(O) -L. -L$(outdir) -lmigemo $(LDFLAGS) --- a/configure +++ b/configure @@ -31,12 +31,12 @@ diff --git a/app-text/cmigemo/files/cmigemo-1.3c-parallel-build.patch b/app-text/cmigemo/files/cmigemo-1.3c-parallel-build.patch new file mode 100644 index 000000000000..b311754e1538 --- /dev/null +++ b/app-text/cmigemo/files/cmigemo-1.3c-parallel-build.patch @@ -0,0 +1,73 @@ +https://github.com/koron/cmigemo/pull/28 + +From fd4bad807a9a52130d58269a4b1507a8720c5ae6 Mon Sep 17 00:00:00 2001 +From: Alyssa Ross <hi@alyssa.is> +Date: Fri, 12 Nov 2021 15:16:54 +0000 +Subject: [PATCH] Add directory dependencies to fix parallel builds + +When building in parallel (make -j) sometimes make would try to create +a dictionary file before the directory containing it had been +created. To fix this, I've made the directory a dependency of each +file in it, rather than having them be sibling dependencies of the +-files targets. +--- + dict/dict.mak | 24 ++++++++++++------------ + 1 file changed, 12 insertions(+), 12 deletions(-) + +diff --git a/dict/dict.mak b/dict/dict.mak +index 8ea8a66..44bd543 100644 +--- a/dict/dict.mak ++++ b/dict/dict.mak +@@ -33,40 +33,40 @@ cp932: $(DICT) + # Dictionary in euc-jp + # + euc-jp: cp932 euc-jp-files +-euc-jp-files: $(EUCJP_DIR) $(EUCJP_DIR)/migemo-dict \ ++euc-jp-files: $(EUCJP_DIR)/migemo-dict \ + $(EUCJP_DIR)/zen2han.dat $(EUCJP_DIR)/han2zen.dat \ + $(EUCJP_DIR)/hira2kata.dat $(EUCJP_DIR)/roma2hira.dat + $(EUCJP_DIR): + $(MKDIR) $(EUCJP_DIR) +-$(EUCJP_DIR)/migemo-dict: migemo-dict ++$(EUCJP_DIR)/migemo-dict: $(EUCJP_DIR) migemo-dict + $(FILTER_EUCJP) < migemo-dict > $@ +-$(EUCJP_DIR)/zen2han.dat: zen2han.dat ++$(EUCJP_DIR)/zen2han.dat: $(EUCJP_DIR) zen2han.dat + $(FILTER_EUCJP) < zen2han.dat > $@ +-$(EUCJP_DIR)/han2zen.dat: han2zen.dat ++$(EUCJP_DIR)/han2zen.dat: $(EUCJP_DIR) han2zen.dat + $(FILTER_EUCJP) < han2zen.dat > $@ +-$(EUCJP_DIR)/hira2kata.dat: hira2kata.dat ++$(EUCJP_DIR)/hira2kata.dat: $(EUCJP_DIR) hira2kata.dat + $(FILTER_EUCJP) < hira2kata.dat > $@ +-$(EUCJP_DIR)/roma2hira.dat: roma2hira.dat ++$(EUCJP_DIR)/roma2hira.dat: $(EUCJP_DIR) roma2hira.dat + $(FILTER_EUCJP) < roma2hira.dat > $@ + + ############################################################################## + # Dictionary in utf-8 + # + utf-8: cp932 utf-8-files +-utf-8-files: $(UTF8_DIR) $(UTF8_DIR)/migemo-dict \ ++utf-8-files: $(UTF8_DIR)/migemo-dict \ + $(UTF8_DIR)/zen2han.dat $(UTF8_DIR)/han2zen.dat \ + $(UTF8_DIR)/hira2kata.dat $(UTF8_DIR)/roma2hira.dat + $(UTF8_DIR): + $(MKDIR) $(UTF8_DIR) +-$(UTF8_DIR)/migemo-dict: migemo-dict ++$(UTF8_DIR)/migemo-dict: $(UTF8_DIR) migemo-dict + $(FILTER_UTF8) < migemo-dict > $@ +-$(UTF8_DIR)/zen2han.dat: zen2han.dat ++$(UTF8_DIR)/zen2han.dat: $(UTF8_DIR) zen2han.dat + $(FILTER_UTF8) < zen2han.dat > $@ +-$(UTF8_DIR)/han2zen.dat: han2zen.dat ++$(UTF8_DIR)/han2zen.dat: $(UTF8_DIR) han2zen.dat + $(FILTER_UTF8) < han2zen.dat > $@ +-$(UTF8_DIR)/hira2kata.dat: hira2kata.dat ++$(UTF8_DIR)/hira2kata.dat: $(UTF8_DIR) hira2kata.dat + $(FILTER_UTF8) < hira2kata.dat > $@ +-$(UTF8_DIR)/roma2hira.dat: roma2hira.dat ++$(UTF8_DIR)/roma2hira.dat: $(UTF8_DIR) roma2hira.dat + $(FILTER_UTF8) < roma2hira.dat > $@ + + ############################################################################## diff --git a/app-text/cmigemo/files/cmigemo-1.3c-parallel-install.patch b/app-text/cmigemo/files/cmigemo-1.3c-parallel-install.patch new file mode 100644 index 000000000000..9ac30d65a3c0 --- /dev/null +++ b/app-text/cmigemo/files/cmigemo-1.3c-parallel-install.patch @@ -0,0 +1,113 @@ +https://github.com/koron/cmigemo/pull/29 + +From 4c7476b614208836c3f4036fca87c8c718043c8b Mon Sep 17 00:00:00 2001 +From: Sergei Trofimovich <slyich@gmail.com> +Date: Wed, 22 Jun 2022 22:07:18 +0100 +Subject: [PATCH 1/3] compile/unix.mak: add .o file dependency on $(objdir) + directory + +Without this change parallel build fails occasionally when object +files are built before directory is being created: + + make[1]: Entering directory '/build/cmigemo' + gcc -O2 -Wall -fPIC -o build/object/charset.o -c src/charset.c + Assembler messages: + Fatal error: can't create build/object/charset.o: No such file or directory + make[1]: *** [compile/unix.mak:33: build/object/charset.o] Error 1 shuffle=1655929862 +--- + compile/unix.mak | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/compile/unix.mak b/compile/unix.mak +index 8ef6413..8cf525a 100644 +--- a/compile/unix.mak ++++ b/compile/unix.mak +@@ -14,7 +14,7 @@ CFLAGS = -O2 -Wall $(DEFINES) $(CFLAGS_MIGEMO) + LDFLAGS = $(LDFLAGS_MIGEMO) + LIBS = + +-default: dirs $(outdir)cmigemo$(EXEEXT) ++default: $(outdir)cmigemo$(EXEEXT) + + dirs: + @for i in $(objdir) $(outdir); do \ +@@ -26,10 +26,10 @@ dirs: + $(outdir)cmigemo$(EXEEXT): $(objdir)main.$(O) $(libmigemo_LIB) + $(CC) -o $@ $(objdir)main.$(O) -L. -L$(outdir) -lmigemo $(LDFLAGS) + +-$(objdir)main.o: $(srcdir)main.c ++$(objdir)main.o: $(srcdir)main.c dirs + $(CC) $(CFLAGS) -o $@ -c $< + +-$(objdir)%.o: $(srcdir)%.c ++$(objdir)%.o: $(srcdir)%.c dirs + $(CC) $(CFLAGS) -o $@ -c $< + + ############################################################################## + +From 88a1ed71a637faa6ec4eeb7e2b2f0a9f597a4812 Mon Sep 17 00:00:00 2001 +From: Sergei Trofimovich <slyich@gmail.com> +Date: Wed, 22 Jun 2022 22:10:42 +0100 +Subject: [PATCH 2/3] compile/unix.mak: add install dependency on $(dictdir) + directory + +Without this change parallel install fails occasionally when +$(dictdir) is not yet present: + + gcc -o build/cmigemo ./build/object/main.o -L. -L./build/ -lmigemo -Wl,-rpath,.,-rpath,/usr/local/lib,-rpath,/usr/lib + install -m 644 dict/migemo-dict ...-cmigemo-1.3e/share/migemo/cp932 + install: cannot create regular file '...-cmigemo-1.3e/share/migemo/cp932': No such file or directory + make[1]: *** [compile/unix.mak:49: install-dict] Error 1 shuffle=1655931959 +--- + compile/unix.mak | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/compile/unix.mak b/compile/unix.mak +index 8cf525a..cb6bd8f 100644 +--- a/compile/unix.mak ++++ b/compile/unix.mak +@@ -45,7 +45,7 @@ install-mkdir: + $(MKDIR) $(dictdir)/euc-jp + $(MKDIR) $(dictdir)/utf-8 + +-install-dict: ++install-dict: install-mkdir + $(INSTALL_DATA) dict/migemo-dict $(dictdir)/cp932 + $(INSTALL_DATA) dict/han2zen.dat $(dictdir)/cp932 + $(INSTALL_DATA) dict/hira2kata.dat $(dictdir)/cp932 + +From 3b39db8a748081e60bcceb7a8ae93616a5939f41 Mon Sep 17 00:00:00 2001 +From: Sergei Trofimovich <slyich@gmail.com> +Date: Wed, 22 Jun 2022 22:16:12 +0100 +Subject: [PATCH 3/3] compile/unix.mak: add install-lib dependency on $(libdir) + directory + +Without this change parallel install fails occasionally when +$(libdir) is not yet present: + + rm -f libmigemo.so.1 libmigemo.so + ln -s libmigemo.so.1.1.0 libmigemo.so.1 + ln -s libmigemo.so.1.1.0 libmigemo.so + install -m 755 libmigemo.so.1.1.0 ...-cmigemo-1.3e/lib + rm -f ...-cmigemo-1.3e/lib/libmigemo.so.1 ...-cmigemo-1.3e/lib/libmigemo.so + ln -s libmigemo.so.1.1.0 ...-cmigemo-1.3e/lib/libmigemo.so.1 + ln: failed to create symbolic link '...-cmigemo-1.3e/lib/libmigemo.so.1': Not a directory + make[1]: *** [compile/Make_gcc.mak:38: install-lib] Error 1 shuffle=1655932664 +--- + compile/unix.mak | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/compile/unix.mak b/compile/unix.mak +index cb6bd8f..6651fcd 100644 +--- a/compile/unix.mak ++++ b/compile/unix.mak +@@ -66,6 +66,9 @@ install-dict: install-mkdir + $(INSTALL_DATA) dict/utf-8.d/zen2han.dat $(dictdir)/utf-8; \ + fi + ++# depends on $(libdir) to be already present ++install-lib: install-mkdir ++ + install: $(outdir)cmigemo$(EXEEXT) $(libmigemo_DSO) install-mkdir install-dict install-lib + $(INSTALL_DATA) $(srcdir)migemo.h $(incdir) + $(INSTALL_DATA) doc/README_j.txt $(docdir) |