Merge branch 'master' into sam460ex

This commit is contained in:
François Revol 2012-09-05 16:22:03 +02:00
commit 54b6d06e8e
26 changed files with 672 additions and 327 deletions

View File

@ -66,8 +66,8 @@ if $(HAIKU_BUILD_FEATURE_SSL) {
# ICU # ICU
# Note ICU isn't actually optional, but is still an external package # Note ICU isn't actually optional, but is still an external package
HAIKU_ICU_GCC_2_PACKAGE = icu-4.8.1-x86-gcc2-2011-11-02a.zip ; HAIKU_ICU_GCC_2_PACKAGE = icu-4.8.1.1-r1a4-x86-gcc2-2012-08-29.zip ;
HAIKU_ICU_GCC_4_PACKAGE = icu-4.8.1-x86-gcc4-2011-11-02.zip ; HAIKU_ICU_GCC_4_PACKAGE = icu-4.8.1.1-r1a4-x86-gcc4-2012-08-29.zip ;
HAIKU_ICU_PPC_PACKAGE = icu-4.8.1-ppc-2011-08-20.zip ; HAIKU_ICU_PPC_PACKAGE = icu-4.8.1-ppc-2011-08-20.zip ;
if $(TARGET_ARCH) = ppc || $(TARGET_ARCH) = x86 { if $(TARGET_ARCH) = ppc || $(TARGET_ARCH) = x86 {
@ -224,19 +224,19 @@ if $(TARGET_ARCH) = x86 {
local ffmpegBaseURL = $(baseURL)/lib ; local ffmpegBaseURL = $(baseURL)/lib ;
if $(TARGET_ARCH) = x86 { if $(TARGET_ARCH) = x86 {
if $(HAIKU_GCC_VERSION[1]) >= 4 { if $(HAIKU_GCC_VERSION[1]) >= 4 {
HAIKU_FFMPEG_FILE = ffmpeg-0.10.2-x86-gcc4-2012-03-28.zip ; HAIKU_FFMPEG_FILE = ffmpeg-0.10.2-r1a4-x86-gcc4-2012-09-02.zip ;
HAIKU_SPEEX_FILE = speex-1.2rc1-x86-gcc4-2012-03-12.zip ; HAIKU_SPEEX_FILE = speex-1.2rc1-r1a4-x86-gcc4-2012-09-02.zip ;
HAIKU_LIBTHEORA_FILE = libtheora-1.1.1-x86-gcc4-2012-03-12.zip ; HAIKU_LIBTHEORA_FILE = libtheora-1.1.1-r1a4-x86-gcc4-2012-09-02.zip ;
HAIKU_LIBVORBIS_FILE = libvorbis-1.3.2-x86-gcc4-2012-03-12.zip ; HAIKU_LIBVORBIS_FILE = libvorbis-1.3.2-r1a4-x86-gcc4-2012-09-02.zip ;
HAIKU_LIBOGG_FILE = libogg-1.3.0-x86-gcc4-2012-03-12.zip ; HAIKU_LIBOGG_FILE = libogg-1.3.0-r1a4-x86-gcc4-2012-09-02.zip ;
HAIKU_LIBVPX_FILE = libvpx-1.0.0-x86-gcc4-2012-03-14.zip ; HAIKU_LIBVPX_FILE = libvpx-1.0.0-r1a4-x86-gcc4-2012-09-02.zip ;
} else { } else {
HAIKU_FFMPEG_FILE = ffmpeg-0.10.2-x86-gcc2-2012-03-28.zip ; HAIKU_FFMPEG_FILE = ffmpeg-0.10.2-r1a4-x86-gcc2-2012-08-30.zip ;
HAIKU_SPEEX_FILE = speex-1.2rc1-x86-gcc2-2012-03-11.zip ; HAIKU_SPEEX_FILE = speex-1.2rc1-r1a4-x86-gcc2-2012-08-29.zip ;
HAIKU_LIBTHEORA_FILE = libtheora-1.1.1-x86-gcc2-2012-03-11.zip ; HAIKU_LIBTHEORA_FILE = libtheora-1.1.1-r1a4-x86-gcc2-2012-08-29.zip ;
HAIKU_LIBVORBIS_FILE = libvorbis-1.3.2-x86-gcc2-2012-03-11.zip ; HAIKU_LIBVORBIS_FILE = libvorbis-1.3.2-r1a4-x86-gcc2-2012-08-29.zip ;
HAIKU_LIBOGG_FILE = libogg-1.3.0-x86-gcc2-2012-03-11.zip ; HAIKU_LIBOGG_FILE = libogg-1.3.0-r1a4-x86-gcc2-2012-08-29.zip ;
HAIKU_LIBVPX_FILE = libvpx-1.0.0-x86-gcc2-2012-03-14.zip ; HAIKU_LIBVPX_FILE = libvpx-1.0.0-r1a4-x86-gcc2-2012-08-29.zip ;
} }
local ffmpegZipFile = [ DownloadFile $(HAIKU_FFMPEG_FILE) local ffmpegZipFile = [ DownloadFile $(HAIKU_FFMPEG_FILE)
@ -346,9 +346,9 @@ if $(TARGET_ARCH) = x86 {
local mikmodBaseURL = http://haiku-files.org/files/optional-packages/lib ; local mikmodBaseURL = http://haiku-files.org/files/optional-packages/lib ;
if $(TARGET_ARCH) = x86 { if $(TARGET_ARCH) = x86 {
if $(HAIKU_GCC_VERSION[1]) >= 4 { if $(HAIKU_GCC_VERSION[1]) >= 4 {
HAIKU_MIKMOD_FILE = libmikmod-3.1.11-r1a3-x86-gcc4-2011-05-26.zip ; HAIKU_MIKMOD_FILE = libmikmod-3.1.11-r1a4-x86-gcc4-2012-09-02.zip ;
} else { } else {
HAIKU_MIKMOD_FILE = libmikmod-3.1.11-r1a3-x86-gcc2-2011-05-19.zip ; HAIKU_MIKMOD_FILE = libmikmod-3.1.11-r1a4-x86-gcc2-2012-08-29.zip ;
} }
local mikmodZipFile = [ DownloadFile $(HAIKU_MIKMOD_FILE) local mikmodZipFile = [ DownloadFile $(HAIKU_MIKMOD_FILE)
@ -380,7 +380,7 @@ if $(TARGET_ARCH) = ppc || $(TARGET_ARCH) = x86 {
if $(TARGET_ARCH) = ppc { if $(TARGET_ARCH) = ppc {
HAIKU_FREETYPE_FILE = freetype-2.4.9-ppc-gcc4-2012-06-26.zip ; HAIKU_FREETYPE_FILE = freetype-2.4.9-ppc-gcc4-2012-06-26.zip ;
} else if $(HAIKU_GCC_VERSION[1]) >= 4 { } else if $(HAIKU_GCC_VERSION[1]) >= 4 {
HAIKU_FREETYPE_FILE = freetype-2.4.9-x86-gcc4-2012-06-15.zip ; HAIKU_FREETYPE_FILE = freetype-2.4.9-r1a4-x86-gcc4-2012-09-02.zip ;
} else { } else {
HAIKU_FREETYPE_FILE = freetype-2.4.9-r1a4-x86-gcc2-2012-08-28.zip ; HAIKU_FREETYPE_FILE = freetype-2.4.9-r1a4-x86-gcc2-2012-08-28.zip ;
} }
@ -425,7 +425,7 @@ if [ IsOptionalHaikuImagePackageAdded TagLib ] {
HAIKU_BUILD_FEATURE_TAGLIB = 1 ; HAIKU_BUILD_FEATURE_TAGLIB = 1 ;
} }
HAIKU_TAGLIB_PACKAGE = taglib-1.6.3-r1a3-x86-gcc2-2011-05-20.zip ; HAIKU_TAGLIB_PACKAGE = taglib-1.6.3-r1a4-x86-gcc2-2012-09-03.zip ;
HAIKU_TAGLIB_URL = $(baseURL)/$(HAIKU_TAGLIB_PACKAGE) ; HAIKU_TAGLIB_URL = $(baseURL)/$(HAIKU_TAGLIB_PACKAGE) ;
if $(HAIKU_BUILD_FEATURE_TAGLIB) { if $(HAIKU_BUILD_FEATURE_TAGLIB) {

View File

@ -83,13 +83,13 @@ if [ IsOptionalHaikuImagePackageAdded fribidi ] {
Echo "No optional package fribidi available for $(TARGET_ARCH)" ; Echo "No optional package fribidi available for $(TARGET_ARCH)" ;
} else if $(HAIKU_GCC_VERSION[1]) >= 4 { } else if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
fribidi-0.19.2-r1a3-x86-gcc4-2011-05-26.zip fribidi-0.19.2-r1a4-x86-gcc4-2012-09-01.zip
: $(baseURL)/lib/fribidi-0.19.2-r1a3-x86-gcc4-2011-05-26.zip : $(baseURL)/lib/fribidi-0.19.2-r1a4-x86-gcc4-2012-09-01.zip
: : true ; : : true ;
} else { } else {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
fribidi-0.19.2-r1a3-x86-gcc2-2011-05-19.zip fribidi-0.19.2-r1a4-x86-gcc2-2012-08-29.zip
: $(baseURL)/lib/fribidi-0.19.2-r1a3-x86-gcc2-2011-05-19.zip : $(baseURL)/lib/fribidi-0.19.2-r1a4-x86-gcc2-2012-08-29.zip
: : true ; : : true ;
} }
} }
@ -101,13 +101,13 @@ if [ IsOptionalHaikuImagePackageAdded lcms ] {
Echo "No optional package lcms available for $(TARGET_ARCH)" ; Echo "No optional package lcms available for $(TARGET_ARCH)" ;
} else if $(HAIKU_GCC_VERSION[1]) >= 4 { } else if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
lcms-2.1-r1a3-x86-gcc4-2011-05-26.zip lcms-2.1-r1a4-x86-gcc4-2012-09-02.zip
: $(baseURL)/lib/lcms-2.1-r1a3-x86-gcc4-2011-05-26.zip : $(baseURL)/lib/lcms-2.1-r1a4-x86-gcc4-2012-09-02.zip
: : true ; : : true ;
} else { } else {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
lcms-2.1-r1a3-x86-gcc2-2011-05-19.zip lcms-2.1-r1a4-x86-gcc2-2012-08-29.zip
: $(baseURL)/lib/lcms-2.1-r1a3-x86-gcc2-2011-05-19.zip : $(baseURL)/lib/lcms-2.1-r1a4-x86-gcc2-2012-08-29.zip
: : true ; : : true ;
} }
} }
@ -119,13 +119,13 @@ if [ IsOptionalHaikuImagePackageAdded libart_lgpl ] {
Echo "No optional package libart_lgpl available for $(TARGET_ARCH)" ; Echo "No optional package libart_lgpl available for $(TARGET_ARCH)" ;
} else if $(HAIKU_GCC_VERSION[1]) >= 4 { } else if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
libart_lgpl-2.3.21-r1a3-x86-gcc4-2011-05-26.zip libart_lgpl-2.3.21-r1a4-x86-gcc4-2012-09-02.zip
: $(baseURL)/lib/libart_lgpl-2.3.21-r1a3-x86-gcc4-2011-05-26.zip : $(baseURL)/lib/libart_lgpl-2.3.21-r1a4-x86-gcc4-2012-09-02.zip
: : true ; : : true ;
} else { } else {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
libart_lgpl-2.3.21-r1a3-x86-gcc2-2011-05-19.zip libart_lgpl-2.3.21-r1a4-x86-gcc2-2012-08-29.zip
: $(baseURL)/lib/libart_lgpl-2.3.21-r1a3-x86-gcc2-2011-05-19.zip : $(baseURL)/lib/libart_lgpl-2.3.21-r1a4-x86-gcc2-2012-08-29.zip
: : true ; : : true ;
} }
} }
@ -137,13 +137,13 @@ if [ IsOptionalHaikuImagePackageAdded libmad ] {
Echo "No optional package libmad available for $(TARGET_ARCH)" ; Echo "No optional package libmad available for $(TARGET_ARCH)" ;
} else if $(HAIKU_GCC_VERSION[1]) >= 4 { } else if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
libmad-0.15.1b-r1a3-x86-gcc4-2011-05-26.zip libmad-0.15.1b-r1a4-x86-gcc4-2012-09-02.zip
: $(baseURL)/lib/libmad-0.15.1b-r1a3-x86-gcc4-2011-05-26.zip : $(baseURL)/lib/libmad-0.15.1b-r1a4-x86-gcc4-2012-09-02.zip
: : true ; : : true ;
} else { } else {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
libmad-0.15.1b-r1a3-x86-gcc2-2011-05-19.zip libmad-0.15.1b-r1a4-x86-gcc2-2012-08-29.zip
: $(baseURL)/lib/libmad-0.15.1b-r1a3-x86-gcc2-2011-05-19.zip : $(baseURL)/lib/libmad-0.15.1b-r1a4-x86-gcc2-2012-08-29.zip
: : true ; : : true ;
} }
} }
@ -155,13 +155,13 @@ if [ IsOptionalHaikuImagePackageAdded libmikmod ] {
Echo "No optional package libmikmod available for $(TARGET_ARCH)" ; Echo "No optional package libmikmod available for $(TARGET_ARCH)" ;
} else if $(HAIKU_GCC_VERSION[1]) >= 4 { } else if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
libmikmod-3.1.11-r1a3-x86-gcc4-2011-05-26.zip libmikmod-3.1.11-r1a4-x86-gcc4-2012-09-02.zip
: $(baseURL)/lib/libmikmod-3.1.11-r1a3-x86-gcc4-2011-05-26.zip : $(baseURL)/lib/libmikmod-3.1.11-r1a4-x86-gcc4-2012-09-02.zip
: : true ; : : true ;
} else { } else {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
libmikmod-3.1.11-r1a3-x86-gcc2-2011-05-19.zip libmikmod-3.1.11-r1a4-x86-gcc2-2012-08-29.zip
: $(baseURL)/lib/libmikmod-3.1.11-r1a3-x86-gcc2-2011-05-19.zip : $(baseURL)/lib/libmikmod-3.1.11-r1a4-x86-gcc2-2012-08-29.zip
: : true ; : : true ;
} }
} }
@ -173,13 +173,13 @@ if [ IsOptionalHaikuImagePackageAdded libmodplug ] {
Echo "No optional package libmodplug available for $(TARGET_ARCH)" ; Echo "No optional package libmodplug available for $(TARGET_ARCH)" ;
} else if $(HAIKU_GCC_VERSION[1]) >= 4 { } else if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
libmodplug-0.8.8.1-r1a3-x86-gcc4-2011-05-26.zip libmodplug-0.8.8.4-r1a4-x86-gcc4-2012-09-02.zip
: $(baseURL)/lib/libmodplug-0.8.8.1-r1a3-x86-gcc4-2011-05-26.zip : $(baseURL)/lib/libmodplug-0.8.8.4-r1a4-x86-gcc4-2012-09-02.zip
: : true ; : : true ;
} else { } else {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
libmodplug-0.8.8.1-r1a3-x86-gcc2-2011-05-19.zip libmodplug-0.8.8.4-r1a4-x86-gcc2-2012-08-29.zip
: $(baseURL)/lib/libmodplug-0.8.8.1-r1a3-x86-gcc2-2011-05-19.zip : $(baseURL)/lib/libmodplug-0.8.8.4-r1a4-x86-gcc2-2012-08-29.zip
: : true ; : : true ;
} }
} }
@ -191,13 +191,13 @@ if [ IsOptionalHaikuImagePackageAdded libpaper ] {
Echo "No optional package libpaper available for $(TARGET_ARCH)" ; Echo "No optional package libpaper available for $(TARGET_ARCH)" ;
} else if $(HAIKU_GCC_VERSION[1]) >= 4 { } else if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
libpaper-1.1.24-r1a3-x86-gcc4-2011-05-26.zip libpaper-1.1.24-r1a4-x86-gcc4-2012-09-01.zip
: $(baseURL)/lib/libpaper-1.1.24-r1a3-x86-gcc4-2011-05-26.zip : $(baseURL)/lib/libpaper-1.1.24-r1a4-x86-gcc4-2012-09-01.zip
: : true ; : : true ;
} else { } else {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
libpaper-1.1.24-r1a3-x86-gcc2-2011-05-19.zip libpaper-1.1.24-r1a4-x86-gcc4-2012-09-01.zip
: $(baseURL)/lib/libpaper-1.1.24-r1a3-x86-gcc2-2011-05-19.zip : $(baseURL)/lib/libpaper-1.1.24-r1a4-x86-gcc4-2012-09-01.zip
: : true ; : : true ;
} }
} }
@ -227,78 +227,78 @@ if [ IsOptionalHaikuImagePackageAdded SDLLibs ] {
Echo "No optional package SDLLibs available for $(TARGET_ARCH)" ; Echo "No optional package SDLLibs available for $(TARGET_ARCH)" ;
} else if $(HAIKU_GCC_VERSION[1]) >= 4 { } else if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
libsdl-1.2.15-x86-gcc4-2012-05-31.zip libsdl-1.2.15-r1a4-x86-gcc4-2012-09-02.zip
: $(baseURL)/lib/libsdl-1.2.15-x86-gcc4-2012-05-31.zip ; : $(baseURL)/lib/libsdl-1.2.15-r1a4-x86-gcc4-2012-09-02.zip ;
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
guilib-1.2.1-x86-gcc4-2012-05-31.zip guilib-1.2.1-r1a4-x86-gcc4-2012-09-02.zip
: $(baseURL)/lib/guilib-1.2.1-x86-gcc4-2012-05-31.zip ; : $(baseURL)/lib/guilib-1.2.1-r1a4-x86-gcc4-2012-09-02.zip ;
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
sdl-gfx-2.0.23-x86-gcc4-2012-05-31.zip sdl-gfx-2.0.23-r1a4-x86-gcc4-2012-09-02.zip
: $(baseURL)/lib/sdl-gfx-2.0.23-x86-gcc4-2012-05-31.zip ; : $(baseURL)/lib/sdl-gfx-2.0.23-r1a4-x86-gcc4-2012-09-02.zip ;
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
sdl-image-1.2.12-x86-gcc4-2012-05-31.zip sdl-image-1.2.12-r1a4-x86-gcc4-2012-09-02.zip
: $(baseURL)/lib/sdl-image-1.2.12-x86-gcc4-2012-05-31.zip ; : $(baseURL)/lib/sdl-image-1.2.12-r1a4-x86-gcc4-2012-09-02.zip ;
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
sdl-mixer-1.2.11-x86-gcc4-2012-05-31.zip sdl-mixer-1.2.11-r1a4-x86-gcc4-2012-09-02.zip
: $(baseURL)/lib/sdl-mixer-1.2.11-x86-gcc4-2012-05-31.zip ; : $(baseURL)/lib/sdl-mixer-1.2.11-r1a4-x86-gcc4-2012-09-02.zip ;
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
sdl-net-1.2.8-x86-gcc4-2012-05-31.zip sdl-net-1.2.8-r1a4-x86-gcc4-2012-09-02.zip
: $(baseURL)/lib/sdl-net-1.2.8-x86-gcc4-2012-05-31.zip ; : $(baseURL)/lib/sdl-net-1.2.8-r1a4-x86-gcc4-2012-09-02.zip ;
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
sdl-sound-1.0.3-x86-gcc4-2012-05-31.zip sdl-sound-1.0.3-r1a4-x86-gcc4-2012-09-02.zip
: $(baseURL)/lib/sdl-sound-1.0.3-x86-gcc4-2012-05-31.zip ; : $(baseURL)/lib/sdl-sound-1.0.3-r1a4-x86-gcc4-2012-09-02.zip ;
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
sdl-rtf-0.1.0-r1a3-x86-gcc4-2011-05-26.zip sdl-rtf-0.1.0-r1a4-x86-gcc4-2012-09-03.zip
: $(baseURL)/lib/sdl-rtf-0.1.0-r1a3-x86-gcc4-2011-05-26.zip ; : $(baseURL)/lib/sdl-rtf-0.1.0-r1a4-x86-gcc4-2012-09-03.zip ;
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
sdl-ttf-2.0.11-x86-gcc4-2012-05-31.zip sdl-ttf-2.0.11-r1a4-x86-gcc4-2012-09-02.zip
: $(baseURL)/lib/sdl-ttf-2.0.11-x86-gcc4-2012-05-31.zip ; : $(baseURL)/lib/sdl-ttf-2.0.11-r1a4-x86-gcc4-2012-09-02.zip ;
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
sge-030809-x86-gcc4-2012-05-31.zip sge-030809-r1a4-x86-gcc4-2012-09-02.zip
: $(baseURL)/lib/sge-030809-x86-gcc4-2012-05-31.zip ; : $(baseURL)/lib/sge-030809-r1a4-x86-gcc4-2012-09-02.zip ;
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
smjpeg-0.2.1-x86-gcc4-2012-05-31.zip smjpeg-0.2.1-r1a4-x86-gcc4-2012-09-02.zip
: $(baseURL)/lib/smjpeg-0.2.1-x86-gcc4-2012-05-31.zip ; : $(baseURL)/lib/smjpeg-0.2.1-r1a4-x86-gcc4-2012-09-02.zip ;
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
smpeg-0.4.5-x86-gcc4-2011-05-31.zip smpeg-0.4.5-r1a4-x86-gcc4-2012-09-02.zip
: $(baseURL)/lib/smpeg-0.4.5-x86-gcc4-2012-05-31.zip ; : $(baseURL)/lib/smpeg-0.4.5-r1a4-x86-gcc4-2012-09-02.zip ;
} else { } else {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
libsdl-1.2.15-x86-gcc2-2012-06-24.zip libsdl-1.2.15-r1a4-x86-gcc2-2012-08-29.zip
: $(baseURL)/lib/libsdl-1.2.15-x86-gcc2-2012-06-24.zip ; : $(baseURL)/lib/libsdl-1.2.15-r1a4-x86-gcc2-2012-08-29.zip ;
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
guilib-1.2.1-x86-gcc2-2012-06-24.zip guilib-1.2.1-r1a4-x86-gcc2-2012-08-29.zip
: $(baseURL)/lib/guilib-1.2.1-x86-gcc2-2012-06-24.zip ; : $(baseURL)/lib/guilib-1.2.1-r1a4-x86-gcc2-2012-08-29.zip ;
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
sdl-gfx-2.0.23-x86-gcc2-2012-06-24.zip sdl-gfx-2.0.23-r1a4-x86-gcc2-2012-08-29.zip
: $(baseURL)/lib/sdl-gfx-2.0.23-x86-gcc2-2012-06-24.zip ; : $(baseURL)/lib/sdl-gfx-2.0.23-r1a4-x86-gcc2-2012-08-29.zip ;
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
sdl-image-1.2.12-x86-x86-gcc2-2012-06-24.zip sdl-image-1.2.12-r1a4-x86-gcc2-2012-08-29.zip
: $(baseURL)/lib/sdl-image-1.2.12-x86-gcc2-2012-06-24.zip ; : $(baseURL)/lib/sdl-image-1.2.12-r1a4-x86-gcc2-2012-08-29.zip ;
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
sdl-mixer-1.2.11-x86-gcc2-2012-06-25.zip sdl-mixer-1.2.11-r1a4-x86-gcc2-2012-08-29.zip
: $(baseURL)/lib/sdl-mixer-1.2.11-x86-gcc2-2012-06-25.zip ; : $(baseURL)/lib/sdl-mixer-1.2.11-r1a4-x86-gcc2-2012-08-29.zip ;
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
sdl-net-1.2.8-x86-gcc2-2012-06-24.zip sdl-net-1.2.8-r1a4-x86-gcc2-2012-08-29.zip
: $(baseURL)/lib/sdl-net-1.2.8-x86-gcc2-2012-06-24.zip ; : $(baseURL)/lib/sdl-net-1.2.8-r1a4-x86-gcc2-2012-08-29.zip ;
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
sdl-sound-1.0.3-x86-gcc2-2012-06-24.zip sdl-sound-1.0-hg-r1a4-x86-gcc2-2012-08-30.zip
: $(baseURL)/lib/sdl-sound-1.0.3-x86-gcc2-2012-06-24.zip ; : $(baseURL)/lib/sdl-sound-1.0-hg-r1a4-x86-gcc2-2012-08-30.zip ;
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
sdl-rtf-0.1.0-r1a3-x86-gcc2-2011-05-20.zip sdl-rtf-0.1.0-r1a3-x86-gcc2-2011-05-20.zip
: $(baseURL)/lib/sdl-rtf-0.1.0-r1a3-x86-gcc2-2011-05-20.zip ; : $(baseURL)/lib/sdl-rtf-0.1.0-r1a3-x86-gcc2-2011-05-20.zip ;
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
sdl-ttf-2.0.11-x86-gcc2-2012-06-24.zip sdl-ttf-2.0.11-r1a4-x86-gcc2-2012-08-29.zip
: $(baseURL)/lib/sdl-ttf-2.0.11-x86-gcc2-2012-06-24.zip ; : $(baseURL)/lib/sdl-ttf-2.0.11-r1a4-x86-gcc2-2012-08-29.zip ;
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
sge-030809-x86-gcc2-2012-06-24.zip sge-030809-r1a4-x86-gcc2-2012-08-29.zip
: $(baseURL)/lib/sge-030809-x86-gcc2-2012-06-24.zip ; : $(baseURL)/lib/sge-030809-r1a4-x86-gcc2-2012-08-29.zip ;
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
smjpeg-0.2.1-x86-gcc2-2012-06-24.zip smjpeg-0.2.1-r1a4-x86-gcc2-2012-08-29.zip
: $(baseURL)/lib/smjpeg-0.2.1-x86-gcc2-2012-06-24.zip ; : $(baseURL)/lib/smjpeg-0.2.1-r1a4-x86-gcc2-2012-08-29.zip ;
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
smpeg-0.4.5-x86-gcc2-2012-06-24.zip smpeg-0.4.5-r1a4-x86-gcc2-2012-08-29.zip
: $(baseURL)/lib/smpeg-0.4.5-x86-gcc2-2012-06-24.zip ; : $(baseURL)/lib/smpeg-0.4.5-r1a4-x86-gcc2-2012-08-29.zip ;
} }
} }
@ -309,48 +309,48 @@ if [ IsOptionalHaikuImagePackageAdded XiphLibs ] {
Echo "No optional package XiphLibs available for $(TARGET_ARCH)" ; Echo "No optional package XiphLibs available for $(TARGET_ARCH)" ;
} else if $(HAIKU_GCC_VERSION[1]) >= 4 { } else if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
flac-1.2.1-r1a3-x86-gcc4-2011-05-26.zip flac-1.2.1-r1a4-x86-gcc4-2012-09-02.zip
: $(baseURL)/lib/flac-1.2.1-r1a3-x86-gcc4-2011-05-26.zip ; : $(baseURL)/lib/flac-1.2.1-r1a4-x86-gcc4-2012-09-02.zip ;
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
libao-1.0.0-r1a3-x86-gcc4-2011-05-26.zip libao-1.0.0-r1a4-x86-gcc4-2012-09-02.zip
: $(baseURL)/lib/libao-1.0.0-r1a3-x86-gcc4-2011-05-26.zip ; : $(baseURL)/lib/libao-1.0.0-r1a4-x86-gcc4-2012-09-02.zip ;
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
libogg-1.2.2-r1a3-x86-gcc4-2011-05-26.zip libogg-1.3.0-r1a4-x86-gcc4-2012-09-02.zip
: $(baseURL)/lib/libogg-1.2.2-r1a3-x86-gcc4-2011-05-26.zip ; : $(baseURL)/lib/libogg-1.3.0-r1a4-x86-gcc4-2012-09-02.zip ;
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
libtheora-1.1.1-r1a3-x86-gcc4-2011-05-26.zip libtheora-1.1.1-r1a4-x86-gcc4-2012-09-02.zip
: $(baseURL)/lib/libtheora-1.1.1-r1a3-x86-gcc4-2011-05-26.zip ; : $(baseURL)/lib/libtheora-1.1.1-r1a4-x86-gcc4-2012-09-02.zip ;
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
libvorbis-1.3.2-r1a3-x86-gcc4-2011-05-26.zip libvorbis-1.3.2-r1a4-x86-gcc4-2012-09-02.zip
: $(baseURL)/lib/libvorbis-1.3.2-r1a3-x86-gcc4-2011-05-26.zip ; : $(baseURL)/lib/libvorbis-1.3.2-r1a4-x86-gcc4-2012-09-02.zip ;
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
speex-1.2rc1-x86-gcc4-2012-03-12.zip speex-1.2rc1-r1a4-x86-gcc4-2012-09-02.zip
: $(baseURL)/lib/speex-1.2rc1-x86-gcc4-2012-03-12.zip ; : $(baseURL)/lib/speex-1.2rc1-r1a4-x86-gcc4-2012-09-02.zip ;
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
vorbis-tools-1.4.0-r1a3-x86-gcc4-2011-05-26.zip vorbis-tools-1.4.0-r1a4-x86-gcc4-2012-09-02.zip
: $(baseURL)/lib/vorbis-tools-1.4.0-r1a3-x86-gcc4-2011-05-26.zip ; : $(baseURL)/lib/vorbis-tools-1.4.0-r1a4-x86-gcc4-2012-09-02.zip ;
} else { } else {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
flac-1.2.1-r1a3-x86-gcc2-2011-05-19.zip flac-1.2.1-r1a4-x86-gcc2-2012-08-29.zip
: $(baseURL)/lib/flac-1.2.1-r1a3-x86-gcc2-2011-05-19.zip ; : $(baseURL)/lib/flac-1.2.1-r1a4-x86-gcc2-2012-08-29.zip ;
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
libao-1.0.0-r1a3-x86-gcc2-2011-05-19.zip libao-1.0.0-r1a4-x86-gcc2-2012-08-29.zip
: $(baseURL)/lib/libao-1.0.0-r1a3-x86-gcc2-2011-05-19.zip ; : $(baseURL)/lib/libao-1.0.0-r1a4-x86-gcc2-2012-08-29.zip ;
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
libogg-1.2.2-r1a3-x86-gcc2-2011-05-19.zip libogg-1.3.0-r1a4-x86-gcc2-2012-08-29.zip
: $(baseURL)/lib/libogg-1.2.2-r1a3-x86-gcc2-2011-05-19.zip ; : $(baseURL)/lib/libogg-1.3.0-r1a4-x86-gcc2-2012-08-29.zip ;
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
libtheora-1.1.1-r1a3-x86-gcc2-2011-05-19.zip libtheora-1.1.1-r1a4-x86-gcc2-2012-08-29.zip
: $(baseURL)/lib/libtheora-1.1.1-r1a3-x86-gcc2-2011-05-19.zip ; : $(baseURL)/lib/libtheora-1.1.1-r1a4-x86-gcc2-2012-08-29.zip ;
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
libvorbis-1.3.2-r1a3-x86-gcc2-2011-05-19.zip libvorbis-1.3.2-r1a4-x86-gcc2-2012-08-29.zip
: $(baseURL)/lib/libvorbis-1.3.2-r1a3-x86-gcc2-2011-05-19.zip ; : $(baseURL)/lib/libvorbis-1.3.2-r1a4-x86-gcc2-2012-08-29.zip ;
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
speex-1.2-git-r1a3-x86-gcc2-2011-05-26.zip speex-1.2rc1-r1a4-x86-gcc2-2012-08-29.zip
: $(baseURL)/lib/speex-1.2-git-r1a3-x86-gcc2-2011-05-26.zip ; : $(baseURL)/lib/speex-1.2rc1-r1a4-x86-gcc2-2012-08-29.zip ;
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
vorbis-tools-1.4.0-r1a3-x86-gcc2-2011-05-19.zip vorbis-tools-1.4.0-r1a4-x86-gcc2-2012-08-29.zip
: $(baseURL)/lib/vorbis-tools-1.4.0-r1a3-x86-gcc2-2011-05-19.zip ; : $(baseURL)/lib/vorbis-tools-1.4.0-r1a4-x86-gcc2-2012-08-29.zip ;
} }
} }

View File

@ -384,12 +384,12 @@ if [ IsOptionalHaikuImagePackageAdded Caya ] {
} else { } else {
if $(HAIKU_GCC_VERSION[1]) >= 4 || $(isHybridBuild) { if $(HAIKU_GCC_VERSION[1]) >= 4 || $(isHybridBuild) {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
caya-264-x86-gcc4-2012-05-20.zip caya-264-r1a4-x86-gcc4-2012-08-31.zip
: $(baseURL)/caya-264-x86-gcc4-2012-05-20.zip : $(baseURL)/caya-264-r1a4-x86-gcc4-2012-08-31.zip
: : true ; : : true ;
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
caya-gpl-protocols-35-x86-gcc4-2012-05-20.zip caya-gpl-protocols-35-r1a4-x86-gcc4-2012-09-03.zip
: $(baseURL)/caya-gpl-protocols-35-x86-gcc4-2012-05-20.zip : $(baseURL)/caya-gpl-protocols-35-r1a4-x86-gcc4-2012-09-03.zip
: : true ; : : true ;
AddSymlinkToHaikuImage home config be Applications AddSymlinkToHaikuImage home config be Applications
: /boot/apps/Caya/Caya ; : /boot/apps/Caya/Caya ;
@ -507,12 +507,12 @@ if [ IsOptionalHaikuImagePackageAdded Colors! ] {
} else { } else {
if $(HAIKU_GCC_VERSION[1]) >= 4 { if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
Colors!-2.0-x86-gcc4-2012-04-30.zip Colors!-2.1-r1a4-x86-gcc4-2012-08-30.zip
: $(baseURL)/Colors\!-2.0-x86-gcc4-2012-04-30.zip ; : $(baseURL)/Colors\!-2.1-r1a4-x86-gcc4-2012-08-30.zip ;
} else { } else {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
Colors!-2.0-x86-gcc2-2012-04-30.zip Colors!-2.1-r1a4-x86-gcc2-2012-08-30.zip
: $(baseURL)/Colors\!-2.0-x86-gcc2-2012-04-30.zip ; : $(baseURL)/Colors\!-2.1-r1a4-x86-gcc2-2012-08-30.zip ;
} }
AddSymlinkToHaikuImage home config settings deskbar Applications AddSymlinkToHaikuImage home config settings deskbar Applications
: /boot/apps/Colors\!/Colors\! ; : /boot/apps/Colors\!/Colors\! ;
@ -527,13 +527,13 @@ if [ IsOptionalHaikuImagePackageAdded Ctags ] {
} else { } else {
if $(HAIKU_GCC_VERSION[1]) >= 4 { if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
ctags-5.8-x86-gcc4-2012-01-23.zip ctags-5.8-r1a4-x86-gcc4-2012-08-30.zip
: $(baseURL)/ctags-5.8-x86-gcc4-2012-01-23.zip : $(baseURL)/ctags-5.8-r1a4-x86-gcc4-2012-08-30.zip
: : true ; : : true ;
} else { } else {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
ctags-5.8-x86-gcc2-2010-05-24.zip ctags-5.8-r1a4-x86-gcc2-2012-09-03.zip
: $(baseURL)/ctags-5.8-x86-gcc2-2010-05-24.zip : $(baseURL)/ctags-5.8-r1a4-x86-gcc2-2012-09-03.zip
: : true ; : : true ;
} }
} }
@ -881,12 +881,12 @@ if [ IsOptionalHaikuImagePackageAdded DMIDecode ] {
Echo "No optional package DMIDecode available for $(TARGET_ARCH)" ; Echo "No optional package DMIDecode available for $(TARGET_ARCH)" ;
} else if $(HAIKU_GCC_VERSION[1]) >= 4 { } else if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
dmidecode-2.11-x86-gcc4-2011-11-02.zip dmidecode-2.11-r1a4-x86-gcc4-2012-09-04.zip
: http://revolf.free.fr/beos/dmidecode-2.11-x86-gcc4-2011-11-02.zip ; : $(baseURL)/dmidecode-2.11-r1a4-x86-gcc4-2012-09-04.zip ;
} else { } else {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
dmidecode-2.11-x86-gcc2-2011-11-02.zip dmidecode-2.11-r1a4-x86-gcc2-2012-09-03.zip
: http://revolf.free.fr/beos/dmidecode-2.11-x86-gcc2-2011-11-02.zip ; : $(baseURL)/dmidecode-2.11-r1a4-x86-gcc2-2012-09-03.zip ;
} }
} }
@ -903,8 +903,8 @@ if [ IsOptionalHaikuImagePackageAdded Doxygen ] {
: : true ; : : true ;
} else { } else {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
doxygen-1.6.3-x86-gcc2-2010-05-17.zip doxygen-1.6.3-r1a4-x86-gcc2-2012-09-05.zip
: $(baseURL)/doxygen-1.6.3-x86-gcc2-2010-05-17.zip : $(baseURL)/doxygen-1.6.3-r1a4-x86-gcc2-2012-09-05.zip
: : true ; : : true ;
} }
} }
@ -1014,8 +1014,8 @@ if [ IsOptionalHaikuImagePackageAdded GitDoc ] {
} else { } else {
if $(HAIKU_GCC_VERSION[1]) >= 4 { if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
gitdoc-1.7.10.2-x86-gcc4-2012-06-20.zip gitdoc-1.7.10.2-r1a4-x86-gcc4-2012-09-03.zip
: $(baseURL)/gitdoc-1.7.10.2-x86-gcc4-2012-06-20.zip : $(baseURL)/gitdoc-1.7.10.2-r1a4-x86-gcc4-2012-09-03.zip
: : true ; : : true ;
} else { } else {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
@ -1174,12 +1174,12 @@ if [ IsOptionalHaikuImagePackageAdded LibEvent ] {
if $(HAIKU_GCC_VERSION[1]) >= 4 { if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
libevent-2.0.10-r1a4-x86-gcc4-2012-08-30.zip libevent-2.0.10-r1a4-x86-gcc4-2012-08-30.zip
: $(baseURL)/lib/libevent-2.0.10-r1a4-x86-gcc4-2012-08-30.zip : $(baseURL)/libevent-2.0.10-r1a4-x86-gcc4-2012-08-30.zip
: : true ; : : true ;
} else { } else {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
libevent-2.0.10-r1a4-x86-gcc2-2012-08-28.zip libevent-2.0.10-r1a4-x86-gcc2-2012-08-28.zip
: $(baseURL)/lib/libevent-2.0.10-r1a4-x86-gcc2-2012-08-28.zip : $(baseURL)/libevent-2.0.10-r1a4-x86-gcc2-2012-08-28.zip
: : true ; : : true ;
} }
} }
@ -1209,11 +1209,11 @@ if [ IsOptionalHaikuImagePackageAdded LibLayout ] {
if $(TARGET_ARCH) != x86 { if $(TARGET_ARCH) != x86 {
Echo "No optional package LibLayout available for $(TARGET_ARCH)" ; Echo "No optional package LibLayout available for $(TARGET_ARCH)" ;
} else if $(HAIKU_GCC_VERSION[1]) >= 4 { } else if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage liblayout-1.4.1-r1a4-gcc4-2012-08-30.zip InstallOptionalHaikuImagePackage liblayout-1.4.1-r1a4-x86-gcc4-2012-08-30.zip
: $(baseURL)/liblayout-1.4.1-r1a4-gcc4-2012-08-30.zip ; : $(baseURL)/liblayout-1.4.1-r1a4-x86-gcc4-2012-08-30.zip ;
} else { } else {
InstallOptionalHaikuImagePackage liblayout-1.4.1-r1a4-gcc2-2012-08-28.zip InstallOptionalHaikuImagePackage liblayout-1.4.0-gcc2-2009-03-08.zip
: $(baseURL)/liblayout-1.4.1-r1a4-gcc2-2012-08-28.zip ; : $(baseURL)/liblayout-1.4.0-gcc2-2009-03-08.zip ;
} }
} }
@ -1224,8 +1224,8 @@ if [ IsOptionalHaikuImagePackageAdded Libmng ] {
Echo "No optional package Libmng available for $(TARGET_ARCH)" ; Echo "No optional package Libmng available for $(TARGET_ARCH)" ;
} else if $(HAIKU_GCC_VERSION[1]) >= 4 { } else if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
libmng-1.0.10-r1a3-x86-gcc4-2011-05-24.zip libmng-1.0.10-r1a4-x86-gcc4-2012-09-02.zip
: $(baseURL)/lib/libmng-1.0.10-r1a3-x86-gcc4-2011-05-24.zip ; : $(baseURL)/lib/libmng-1.0.10-r1a4-x86-gcc4-2012-09-02.zip ;
} else { } else {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
libmng-1.0.10-r1a4-x86-gcc2-2012-08-28.zip libmng-1.0.10-r1a4-x86-gcc2-2012-08-28.zip
@ -1292,13 +1292,13 @@ if [ IsOptionalHaikuImagePackageAdded Lua ] {
} else { } else {
if $(HAIKU_GCC_VERSION[1]) >= 4 { if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
lua-5.1.4-x86-gcc4-2010-10-30.zip lua-5.1.4-3-r1a4-x86-gcc4-2012-09-01.zip
: $(baseURL)/lua-5.1.4-x86-gcc4-2010-10-30.zip : $(baseURL)/lua-5.1.4-3-r1a4-x86-gcc4-2012-09-01.zip
: : true ; : : true ;
} else { } else {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
lua-5.1.4-3-r1a4-x86-gcc2-2012-08-29.zip lua-5.1.4-3-r1a4-x86-gcc2-2012-09-01.zip
: $(baseURL)/lua-5.1.4-3-r1a4-x86-gcc2-2012-08-29.zip : $(baseURL)/lua-5.1.4-3-r1a4-x86-gcc2-2012-09-01.zip
: : true ; : : true ;
} }
} }
@ -1506,8 +1506,8 @@ if [ IsOptionalHaikuImagePackageAdded P7zip ] {
} else { } else {
if $(HAIKU_GCC_VERSION[1]) >= 4 { if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
p7zip-9.20.1-x86-gcc4-2012-06-19.zip p7zip-9.20.1-r1a4-x86-gcc4-2012-08-30.zip
: $(baseURL)/p7zip-9.20.1-x86-gcc4-2012-06-19.zip ; : $(baseURL)/p7zip-9.20.1-r1a4-x86-gcc4-2012-08-30.zip ;
} else { } else {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
p7zip-9.20.1-r1a4-x86-gcc2-2012-08-29.zip p7zip-9.20.1-r1a4-x86-gcc2-2012-08-29.zip
@ -1529,8 +1529,8 @@ if [ IsOptionalHaikuImagePackageAdded Paladin ] {
} else { } else {
if $(HAIKU_GCC_VERSION[1]) >= 4 { if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
paladin-1.3-r1a3-x86-gcc4-2011-05-24.zip paladin-1.3-r1a4-x86-gcc4-2012-08-30.zip
: $(baseURL)/paladin-1.3-r1a3-x86-gcc4-2011-05-24.zip ; : $(baseURL)/paladin-1.3-r1a4-x86-gcc4-2012-08-30.zip ;
} else { } else {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
paladin-1.3-r1a3-x86-gcc2-2011-05-18.zip paladin-1.3-r1a3-x86-gcc2-2011-05-18.zip
@ -1552,8 +1552,8 @@ if [ IsOptionalHaikuImagePackageAdded PCRE ] {
} else { } else {
if $(HAIKU_GCC_VERSION[1]) >= 4 { if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
libpcre-8.12-r1a3-x86-gcc4-2011-05-24.zip libpcre-8.21-r1a4-x86-gcc4-2012-09-03.zip
: $(baseURL)/libpcre-8.12-r1a3-x86-gcc4-2011-05-24.zip ; : $(baseURL)/libpcre-8.21-r1a4-x86-gcc4-2012-09-03.zip ;
} else { } else {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
libpcre-8.21-r1a4-x86-gcc2-2012-08-28.zip libpcre-8.21-r1a4-x86-gcc2-2012-08-28.zip
@ -1571,7 +1571,7 @@ if [ IsOptionalHaikuImagePackageAdded Pe ] {
if $(HAIKU_GCC_VERSION[1]) >= 4 { if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
pe-2.4.3-600-x86-gcc4-2011-12-18.zip pe-2.4.3-600-x86-gcc4-2011-12-18.zip
: $(baseURL)/pe-2.4.3-600-x86-gcc4-2011-12-18.zip ; : $(baseURL)/pe-2.4.3-hg-r1a4-x86-gcc4-2012-09-04.zip ;
} else { } else {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
pe-2.4.3-hg-r1a4-x86-gcc2-2012-08-29.zip pe-2.4.3-hg-r1a4-x86-gcc2-2012-08-29.zip
@ -1613,8 +1613,8 @@ if [ IsOptionalHaikuImagePackageAdded Puri ] {
Echo "No optional package Puri for gcc2" ; Echo "No optional package Puri for gcc2" ;
} else { } else {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
puri-0.3.9.1-x86-gcc4-2012-08-16.zip puri-0.3.9.1-r1a4-x86-gcc4-2012-08-31.zip
: $(baseURL)/puri-0.3.9.1-x86-gcc4-2012-08-16.zip ; : $(baseURL)/puri-0.3.9.1-r1a4-x86-gcc4-2012-08-31.zip ;
AddSymlinkToHaikuImage home config settings deskbar Applications AddSymlinkToHaikuImage home config settings deskbar Applications
: /boot/apps/Puri/Puri ; : /boot/apps/Puri/Puri ;
} }
@ -1628,8 +1628,8 @@ if [ IsOptionalHaikuImagePackageAdded Python ] {
} else { } else {
if $(HAIKU_GCC_VERSION[1]) >= 4 { if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
python-2.6.7-x86-gcc4-2011-06-24.zip python-2.6.8-r1a4-x86-gcc4-2012-09-03.zip
: $(baseURL)/python-2.6.7-x86-gcc4-2011-06-24.zip : $(baseURL)/python-2.6.8-r1a4-x86-gcc4-2012-09-03.zip
: : true ; : : true ;
} else { } else {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
@ -1648,8 +1648,8 @@ if [ IsOptionalHaikuImagePackageAdded Rsync ] {
} else { } else {
if $(HAIKU_GCC_VERSION[1]) >= 4 { if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
rsync-3.0.7-r1a3-x86-gcc4-2011-05-24.zip rsync-3.0.7-r1a4-x86-gcc4-2012-08-31.zip
: $(baseURL)/rsync-3.0.7-r1a3-x86-gcc4-2011-05-24.zip : $(baseURL)/rsync-3.0.7-r1a4-x86-gcc4-2012-08-31.zip
: : true ; : : true ;
} else { } else {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
@ -1667,8 +1667,8 @@ if [ IsOptionalHaikuImagePackageAdded Ruby ] {
Echo "No optional package Ruby available for $(TARGET_ARCH)" ; Echo "No optional package Ruby available for $(TARGET_ARCH)" ;
} else if $(HAIKU_GCC_VERSION[1]) >= 4 { } else if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
ruby-1.9.1-r1a3-x86-gcc4-2011-05-24.zip ruby-1.9.1-r1a4-x86-gcc4-2012-08-31.zip
: $(baseURL)/ruby-1.9.1-r1a3-x86-gcc4-2011-05-24.zip ; : $(baseURL)/ruby-1.9.1-r1a4-x86-gcc4-2012-08-31.zip ;
} else { } else {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
ruby-1.9.1-r1a4-x86-gcc2-2012-08-29.zip ruby-1.9.1-r1a4-x86-gcc2-2012-08-29.zip
@ -1683,8 +1683,8 @@ if [ IsOptionalHaikuImagePackageAdded Sed ] {
Echo "No optional package Sed available for $(TARGET_ARCH)" ; Echo "No optional package Sed available for $(TARGET_ARCH)" ;
} else if $(HAIKU_GCC_VERSION[1]) >= 4 { } else if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
sed-4.2.1-r1a3-x86-gcc4-2011-05-24.zip sed-4.2.1-r1a4-x86-gcc4-2012-08-31.zip
: $(baseURL)/sed-4.2.1-r1a3-x86-gcc4-2011-05-24.zip ; : $(baseURL)/sed-4.2.1-r1a4-x86-gcc4-2012-08-31.zip ;
} else { } else {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
sed-4.2.1-r1a4-x86-gcc2-2012-08-27.zip sed-4.2.1-r1a4-x86-gcc2-2012-08-27.zip
@ -1737,12 +1737,12 @@ if [ IsOptionalHaikuImagePackageAdded TagLib ] {
Echo "No optional package TagLib available for $(TARGET_ARCH)" ; Echo "No optional package TagLib available for $(TARGET_ARCH)" ;
} else if $(HAIKU_GCC_VERSION[1]) >= 4 { } else if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
taglib-1.6.3-r1r3-x86-gcc4-2011-05-24.zip taglib-1.6.3-r1a4-x86-gcc4-2012-09-03.zip
: $(baseURL)/taglib-1.6.3-r1r3-x86-gcc4-2011-05-24.zip ; : $(baseURL)/taglib-1.6.3-r1a4-x86-gcc4-2012-09-03.zip ;
} else { } else {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
taglib-1.7.2-r1a4-x86-gcc2-2012-08-30.zip taglib-1.6.3-r1a4-x86-gcc2-2012-09-03.zip
: $(baseURL)/taglib-1.7.2-r1a4-x86-gcc2-2012-08-30.zip ; : $(baseURL)/taglib-1.6.3-r1a4-x86-gcc2-2012-09-03.zip ;
} }
} }
@ -1754,8 +1754,8 @@ if [ IsOptionalHaikuImagePackageAdded Tar ] {
} else { } else {
if $(HAIKU_GCC_VERSION[1]) >= 4 { if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
tar-1.26-x86-gcc4-2012-06-19.zip tar-1.26-r1a4-x86-gcc4-2012-09-03.zip
: $(baseURL)/tar-1.26-x86-gcc4-2012-06-19.zip ; : $(baseURL)/tar-1.26-r1a4-x86-gcc4-2012-09-03.zip ;
} else { } else {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
tar-1.26-r1a4-x86-gcc2-2012-08-29.zip tar-1.26-r1a4-x86-gcc2-2012-08-29.zip
@ -1788,8 +1788,8 @@ if [ IsOptionalHaikuImagePackageAdded Transmission ] {
} else { } else {
if $(HAIKU_GCC_VERSION[1]) >= 4 { if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
transmission-2.21-r1a3-x86-gcc4-2011-05-27.zip transmission-2.21-r1a4-x86-gcc4-2012-09-03.zip
: $(baseURL)/transmission-2.21-r1a3-x86-gcc4-2011-05-27.zip : $(baseURL)/transmission-2.21-r1a4-x86-gcc4-2012-09-03.zip
: : true ; : : true ;
} else { } else {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
@ -1882,8 +1882,8 @@ if [ IsOptionalHaikuImagePackageAdded Vision ] {
Echo "No optional package Vision available for $(TARGET_ARCH)" ; Echo "No optional package Vision available for $(TARGET_ARCH)" ;
} else { } else {
if $(HAIKU_GCC_VERSION[1]) >= 4 { if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage vision-908-x86-gcc4-2012-02-26.zip InstallOptionalHaikuImagePackage vision-908-r1a4-x86-gcc4-2012-09-04.zip
: $(baseURL)/vision-908-x86-gcc4-2012-02-26.zip ; : $(baseURL)/vision-908-r1a4-x86-gcc4-2012-09-04.zip ;
} else { } else {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
vision-908-r1a4-x86-gcc2-2012-08-29.zip vision-908-r1a4-x86-gcc2-2012-08-29.zip
@ -2044,8 +2044,8 @@ if [ IsOptionalHaikuImagePackageAdded XZ-Utils ] {
Echo "No optional package XZ-Utils available for $(TARGET_ARCH)" ; Echo "No optional package XZ-Utils available for $(TARGET_ARCH)" ;
} else { } else {
InstallOptionalHaikuImagePackage InstallOptionalHaikuImagePackage
xz-utils-5.0.1-x86-gcc4-2012-07-18.zip xz-utils-5.0.1-r1a4-x86-gcc4-2012-09-03.zip
: $(baseURL)/xz-utils-5.0.1-x86-gcc4-2012-07-18.zip ; : $(baseURL)/xz-utils-5.0.1-r1a4-x86-gcc4-2012-09-03.zip ;
AddExpanderRuleToHaikuImage "application/x-xz" : .tar.xz AddExpanderRuleToHaikuImage "application/x-xz" : .tar.xz
: "tar -Jtvf \\0045s" : "tar -Jtvf \\0045s"
: "tar -Jxvf \\0045s" : "tar -Jxvf \\0045s"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

View File

@ -42,8 +42,8 @@ declare alreadyInstalled=""
# Some Packages cannot be installed, # Some Packages cannot be installed,
# as they require either the source code or compiled binaries # as they require either the source code or compiled binaries
declare packageIgnoreList="Bluetooth Development DevelopmentMin \ declare packageIgnoreList="Bluetooth Development DevelopmentMin \
DevelopmentBase MandatoryPackages UserlandFS Welcome WifiFirmwareScriptData \ DevelopmentBase ICU-devel ICU MandatoryPackages UserlandFS \
ICU-devel ICU " WebPositive Welcome WifiFirmwareScriptData "
function CreateInstallerScript() function CreateInstallerScript()

View File

@ -142,7 +142,7 @@ class BNavMenu : public BSlowMenu {
EntryListBase *fContainer; EntryListBase *fContainer;
bool fIteratingDesktop; bool fIteratingDesktop;
const BObjectList<BString> *fTypesList; BObjectList<BString> *fTypesList;
TrackingHookData fTrackingHook; TrackingHookData fTrackingHook;
}; };

View File

@ -325,10 +325,15 @@ Playlist::RemoveItem(int32 index, bool careAboutCurrentIndex)
_NotifyItemRemoved(index); _NotifyItemRemoved(index);
if (careAboutCurrentIndex) { if (careAboutCurrentIndex) {
if (index >= CountItems()) // fCurrentIndex isn't in sync yet, so might be one too large (if the
SetCurrentItemIndex(CountItems() - 1); // removed item was above the currently playing item).
else if (index <= fCurrentIndex) if (index < fCurrentIndex)
SetCurrentItemIndex(index - 1); SetCurrentItemIndex(fCurrentIndex - 1, false);
else if (index == fCurrentIndex) {
if (fCurrentIndex == CountItems())
fCurrentIndex--;
SetCurrentItemIndex(fCurrentIndex, true);
}
} }
return item; return item;

View File

@ -18,15 +18,17 @@ resource(4, "META:EXTENS") message(234) {
resource(5, "META:PREF_APP") #'MSIG' "application/x-vnd.beunited.pe"; resource(5, "META:PREF_APP") #'MSIG' "application/x-vnd.beunited.pe";
resource(6, "META:ICON") #'VICN' array { resource(6, "META:ICON") #'VICN' array {
$"6E6369660505010200060338D2F73CD163BF82B23B84A94B88504870C900B6F5" $"6E6369660505010200060338D2F73CD163BF82B23B84A94B88504870C901BFDE"
$"5CBDDCFFB3FFD7FFBA020106023E49240000000000003CAAAA4940004A3000FF" $"F4BDFFFFFFFFE7EEFB020106023E49240000000000003CAAAA4940004A3000FF"
$"CCFF897C4FB009040192020006023A55A6BAC2293F0DA33E958646C2EB4870EB" $"CEE5FF7C7588AD040192020006023A55A6BAC2293F0DA33E958646C2EB4870EB"
$"00010101FF85CB520B0606AE0BB40BBF4D33C3AFB75DC173BDEFC607C13EC804" $"00010101FF5296CB0A0606AE0BB40BBF4D33C3AFB75DC173BDEFC607C13EC804"
$"CA28BD82C118B920C51BBB40BF07B8083AB6BC0605AE02B57D3EB9B9C3EFB7BB" $"CA28BD82C118B920C51BBB40BF07B8083AB6BC0605AE02B57D3EB9B9C3EFB7BB"
$"44BBB751BD75C936CA8EC1B1402F0A093B593D5BBFCDC93E455BC516C5F16046" $"44BBB751BD75C936CA8EC1B1402F0A093B593D5BBFCDC93E455BC516C5F16046"
$"5B435D4544510A045A425E3F5A3D574008022E40BDB53308023142BE34BC0308" $"5B435D4544510A045A425E3F5A3D574008022E45373C0802364441390802364B"
$"023444C0E5BB5108023746C0D8BD7508023A48C270BDB508023D4A4CBD820802" $"463B08023A4E4A3E08032D422E4430450803373839393A3B0C0A03020203000A"
$"404CC408BFE6080A03020203000A0001011001178400040A020101000A000100" $"0001011001178400040A020101000A0001001001178400040A010100000A0403"
$"1001178400040A010100000A04040604080A1815FF01178100040A0404060408" $"04060738201B16FF01178100040A0402060438201B001601178200040A040105"
$"0A18001501178200040A04030907051815FF0117810004" $"38201B16FF01178100040A000108382B1116FF01178100040A00010938231916"
$"FF01178100040A00010838251E16FF01178100040A00010938283116FF011781"
$"0004"
}; };

View File

@ -34,15 +34,17 @@ resource(4, "META:EXTENS") message(234) {
resource(5, "META:PREF_APP") #'MSIG' "application/x-vnd.beunited.pe"; resource(5, "META:PREF_APP") #'MSIG' "application/x-vnd.beunited.pe";
resource(6, "META:ICON") #'VICN' array { resource(6, "META:ICON") #'VICN' array {
$"6E6369660505010200060338D2F73CD163BF82B23B84A94B88504870C900B6F5" $"6E6369660505010200060338D2F73CD163BF82B23B84A94B88504870C901BFDE"
$"5CBDDCFFB3FFD7FFBA020106023E49240000000000003CAAAA4940004A3000FF" $"F4BDFFFFFFFFE7EEFB020106023E49240000000000003CAAAA4940004A3000FF"
$"CCFF897C4FB009040192020006023A55A6BAC2293F0DA33E958646C2EB4870EB" $"CEE5FF7C7588AD040192020006023A55A6BAC2293F0DA33E958646C2EB4870EB"
$"00010101FF85CB520B0606AE0BB40BBF4D33C3AFB75DC173BDEFC607C13EC804" $"00010101FF5296CB0A0606AE0BB40BBF4D33C3AFB75DC173BDEFC607C13EC804"
$"CA28BD82C118B920C51BBB40BF07B8083AB6BC0605AE02B57D3EB9B9C3EFB7BB" $"CA28BD82C118B920C51BBB40BF07B8083AB6BC0605AE02B57D3EB9B9C3EFB7BB"
$"44BBB751BD75C936CA8EC1B1402F0A093B593D5BBFCDC93E455BC516C5F16046" $"44BBB751BD75C936CA8EC1B1402F0A093B593D5BBFCDC93E455BC516C5F16046"
$"5B435D4544510A045A425E3F5A3D574008022E40BDB53308023142BE34BC0308" $"5B435D4544510A045A425E3F5A3D574008022E45373C0802364441390802364B"
$"023444C0E5BB5108023746C0D8BD7508023A48C270BDB508023D4A4CBD820802" $"463B08023A4E4A3E08032D422E4430450803373839393A3B0C0A03020203000A"
$"404CC408BFE6080A03020203000A0001011001178400040A020101000A000100" $"0001011001178400040A020101000A0001001001178400040A010100000A0403"
$"1001178400040A010100000A04040604080A1815FF01178100040A0404060408" $"04060738201B16FF01178100040A0402060438201B001601178200040A040105"
$"0A18001501178200040A04030907051815FF0117810004" $"38201B16FF01178100040A000108382B1116FF01178100040A00010938231916"
$"FF01178100040A00010838251E16FF01178100040A00010938283116FF011781"
$"0004"
}; };

View File

@ -75,6 +75,16 @@ BNotification::BNotification(BMessage* archive)
if (archive->FindRef("_onClickFile", &onClickFile) == B_OK) if (archive->FindRef("_onClickFile", &onClickFile) == B_OK)
SetOnClickFile(&onClickFile); SetOnClickFile(&onClickFile);
entry_ref onClickRef;
int32 index = 0;
while (archive->FindRef("_onClickRef", index++, &onClickRef) == B_OK)
AddOnClickRef(&onClickRef);
BString onClickArgv;
index = 0;
while (archive->FindString("_onClickArgv", index++, &onClickArgv) == B_OK)
AddOnClickArg(onClickArgv);
status_t ret = B_OK; status_t ret = B_OK;
BMessage icon; BMessage icon;
if ((ret = archive->FindMessage("_icon", &icon)) == B_OK) { if ((ret = archive->FindMessage("_icon", &icon)) == B_OK) {

View File

@ -1106,15 +1106,15 @@ Model::SupportsMimeType(const char* type, const BObjectList<BString>* list,
int32 match; int32 match;
if (type) { if (type || (list != NULL && list->IsEmpty())) {
BString typeString(type); BString typeString(type);
match = MatchMimeTypeString(&typeString, mimeSignature); match = MatchMimeTypeString(&typeString, mimeSignature);
} else } else {
match = WhileEachListItem(const_cast<BObjectList<BString>*>(list), match = WhileEachListItem(const_cast<BObjectList<BString>*>(list),
MatchMimeTypeString, mimeSignature); MatchMimeTypeString, mimeSignature);
// const_cast shouldnt be here, have to have it until // const_cast shouldnt be here, have to have it until
// MW cleans up // MW cleans up
}
if (match == kMatch) if (match == kMatch)
// supports the actual type, it can't get any better // supports the actual type, it can't get any better
return kModelSupportsType; return kModelSupportsType;

View File

@ -130,7 +130,7 @@ void
SpringLoadedFolderSetMenuStates(const BMenu* menu, SpringLoadedFolderSetMenuStates(const BMenu* menu,
const BObjectList<BString>* typeslist) const BObjectList<BString>* typeslist)
{ {
if (!menu || !typeslist) if (!menu || !typeslist || typeslist->IsEmpty())
return; return;
// if a types list exists // if a types list exists
@ -263,8 +263,10 @@ BNavMenu::BNavMenu(const char* title, uint32 message, const BHandler* target,
fFlags(0), fFlags(0),
fItemList(0), fItemList(0),
fContainer(0), fContainer(0),
fTypesList(list) fTypesList(new BObjectList<BString>(10, true))
{ {
if (list != NULL)
*fTypesList = *list;
InitIconPreloader(); InitIconPreloader();
SetFont(be_plain_font); SetFont(be_plain_font);
@ -292,8 +294,10 @@ BNavMenu::BNavMenu(const char* title, uint32 message,
fFlags(0), fFlags(0),
fItemList(0), fItemList(0),
fContainer(0), fContainer(0),
fTypesList(list) fTypesList(new BObjectList<BString>(10, true))
{ {
if (list != NULL)
*fTypesList = *list;
InitIconPreloader(); InitIconPreloader();
SetFont(be_plain_font); SetFont(be_plain_font);
@ -313,6 +317,7 @@ BNavMenu::BNavMenu(const char* title, uint32 message,
BNavMenu::~BNavMenu() BNavMenu::~BNavMenu()
{ {
delete fTypesList;
} }
@ -334,13 +339,6 @@ BNavMenu::AttachedToWindow()
void void
BNavMenu::DetachedFromWindow() BNavMenu::DetachedFromWindow()
{ {
// does this need to set this to null?
// the parent, handling dnd should set this
// appropriately
//
// if this changes, BeMenu and RecentsMenu
// in Deskbar should also change
fTypesList = NULL;
} }
@ -814,7 +812,10 @@ BNavMenu::SetShowParent(bool show)
void void
BNavMenu::SetTypesList(const BObjectList<BString>* list) BNavMenu::SetTypesList(const BObjectList<BString>* list)
{ {
fTypesList = list; if (list != NULL)
*fTypesList = *list;
else
fTypesList->MakeEmpty();
} }

View File

@ -727,9 +727,8 @@ JPEGPreDecode(TIFF* tif, tsample_t s)
sp->cinfo.d.image_height < segment_height) { sp->cinfo.d.image_height < segment_height) {
TIFFWarningExt(tif->tif_clientdata, module, TIFFWarningExt(tif->tif_clientdata, module,
"Improper JPEG strip/tile size, " "Improper JPEG strip/tile size, "
"expected %dx%d, got %dx%d", "expected %" B_PRIu32 "x%" B_PRIu32 ", got %" B_PRIu32 "x%"
segment_width, segment_height, B_PRIu32, segment_width, segment_height, sp->cinfo.d.image_width,
sp->cinfo.d.image_width,
sp->cinfo.d.image_height); sp->cinfo.d.image_height);
} }
if (sp->cinfo.d.image_width > segment_width || if (sp->cinfo.d.image_width > segment_width ||
@ -742,9 +741,9 @@ JPEGPreDecode(TIFF* tif, tsample_t s)
*/ */
TIFFErrorExt(tif->tif_clientdata, module, TIFFErrorExt(tif->tif_clientdata, module,
"JPEG strip/tile size exceeds expected dimensions," "JPEG strip/tile size exceeds expected dimensions,"
" expected %dx%d, got %dx%d", "expected %" B_PRIu32 "x%" B_PRIu32 ", got %" B_PRIu32 "x%"
segment_width, segment_height, B_PRIu32, segment_width, segment_height, sp->cinfo.d.image_width,
sp->cinfo.d.image_width, sp->cinfo.d.image_height); sp->cinfo.d.image_height);
return (0); return (0);
} }
if (sp->cinfo.d.num_components != if (sp->cinfo.d.num_components !=

View File

@ -21,7 +21,7 @@
#include "AntialiasingSettingsView.h" #include "AntialiasingSettingsView.h"
#include "APRView.h" #include "APRView.h"
#include "DecorSettingsView.h" #include "LookAndFeelSettingsView.h"
#include "defs.h" #include "defs.h"
#include "FontView.h" #include "FontView.h"
@ -54,15 +54,15 @@ APRWindow::APRWindow(BRect frame)
fColorsView = new APRView(B_TRANSLATE("Colors")); fColorsView = new APRView(B_TRANSLATE("Colors"));
fDecorSettings = new DecorSettingsView( fLookAndFeelSettings = new LookAndFeelSettingsView(
B_TRANSLATE("Decorators")); B_TRANSLATE("Look and feel"));
fAntialiasingSettings = new AntialiasingSettingsView( fAntialiasingSettings = new AntialiasingSettingsView(
B_TRANSLATE("Antialiasing")); B_TRANSLATE("Antialiasing"));
tabView->AddTab(fFontSettings); tabView->AddTab(fFontSettings);
tabView->AddTab(fColorsView); tabView->AddTab(fColorsView);
tabView->AddTab(fDecorSettings); tabView->AddTab(fLookAndFeelSettings);
tabView->AddTab(fAntialiasingSettings); tabView->AddTab(fAntialiasingSettings);
_UpdateButtons(); _UpdateButtons();
@ -92,7 +92,7 @@ APRWindow::MessageReceived(BMessage *message)
fFontSettings->SetDefaults(); fFontSettings->SetDefaults();
fColorsView->SetDefaults(); fColorsView->SetDefaults();
fAntialiasingSettings->SetDefaults(); fAntialiasingSettings->SetDefaults();
fDecorSettings->SetDefaults(); fLookAndFeelSettings->SetDefaults();
_UpdateButtons(); _UpdateButtons();
break; break;
@ -101,7 +101,7 @@ APRWindow::MessageReceived(BMessage *message)
fColorsView->Revert(); fColorsView->Revert();
fAntialiasingSettings->Revert(); fAntialiasingSettings->Revert();
fFontSettings->Revert(); fFontSettings->Revert();
fDecorSettings->Revert(); fLookAndFeelSettings->Revert();
_UpdateButtons(); _UpdateButtons();
break; break;
@ -127,11 +127,11 @@ APRWindow::_IsDefaultable() const
// printf("fonts defaultable: %d\n", fFontSettings->IsDefaultable()); // printf("fonts defaultable: %d\n", fFontSettings->IsDefaultable());
// printf("colors defaultable: %d\n", fColorsView->IsDefaultable()); // printf("colors defaultable: %d\n", fColorsView->IsDefaultable());
// printf("AA defaultable: %d\n", fAntialiasingSettings->IsDefaultable()); // printf("AA defaultable: %d\n", fAntialiasingSettings->IsDefaultable());
// printf("decor defaultable: %d\n", fDecorSettings->IsDefaultable()); // printf("decor defaultable: %d\n", fLookAndFeelSettings->IsDefaultable());
return fColorsView->IsDefaultable() return fColorsView->IsDefaultable()
|| fFontSettings->IsDefaultable() || fFontSettings->IsDefaultable()
|| fAntialiasingSettings->IsDefaultable() || fAntialiasingSettings->IsDefaultable()
|| fDecorSettings->IsDefaultable(); || fLookAndFeelSettings->IsDefaultable();
} }
@ -141,9 +141,9 @@ APRWindow::_IsRevertable() const
// printf("fonts revertable: %d\n", fFontSettings->IsRevertable()); // printf("fonts revertable: %d\n", fFontSettings->IsRevertable());
// printf("colors revertable: %d\n", fColorsView->IsRevertable()); // printf("colors revertable: %d\n", fColorsView->IsRevertable());
// printf("AA revertable: %d\n", fAntialiasingSettings->IsRevertable()); // printf("AA revertable: %d\n", fAntialiasingSettings->IsRevertable());
// printf("decor revertable: %d\n", fDecorSettings->IsRevertable()); // printf("decor revertable: %d\n", fLookAndFeelSettings->IsRevertable());
return fColorsView->IsRevertable() return fColorsView->IsRevertable()
|| fFontSettings->IsRevertable() || fFontSettings->IsRevertable()
|| fAntialiasingSettings->IsRevertable() || fAntialiasingSettings->IsRevertable()
|| fDecorSettings->IsRevertable(); || fLookAndFeelSettings->IsRevertable();
} }

View File

@ -20,7 +20,7 @@
class APRView; class APRView;
class AntialiasingSettingsView; class AntialiasingSettingsView;
class FontView; class FontView;
class DecorSettingsView; class LookAndFeelSettingsView;
class APRWindow : public BWindow { class APRWindow : public BWindow {
@ -39,7 +39,7 @@ private:
AntialiasingSettingsView* fAntialiasingSettings; AntialiasingSettingsView* fAntialiasingSettings;
FontView* fFontSettings; FontView* fFontSettings;
DecorSettingsView* fDecorSettings; LookAndFeelSettingsView* fLookAndFeelSettings;
}; };

View File

@ -9,7 +9,7 @@ Includes [ FGristFiles AntialiasingSettingsView.cpp ]
Preference Appearance : Preference Appearance :
APRMain.cpp APRMain.cpp
AntialiasingSettingsView.cpp AntialiasingSettingsView.cpp
DecorSettingsView.cpp LookAndFeelSettingsView.cpp
FontSelectionView.cpp FontSelectionView.cpp
FontView.cpp FontView.cpp
APRView.cpp APRView.cpp
@ -40,7 +40,7 @@ DoCatalogs Appearance :
ColorSet.cpp ColorSet.cpp
ColorWell.cpp ColorWell.cpp
ColorWhichItem.cpp ColorWhichItem.cpp
DecorSettingsView.cpp LookAndFeelSettingsView.cpp
FontView.cpp FontView.cpp
FontSelectionView.cpp FontSelectionView.cpp
; ;

View File

@ -5,10 +5,11 @@
* Authors: * Authors:
* Alexander von Gluck, kallisti5@unixzen.com * Alexander von Gluck, kallisti5@unixzen.com
* Stephan Aßmus <superstippi@gmx.de> * Stephan Aßmus <superstippi@gmx.de>
* Ryan Leavengood <leavengood@gmail.com>
*/ */
#include "DecorSettingsView.h" #include "LookAndFeelSettingsView.h"
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
@ -17,8 +18,10 @@
#include <Box.h> #include <Box.h>
#include <Button.h> #include <Button.h>
#include <Catalog.h> #include <Catalog.h>
#include <CheckBox.h>
#include <GridLayoutBuilder.h> #include <GridLayoutBuilder.h>
#include <GroupLayoutBuilder.h> #include <GroupLayoutBuilder.h>
#include <InterfaceDefs.h>
#include <Locale.h> #include <Locale.h>
#include <MenuField.h> #include <MenuField.h>
#include <MenuItem.h> #include <MenuItem.h>
@ -32,18 +35,26 @@
#undef B_TRANSLATION_CONTEXT #undef B_TRANSLATION_CONTEXT
#define B_TRANSLATION_CONTEXT "DecorSettingsView" #define B_TRANSLATION_CONTEXT "DecorSettingsView"
// This was not renamed to keep from breaking translations
static const int32 kMsgSetDecor = 'deco'; static const int32 kMsgSetDecor = 'deco';
static const int32 kMsgDecorInfo = 'idec'; static const int32 kMsgDecorInfo = 'idec';
static const int32 kMsgDoubleScrollbarArrows = 'dsba';
static const bool kDefaultDoubleScrollbarArrowsSetting = false;
// #pragma mark - // #pragma mark -
DecorSettingsView::DecorSettingsView(const char* name) LookAndFeelSettingsView::LookAndFeelSettingsView(const char* name)
: :
BView(name, 0) BView(name, 0),
fDecorInfoButton(NULL),
fDecorMenuField(NULL),
fDecorMenu(NULL),
fDoubleScrollbarArrowsCheckBox(NULL)
{ {
// Decorator menu // Decorator menu
_BuildDecorMenu(); _BuildDecorMenu();
@ -53,6 +64,13 @@ DecorSettingsView::DecorSettingsView(const char* name)
fDecorInfoButton = new BButton(B_TRANSLATE("About"), fDecorInfoButton = new BButton(B_TRANSLATE("About"),
new BMessage(kMsgDecorInfo)); new BMessage(kMsgDecorInfo));
fDoubleScrollbarArrowsCheckBox = new BCheckBox("doubleScrollbarArrows",
B_TRANSLATE("Use double scrollbar arrows"),
new BMessage(kMsgDoubleScrollbarArrows));
fSavedDoubleArrowsValue = _GetDoubleScrollbarArrowsSetting();
fDoubleScrollbarArrowsCheckBox->SetValue(fSavedDoubleArrowsValue);
SetLayout(new BGroupLayout(B_VERTICAL)); SetLayout(new BGroupLayout(B_VERTICAL));
// control layout // control layout
@ -61,20 +79,21 @@ DecorSettingsView::DecorSettingsView(const char* name)
.Add(fDecorMenuField->CreateMenuBarLayoutItem(), 1, 0) .Add(fDecorMenuField->CreateMenuBarLayoutItem(), 1, 0)
.Add(fDecorInfoButton, 2, 0) .Add(fDecorInfoButton, 2, 0)
.Add(BSpaceLayoutItem::CreateGlue(), 0, 3, 2) .Add(fDoubleScrollbarArrowsCheckBox, 0, 3, 2)
.Add(BSpaceLayoutItem::CreateGlue(), 0, 4, 2)
.SetInsets(10, 10, 10, 10) .SetInsets(10, 10, 10, 10)
); );
// TODO : Decorator Preview Image? // TODO : Decorator Preview Image?
} }
DecorSettingsView::~DecorSettingsView() LookAndFeelSettingsView::~LookAndFeelSettingsView()
{ {
} }
void void
DecorSettingsView::AttachedToWindow() LookAndFeelSettingsView::AttachedToWindow()
{ {
if (Parent() != NULL) if (Parent() != NULL)
SetViewColor(Parent()->ViewColor()); SetViewColor(Parent()->ViewColor());
@ -83,11 +102,12 @@ DecorSettingsView::AttachedToWindow()
fDecorMenu->SetTargetForItems(this); fDecorMenu->SetTargetForItems(this);
fDecorInfoButton->SetTarget(this); fDecorInfoButton->SetTarget(this);
fDoubleScrollbarArrowsCheckBox->SetTarget(this);
} }
void void
DecorSettingsView::MessageReceived(BMessage *msg) LookAndFeelSettingsView::MessageReceived(BMessage *msg)
{ {
switch (msg->what) { switch (msg->what) {
case kMsgSetDecor: case kMsgSetDecor:
@ -125,6 +145,9 @@ DecorSettingsView::MessageReceived(BMessage *msg)
break; break;
} }
case kMsgDoubleScrollbarArrows:
_SetDoubleScrollbarArrowsSetting(fDoubleScrollbarArrowsCheckBox->Value());
break;
default: default:
BView::MessageReceived(msg); BView::MessageReceived(msg);
@ -134,7 +157,7 @@ DecorSettingsView::MessageReceived(BMessage *msg)
void void
DecorSettingsView::_BuildDecorMenu() LookAndFeelSettingsView::_BuildDecorMenu()
{ {
fDecorMenu = new BPopUpMenu(B_TRANSLATE("Choose Decorator")); fDecorMenu = new BPopUpMenu(B_TRANSLATE("Choose Decorator"));
@ -163,14 +186,14 @@ DecorSettingsView::_BuildDecorMenu()
void void
DecorSettingsView::_SetDecor(const BString& name) LookAndFeelSettingsView::_SetDecor(const BString& name)
{ {
_SetDecor(fDecorUtility.FindDecorator(name)); _SetDecor(fDecorUtility.FindDecorator(name));
} }
void void
DecorSettingsView::_SetDecor(DecorInfo* decorInfo) LookAndFeelSettingsView::_SetDecor(DecorInfo* decorInfo)
{ {
if (fDecorUtility.SetDecorator(decorInfo) == B_OK) { if (fDecorUtility.SetDecorator(decorInfo) == B_OK) {
_AdoptToCurrentDecor(); _AdoptToCurrentDecor();
@ -180,7 +203,7 @@ DecorSettingsView::_SetDecor(DecorInfo* decorInfo)
void void
DecorSettingsView::_AdoptToCurrentDecor() LookAndFeelSettingsView::_AdoptToCurrentDecor()
{ {
fCurrentDecor = fDecorUtility.CurrentDecorator()->Name(); fCurrentDecor = fDecorUtility.CurrentDecorator()->Name();
if (fSavedDecor.Length() == 0) if (fSavedDecor.Length() == 0)
@ -189,7 +212,7 @@ DecorSettingsView::_AdoptToCurrentDecor()
} }
void void
DecorSettingsView::_AdoptInterfaceToCurrentDecor() LookAndFeelSettingsView::_AdoptInterfaceToCurrentDecor()
{ {
BMenuItem* item = fDecorMenu->FindItem(fCurrentDecor); BMenuItem* item = fDecorMenu->FindItem(fCurrentDecor);
if (item != NULL) if (item != NULL)
@ -197,29 +220,60 @@ DecorSettingsView::_AdoptInterfaceToCurrentDecor()
} }
bool
LookAndFeelSettingsView::_GetDoubleScrollbarArrowsSetting()
{
scroll_bar_info info;
get_scroll_bar_info(&info);
return info.double_arrows;
}
void void
DecorSettingsView::SetDefaults() LookAndFeelSettingsView::_SetDoubleScrollbarArrowsSetting(bool value)
{
scroll_bar_info info;
get_scroll_bar_info(&info);
info.double_arrows = value;
set_scroll_bar_info(&info);
Window()->PostMessage(kMsgUpdate);
}
void
LookAndFeelSettingsView::SetDefaults()
{ {
_SetDecor(fDecorUtility.DefaultDecorator()); _SetDecor(fDecorUtility.DefaultDecorator());
_SetDoubleScrollbarArrowsSetting(kDefaultDoubleScrollbarArrowsSetting);
fDoubleScrollbarArrowsCheckBox->SetValue(
kDefaultDoubleScrollbarArrowsSetting);
} }
bool bool
DecorSettingsView::IsDefaultable() LookAndFeelSettingsView::IsDefaultable()
{ {
return fCurrentDecor != fDecorUtility.DefaultDecorator()->Name(); return fCurrentDecor != fDecorUtility.DefaultDecorator()->Name() ||
fDoubleScrollbarArrowsCheckBox->Value() !=
kDefaultDoubleScrollbarArrowsSetting;
} }
bool bool
DecorSettingsView::IsRevertable() LookAndFeelSettingsView::IsRevertable()
{ {
return fCurrentDecor != fSavedDecor; return fCurrentDecor != fSavedDecor ||
fDoubleScrollbarArrowsCheckBox->Value() != fSavedDoubleArrowsValue;
} }
void void
DecorSettingsView::Revert() LookAndFeelSettingsView::Revert()
{ {
_SetDecor(fSavedDecor); _SetDecor(fSavedDecor);
_SetDoubleScrollbarArrowsSetting(fSavedDoubleArrowsValue);
fDoubleScrollbarArrowsCheckBox->SetValue(fSavedDoubleArrowsValue);
} }

View File

@ -5,9 +5,10 @@
* Authors: * Authors:
* Alexander von Gluck, kallisti5@unixzen.com * Alexander von Gluck, kallisti5@unixzen.com
* Stephan Aßmus <superstippi@gmx.de> * Stephan Aßmus <superstippi@gmx.de>
* Ryan Leavengood <leavengood@gmail.com>
*/ */
#ifndef DECOR_SETTINGS_VIEW_H #ifndef LOOK_AND_FEEL_SETTINGS_VIEW_H
#define DECOR_SETTINGS_VIEW_H #define LOOK_AND_FEEL_SETTINGS_VIEW_H
#include <DecorInfo.h> #include <DecorInfo.h>
@ -16,14 +17,15 @@
class BButton; class BButton;
class BCheckBox;
class BMenuField; class BMenuField;
class BPopUpMenu; class BPopUpMenu;
class DecorSettingsView : public BView { class LookAndFeelSettingsView : public BView {
public: public:
DecorSettingsView(const char* name); LookAndFeelSettingsView(const char* name);
virtual ~DecorSettingsView(); virtual ~LookAndFeelSettingsView();
virtual void AttachedToWindow(); virtual void AttachedToWindow();
virtual void MessageReceived(BMessage* message); virtual void MessageReceived(BMessage* message);
@ -40,6 +42,8 @@ private:
void _BuildDecorMenu(); void _BuildDecorMenu();
void _AdoptToCurrentDecor(); void _AdoptToCurrentDecor();
void _AdoptInterfaceToCurrentDecor(); void _AdoptInterfaceToCurrentDecor();
bool _GetDoubleScrollbarArrowsSetting();
void _SetDoubleScrollbarArrowsSetting(bool value);
private: private:
DecorInfoUtility fDecorUtility; DecorInfoUtility fDecorUtility;
@ -47,9 +51,11 @@ private:
BButton* fDecorInfoButton; BButton* fDecorInfoButton;
BMenuField* fDecorMenuField; BMenuField* fDecorMenuField;
BPopUpMenu* fDecorMenu; BPopUpMenu* fDecorMenu;
BCheckBox* fDoubleScrollbarArrowsCheckBox;
BString fSavedDecor; BString fSavedDecor;
BString fCurrentDecor; BString fCurrentDecor;
bool fSavedDoubleArrowsValue;
}; };
#endif // DECOR_SETTINGS_VIEW_H #endif // LOOK_AND_FEEL_SETTINGS_VIEW_H

View File

@ -57,7 +57,7 @@ DesktopSettingsPrivate::_SetDefaults()
// init scrollbar info // init scrollbar info
fScrollBarInfo.proportional = true; fScrollBarInfo.proportional = true;
fScrollBarInfo.double_arrows = true; fScrollBarInfo.double_arrows = false;
fScrollBarInfo.knob = 1; fScrollBarInfo.knob = 1;
// look of the knob (R5: (0, 1, 2), 1 = default) // look of the knob (R5: (0, 1, 2), 1 = default)
fScrollBarInfo.min_knob_size = 15; fScrollBarInfo.min_knob_size = 15;

View File

@ -3046,9 +3046,11 @@ cache_abort_sub_transaction(void* _cache, int32 id)
// The parent transaction didn't change the block, but the sub // The parent transaction didn't change the block, but the sub
// transaction did - we need to revert to the original data. // transaction did - we need to revert to the original data.
// The block is no longer part of the transaction // The block is no longer part of the transaction
ASSERT(block->original_data != NULL); if (block->original_data != NULL) {
// The block might not have original data if was empty
memcpy(block->current_data, block->original_data, memcpy(block->current_data, block->original_data,
cache->block_size); cache->block_size);
}
if (last != NULL) if (last != NULL)
last->transaction_next = next; last->transaction_next = next;

View File

@ -3,6 +3,8 @@ SubDir HAIKU_TOP src system kernel vm ;
UsePrivateHeaders shared ; UsePrivateHeaders shared ;
UseHeaders [ FDirName $(SUBDIR) $(DOTDOT) device_manager ] ; UseHeaders [ FDirName $(SUBDIR) $(DOTDOT) device_manager ] ;
UsePrivateHeaders [ FDirName kernel disk_device_manager ] ;
UsePrivateHeaders [ FDirName kernel util ] ;
KernelMergeObject kernel_vm.o : KernelMergeObject kernel_vm.o :
PageCacheLocker.cpp PageCacheLocker.cpp

View File

@ -1,4 +1,6 @@
/* /*
* Copyright 2012, Alexander von Gluck IV, kallisti5@unixzen.com.
* Copyright 2011, Hamish Morrison, hamish@lavabit.com.
* Copyright 2008, Zhao Shuai, upczhsh@163.com. * Copyright 2008, Zhao Shuai, upczhsh@163.com.
* Copyright 2008-2011, Ingo Weinhold, ingo_weinhold@gmx.de. * Copyright 2008-2011, Ingo Weinhold, ingo_weinhold@gmx.de.
* Copyright 2002-2009, Axel Dörfler, axeld@pinc-software.de. * Copyright 2002-2009, Axel Dörfler, axeld@pinc-software.de.
@ -17,13 +19,20 @@
#include <string.h> #include <string.h>
#include <unistd.h> #include <unistd.h>
#include <FindDirectory.h>
#include <KernelExport.h> #include <KernelExport.h>
#include <NodeMonitor.h> #include <NodeMonitor.h>
#include <arch_config.h> #include <arch_config.h>
#include <boot_device.h> #include <boot_device.h>
#include <disk_device_manager/KDiskDevice.h>
#include <disk_device_manager/KDiskDeviceManager.h>
#include <disk_device_manager/KDiskSystem.h>
#include <disk_device_manager/KPartitionVisitor.h>
#include <driver_settings.h> #include <driver_settings.h>
#include <fs/fd.h> #include <fs/fd.h>
#include <fs/KPath.h>
#include <fs_info.h>
#include <fs_interface.h> #include <fs_interface.h>
#include <heap.h> #include <heap.h>
#include <kernel_daemon.h> #include <kernel_daemon.h>
@ -69,6 +78,8 @@
#define SWAP_BLOCK_MASK (SWAP_BLOCK_PAGES - 1) #define SWAP_BLOCK_MASK (SWAP_BLOCK_PAGES - 1)
static const char* const kDefaultSwapPath = "/var/swap";
struct swap_file : DoublyLinkedListLinkImpl<swap_file> { struct swap_file : DoublyLinkedListLinkImpl<swap_file> {
int fd; int fd;
struct vnode* vnode; struct vnode* vnode;
@ -284,8 +295,9 @@ swap_slot_alloc(uint32 count)
// if this swap file has used more than 90% percent of its space // if this swap file has used more than 90% percent of its space
// switch to another // switch to another
if (sSwapFileAlloc->bmp->free_slots if (sSwapFileAlloc->bmp->free_slots
< (sSwapFileAlloc->last_slot - sSwapFileAlloc->first_slot) / 10) < (sSwapFileAlloc->last_slot - sSwapFileAlloc->first_slot) / 10) {
sSwapFileAlloc = sSwapFileList.GetNext(sSwapFileAlloc); sSwapFileAlloc = sSwapFileList.GetNext(sSwapFileAlloc);
}
mutex_unlock(&sSwapFileListLock); mutex_unlock(&sSwapFileListLock);
@ -299,9 +311,10 @@ find_swap_file(swap_addr_t slotIndex)
for (SwapFileList::Iterator it = sSwapFileList.GetIterator(); for (SwapFileList::Iterator it = sSwapFileList.GetIterator();
swap_file* swapFile = it.Next();) { swap_file* swapFile = it.Next();) {
if (slotIndex >= swapFile->first_slot if (slotIndex >= swapFile->first_slot
&& slotIndex < swapFile->last_slot) && slotIndex < swapFile->last_slot) {
return swapFile; return swapFile;
} }
}
panic("find_swap_file(): can't find swap file for slot %ld\n", slotIndex); panic("find_swap_file(): can't find swap file for slot %ld\n", slotIndex);
return NULL; return NULL;
@ -474,8 +487,8 @@ VMAnonymousCache::Resize(off_t newSize, int priority)
swap_block* swapBlock = NULL; swap_block* swapBlock = NULL;
for (page_num_t pageIndex = (newSize + B_PAGE_SIZE - 1) >> PAGE_SHIFT; for (page_num_t pageIndex = (newSize + B_PAGE_SIZE - 1) >> PAGE_SHIFT;
pageIndex < oldPageCount && fAllocatedSwapSize > 0; pageIndex < oldPageCount && fAllocatedSwapSize > 0; pageIndex++) {
pageIndex++) {
WriteLocker locker(sSwapHashLock); WriteLocker locker(sSwapHashLock);
// Get the swap slot index for the page. // Get the swap slot index for the page.
@ -731,8 +744,8 @@ VMAnonymousCache::WriteAsync(off_t offset, const generic_io_vec* vecs,
_callback->IOFinished(B_NO_MEMORY, true, 0); _callback->IOFinished(B_NO_MEMORY, true, 0);
return B_NO_MEMORY; return B_NO_MEMORY;
} }
// TODO: If the page already had swap space assigned, we don't need an own // TODO: If the page already had swap space assigned, we don't need an own
// callback. // callback.
callback->SetTo(pageIndex, slotIndex, newSlot); callback->SetTo(pageIndex, slotIndex, newSlot);
@ -1165,6 +1178,93 @@ VMAnonymousCache::_MergeSwapPages(VMAnonymousCache* source)
// #pragma mark - // #pragma mark -
// TODO: This can be removed if we get BFS uuid's
struct VolumeInfo {
char name[B_FILE_NAME_LENGTH];
char device[B_FILE_NAME_LENGTH];
char filesystem[B_OS_NAME_LENGTH];
off_t capacity;
};
class PartitionScorer : public KPartitionVisitor {
public:
PartitionScorer(VolumeInfo& volumeInfo)
:
fBestPartition(NULL),
fBestScore(-1),
fVolumeInfo(volumeInfo)
{
}
virtual bool VisitPre(KPartition* partition)
{
if (!partition->ContainsFileSystem())
return false;
KPath path;
partition->GetPath(&path);
int score = 0;
if (strcmp(fVolumeInfo.name, partition->ContentName()) == 0)
score += 4;
if (strcmp(fVolumeInfo.device, path.Path()) == 0)
score += 3;
if (fVolumeInfo.capacity == partition->Size())
score += 2;
if (strcmp(fVolumeInfo.filesystem,
partition->DiskSystem()->ShortName()) == 0) {
score += 1;
}
if (score >= 4 && score > fBestScore) {
fBestPartition = partition;
fBestScore = score;
}
return false;
}
KPartition* fBestPartition;
private:
int32 fBestScore;
VolumeInfo fVolumeInfo;
};
status_t
get_mount_point(KPartition* partition, KPath* mountPoint)
{
if (!mountPoint || !partition->ContainsFileSystem())
return B_BAD_VALUE;
const char* volumeName = partition->ContentName();
if (!volumeName || strlen(volumeName) == 0)
volumeName = partition->Name();
if (!volumeName || strlen(volumeName) == 0)
volumeName = "unnamed volume";
char basePath[B_PATH_NAME_LENGTH];
int32 len = snprintf(basePath, sizeof(basePath), "/%s", volumeName);
for (int32 i = 1; i < len; i++)
if (basePath[i] == '/')
basePath[i] = '-';
char* path = mountPoint->LockBuffer();
int32 pathLen = mountPoint->BufferSize();
strncpy(path, basePath, pathLen);
struct stat dummy;
for (int i = 1; ; i++) {
if (stat(path, &dummy) != 0)
break;
snprintf(path, pathLen, "%s%d", basePath, i);
}
mountPoint->UnlockBuffer();
return B_OK;
}
status_t status_t
swap_file_add(const char* path) swap_file_add(const char* path)
{ {
@ -1291,8 +1391,8 @@ void
swap_init(void) swap_init(void)
{ {
// create swap block cache // create swap block cache
sSwapBlockCache = create_object_cache("swapblock", sSwapBlockCache = create_object_cache("swapblock", sizeof(swap_block),
sizeof(swap_block), sizeof(void*), NULL, NULL, NULL); sizeof(void*), NULL, NULL, NULL);
if (sSwapBlockCache == NULL) if (sSwapBlockCache == NULL)
panic("swap_init(): can't create object cache for swap blocks\n"); panic("swap_init(): can't create object cache for swap blocks\n");
@ -1338,46 +1438,166 @@ swap_init_post_modules()
if (gReadOnlyBootDevice) if (gReadOnlyBootDevice)
return; return;
off_t size = 0; bool swapEnabled = true;
bool swapAutomatic = true;
off_t swapSize = 0;
dev_t swapDeviceID = -1;
VolumeInfo selectedVolume = {};
void* settings = load_driver_settings("virtual_memory"); void* settings = load_driver_settings("virtual_memory");
if (settings != NULL) { if (settings != NULL) {
if (!get_driver_boolean_parameter(settings, "vm", false, false)) { // We pass a lot of information on the swap device, this is mostly to
// ensure that we are dealing with the same device that was configured.
// TODO: Some kind of BFS uuid would be great here :)
const char* enabled = get_driver_parameter(settings, "vm", NULL, NULL);
if (enabled != NULL) {
swapEnabled = get_driver_boolean_parameter(settings, "vm",
false, false);
const char* size = get_driver_parameter(settings, "swap_size",
NULL, NULL);
const char* volume = get_driver_parameter(settings,
"swap_volume_name", NULL, NULL);
const char* device = get_driver_parameter(settings,
"swap_volume_device", NULL, NULL);
const char* filesystem = get_driver_parameter(settings,
"swap_volume_filesystem", NULL, NULL);
const char* capacity = get_driver_parameter(settings,
"swap_volume_capacity", NULL, NULL);
if (size != NULL && device != NULL && volume != NULL
&& filesystem != NULL && capacity != NULL) {
// User specified a size / volume
swapAutomatic = false;
swapSize = atoll(size);
strncpy(selectedVolume.name, volume,
sizeof(selectedVolume.name));
strncpy(selectedVolume.device, device,
sizeof(selectedVolume.device));
strncpy(selectedVolume.filesystem, filesystem,
sizeof(selectedVolume.filesystem));
selectedVolume.capacity = atoll(capacity);
} else if (size != NULL) {
// Older file format, no location information (assume /var/swap)
swapAutomatic = false;
swapSize = atoll(size);
swapDeviceID = gBootDevice;
}
}
unload_driver_settings(settings); unload_driver_settings(settings);
return;
} }
const char* string = get_driver_parameter(settings, "swap_size", NULL, if (swapAutomatic) {
NULL); swapEnabled = true;
size = string ? atoll(string) : 0; swapSize = (off_t)vm_page_num_pages() * B_PAGE_SIZE;
if (swapSize <= (1024 * 1024 * 1024)) {
// Memory under 1GB? double the swap
swapSize *= 2;
}
}
unload_driver_settings(settings); if (!swapEnabled || swapSize < B_PAGE_SIZE)
} else
size = (off_t)vm_page_num_pages() * B_PAGE_SIZE * 2;
if (size < B_PAGE_SIZE)
return; return;
int fd = open("/var/swap", O_RDWR | O_CREAT | O_NOCACHE, S_IRUSR | S_IWUSR); if (!swapAutomatic && swapDeviceID < 0) {
// If user-specified swap, and no swap device has been chosen yet...
KDiskDeviceManager::CreateDefault();
KDiskDeviceManager* manager = KDiskDeviceManager::Default();
PartitionScorer visitor(selectedVolume);
KDiskDevice* device;
int32 cookie = 0;
while ((device = manager->NextDevice(&cookie)) != NULL) {
if (device->IsReadOnlyMedia() || device->IsWriteOnce()
|| device->IsRemovable()) {
continue;
}
device->VisitEachDescendant(&visitor);
}
if (!visitor.fBestPartition) {
dprintf("%s: Can't find configured swap partition '%s'\n",
__func__, selectedVolume.name);
} else {
if (visitor.fBestPartition->IsMounted())
swapDeviceID = visitor.fBestPartition->VolumeID();
else {
KPath devPath, mountPoint;
visitor.fBestPartition->GetPath(&devPath);
get_mount_point(visitor.fBestPartition, &mountPoint);
const char* mountPath = mountPoint.Path();
mkdir(mountPath, S_IRWXU | S_IRWXG | S_IRWXO);
swapDeviceID = _kern_mount(mountPath, devPath.Path(),
NULL, 0, NULL, 0);
if (swapDeviceID < 0) {
dprintf("%s: Can't mount configured swap partition '%s'\n",
__func__, selectedVolume.name);
}
}
}
}
if (swapDeviceID < 0)
swapDeviceID = gBootDevice;
// We now have a swapDeviceID which is used for the swap file
KPath path;
struct fs_info info;
_kern_read_fs_info(swapDeviceID, &info);
if (swapDeviceID == gBootDevice)
path = kDefaultSwapPath;
else {
vfs_entry_ref_to_path(info.dev, info.root,
".", path.LockBuffer(), path.BufferSize());
path.UnlockBuffer();
path.Append("swap");
}
const char* swapPath = path.Path();
// Swap size limits prevent oversized swap files
if (swapAutomatic) {
off_t existingSwapSize = 0;
struct stat existingSwapStat;
if (stat(swapPath, &existingSwapStat) == 0)
existingSwapSize = existingSwapStat.st_size;
off_t freeSpace = info.free_blocks * info.block_size + existingSwapSize;
// Adjust automatic swap to a maximum of 25% of the free space
if (swapSize > (freeSpace / 4))
swapSize = (freeSpace / 4);
}
// Create swap file
int fd = open(swapPath, O_RDWR | O_CREAT | O_NOCACHE, S_IRUSR | S_IWUSR);
if (fd < 0) { if (fd < 0) {
dprintf("Can't open/create /var/swap: %s\n", strerror(errno)); dprintf("%s: Can't open/create %s: %s\n", __func__,
swapPath, strerror(errno));
return; return;
} }
struct stat stat; struct stat stat;
stat.st_size = size; stat.st_size = swapSize;
status_t error = _kern_write_stat(fd, NULL, false, &stat, status_t error = _kern_write_stat(fd, NULL, false, &stat,
sizeof(struct stat), B_STAT_SIZE | B_STAT_SIZE_INSECURE); sizeof(struct stat), B_STAT_SIZE | B_STAT_SIZE_INSECURE);
if (error != B_OK) { if (error != B_OK) {
dprintf("Failed to resize /var/swap to %lld bytes: %s\n", size, dprintf("%s: Failed to resize %s to %lld bytes: %s\n", __func__,
strerror(error)); swapPath, swapSize, strerror(error));
} }
close(fd); close(fd);
error = swap_file_add("/var/swap"); error = swap_file_add(swapPath);
if (error != B_OK) if (error != B_OK) {
dprintf("Failed to add swap file /var/swap: %s\n", strerror(error)); dprintf("%s: Failed to add swap file %s: %s\n", __func__, swapPath,
strerror(error));
}
} }
@ -1419,16 +1639,19 @@ swap_total_swap_pages()
uint32 totalSwapSlots = 0; uint32 totalSwapSlots = 0;
for (SwapFileList::Iterator it = sSwapFileList.GetIterator(); for (SwapFileList::Iterator it = sSwapFileList.GetIterator();
swap_file* swapFile = it.Next();) swap_file* swapFile = it.Next();) {
totalSwapSlots += swapFile->last_slot - swapFile->first_slot; totalSwapSlots += swapFile->last_slot - swapFile->first_slot;
}
mutex_unlock(&sSwapFileListLock); mutex_unlock(&sSwapFileListLock);
return totalSwapSlots; return totalSwapSlots;
} }
#endif // ENABLE_SWAP_SUPPORT #endif // ENABLE_SWAP_SUPPORT
void void
swap_get_info(struct system_memory_info* info) swap_get_info(struct system_memory_info* info)
{ {

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2008, Axel Dörfler, axeld@pinc-software.de. * Copyright 2008-2012, Axel Dörfler, axeld@pinc-software.de.
* Distributed under the terms of the MIT License. * Distributed under the terms of the MIT License.
*/ */
@ -400,6 +400,45 @@ test_abort_sub_transaction()
cache_end_transaction(gCache, id, NULL, NULL); cache_end_transaction(gCache, id, NULL, NULL);
cache_sync_transaction(gCache, id); cache_sync_transaction(gCache, id);
start_test("Abort sub with empty block");
id = cache_start_transaction(gCache);
gBlocks[1].present = true;
gBlocks[1].read = true;
block = block_cache_get_writable(gCache, 1, id);
or_block(block, BLOCK_CHANGED_IN_PREVIOUS);
gBlocks[1].original = gBlocks[1].current;
gBlocks[1].current |= BLOCK_CHANGED_IN_PREVIOUS;
block_cache_put(gCache, 1);
gBlocks[1].is_dirty = true;
TEST_BLOCKS(1, 1);
cache_start_sub_transaction(gCache, id);
gBlocks[0].present = true;
block = block_cache_get_empty(gCache, 0, id);
or_block(block, BLOCK_CHANGED_IN_SUB);
gBlocks[0].current = BLOCK_CHANGED_IN_SUB;
block_cache_put(gCache, 0);
cache_abort_sub_transaction(gCache, id);
gBlocks[0].write = false;
gBlocks[0].is_dirty = false;
gBlocks[0].parent = 0;
gBlocks[0].original = 0;
TEST_BLOCKS(0, 1);
gBlocks[1].write = true;
gBlocks[1].is_dirty = false;
cache_end_transaction(gCache, id, NULL, NULL);
cache_sync_transaction(gCache, id);
} }