1ac6fe05ad91cfcb47f4c884b231154c7489258e
[vuplus_openembedded] / conf / distro / include / slugos.inc
1 #@TYPE: Distribution
2 #@NAME: SlugOS
3 #@DESCRIPTION: SlugOS Linux Distribution for the NSLU2
4
5 # WARNING: this file should not be used directly, use one of
6 # the supported slugos-derived distributions instead.
7
8 #===============================================================================#
9 #===============================================================================#
10 #===============================================================================#
11 #                              NOTE NOTE NOTE
12 #
13 # This *forces* the preferred kernel version; making it unable to be overridden
14 # in the local.conf file.  This is a Very Bad Thing.  This is temporary, and
15 # is intended to facilitate some SlugOS-specific testing without disturbing
16 # other distros that use the ixp4xx machine type (which is currently where the
17 # preferred kernel version is set).
18 #
19 # This *must* be removed after initial testing is completed.  MJW 08-Dec-2008
20 #
21 PREFERRED_VERSION_linux-ixp4xx = "2.6.27.8+svnr${SRCREV}"
22 #
23 #===============================================================================#
24 #===============================================================================#
25 #===============================================================================#
26
27
28
29 #===============================================================================#
30 #===============================================================================#
31 #===============================================================================#
32 #                              NOTE NOTE NOTE
33 #
34 # Override the sane-srcrev file with regard to the opkg versions - this should
35 # be removed as soon as opkg starts to work correctly again as newer opkg
36 # versions fix a number of bugs and add some desireable features.
37 #
38 SRCREV_pn-opkg        = "160"
39 SRCREV_pn-opkg-native = "160"
40 SRCREV_pn-opkg-sdk    = "160"
41 #
42 #===============================================================================#
43 #===============================================================================#
44 #===============================================================================#
45
46
47 #----------------------------------------------------------------------------------
48 # STANDARD SLUGOS DEFINITIONS
49 #----------------------------------------------------------------------------------
50 # The following must be set in the top level distro file:
51 #
52 #DISTRO_NAME
53 #DISTRO_TYPE
54 #ARM_INSTRUCTION_SET "arm" or "thumb"
55 #TARGET_OS "linux" or "linux-uclibc"
56
57 # The following may be overridden to make sub-versions
58 SLUGOS_VERSION = "5.2"
59 DISTRO_REVISION ?= ""
60 DISTRO_VERSION ?= "${SLUGOS_VERSION}${DISTRO_REVISION}-${DISTRO_TYPE}"
61 # For release (only):
62 # DISTRO_FEED ?= "${SLUGOS_VERSION}-${DISTRO_TYPE}"
63 DISTRO_FEED ?= "unstable"
64
65 # We want images supporting the following features (for task-base)
66 DISTRO_FEATURES = "nfs smbfs wifi ppp alsa bluetooth ext2 vfat irda pcmcia usbgadget usbhost pci"
67
68 IMAGE_BASENAME = "${@['slugos${SITEINFO_ENDIANESS}', 'ucslugc'][bb.data.getVar('TARGET_OS', d, 1) == 'linux-uclibc']}"
69
70 # The following need not be set, the defaults should be adequate
71 #USE_NLS = "no" or "yes"
72 USE_NLS ?= "no"
73
74 # To make errors easier to identify:
75 DISTRO_NAME ?= "INVALID-${SITEINFO_ENDIANESS}-${ARM_INSTRUCTION_SET}-${TARGET_OS}"
76 DISTRO_TYPE ?= "INVALID"
77
78 # The following must not be changed.
79 TARGET_FPU = "soft"
80
81 # glib-2.0 builds require USE_NLS to be overridden
82 USE_NLS_glib-2.0 = "yes"
83 USE_NLS_glib-2.0-native = "yes"
84 USE_NLS_gcc-cross = "no"
85
86 INHERIT += "package_ipk debian testlab packaged-staging"
87
88 # FULL_OPTIMIZATION
89 #    Optimization settings.  Os works fine and is significantly better than O2.
90 FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -Os"
91
92 # We need to keep OABI compat for things like madwifi-ng.
93 ARM_KEEP_OABI = "1"
94
95 # We may wish to experiment with this as a further performance improvement, but
96 # small steps at a time are the best strategy.
97 #TARGET_LINK_HASH_STYLE = "-Wl,--hash-style=gnu"
98
99 CXXFLAGS += "-fvisibility-inlines-hidden"
100
101 # There is a problem of sorts with Perl.  This needs a better home eventually,
102 # but for now put it in this file.
103 FULL_OPTIMIZATION_pn-perl = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O1"
104 BUILD_OPTIMIZATION_pn-perl = "-O1"
105
106 #----------------------------------------------------------------------------------
107 # FEEDS
108 #  The FEED_URIS lines define where on the internet SlugOS looks for packages
109 #  when downloading new packages or updating existing packages.  Additional feeds
110 #  (such as a local feed) can be defined in local.conf
111 #----------------------------------------------------------------------------------
112 #
113 FEED_URIS_append += "cross##http://ipkg.nslu2-linux.org/feeds/${IMAGE_BASENAME}/cross/${DISTRO_FEED}"
114 FEED_URIS_append += "native##http://ipkg.nslu2-linux.org/feeds/${IMAGE_BASENAME}/native/${DISTRO_FEED}"
115
116 #----------------------------------------------------------------------------------
117 # FIRMWARE CONFIGURATION
118 #----------------------------------------------------------------------------------
119 # IMAGE BUILD OPTIONS
120 # -------------------
121 # CMDLINE* macros define the kernel command line.  CMDLINE_DEBUG is provided
122 # to enable/disable debugging in the distro.  Here noirqdebug is used to
123 # remove the messages about unhandled interrupts - people debugging interrupt
124 # issues in the kernel need to cancel this (set CMDLINE_DEBUG empty in local.conf)
125 CMDLINE_ROOT  = "root=/dev/mtdblock4 rootfstype=jffs2 rw init=/linuxrc"
126 CMDLINE_DEBUG = "noirqdebug"
127
128 # EXTRA PACKAGES
129 # --------------
130 # SlugOS builds an image with no extra packages - to add packages to the
131 # firmware include this file in a new 'distro' configuration file) and set
132 # the definition below to include the requirements.
133 # NOTE: as built this system will *not* be able to boot off anything other than
134 # the flash file system ('turnup' will not work).  You need to add the filesystem
135 # modules for your chosen root file system (and any others which will be used).
136 # See openslug.conf for a more full-featured system!
137 #
138 # Everything in this list gets added to the flash image, along with any RDEPENDS
139 # it has itself!
140 DISTRO_EXTRA_DEPENDS ?= ""
141 DISTRO_EXTRA_RDEPENDS ?= ""
142 DISTRO_EXTRA_RRECOMMENDS ?= ""
143
144 #----------------------------------------------------------------------------------
145 # PACKAGE VERSION CONTROL
146 #----------------------------------------------------------------------------------
147 # Define how to bootstrap the system - we need cross compilers.  It is also
148 # necessary to define which gets generated first, glibc or the kernel, and
149 # this is done by selecting the provider of libc (in this case it needs the
150 # kernel, so there has to be a non-libc gcc to build the kernel!)
151
152 # Virtuals:
153 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-initial = "gcc-cross-initial"
154 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-intermediate = "gcc-cross-intermediate"
155 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc = "gcc-cross"
156 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++ = "gcc-cross"
157
158 #Set preferred provider for the C library that is used to build the crosscompiler (NPTL voodoo)
159 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc"
160 PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc       = "glibc"
161 PREFERRED_PROVIDER_virtual/armeb-linux-libc-for-gcc     = "glibc"
162 PREFERRED_PROVIDER_virtual/arm-linux-gnueabi-libc-for-gcc    = "glibc"
163 PREFERRED_PROVIDER_virtual/armeb-linux-gnueabi-libc-for-gcc  = "glibc"
164
165 # Set the preferred provider for a few toolchain-related items, otherwise
166 # these may be selected from the external-toolchain instead.
167 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils = "binutils-cross"
168 PREFERRED_PROVIDER_virtual/arm-linux-binutils       = "binutils-cross"
169 PREFERRED_PROVIDER_virtual/armeb-linux-binutils     = "binutils-cross"
170 PREFERRED_PROVIDER_linux-libc-headers               = "linux-libc-headers"
171
172 # compiler/binary/library versions
173 PREFERRED_VERSION_binutils               ?= "2.18.50.0.7"
174 PREFERRED_VERSION_binutils-cross         ?= "2.18.50.0.7"
175 PREFERRED_VERSION_binutils-cross-sdk     ?= "2.18.50.0.7"
176 PREFERRED_VERSION_gcc                    ?= "4.2.4"
177 PREFERRED_VERSION_gcc-cross              ?= "4.2.4"
178 PREFERRED_VERSION_gcc-cross-sdk          ?= "4.2.4"
179 PREFERRED_VERSION_gcc-cross-initial      ?= "4.2.4"
180 PREFERRED_VERSION_gcc-cross-intermediate ?= "4.2.4"
181 PREFERRED_VERSION_glibc                  ?= "2.6.1"
182 PREFERRED_VERSION_glibc-initial          ?= "2.6.1"
183
184 # Select the smallest provider of x11 libraries
185 PREFERRED_PROVIDER_virtual/libx11 ?= "diet-x11"
186 SRCDATE_diet-x11 ?= "20060106"
187
188 # Ensure consistency across all SlugOS builds for the provider of a
189 # relational database - use the latest version of the SleepyCat
190 # Berkeley database
191 PREFERRED_PROVIDER_virtual/db = "db"
192 PREFERRED_PROVIDER_virtual/db-native = "db-native"
193
194 SRCDATE_ipkg-utils ?= "20060106"
195 SRCDATE_ipkg-utils-native ?= "20060106"
196 SRCDATE_ipkg-link ?= "20060106"
197 SRCDATE_irssi ?= "20050930"
198
199 CVS_TARBALL_STASH = "http://sources.nslu2-linux.org/sources/"
200 INHERIT += "nslu2-mirrors"
201
202 PREFERRED_VERSION_nslu2-linksys-firmware ?= "2.3r63"
203
204 PREFERRED_VERSION_ipkg ?= "0.99.163"
205 PREFERRED_VERSION_ipkg-native ?= "0.99.163"
206
207 #FIXME: HACK: REMOVE THIS
208 IGNORE_STRIP_ERRORS = ""
209
210 PREFERRED_VERSION_linux-libc-headers ?= "2.6.23"
211
212 # New pango and older glib-2.0 versions don't mix,
213 # so specify exactly what we would like to build.
214 #PREFERRED_VERSION_pango    ?= "1.20.5"
215 #PREFERRED_VERSION_glib-2.0 ?= "2.16.1"
216 #PREFERRED_VERSION_cairo    ?= "1.4.8"
217
218 PREFERRED_VERSION_udev     ?= "118"
219
220 # Stick with an older gettext and e2fsprogs stuff
221 # and gnutls... (our autotools is too old at the moment)
222 #PREFERRED_VERSION_gnutls           ?= "1.6.3"
223 #PREFERRED_VERSION_gettext          ?= "0.14.1"
224 #PREFERRED_VERSION_gettext-native   ?= "0.14.1"
225 #PREFERRED_VERSION_e2fsprogs-libs   ?= "1.39"
226 #PREFERRED_VERSION_e2fsprogs        ?= "1.38"
227 #PREFERRED_VERSION_e2fsprogs-native ?= "1.38"
228
229 # we don't ship gtk-directfb by default
230 PREFERRED_PROVIDER_gtk+                   ?= "gtk+"
231 PREFERRED_PROVIDER_gdk-pixbuf-loader-ani  ?= "gtk+"
232 PREFERRED_PROVIDER_gdk-pixbuf-loader-bmpg ?= "gtk+"
233 PREFERRED_PROVIDER_gdk-pixbuf-loader-gif  ?= "gtk+"
234 PREFERRED_PROVIDER_gdk-pixbuf-loader-ico  ?= "gtk+"
235 PREFERRED_PROVIDER_gdk-pixbuf-loader-jpeg ?= "gtk+"
236 PREFERRED_PROVIDER_gdk-pixbuf-loader-pcx  ?= "gtk+"
237 PREFERRED_PROVIDER_gdk-pixbuf-loader-png  ?= "gtk+"
238 PREFERRED_PROVIDER_gdk-pixbuf-loader-pnm  ?= "gtk+"
239 PREFERRED_PROVIDER_gdk-pixbuf-loader-ras  ?= "gtk+"
240 PREFERRED_PROVIDER_gdk-pixbuf-loader-tga  ?= "gtk+"
241 PREFERRED_PROVIDER_gdk-pixbuf-loader-wbmp ?= "gtk+"
242 PREFERRED_PROVIDER_gdk-pixbuf-loader-xbm  ?= "gtk+"
243 PREFERRED_PROVIDER_gdk-pixbuf-loader-xpm  ?= "gtk+"
244
245 PREFERRED_PROVIDER_avahi  ?= "avahi"
246 PREFERRED_PROVIDER_gconf  ?= "gconf"
247
248 # These shouldn't be here either -- these versions should
249 # be pulled from a separate include file.  But they can
250 # go here for now.
251 PREFERRED_VERSION_automake-native       ?= "1.10"
252 PREFERRED_VERSION_busybox               ?= "1.11.3"
253 PREFERRED_VERSION_dbus                  ?= "1.2.1"
254 PREFERRED_VERSION_glib-2.0              ?= "2.18.3"
255 PREFERRED_VERSION_glib-2.0-native       ?= "2.18.0"
256 PREFERRED_VERSION_libtool               ?= "1.5.10"
257 PREFERRED_VERSION_libtool-native        ?= "1.5.10"
258 PREFERRED_VERSION_libtool-cross         ?= "1.5.10"
259 PREFERRED_VERSION_libtool-sdk           ?= "1.5.10"
260 PREFERRED_VERSION_m4                    ?= "1.4.8"
261 PREFERRED_VERSION_m4-native             ?= "1.4.8"
262 PREFERRED_VERSION_pkgconfig             ?= "0.23"
263 PREFERRED_VERSION_pkgconfig-native      ?= "0.23"
264
265 # Hack alert - selecting this version of libusb effectively selects
266 # the use of libusb1 and libusb-compat in the case that something
267 # still depends on libusb.  This is required because otherwise
268 # libusb will overwrite libusb-compat in staging.
269 PREFERRED_VERSION_libusb                ?= "0.0.0"
270
271 require conf/distro/include/sane-srcdates.inc
272 require conf/distro/include/sane-srcrevs.inc