Check Install

From Emergent

Jump to: navigation, search

Contents

Creating packages using CheckInstall

This is probably the simplest way to create packages as of this writing. CheckInstall works by shadowing the install tool. It runs `make install' for you, watches what files are being installed, and sticks them inside a package. It has some support for package metadata, but the packages that it creates largely violate all of the nitpicky standards found in the .rpm and .deb specifications. But really, who cares? :) So go ahead and follow the building instructions, but use the commands below instead of make install.

Dependencies

To figure out what other packages Qt, Coin and SoQt depend on (for a .deb), go to http://packages.ubuntu.com and find a similar package. Then scroll down to the bottom and look for a link that says "[dsc]". This is the control file for that package. Copy/paste the packages on the "Depends:" line after "--requires=" on the command line. Unfortunately checkinstall does not support (,) or |, so you need to remove this information from the list. You also have to remove the whitespace after commas (see below). Also make sure that SoQt depends on emergent-coin and emergent-qt, and not other versions.

When you issue these commands, our apt repository is automatically updated. See http://grey.colorado.edu/apt/binary/

Creating a .deb package

  • --install=no tells it not to install the .deb package, but it DOES install the package using make install.
  • --pakdir should be /usr/local/apt/binary/
  • --help reveals a smörgåsbord of options. Use the ones you want.

Qt

checkinstall -D -y --install=no \
                   --fstrans \
                   --pkgname=emergent-qt \
                   --pkgversion=4.3.1 \
                   --arch=i386 \
                   --pkglicense=GPL \
                   --maintainer=brian.mingus@colorado.edu \
                   --reset-uids=yes \
                   --pakdir=/usr/local/apt/binary \
                   --requires=debhelper,libxext-dev,libxrandr-dev,x11proto-core-dev,\
libsm-dev,libxmu-dev,libice-dev,libx11-dev,\
libxt-dev,libjpeg62-dev,libjpeg62-dev,zlib1g-dev,libmng-dev,\
libpng12-dev,libfreetype6-dev,libmysqlclient15-dev,flex,libpq-dev,\
libaudio-dev,libcupsys2-dev,xlibmesa-gl-dev,libgl-dev,\
libglu1-xorg-dev,libglu1-mesa-dev,libglu-dev,libxft-dev,\
libxrender-dev,libxcursor-dev,cdbs,dpatch,libxinerama-dev,\
libsqlite0-dev,libsqlite3-dev,libdbus-1-dev,libglib2.0-dev

Coin

For this package we need to include /usr/local/include/Inventor, so first create a file named inventor.list with this path on the first line, and no other contents.

checkinstall -D -y --install=no \
                   --fstrans \
                   --pkgname=emergent-coin \
                   --pkgversion=2.4.5 \
                   --arch=i386 \
                   --pkglicense=GPL \
                   --maintainer=brian.mingus@colorado.edu \
                   --reset-uids=yes \
                   --pakdir=/usr/local/apt/binary \
                   --include=inventor.list \
                   --requires=debhelper,libx11-dev,libxext-dev,libxi-dev,\
libxmu-dev,libxp-dev,libxpm-dev,libxt-dev,\
x-dev,libgl1-mesa-dev,libgl-dev,doxygen 

SoQt

SoQt installs a few headers to /usr/local/include/Inventor, but since we are including this entire directory in emergent-coin, we remove them here. Two packages cannot provide the same file - apt-get chokes on that (rightly so!)

checkinstall -D -y --install=no \
                   --fstrans \
                   --pkgname=emergent-soqt \
                   --pkgversion=1.4.1 \
                   --arch=i386 \
                   --pkglicense=GPL \
                   --maintainer=brian.mingus@colorado.edu \
                   --reset-uids=yes \
                   --pakdir=/usr/local/apt/binary \
                   --exclude=/usr/local/include/Inventor \
                   --requires=debhelper,doxygen,libx11-dev,libxext-dev,\
libxi-dev,libxmu-dev,libxp-dev,libxpm-dev,libxt-dev,\
x-dev,libgl1-mesa-dev,libgl-dev,emergent-coin,emergent-qt


Simage

checkinstall -D -y --install=no \
                   --fstrans \
                   --pkgname=emergent-simage \
                   --pkgversion=1.6.1 \
                   --arch=i386 \
                   --pkglicense=GPL \
                   --maintainer=brian.mingus@colorado.edu \
                   --reset-uids=yes \
                   --pakdir=/usr/local/apt/binary \
                   --requires=libogg-dev,libvorbis-dev,libtiff-dev,libungif4-dev,libreadline5-dev

ODE

--requires=emergent-soqt is a false dependency to keep things working

checkinstall -D -y --install=no \
                   --fstrans \
                   --pkgname=emergent-ode \
                   --pkgversion=.8 \
                   --arch=i386 \
                   --pkglicense=GPL \
                   --maintainer=brian.mingus@colorado.edu \
                   --reset-uids=yes \
                   --pakdir=/usr/local/apt/binary \
                   --requires=emergent-soqt

Emergent

sudo make deb

Update the debian repository

sudo make deb-update-repo

Creating a .rpm

Qt

  • --install=no tells it not to install the .deb package, but it DOES install the package using make install.
  • --pakdir should be /usr/local/yum
  • --help reveals a smörgåsbord of options. Use the ones you want.
checkinstall -R -y --install=no \
                   --fstrans \
                   --pkgname=emergent-qt \
                   --pkgversion=4.3.1 \
                   --arch=i386 \
                   --pkglicense=GPL \
                   --maintainer=brian.mingus@colorado.edu \
                   --reset-uids=yes \
                   --pakdir=/usr/local/yum

Coin

For this package we need to include /usr/local/include/Inventor, so first create a file named inventor.list with this path on the first line, and no other contents.

checkinstall -R -y --install=no \
                   --fstrans \
                   --pkgname=emergent-coin \
                   --pkgversion=2.4.5 \
                   --arch=i386 \
                   --pkglicense=GPL \
                   --maintainer=brian.mingus@colorado.edu \
                   --reset-uids=yes --pakdir=/usr/local/yum \
                   --include=inventor.list \
                   --requires=bash,mesa-libGL,mesa-libGLU,bzip2-libs,freetype,fontconfig 

SoQt

checkinstall -R -y --install=no \
                   --fstrans \
                   --pkgname=emergent-soqt \
                   --pkgversion=1.4.1 \
                   --arch=i386 \
                   --pkglicense=GPL \
                   --maintainer=brian.mingus@colorado.edu \
                   --reset-uids=yes \
                   --pakdir=/usr/local/yum \
                   --requires=libXi,bash,mesa-libGL,mesa-libGLU,bzip2-libs,freetype,fontconfig,emergent-qt,emergent-soqt

Simage

checkinstall -R -y --install=no \
                   --fstrans \
                   --pkgname=emergent-simage \
                   --pkgversion=1.6.1 \
                   --arch=i386 \
                   --pkglicense=GPL \
                   --maintainer=brian.mingus@colorado.edu \
                   --reset-uids=yes \
                   --pakdir=/usr/local/yum \
                   --requires=libogg,libvorbis,libtiff,libpng

Update the yum repository

sudo yum-update-repo
Personal tools