makepack

The über Makefile


Quick favorite links: Documentation FAQ Download Contact

About

Makepack is a Makefile which together with a settings file and some simple rule files are able to download, compile and install software for your Slackware installation. As the installation is done using checkinstall a Slackware package is also created at the same time. The big strenght of makepack is that it has mechanisms to keep track of dependencies when downloading and installing software.

License

This Makefile together with its Settings.mk and rule files are published under the terms of the GNU GENERAL PUBLIC LICENSE (GPL).

Documentation

There is a users guide which describes how to configure and use makepack. There is also a rule writing guide which describes how to write your own makepack rules.

FAQ

In lack of questions the FAQ is still rather small..

Screenshots

$ make list

Compress-Zlib:  Compress::Zlib Perl module
FileRunner:     a simple and efficient X11 file manager for Unix
Image-ExifTool: Utility for editing meta information in image files
Imaging:        Python Imaging Library (PIL), image processing for python
MPlayer:        movie player
MPlayer_win_codecs:     all MPlayer windows codecs for Linux x86
Numeric:        Python package for scientific computing
Pike:   A dynamic programming language.
PyQt-x11-gpl:   A set of Python bindings for the Qt toolkit
SDL_image:      Image file loading library
SDL_mixer:      Sample multi-channel audio mixer library.
SDL_ttf:        Library for using TrueType fonts in SDL applications.
TiMidity++:     MIDI to WAVE converter and player.
a52dec: a free library for decoding ATSC A/52 streams
angrydd:        Angry, Drunken Dwarves, falling blocks puzzle game
atlas:  Automatically Tuned Linear Algebra Software (ATLAS)
avifile:        a few multimedia-related utilities
avifile-binary-codecs:  Binary Windows codecs for avifile
avifile-wm9-codec:      Binary Windows WM9 codec for avifile
bfr:    A buffer program which might speed up programs waiting at pipes.
bio2jack:       A lib for simple porting of OSS/ALSA audio applications to Jack.bzflag: multiplayer multiplatform 3D tank battle game.
cdlabelgen:     Creates CD/DVD inserts and envelopes
compface:       library for thumbnails of email authors in a mail header
cstream:        A general-purpose stream-handling tool
cvsgraph:       A utility to make a graph of revisions and branches from CVS.
ddd:    Data Display Debugger, frontend for gdb
dillo:  a small, stable and fast web browser.
divx4linux:     DivX encoder and decoder for linux
dvdauthor:      A simple set of tools to help you author a DVD.
dvgrab: Tool to grab .avi files from firewire connected DV cams.
easytag:        graphical (gtk) mp3 id3 tag editor
epstool:        A utility to create or extract preview images in EPS files.
ffmpeg: programs and libs to record, convert and stream audio and video.
fftw:   Fastest Fourier Transform in the West.
flac:   library for Free Lossless Audio Codec
gocr:   OCR (Optical Character Recognition) program.
gpgme:  GPGME  (GnuPG Made Easy), a library for cryptography.
gphoto2:        Console application for accessing digital cameras
gscanbus:       An IEEE1394 testing and visualization tool.
gtimer:
gtkspell:       Provides spell mechanism in a GtkTextView widget.
id3lib: library for mp3 id3 tags
imgSeek:        Photo collection manager and viewer with content-based search
jack-audio-connection-kit:      a low-latency audio server
jhead:  Exif Jpeg header and thumbnail manipulator program
kdiff3: Tool for comparision of files or directories
kqemu:  Kernel module which accelerates qemu
ladspa: Linux Audio Developer's Simple Plugin API
lame:   LAME is an LGPL MP3 encoder.
libavc1394:     API for the 1394 Trade Association AV/C (Audio/Video Control)
libdts: a free DTS Coherent Acoustics decoder
libdv:  Library with the Quasar codec used by DV camcorders.
libdvdcss:      library which provides functions for reading DVD video disks.
libdvdread:     library which provides functions for reading DVD video disks.
libevent:       an event notification library
libfame:        video encoding library
libggi: General Graphics Interface.
libgii: General Input Interface.
libgpg-error:   Library with error codes for most GnuPG related software.
libgphoto2:     Library for accessing digital cameras
libiec61883:    Library to access firewire devices.
libmpcdec:      Audio compression
libmpeg3:       LibMPEG3 decodes several MPEG standards into uncompressed data
libquicktime:   enhanced quicktime4linux library
libraw1394:     Library to access firewire devices.
libsamplerate:  a Sample Rate Converter for audio
libsndfile:     C library for reading and writing files containing sampled soundlibtheora:      open video codec
live555:        library used by MPlayer to play streming media
lzo:    fast portable lossless data compression library
mercurial:      Lightweight Source Control Management system
mjpegtools:     set of tools that can do recording of videos and playback
mldonkey:       P2P program
mpeg2dec:       MPEG-2 video stream decoder
mplayerplug-in: This plug-in gives Mozilla the ability to play media
ms-sys: Utility for writing microsoft compatible boot records
nas:    The Network Audio System, the audio equivalent of an X server.
nedit:  A multi-purpose text editor for the X Window System.
numpy:  Python package for scientific computing
ocaml:  general-purpose programming language
onig:   regular expressions library
pdnsd:  a proxy DNS server with permanent caching
privoxy:        a web proxy with advanced filtering capabilities
pstoedit:       Translates PostScript and PDF graphics into other vector formats.
pygame: A set of Python modules designed for writing games
qemu:   Generic processor emulator
read-edid:      Gets information from a PnP compatible monitor
rpc.rstatd:     Allows one to monitor performance related parameters remotely.
saytime:        A talking clock
sip:    A set of Python bindings for the Qt toolkit
smpeg:  SDL MPEG Player Library
stellarium:     A 3D astronomical sky renderer.
sylpheed:       A lightweight but featureful, and easy-to-use e-mail client
timidity-patches:       Sound files for Timidity++
tor:    An anonymous Internet communication system
transcode:      Command line utilities for transcoding video and audio
valgrind:       A suite of tools for debugging and profiling Linux programs.
vstream-client: library used by MPlayer/MEncoder to watch/re-encode tivo streamswine:   Wine Is Not an Emulator, but capable of running MS-Win programs.
x264:   a free library for encoding H264/AVC video streams
xrmap:  Vector world map program with CIA World data bank II
xvidcore:       divx compatible codec

	    
$ make easytag check
id3lib-3.8.3-i486-1 is already installed,
id3lib-3.8.3-pentium4-mp will NOT be installed
unless id3lib-3.8.3-i486-1 is removed.
 
flac-1.1.0-i386-1 is already installed,
flac-1.1.2-pentium4-mp will NOT be installed
unless flac-1.1.0-i386-1 is removed.
 
easytag-1.1-pentium4-mp is already installed,
and will not be installed again.
	    

Changelog

From the CHANGELOG:

Date       Version  Comment
---------------------------------------------------------------------------
29/7 2007  0.2.0    Upgraded the following rules:
           MPlayer  to version 1.0rc1
           MPlayer_win_codecs to version 20061022, also
                    placed this file on a mirror as previos
                    versions has been removed from mplayerhq.
           dvdauthor          to version 0.6.14           
           gpgme    to version 1.1.4
           gphoto2  to version 2.3.1
           jack     to version 0.103.0
           kqemu    to version 1.3.0pre9, also changed dependencies so that
                    kqemu now depends on qemu instead of qemu depending on
                    kqemu. This might make sense for future versions of qemu
                    which might use kvm instead of kqemu.
           qemu     to version 0.9.0, qemu will not compile with gcc 4 which is
                    included with Slackware 12. Also, once compiled it does not
                    seem very stable.
           lame     to version 3.97
           libdv    to version 1.0.0
           libdvdread   to version 0.9.7
           libggi   to version 2.2.2
           libgphoto2   to version 2.3.1
           libgii   to version 1.0.2
           libgpg-error to version 1.5
           libquicktime to version 1.0.0
           libmpeg3 to version 1.7
           libtheora    to version 1.0alpha7
           mjpegtools   to version 1.9.0rc2
           mpeg2dec to version 0.4.1
           mplayerplug-in  to version 3.40
           nas      to version 1.9
           sylpheed to version 2.4.4
           transcode    to version 1.0.3
           valgrind to version 3.2.3
           xvidcore to version 1.1.3
           
                    New rules. Support for the following applications:
           FileRunner      http://www.cd.chalmers.se/~hch/filerunner.html
           Image-ExifTool  http://www.sno.phy.queensu.ca/~phil/exiftool/
           bfr             http://www.glines.org/wiki/bfr
           cdlabelgen      http://www.aczoom.com/tools/cdinsert/
           cstream         http://www.cons.org/cracauer/cstream.html
           cvsgraph        http://www.akhphd.au.dk/~bertho/cvsgraph/
           ddd             http://www.gnu.org/software/ddd/
                           However, ddd does not compile on Slackware 12
           dvgrab          http://www.kinodv.org/
           epstool         http://pages.cs.wisc.edu/~ghost/gsview/epstool.htm
           gocr            http://jocr.sourceforge.net/
           gscanbus        http://gscanbus.berlios.de/
           gtimer          http://www.k5n.us/gtimer.php
           jhead           http://www.sentex.net/~mwandel/jhead/
           kdiff3          http://kdiff3.sourceforge.net/
           nedit           http://www.nedit.org/
           mercurial       http://www.selenic.com/mercurial/
           privoxy         http://www.privoxy.org/
           pstoedit        http://www.pstoedit.net/
           rpc.rstatd      http://rstatd.sourceforge.net/
           saytime         http://www.acme.com/software/saytime/
           tor             http://tor.eff.org/
           wine            http://www.winehq.org/

                    Support for the following libraries:
           libavc1394      http://sourceforge.net/projects/libavc1394/
           libdvdcss       http://www.videolan.org/developers/libdvdcss.html
           libevent        http://www.monkey.org/~provos/libevent/
           libmpcdec       http://www.musepack.net/
           libraw1394      http://www.linux1394.org/
           libiec61883     http://www.linux1394.org/
           onig            http://www.geocities.jp/kosako3/oniguruma/
           x264            http://www.videolan.org/developers/x264.html

                    Wildcards in REMOVE_FROM_PACKAGE now also works with newer
                    versions of tar.
                    This version of makepack is supposed to work with
                    Slackware 12. Unfortunately ddd does not compile on
                    Slackware 12 because of broken header files from X.org or
                    lesstif. If you really want ddd on Slackware 12 there are
                    instructions out there on how to modify those header files.

5/11 2006  0.1.0    Upgraded the following rules:
           kqemu      to version 1.3.0pre9. Kqemu is problematic for makepack
                      as old versions are removed from the upstream qemu
                      website. For other software issues like this has been
                      solved by mirroring the source package on the makepack
                      mirrors provided by SourceForge. However, kqemu is not
                      free to be redistributed like this without permission.
           MPlayer    to version 1.0pre8, also added support for xvmc
           transcode  On Slackware 11 compile transcode without avifile,
                      libfame or libmpeg3 as those libraries have mmx problems.
           qemu       Is not updated to 0.8.2 as older kernels have problems
                      with CLOCK_MONOTONIC.
                    New rules. Support for the following applications:
           bzflag     http://bzflag.org/
           gphoto2    http://gphoto.org/
           mplayerplug-in  http://mplayerplug-in.sourceforge.net/
           pdnsd      http://www.phys.uu.nl/~rombouts/pdnsd.html
           read-edid  http://john.fremlin.de/programs/linux/read-edid/
           sylpheed   http://sylpheed.good-day.net/en/
           valgrind   http://www.valgrind.org/
                    Support for the following libraries:
           compface   http://freshmeat.net/projects/compface/
           gtkspell   http://gtkspell.sourceforge.net/
           gpgme      http://www.gnupg.org/related_software/gpgme/
           libgphoto2 http://gphoto.org/
           libgpg-error http://www.gnupg.org/related_software/libgpg-error/
                    Removed the following rules as I was unable to compile
                    OpenOffice.org from source on Slackware 11:
           Archive-Zip
           Crypt-SSLeay
           PAM_headers
           SOAP-Lite
           XML-Parser
           apache-ant
           openoffice.org
           xalan
                    The makepack rules for Openoffice.org never worked really
                    good anyway as openoffice.org could not use any CPU specifc
                    optimization flags. There is no point in spending a lot of
                    time compiling from source when you get no optimizations.

                    Made it possible to have absolute paths in Settings.mk
                    for RULE_DIR, SOURCE_DIR, BUILD_DIR and PACKAGE_DIR.
                    Unfortunately this new functionality requires gnu make
                    version 3.81 even if absolute paths is not used. Otherwise
                    you might get an error about "No rule to make target...tgz"
                    This error message should dissapear after a second try to
                    run make even with older versions of gnu make. It is also
                    possible to avoid this error with older versions of make
                    by doing "make all directories".

                    Gnu Make 3.81 is included in Slacware 11, but Slackware 11
                    ships version 1.6.0 of checkinstall which is broken. The
                    recomended solution is to revert checkinstall to version
                    1.5.3 which is included in Slackware 10.2. One day Makepack
                    might replace checkinstall with slacktrack. However, at
                    least slacktrack 1.26 included in Slackware 10.2 seems
                    unable to replace checkinstall and it also installs a
                    broken installwatch.so which also breaks a checkinstall
                    installation.

6/6 2006   0.0.3    Upgraded the following rules:
           qemu       to version 0.8.1, kqemu was also upgraded to 1.3.0pre7
           MPlayer    codecs source package has been renamed at mplyaerhq.hu
                    New rules. Support for the following applications:
           a52dec     http://liba52.sourceforge.net/
           avifile    http://avifile.sourceforge.net/
           dillo      http://www.dillo.org/
           dvdauthor  http://dvdauthor.sourceforge.net/
           ffmpeg     http://ffmpeg.sourceforge.net/
           lame       http://lame.sourceforge.net/
           mjpegtools http://mjpeg.sourceforge.net/
           mpeg2dec   http://libmpeg2.sourceforge.net/
           Pike       http://pike.ida.liu.se/
           stellarium http://www.stellarium.org/
           TiMidity++ http://timidity.sourceforge.net/
           transcode  http://www.transcoding.org/
           xrmap      http://frmas.free.fr/li_1.htm
                    Support for the following libraries:
           divx4linux http://avifile.sourceforge.net/
           libdvdread http://www.dtek.chalmers.se/groups/dvd/downloads.shtml
           libfame    http://fame.sourceforge.net/
           libmpeg3   http://heroinewarrior.com/libmpeg3/
           libquicktime http://libquicktime.sourceforge.net/
                    This release should still be considered to have beta
                    status. The specifications for how to write rule files
                    might change in newer releases.

7/5 2006   0.0.2    Added files Mirrors.CPAN and Mirrors.SourceForge which
                    simplifies the rule files by using the variables SF_DIR
                    and CPAN_DIR instead of listing long URL_DIR variables.
                    New rules. Support for the following applications:
           Ant        http://ant.apache.org/
           imgSeek    http://www.imgseek.net/
           MLDonkey   http://mldonkey.sourceforge.net/Main_Page
           MPlayer    http://www.mplayerhq.hu/
           NAS        http://radscan.com/nas.html
           Ocaml      http://caml.inria.fr/ocaml/index.en.html
           OpenOffice http://www.openoffice.org/
           vstream    http://armory.nicewarrior.org/projects/vstream-client/
           Xalan-Java http://xml.apache.org/xalan-j/index.html
                    Support for the following libraries:
           bio2jack   http://bio2jack.sf.net
           fftw       http://www.fftw.org/
           Imaging    http://www.pythonware.com/products/pil/index.htm
           Jack       http://jackit.sourceforge.net/
           ladspa     http://www.ladspa.org/          
           libcdio    http://www.gnu.org/software/libcdio/
           libdv      http://libdv.sourceforge.net/
           libdts     http://developers.videolan.org/libdca.html
           libfame    http://fame.sourceforge.net/
           live555    http://www.live555.com/liveMedia/
           libggi     http://www.ggi-project.org/
           libtheora  http://www.theora.org/
           lzo        http://www.oberhumer.com/opensource/lzo/
           samplerate http://www.mega-nerd.com/SRC/index.html
           libsndfile http://www.mega-nerd.com/libsndfile/
           PyQt       http://www.riverbankcomputing.com/Docs/PyQt3/PyQt.html
           SIP        http://www.riverbankcomputing.com/Docs/sip4/sipref.html
           xvid       http://www.xvid.org/
                    Support for the following Perl modules from CPAN:
           Archive::Zip
           Compress::Zlib
           Crypt::SSLeay
           SOAP::Lite
           XML::Parser
                    This release should still be considered to have beta
                    status. The specifications for how to write rule files
                    might still change in newer releases. However, version
                    0.0.2 is still useful for installing applications like
                    MPlayer and imgSeek. An application like openoffice.org
                    is not really worth the effort to compile from source.
                    The reason to write rules for openoffice.org was simply
                    to show that "anything is doable" with the concept of
                    rule files. This release has some known problems:
                    1) Qemu is an old version and might have problems
                    compiling kqemu if permissions to kernel source are
                    lacking.
                    2) imgSeek depends on sip and PyQt which
                    riverbankcomputing.com are likely to remove the current
                    versions of in the future.

22/1  2006 0.0.1    Initial release. This release has rules for installing
                    the following applications:
           Angry Drunken Dwarfes http://www.sacredchao.net/~piman/angrydd/
           EasyTag               http://easytag.sourceforge.net/index.htm
           QEMU                  http://www.qemu.org/
           ms-sys                http://ms-sys.sourceforge.net/
                    It also has rules to install the following libraries:
           Numeric and numpy   http://sourceforge.net/projects/numpy/
           SDL_image           http://www.libsdl.org/projects/SDL_image/
           SDL_mixer           http://www.libsdl.org/projects/SDL_mixer/
           SDL_ttf             http://www.libsdl.org/projects/SDL_ttf/
           ATLAS               http://math-atlas.sourceforge.net/
           flac                http://flac.sourceforge.net/
           id3lib              http://id3lib.sourceforge.net/
           pygame              http://www.pygame.org/
           SMPEG               http://www.lokigames.com/development/smpeg.php3
                    This release should mostly be considered a "proof of
                    concept" rather than a useful tool. Installing a simple
                    game like Angry Drunken Dwarfes is something most Slackware
                    users would not care about as it would require the
                    installation of 8 different software packages with all its
                    dependencies.

            

ToDo

Download

Current version

Current release is version 0.2.0, it is available from SourceForge download.
The md5sum of makepack-0.2.0.tar.gz is 2cb3654b08362dfc034fd2580565d314.

Older versions

Version 0.1.0 is available from SourceForge download.
The md5sum of makepack-0.1.0.tar.gz is 01889006b24e44dc863a2512d70d1a32.

Version 0.0.3 is available from SourceForge download.
The md5sum of makepack-0.0.3.tar.gz is 30c3b2268d334038b2ec49dc2aefcddc.

Version 0.0.2 is available from SourceForge download.
The md5sum of makepack-0.0.2.tar.gz is 8deffac270d75c1a954a490df9eb1026.

Version 0.0.1 is available from SourceForge download.
The md5sum of makepack-0.0.1.tar.gz is f9d8b15b86127705580823c375a62812.

It is possible to get the latest development files with the following cvs commands:

cvs -d:pserver:anonymous@makepack.cvs.sourceforge.net:/cvsroot/makepack login
 
cvs -z3 -d:pserver:anonymous@makepack.cvs.sourceforge.net:/cvsroot/makepack co -P makepack
      
When prompted for a password for anonymous, simply press the Enter key.

Contact

Bug reports

Bugs should be reported to the SourceForge Bug Tracking System.

Support

Questions will be answered at SourceForge makepack support page.

New rule files

Please contribute your new rule files at SourceForge makepack patches page.

Email

You can contact me, Henrik Carlqvist, by my email

henca @ users.SourceForge.net

Please use the SourceForge forums for bug reports and support requests instead of sending them by email.
Hosted by:
SourceForge Logo