Getting Started/Build/Historic/Konstruct: Difference between revisions

From KDE TechBase
 
(24 intermediate revisions by 8 users not shown)
Line 1: Line 1:
< [[Getting Started]] | [[Getting Started/Build|Build]]
==Introduction==
==Introduction==


Line 7: Line 5:
By default '''Konstruct''' installs to your home directory which means you don't have to possess root privileges or risk to damage your system or affect another KDE.
By default '''Konstruct''' installs to your home directory which means you don't have to possess root privileges or risk to damage your system or affect another KDE.


==Stable KDE Version==
==Getting '''Konstruct'''==
 
You must have the Subversion client installed, then run in a shell:
 
  svn co svn://anonsvn.kde.org/home/kde/trunk/konstruct/
 
If you have no own old ''gar.conf.mk'', copy ''gar.conf.mk.''in over to ''gar.conf.mk.''
 
To update your Konstruct checkout or the released Konstruct tarballs, change
to the '''konstruct''' directory and run:


This version installs the current stable development releases of KDE and applications. Currently it gives a complete KDE 3.5.5 installation. Optionally you can install additional applications like KOffice 1.6 or KDevelop 3.3.5.
  svn up
 
There will be an official snapshot of the 3.5.8 release of Konstruct soon. The latest version in subversion will build 3.5.8 now, so give it a try and report all bugs you find in KDE's bugzilla under the Konstruct product.
 
Konstruct seems far away from beeing continued! This is miserable!
 
==Preconditions==
 
A working GNU tool chain (gcc, GNU make, flex, BSD yacc, gettext etc.) and
additional GNU tools like tar, gzip, bzip2, md5sum, patch and wget.
 
Some basic libraries and some other libraries enabling additional functionality
are not included in "Konstruct", http://www.kde.org/info/requirements/3.5.php
lists them. Note that you may have to install the header files within separate
"-dev" or "-devel" packages too.
 
* '''NOTE''': If you use a recent SUSE or Mandrake 9.2 distribution you might be interested in "Detektive", a simple script which checks and tells which required rpm packages of your distribution you have not installed: Just run "cd misc/detektive;make".
 
==Configuration==
 
Copy gar.conf.mk.in to gar.conf.mk and change it to your liking. Common options:
 
* '''GARCHIVEDIR''' - If you have already downloaded source tarballs, set the path here.
* '''prefix''' - Where to install your KDE desktop. Default is ~/kde3.5.7/ . Moving KDE installation elsewhere afterwards calls for troubles!
* '''HAVE_64BIT_TARGET''' - Set this if you want to compile KDE for a 64bit target (x86_64)
* '''OWN_CFLAGS''' - Allows you to specify compiler flags specific to your CPU.
* '''HAVE_QT_3_3_INSTALLED''' - Set this if you have at least Qt 3.3 (including moc, uic and headers) installed and want to skip Qt installation.
* '''BUILD_CLEAN''' - Set this if you're low on available file system space.
 
If the download fails because of a proxy, then please consult the wget man page
for necessary options in your ''~/.wgetrc''. If download.kde.org redirects you to a broken or incomplete mirror, you may fix your problem by changing ''kde.conf.mk.''
 
==Targets==
 
'''Konstruct''' installs the current stable development releases of KDE and applications. Currently it gives a complete KDE 3.5.7 installation. Optionally you can install additional applications like KOffice 1.6.3 or KDevelop 3.4.1.


==Downloading KDE Source==
The following table shows how many MBytes source tarballs will be downloaded:
The following table shows how many MBytes source tarballs will be downloaded:
{| border="1" cellpadding="2"
{| border="1" cellpadding="2"
Line 21: Line 61:
| meta/kdepim-crypto || 68MB || Above plus kdepim and crypto libraries
| meta/kdepim-crypto || 68MB || Above plus kdepim and crypto libraries
|-
|-
| meta/kde ||172MB || All "KDE 3.5.5" packages & dependencies
| meta/kde ||172MB || All "KDE 3.5.7" packages & dependencies
|-
|-
| meta/everything || 248MB || Most stable known targets, see next table
| meta/everything || 248MB || Most stable known targets, see next table
Line 44: Line 84:


If you want to have KDE localized into your native language, look into the i18n/ directory, change to your language directory and start ''make install''. To localize KOffice, install an ''i18n/koffice-l10n-<language-code>'' package.
If you want to have KDE localized into your native language, look into the i18n/ directory, change to your language directory and start ''make install''. To localize KOffice, install an ''i18n/koffice-l10n-<language-code>'' package.
Konstruct is maintained by [email protected] and based on GAR ports system by
Nick Moffitt (http://www.lnx-bbc.org/garchitecture.html) and is inspired by
GARNOME distribution started by Jeff Waugh (http://cipherfunk.org/garnome/).
==Preconditions==
A working GNU tool chain (gcc, GNU make, flex, BSD yacc, gettext etc.) and
additional GNU tools like tar, gzip, bzip2, md5sum, patch and wget.
Some basic libraries and some other libraries enabling additional functionality
are not included in "Konstruct", http://www.kde.org/info/requirements/3.5.php
lists them. Note that you may have to install the header files within separate
"-dev" or "-devel" packages too.
* '''NOTE''': If you use a recent SUSE or Mandrake 9.2 distribution you might be interested in "Detektive", a simple script which checks and tells which required rpm packages of your distribution you have not installed: Just run "cd misc/detektive;make".
==Configuration==
Copy gar.conf.mk.in to gar.conf.mk and change it to your liking. Common options:
  GARCHIVEDIR If you have already downloaded source tarballs set the path here.
  prefix      Where to install your KDE desktop. Default is ~/kde3.5.5/ .
              Moving KDE installation elsewhere afterwards calls for troubles!
  HAVE_64BIT_TARGET Set this if you want to compile KDE for a 64bit target (x86_64)
  OWN_CFLAGS  Allows you to specify compiler flags specific to your CPU.
  HAVE_QT_3_3_INSTALLED  Set this if you have at least Qt 3.3 (including moc,
              uic and headers) installed and want to skip Qt installation.
  BUILD_CLEAN Set this if you're low on available file system space.
If the download fails because of a proxy, then please consult the wget man page
for necessary options in your ~/.wgetrc. If download.kde.org redirects you to a
broken or incomplete mirror you may fix your problem by changing kde.conf.mk.


==Usage==
==Usage==


Be sure that you have a live internet connection. Choose a target and change
Be sure that you have a live internet connection. Choose a target, and change
to the directory which helds its definition, e.g. "cd kde/kdebase". Now run
to the directory which holds its definition, e.g. ''cd kde/kdebase''. Now run
make with one of the following targets, usually you only need "make install".
''make'' with one of the following targets, usually you only need ''make install''.


The GAR system provides seven basic targets for each package:
The GAR system provides seven basic targets for each package:
* '''fetch''' - This target downloads all files and patches needed to compile the package. Typically this is a single tarball, accompanied by occasional patch files.
* '''checksum''' - Uses md5sum to ensure that the downloaded files match those with which the package maintainer worked.
* '''extract''' - Makes sure that all of the necessary source files are available in a working directory. In some cases (such as when downloading a single C++ source file) this will simply copy files over.
* '''patch''' - If the package has to be patched (either via third-party patches or package maintainer patches), this target will perform that step.
* '''configure''' - Configures the package as specified in the Makefile. It will typically run the package's underlying configuration system (such as autoconf or Imake).
* '''build''' - Performs the actual step of compilation after installing the dependencies.
* '''install''' - Puts files in the proper locations and performs any necessary mop-up work.


fetch
These targets are named after their counterparts in the BSD Ports system, and
  This target downloads all files and patches needed to compile the package.
behave in the same manner. If you want to install a package, you have to enter
  Typically this is a single tarball, accompanied by occasional patch files.
the package's or target's directory and run ''make install'' or ''make patch''
 
checksum
  Uses md5sum to ensure that the downloaded files match those with which the
  package maintainer worked.
 
extract
  Makes sure that all of the necessary source files are available in a working
  directory. In some cases (such as when downloading a single C++ source file)
  this will simply copy files over.
 
patch
  If the package has to be patched (either via third-party patches or package
  maintainer patches), this target will perform that step.
 
configure
  Configures the package as specified in the Makefile. It will typically run
  the package's underlying configuration system (such as autoconf or Imake).
 
build
  Performs the actual step of compilation after installing the dependencies.
 
install
  Puts files in the proper locations and performs any necessary mop-up work.
 
These targets are named after their counterparts in the BSD Ports system and
behave in the same manner. If you want to install a package you have to enter
the package's or target's directory and to run "make install" or "make patch"
(just two examples). A later target includes all the previously listed ones.
(just two examples). A later target includes all the previously listed ones.


Some additional useful targets which you usually don't require are:
Some additional useful targets which you usually don't require are:


buildclean
* '''buildclean''' - Clean up the working directory but don't delete downloaded packages. Run this if you installed missing dependencies and want to re-configure the package.
  Clean up the working directory but don't delete downloaded packages. Run this
* '''clean''' - Clean up the working directory. This also deletes downloaded packages! Either use ''buildclean'' instead or call ''garchive'' before to prevent new downloads.
  if you installed missing dependencies and want to re-configure the package.
* '''garchive''' - Call ''checksum'' target and save downloaded files to ''GARCHIVEDIR'' directory.
 
* '''showdeps''' - Print a tree with the recursive dependencies of current package.
clean
  Clean up the working directory. This also deletes downloaded packages! Either
  use "buildclean" instead or call "garchive" before to prevent new downloads.
 
garchive
  Call "checksum" target and save downloaded files to GARCHIVEDIR directory.
 
showdeps
  Print a tree with the recursive dependencies of current package.


For every target exists a deep-foo variant which will also call it recursively
For every target exists a deep-foo variant, which will also call it recursively
for all its dependencies, e.g. with "make deep-checksum" you can download all
for all its dependencies. E.g. with ''make deep-checksum'' you can download all
required source tarballs and build it later (when you have no net connection).
required source tarballs and build it later (when you have no net connection).


==After installation==
==After installation==
Line 150: Line 121:
KDE binaries and libraries and KDE to allow to find its own files, for Bash:
KDE binaries and libraries and KDE to allow to find its own files, for Bash:


  export QTDIR=~/kde3.5.5
export QTDIR=~/kde3.5.9
  export KDEDIR=~/kde3.5.5
export KDEDIR=~/kde3.5.9
  export KDEDIRS=~/kde3.5.5
export KDEDIRS=~/kde3.5.9
 
  export LD_LIBRARY_PATH=~/kde3.5.5/lib
export LD_LIBRARY_PATH=~/kde3.5.9/lib
  export PATH=~/kde3.5.5/bin:$PATH
export PATH=~/kde3.5.9/bin:$PATH


Setting KDEHOME too, e.g. "export KDEHOME=~/.kdetest", will tell KDE to save
Setting KDEHOME too, e.g. "export KDEHOME=~/.kdetest", will tell KDE to save
Line 166: Line 137:
it if you set it to the WINDOWMANAGER variable in your shell initializations.
it if you set it to the WINDOWMANAGER variable in your shell initializations.


 
==About '''Konstruct'''==
==How to get latest version==
Konstruct was originally maintained by Stephan Binner (binner at kde dot org) and based on GAR ports system by Nick Moffitt from the now defunct LnxBBC project and is inspired by the GARNOME distribution of the GNOME desktop started by Jeff Waugh (http://cipherfunk.org/garnome/). Recently, the maintenance of Konstruct has been taken on by Gary Greene (greeneg at tolharadys dot net).
 
You must have the Subversion client installed, then run in a shell:
 
  svn co svn://anonsvn.kde.org/home/kde/branches/KDE/3.5/konstruct/
 
If you have no own old gar.conf.mk, copy gar.conf.mk.in over to gar.conf.mk.
 
To update your "Konstruct" checkout or the released "Konstruct" tarballs, change
to the "konstruct" directory and run "svn up".


==License==
==License==

Latest revision as of 19:52, 10 March 2016

Introduction

Konstruct is a build system which helps you to install KDE releases and applications on your system. It downloads defined source tarballs, checks their integrity, decompresses, patches, configures, builds and installs them. A complete KDE installation should be as easy as "cd meta/kde;make install".

By default Konstruct installs to your home directory which means you don't have to possess root privileges or risk to damage your system or affect another KDE.

Getting Konstruct

You must have the Subversion client installed, then run in a shell:

 svn co svn://anonsvn.kde.org/home/kde/trunk/konstruct/

If you have no own old gar.conf.mk, copy gar.conf.mk.in over to gar.conf.mk.

To update your Konstruct checkout or the released Konstruct tarballs, change to the konstruct directory and run:

 svn up

There will be an official snapshot of the 3.5.8 release of Konstruct soon. The latest version in subversion will build 3.5.8 now, so give it a try and report all bugs you find in KDE's bugzilla under the Konstruct product.

Konstruct seems far away from beeing continued! This is miserable!

Preconditions

A working GNU tool chain (gcc, GNU make, flex, BSD yacc, gettext etc.) and additional GNU tools like tar, gzip, bzip2, md5sum, patch and wget.

Some basic libraries and some other libraries enabling additional functionality are not included in "Konstruct", http://www.kde.org/info/requirements/3.5.php lists them. Note that you may have to install the header files within separate "-dev" or "-devel" packages too.

  • NOTE: If you use a recent SUSE or Mandrake 9.2 distribution you might be interested in "Detektive", a simple script which checks and tells which required rpm packages of your distribution you have not installed: Just run "cd misc/detektive;make".

Configuration

Copy gar.conf.mk.in to gar.conf.mk and change it to your liking. Common options:

  • GARCHIVEDIR - If you have already downloaded source tarballs, set the path here.
  • prefix - Where to install your KDE desktop. Default is ~/kde3.5.7/ . Moving KDE installation elsewhere afterwards calls for troubles!
  • HAVE_64BIT_TARGET - Set this if you want to compile KDE for a 64bit target (x86_64)
  • OWN_CFLAGS - Allows you to specify compiler flags specific to your CPU.
  • HAVE_QT_3_3_INSTALLED - Set this if you have at least Qt 3.3 (including moc, uic and headers) installed and want to skip Qt installation.
  • BUILD_CLEAN - Set this if you're low on available file system space.

If the download fails because of a proxy, then please consult the wget man page for necessary options in your ~/.wgetrc. If download.kde.org redirects you to a broken or incomplete mirror, you may fix your problem by changing kde.conf.mk.

Targets

Konstruct installs the current stable development releases of KDE and applications. Currently it gives a complete KDE 3.5.7 installation. Optionally you can install additional applications like KOffice 1.6.3 or KDevelop 3.4.1.

The following table shows how many MBytes source tarballs will be downloaded:

MBytes of Source Tarballs
Directory/Target Size Description
kde/kdebase 56MB Desktop with browser, editor and terminal
meta/kdepim-crypto 68MB Above plus kdepim and crypto libraries
meta/kde 172MB All "KDE 3.5.7" packages & dependencies
meta/everything 248MB Most stable known targets, see next table


The following (unstable) targets are not included in the meta/everything target:

Unstable Targets Not Included
Directory/Target Reason
apps-unstable/ Unstable development versions and/or undelivered dependencies, maybe conflict with apps/ entries
i18n/ Nobody needs everything, just pick your language
kde/kdebindings Only needed for developing with non-C++ language


If you have at least Qt 3.3 installed, define variable HAVE_QT_3_3_INSTALLED (see Configuration) and subtract 14 MB from the numbers in every column.

If you want to have KDE localized into your native language, look into the i18n/ directory, change to your language directory and start make install. To localize KOffice, install an i18n/koffice-l10n-<language-code> package.

Usage

Be sure that you have a live internet connection. Choose a target, and change to the directory which holds its definition, e.g. cd kde/kdebase. Now run make with one of the following targets, usually you only need make install.

The GAR system provides seven basic targets for each package:

  • fetch - This target downloads all files and patches needed to compile the package. Typically this is a single tarball, accompanied by occasional patch files.
  • checksum - Uses md5sum to ensure that the downloaded files match those with which the package maintainer worked.
  • extract - Makes sure that all of the necessary source files are available in a working directory. In some cases (such as when downloading a single C++ source file) this will simply copy files over.
  • patch - If the package has to be patched (either via third-party patches or package maintainer patches), this target will perform that step.
  • configure - Configures the package as specified in the Makefile. It will typically run the package's underlying configuration system (such as autoconf or Imake).
  • build - Performs the actual step of compilation after installing the dependencies.
  • install - Puts files in the proper locations and performs any necessary mop-up work.

These targets are named after their counterparts in the BSD Ports system, and behave in the same manner. If you want to install a package, you have to enter the package's or target's directory and run make install or make patch (just two examples). A later target includes all the previously listed ones.

Some additional useful targets which you usually don't require are:

  • buildclean - Clean up the working directory but don't delete downloaded packages. Run this if you installed missing dependencies and want to re-configure the package.
  • clean - Clean up the working directory. This also deletes downloaded packages! Either use buildclean instead or call garchive before to prevent new downloads.
  • garchive - Call checksum target and save downloaded files to GARCHIVEDIR directory.
  • showdeps - Print a tree with the recursive dependencies of current package.

For every target exists a deep-foo variant, which will also call it recursively for all its dependencies. E.g. with make deep-checksum you can download all required source tarballs and build it later (when you have no net connection).

After installation

After installation you have to set some variables allowing your system to find KDE binaries and libraries and KDE to allow to find its own files, for Bash:

export QTDIR=~/kde3.5.9
export KDEDIR=~/kde3.5.9
export KDEDIRS=~/kde3.5.9

export LD_LIBRARY_PATH=~/kde3.5.9/lib
export PATH=~/kde3.5.9/bin:$PATH

Setting KDEHOME too, e.g. "export KDEHOME=~/.kdetest", will tell KDE to save your settings to this directory and leave default ~/.kde directory unaffected.

On shadow password systems you have to set $(prefix)/bin/kcheckpass SUID root or SGID shadow - otherwise you will not be able to unlock a locked desktop.

The complete KDE desktop is started with "startkde", most distributions start it if you set it to the WINDOWMANAGER variable in your shell initializations.

About Konstruct

Konstruct was originally maintained by Stephan Binner (binner at kde dot org) and based on GAR ports system by Nick Moffitt from the now defunct LnxBBC project and is inspired by the GARNOME distribution of the GNOME desktop started by Jeff Waugh (http://cipherfunk.org/garnome/). Recently, the maintenance of Konstruct has been taken on by Gary Greene (greeneg at tolharadys dot net).

License

Redistribution and/or use, with or without modification, is permitted. This software is without warranty of any kind. The author(s) shall not be liable in the event that use of the software causes damage.