[haiku-commits] BRANCH HaikuPM-github.package-management [12629b1] build/jam src src/add-ons data/bin src/add-ons/opengl

  • From: HaikuPM-github.package-management <community@xxxxxxxxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Fri, 14 Jun 2013 01:00:34 +0200 (CEST)

added 13 changesets to branch 'refs/remotes/HaikuPM-github/package-management'
old head: c625c5fd36fe4894ec9967db23e09f4edc4cc1f3
new head: 12629b106ee37df7495eb9e3b463bd2119762867
overview: https://github.com/haiku/HaikuPM/compare/c625c5f...12629b1

----------------------------------------------------------------------------

c46f596: Update zlib, gettext, libiconv, ncurses packages

5ce950a: BuildFeature: missing ";"

ebb78dd: Update openssl package
  
  Also use the new build feature rules

178da21: Update icu package
  
  Also use the new build feature rules.

e97e4b7: Update glu and mesa package
  
  Also use the new build feature rules.

14d5e30: Update ffmpeg package and its requirements
  
  Also make use of new build feature rules.

e2c74e4: Remove unused MikMod build feature

29f8805: Update freetype package
  
  Also use the new build feature rules

e9f440f: Update libpng package
  
  Also make use of new build feature rules

e4bd005: Update jpeg package
  
  * Also make use of new build feature rules.
  * Since the hacky long_jump_buffer field has been removed from the
    jpeg_error_mgr struct in the new package, the structure is now
    wrapped in the JPEGTranslator code to achieve the same behavior.

1d14716: Some renaming of zlib related jam variables

a20eb7f: Update libsolv package
  
  Also make use of new build feature rules.

12629b1: Update expat package

                                    [ Ingo Weinhold <ingo_weinhold@xxxxxx> ]

----------------------------------------------------------------------------

59 files changed, 687 insertions(+), 893 deletions(-)
build/jam/BuildFeatures                          | 645 ++++++-------------
build/jam/HaikuImage                             |   3 -
build/jam/OptionalPackageDependencies            |  18 +-
build/jam/OptionalPackages                       | 199 +++++-
build/jam/packages/Haiku                         |  38 --
build/jam/packages/HaikuDevel                    |  24 +-
data/bin/freetype-config                         | 160 -----
src/add-ons/decorators/BeDecorator/Jamfile       |   7 +-
src/add-ons/decorators/MacDecorator/Jamfile      |   4 +-
src/add-ons/decorators/WinDecorator/Jamfile      |   7 +-
.../mail_daemon/inbound_protocols/pop3/Jamfile   |  10 +-
.../mail_daemon/outbound_protocols/smtp/Jamfile  |   9 +-
src/add-ons/media/media-add-ons/dvb/Jamfile      |  13 +-
src/add-ons/media/plugins/ffmpeg/Jamfile         |  32 +-
src/add-ons/opengl/swpipe/Jamfile                |  25 +-
src/add-ons/opengl/swrast/Jamfile                |  19 +-
src/add-ons/opengl/swrast_legacy/Jamfile         |  23 +-
src/add-ons/screen_savers/flurry/Jamfile         |  10 +-
src/add-ons/screen_savers/glife/Jamfile          |  10 +-
src/add-ons/screen_savers/gravity/Jamfile        |  13 +-
src/add-ons/translators/hpgs/Jamfile             |   7 +-
src/add-ons/translators/icns/Jamfile             |   7 +-
src/add-ons/translators/jpeg/JPEGTranslator.cpp  |  11 +-
src/add-ons/translators/jpeg/JPEGTranslator.h    |  10 -
src/add-ons/translators/jpeg/Jamfile             |  11 +-
src/add-ons/translators/jpeg/be_jerror.cpp       |  13 +-
src/add-ons/translators/jpeg/be_jerror.h         |  28 +
src/add-ons/translators/png/Jamfile              |   9 +-
src/apps/3dmov/Jamfile                           |   4 +-
src/apps/glteapot/Jamfile                        |  13 +-
src/apps/haiku3d/Jamfile                         |  13 +-
src/bin/network/wget/Jamfile                     |   8 +-
src/kits/Jamfile                                 |   2 +-
src/kits/locale/Jamfile                          |   4 +-
src/kits/mail/Jamfile                            |   9 +-
src/kits/network/libnetapi/Jamfile               |  12 +-
src/kits/opengl/Jamfile                          |  25 +-
src/kits/package/solver/Jamfile                  |  12 +-
src/libs/glut/Jamfile                            |  11 +-
src/libs/tiff/Jamfile                            |   9 +-
src/preferences/appearance/Jamfile               |   4 +-
src/preferences/time/Jamfile                     |   4 +-
src/servers/app/Jamfile                          |   7 +-
src/servers/app/drawing/Jamfile                  |   4 +-
src/servers/app/drawing/Painter/Jamfile          |   4 +-
src/servers/app/drawing/interface/html5/Jamfile  |   7 +-
src/servers/app/drawing/interface/remote/Jamfile |   6 +-
src/servers/app/stackandtile/Jamfile             |   4 +-
src/system/libroot/add-ons/icu/Jamfile           |   7 +-
src/tests/apps/fake_app_server/Jamfile           |   2 +-
src/tests/kits/locale/Jamfile                    |   6 +-
src/tests/kits/opengl/demos/gears/Jamfile        |   4 +-
src/tests/kits/opengl/direct_mode/Jamfile        |   4 +-
src/tests/kits/opengl/glinfo/Jamfile             |  10 +-
src/tests/kits/opengl/glsl/Jamfile               |   5 +-
src/tests/kits/opengl/glut/game_mode/Jamfile     |   4 +-
src/tests/servers/app/Jamfile                    |   2 +-
src/tests/servers/app/painter/Jamfile            |   2 +-
src/tools/translation/pnginfo/Jamfile            |   7 +-

############################################################################

Commit:      c46f5969b71728cfdb2d80f753a6d02dc2ceb39c
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 13 13:08:57 2013 UTC

Update zlib, gettext, libiconv, ncurses packages

----------------------------------------------------------------------------

diff --git a/build/jam/BuildFeatures b/build/jam/BuildFeatures
index 850ba1f..3ddf6e0 100644
--- a/build/jam/BuildFeatures
+++ b/build/jam/BuildFeatures
@@ -810,11 +810,10 @@ if $(TARGET_ARCH) in arm ppc x86 x86_64 {
        } else if $(HAIKU_GCC_VERSION[1]) >= 4 {
                HAIKU_ZLIB_FILE = zlib-1.2.7-x86-gcc4-2012-10-30.zip ;
        } else {
-               HAIKU_ZLIB_FILE = zlib-1.2.8-1-x86_gcc2.hpkg ;
-               HAIKU_ZLIB_DEVEL_FILE = zlib_devel-1.2.8-1-x86_gcc2.hpkg ;
+               HAIKU_ZLIB_FILE = zlib-1.2.8-2-x86_gcc2.hpkg ;
+               HAIKU_ZLIB_DEVEL_FILE = zlib_devel-1.2.8-2-x86_gcc2.hpkg ;
        }
-       HAIKU_ZLIB_SOURCE_FILE = zlib_source-1.2.8-1-x86_gcc2.hpkg ;
-               # TODO: Wrong architecture! Should be "any".
+       HAIKU_ZLIB_SOURCE_FILE = zlib_source-1.2.8-2-source.hpkg ;
 
        ExtractBuildFeatureArchives zlib :
                file: base $(zlibBaseURL)/$(HAIKU_ZLIB_FILE)
@@ -824,8 +823,7 @@ if $(TARGET_ARCH) in arm ppc x86 x86_64 {
                        library: develop/lib/libz.so
                        headers: develop/headers
                file: source $(zlibBaseURL)/$(HAIKU_ZLIB_SOURCE_FILE)
-                       sources: source/zlib-1.2.8
-               ;
+                       sources: develop/sources/zlib-1.2.8-2/source
 
        EnableBuildFeatures zlib ;
 } else {
diff --git a/build/jam/OptionalPackageDependencies 
b/build/jam/OptionalPackageDependencies
index e050ed0..31bfa73 100644
--- a/build/jam/OptionalPackageDependencies
+++ b/build/jam/OptionalPackageDependencies
@@ -8,12 +8,13 @@ OptionalPackageDependencies Beam : LibIconv LibLayout OpenSSL 
PCRE ;
 OptionalPackageDependencies BeHappy : BeBook NetSurf ;
 OptionalPackageDependencies BurnItNow : CDRecord ;
 OptionalPackageDependencies Caya : Expat ;
-OptionalPackageDependencies CDRecord : GetText LibIconv ;
+OptionalPackageDependencies CDRecord : GetTextLibintl LibIconv ;
 OptionalPackageDependencies Curl : OpenSSL ;
 OptionalPackageDependencies DevelopmentBase : CDRecord DevelopmentMin Yasm ;
 OptionalPackageDependencies Development : DevelopmentBase Perl Zlib-devel ;
 OptionalPackageDependencies DevelopmentPowerPC : DevelopmentMin ;
-OptionalPackageDependencies GetText : LibIconv ;
+OptionalPackageDependencies GetText : GetTextLibintl ;
+OptionalPackageDependencies GetTextLibintl : LibIconv ;
 OptionalPackageDependencies Git : Expat Curl OpenSSL LibIconv ;
 OptionalPackageDependencies GitDoc : Man Git ;
 OptionalPackageDependencies ICU-devel : DevelopmentBase ;
@@ -37,7 +38,7 @@ OptionalPackageDependencies Readline : NCurses ;
 OptionalPackageDependencies SDLLibs : XiphLibs libmad libmikmod Libmng 
libmodplug physfs ;
 OptionalPackageDependencies Subversion : APR-util Neon LibIconv LibXML2 
OpenSSL SQLite ;
 OptionalPackageDependencies Transmission : LibEvent Curl OpenSSL LibIconv ;
-OptionalPackageDependencies Vim : GetText LibIconv ;
+OptionalPackageDependencies Vim : GetTextLibintl LibIconv ;
 OptionalPackageDependencies WebPositive : Curl LibXML2 SQLite WebKit 
WebPositiveBookmarks ;
 OptionalPackageDependencies wpa_supplicant : OpenSSL ;
 OptionalPackageDependencies XZ-Utils : Tar ;
diff --git a/build/jam/OptionalPackages b/build/jam/OptionalPackages
index c5f3559..6b91d17 100644
--- a/build/jam/OptionalPackages
+++ b/build/jam/OptionalPackages
@@ -46,6 +46,7 @@
 #      Fastdep                                 - fast dependency generator for 
C/C++ files
 #      friss                                   - RSS/ATOM/... feeds reader
 #      GetText                                 - a framework to help produce 
multi-lingual messages.
+#      GetTextLibintl                  - GetText's libintl
 #      Git                                             - the distributed 
version control system
 #      GitDoc                                  - documentation for the 
distributed version control system
 #      GPerf                                   - the perfect hash function 
generator.
@@ -882,7 +883,7 @@ if [ IsOptionalHaikuImagePackageAdded GetText ] {
                                : : cdPackage ;
                } else {
                        InstallOptionalHaikuImagePackage
-                               $(hpkgBaseURL)/gettext-0.18.1.1-3-x86_gcc2.hpkg 
;
+                               $(hpkgBaseURL)/gettext-0.18.1.1-4-x86_gcc2.hpkg 
;
                }
        } else if $(TARGET_ARCH) = x86_64 {
                InstallOptionalHaikuImagePackage
@@ -894,6 +895,27 @@ if [ IsOptionalHaikuImagePackageAdded GetText ] {
 }
 
 
+# GetTextLibintl
+if [ IsOptionalHaikuImagePackageAdded GetTextLibintl ] {
+       if $(TARGET_ARCH) = x86 {
+               if $(HAIKU_GCC_VERSION[1]) >= 4 {
+#                      InstallOptionalHaikuImagePackage
+#                              
$(baseURL)/gettext-0.18.1.1-r1a4-x86-gcc4-2012-08-30.zip
+#                              : : cdPackage ;
+               } else {
+                       InstallOptionalHaikuImagePackage
+                               
$(hpkgBaseURL)/gettext_libintl-0.18.1.1-4-x86_gcc2.hpkg ;
+               }
+       } else if $(TARGET_ARCH) = x86_64 {
+#              InstallOptionalHaikuImagePackage
+#                      $(baseURL)/gettext-0.18.1.1-x86_64-2012-08-17.zip
+#                      : : cdPackage ;
+       } else {
+               Echo "No optional package GetText available for $(TARGET_ARCH)" 
;
+       }
+}
+
+
 # Git
 if [ IsOptionalHaikuImagePackageAdded Git ] {
        if $(TARGET_ARCH) = x86 {
@@ -1126,7 +1148,7 @@ if [ IsOptionalHaikuImagePackageAdded LibIconv ] {
                                
$(baseURL)/libiconv-1.13.1-r1a4-x86-gcc4-2012-08-30.zip ;
                } else {
                        InstallOptionalHaikuImagePackage
-                               $(hpkgBaseURL)/libiconv-1.13.1-4-x86_gcc2.hpkg ;
+                               $(hpkgBaseURL)/libiconv-1.13.1-5-x86_gcc2.hpkg ;
                }
        } else if $(TARGET_ARCH) = x86_64 {
                InstallOptionalHaikuImagePackage
@@ -1323,7 +1345,7 @@ if [ IsOptionalHaikuImagePackageAdded NCurses ] {
                        Echo "No optional package NCurses available for gcc 4" ;
                } else {
                        InstallOptionalHaikuImagePackage
-                               $(hpkgBaseURL)/ncurses-5.9-6-x86_gcc2.hpkg ;
+                               $(hpkgBaseURL)/ncurses-5.9-7-x86_gcc2.hpkg ;
                }
        }
 }

############################################################################

Commit:      5ce950ae760a295b454c15671ca040f8918c9ea2
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 13 14:42:36 2013 UTC

BuildFeature: missing ";"

----------------------------------------------------------------------------

diff --git a/build/jam/BuildFeatures b/build/jam/BuildFeatures
index 3ddf6e0..cc4de91 100644
--- a/build/jam/BuildFeatures
+++ b/build/jam/BuildFeatures
@@ -824,6 +824,7 @@ if $(TARGET_ARCH) in arm ppc x86 x86_64 {
                        headers: develop/headers
                file: source $(zlibBaseURL)/$(HAIKU_ZLIB_SOURCE_FILE)
                        sources: develop/sources/zlib-1.2.8-2/source
+               ;
 
        EnableBuildFeatures zlib ;
 } else {

############################################################################

Commit:      ebb78dd9b70b96e75a2763014c579e3973f3179b
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 13 14:43:40 2013 UTC

Update openssl package

Also use the new build feature rules

----------------------------------------------------------------------------

diff --git a/build/jam/BuildFeatures b/build/jam/BuildFeatures
index cc4de91..ad98eb1 100644
--- a/build/jam/BuildFeatures
+++ b/build/jam/BuildFeatures
@@ -24,44 +24,32 @@ if [ IsOptionalHaikuImagePackageAdded OpenSSL ] {
        HAIKU_BUILD_FEATURE_SSL = 1 ;
 }
 
-if $(HAIKU_GCC_VERSION[1]) >= 4 {
-       if $(TARGET_ARCH) = x86_64 {
-               HAIKU_OPENSSL_PACKAGE = openssl-1.0.0j-x86_64-2012-12-18.zip ;
-       } else {
-               HAIKU_OPENSSL_PACKAGE = 
openssl-1.0.0j-r1a4-x86-gcc4-2012-08-29.zip ;
-       }
-} else {
-       HAIKU_OPENSSL_PACKAGE = openssl-1.0.0j-1-x86_gcc2.hpkg ;
-}
-
-HAIKU_OPENSSL_URL = $(hpkgBaseURL)/$(HAIKU_OPENSSL_PACKAGE) ;
-
 if $(HAIKU_BUILD_FEATURE_SSL) {
-       if $(TARGET_ARCH) = x86 || $(TARGET_ARCH) = x86_64 {
-               # Download the package.
-               local zipFile = [ DownloadFile $(HAIKU_OPENSSL_PACKAGE)
-                       : $(HAIKU_OPENSSL_URL) ] ;
-
-               # zip file and output directory
-               HAIKU_OPENSSL_ZIP_FILE = $(zipFile) ;
-               HAIKU_OPENSSL_DIR = [ FDirName 
$(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR)
-                       $(HAIKU_OPENSSL_PACKAGE:B) ] ;
-
-               # extract headers and libraries
-               HAIKU_OPENSSL_HEADERS_DEPENDENCY = [ ExtractArchive 
$(HAIKU_OPENSSL_DIR)
-                       : develop/headers/ : $(zipFile) : extracted-openssl
-               ] ;
-
-               HAIKU_OPENSSL_LIBS = [ ExtractArchive $(HAIKU_OPENSSL_DIR)
-                       :
-                       develop/lib/libcrypto.so
-                       develop/lib/libssl.so
-                       : $(zipFile)
-                       : extracted-openssl
-               ] ;
+       if $(TARGET_ARCH) in x86 x86_64 {
+               if $(HAIKU_GCC_VERSION[1]) >= 4 {
+                       if $(TARGET_ARCH) = x86_64 {
+                               HAIKU_OPENSSL_PACKAGE = 
openssl-1.0.0j-x86_64-2012-12-18.zip ;
+                       } else {
+                               HAIKU_OPENSSL_PACKAGE
+                                       = 
openssl-1.0.0j-r1a4-x86-gcc4-2012-08-29.zip ;
+                       }
+               } else {
+                       HAIKU_OPENSSL_PACKAGE = openssl-1.0.0j-2-x86_gcc2.hpkg ;
+                       HAIKU_OPENSSL_DEVEL_PACKAGE = 
openssl_devel-1.0.0j-2-x86_gcc2.hpkg ;
+               }
 
-               HAIKU_OPENSSL_HEADERS
-                       = [ FDirName $(HAIKU_OPENSSL_DIR) develop/headers ] ;
+               HAIKU_OPENSSL_URL = $(hpkgBaseURL)/$(HAIKU_OPENSSL_PACKAGE) ;
+               HAIKU_OPENSSL_DEVEL_URL
+                       = $(hpkgBaseURL)/$(HAIKU_OPENSSL_DEVEL_PACKAGE) ;
+
+               ExtractBuildFeatureArchives openssl :
+                       file: base $(HAIKU_OPENSSL_URL)
+                               runtime: lib
+                       file: devel $(HAIKU_OPENSSL_DEVEL_URL)
+                               depends: base
+                               libraries: develop/lib/libcrypto.so 
develop/lib/libssl.so
+                               headers: develop/headers
+                       ;
 
                EnableBuildFeatures openssl ;
        } else {
diff --git a/build/jam/OptionalPackages b/build/jam/OptionalPackages
index 6b91d17..d5817a2 100644
--- a/build/jam/OptionalPackages
+++ b/build/jam/OptionalPackages
@@ -1478,6 +1478,9 @@ if [ IsOptionalHaikuImagePackageAdded OpenSSH ] {
 if [ IsOptionalHaikuImagePackageAdded OpenSSL ] {
        if $(TARGET_ARCH) = x86 || $(TARGET_ARCH) = x86_64 {
                InstallOptionalHaikuImagePackage $(HAIKU_OPENSSL_URL) ;
+               if [ IsOptionalHaikuImagePackageAdded DevelopmentBase ] {
+                       InstallOptionalHaikuImagePackage 
$(HAIKU_OPENSSL_DEVEL_URL) ;
+               }
        } else {
                Echo "No optional package OpenSSL available for $(TARGET_ARCH)" 
;
        }
diff --git a/src/add-ons/mail_daemon/inbound_protocols/pop3/Jamfile 
b/src/add-ons/mail_daemon/inbound_protocols/pop3/Jamfile
index 51644d2..432cb4b 100644
--- a/src/add-ons/mail_daemon/inbound_protocols/pop3/Jamfile
+++ b/src/add-ons/mail_daemon/inbound_protocols/pop3/Jamfile
@@ -17,10 +17,11 @@ local sources =
 ;
 
 # use OpenSSL, if enabled
-if $(HAIKU_BUILD_FEATURE_OPENSSL_ENABLED) {
+if [ FIsBuildFeatureEnabled openssl ] {
        SubDirC++Flags -DUSE_SSL ;
-       SubDirSysHdrs $(HAIKU_OPENSSL_HEADERS) ;
-       Includes [ FGristFiles $(sources) ] : 
$(HAIKU_OPENSSL_HEADERS_DEPENDENCY) ;
+       UseBuildFeatureHeaders openssl ;
+       Includes [ FGristFiles $(sources) ]
+               : [ BuildFeatureAttribute openssl : headers ] ;
                # Dependency needed to trigger downloading/unzipping the 
package before
                # compiling the files.
        SetupFeatureObjectsDir ssl ;
@@ -33,7 +34,8 @@ AddResources POP3 : POP3.rdef ;
 Addon POP3
        : $(sources)
        : be libbnetapi.so libmail.so $(HAIKU_LOCALE_LIBS)
-               $(HAIKU_OPENSSL_LIBS) $(TARGET_LIBSUPC++) $(TARGET_NETWORK_LIBS)
+               [ BuildFeatureAttribute openssl : libraries ] 
$(TARGET_LIBSUPC++)
+               $(TARGET_NETWORK_LIBS)
 ;
 
 Package haiku-maildaemon-cvs :
diff --git a/src/add-ons/mail_daemon/outbound_protocols/smtp/Jamfile 
b/src/add-ons/mail_daemon/outbound_protocols/smtp/Jamfile
index 425d4ad..41f742f 100644
--- a/src/add-ons/mail_daemon/outbound_protocols/smtp/Jamfile
+++ b/src/add-ons/mail_daemon/outbound_protocols/smtp/Jamfile
@@ -13,10 +13,11 @@ local sources =
 ;
 
 # use OpenSSL, if enabled
-if $(HAIKU_BUILD_FEATURE_OPENSSL_ENABLED) {
+if [ FIsBuildFeatureEnabled openssl ] {
        SubDirC++Flags -DUSE_SSL ;
-       SubDirSysHdrs $(HAIKU_OPENSSL_HEADERS) ;
-       Includes [ FGristFiles $(sources) ] : 
$(HAIKU_OPENSSL_HEADERS_DEPENDENCY) ;
+       UseBuildFeatureHeaders openssl ;
+       Includes [ FGristFiles $(sources) ]
+               : [ BuildFeatureAttribute openssl : headers ] ;
                # Dependency needed to trigger downloading/unzipping the 
package before
                # compiling the files.
        SetupFeatureObjectsDir ssl ;
@@ -29,7 +30,7 @@ AddResources SMTP : SMTP.rdef ;
 Addon SMTP
        : $(sources)
        : be libmail.so $(TARGET_NETWORK_LIBS) $(TARGET_LIBSTDC++)
-               $(HAIKU_LOCALE_LIBS) $(HAIKU_OPENSSL_LIBS)
+               $(HAIKU_LOCALE_LIBS) [ BuildFeatureAttribute openssl : 
libraries ]
 ;
 
 DoCatalogs SMTP :
diff --git a/src/bin/network/wget/Jamfile b/src/bin/network/wget/Jamfile
index a9d1f7b..efc1ed2 100644
--- a/src/bin/network/wget/Jamfile
+++ b/src/bin/network/wget/Jamfile
@@ -12,12 +12,12 @@ SubDirSysHdrs [ FDirName $(SUBDIR) md5 ] ;
 # use OpenSSL, if enabled
 local sslSources ;
 
-if $(HAIKU_BUILD_FEATURE_OPENSSL_ENABLED) {
+if [ FIsBuildFeatureEnabled openssl ] {
        SubDirCcFlags -DHAVE_LIBSSL ;
-       SubDirSysHdrs $(HAIKU_OPENSSL_HEADERS) ;
+       UseBuildFeatureHeaders openssl ;
        sslSources = openssl.c ;
        Includes [ FGristFiles $(sslSources) ]
-               : $(HAIKU_OPENSSL_HEADERS_DEPENDENCY) ;
+               : [ BuildFeatureAttribute openssl : headers ] ;
                # Dependency needed to trigger downloading/unzipping the 
package before
                # compiling the files.
        SetupFeatureObjectsDir ssl ;
@@ -75,5 +75,5 @@ BinCommand wget :
        xmalloc.c
        xalloc-die.c
        $(sslSources)
-       : $(TARGET_NETWORK_LIBS) $(HAIKU_OPENSSL_LIBS)
+       : $(TARGET_NETWORK_LIBS) [ BuildFeatureAttribute openssl : libraries ]
 ;
diff --git a/src/kits/mail/Jamfile b/src/kits/mail/Jamfile
index cbe5947..a053f84 100644
--- a/src/kits/mail/Jamfile
+++ b/src/kits/mail/Jamfile
@@ -36,10 +36,11 @@ local sources =
 
 
 # use OpenSSL, if enabled
-if $(HAIKU_BUILD_FEATURE_OPENSSL_ENABLED) {
+if [ FIsBuildFeatureEnabled openssl ] {
        SubDirC++Flags -DUSE_SSL ;
-       SubDirSysHdrs $(HAIKU_OPENSSL_HEADERS) ;
-       Includes [ FGristFiles $(sources) ] : 
$(HAIKU_OPENSSL_HEADERS_DEPENDENCY) ;
+       UseBuildFeatureHeaders openssl ;
+       Includes [ FGristFiles $(sources) ]
+               : [ BuildFeatureAttribute openssl : headers ] ;
                # Dependency needed to trigger downloading/unzipping the 
package before
                # compiling the files.
        SetupFeatureObjectsDir ssl ;
@@ -56,7 +57,7 @@ SharedLibrary libmail.so :
        $(TARGET_LIBSTDC++)
        $(TARGET_NETWORK_LIBS)
        $(TARGET_SELECT_UNAME_ETC_LIB)
-       $(HAIKU_OPENSSL_LIBS)
+       [ BuildFeatureAttribute openssl : libraries ]
        $(HAIKU_LOCALE_LIBS)
 ;
 
diff --git a/src/kits/network/libnetapi/Jamfile 
b/src/kits/network/libnetapi/Jamfile
index 5d09f54..e2d7252 100644
--- a/src/kits/network/libnetapi/Jamfile
+++ b/src/kits/network/libnetapi/Jamfile
@@ -8,13 +8,14 @@ UseHeaders [ FDirName $(HAIKU_TOP) src libs compat 
freebsd_wlan ] : true ;
 
 local sslSources ;
 local md5Sources ;
-if $(HAIKU_BUILD_FEATURE_OPENSSL_ENABLED) {
+if [ FIsBuildFeatureEnabled openssl ] {
        SubDirC++Flags -DOPENSSL_ENABLED ;
-       SubDirSysHdrs $(HAIKU_OPENSSL_HEADERS) ;
+       UseBuildFeatureHeaders openssl ;
        sslSources = SSL.cpp ;
        md5Sources = ;
-       Includes [ FGristFiles $(sslSources) SecureSocket.cpp 
HttpAuthentication.cpp ]
-               : $(HAIKU_OPENSSL_HEADERS_DEPENDENCY) ;
+       Includes [ FGristFiles $(sslSources) SecureSocket.cpp
+                       HttpAuthentication.cpp ]
+               : [ BuildFeatureAttribute openssl : headers ] ;
                # Dependency needed to trigger downloading/unzipping the 
package before
                # compiling the files.
        SetupFeatureObjectsDir ssl ;
@@ -71,6 +72,7 @@ SharedLibrary libbnetapi.so :
        UrlSynchronousRequest.cpp
 
        :
-       be $(TARGET_NETWORK_LIBS) $(TARGET_LIBSTDC++) $(TARGET_LIBSUPC++) 
$(HAIKU_OPENSSL_LIBS)
+       be $(TARGET_NETWORK_LIBS) $(TARGET_LIBSTDC++) $(TARGET_LIBSUPC++)
+       [ BuildFeatureAttribute openssl : libraries ]
        libshared.a
 ;

############################################################################

Commit:      178da21ad1d5d80be61167ab264aeab773b48cb9
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 13 15:07:19 2013 UTC

Update icu package

Also use the new build feature rules.

----------------------------------------------------------------------------

diff --git a/build/jam/BuildFeatures b/build/jam/BuildFeatures
index ad98eb1..fe5aa8b 100644
--- a/build/jam/BuildFeatures
+++ b/build/jam/BuildFeatures
@@ -61,83 +61,42 @@ if $(HAIKU_BUILD_FEATURE_SSL) {
 # ICU
 
 # Note ICU isn't actually optional, but is still an external package
-HAIKU_ICU_GCC_2_PACKAGE = icu-4.8.1.1-2-x86_gcc2.hpkg ;
-HAIKU_ICU_GCC_4_PACKAGE = icu-4.8.1.1-r1a4-x86-gcc4-2012-08-29.zip ;
-       # TODO: Make hpkg!
-HAIKU_ICU_PPC_PACKAGE = icu-4.8.1-ppc-2011-08-20.zip ;
-HAIKU_ICU_ARM_PACKAGE = icu-4.8.1.1-arm-2012-11-21.zip ;
-HAIKU_ICU_X86_64_PACKAGE = icu-4.8.1.1-x86_64-2012-07-30.zip ;
-
 if $(TARGET_ARCH) in arm ppc x86 x86_64 {
-       local icu_package ;
        if $(TARGET_ARCH) = ppc {
-               icu_package = $(HAIKU_ICU_PPC_PACKAGE) ;
+               HAIKU_ICU_PACKAGE = icu-4.8.1-ppc-2011-08-20.zip ;
                HAIKU_ICU_DEVEL_PACKAGE = icu-devel-4.8.1-ppc-2011-12-19.zip ;
        } else if $(TARGET_ARCH) = arm {
-               icu_package = $(HAIKU_ICU_ARM_PACKAGE) ;
+               HAIKU_ICU_PACKAGE = icu-4.8.1.1-arm-2012-11-21.zip ;
                HAIKU_ICU_DEVEL_PACKAGE = icu-devel-4.8.1.1-arm-2012-11-21.zip ;
        } else if $(TARGET_ARCH) = x86_64 {
-               icu_package = $(HAIKU_ICU_X86_64_PACKAGE) ;
+               HAIKU_ICU_PACKAGE = icu-4.8.1.1-x86_64-2012-07-30.zip ;
                HAIKU_ICU_DEVEL_PACKAGE = 
icu-devel-4.8.1.1-x86_64-2012-07-30.zip ;
        } else if $(HAIKU_GCC_VERSION[1]) = 2 {
-               icu_package = $(HAIKU_ICU_GCC_2_PACKAGE) ;
-               HAIKU_ICU_DEVEL_PACKAGE = icu_devel-4.8.1.1-2-x86_gcc2.hpkg ;
+               HAIKU_ICU_PACKAGE = icu-4.8.1.1-3-x86_gcc2.hpkg ;
+               HAIKU_ICU_DEVEL_PACKAGE = icu_devel-4.8.1.1-3-x86_gcc2.hpkg ;
        } else {
-               icu_package = $(HAIKU_ICU_GCC_4_PACKAGE) ;
+               HAIKU_ICU_PACKAGE = icu-4.8.1.1-r1a4-x86-gcc4-2012-08-29.zip ;
                HAIKU_ICU_DEVEL_PACKAGE = 
icu-devel-4.8.1.1-x86-gcc4-2011-12-20.zip ;
        }
-       local packageFile = [ DownloadFile $(icu_package)
-               : $(hpkgBaseURL)/$(icu_package) ] ;
 
-       # zip file and output directory
-       HAIKU_ICU_PACKAGE_FILE = $(packageFile) ;
-       HAIKU_ICU_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR)
-               $(icu_package:B) ] ;
+       HAIKU_ICU_URL = $(hpkgBaseURL)/$(HAIKU_ICU_PACKAGE) ;
+       HAIKU_ICU_DEVEL_URL = $(hpkgBaseURL)/$(HAIKU_ICU_DEVEL_PACKAGE) ;
 
-       # extract libraries
-       if $(TARGET_ARCH) = ppc {
-               HAIKU_ICU_LIBS = [ ExtractArchive $(HAIKU_ICU_DIR)
-                       :
-                       libicudata.so.48.1
-                       libicui18n.so.48.1
-                       libicuio.so.48.1
-                       libicule.so.48.1
-                       libiculx.so.48.1
-                       libicutu.so.48.1
-                       libicuuc.so.48.1
-                       : $(packageFile)
-                       : extracted-icu
-               ] ;
-       } else {
-               HAIKU_ICU_LIBS = [ ExtractArchive $(HAIKU_ICU_DIR)
-                       :
-                       develop/lib/libicudata.so.48.1.1
-                       develop/lib/libicui18n.so.48.1.1
-                       develop/lib/libicuio.so.48.1.1
-                       develop/lib/libicule.so.48.1.1
-                       develop/lib/libiculx.so.48.1.1
-                       develop/lib/libicutu.so.48.1.1
-                       develop/lib/libicuuc.so.48.1.1
-                       : $(packageFile)
-                       : extracted-icu
-               ] ;
-       }
-
-       # zip file and output directory
-       HAIKU_ICU_DEVEL_ZIP_FILE = [ DownloadFile $(HAIKU_ICU_DEVEL_PACKAGE)
-                       : $(hpkgBaseURL)/$(HAIKU_ICU_DEVEL_PACKAGE) ] ;
-       HAIKU_ICU_DEVEL_DIR = $(HAIKU_ICU_DIR) ;
-
-       # extract headers
-       HAIKU_ICU_HEADERS_DEPENDENCY = [ ExtractArchive
-               $(HAIKU_ICU_DEVEL_DIR:G=icu_devel)
-                       # We need a grist here, so it's a different target than 
the one for the
-                       # main package, even though it's the same directory.
-               : develop/headers : $(HAIKU_ICU_DEVEL_ZIP_FILE)
-               : extracted-icu-devel ] ;
-
-       HAIKU_ICU_HEADERS
-               = [ FDirName $(HAIKU_ICU_DEVEL_DIR) develop headers ] ;
+       ExtractBuildFeatureArchives icu :
+               file: base $(HAIKU_ICU_URL)
+                       runtime: lib
+               file: devel $(HAIKU_ICU_DEVEL_URL)
+                       depends: base
+                       libraries:
+                               develop/lib/libicudata.so
+                               develop/lib/libicui18n.so
+                               develop/lib/libicuio.so
+                               develop/lib/libicule.so
+                               develop/lib/libiculx.so
+                               develop/lib/libicutu.so
+                               develop/lib/libicuuc.so
+                       headers: develop/headers
+               ;
 
        EnableBuildFeatures icu ;
 } else  {
diff --git a/build/jam/OptionalPackages b/build/jam/OptionalPackages
index d5817a2..a22e9d3 100644
--- a/build/jam/OptionalPackages
+++ b/build/jam/OptionalPackages
@@ -1033,26 +1033,10 @@ if [ IsOptionalHaikuImagePackageAdded HGrep ] {
 
 # ICU
 if [ IsOptionalHaikuImagePackageAdded ICU ] {
-       if $(TARGET_ARCH) = x86 {
-               if $(HAIKU_GCC_VERSION[1]) = 2 {
-                       # unzip gcc2
-                       InstallOptionalHaikuImagePackage
-                               $(hpkgBaseURL)/$(HAIKU_ICU_GCC_2_PACKAGE)
-                               : system ;
-               } else {
-                       # unzip gcc4
-                       InstallOptionalHaikuImagePackage
-                               $(baseURL)/$(HAIKU_ICU_GCC_4_PACKAGE)
-                               : system lib ;
-               }
-       } else if $(TARGET_ARCH) = arm {
-               InstallOptionalHaikuImagePackage
-                       : $(baseURL)/$(HAIKU_ICU_ARM_PACKAGE)
-                       : system lib ;
-       } else if $(TARGET_ARCH) = x86_64 {
+       if $(TARGET_ARCH) in arm ppc x86 x86_64 {
                InstallOptionalHaikuImagePackage
-                       : $(baseURL)/$(HAIKU_ICU_X86_64_PACKAGE)
-                       : system lib ;
+                       $(hpkgBaseURL)/$(HAIKU_ICU_URL)
+                       : system ;
        } else {
                Echo "No optional package ICU available for $(TARGET_ARCH)" ;
        }
diff --git a/src/kits/Jamfile b/src/kits/Jamfile
index bc6ffe2..4c23f53 100644
--- a/src/kits/Jamfile
+++ b/src/kits/Jamfile
@@ -41,7 +41,7 @@ SharedLibrary libbe.so : :
        libagg.a
 
        libroot.so      # make sure it links against our libroot.so
-       $(TARGET_LIBSTDC++) $(HAIKU_ICU_LIBS)
+       $(TARGET_LIBSTDC++) [ BuildFeatureAttribute icu : libraries ]
 ;
 
 # Build libbe_test.so
diff --git a/src/kits/locale/Jamfile b/src/kits/locale/Jamfile
index ec9d4d4..47cf074 100644
--- a/src/kits/locale/Jamfile
+++ b/src/kits/locale/Jamfile
@@ -4,6 +4,7 @@ AddSubDirSupportedPlatforms libbe_test ;
 
 UsePrivateHeaders locale shared ;
 UsePublicHeaders locale storage ;
+UseBuildFeatureHeaders icu ;
 
 local sources =
        cat.cpp
@@ -49,8 +50,7 @@ local sources =
        ;
 
 
-SubDirSysHdrs $(HAIKU_ICU_HEADERS) ;
-Includes [ FGristFiles $(sources) ] : $(HAIKU_ICU_HEADERS_DEPENDENCY) ;
+Includes [ FGristFiles $(sources) ] : [ BuildFeatureAttribute icu : headers ] ;
        # Dependency needed to trigger downloading/unzipping the package before
        # compiling the files.
 
diff --git a/src/preferences/time/Jamfile b/src/preferences/time/Jamfile
index bd1295a..907507f 100644
--- a/src/preferences/time/Jamfile
+++ b/src/preferences/time/Jamfile
@@ -4,6 +4,7 @@ SetSubDirSupportedPlatformsBeOSCompatible ;
 
 UsePrivateHeaders interface locale shared [ FDirName libroot time ] ;
 UsePrivateSystemHeaders ;
+UseBuildFeatureHeaders icu ;
 
 local sources =
        AnalogClock.cpp
@@ -25,8 +26,7 @@ local sources =
        ;
 
 
-SubDirSysHdrs $(HAIKU_ICU_HEADERS) ;
-Includes [ FGristFiles $(sources) ] : $(HAIKU_ICU_HEADERS_DEPENDENCY) ;
+Includes [ FGristFiles $(sources) ] : [ BuildFeatureAttribute icu : headers ] ;
        # Dependency needed to trigger downloading/unzipping the package before
        # compiling the files.
 
diff --git a/src/system/libroot/add-ons/icu/Jamfile 
b/src/system/libroot/add-ons/icu/Jamfile
index 7627236..84d070e 100644
--- a/src/system/libroot/add-ons/icu/Jamfile
+++ b/src/system/libroot/add-ons/icu/Jamfile
@@ -7,6 +7,7 @@ UsePrivateHeaders
        [ FDirName libroot time ]
        shared
 ;
+UseBuildFeatureHeaders icu ;
 
 local sources =
        ICUCategoryData.cpp
@@ -22,14 +23,14 @@ local sources =
        ICUTimeData.cpp
 ;
 
-SubDirSysHdrs $(HAIKU_ICU_HEADERS) ;
-Includes [ FGristFiles $(sources) ] : $(HAIKU_ICU_HEADERS_DEPENDENCY) ;
+Includes [ FGristFiles $(sources) ] : [ BuildFeatureAttribute icu : headers ] ;
        # Dependency needed to trigger downloading/unzipping the package before
        # compiling the files.
 
 SharedLibrary libroot-addon-icu.so
        : $(sources)
        :
-       libreferenceable.a $(TARGET_LIBSTDC++) $(HAIKU_ICU_LIBS)
+       libreferenceable.a $(TARGET_LIBSTDC++)
+       [ BuildFeatureAttribute icu : libraries ]
 ;
 
diff --git a/src/tests/kits/locale/Jamfile b/src/tests/kits/locale/Jamfile
index ce8092e..9a8296c 100644
--- a/src/tests/kits/locale/Jamfile
+++ b/src/tests/kits/locale/Jamfile
@@ -2,6 +2,7 @@ SubDir HAIKU_TOP src tests kits locale ;
 
 UsePublicHeaders locale ;
 UsePrivateHeaders locale shared ;
+UseBuildFeatureHeaders icu ;
 
 # Pseudo target to build all locale kit tests
 NotFile LocaleKitTests ;
@@ -33,14 +34,13 @@ LocaleTest genericNumberFormatTest.cpp ;
 LocaleTest localeTest.cpp ;
 LocaleTest formatTest.cpp ;
 
-SubDirSysHdrs $(HAIKU_ICU_HEADERS) ;
-Includes [ FGristFiles ICUTest.cpp ] : $(HAIKU_ICU_HEADERS_DEPENDENCY) ;
+Includes [ FGristFiles ICUTest.cpp ] : [ BuildFeatureAttribute icu : headers ] 
;
        # Dependency needed to trigger downloading/unzipping the package before
        # compiling the files.
 
 Application ICUTest :
        ICUTest.cpp :
-       be $(TARGET_LIBSUPC++) $(HAIKU_ICU_LIBS) ;
+       be $(TARGET_LIBSUPC++) [ BuildFeatureAttribute icu : libraries ] ;
 
 Addon catalogTestAddOn
        : catalogTestAddOn.cpp

############################################################################

Commit:      e97e4b74a062e577778a8012673e95290bb18dea
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 13 16:46:34 2013 UTC

Update glu and mesa package

Also use the new build feature rules.

----------------------------------------------------------------------------

diff --git a/build/jam/BuildFeatures b/build/jam/BuildFeatures
index fe5aa8b..940d171 100644
--- a/build/jam/BuildFeatures
+++ b/build/jam/BuildFeatures
@@ -264,21 +264,24 @@ if $(TARGET_ARCH) = x86 {
 # GLU (GL Utilities)
 if $(TARGET_ARCH) = x86 {
        if $(HAIKU_GCC_VERSION[1]) >= 4 {
-               HAIKU_GLU_FILE = glu-9.0-x86-gcc4-2012-11-13.zip ;
+               # TODO:...
+               HAIKU_GLU_PACKAGE = glu-9.0-x86-gcc4-2012-11-13.zip ;
        } else {
-               HAIKU_GLU_FILE = glu-9.0-x86-gcc2-2012-11-13.zip ;
+               HAIKU_GLU_PACKAGE = glu-9.0.0-1-x86_gcc2.hpkg ;
+               HAIKU_GLU_DEVEL_PACKAGE = glu_devel-9.0.0-1-x86_gcc2.hpkg ;
        }
 
-       local zipFile = [ DownloadFile $(HAIKU_GLU_FILE)
-               : $(baseURL)/lib/$(HAIKU_GLU_FILE) ] ;
+       HAIKU_GLU_URL = $(hpkgBaseURL)/$(HAIKU_GLU_PACKAGE) ;
+       HAIKU_GLU_DEVEL_URL = $(hpkgBaseURL)/$(HAIKU_GLU_DEVEL_PACKAGE) ;
 
-       HAIKU_GLU_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR)
-               $(HAIKU_GLU_FILE:B) ] ;
-       HAIKU_GLU_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_GLU_DIR)
-               : develop/headers/os/opengl/GL : $(zipFile) : 
extracted-glu-headers ] ;
-       HAIKU_GLU_LIBS = [ ExtractArchive $(HAIKU_GLU_DIR)
-               : system/lib/libGLU.a : $(zipFile) : extracted-glu ] ;
-       HAIKU_GLU_HEADERS = [ FDirName $(HAIKU_GLU_DIR) develop headers os 
opengl ] ;
+       ExtractBuildFeatureArchives glu :
+               file: base $(HAIKU_GLU_URL)
+                       runtime: lib
+               file: devel $(HAIKU_GLU_DEVEL_URL)
+                       depends: base
+                       library: develop/lib/libGLU.so
+                       headers: develop/headers
+               ;
 
        EnableBuildFeatures glu ;
 } else {
@@ -290,64 +293,37 @@ if $(TARGET_ARCH) = x86 {
 if $(TARGET_ARCH) = x86 {
        local zipFile ;
        if $(HAIKU_GCC_VERSION[1]) >= 4 {
-               HAIKU_MESA_FILE = mesa-9.1.1-x86-gcc4-2013-04-27.zip ;
+               # TODO:...
+               HAIKU_MESA_PACKAGE = mesa-9.1.1-x86-gcc4-2013-04-27.zip ;
        } else {
-               HAIKU_MESA_FILE = mesa-7.8.2-x86-gcc2-2013-04-28.zip ;
+               HAIKU_MESA_PACKAGE = mesa-7.8.2-3-x86_gcc2.hpkg ;
+               HAIKU_MESA_DEVEL_PACKAGE = mesa_devel-7.8.2-3-x86_gcc2.hpkg ;
        }
 
-       zipFile = [ DownloadFile $(HAIKU_MESA_FILE)
-               : $(baseURL)/$(HAIKU_MESA_FILE) ] ;
-
-       HAIKU_MESA_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR)
-               $(HAIKU_MESA_FILE:B) ] ;
+       HAIKU_MESA_URL = $(hpkgBaseURL)/$(HAIKU_MESA_PACKAGE) ;
+       HAIKU_MESA_DEVEL_URL = $(hpkgBaseURL)/$(HAIKU_MESA_DEVEL_PACKAGE) ;
 
-       HAIKU_MESA_HEADERS = [ FDirName $(HAIKU_MESA_DIR) include ] ;
-       HAIKU_MESA_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_MESA_DIR)
-               : include/ : $(zipFile) : extracted-mesa ] ;
-
-       # Base Mesa libraries
-       HAIKU_MESA_LIB = [ ExtractArchive $(HAIKU_MESA_DIR)
-               :
-               lib.haiku/libmesa.a
-               : $(zipFile)
-               : extracted-mesa ] ;
-       HAIKU_GLAPI_LIB = [ ExtractArchive $(HAIKU_MESA_DIR)
-               :
-               lib.haiku/libglapi.a
-               : $(zipFile)
-               : extracted-mesa ] ;
-
-       Depends $(HAIKU_MESA_HEADERS_DEPENDENCY) : 
$(HAIKU_GLU_HEADERS_DEPENDENCY) ;
-       Depends $(HAIKU_GLAPI_LIBS) : $(HAIKU_GLU_LIBS) ;
+       ExtractBuildFeatureArchives mesa : [ FFilterByBuildFeatures
+               file: devel $(HAIKU_MESA_DEVEL_URL)
+                       mesaLibrary: develop/lib/libmesa.a
+                       glapiLibrary: develop/lib/libglapi.a
+                       headers: develop/headers
+                       privateHeaders: develop/headers/mesa_private
+
+                       !gcc2 @{
+                               glslLibrary: develop/lib/libglsl.a
+                               galliumLibrary: develop/lib/libgallium.a
+                               llvm @{
+                                       galliumLlvmpipeLibrary: 
develop/lib/libllvmpipe.a
+                               }@
+                               !llvm @{
+                                       galliumSoftpipeLibrary: 
develop/lib/libsoftpipe.a
+                               }@
+                       }@ # !gcc2
+               ] ;
 
-       # Extended Mesa libraries for newer versions
-       if $(HAIKU_GCC_VERSION[1]) >= 4 {
-               HAIKU_GLSL_LIB = [ ExtractArchive $(HAIKU_MESA_DIR)
-                       :
-                       lib.haiku/libglsl.a
-                       : $(zipFile)
-                       : extracted-mesa ] ;
-               HAIKU_GALLIUM_LIB = [ ExtractArchive $(HAIKU_MESA_DIR)
-                       :
-                       lib.haiku/libgallium.a
-                       : $(zipFile)
-                       : extracted-mesa ] ;
-
-               if FIsBuildFeatureEnabled(llvm) {
-                       HAIKU_GALLIUM_LLVMPIPE_LIB = [ ExtractArchive 
$(HAIKU_MESA_DIR)
-                               :
-                               lib.haiku/libllvmpipe.a
-                               : $(zipFile)
-                               : extracted-mesa ] ;
-                       Depends $(HAIKU_GALLIUM_LLVMPIPE_LIB) : 
$(HAIKU_LLVM_LIBS) ;
-               } else {
-                       HAIKU_GALLIUM_SOFTPIPE_LIB = [ ExtractArchive 
$(HAIKU_MESA_DIR)
-                               :
-                               lib.haiku/libsoftpipe.a
-                               : $(zipFile)
-                               : extracted-mesa ] ;
-               }
-       }
+       Depends [ BuildFeatureAttribute mesa : galliumLlvmpipeLibrary ]
+               : $(HAIKU_LLVM_LIBS) ;
 
        EnableBuildFeatures mesa ;
 } else {
diff --git a/build/jam/OptionalPackageDependencies 
b/build/jam/OptionalPackageDependencies
index 31bfa73..779bb2d 100644
--- a/build/jam/OptionalPackageDependencies
+++ b/build/jam/OptionalPackageDependencies
@@ -11,7 +11,8 @@ OptionalPackageDependencies Caya : Expat ;
 OptionalPackageDependencies CDRecord : GetTextLibintl LibIconv ;
 OptionalPackageDependencies Curl : OpenSSL ;
 OptionalPackageDependencies DevelopmentBase : CDRecord DevelopmentMin Yasm ;
-OptionalPackageDependencies Development : DevelopmentBase Perl Zlib-devel ;
+OptionalPackageDependencies Development
+       : DevelopmentBase GLU-devel Perl Zlib-devel ;
 OptionalPackageDependencies DevelopmentPowerPC : DevelopmentMin ;
 OptionalPackageDependencies GetText : GetTextLibintl ;
 OptionalPackageDependencies GetTextLibintl : LibIconv ;
@@ -45,4 +46,4 @@ OptionalPackageDependencies XZ-Utils : Tar ;
 OptionalPackageDependencies Zlib-devel : Zlib ;
 
 OptionalPackageDependencies MandatoryPackages
-       : Bzip Ctags Grep ICU LibSolv Sed Tar Zlib ;
+       : Bzip Ctags GLU Grep ICU LibSolv Mesa Sed Tar Zlib ;
diff --git a/build/jam/OptionalPackages b/build/jam/OptionalPackages
index a22e9d3..96caf6a 100644
--- a/build/jam/OptionalPackages
+++ b/build/jam/OptionalPackages
@@ -49,6 +49,8 @@
 #      GetTextLibintl                  - GetText's libintl
 #      Git                                             - the distributed 
version control system
 #      GitDoc                                  - documentation for the 
distributed version control system
+#      GLU                                             - OpenGL Utilities
+#      GLU-devel                               - GLU development files
 #      GPerf                                   - the perfect hash function 
generator.
 #      Grep                                    - program to search for strings 
inside a file
 #      Groff                                   - text formatter used for man 
pages
@@ -959,6 +961,30 @@ if [ IsOptionalHaikuImagePackageAdded GitDoc ] {
 }
 
 
+# GLU
+if [ IsOptionalHaikuImagePackageAdded GLU ] {
+       if $(TARGET_ARCH) = x86 {
+               InstallOptionalHaikuImagePackage
+                       $(hpkgBaseURL)/$(HAIKU_GLU_URL)
+                       : system ;
+       } else {
+               Echo "No optional package GLU available for $(TARGET_ARCH)" ;
+       }
+}
+
+
+# GLU-devel
+if [ IsOptionalHaikuImagePackageAdded GLU-devel ] {
+       if $(TARGET_ARCH) = x86 {
+               InstallOptionalHaikuImagePackage
+                       $(hpkgBaseURL)/$(HAIKU_GLU_DEVEL_PACKAGE)
+                       : system ;
+       } else {
+               Echo "No optional package GLU-devel available for 
$(TARGET_ARCH)" ;
+       }
+}
+
+
 # GPerf
 if [ IsOptionalHaikuImagePackageAdded GPerf ] {
        if $(TARGET_ARCH) = x86 {
@@ -1294,6 +1320,16 @@ if [ IsOptionalHaikuImagePackageAdded Mercurial ] {
 }
 
 
+# Mesa
+if [ IsOptionalHaikuImagePackageAdded Mesa ] {
+       if $(TARGET_ARCH) = x86 {
+               InstallOptionalHaikuImagePackage $(HAIKU_MESA_URL) : system ;
+       } else {
+               Echo "No optional package Mesa available for $(TARGET_ARCH)" ;
+       }
+}
+
+
 # Nano
 if [ IsOptionalHaikuImagePackageAdded Nano ] {
        if $(TARGET_ARCH) = x86 {
diff --git a/build/jam/packages/Haiku b/build/jam/packages/Haiku
index 08f57a5..d576e8a 100644
--- a/build/jam/packages/Haiku
+++ b/build/jam/packages/Haiku
@@ -97,20 +97,9 @@ if $(HAIKU_GCC_VERSION[1]) = 2 {
 }
 
 
-# libGL.so has GLU (like BeOS) built-in
-SYSTEM_LIBS_LIBGL_ALIASES = libGLU.so ;
-
-if $(TARGET_ARCH) = x86 {
-       local lib ;
-       for lib in $(SYSTEM_LIBS_LIBGL_ALIASES) {
-               AddSymlinkToPackage lib : libGL.so : $(lib) ;
-       }
-}
-
 SYSTEM_LIBS_ALIASES =
        $(SYSTEM_LIBS_LIBNETWORK_ALIASES)
        libnetapi.so
-       $(SYSTEM_LIBS_LIBGL_ALIASES)
 ;
 
 OPTIONAL_LIBS_ALIASES =
diff --git a/build/jam/packages/HaikuDevel b/build/jam/packages/HaikuDevel
index 763b781..c09f39b 100644
--- a/build/jam/packages/HaikuDevel
+++ b/build/jam/packages/HaikuDevel
@@ -22,7 +22,7 @@ AddFilesToPackage lib : $(developmentLibs) ;
 
 # library symlinks
 local lib ;
-for lib in $(SYSTEM_LIBS) $(SYSTEM_LIBS_LIBGL_ALIASES) $(developmentLibs) {
+for lib in $(SYSTEM_LIBS) $(developmentLibs) {
        AddSymlinkToPackage $(developDirTokens) lib : /system/lib $(lib:BS) ;
        local abiVersion = [ on $(lib) return $(HAIKU_LIB_ABI_VERSION) ] ;
        if $(abiVersion) {
@@ -88,13 +88,13 @@ if $(HAIKU_GCC_VERSION[1]) = 2 {
 
 # OpenGL headers
 if $(TARGET_ARCH) = x86 {
-       local mesaGlHeaders = [ FDirName $(HAIKU_MESA_HEADERS) GL ] ;
-       mesaGlHeaders = $(mesaGlHeaders:G=$(HAIKU_MESA_HEADERS_DEPENDENCY:G)) ;
-       Depends $(mesaGlHeaders) : $(HAIKU_MESA_HEADERS_DEPENDENCY) ;
+       local mesaGlHeaders
+               = [ FDirName [ BuildFeatureAttribute mesa : headers : path ] GL 
] ;
+       local mesaGlHeadersDependency = [ BuildFeatureAttribute mesa : headers 
] ;
+       mesaGlHeaders = $(mesaGlHeaders:G=$(mesaGlHeadersDependency:G)) ;
+       Depends $(mesaGlHeaders) : $(mesaGlHeadersDependency) ;
        CopyDirectoryToPackage $(developDirTokens) headers os opengl
                : $(mesaGlHeaders) : : : isTarget ;
-       CopyDirectoryToPackage $(developDirTokens) headers os opengl
-               : $(HAIKU_GLU_HEADERS_DEPENDENCY) : : : isTarget ;
 }
 
 BuildHaikuPackage $(haikuDevelPackage) : haiku_devel ;
diff --git a/src/add-ons/opengl/swpipe/Jamfile 
b/src/add-ons/opengl/swpipe/Jamfile
index 01b3a9a..d741644 100644
--- a/src/add-ons/opengl/swpipe/Jamfile
+++ b/src/add-ons/opengl/swpipe/Jamfile
@@ -1,5 +1,5 @@
 SubDir HAIKU_TOP src add-ons opengl swpipe ;
-SubDirSysHdrs $(HAIKU_MESA_HEADERS) ;
+UseBuildFeatureHeaders mesa ;
 
 UsePrivateHeaders interface ;
 
@@ -10,13 +10,14 @@ local sources =
        GalliumFramebuffer.cpp
        bitmap_wrapper.cpp ;
 
-Includes [ FGristFiles $(sources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ;
+Includes [ FGristFiles $(sources) ] : [ BuildFeatureAttribute mesa : headers ] 
;
 
-UseHeaders [ FDirName $(HAIKU_MESA_DIR) src gallium auxiliary ] ;
-UseHeaders [ FDirName $(HAIKU_MESA_DIR) src gallium drivers ] ;
-UseHeaders [ FDirName $(HAIKU_MESA_DIR) src gallium include ] ;
-UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mapi ] ;
-UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mesa ] ;
+local privateHeaders = [ BuildFeatureAttribute mesa : privateHeaders : path ] ;
+UseHeaders [ FDirName $(privateHeaders) gallium auxiliary ] ;
+UseHeaders [ FDirName $(privateHeaders) gallium drivers ] ;
+UseHeaders [ FDirName $(privateHeaders) gallium include ] ;
+UseHeaders [ FDirName $(privateHeaders) mapi ] ;
+UseHeaders [ FDirName $(privateHeaders) mesa ] ;
 
 AddResources Software\ Renderer : SoftwareRenderer.rdef ;
 
@@ -36,11 +37,11 @@ Addon Software\ Renderer :
        $(sources)
        :
        libGL.so
-       $(HAIKU_GALLIUM_SOFTPIPE_LIB)
-       $(HAIKU_GALLIUM_LLVMPIPE_LIB)
-       $(HAIKU_MESA_LIB)
-       $(HAIKU_GLSL_LIB)
-       $(HAIKU_GALLIUM_LIB)
+       [ BuildFeatureAttribute mesa : galliumSoftpipeLibrary ]
+       [ BuildFeatureAttribute mesa : galliumLlvmpipeLibrary ]
+       [ BuildFeatureAttribute mesa : mesaLibrary ]
+       [ BuildFeatureAttribute mesa : glslLibrary ]
+       [ BuildFeatureAttribute mesa : galliumLibrary ]
        $(HAIKU_LLVM_LIBS)
        be translation stdc++ $(TARGET_LIBSUPC++)
 ;
diff --git a/src/add-ons/opengl/swrast/Jamfile 
b/src/add-ons/opengl/swrast/Jamfile
index 513a251..90e0c0b 100644
--- a/src/add-ons/opengl/swrast/Jamfile
+++ b/src/add-ons/opengl/swrast/Jamfile
@@ -14,21 +14,22 @@ SubDirC++Flags [ FDefines $(defines) ] ;
 local sources = MesaSoftwareRenderer.cpp ;
 
 UsePrivateHeaders interface ;
-SubDirSysHdrs $(HAIKU_MESA_HEADERS) ;
-Includes [ FGristFiles $(sources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ;
+UseBuildFeatureHeaders mesa ;
+Includes [ FGristFiles $(sources) ] : [ BuildFeatureAttribute mesa : headers ] 
;
 
-UseHeaders [ FDirName $(HAIKU_MESA_DIR) include ] ;
-UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mesa ] ;
-UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mesa main ] ;
-UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mapi ] ;
-UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mapi glapi ] ;
+UseHeaders [ BuildFeatureAttribute mesa : headers : path ] ;
+local privateHeaders = [ BuildFeatureAttribute mesa : privateHeaders : path ] ;
+UseHeaders [ FDirName $(privateHeaders) mesa ] ;
+UseHeaders [ FDirName $(privateHeaders) mesa main ] ;
+UseHeaders [ FDirName $(privateHeaders) mapi ] ;
+UseHeaders [ FDirName $(privateHeaders) mapi glapi ] ;
 
 AddResources Software\ Rasterizer : MesaSoftwareRenderer.rdef ;
 
 Addon Software\ Rasterizer :
        MesaSoftwareRenderer.cpp
        :
-       $(HAIKU_MESA_LIB)
-       $(HAIKU_GLSL_LIB)
+       [ BuildFeatureAttribute mesa : mesaLibrary ]
+       [ BuildFeatureAttribute mesa : glslLibrary ]
        libGL.so be $(TARGET_LIBSUPC++)
 ;
diff --git a/src/add-ons/opengl/swrast_legacy/Jamfile 
b/src/add-ons/opengl/swrast_legacy/Jamfile
index d9ac110..d5080f1 100644
--- a/src/add-ons/opengl/swrast_legacy/Jamfile
+++ b/src/add-ons/opengl/swrast_legacy/Jamfile
@@ -28,19 +28,20 @@ if $(TARGET_PLATFORM) != haiku {
 local sources = MesaSoftwareRenderer.cpp ;
 
 UsePrivateHeaders interface ;
-SubDirSysHdrs $(HAIKU_MESA_HEADERS) ;
-Includes [ FGristFiles $(sources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ;
+UseBuildFeatureHeaders mesa ;
+Includes [ FGristFiles $(sources) ] : [ BuildFeatureAttribute mesa : headers ] 
;
 
-UseHeaders [ FDirName $(HAIKU_MESA_DIR) include ] ;
-UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mesa ] ;
-UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mesa main ] ;
-UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mapi ] ;
-UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mapi glapi ] ;
+UseHeaders [ BuildFeatureAttribute mesa : headers : path ] ;
+local privateHeaders = [ BuildFeatureAttribute mesa : privateHeaders : path ] ;
+UseHeaders [ FDirName $(privateHeaders) mesa ] ;
+UseHeaders [ FDirName $(privateHeaders) mesa main ] ;
+UseHeaders [ FDirName $(privateHeaders) mapi ] ;
+UseHeaders [ FDirName $(privateHeaders) mapi glapi ] ;
 
 # For older versions of Mesa
-UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mesa glapi ] ;
-UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mesa tnl ] ;
-UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mesa x86 ] ;
+UseHeaders [ FDirName $(privateHeaders) mesa glapi ] ;
+UseHeaders [ FDirName $(privateHeaders) mesa tnl ] ;
+UseHeaders [ FDirName $(privateHeaders) mesa x86 ] ;
 
 
 AddResources Legacy\ Software\ Rasterizer : MesaSoftwareRenderer.rdef ;
@@ -48,6 +49,6 @@ AddResources Legacy\ Software\ Rasterizer : 
MesaSoftwareRenderer.rdef ;
 Addon Legacy\ Software\ Rasterizer :
        $(sources)
        :
-       $(HAIKU_MESA_LIB)
+       [ BuildFeatureAttribute mesa : mesaLibrary ]
        libGL.so be $(TARGET_LIBSUPC++)
 ;
diff --git a/src/add-ons/screen_savers/flurry/Jamfile 
b/src/add-ons/screen_savers/flurry/Jamfile
index b022701..7248fa1 100644
--- a/src/add-ons/screen_savers/flurry/Jamfile
+++ b/src/add-ons/screen_savers/flurry/Jamfile
@@ -1,6 +1,6 @@
 SubDir HAIKU_TOP src add-ons screen_savers flurry ;
-SubDirSysHdrs $(HAIKU_GLU_HEADERS) ;
-SubDirSysHdrs $(HAIKU_MESA_HEADERS) ;
+UseBuildFeatureHeaders glu ;
+UseBuildFeatureHeaders mesa ;
 
 AddResources Message : Flurry.rdef ;
 
@@ -12,13 +12,17 @@ local sources =
        Texture.cpp
 ;
 
-Includes [ FGristFiles $(sources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ;
+Includes [ FGristFiles $(sources) ] :
+       [ BuildFeatureAttribute glu : headers ]
+       [ BuildFeatureAttribute mesa : headers ]
+       ;
        # Dependency needed to trigger downloading/unzipping the package before
        # compiling the files.
 
 ScreenSaver Flurry :
        $(sources) :
        be screensaver GL libshared.a $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++)
+       [ BuildFeatureAttribute glu : library ]
 ;
 
 DoCatalogs Flurry :
diff --git a/src/add-ons/screen_savers/glife/Jamfile 
b/src/add-ons/screen_savers/glife/Jamfile
index 0fcebd0..4bb4f90 100644
--- a/src/add-ons/screen_savers/glife/Jamfile
+++ b/src/add-ons/screen_savers/glife/Jamfile
@@ -1,6 +1,6 @@
 SubDir HAIKU_TOP src add-ons screen_savers glife ;
-SubDirSysHdrs $(HAIKU_GLU_HEADERS) ;
-SubDirSysHdrs $(HAIKU_MESA_HEADERS) ;
+UseBuildFeatureHeaders glu ;
+UseBuildFeatureHeaders mesa ;
 
 SetSubDirSupportedPlatformsBeOSCompatible ;
 
@@ -14,7 +14,10 @@ local sources =
        GLifeConfig.cpp
 ;
 
-Includes [ FGristFiles $(sources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ;
+Includes [ FGristFiles $(sources) ] :
+       [ BuildFeatureAttribute glu : headers ]
+       [ BuildFeatureAttribute mesa : headers ]
+       ;
     # Dependency needed to trigger downloading/unzipping the package before
     # compiling the files.
 
@@ -23,6 +26,7 @@ AddResources GLife : GLife.rdef ;
 ScreenSaver GLife :
        $(sources) : 
        be screensaver GL $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++)
+       [ BuildFeatureAttribute glu : library ]
 ;
 
 DoCatalogs GLife :
diff --git a/src/add-ons/screen_savers/gravity/Jamfile 
b/src/add-ons/screen_savers/gravity/Jamfile
index 426435b..ff680d1 100644
--- a/src/add-ons/screen_savers/gravity/Jamfile
+++ b/src/add-ons/screen_savers/gravity/Jamfile
@@ -1,6 +1,6 @@
 SubDir HAIKU_TOP src add-ons screen_savers gravity ;
-SubDirSysHdrs $(HAIKU_GLU_HEADERS) ;
-SubDirSysHdrs $(HAIKU_MESA_HEADERS) ;
+UseBuildFeatureHeaders glu ;
+UseBuildFeatureHeaders mesa ;
 
 # For GCC2
 if $(HAIKU_GCC_VERSION[1]) < 3 {
@@ -18,13 +18,18 @@ local sources =
        main.cpp
 ;
 
-Includes [ FGristFiles $(sources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ;
+Includes [ FGristFiles $(sources) ] :
+       [ BuildFeatureAttribute glu : headers ]
+       [ BuildFeatureAttribute mesa : headers ]
+       ;
     # Dependency needed to trigger downloading/unzipping the package before
     # compiling the files.
 
 ScreenSaver Gravity :
        $(sources)
-       : be screensaver GL $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSTDC++)
+       :
+       be screensaver GL $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSTDC++)
+       [ BuildFeatureAttribute glu : library ]
 ;
 
 DoCatalogs Gravity :
diff --git a/src/apps/3dmov/Jamfile b/src/apps/3dmov/Jamfile
index a1bc4c2..8e0d8c3 100644
--- a/src/apps/3dmov/Jamfile
+++ b/src/apps/3dmov/Jamfile
@@ -1,5 +1,5 @@
 SubDir HAIKU_TOP src apps 3dmov ;
-SubDirSysHdrs $(HAIKU_MESA_HEADERS) ;
+UseBuildFeatureHeaders mesa ;
 
 SetSubDirSupportedPlatformsBeOSCompatible ;
 
@@ -19,7 +19,7 @@ local sources =
        GLUtility.cpp
     ;
 
-Includes [ FGristFiles $(sources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ;
+Includes [ FGristFiles $(sources) ] : [ BuildFeatureAttribute mesa : headers ] 
;
 
 Application 3DMov :
        $(sources)
diff --git a/src/apps/glteapot/Jamfile b/src/apps/glteapot/Jamfile
index 74e903d..ed78f81 100644
--- a/src/apps/glteapot/Jamfile
+++ b/src/apps/glteapot/Jamfile
@@ -1,6 +1,6 @@
 SubDir HAIKU_TOP src apps glteapot ;
-SubDirSysHdrs $(HAIKU_GLU_HEADERS) ;
-SubDirSysHdrs $(HAIKU_MESA_HEADERS) ;
+UseBuildFeatureHeaders glu ;
+UseBuildFeatureHeaders mesa ;
 
 SetSubDirSupportedPlatformsBeOSCompatible ;
 
@@ -13,11 +13,16 @@ local sources =
        TeapotApp.cpp
 ;
 
-Includes [ FGristFiles $(sources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ;
+Includes [ FGristFiles $(sources) ] :
+       [ BuildFeatureAttribute glu : headers ]
+       [ BuildFeatureAttribute mesa : headers ]
+       ;
 
 Application GLTeapot :
        $(sources)
-       : be GL game $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++)
+       :
+       be GL game $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++)
+       [ BuildFeatureAttribute glu : library ]
        : GLTeapot.rdef
 ;
 
diff --git a/src/apps/haiku3d/Jamfile b/src/apps/haiku3d/Jamfile
index c4588f6..59c3aa2 100644
--- a/src/apps/haiku3d/Jamfile
+++ b/src/apps/haiku3d/Jamfile
@@ -1,6 +1,6 @@
 SubDir HAIKU_TOP src apps haiku3d ;
-SubDirSysHdrs $(HAIKU_GLU_HEADERS) ;
-SubDirSysHdrs $(HAIKU_MESA_HEADERS) ;
+UseBuildFeatureHeaders mesa ;
+UseBuildFeatureHeaders glu ;
 
 SEARCH_SOURCE += [ FDirName $(SUBDIR) mesh ] ;
 SEARCH_SOURCE += [ FDirName $(SUBDIR) texture ] ;
@@ -30,10 +30,15 @@ local sources =
        VideoFileTexture.cpp
 ;
 
-Includes [ FGristFiles $(sources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ;
+Includes [ FGristFiles $(sources) ] :
+       [ BuildFeatureAttribute glu : headers ]
+       [ BuildFeatureAttribute mesa : headers ]
+       ;
 
 Application Haiku3d :
        $(sources)
-       : be game GL media translation $(TARGET_LIBSTDC++)
+       :
+       be game GL media translation $(TARGET_LIBSTDC++)
+       [ BuildFeatureAttribute glu : library ]
        : Haiku3d.rdef
 ;
diff --git a/src/kits/opengl/Jamfile b/src/kits/opengl/Jamfile
index 7194f48..c71f217 100644
--- a/src/kits/opengl/Jamfile
+++ b/src/kits/opengl/Jamfile
@@ -4,6 +4,8 @@ SetSubDirSupportedPlatformsBeOSCompatible ;
 
 UsePrivateHeaders interface ;
 UsePrivateSystemHeaders ;
+UseBuildFeatureHeaders glu ;
+UseBuildFeatureHeaders mesa ;
 
 local sources =
        GLView.cpp
@@ -18,19 +20,18 @@ if $(TARGET_PLATFORM) != haiku {
                # We need our public GL headers also when not compiling for 
Haiku.
 }
 
-SubDirSysHdrs $(HAIKU_GLU_HEADERS) ;
-SubDirSysHdrs $(HAIKU_MESA_HEADERS) ;
-Includes [ FGristFiles $(sources) ] : $(HAIKU_GLU_HEADERS_DEPENDENCY) ;
-Includes [ FGristFiles $(sources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ;
+Includes [ FGristFiles $(sources) ] : [ BuildFeatureAttribute glu : headers ] ;
+Includes [ FGristFiles $(sources) ] : [ BuildFeatureAttribute mesa : headers ] 
;
 
-UseHeaders [ FDirName $(HAIKU_MESA_DIR) include ] ;
-UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mesa ] ;
-UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mesa main ] ;
-UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mapi ] ;
-UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mapi glapi ] ;
+UseHeaders [ BuildFeatureAttribute mesa : headers : path ] ;
+local privateHeaders = [ BuildFeatureAttribute mesa : privateHeaders : path ] ;
+UseHeaders [ FDirName $(privateHeaders) mesa ] ;
+UseHeaders [ FDirName $(privateHeaders) mesa main ] ;
+UseHeaders [ FDirName $(privateHeaders) mapi ] ;
+UseHeaders [ FDirName $(privateHeaders) mapi glapi ] ;
 
 # For older versions of Mesa
-UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mesa glapi ] ;
+UseHeaders [ FDirName $(privateHeaders) mesa glapi ] ;
 
 LINKFLAGS on libGL.so = [ on libGL.so return $(LINKFLAGS) ]
        -Xlinker --whole-archive -Xlinker --no-undefined ;
@@ -43,10 +44,10 @@ if $(HAIKU_GCC_VERSION[1]) < 3 {
 
 SharedLibrary libGL.so : $(sources) :
        # GLU
-       $(HAIKU_GLU_LIBS)
+       [ BuildFeatureAttribute glu : library ]
 
        # GLAPI Dispatch code (from Mesa buildpackage)
-       $(HAIKU_GLAPI_LIB)
+       [ BuildFeatureAttribute mesa : glapiLibrary ]
 
        # External libraries:
        game                    # BWindowScreen needed by BGLScreen stub class
diff --git a/src/libs/glut/Jamfile b/src/libs/glut/Jamfile
index 54750c2..0d30470 100644
--- a/src/libs/glut/Jamfile
+++ b/src/libs/glut/Jamfile
@@ -1,6 +1,6 @@
 SubDir HAIKU_TOP src libs glut ;
-SubDirSysHdrs $(HAIKU_GLU_HEADERS) ;
-SubDirSysHdrs $(HAIKU_MESA_HEADERS) ;
+UseBuildFeatureHeaders glu ;
+UseBuildFeatureHeaders mesa ;
 
 SetSubDirSupportedPlatformsBeOSCompatible ;
 
@@ -57,12 +57,15 @@ if $(HAIKU_GCC_VERSION[1]) < 3 {
 
 
 # Ensure Mesa dependency is met
-Includes [ FGristFiles $(sourcesCc) $(sourcesCpp) ]
-       : $(HAIKU_MESA_HEADERS_DEPENDENCY) ;
+Includes [ FGristFiles $(sourcesCc) $(sourcesCpp) ] :
+       [ BuildFeatureAttribute glu : headers ]
+       [ BuildFeatureAttribute mesa : headers ]
+       ;
 
 SharedLibrary libglut.so :
        $(sourcesCpp)
        $(sourcesCc)
        :
        GL game be $(TARGET_LIBSTDC++)
+       [ BuildFeatureAttribute glu : library ]
 ;
diff --git a/src/tests/kits/opengl/demos/gears/Jamfile 
b/src/tests/kits/opengl/demos/gears/Jamfile
index 9cc394c..bd1998c 100644
--- a/src/tests/kits/opengl/demos/gears/Jamfile
+++ b/src/tests/kits/opengl/demos/gears/Jamfile
@@ -1,5 +1,5 @@
 SubDir HAIKU_TOP src tests kits opengl demos gears ;
-SubDirSysHdrs $(HAIKU_MESA_HEADERS) ;
+UseBuildFeatureHeaders mesa ;
 
 SetSubDirSupportedPlatformsBeOSCompatible ;
 
@@ -15,7 +15,7 @@ local sources =
        gears.c
 ;
 
-Includes [ FGristFiles $(sources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ;
+Includes [ FGristFiles $(sources) ] : [ BuildFeatureAttribute mesa : headers ] 
;
 
 
 SimpleTest GLGears :
diff --git a/src/tests/kits/opengl/direct_mode/Jamfile 
b/src/tests/kits/opengl/direct_mode/Jamfile
index de41e03..8929ed5 100644
--- a/src/tests/kits/opengl/direct_mode/Jamfile
+++ b/src/tests/kits/opengl/direct_mode/Jamfile
@@ -1,5 +1,5 @@
 SubDir HAIKU_TOP src tests kits opengl direct_mode ;
-SubDirSysHdrs $(HAIKU_MESA_HEADERS) ;
+UseBuildFeatureHeaders mesa ;
 
 SetSubDirSupportedPlatformsBeOSCompatible ;
 
@@ -14,7 +14,7 @@ local sources =
        GLDirectMode.cpp
 ;
 
-Includes [ FGristFiles $(sources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ;
+Includes [ FGristFiles $(sources) ] : [ BuildFeatureAttribute mesa : headers ] 
;
 
 SimpleTest GLDirectMode :
        $(sources)
diff --git a/src/tests/kits/opengl/glinfo/Jamfile 
b/src/tests/kits/opengl/glinfo/Jamfile
index 2c7ce84..3c37dc2 100644
--- a/src/tests/kits/opengl/glinfo/Jamfile
+++ b/src/tests/kits/opengl/glinfo/Jamfile
@@ -1,6 +1,6 @@
 SubDir HAIKU_TOP src tests kits opengl glinfo ;
-SubDirSysHdrs $(HAIKU_GLU_HEADERS) ;
-SubDirSysHdrs $(HAIKU_MESA_HEADERS) ;
+UseBuildFeatureHeaders glu ;
+UseBuildFeatureHeaders mesa ;
 
 UsePrivateHeaders interface ;
 
@@ -14,7 +14,10 @@ local sources =
        GearsView.cpp
 ;
 
-Includes [ FGristFiles $(sources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ;
+Includes [ FGristFiles $(sources) ] :
+       [ BuildFeatureAttribute glu : headers ]
+       [ BuildFeatureAttribute mesa : headers ]
+       ;
        # Dependency needed to trigger downloading/unzipping the package before
        # compiling the files.
 
@@ -24,6 +27,7 @@ Preference GLInfo :
        be GL libglut.so 
        translation libcolumnlistview.a $(HAIKU_LOCALE_LIBS)
        $(TARGET_LIBSUPC++)
+       [ BuildFeatureAttribute glu : library ]
        :
        GLInfo.rdef
 ;
diff --git a/src/tests/kits/opengl/glsl/Jamfile 
b/src/tests/kits/opengl/glsl/Jamfile
index 4a17e83..2709530 100644
--- a/src/tests/kits/opengl/glsl/Jamfile
+++ b/src/tests/kits/opengl/glsl/Jamfile
@@ -1,5 +1,5 @@
 SubDir HAIKU_TOP src tests kits opengl glsl ;
-SubDirSysHdrs $(HAIKU_MESA_HEADERS) ;
+UseBuildFeatureHeaders mesa ;
 
 SetSubDirSupportedPlatformsBeOSCompatible ;
 
@@ -14,7 +14,8 @@ local shadersources =
        shaderutil.c
 ;
 
-Includes [ FGristFiles $(shadersources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ;
+Includes [ FGristFiles $(shadersources) ]
+       : [ BuildFeatureAttribute mesa : headers ] ;
 
 StaticLibrary libshaderutil.a :
        $(shadersources)
diff --git a/src/tests/kits/opengl/glut/game_mode/Jamfile 
b/src/tests/kits/opengl/glut/game_mode/Jamfile
index ddcc55f..23849dc 100644
--- a/src/tests/kits/opengl/glut/game_mode/Jamfile
+++ b/src/tests/kits/opengl/glut/game_mode/Jamfile
@@ -1,5 +1,5 @@
 SubDir HAIKU_TOP src tests kits opengl glut game_mode ;
-SubDirSysHdrs $(HAIKU_MESA_HEADERS) ;
+UseBuildFeatureHeaders mesa ;
 
 SetSubDirSupportedPlatformsBeOSCompatible ;
 
@@ -14,7 +14,7 @@ local sources =
        game_mode.c
 ;
 
-Includes [ FGristFiles $(sources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ;
+Includes [ FGristFiles $(sources) ] : [ BuildFeatureAttribute mesa : headers ] 
;
 
 SimpleTest GLUTGameMode :
        $(sources)

############################################################################

Commit:      14d5e307b44211346880ca8255162dbd5dd773ff
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 13 19:31:44 2013 UTC

Update ffmpeg package and its requirements

Also make use of new build feature rules.

----------------------------------------------------------------------------

diff --git a/build/jam/BuildFeatures b/build/jam/BuildFeatures
index 940d171..815dbab 100644
--- a/build/jam/BuildFeatures
+++ b/build/jam/BuildFeatures
@@ -335,120 +335,53 @@ if $(TARGET_ARCH) = x86 {
 local ffmpegBaseURL = $(baseURL)/lib ;
 if $(TARGET_ARCH) = x86 {
        if $(HAIKU_GCC_VERSION[1]) >= 4 {
-               HAIKU_FFMPEG_FILE = ffmpeg-0.10.2-r1a4-x86-gcc4-2012-09-02.zip ;
-               HAIKU_SPEEX_FILE = speex-1.2rc1-r1a4-x86-gcc4-2012-09-02.zip ;
-               HAIKU_LIBTHEORA_FILE = 
libtheora-1.1.1-r1a4-x86-gcc4-2012-09-02.zip ;
-               HAIKU_LIBVORBIS_FILE = 
libvorbis-1.3.2-r1a4-x86-gcc4-2012-09-02.zip ;
-               HAIKU_LIBOGG_FILE = libogg-1.3.0-r1a4-x86-gcc4-2012-09-02.zip ;
-               HAIKU_LIBVPX_FILE = libvpx-1.0.0-r1a4-x86-gcc4-2012-09-02.zip ;
+               # TODO:...
+               HAIKU_FFMPEG_PACKAGE = 
ffmpeg-0.10.2-r1a4-x86-gcc4-2012-09-02.zip ;
+               HAIKU_SPEEX_PACKAGE = speex-1.2rc1-r1a4-x86-gcc4-2012-09-02.zip 
;
+               HAIKU_LIBTHEORA_PACKAGE = 
libtheora-1.1.1-r1a4-x86-gcc4-2012-09-02.zip ;
+               HAIKU_LIBVORBIS_PACKAGE = 
libvorbis-1.3.2-r1a4-x86-gcc4-2012-09-02.zip ;
+               HAIKU_LIBOGG_PACKAGE = 
libogg-1.3.0-r1a4-x86-gcc4-2012-09-02.zip ;
+               HAIKU_LIBVPX_PACKAGE = 
libvpx-1.0.0-r1a4-x86-gcc4-2012-09-02.zip ;
        } else {
-               HAIKU_FFMPEG_FILE = ffmpeg-0.10.2-r1a4-x86-gcc2-2012-08-30.zip ;
-               HAIKU_SPEEX_FILE = speex-1.2rc1-r1a4-x86-gcc2-2012-08-29.zip ;
-               HAIKU_LIBTHEORA_FILE = 
libtheora-1.1.1-r1a4-x86-gcc2-2012-08-29.zip ;
-               HAIKU_LIBVORBIS_FILE = 
libvorbis-1.3.2-r1a4-x86-gcc2-2012-08-29.zip ;
-               HAIKU_LIBOGG_FILE = libogg-1.3.0-r1a4-x86-gcc2-2012-08-29.zip ;
-               HAIKU_LIBVPX_FILE = libvpx-1.0.0-r1a4-x86-gcc2-2012-08-29.zip ;
+               HAIKU_FFMPEG_PACKAGE = ffmpeg-0.10.2-1-x86_gcc2.hpkg ;
+               HAIKU_FFMPEG_DEVEL_PACKAGE = 
ffmpeg_devel-0.10.2-1-x86_gcc2.hpkg ;
+               HAIKU_SPEEX_PACKAGE = speex-1.2~rc1-1-x86_gcc2.hpkg ;
+               HAIKU_SPEEX_DEVEL_PACKAGE = speex_devel-1.2~rc1-1-x86_gcc2.hpkg 
;
+               HAIKU_LIBTHEORA_PACKAGE = libtheora-1.1.1-1-x86_gcc2.hpkg ;
+               HAIKU_LIBTHEORA_DEVEL_PACKAGE = 
libtheora_devel-1.1.1-1-x86_gcc2.hpkg ;
+               HAIKU_LIBVORBIS_PACKAGE = libvorbis-1.3.2-1-x86_gcc2.hpkg ;
+               HAIKU_LIBVORBIS_DEVEL_PACKAGE = 
libvorbis_devel-1.3.2-1-x86_gcc2.hpkg ;
+               HAIKU_LIBOGG_PACKAGE = libogg-1.3.0-1-x86_gcc2.hpkg ;
+               HAIKU_LIBOGG_DEVEL_PACKAGE = libogg_devel-1.3.0-1-x86_gcc2.hpkg 
;
+               HAIKU_LIBVPX_PACKAGE = libvpx-1.0.0-1-x86_gcc2.hpkg ;
+               HAIKU_LIBVPX_DEVEL_PACKAGE = libvpx_devel-1.0.0-1-x86_gcc2.hpkg 
;
        }
 
-       local ffmpegZipFile = [ DownloadFile $(HAIKU_FFMPEG_FILE)
-               : $(ffmpegBaseURL)/$(HAIKU_FFMPEG_FILE) ] ;
-       local speexZipFile = [ DownloadFile $(HAIKU_SPEEX_FILE)
-               : $(ffmpegBaseURL)/$(HAIKU_SPEEX_FILE) ] ;
-       local libtheoraZipFile = [ DownloadFile $(HAIKU_LIBTHEORA_FILE)
-               : $(ffmpegBaseURL)/$(HAIKU_LIBTHEORA_FILE) ] ;
-       local libvorbisZipFile = [ DownloadFile $(HAIKU_LIBVORBIS_FILE)
-               : $(ffmpegBaseURL)/$(HAIKU_LIBVORBIS_FILE) ] ;
-       local liboggZipFile = [ DownloadFile $(HAIKU_LIBOGG_FILE)
-               : $(ffmpegBaseURL)/$(HAIKU_LIBOGG_FILE) ] ;
-       local libvpxZipFile = [ DownloadFile $(HAIKU_LIBVPX_FILE)
-               : $(ffmpegBaseURL)/$(HAIKU_LIBVPX_FILE) ] ;
-
-       HAIKU_FFMPEG_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR)
-               $(HAIKU_FFMPEG_FILE:B) ] ;
-       HAIKU_SPEEX_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR)
-               $(HAIKU_SPEEX_FILE:B) ] ;
-       HAIKU_LIBTHEORA_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR)
-               $(HAIKU_LIBTHEORA_FILE:B) ] ;
-       HAIKU_LIBVORBIS_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR)
-               $(HAIKU_LIBVORBIS_FILE:B) ] ;
-       HAIKU_LIBOGG_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR)
-               $(HAIKU_LIBOGG_FILE:B) ] ;
-       HAIKU_LIBVPX_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR)
-               $(HAIKU_LIBVPX_FILE:B) ] ;
-
-       HAIKU_FFMPEG_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_FFMPEG_DIR)
-               : common/include/ : $(ffmpegZipFile) : extracted-ffmpeg ] ;
-       HAIKU_SPEEX_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_SPEEX_DIR)
-               : common/include/ : $(speexZipFile) : extracted-speex ] ;
-       HAIKU_LIBTHEORA_HEADERS_DEPENDENCY = [ ExtractArchive 
$(HAIKU_LIBTHEORA_DIR)
-               : common/include/ : $(libtheoraZipFile) : extracted-libtheora ] 
;
-       HAIKU_LIBVORBIS_HEADERS_DEPENDENCY = [ ExtractArchive 
$(HAIKU_LIBVORBIS_DIR)
-               : common/include/ : $(libvorbisZipFile) : extracted-libvorbis ] 
;
-       HAIKU_LIBOGG_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_LIBOGG_DIR)
-               : common/include/ : $(liboggZipFile) : extracted-libogg ] ;
-       HAIKU_LIBVPX_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_LIBVPX_DIR)
-               : common/include/ : $(libvpxZipFile) : extracted-libvpx ] ;
-
-       HAIKU_FFMPEG_LIBS = [ ExtractArchive $(HAIKU_FFMPEG_DIR)
-               :
-               common/lib/libavformat.a
-               common/lib/libavcodec.a
-               common/lib/libavdevice.a
-               common/lib/libavfilter.a
-               common/lib/libswscale.a
-               common/lib/libavutil.a
-               : $(ffmpegZipFile)
-               : extracted-ffmpeg ] ;
-       Depends $(HAIKU_FFMPEG_LIBS) : $(HAIKU_FFMPEG_HEADERS_DEPENDENCY) ;
-
-       HAIKU_SPEEX_LIBS = [ ExtractArchive $(HAIKU_SPEEX_DIR)
-               :
-               common/lib/libspeex.a
-               : $(speexZipFile)
-               : extracted-speex ] ;
-       Depends $(HAIKU_SPEEX_LIBS) : $(HAIKU_SPEEX_HEADERS_DEPENDENCY) ;
-
-       HAIKU_LIBTHEORA_LIBS = [ ExtractArchive $(HAIKU_LIBTHEORA_DIR)
-               :
-               common/lib/libtheora.a
-               common/lib/libtheoradec.a
-               common/lib/libtheoraenc.a
-               : $(libtheoraZipFile)
-               : extracted-libtheora ] ;
-       Depends $(HAIKU_LIBTHEORA_LIBS) : $(HAIKU_LIBTHEORA_HEADERS_DEPENDENCY) 
;
-
-
-       HAIKU_LIBVORBIS_LIBS = [ ExtractArchive $(HAIKU_LIBVORBIS_DIR)
-               :
-               common/lib/libvorbis.a
-               common/lib/libvorbisenc.a
-               : $(libvorbisZipFile)
-               : extracted-libvorbis ] ;
-       Depends $(HAIKU_LIBVORBIS_LIBS) : $(HAIKU_LIBVORBIS_HEADERS_DEPENDENCY) 
;
-
-
-       HAIKU_LIBOGG_LIBS = [ ExtractArchive $(HAIKU_LIBOGG_DIR)
-               :
-               common/lib/libogg.a
-               : $(liboggZipFile)
-               : extracted-libogg ] ;
-       Depends $(HAIKU_LIBOGG_LIBS) : $(HAIKU_LIBOGG_HEADERS_DEPENDENCY) ;
+       local ffmpegLibs = libavformat.so libavcodec.so libavdevice.so
+               libavfilter.so libswscale.so libavutil.so ;
+       local speexLibs = libspeex.so ;
+       local libtheoraLibs = libtheora.so libtheoradec.so libtheoraenc.so ;
+       local libvorbisLibs = libvorbis.so libvorbisenc.so ;
+       local liboggLibs = libogg.so ;
+       local libvpxLibs = libvpx.so ;
+
+       local feature ;
+       for feature in ffmpeg speex libtheora libvorbis libogg libvpx {
+               HAIKU_$(feature:U)_URL = 
$(hpkgBaseURL)/$(HAIKU_$(feature:U)_PACKAGE) ;
+               HAIKU_$(feature:U)_DEVEL_URL
+                       = $(hpkgBaseURL)/$(HAIKU_$(feature:U)_DEVEL_PACKAGE) ;
+
+               ExtractBuildFeatureArchives $(feature) :
+                       file: base $(HAIKU_$(feature:U)_URL)
+                               runtime: lib
+                       file: devel $(HAIKU_$(feature:U)_DEVEL_URL)
+                               depends: base
+                               libraries: develop/lib/$($(feature)Libs)
+                               headers: develop/headers
+                       ;
 
-       HAIKU_LIBVPX_LIBS = [ ExtractArchive $(HAIKU_LIBVPX_DIR)
-               :
-               common/lib/libvpx.a
-               : $(libvpxZipFile)
-               : extracted-libvpx ] ;
-       Depends $(HAIKU_LIBVPX_LIBS) : $(HAIKU_LIBVPX_HEADERS_DEPENDENCY) ;
-
-       HAIKU_FFMPEG_HEADERS = [ FDirName $(HAIKU_FFMPEG_DIR) common include ] ;
-       HAIKU_SPEEX_HEADERS = [ FDirName $(HAIKU_SPEEX_DIR) common include ] ;
-       HAIKU_LIBTHEORA_HEADERS = [ FDirName $(HAIKU_LIBTHEORA_DIR) common 
include ] ;
-       HAIKU_LIBVORBIS_HEADERS = [ FDirName $(HAIKU_LIBVORBIS_DIR) common 
include ] ;
-       HAIKU_LIBOGG_HEADERS = [ FDirName $(HAIKU_LIBOGG_DIR) common include ] ;
-       HAIKU_LIBVPX_HEADERS = [ FDirName $(HAIKU_LIBVPX_DIR) common include ] ;
-
-       EnableBuildFeatures ffmpeg ;
+               EnableBuildFeatures $(feature) ;
+       }
 } else {
        Echo "FFMpeg support not available on $(TARGET_ARCH)" ;
 }
diff --git a/build/jam/OptionalPackageDependencies 
b/build/jam/OptionalPackageDependencies
index 779bb2d..75be60e 100644
--- a/build/jam/OptionalPackageDependencies
+++ b/build/jam/OptionalPackageDependencies
@@ -12,7 +12,7 @@ OptionalPackageDependencies CDRecord : GetTextLibintl 
LibIconv ;
 OptionalPackageDependencies Curl : OpenSSL ;
 OptionalPackageDependencies DevelopmentBase : CDRecord DevelopmentMin Yasm ;
 OptionalPackageDependencies Development
-       : DevelopmentBase GLU-devel Perl Zlib-devel ;
+       : DevelopmentBase FFMpeg-devel GLU-devel Perl Zlib-devel ;
 OptionalPackageDependencies DevelopmentPowerPC : DevelopmentMin ;
 OptionalPackageDependencies GetText : GetTextLibintl ;
 OptionalPackageDependencies GetTextLibintl : LibIconv ;
@@ -46,4 +46,4 @@ OptionalPackageDependencies XZ-Utils : Tar ;
 OptionalPackageDependencies Zlib-devel : Zlib ;
 
 OptionalPackageDependencies MandatoryPackages
-       : Bzip Ctags GLU Grep ICU LibSolv Mesa Sed Tar Zlib ;
+       : Bzip Ctags FFMpeg GLU Grep ICU LibSolv Mesa Sed Tar Zlib ;
diff --git a/build/jam/OptionalPackages b/build/jam/OptionalPackages
index 96caf6a..dec932b 100644
--- a/build/jam/OptionalPackages
+++ b/build/jam/OptionalPackages
@@ -44,6 +44,8 @@
 #      Droid                                   - Font family from Google's 
Android project
 #      Expat                                   - XML parsing libraries
 #      Fastdep                                 - fast dependency generator for 
C/C++ files
+#      FFMpeg                                  - audio/video library
+#      FFMpeg-devel                    - FFMpeg development files
 #      friss                                   - RSS/ATOM/... feeds reader
 #      GetText                                 - a framework to help produce 
multi-lingual messages.
 #      GetTextLibintl                  - GetText's libintl
@@ -858,6 +860,34 @@ if [ IsOptionalHaikuImagePackageAdded Fastdep ] {
 }
 
 
+# FFMpeg
+if [ IsOptionalHaikuImagePackageAdded FFMpeg ] {
+       if $(TARGET_ARCH) = x86 {
+               local feature ;
+               for feature in ffmpeg speex libtheora libvorbis libogg libvpx {
+                       InstallOptionalHaikuImagePackage 
$(HAIKU_$(feature:U)_URL)
+                               : system ;
+               }
+       } else {
+               Echo "No optional package FFMpeg available for $(TARGET_ARCH)" ;
+       }
+}
+
+
+# FFMpeg-devel
+if [ IsOptionalHaikuImagePackageAdded FFMpeg-devel ] {
+       if $(TARGET_ARCH) = x86 {
+               local feature ;
+               for feature in ffmpeg speex libtheora libvorbis libogg libvpx {
+                       InstallOptionalHaikuImagePackage 
$(HAIKU_$(feature:U)_DEVEL_URL)
+                               : system ;
+               }
+       } else {
+               Echo "No optional package FFMpeg-devel available for 
$(TARGET_ARCH)" ;
+       }
+}
+
+
 # friss
 if [ IsOptionalHaikuImagePackageAdded friss ] {
        if $(TARGET_ARCH) != x86 {
diff --git a/src/add-ons/media/media-add-ons/dvb/Jamfile 
b/src/add-ons/media/media-add-ons/dvb/Jamfile
index a0d0e81..0ff7b39 100644
--- a/src/add-ons/media/media-add-ons/dvb/Jamfile
+++ b/src/add-ons/media/media-add-ons/dvb/Jamfile
@@ -2,10 +2,11 @@ SubDir HAIKU_TOP src add-ons media media-add-ons dvb ;
 
 UsePrivateHeaders drivers ;
 
-UseHeaders [ FDirName $(HAIKU_FFMPEG_HEADERS) ] ;
-UseHeaders [ FDirName $(HAIKU_FFMPEG_HEADERS) libavcodec ] ;
-UseHeaders [ FDirName $(HAIKU_FFMPEG_HEADERS) libavformat ] ;
-UseHeaders [ FDirName $(HAIKU_FFMPEG_HEADERS) libavutil ] ;
+local ffmpegHeaders = [ BuildFeatureAttribute ffmpeg : headers : path ] ;
+UseHeaders $(ffmpegHeaders) ;
+UseHeaders [ FDirName $(ffmpegHeaders) libavcodec ] ;
+UseHeaders [ FDirName $(ffmpegHeaders) libavformat ] ;
+UseHeaders [ FDirName $(ffmpegHeaders) libavutil ] ;
 
 
 Addon dvb.media_addon :
@@ -21,5 +22,5 @@ Addon dvb.media_addon :
        : be media $(TARGET_LIBSUPC++)
 ;
 
-Includes [ FGristFiles MediaFormat.cpp ] : $(HAIKU_FFMPEG_HEADERS_DEPENDENCY) ;
-
+Includes [ FGristFiles MediaFormat.cpp ]
+       : [ BuildFeatureAttribute ffmpeg : headers ] ;
diff --git a/src/add-ons/media/plugins/ffmpeg/Jamfile 
b/src/add-ons/media/plugins/ffmpeg/Jamfile
index 5320037..888668f 100644
--- a/src/add-ons/media/plugins/ffmpeg/Jamfile
+++ b/src/add-ons/media/plugins/ffmpeg/Jamfile
@@ -25,16 +25,18 @@ local sources =
        ;
 
 
-SubDirSysHdrs $(HAIKU_FFMPEG_HEADERS) ;
-Includes [ FGristFiles $(sources) ] : $(HAIKU_FFMPEG_HEADERS_DEPENDENCY) ;
+UseBuildFeatureHeaders ffmpeg ;
+Includes [ FGristFiles $(sources) ]
+       : [ BuildFeatureAttribute ffmpeg : headers ] ;
 
-UseHeaders [ FDirName $(HAIKU_FFMPEG_HEADERS) ] ;
-UseHeaders [ FDirName $(HAIKU_FFMPEG_HEADERS) libavcodec ] ;
-UseHeaders [ FDirName $(HAIKU_FFMPEG_HEADERS) libavdevice ] ;
-UseHeaders [ FDirName $(HAIKU_FFMPEG_HEADERS) libavfilter ] ;
-UseHeaders [ FDirName $(HAIKU_FFMPEG_HEADERS) libavformat ] ;
-UseHeaders [ FDirName $(HAIKU_FFMPEG_HEADERS) libavutil ] ;
-UseHeaders [ FDirName $(HAIKU_FFMPEG_HEADERS) libswscale ] ;
+local ffmpegHeaders = [ BuildFeatureAttribute ffmpeg : headers : path ] ;
+UseHeaders $(ffmpegHeaders) ;
+UseHeaders [ FDirName $(ffmpegHeaders) libavcodec ] ;
+UseHeaders [ FDirName $(ffmpegHeaders) libavdevice ] ;
+UseHeaders [ FDirName $(ffmpegHeaders) libavfilter ] ;
+UseHeaders [ FDirName $(ffmpegHeaders) libavformat ] ;
+UseHeaders [ FDirName $(ffmpegHeaders) libavutil ] ;
+UseHeaders [ FDirName $(ffmpegHeaders) libswscale ] ;
 
 Addon ffmpeg :
        $(sources)
@@ -45,13 +47,13 @@ Addon ffmpeg :
        :
 
        # FFmpeg libraries (from FFmpeg optional package):
-       $(HAIKU_FFMPEG_LIBS)
+       [ BuildFeatureAttribute ffmpeg : libraries ]
 
-       $(HAIKU_SPEEX_LIBS)
-       $(HAIKU_LIBTHEORA_LIBS)
-       $(HAIKU_LIBVORBIS_LIBS)
-       $(HAIKU_LIBOGG_LIBS)
-       $(HAIKU_LIBVPX_LIBS)
+       [ BuildFeatureAttribute speex : libraries ]
+       [ BuildFeatureAttribute libtheora : libraries ]
+       [ BuildFeatureAttribute libvorbis : libraries ]
+       [ BuildFeatureAttribute libogg : libraries ]
+       [ BuildFeatureAttribute libvpx : libraries ]
        libbz2_ffmpeg.a
 
        be

############################################################################

Commit:      e2c74e414c67463c2feadce97df7b2c2eb8a25f7
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 13 19:34:05 2013 UTC

Remove unused MikMod build feature

----------------------------------------------------------------------------

diff --git a/build/jam/BuildFeatures b/build/jam/BuildFeatures
index 815dbab..fc4f65a 100644
--- a/build/jam/BuildFeatures
+++ b/build/jam/BuildFeatures
@@ -387,39 +387,6 @@ if $(TARGET_ARCH) = x86 {
 }
 
 
-# MikMod
-local mikmodBaseURL = http://haiku-files.org/files/optional-packages/lib ;
-if $(TARGET_ARCH) = x86 {
-       if $(HAIKU_GCC_VERSION[1]) >= 4 {
-               HAIKU_MIKMOD_FILE = 
libmikmod-3.1.11-r1a4-x86-gcc4-2012-09-02.zip ;
-       } else {
-               HAIKU_MIKMOD_FILE = 
libmikmod-3.1.11-r1a4-x86-gcc2-2012-08-29.zip ;
-       }
-
-       local mikmodZipFile = [ DownloadFile $(HAIKU_MIKMOD_FILE)
-               : $(mikmodBaseURL)/$(HAIKU_MIKMOD_FILE) ] ;
-
-       HAIKU_MIKMOD_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR)
-               $(HAIKU_MIKMOD_FILE:B) ] ;
-
-       HAIKU_MIKMOD_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_MIKMOD_DIR)
-               : common/include/ : $(mikmodZipFile) : extracted-mikmod ] ;
-
-       HAIKU_MIKMOD_LIBS = [ ExtractArchive $(HAIKU_MIKMOD_DIR)
-               :
-               common/lib/libmikmod.a
-               : $(mikmodZipFile)
-               : extracted-ffmpeg ] ;
-       Depends $(HAIKU_MIKMOD_LIBS) : $(HAIKU_MIKMOD_HEADERS_DEPENDENCY) ;
-
-       HAIKU_MIKMOD_HEADERS = [ FDirName $(HAIKU_MIKMOD_DIR) common include ] ;
-
-       EnableBuildFeatures mikmod ;
-} else {
-       Echo "MikMod support not available on $(TARGET_ARCH)" ;
-}
-
-
 # Freetype
 local freetypeBaseURL = $(baseURL)/lib ;
 if $(TARGET_ARCH) = ppc || $(TARGET_ARCH) = x86 || $(TARGET_ARCH) = x86_64 || 
$(TARGET_ARCH) = arm {

############################################################################

Commit:      29f8805f6c70f1c819eb58ac2220647d8e40d6e7
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 13 20:06:29 2013 UTC

Update freetype package

Also use the new build feature rules

----------------------------------------------------------------------------

diff --git a/build/jam/BuildFeatures b/build/jam/BuildFeatures
index fc4f65a..073404f 100644
--- a/build/jam/BuildFeatures
+++ b/build/jam/BuildFeatures
@@ -389,46 +389,31 @@ if $(TARGET_ARCH) = x86 {
 
 # Freetype
 local freetypeBaseURL = $(baseURL)/lib ;
-if $(TARGET_ARCH) = ppc || $(TARGET_ARCH) = x86 || $(TARGET_ARCH) = x86_64 || 
$(TARGET_ARCH) = arm {
+if $(TARGET_ARCH) in arm ppc x86 x86_64 {
        if $(TARGET_ARCH) = arm {
-               HAIKU_FREETYPE_FILE = freetype-2.4.9-arm-2012-11-21.zip ;
+               HAIKU_FREETYPE_PACKAGE = freetype-2.4.9-arm-2012-11-21.zip ;
        } else if $(TARGET_ARCH) = ppc {
-               HAIKU_FREETYPE_FILE = freetype-2.4.9-ppc-gcc4-2012-06-26.zip ;
+               HAIKU_FREETYPE_PACKAGE = freetype-2.4.9-ppc-gcc4-2012-06-26.zip 
;
        } else if $(TARGET_ARCH) = x86_64 {
-               HAIKU_FREETYPE_FILE = freetype-2.4.9-x86_64-2012-08-04.zip ;
+               HAIKU_FREETYPE_PACKAGE = freetype-2.4.9-x86_64-2012-08-04.zip ;
        } else if $(HAIKU_GCC_VERSION[1]) >= 4 {
-               HAIKU_FREETYPE_FILE = 
freetype-2.4.9-r1a4-x86-gcc4-2012-09-02.zip ;
+               HAIKU_FREETYPE_PACKAGE = 
freetype-2.4.9-r1a4-x86-gcc4-2012-09-02.zip ;
        } else {
-               HAIKU_FREETYPE_FILE = 
freetype-2.4.9-r1a4-x86-gcc2-2012-08-28.zip ;
+               HAIKU_FREETYPE_PACKAGE = freetype-2.4.9-1-x86_gcc2.hpkg ;
+               HAIKU_FREETYPE_DEVEL_PACKAGE = 
freetype_devel-2.4.9-1-x86_gcc2.hpkg ;
        }
 
-       local freetypeZipFile = [ DownloadFile $(HAIKU_FREETYPE_FILE)
-               : $(freetypeBaseURL)/$(HAIKU_FREETYPE_FILE) ] ;
-
-       HAIKU_FREETYPE_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR)
-               $(HAIKU_FREETYPE_FILE:B) ] ;
+       HAIKU_FREETYPE_URL = $(hpkgBaseURL)/$(HAIKU_FREETYPE_PACKAGE) ;
+       HAIKU_FREETYPE_DEVEL_URL = 
$(hpkgBaseURL)/$(HAIKU_FREETYPE_DEVEL_PACKAGE) ;
 
-       HAIKU_FREETYPE_HEADERS_DEPENDENCY = [ ExtractArchive 
$(HAIKU_FREETYPE_DIR)
-               : develop/headers/3rdparty/freetype2 : $(freetypeZipFile)
-               : extracted-freetype ] ;
-
-       HAIKU_FREETYPE_LIB = [ ExtractArchive $(HAIKU_FREETYPE_DIR)
-               :
-               common/lib/libfreetype.so
-               : $(freetypeZipFile)
-               : extracted-freetype ] ;
-       HAIKU_FREETYPE_CURRENT_LIB = [ ExtractArchive $(HAIKU_FREETYPE_DIR)
-               :
-               common/lib/libfreetype.so.6.8.1
-               : $(freetypeZipFile)
-               : extracted-freetype ] ;
-       Depends $(HAIKU_FREETYPE_LIB) $(HAIKU_FREETYPE_CURRENT_LIB) : 
$(HAIKU_FREETYPE_HEADERS_DEPENDENCY) ;
-
-       HAIKU_FREETYPE_CURRENT_LINK = libfreetype.so.6 ;
-
-       HAIKU_FREETYPE_HEADERS = [ FDirName $(HAIKU_FREETYPE_DIR) develop
-               headers 3rdparty ] [ FDirName $(HAIKU_FREETYPE_DIR) develop
-               headers 3rdparty freetype2 ] ;
+       ExtractBuildFeatureArchives freetype :
+               file: base $(HAIKU_FREETYPE_URL)
+                       runtime: lib
+               file: devel $(HAIKU_FREETYPE_DEVEL_URL)
+                       depends: base
+                       library: develop/lib/libfreetype.so
+                       headers: develop/headers develop/headers/freetype2
+               ;
 
        EnableBuildFeatures freetype ;
 } else {
diff --git a/build/jam/HaikuImage b/build/jam/HaikuImage
index a7ab8cb..685e5dd 100644
--- a/build/jam/HaikuImage
+++ b/build/jam/HaikuImage
@@ -78,7 +78,6 @@ SYSTEM_LIBS = [ FFilterByBuildFeatures
 PRIVATE_SYSTEM_LIBS = [ FFilterByBuildFeatures
        $(HAIKU_JPEG_CURRENT_LIB)
        $(HAIKU_LIBPNG_CURRENT_LIB)
-       $(HAIKU_FREETYPE_CURRENT_LIB)
        libalm.so
        libfluidsynth.so
        libilmimf.so
diff --git a/build/jam/OptionalPackageDependencies 
b/build/jam/OptionalPackageDependencies
index 75be60e..e71e6e1 100644
--- a/build/jam/OptionalPackageDependencies
+++ b/build/jam/OptionalPackageDependencies
@@ -12,7 +12,7 @@ OptionalPackageDependencies CDRecord : GetTextLibintl 
LibIconv ;
 OptionalPackageDependencies Curl : OpenSSL ;
 OptionalPackageDependencies DevelopmentBase : CDRecord DevelopmentMin Yasm ;
 OptionalPackageDependencies Development
-       : DevelopmentBase FFMpeg-devel GLU-devel Perl Zlib-devel ;
+       : DevelopmentBase FFMpeg-devel FreeType-devel GLU-devel Perl Zlib-devel 
;
 OptionalPackageDependencies DevelopmentPowerPC : DevelopmentMin ;
 OptionalPackageDependencies GetText : GetTextLibintl ;
 OptionalPackageDependencies GetTextLibintl : LibIconv ;
@@ -46,4 +46,4 @@ OptionalPackageDependencies XZ-Utils : Tar ;
 OptionalPackageDependencies Zlib-devel : Zlib ;
 
 OptionalPackageDependencies MandatoryPackages
-       : Bzip Ctags FFMpeg GLU Grep ICU LibSolv Mesa Sed Tar Zlib ;
+       : Bzip Ctags FFMpeg FreeType GLU Grep ICU LibSolv Mesa Sed Tar Zlib ;
diff --git a/build/jam/OptionalPackages b/build/jam/OptionalPackages
index dec932b..c8b84c3 100644
--- a/build/jam/OptionalPackages
+++ b/build/jam/OptionalPackages
@@ -46,6 +46,8 @@
 #      Fastdep                                 - fast dependency generator for 
C/C++ files
 #      FFMpeg                                  - audio/video library
 #      FFMpeg-devel                    - FFMpeg development files
+#      FreeType                                - A Free, High-Quality, and 
Portable Font Engine
+#      FreeType-devel                  - FreeType development files
 #      friss                                   - RSS/ATOM/... feeds reader
 #      GetText                                 - a framework to help produce 
multi-lingual messages.
 #      GetTextLibintl                  - GetText's libintl
@@ -888,6 +890,26 @@ if [ IsOptionalHaikuImagePackageAdded FFMpeg-devel ] {
 }
 
 
+# FreeType
+if [ IsOptionalHaikuImagePackageAdded FreeType ] {
+       if $(TARGET_ARCH) in arm ppc x86 x86_64 {
+               InstallOptionalHaikuImagePackage $(HAIKU_FREETYPE_URL) : system 
;
+       } else {
+               Echo "No optional package FreeType available for 
$(TARGET_ARCH)" ;
+       }
+}
+
+
+# FreeType-devel
+if [ IsOptionalHaikuImagePackageAdded FreeType-devel ] {
+       if $(TARGET_ARCH) in arm ppc x86 x86_64 {
+               InstallOptionalHaikuImagePackage $(HAIKU_FREETYPE_DEVEL_URL) : 
system ;
+       } else {
+               Echo "No optional package FreeType-devel available for 
$(TARGET_ARCH)" ;
+       }
+}
+
+
 # friss
 if [ IsOptionalHaikuImagePackageAdded friss ] {
        if $(TARGET_ARCH) != x86 {
diff --git a/build/jam/packages/Haiku b/build/jam/packages/Haiku
index d576e8a..ba54ac0 100644
--- a/build/jam/packages/Haiku
+++ b/build/jam/packages/Haiku
@@ -103,7 +103,6 @@ SYSTEM_LIBS_ALIASES =
 ;
 
 OPTIONAL_LIBS_ALIASES =
-       libfreetype.so
        libjpeg.so
        libpng.so
        libz.so
@@ -111,12 +110,6 @@ OPTIONAL_LIBS_ALIASES =
 
 # TODO: Remove the following symlinks when the libraries have been packaged
 # properly!
-# libfreetype.so links to the current freetype lib
-AddSymlinkToPackage lib : $(HAIKU_FREETYPE_CURRENT_LIB:BS)
-       : $(HAIKU_FREETYPE_CURRENT_LINK) : : true ;
-AddSymlinkToPackage lib : $(HAIKU_FREETYPE_CURRENT_LINK)
-       : libfreetype.so : : true ;
-
 # libpng.so links to the current libpng
 AddSymlinkToPackage lib : $(HAIKU_LIBPNG_CURRENT_LIB:BS)
        : $(HAIKU_LIBPNG_CURRENT_LINK) : : true ;
diff --git a/build/jam/packages/HaikuDevel b/build/jam/packages/HaikuDevel
index c09f39b..55e1685 100644
--- a/build/jam/packages/HaikuDevel
+++ b/build/jam/packages/HaikuDevel
@@ -40,8 +40,8 @@ AddFilesToPackage $(developDirTokens) lib : 
libposix_error_mapper.a ;
 
 # ABI independent stuff
 
-# scripts: freetype-config, setgcc
-local scripts = freetype-config setgcc ;
+# scripts: setgcc
+local scripts = setgcc ;
 SEARCH on $(scripts) = [ FDirName $(HAIKU_TOP) data bin ] ;
 AddFilesToPackage bin : $(scripts) ;
 
@@ -71,9 +71,6 @@ AddHeaderDirectoryToPackage compatibility gnu : gnu ;
 AddHeaderDirectoryToPackage libs termcap : 3rdparty ;
 AddHeaderDirectoryToPackage libs tiff : 3rdparty ;
 
-CopyDirectoryToPackage develop headers 3rdparty
-       : $(HAIKU_FREETYPE_HEADERS_DEPENDENCY)
-       : freetype2 : : isTarget ;
 CopyDirectoryToPackage develop headers : $(HAIKU_JPEG_HEADERS_DEPENDENCY)
        : 3rdparty : : isTarget ;
 CopyDirectoryToPackage develop headers : $(HAIKU_LIBPNG_HEADERS_DEPENDENCY)
diff --git a/data/bin/freetype-config b/data/bin/freetype-config
deleted file mode 100755
index 34c5d5b..0000000
--- a/data/bin/freetype-config
+++ /dev/null
@@ -1,160 +0,0 @@
-#! /bin/sh
-#
-# Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2008, 2009 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-prefix=/boot/common
-exec_prefix=${prefix}
-exec_prefix_set=no
-includedir=/boot/develop/headers/3rdparty
-libdir=${exec_prefix}/lib
-enable_shared=
-wl=-Wl,
-hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-
-usage()
-{
-  cat <<EOF
-Usage: freetype-config [OPTION]...
-Get FreeType compilation and linking information.
-
-Options:
-  --prefix               display \`--prefix' value used for building the
-                         FreeType library
-  --prefix=PREFIX        override \`--prefix' value with PREFIX
-  --exec-prefix          display \`--exec-prefix' value used for building
-                         the FreeType library
-  --exec-prefix=EPREFIX  override \`--exec-prefix' value with EPREFIX
-  --version              display libtool version of the FreeType library
-  --ftversion            display FreeType version number
-  --libs                 display flags for linking with the FreeType library
-  --libtool              display library name for linking with libtool
-  --cflags               display flags for compiling with the FreeType
-                         library
-EOF
-  exit $1
-}
-
-if test $# -eq 0 ; then
-  usage 1 1>&2
-fi
-
-while test $# -gt 0 ; do
-  case "$1" in
-  -*=*)
-    optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'`
-    ;;
-  *)
-    optarg=
-    ;;
-  esac
-
-  case $1 in
-  --prefix=*)
-    prefix=$optarg
-    local_prefix=yes
-    ;;
-  --prefix)
-    echo_prefix=yes
-    ;;
-  --exec-prefix=*)
-    exec_prefix=$optarg
-    exec_prefix_set=yes
-    local_prefix=yes
-    ;;
-  --exec-prefix)
-    echo_exec_prefix=yes
-    ;;
-  --version)
-    echo 9.20.3
-    exit 0
-    ;;
-  --ftversion)
-    echo_ft_version=yes
-    ;;
-  --cflags)
-    echo_cflags=yes
-    ;;
-  --libs)
-    echo_libs=yes
-    ;;
-  --libtool)
-    echo_libtool=yes
-    ;;
-  *)
-    usage 1 1>&2
-    ;;
-  esac
-  shift
-done
-
-if test "$local_prefix" = "yes" ; then
-  if test "$exec_prefix_set" != "yes" ; then
-    exec_prefix=$prefix
-  fi
-fi
-
-if test "$echo_prefix" = "yes" ; then
-  echo $prefix
-fi
-
-if test "$echo_exec_prefix" = "yes" ; then
-  echo $exec_prefix
-fi
-
-if test "$exec_prefix_set" = "yes" ; then
-  libdir=$exec_prefix/lib
-else
-  if test "$local_prefix" = "yes" ; then
-    includedir=$prefix/include
-    libdir=$prefix/lib
-  fi
-fi
-
-if test "$echo_ft_version" = "yes" ; then
-  major=`grep define $includedir/freetype/freetype.h \
-         | grep FREETYPE_MAJOR \
-         | sed 's/.*[  ]\([0-9][0-9]*\).*/\1/'`
-  minor=`grep define $includedir/freetype/freetype.h \
-         | grep FREETYPE_MINOR \
-         | sed 's/.*[  ]\([0-9][0-9]*\).*/\1/'`
-  patch=`grep define $includedir/freetype/freetype.h \
-         | grep FREETYPE_PATCH \
-         | sed 's/.*[  ]\([0-9][0-9]*\).*/\1/'`
-  echo $major.$minor.$patch
-fi
-
-if test "$echo_cflags" = "yes" ; then
-  cflags="-I$includedir/freetype2"
-  if test "$includedir" != "/usr/include" ; then
-    echo $cflags -I$includedir
-  else
-    echo $cflags
-  fi
-fi
-
-if test "$echo_libs" = "yes" ; then
-  rpath=
-  if test "$enable_shared" = "yes" ; then
-    eval "rpath=\"$hardcode_libdir_flag_spec\""
-  fi
-  libs="-lfreetype -lz "
-  if test "$libdir" != "/usr/lib" && test "$libdir" != "/usr/lib64"; then
-    echo -L$libdir $rpath $libs
-  else
-    echo $libs
-  fi
-fi
-
-if test "$echo_libtool" = "yes" ; then
-  convlib="libfreetype.la"
-  echo $libdir/$convlib
-fi
-
-# EOF
diff --git a/src/add-ons/decorators/BeDecorator/Jamfile 
b/src/add-ons/decorators/BeDecorator/Jamfile
index b4acfb0..9db5fec 100644
--- a/src/add-ons/decorators/BeDecorator/Jamfile
+++ b/src/add-ons/decorators/BeDecorator/Jamfile
@@ -1,6 +1,6 @@
 SubDir HAIKU_TOP src add-ons decorators BeDecorator ;
 
-UseHeaders $(HAIKU_FREETYPE_HEADERS) : true ;
+UseBuildFeatureHeaders freetype ;
 UseHeaders [ FDirName $(HAIKU_TOP) src servers app ] ;
 UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing ] ;
 UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing Painter ] ;
@@ -10,9 +10,8 @@ UsePrivateHeaders kernel ;
 
 AddResources ClassicBe : resources.rdef ;
 
-#TODO: See #8716, hrev44313 for ft2build.h: No such file or directory
-#Includes [ FGristFiles BeDecorator.cpp ]
-#      : $(HAIKU_FREETYPE_HEADERS_DEPENDENCY) ;
+Includes [ FGristFiles BeDecorator.cpp ]
+       : [ BuildFeatureAttribute freetype : headers ] ;
 
 Addon ClassicBe :
        BeDecorator.cpp
diff --git a/src/add-ons/decorators/MacDecorator/Jamfile 
b/src/add-ons/decorators/MacDecorator/Jamfile
index 88ffb91..be8c387 100644
--- a/src/add-ons/decorators/MacDecorator/Jamfile
+++ b/src/add-ons/decorators/MacDecorator/Jamfile
@@ -1,6 +1,6 @@
 SubDir HAIKU_TOP src add-ons decorators MacDecorator ;
 
-UseHeaders $(HAIKU_FREETYPE_HEADERS) : true ;
+UseBuildFeatureHeaders freetype ;
 UseHeaders [ FDirName $(HAIKU_TOP) src servers app ] ;
 UseHeaders [ FDirName $(HAIKU_TOP) src servers app decorator ] ;
 UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing ] ;
@@ -13,7 +13,7 @@ UsePrivateHeaders kernel ;
 AddResources MacDecorator : resources.rdef ;
 
 Includes [ FGristFiles MacDecorator.cpp ]
-       : $(HAIKU_FREETYPE_HEADERS_DEPENDENCY) ;
+       : [ BuildFeatureAttribute freetype : headers ] ;
 
 Addon MacDecorator :
        MacDecorator.cpp
diff --git a/src/add-ons/decorators/WinDecorator/Jamfile 
b/src/add-ons/decorators/WinDecorator/Jamfile
index b472e59..07695da 100644
--- a/src/add-ons/decorators/WinDecorator/Jamfile
+++ b/src/add-ons/decorators/WinDecorator/Jamfile
@@ -1,6 +1,6 @@
 SubDir HAIKU_TOP src add-ons decorators WinDecorator ;
 
-UseHeaders $(HAIKU_FREETYPE_HEADERS) : true ;
+UseBuildFeatureHeaders freetype ;
 UseHeaders [ FDirName $(HAIKU_TOP) src servers app ] ;
 UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing ] ;
 UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing Painter ] ;
@@ -10,9 +10,8 @@ UsePrivateHeaders kernel ;
 
 AddResources WinDecorator : resources.rdef ;
 
-#TODO: See #8716, hrev44313 for ft2build.h: No such file or directory
-#Includes [ FGristFiles WinDecorator.cpp ]
-#      : $(HAIKU_FREETYPE_HEADERS_DEPENDENCY) ;
+Includes [ FGristFiles WinDecorator.cpp ]
+       : [ BuildFeatureAttribute freetype : headers ] ;
 
 Addon WinDecorator :
        WinDecorator.cpp
diff --git a/src/preferences/appearance/Jamfile 
b/src/preferences/appearance/Jamfile
index ca3eb7d..90a2101 100644
--- a/src/preferences/appearance/Jamfile
+++ b/src/preferences/appearance/Jamfile
@@ -1,10 +1,10 @@
 SubDir HAIKU_TOP src preferences appearance ;
 
 UsePrivateHeaders app interface [ FDirName servers app ] ;
-UseHeaders $(HAIKU_FREETYPE_HEADERS) : true ;
+UseBuildFeatureHeaders freetype ;
 
 Includes [ FGristFiles AntialiasingSettingsView.cpp ]
-       : $(HAIKU_FREETYPE_HEADERS_DEPENDENCY) ;
+       : [ BuildFeatureAttribute freetype : headers ] ;
 
 Preference Appearance :
        APRMain.cpp
diff --git a/src/servers/app/Jamfile b/src/servers/app/Jamfile
index 697ef0c..2579230 100644
--- a/src/servers/app/Jamfile
+++ b/src/servers/app/Jamfile
@@ -30,13 +30,13 @@ local font_src =
        FontStyle.cpp
        ;
 
-UseHeaders $(HAIKU_FREETYPE_HEADERS) : true ;
+UseBuildFeatureHeaders freetype ;
 Includes [ FGristFiles AppServer.cpp BitmapManager.cpp
        ClientMemoryAllocator.cpp Desktop.cpp DesktopSettings.cpp DrawState.cpp 
        ServerApp.cpp ServerBitmap.cpp ServerFont.cpp ServerPicture.cpp
        ServerWindow.cpp View.cpp Window.cpp WorkspacesView.cpp
        $(decorator_src) $(font_src) ]
-       : $(HAIKU_FREETYPE_HEADERS_DEPENDENCY) ;
+       : [ BuildFeatureAttribute freetype : headers ] ;
 
 
 local BROKEN_64 = ;
@@ -96,7 +96,8 @@ Server app_server :
        :
        libtranslation.so libbe.so libbnetapi.so
        libaslocal.a $(BROKEN_64)libasremote.a $(BROKEN_64)libashtml5.a 
-       libasdrawing.a libpainter.a libagg.a $(HAIKU_FREETYPE_LIB)
+       libasdrawing.a libpainter.a libagg.a
+       [ BuildFeatureAttribute freetype : library ]
        libstackandtile.a liblinprog.a libtextencoding.so libshared.a
        $(TARGET_LIBSTDC++)
 
diff --git a/src/servers/app/drawing/Jamfile b/src/servers/app/drawing/Jamfile
index 4c43ade..e35f187 100644
--- a/src/servers/app/drawing/Jamfile
+++ b/src/servers/app/drawing/Jamfile
@@ -10,10 +10,10 @@ UseHeaders [ FDirName $(HAIKU_TOP) src servers app font ] ;
 UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing Painter ] ;
 UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing Painter 
drawing_modes ] ;
 UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing Painter 
font_support ] ;
-UseHeaders $(HAIKU_FREETYPE_HEADERS) : true ;
+UseBuildFeatureHeaders freetype ;
 
 Includes [ FGristFiles DrawingEngine.cpp ]
-       : $(HAIKU_FREETYPE_HEADERS_DEPENDENCY) ;
+       : [ BuildFeatureAttribute freetype : headers ] ;
 
 StaticLibrary libasdrawing.a :
        BitmapBuffer.cpp
diff --git a/src/servers/app/drawing/Painter/Jamfile 
b/src/servers/app/drawing/Painter/Jamfile
index f736f5c..47703c8 100644
--- a/src/servers/app/drawing/Painter/Jamfile
+++ b/src/servers/app/drawing/Painter/Jamfile
@@ -9,7 +9,7 @@ UseHeaders [ FDirName $(HAIKU_TOP) src servers app ] ;
 UseHeaders [ FDirName $(HAIKU_TOP) src servers app font ] ;
 UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing ] ;
 UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing Painter 
drawing_modes ] ;
-UseHeaders $(HAIKU_FREETYPE_HEADERS) : true ;
+UseBuildFeatureHeaders freetype ;
 
 SEARCH_SOURCE += [ FDirName $(SUBDIR) drawing_modes ] ;
 
@@ -19,7 +19,7 @@ if $(TARGET_ARCH) = x86 {
 }
 
 Includes [ FGristFiles AGGTextRenderer.cpp Painter.cpp ]
-       : $(HAIKU_FREETYPE_HEADERS_DEPENDENCY) ;
+       : [ BuildFeatureAttribute freetype : headers ] ;
 
 StaticLibrary libpainter.a :
        GlobalSubpixelSettings.cpp
diff --git a/src/servers/app/drawing/interface/html5/Jamfile 
b/src/servers/app/drawing/interface/html5/Jamfile
index 363d123..07e5672 100644
--- a/src/servers/app/drawing/interface/html5/Jamfile
+++ b/src/servers/app/drawing/interface/html5/Jamfile
@@ -11,10 +11,11 @@ UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing 
] ;
 UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing Painter ] ;
 UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing Painter 
drawing_modes ] ;
 UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing Painter 
font_support ] ;
-UseHeaders $(HAIKU_FREETYPE_HEADERS) : true ;
+UseBuildFeatureHeaders freetype ;
 
-Includes [ FGristFiles HTML5HWInterface.cpp HTML5DrawingEngine.cpp 
CanvasMessage.cpp ]
-       : $(HAIKU_FREETYPE_HEADERS_DEPENDENCY) ;
+Includes [ FGristFiles HTML5HWInterface.cpp HTML5DrawingEngine.cpp
+               CanvasMessage.cpp ]
+       : [ BuildFeatureAttribute freetype : headers ] ;
 
 StaticLibrary libashtml5.a :
        base64.cpp
diff --git a/src/servers/app/drawing/interface/remote/Jamfile 
b/src/servers/app/drawing/interface/remote/Jamfile
index 06bb357..15c1b6c 100644
--- a/src/servers/app/drawing/interface/remote/Jamfile
+++ b/src/servers/app/drawing/interface/remote/Jamfile
@@ -11,11 +11,11 @@ UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing 
] ;
 UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing Painter ] ;
 UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing Painter 
drawing_modes ] ;
 UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing Painter 
font_support ] ;
-UseHeaders $(HAIKU_FREETYPE_HEADERS) : true ;
+UseBuildFeatureHeaders freetype ;
 
 Includes [ FGristFiles RemoteDrawingEngine.cpp RemoteMessage.cpp
-       RemoteHWInterface.cpp ]
-       : $(HAIKU_FREETYPE_HEADERS_DEPENDENCY) ;
+               RemoteHWInterface.cpp ]
+       : [ BuildFeatureAttribute freetype : headers ] ;
 
 StaticLibrary libasremote.a :
        NetReceiver.cpp
diff --git a/src/servers/app/stackandtile/Jamfile 
b/src/servers/app/stackandtile/Jamfile
index 8842e3b..be55eb7 100644
--- a/src/servers/app/stackandtile/Jamfile
+++ b/src/servers/app/stackandtile/Jamfile
@@ -2,13 +2,13 @@ SubDir HAIKU_TOP src servers app stackandtile ;
 
 UseLibraryHeaders agg lp_solve linprog ;
 UsePrivateHeaders app graphics interface shared kernel ;
+UseBuildFeatureHeaders freetype ;
 
 UseHeaders [ FDirName $(HAIKU_TOP) src servers app ] ;
 UseHeaders [ FDirName $(HAIKU_TOP) src servers app decorator ] ;
 UseHeaders [ FDirName $(HAIKU_TOP) src servers app font ] ;
 UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing ] ;
 UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing Painter ] ;
-UseHeaders $(HAIKU_FREETYPE_HEADERS) : true ;
 
 local sources =
        SATDecorator.cpp
@@ -19,7 +19,7 @@ local sources =
        Tiling.cpp ;
 
 Includes [ FGristFiles $(sources) ]
-       : $(HAIKU_FREETYPE_HEADERS_DEPENDENCY) ;
+       : [ BuildFeatureAttribute freetype : headers ] ;
 
 StaticLibrary libstackandtile.a :
        $(sources)
diff --git a/src/tests/apps/fake_app_server/Jamfile 
b/src/tests/apps/fake_app_server/Jamfile
index a60ee49..4ddb0fe 100644
--- a/src/tests/apps/fake_app_server/Jamfile
+++ b/src/tests/apps/fake_app_server/Jamfile
@@ -8,7 +8,7 @@ UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing ] ;
 UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing Painter ] ;
 UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing Painter 
drawing_modes ] ;
 UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing Painter 
font_support ] ;
-UseHeaders $(HAIKU_FREETYPE_HEADERS) : true ;
+UseBuildFeatureHeaders freetype ;
 
 Server fake_app_server :
        AppServer.cpp
diff --git a/src/tests/servers/app/Jamfile b/src/tests/servers/app/Jamfile
index 6664c31..9831ee2 100644
--- a/src/tests/servers/app/Jamfile
+++ b/src/tests/servers/app/Jamfile
@@ -30,7 +30,7 @@ UseHeaders [ FDirName $(appServerDir) drawing Painter 
drawing_modes ] ;
 UseHeaders [ FDirName $(appServerDir) drawing Painter font_support ] ;
 UseHeaders [ FDirName $(appServerDir) font ] ;
 UseHeaders [ FDirName $(appServerDir) stackandtile ] ;
-UseHeaders $(HAIKU_FREETYPE_HEADERS) : true ;
+UseBuildFeatureHeaders freetype ;
 UseLibraryHeaders agg lp_solve linprog ;
 
 # This overrides the definitions in private/servers/app/ServerConfig.h
diff --git a/src/tests/servers/app/painter/Jamfile 
b/src/tests/servers/app/painter/Jamfile
index e57dd58..6182130 100644
--- a/src/tests/servers/app/painter/Jamfile
+++ b/src/tests/servers/app/painter/Jamfile
@@ -7,7 +7,7 @@ UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing ] ;
 UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing Painter ] ;
 UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing Painter 
drawing_modes ] ;
 UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing Painter 
font_support ] ;
-UseHeaders $(HAIKU_FREETYPE_HEADERS) : true ;
+UseBuildFeatureHeaders freetype ;
 
 SimpleTest Painter :
        BitmapBuffer.cpp

############################################################################

Commit:      e9f440fdfdc4a2872dca8cb12928c6c3a9f118d8
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 13 20:48:00 2013 UTC

Update libpng package

Also make use of new build feature rules

----------------------------------------------------------------------------

diff --git a/build/jam/BuildFeatures b/build/jam/BuildFeatures
index 073404f..788c514 100644
--- a/build/jam/BuildFeatures
+++ b/build/jam/BuildFeatures
@@ -515,44 +515,31 @@ if $(HAIKU_BUILD_FEATURE_WEBKIT) {
 
 # libpng
 local libpngBaseURL = $(baseURL)/lib ;
-if $(TARGET_ARCH) = ppc || $(TARGET_ARCH) = x86 || $(TARGET_ARCH) = x86_64 || 
$(TARGET_ARCH) = arm {
+if $(TARGET_ARCH) in arm ppc x86 x86_64 {
        if $(TARGET_ARCH) = arm {
-               HAIKU_LIBPNG_FILE = libpng-1.5.12-arm-2012-11-21.zip ;
+               HAIKU_LIBPNG_PACKAGE = libpng-1.5.12-arm-2012-11-21.zip ;
        } else if $(TARGET_ARCH) = ppc {
-               HAIKU_LIBPNG_FILE = libpng-1.5.12-ppc-gcc4-2012-08-27.zip ;
+               HAIKU_LIBPNG_PACKAGE = libpng-1.5.12-ppc-gcc4-2012-08-27.zip ;
        } else if $(TARGET_ARCH) = x86_64 {
-               HAIKU_LIBPNG_FILE = libpng-1.5.12-x86_64-2012-11-18.zip ;
+               HAIKU_LIBPNG_PACKAGE = libpng-1.5.12-x86_64-2012-11-18.zip ;
        } else if $(HAIKU_GCC_VERSION[1]) >= 4 {
-               HAIKU_LIBPNG_FILE = libpng-1.5.12-x86-gcc4-2012-08-23.zip ;
+               HAIKU_LIBPNG_PACKAGE = libpng-1.5.12-x86-gcc4-2012-08-23.zip ;
        } else {
-               HAIKU_LIBPNG_FILE = libpng-1.5.12-x86-gcc2-2012-08-23.zip ;
+               HAIKU_LIBPNG_PACKAGE = libpng-1.5.12-2-x86_gcc2.hpkg ;
+               HAIKU_LIBPNG_DEVEL_PACKAGE = 
libpng_devel-1.5.12-2-x86_gcc2.hpkg ;
        }
 
-       local libpngZipFile = [ DownloadFile $(HAIKU_LIBPNG_FILE)
-               : $(libpngBaseURL)/$(HAIKU_LIBPNG_FILE) ] ;
-
-       HAIKU_LIBPNG_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR)
-               $(HAIKU_LIBPNG_FILE:B) ] ;
-
-       HAIKU_LIBPNG_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_LIBPNG_DIR)
-               : common/include : $(libpngZipFile)
-               : extracted-libpng ] ;
-
-       HAIKU_LIBPNG_LIB = [ ExtractArchive $(HAIKU_LIBPNG_DIR)
-               :
-               common/lib/libpng.so
-               : $(libpngZipFile)
-               : extracted-libpng ] ;
-       HAIKU_LIBPNG_CURRENT_LIB = [ ExtractArchive $(HAIKU_LIBPNG_DIR)
-               :
-               common/lib/libpng15.so.15.12.0
-               : $(libpngZipFile)
-               : extracted-libpng ] ;
-       Depends $(HAIKU_LIBPNG_LIB) $(HAIKU_LIBPNG_CURRENT_LIB) : 
$(HAIKU_LIBPNG_HEADERS_DEPENDENCY) ;
+       HAIKU_LIBPNG_URL = $(hpkgBaseURL)/$(HAIKU_LIBPNG_PACKAGE) ;
+       HAIKU_LIBPNG_DEVEL_URL = $(hpkgBaseURL)/$(HAIKU_LIBPNG_DEVEL_PACKAGE) ;
 
-       HAIKU_LIBPNG_CURRENT_LINK = libpng15.so.15 ;
-
-       HAIKU_LIBPNG_HEADERS = [ FDirName $(HAIKU_LIBPNG_DIR) common include ] ;
+       ExtractBuildFeatureArchives libpng :
+               file: base $(HAIKU_LIBPNG_URL)
+                       runtime: lib
+               file: devel $(HAIKU_LIBPNG_DEVEL_URL)
+                       depends: base
+                       library: develop/lib/libpng.so
+                       headers: develop/headers
+               ;
 
        EnableBuildFeatures libpng ;
 } else {
diff --git a/build/jam/HaikuImage b/build/jam/HaikuImage
index 685e5dd..149bdb9 100644
--- a/build/jam/HaikuImage
+++ b/build/jam/HaikuImage
@@ -77,7 +77,6 @@ SYSTEM_LIBS = [ FFilterByBuildFeatures
 ] ;
 PRIVATE_SYSTEM_LIBS = [ FFilterByBuildFeatures
        $(HAIKU_JPEG_CURRENT_LIB)
-       $(HAIKU_LIBPNG_CURRENT_LIB)
        libalm.so
        libfluidsynth.so
        libilmimf.so
diff --git a/build/jam/OptionalPackageDependencies 
b/build/jam/OptionalPackageDependencies
index e71e6e1..38f7e1c 100644
--- a/build/jam/OptionalPackageDependencies
+++ b/build/jam/OptionalPackageDependencies
@@ -11,8 +11,10 @@ OptionalPackageDependencies Caya : Expat ;
 OptionalPackageDependencies CDRecord : GetTextLibintl LibIconv ;
 OptionalPackageDependencies Curl : OpenSSL ;
 OptionalPackageDependencies DevelopmentBase : CDRecord DevelopmentMin Yasm ;
-OptionalPackageDependencies Development
-       : DevelopmentBase FFMpeg-devel FreeType-devel GLU-devel Perl Zlib-devel 
;
+OptionalPackageDependencies Development :
+       DevelopmentBase FFMpeg-devel FreeType-devel GLU-devel Libpng-devel Perl
+       Zlib-devel
+       ;
 OptionalPackageDependencies DevelopmentPowerPC : DevelopmentMin ;
 OptionalPackageDependencies GetText : GetTextLibintl ;
 OptionalPackageDependencies GetTextLibintl : LibIconv ;
@@ -46,4 +48,4 @@ OptionalPackageDependencies XZ-Utils : Tar ;
 OptionalPackageDependencies Zlib-devel : Zlib ;
 
 OptionalPackageDependencies MandatoryPackages
-       : Bzip Ctags FFMpeg FreeType GLU Grep ICU LibSolv Mesa Sed Tar Zlib ;
+       : Bzip Ctags FFMpeg FreeType GLU Grep ICU Libpng LibSolv Mesa Sed Tar 
Zlib ;
diff --git a/build/jam/OptionalPackages b/build/jam/OptionalPackages
index c8b84c3..bf9dbbd 100644
--- a/build/jam/OptionalPackages
+++ b/build/jam/OptionalPackages
@@ -67,6 +67,8 @@
 #      LibIconv                                - text encoding conversion 
library
 #      LibLayout                               - GCC2 package needed by some 
BeOS apps to compile
 #      Libmng                                  - mng support library
+#      Libpng                                  - Portable Network Graphics 
library
+#      Libpng-devel                    - Libpng development files
 #      LibSolv                                 - package dependency solver 
library
 #      LibXML2                                 - the XML support library
 #      LibXSLT                                 - xslt library and utility
@@ -1249,6 +1251,26 @@ if [ IsOptionalHaikuImagePackageAdded Libmng ] {
 }
 
 

[ *** diff truncated: 184 lines dropped *** ]


############################################################################

Commit:      e4bd005daf2e3e3c7cb4dfa38e9bde7a578f08e0
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 13 22:10:37 2013 UTC

Update jpeg package

* Also make use of new build feature rules.
* Since the hacky long_jump_buffer field has been removed from the
  jpeg_error_mgr struct in the new package, the structure is now
  wrapped in the JPEGTranslator code to achieve the same behavior.

----------------------------------------------------------------------------

############################################################################

Commit:      1d14716b9f03839beb3271886b1e32b6aa450e41
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 13 22:23:35 2013 UTC

Some renaming of zlib related jam variables

----------------------------------------------------------------------------

############################################################################

Commit:      a20eb7f497fd5789baee973d9f381d155c231951
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 13 22:33:23 2013 UTC

Update libsolv package

Also make use of new build feature rules.

----------------------------------------------------------------------------

############################################################################

Commit:      12629b106ee37df7495eb9e3b463bd2119762867
Author:      Ingo Weinhold <ingo_weinhold@xxxxxx>
Date:        Thu Jun 13 22:46:43 2013 UTC

Update expat package

----------------------------------------------------------------------------


Other related posts:

  • » [haiku-commits] BRANCH HaikuPM-github.package-management [12629b1] build/jam src src/add-ons data/bin src/add-ons/opengl - HaikuPM-github . package-management