2013/04/17

Rebuild Arch Linux packages on NextVOD

[2013/04/30 updated]
I've built pacman successfully on NextVOD.
But because most base packages are still on STLinux's old packages.
It will let some packages can not build. So, I decide to rebuild base, base-devel packages on NextVOD.



At first, here is a method to list which packages should build.
$ pacman -Sg base base-devel  # here base-devel should prepared for build packages.

We can use shpkg to prepare basic 'base-devel' environment (from STLinux/fedora pre-build packages).

To simplified work, just use Arch Linux's original PKGBUILD.
makepkg -A --nocheck --skippgpcheck --skipinteg

If required other shpkg installed packages, use this command:
makepkg -Ad --nocheck --skippgpcheck --skipinteg

Solved Problems

Here listed the questions which been solved, if you face the similar error messages, try these solutions.

Q: when building pango, /usr/lib/libpixman-1.la: No such file or directory
A: remove the libpixman-1.la word in cairo's la file
Because we use stlinux's cairo to build, but arch's pixman package only provide la in pkgconfig directory.  But finally, we still must use Arch's new version cairo.  So build cairo at first and disable librsvg in cairo/PKGBUILD.

Q:  when building cvs, error: ' ': this macro is obsolete
A: Apply similar patch, add following line before ./configure in PKGBUILD
sed -i 's/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/' configure.in

Q: when building libmng, autoreconf failed on AM_C_PROTOTYPES
A:  remove old keyword by modifing the following line before ./configure in PKGBUILD
sed -i 's/^AM_C_PROTOTYPES//' configure.in

Q: when building cvs, error: required file './test-driver' not found
A: modify the following line before ./configure in PKGBUILD
autoreconf -i

Q: Build gnome-doc-utils, /usr/lib/libxml2.so.2: undefined symbol: gzopen64
A: There are multiple zlib installed. Remove the old version zlib.
find /lib /usr/lib -name 'libz*'

Q:  building pcre-8.32 hang more than one day at CC libpcre16_la-pcre16_exec.lo (even on STLinux cross compiler)
A: mark off "--enable-pcre16 --enable-pcre32 and jit" in PKGBUILD

Q: build gettext  use stlinux' glib2
Warning: arch-independent data dir (/usr/share/emacs/22.2/etc/) does not exist.
Warning: Lisp directory `/usr/share/emacs/22.2/site-lisp' does not exist.
Warning: Lisp directory `/usr/share/emacs/22.2/lisp' does not exist.
Warning: Lisp directory `/usr/share/emacs/22.2/leim' does not exist.
Warning: Could not find simple.el nor simple.elc
Cannot open load file: bytecomp
A: use Arch Linux glib2

Q:  build serf failed
/usr/share/apr-1/build/libtool --silent --tag=CC --mode=link gcc -L/usr/lib -R/usr/lib  -rpath /usr/lib -o libserf-1.la buckets/aggregate_buckets.lo buckets/request_buckets.lo context.lo buckets/buckets.lo buckets/simple_buckets.lo buckets/file_buckets.lo buckets/mmap_buckets.lo buckets/socket_buckets.lo buckets/response_buckets.lo buckets/headers_buckets.lo buckets/allocator.lo buckets/dechunk_buckets.lo buckets/deflate_buckets.lo buckets/limit_buckets.lo buckets/ssl_buckets.lo buckets/barrier_buckets.lo buckets/chunk_buckets.lo buckets/bwtp_buckets.lo buckets/iovec_buckets.lo incoming.lo outgoing.lo ssltunnel.lo auth/auth.lo auth/auth_basic.lo auth/auth_digest.lo auth/auth_kerb.lo auth/auth_kerb_gss.lo -lm    /usr/lib/libaprutil-1.la -lldap -llber -ldb-5.3 -lgdbm  -lexpat /usr/lib/libapr-1.la -luuid -lrt -lcrypt -lpthread -ldl -lm -lz -lssl -lcrypto
/usr/bin/grep: /usr/lib/libdb-4.6.la: No such file or directory
/bin/sed: can't read /usr/lib/libdb-4.6.la: No such file or directory
libtool: link: `/usr/lib/libdb-4.6.la' is not a valid libtool archive
make: *** [libserf-1.la] Error 1
A: Remove duplicate db libraries. Remove PKGBUILD's src/ directory.

Unsolved Problems

Q: 'configure: error: cannot compute suffix of object files: cannot compile
Google: link1, link2, link3

Q: hidden symbol `XXX' in YYY is referenced by DSO; Nonrepresentable section on output
Google: link1, even add '-shared' on LDFLAGS of such package's PKGBUILD is just delay the failure to runtime.


1 則留言:

匿名 提到...

Good job ~~~