Check Install

From emergent
Jump to: navigation, search

Creating packages using CheckInstall

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. Using it is simple - just follow the building instructions, but use the commands below instead of make install. After the packages have been made, it is necessary to refresh the apt repository, which can be accomplished with the following commands:

cd /usr/local/ubuntu && dpkg-scanpackages dists/jaunty/main/binary-i386 /dev/null | grep -v -E 'Depends:[^a-z]$' > dists/jaunty/main/binary-i386/Packages
cd /usr/local/ubuntu && dpkg-scanpackages dists/jaunty/main/binary-amd64 /dev/null | grep -v -E 'Depends:[^a-z]$' > dists/jaunty/main/binary-amd64/Packages

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

Qt 32-bit

checkinstall -D -y --install=no \
                   --fstrans \
                   --pkgname=emergent-qt \
                   --pkgversion=4.4.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

Qt 64-bit

checkinstall -D -y --install=no \
                   --fstrans \
                   --pkgname=emergent-qt \
                   --pkgversion=4.4.1 \
                   --arch=i686 \
                   --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

Coin 32-bit

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.5.0 \
                   --arch=i686 \
                   --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 

Coin 64-bit

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.6 \
                   --arch=i686 \
                   --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 32-bit

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


SoQt 64-bit

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=i686 \
                   --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

Simage 32-bit

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


Simage 64-bit

checkinstall -D -y --install=no \
                   --fstrans \
                   --pkgname=emergent-simage \
                   --pkgversion=1.6.1 \
                   --arch=i686 \
                   --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

Quarter

Quarter 32-bit

checkinstall -D -y --install=no \
                   --pkgname=libquarter \
                   --pkgversion=1.0.0\
                   --arch=i386 \
                   --pkglicense=GPL \
                   --maintainer=brian.mingus@colorado.edu \
                   --reset-uids=yes \
                   --pakdir=. \
                   --exclude="/media /media/sdb1 /media/sdb1/local /media/sdb1/local/lib /root /root/.ccache /root/.ccache/stats" \
                   --include="/usr/local/lib/libQuarter.so"


Quarter 64-bit

checkinstall -D -y --install=no \
                   --pkgname=libquarter \
                   --pkgversion=1.0.0 \
                   --arch=i686 \
                   --pkglicense=GPL \
                   --maintainer=brian.mingus@colorado.edu \
                   --reset-uids=yes \
                   --pakdir=.

ODE

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

ODE 32-bit

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

ODE 64-bit

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

Emergent

Emergent 32-bit

sudo checkinstall --fstrans -D -y --install=no --pkgname=emergent --pkgversion=4.0.17 --arch=i686 --pkglicense=GPL --maintainer=brian.mingus@colorado.edu --reset-uids=yes --pakdir=/usr/local/ubuntu/dists/hardy/main/binary-i386 --requires=emergent-qt,emergent-coin,emergent-soqt,libsndfile1,libsndfile1-dev,libgsl0ldbl,libgsl0-dev,libode0-dev,libode0debian1,libsimage-dev,libsimage20c

Emergent 64-bit

checkinstall --fstrans -D -y --install=no --pkgname=emergent --pkgversion=4.0.17 --arch=amd64 --pkglicense=GPL --maintainer=brian.mingus@colorado.edu --reset-uids=yes --pakdir=/usr/local/ubuntu/dists/hardy/main/binary-amd64 --requires=emergent-qt,emergent-coin,emergent-soqt,libsndfile1,libsndfile1-dev,libfontconfig1,libfontconfig1-dev,libfontconfig1-dbg,fontconfig-config,libgl1-mesa-dev,libglu1-mesa-dev,libglut3-dev,libxrender1,libxrender-dev,libxrender1-dbg,libxrender1,libxrender-dev,libxrender1-dbg,libxrandr-dev,libxrandr2,libxrandr2-dbg,libxrandr-dev,libxrandr2,libxrandr2-dbg,libgsl0ldbl,libgsl0-dev,libsimage20,libsimage-dev,libode0-dev,libxi6,libxi-dev,libreadline5,libreadline5-dev

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