2005年08月31日(水) [過去の今日]
#2 emcwsパッケージ化
久しぶりに挑戦してみる。 師匠 に dpatch-edit-patch というコマンドを教わり、emcwsパッチを当ててみる。
$ dpatch-edit-patch patch emcws autofiles $ zcat /path/to/patch/emcws-21.3-20031213.gz | patch -p1 ..... # find ./ -name \*.rej ./lisp/version.el.rej ./Makefine.in.rej ./configure.in.rej ./configure.rej
version.elはversion-string部でコリジョンしてるので、適当に書き換える。Makefile.in.rejは、
${bindir} ${docdir} ${libexecdir} \ ${datadir}/emacs/site-lisp \ ${datadir}/emacs/${version}/site-lisp \ `echo ${locallisppath} | sed 's/:/ /g'` ### Delete all the installed files that the `install' target would ### create (but not the noninstalled files such as `make all' would
このへんの${version}の後ろに$(EMACS_POSTFIX)を足してやる。
configure.inは30行くらいの部分がrejectされてるので、POP serverの下のdnlの直上に書き加えてやる。
configureは6000行ものrejを吐いてくれてるので、autoconfしなおす。
で、exitするとdebian/patches/emcws.dpatchができてる。debian/paches/00listの一番下にemcwsと書き加え、debian/rulesのconffalgsんとこに--with-canna、--disable-renameを加えてdch -i。適当にバージョンを書き換え、debuild -rfakeroot -uc -us。
が、うまくいかない。
cd debian/build-nox && CFLAGS="-DDEBIAN -g -O2" ../../configure --build=i486-linux-gnu --host=i486-linux-gnu --prefix=/usr --sharedstatedir=/var/lib --libexecdir=/usr/lib --localstatedir=/var/lib --infodir=/usr/share/info --mandir=/usr/share/man --with-pop=yes --with-canna --disable-rename --with-x=no checking build system type... i486-pc-linux-gnu checking host system type... i486-pc-linux-gnu checking for i486-linux-gnu-gcc... i486-linux-gnu-gcc checking whether we are using the GNU C compiler... no checking whether i486-linux-gnu-gcc accepts -g... no checking for i486-linux-gnu-gcc option to accept ANSI C... none needed checking whether ln -s works... yes checking how to run the C preprocessor... i486-linux-gnu-gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking for bison... bison -y checking for i486-linux-gnu-ranlib... no checking for ranlib... ranlib checking for egrep... grep -E checking for AIX... no configure: checking the machine- and system-dependent files to find out - which libraries the lib-src programs will want, and - whether the GNU malloc routines are usable... checking for special C compiler options needed for large files... no checking for _FILE_OFFSET_BITS value needed for large files... no checking for _LARGE_FILES value needed for large files... no checking for ANSI C header files... no checking for sys/types.h... no checking for sys/stat.h... no checking for stdlib.h... no checking for string.h... no checking for memory.h... no checking for strings.h... no checking for inttypes.h... no checking for stdint.h... no checking for unistd.h... no checking machine/soundcard.h usability... no checking machine/soundcard.h presence... no checking for machine/soundcard.h... no checking sys/soundcard.h usability... no checking sys/soundcard.h presence... yes configure: WARNING: sys/soundcard.h: present but cannot be compiled configure: WARNING: sys/soundcard.h: check for missing prerequisite headers? configure: WARNING: sys/soundcard.h: see the Autoconf documentation configure: WARNING: sys/soundcard.h: section "Present But Cannot Be Compiled" configure: WARNING: sys/soundcard.h: proceeding with the preprocessor's result configure: WARNING: sys/soundcard.h: in the future, the compiler will take precedence configure: WARNING: ## ------------------------------------------ ## configure: WARNING: ## Report this to the AC_PACKAGE_NAME lists. ## configure: WARNING: ## ------------------------------------------ ## checking for sys/soundcard.h... yes checking soundcard.h usability... no checking soundcard.h presence... no checking for soundcard.h... no checking for _oss_ioctl in -lossaudio... no checking sys/select.h usability... no checking sys/select.h presence... yes configure: WARNING: sys/select.h: present but cannot be compiled
ってなもんで、configureスクリプトがヘッダファイルを見付けてくれない。m4マクロなんぞよくわからんし、autoconfの使い方もよくわかっとらんのでどうしたものだか。ファイルそのものはあるわけだが……。
うーん、うちのautoconfとかautomakeとかがおかしいのかなあ。
(@900)