﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	severity	resolution	keywords	cc
3278	netpbm on BLFS SVN 2012 (with working PNG support)	Marko Madunic	blfs-book@…	"== NETPBM & BLFS ==

BLFS uses latest PNG lib and (if wanted) support for apng files. When building netpbm it complains about unsupported ZLIB etc. stuff from PNG library. (pbm2png ... breaks build) [[BR]]

netpbm super-stable and netpbm-stable will NOT WORK with latest PNG library. You must use netpbm-advanced ( bleeding edge) version.

Get netpbm advanced by running :

{{{
svn checkout http://netpbm.svn.sourceforge.net/svnroot/netpbm/advanced netpbm
}}}
Then after download , create tarball from it , so on repeated/failed builds You do not need to dload it again and again ... 

{{{
tar -cjkpvf netpbm_svn_advanced_rev_1629.tar.bz2 netpbm
}}}
''(Notice i use revision number SVN reported after checkout. Just to know what we have dloaded...)''[[BR]]

Now move to your BUILD dir and extract the netpbm sources, [[BR]]
When in netpbm dir run configure :

{{{
./configure
}}}
Answer all the questions as needed ( i just pressed ENTER / answered YES / y when asked ) , it is safe to keep proposed defaults. (prefix=/usr/local etc ...)[[BR]]
Then build netpbm :

{{{
make
}}}

There is no test / check for this package so proceede with packaging it (prior to install) as it will ask You to do :


{{{
make package pkgdir=/usr/src/packages/BUILD/netpbm_svn_advanced_rev_1629_packaged
}}}
(''NOTE: use any path You want , but it can NOT be an existing directory'')
Then install the package as root:
{{{
./installnetpbm
}}}

This will mostly fail with creating /usr/local/netpbm dir , which will be empty :(

To really install it ""cd"" to your ""packaged"" netpbm directory and 
simply copy all of it into /usr/local/netpbm  :


{{{
cd /usr/src/packages/BUILD/netpbm_svn_advanced_rev_1629_packaged
cp -axv * /usr/local/netpbm/
}}}

You shall end up with something like :

{{{
root [ ~ ]# ls /usr/local/netpbm/
README  VERSION  bin  config_template  include  lib  link  man  misc  pkginfo
}}}

Now add this to your PATH environment variable, either in /etc/profile or local user login files.

{{{
# netpbm /etc/profile addendum
if [ -d /usr/local/netpbm/bin ]
then
pathappend /usr/local/netpbm/bin
fi
}}}

And update Your /etc/ld.so.conf to search for libs in /usr/local/netpbm/lib

As root user :

{{{
echo ""/usr/local/netpbm/lib"" >> /etc/ld.so.conf
}}}

And finaly link the stuff propperly (as root again) :

{{{
cd /usr/local/netpbm/lib &&
ln -svf libnetpbm.so.11.57  libnetpbm.so &&
ln -svf ../link/libnetpbm.a .
}}}

That shall be it for LIB's , now fix the HEADERS path :
{{{
cd /usr/local/netpbm/include &&
ln -svf netpbm/*.h .
}}}
(''Netpbm creates /usr/local/netpbm/include/netpbm directory ... we want headers in /usr/local/netpbm/include   withouth another subdir ...'')

HUH. Quite a workarround to get it done but it works.
Afterwards i could successfully build UTR (Utah Raster Toolkit) against netpbm by setting propper CPPFLAGS and LDFLAGS. But that is the next Book hint.

Enjoy NETPBM on BLFS! :)
"	task	closed	normal		BOOK	SVN	medium	wontfix		
