Compare commits

...

232 Commits

Author SHA1 Message Date
Peter Korsgaard
3190d5bf06 CHANGES: update for 2009.08-rc1
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-08-02 23:09:07 +02:00
Daniele Salvatore Albano
9be449ff55 Update gamin to 0.1.10 to fix compilation
Closes #533

Signed-off-by: Daniele Salvatore Albano <d.albano@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-08-02 22:32:41 +02:00
Gustavo Zacarias
9a6d6cf52b package/: new package iw
Closes #289

This package is a wireless configuration utility for the linux mac80211
kernel stack.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Tested-By: Will Newton <will.newton@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-08-02 22:25:04 +02:00
Will Newton
56fcdc9b6e ltp-testsuite: Bump version to 20090630.
Closes #437

- Remove a few obsolete patches.
 - Add a patch to disable syscall tests unsupported by uClibc.
 - Add a patch to fix sched_getaffinity build.

Signed-off-by: Will Newton <will.newton@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-08-02 22:20:28 +02:00
Will Newton
81f9990e02 webkit: Update to WebKit svn r44552.
Closes #427

- Fix generation of configure script and Makefiles.
 - Add dependencies on libsoup and enchant.
 - Allow configuration of rendering target (currently X11 or DirectFB).

Signed-off-by: Will Newton <will.newton@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-08-02 22:15:12 +02:00
Peter Korsgaard
4840c451d9 Merge branch 'lvm-bump' of git://git.busybox.net/~tpetazzoni/git/buildroot 2009-08-02 10:00:41 +02:00
Peter Korsgaard
a7b50b94bf CHANGES: pciutils issue is #523, not #527
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-08-02 09:59:15 +02:00
Peter Korsgaard
ca5b75f7ff Merge branch 'pciutils-fix' of git://git.busybox.net/~tpetazzoni/git/buildroot 2009-08-02 09:58:43 +02:00
Thomas Petazzoni
b062925376 lvm: fix installation to target dir
The installation to the target directory was broken for two reasons:

 * Due to how the lvm2.mk file was written, for each file listed in
   $(LVM2_TARGET_SBINS) and $(LVM2_TARGET_DMSETUP_SBINS), it was
   reinstalling all the files listed in those variables. When a target
   contains several elements, there's no need to make a loop to handle
   each of the elements: the rule will get executed as many times as
   they are elements in the target.

 * For some odd reason, lvm2 build system installs executable with 555
   and libraries with 444. Therefore, once copied to the target
   directory, these executables and libraries cannot be
   overwritten... for example by a later execution of Buildroot. We
   fix this up by changing the permissions of the binaries and
   libraries installed by lvm2 to saner values (755 and 644)

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-08-02 01:10:14 +02:00
Daniele Salvatore Albano
44663da45b Bump lvm2 to 2.02.50
Signed-off-by: Daniele Salvatore Albano <d.albano@gmail.com>
2009-08-02 00:46:37 +02:00
Thomas Petazzoni
dcb752b165 pciutils: fix build with external toolchains
Buildroot Makefile to compile pciutils wasn't passing TARGET_LDFLAGS
to pciutils build system. Therefore, at link time, the pciutils build
system was not taking into account the important --sysroot option,
which was breaking the link with external toolchains.

Fixes bug #523.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-08-02 00:36:47 +02:00
Peter Korsgaard
ec386cbcdf haserl: bump 0.9.x version
buffer overflow fix is now upstream

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-08-01 23:29:02 +02:00
Olaf Rempel
bb14fc4019 ntfsprogs: new package
Closes #247

wide collection of NTFS utilities from http://www.linux-ntfs.org/

[Peter: misc Config.in cleanups/fixes]

Signed-off-by: Olaf Rempel <razzor@kopf-tisch.de>
Tested-By: Will Newton <will.newton@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-08-01 23:17:48 +02:00
Peter Korsgaard
37cea19340 Merge branch 'install-fix' of git://git.busybox.net/~tpetazzoni/git/buildroot 2009-08-01 11:31:29 +02:00
Peter Korsgaard
e15c0d07e1 target/device: rename program invocation symbol in defconfigs
The symbol is now BR2_PROGRAM_INVOCATION, not BR2_UCLIBC_PROGRAM_INVOCATION.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-31 15:29:27 +02:00
Thomas Petazzoni
385e9e4ea5 coreutils: add TODO note about stripping the installed binaries
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-31 15:00:15 +02:00
Thomas Petazzoni
0ef93af1e4 coreutils: bump version
Coreutils 6.9 was broken with glibc >= 2.6, due to a coreutils
internal function being named like a glibc function. This has been
fixed in more recent coreutils version, by
http://lists.pld-linux.org/mailman/pipermail/pld-cvs-commit/Week-of-Mon-20070514/155466.html.

Therefore, we upgrade coreutils to its latest version, 7.4, which
raised two problems:

 * Recent coreutils releases are not anymore available as .bz2
   archives, only .xz archives. Since this archive format is not
   supported by Buildroot yet, and the corresponding tools are not
   widely available yet, we fallback to the bigger .gz format for the
   coreutils package.

 * The rename bug detection script m4/rename.m4 was broken, leading
   coreutils to try to include windows.h and compile some
   Windows-specific code. We introduce a patch to fix this, patch
   which has been taken from gnulib. We also make sure that this
   workaround is nevery compiled in by passing
   gl_cv_func_rename_dest_exists_bug=no to the configure script.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-31 13:54:23 +02:00
Thomas Petazzoni
8d880c3e5c Fix PROGRAM_INVOCATION handling with external toolchains
BR2_UCLIBC_PROGRAM_INVOCATION is a toolchain configuration option,
like BR2_INET_IPV6, BR2_INET_RPC, on which some packages
depend. Therefore, it should be handled like BR2_INET_IPV6 and
BR2_INET_RPC in order to work properly with external toolchains.

Since we move it out of toolchain/uClibc/Config.in into
toolchain/Config.in.2, we rename the option to BR2_PROGRAM_INVOCATION
(since BR2_INET_RPC and others don't have UCLIBC in their name).

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-31 11:40:34 +02:00
Peter Korsgaard
d4a8eebf59 kernel-headers: bump 2.6.27 / 2.6.30 stable versions
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-31 09:57:44 +02:00
Peter Korsgaard
4ff9489412 Merge branch 'kconfig-cleanup' of git://git.busybox.net/~tpetazzoni/git/buildroot 2009-07-31 09:01:06 +02:00
Thomas Petazzoni
1a2433b58e makefile: don't hardcore install utility location
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-31 08:48:03 +02:00
Thomas Petazzoni
33f13e393f kconfig: tell git to ignore new generated files
The update of kconfig and the addition of xconfig support generates
more files in package/config/. Tell git to ignore them.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-30 17:39:47 +02:00
Gustavo Zacarias
00c8bdd561 Bump sqlite package to 3.6.16
Closes #509

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-30 17:14:38 +02:00
Will Newton
5079d7a0b9 libxml2: Bump version to 2.7.3.
Closes #491

- Deletion of reject files no longer required as they have gone from
   the upstream release.

Signed-off-by: Will Newton <will.newton@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-30 17:12:53 +02:00
Gustavo Zacarias
ff69aeea40 Bump to bind-9.5.1-P3 security fix for CVE-2009-0696
Closes #495.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-30 17:10:06 +02:00
Peter Korsgaard
18865f7f2d Merge branch 'cleanup' of git://git.busybox.net/~tpetazzoni/git/buildroot 2009-07-30 17:04:30 +02:00
Thomas Petazzoni
4e9807a645 makefile: remove unused AUTO_CONFIGURE_OPTS variable
The AUTO_CONFIGURE_OPTS is not used anywhere in the tree. autoconf
based packages should used the Makefile.autotools.in machinery
instead.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-30 16:53:46 +02:00
Peter Korsgaard
8162f3977a openssl: remove invalid quotes around x86_64
Thanks for Thomas for noticing.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-29 23:35:41 +02:00
Peter Korsgaard
2a966bcd3b openssl: fix arch handling
Closes #497

Use ARCH instead of BR2_ARCH as BR2_ARCH won't match because of the
surrounding quotes.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-29 21:49:45 +02:00
Thomas Petazzoni
7a1a334c42 xorg: update CHANGES after bug fix
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-28 16:18:10 +02:00
Thomas Petazzoni
90a459ce4d xorg: add a new cross-compile fix for libXt 1.0.6
The cross-compile fix included in mainline of libXt between 1.0.5 and
1.0.6 is not sufficient. It allows to pass a different compiler for
the host tools, but still uses the TARGET_CFLAGS/TARGET_LDFLAGS to
compile the host tools, which obviously isn't correct.

The new patch allows to use the CFLAGS_FOR_BUILD/LDFLAGS_FOR_BUILD
variables as the CFLAGS/LDFLAGS to build the host tools.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-28 11:53:04 +02:00
Thomas Petazzoni
930f3db167 xorg: bump version of xutil/macros to 1.2.2
This version bump is required by the bump of xlib_libXt from 1.0.5 to
1.0.6 (1.0.6 requires at least xutil/macros 1.2).

The linuxdoc patch is removed, since it has been merged upstream, at
http://cgit.freedesktop.org/xorg/util/macros/commit/?id=e20c503d24e5ccf03035aa0f6d833d235d2179df

The other patch exposing STAGING_DIR is kept, as it is Buildroot
specific. It has just been updated to resolve conflicts.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-28 11:26:11 +02:00
Thomas Petazzoni
2831a05d03 xorg: bump X.org server version to 1.5.3
This version contains a fix to allow the compilation of the Xvesa
server against recent versions of the kernel headers (fix
http://cgit.freedesktop.org/xorg/xserver/commit/?h=server-1.5-branch&id=992a7168f0db5733fe4a6cbd2f40c6b1f2a150e0)

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-28 10:05:17 +02:00
Thomas Petazzoni
5d41383920 xorg: bump libXt to 1.0.6
Bump libXt to 1.0.6 and remove the
xlib_libXt-1.0.5-makestrs-nocc.patch, which has been included in a
better form in upstream:
 http://cgit.freedesktop.org/xorg/lib/libXt/commit/?id=36e9f0d351afbf7fd2595990b2d39e7c551f6420

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-28 10:04:15 +02:00
Peter Korsgaard
e63fd15e20 Merge branch 'xconfig-documentation' of git://git.busybox.net/~tpetazzoni/git/buildroot 2009-07-27 22:09:10 +02:00
Olaf Rempel
52dbe07119 ctorrent: new package
Closes #243.

CTorrent is a BitTorrent client implemented in C++
to be lightweight and quick.
This is the enhanced version from
http://www.rahul.net/dholmes/ctorrent/

[Peter: minor kconfig tweaks]

Signed-off-by: Olaf Rempel <razzor@kopf-tisch.de>
Tested-by: Will Newton <will.newton@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-27 21:23:34 +02:00
Thomas Petazzoni
d9a9501771 documentation: mention the new xconfig interface
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-27 18:09:45 +02:00
Thomas Petazzoni
7e7576c3d8 Makefile: add the xconfig target to the help of the main Makefile
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-27 18:09:32 +02:00
Mike Crowe
f26acf61eb package: replace mkdosfs with dosfstools
Closes #451

Move from old unmaintained dosfstools-2.11 (packaged as mkdosfs) to
now maintained dosfstools-3.0.3.

Allow each binary to be installed independently.

Signed-off-by: Mike Crowe <mac@mcrowe.com>
Tested-by: Will Newton <will.newton@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-27 17:55:34 +02:00
Peter Korsgaard
76dade1788 Merge branch 'kconfig-update' of git://git.busybox.net/~tpetazzoni/git/buildroot 2009-07-27 17:24:01 +02:00
Will Newton
6fecd53e99 mplayer: Update mplayer to version 1.0rc2.
Closes #331.

- Remove patches applied upstream
 - Add updated avr32 patch from Hans-Christian Egtvedt.

Signed-off-by: Kelvin Cheung <keguang.zhang@gmail.com>
Signed-off-by: Will Newton <will.newton@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-27 17:17:04 +02:00
Maurice van der Pot
33a3e7ba2e xf86-video-intel: Fixed cross-compile patch to apply to version 2.4.2
Signed-off-by: Maurice van der Pot <griffon26@kfk4ever.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-27 16:11:16 +02:00
Thomas Petazzoni
6cd6353ff9 xconfig: Save the configuration properly in qconf
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-27 16:07:05 +02:00
Thomas Petazzoni
69f982cdad xconfig: Change titlebar to Buildroot Configuration
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-27 16:07:04 +02:00
Alper Yildirim
b0df9df39a config: Add support for xconfig
It involved:

 * Modifying the top-level Makefile to create the xconfig target, and
   the $(CONFIG)/qconf target to compile the qconf utility

 * Modifying the package/config/Makefile magic so that C++ files and
   binaries gets linked properly, re-using the
   package/config/Makefile.kconfig logic inherited from the kernel

 * Hacking a little bit package/config/Makefile.kconfig in a way
   similar to the modifications done for the mconf (menuconfig
   interface)

Signed-off-by: Alper Yildirim <ayildirim@aselsan.com>
2009-07-27 16:07:00 +02:00
Alper Yildirim
4b3e11b3e7 config: Update package/config to Kconfig 2.6.30
Update the package/config stuff with the code available in the Linux
kernel 2.6.30.

Signed-off-by: Alper Yildirim <ayildirim@aselsan.com>
2009-07-27 16:06:50 +02:00
Peter Korsgaard
074d73a919 Merge branch 'qt' of git://git.busybox.net/~tpetazzoni/git/buildroot 2009-07-27 15:24:12 +02:00
Thomas Petazzoni
314cdcbd25 qt: the GUI module requires the network module to work properly
Running a simple Qt GUI application on an embedded systems without
QtNetwork installed doesn't work, the dynamic loader complains that
QtNetwork is not present.

While I'm not a Qt build system expert, it looks like this dependency
really exists, since the src/gui/gui.pri file in Qt sources contains
the following line:

embedded: QT += network

Which would mean that the GUI module needs the network module to
operate properly. And a few files in src/gui/embedded/ also include
some QtNetwork stuff. This isn't really surprising since the Qt QWS
mechanism uses communication between processes through a Unix socket.

Therefore, we add a dependency on the network module in the GUI
module. We use a 'select' dependency here, since it's might not be
really obvious to the user that the GUI module requires the network
one.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-27 15:02:13 +02:00
Daniel Mack
53fd73611c docs: describe BR2_ROOTFS_POST_BUILD_SCRIPT
Signed-off-by: Daniel Mack <daniel@caiaq.de>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-27 14:47:53 +02:00
Thomas Petazzoni
072d89a883 qt: fix build with external toolchain
Set QMAKE_LFLAGS so that at link time --sysroot is passed to the
linker, and Qt finds the external libraries. This fixes Qt build when
zlib or other libraries are external, instead of using Qt's internal
copy.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-27 11:54:35 +02:00
Thomas Petazzoni
660952565e Update CHANGES with recent improvements
Mention X.org and external toolchain improvements in the CHANGES file.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-27 11:17:07 +02:00
Will Newton
27ce942e65 toolchain: Clean up locale support menu
Closes #421.

This patch cleans up and fixes some minor issues with the locale support
section of the toolchain menu.

1. uClibc requires wchar support if locales are enabled, make locale
   support select wchar support.

2.  Allow purging of locale information even if there is no locale
    support in the C library.  This cleans up after packages that
    install things into /usr/share/locale on the target.

Signed-off-by: Will Newton <will.newton@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-27 10:41:56 +02:00
Pavel Roskin
a248954890 toolchain/uClibc: add patch to rename getline to get_line in unifdef.c
getline() is a standard libc function with a different signature.

Signed-off-by: Pavel Roskin <proski@gnu.org>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-27 09:43:06 +02:00
Peter Korsgaard
c63d5d24b3 target/iso9660: fix mkisofs build for !i686
Use HOST_ARCH instead of hardcoded i686. The build still could use
some cleanup though.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-27 00:15:55 +02:00
Peter Korsgaard
f4311822b1 target/iso9660: needs a linux kernel
Closes #403.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-27 00:06:28 +02:00
Peter Korsgaard
b471c096d1 target/device/xtensa: only override makedevs target for xtensa builds
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-26 22:52:36 +02:00
Gustavo Zacarias
ba4fbdc948 bmon: new package
Closes #389.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-26 22:03:15 +02:00
Gustavo Zacarias
c2dbefd86f netstat-nat: new package
Closes #3597.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-26 21:51:20 +02:00
Gustavo Zacarias
57c2e79b27 libnl: new package
Closes #287.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Tested-by: Will Newton <will.newton@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-26 21:10:56 +02:00
Peter Korsgaard
c972a086e5 kernel-headers: bump 2.6.27.x stable version
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-26 17:52:21 +02:00
Peter Korsgaard
1f359c2fe0 target/Makefile.in: remove hurd reference
Missed by b6192fb975.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-26 16:40:00 +02:00
Daniel Mack
eed7d8737a Add support for custom post-build script
The config help text says it all:

  Specify a script to be run after the build has finished and before
  the BR2 starts packing the files into selected packages.

  This gives users the oportunity to do board-specific cleanups,
  add-ons and the like, so the generated files can be used directly
  without further processing.

  The script is called with the target directory name as first and
  only argument. Make sure the exit code of that script is 0,
  otherwise make will stop after calling it.

Signed-off-by: Daniel Mack <daniel@caiaq.de>
Cc: Sven Neumann <s.neumann@raumfeld.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-25 23:15:18 +02:00
Peter Korsgaard
0cb591eb55 package/gnuconfig: xtensa patch
New file missing from cd0b1ce3b

Signed-off-by: Maxim Grigoriev <maxim2405@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-25 21:08:55 +02:00
Peter Korsgaard
d639e0efee target/device/KwikByte: remove unused 2.6.20 config
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-25 21:07:50 +02:00
Peter Korsgaard
b6192fb975 target/: remove hurd kernel placeholder
Incomplete and unlikely to get completed in the near future - Pretty
much like hurd itself.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-25 20:48:09 +02:00
Peter Korsgaard
261b3fc0f4 target/Config.in: remove reference to target/linux/Config.in.experimental
File doesn't exist any more.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-25 20:44:24 +02:00
Peter Korsgaard
c1b3b6cab0 toolchain/uclibc: xtensa patches
New files missing from 58050c28.

Signed-off-by: Maxim Grigoriev <maxim2405@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-25 20:25:34 +02:00
Peter Korsgaard
f91315e171 linux-advanced: remove unused ancient kernel versions
More than 2 years old, and no in tree users.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-25 20:22:46 +02:00
Peter Korsgaard
48abfcf5f0 kernel-headers: bump 2.6.30.x stable version
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-25 20:15:22 +02:00
Peter Korsgaard
441c122606 Merge branch 'xorg' of git://git.busybox.net/~tpetazzoni/git/buildroot 2009-07-25 09:13:44 +02:00
Peter Korsgaard
8c1fc169ab Merge branch 'master' of git://git.buildroot.net/~ulf/git/linux 2009-07-25 08:46:45 +02:00
Maxim Grigoriev
8cf20245a1 [XTENSA] Remove Copyright notes. They contradict GPL license.
Signed-off-by: Maxim Grigoriev <maxim@tensilica.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-25 08:39:37 +02:00
Thomas Petazzoni
2845fa66ce qt: put the Qt options into a submenu
Put the Qt options into a submenu to make the configuration interface
easier to use. The comment on the dependency on C++ has to be put
before the menuconfig definition, otherwise kconfig gets confused and
doesn't put the suboptions into a submenu.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-25 00:18:41 +02:00
Thomas Petazzoni
20d2c70fbd qt: rename qtopia4 to qt
A while ago, Trolltech (now part of Nokia) included Qtopia directly
inside Qt. So let's rename the qtopia4 package to simply qt, which
will be more familiar to our users. Of course, the version we compile
is Qt for Embedded Linux.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-25 00:05:35 +02:00
Thomas Petazzoni
74ecbaa23d xorg: remove the XSERVER variable
The XSERVER variable used to be defined by package/Makefile.in because
the X server package name was different depending on the type of X
server that was choosen. Nowadays, the name of the package is always
xserver_xorg-server, so there's no point in having this XSERVER
intermediate variable.

This patch makes all packages use xserver_xorg-server directly as a
dependency, and removes the XSERVER variable from package/Makefile.in.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-24 23:26:48 +02:00
Thomas Petazzoni
b36a589480 xorg: remove references to non-existing configuration options
The option BR2_PACKAGE_TINY, BR2_PACKAGE_XORG and BR2_PACKAGE_XGGI
don't exist, so do not use them to find the value of the $(XSERVER)
variable.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-24 23:26:48 +02:00
Thomas Petazzoni
6beeb755fa xorg: use BR2_PACKAGE_XORG instead of BR2_PACKAGE_XSERVER_none
The BR2_PACKAGE_XSERVER_none option has gone, so use BR2_PACKAGE_XORG7
instead. It is more logical to test if BR2_PACKAGE_XORG7 is set to
know if an X.org server is available, than testing if
BR2_PACKAGE_XSERVER_none is set to know if an X.org server is *not*
available.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-24 23:26:47 +02:00
Thomas Petazzoni
f2d8a44f26 xorg: remove reference to non-existing BR2_PACKAGE_XSERVER_none
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-24 23:26:47 +02:00
Thomas Petazzoni
ae8bbdf891 xorg server: remove dependencies
Currently, the X.org server selection always trigger the compilation
and installation of libXt (the X toolkit) and libXaw (Athena Widget
toolkits), which is are legacy toolkits not used by modern toolkits
(Gtk, Qt, etc.). They are only used by old X11 applications that are
typically not used on embedded systems.

Not compiling them save compilation time, and more importantly, space
on the target.

We also remove the compilation on xlib_libxkbui, libxmu and libxpm,
because they all depend on libXt.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-24 23:26:47 +02:00
Thomas Petazzoni
2d8153655c xorg server: beautify list of dependencies
Reorganize the list of depencies with a sane indentation level, and
one dependency per line. Yes, the list is long, but is easier to read,
and future patches modifying this list will be easier to review.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-24 23:26:46 +02:00
Thomas Petazzoni
d776138bff matchbox: fix dependencies
A dependency on BR2_PACKAGE_XORG7 is enough, no need to depend on
BR2_PACKAGE_XORG_XSERVER.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-24 23:26:46 +02:00
Thomas Petazzoni
1d5228acae dillo: use select for library dependencies
Use select independs of depends on for library dependencies. We keep
the depends on for the X.org dependency so that dillo can only be
selected once X.org is enabled (which, contrary to the library
dependencies, is a pretty obvious dependency for the user). We then
get rid of the configuration interface comment.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-24 23:25:35 +02:00
Thomas Petazzoni
958f2d5fa3 midori: remove configuration comment on X.org dependency
The dependency of Midori on X.org should be pretty obvious to the
user, and we don't want to unnecessarly clutter the configuration
interface with comments.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-24 23:23:55 +02:00
Ulf Samuelsson
1a6f22d2a3 Update kernel "latest" major/minor version numbers
including adding support for 2.6.30/2.6.31-rc#
2009-07-24 18:04:06 +02:00
Ulf Samuelsson
1aeeebc19b Remove unused file: "target/linux/Config.in.experimental" 2009-07-24 18:02:04 +02:00
Peter Korsgaard
5d79f6caf0 TODO: remove outdated stuff
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-24 15:51:51 +02:00
Peter Korsgaard
0aa7062407 CHANGES: add #163 + #473
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-24 07:51:16 +02:00
Maxim Grigoriev
edb5ca9c52 Makefile: apply xtensa specific TARGET_SKELETON_PATCH if available
Part of #163.

Signed-off-by: Maxim Grigoriev <maxim2405@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-24 02:37:06 +02:00
Maxim Grigoriev
adb9e905da toolchain: xtensa toolchain patch support
Part of #163.

Signed-off-by: Maxim Grigoriev <maxim2405@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-24 02:32:33 +02:00
Maxim Grigoriev
ebb0495936 toolchain/patch-kernel.sh: xtensa directory overlay support
Part of #163.

Signed-off-by: Maxim Grigoriev <maxim2405@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-24 02:31:34 +02:00
Maxim Grigoriev
58050c286b toolchain/uclibc: xtensa support
Part of #163.

Signed-off-by: Maxim Grigoriev <maxim2405@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-24 02:22:08 +02:00
Maxim Grigoriev
715ab98169 project: xtensa specific ARCH handling
Part of #163.

Signed-off-by: Maxim Grigoriev <maxim2405@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-24 02:19:24 +02:00
Maxim Grigoriev
5ddb904a86 target/; xtensa support
Part of #163.

Signed-off-by: Maxim Grigoriev <maxim2405@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-24 02:17:22 +02:00
Maxim Grigoriev
cd0b1ce3b7 package/gnuconfig: xtensa support
Part of #163.

Signed-off-by: Maxim Grigoriev <maxim2405@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-24 02:13:28 +02:00
Maxim Grigoriev
6b27f42180 package/Makefile.in: xtensa host support
Part of #163.

Signed-off-by: Maxim Grigoriev <maxim2405@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-24 02:12:27 +02:00
Sven Neumann
56938f1873 libmms: new package
LibMMS is a common library for parsing mms:// and mmsh:// type network
streams.

Signed-off-by: Sven Neumann <s.neumann@raumfeld.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-23 23:55:01 +02:00
Peter Korsgaard
f917e6b21b toolchain/gcc: bump 4.4.x version
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-23 13:15:05 +02:00
Sven Neumann
7bb5ce002c linux26: do not set CFLAGS_KERNEL to TARGET_CFLAGS
Using TARGET_CFLAGS breaks the kernel build for the arm platform. The
result is a kernel that can not be booted. So simply do not fiddle with
the CFLAGS on a kernel build and the kernel build system will do the
right thing (TM).

[Peter: do the same thing for the standard kernel build]

Signed-off-by: Sven Neumann <s.neumann@raumfeld.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-22 22:43:51 +02:00
Peter Korsgaard
8232850c51 gst-plugins-base: don't search host headers if freetype isn't available
freetype is only used by examples, but if it is not found
and the host has a freetype-config script, then the host
include dirs are added to the search path causing trouble.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-22 22:16:07 +02:00
Sven Neumann
3e6a0a80d2 gst-plugins-good: disable aalib
Explictly disable the build of the aasink plug-in. Without this fix
the plug-in would be built if the aalib headers are found on the host.

Signed-off-by: Sven Neumann <s.neumann@raumfeld.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-22 21:26:08 +02:00
Peter Korsgaard
e3298fdae9 haserl: move 0.9.25 fix to subdir, so it isn't picked up by 0.8.0 build
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-22 15:30:00 +02:00
Lionel Landwerlin
0fec1b5ce3 Bump SaWMan to 1.4.1
Bump SaWMan to 1.4.1

The current version of sawman (1.2.0-rc1) won't compile with directFB >= 1.4

Signed-off-by: Lionel Landwerlin <lionel.landwerlin@openwide.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-22 14:06:16 +02:00
Peter Korsgaard
0adeeddb25 libpng: bump version
Fixes an unitialized-memory-read bug.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-22 09:37:13 +02:00
Sven Neumann
d4d7c7911a libglib2: update to upstream release 2.20.4
Signed-off-by: Sven Neumann <s.neumann@raumfeld.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-22 08:03:37 +02:00
Peter Korsgaard
95b1d004f6 Merge branch 'master' of ssh://uclibc.org/var/lib/git/buildroot 2009-07-22 07:57:20 +02:00
Peter Korsgaard
11eb084fc7 tremor: provide libvorbis* alias for targets
several packages depend on libvorbis, so also provide libvorbis
targets when tremor is selected.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-21 22:57:29 +02:00
Bernhard Reutner-Fischer
9e2bdce02c Fix memstat's install
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2009-07-21 12:47:38 +02:00
Peter Korsgaard
2fee20c837 mtd: get rid of ancient deprecated versions
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-21 09:25:30 +02:00
Peter Korsgaard
da6f67d8f2 haserl: 0.9.25 array vars fix
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-20 22:17:31 +02:00
Sven Neumann
321c254be5 wpa_supplicant: add optional dbus support
Signed-off-by: Sven Neumann <s.neumann@raumfeld.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-20 22:11:42 +02:00
Peter Korsgaard
214da03d14 busybox: 1.14.2 test fix
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-20 09:16:29 +02:00
Peter Korsgaard
a2e93a0ab6 kernel-headers: bump 2.6.27 / 2.6.30 stable versions
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-20 09:14:13 +02:00
Evan Zelkowitz
10e9b7ed08 sdl_gfx: new package
Closes #369.

[Peter: Minor tweaks]

Signed-off-by: Evan Zelkowitz <evan.zelkowitz@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-18 11:30:12 +02:00
H Hartley Sweeten
b09d8a72d2 .gitignore: add backup files
Add *.orig and *~ backup files to gitignore.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-18 08:19:58 +02:00
Peter Korsgaard
f08e9412ce Merge branch 'ext-toolchain-target-path' of git://git.busybox.net/~tpetazzoni/git/buildroot 2009-07-18 08:14:53 +02:00
Peter Korsgaard
2de62ac5ad xutil_makedepend: install to target, not staging
makedepend is a program, not a library - So makedepend for the target
should get installed to target_dir and not to staging_dir.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-18 01:17:31 +02:00
Peter Korsgaard
d0f902e82e mesa3d: compile makedepend (and in turn xproto) for the host
The mesa3d build needs makedepend on the host, so compile one in $HOST_DIR.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-18 00:16:48 +02:00
Peter Korsgaard
adfd17b0bc expat: fix typo
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-18 00:04:45 +02:00
Peter Korsgaard
71c810ff93 CHANGES: add #271
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-18 00:04:20 +02:00
Peter Korsgaard
ad0ccbcf30 Merge branch 'external-toolchain' of git://git.busybox.net/~tpetazzoni/git/buildroot 2009-07-17 22:53:24 +02:00
Peter Korsgaard
e0debb7821 CHANGES: add #467
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-17 21:07:42 +02:00
Peter Korsgaard
4adcb23673 Merge branch 'directfb-bump' of git://git.busybox.net/~tpetazzoni/git/buildroot 2009-07-17 21:05:50 +02:00
Thomas Petazzoni
b5d6f341c5 external toolchain: add $(HOST_DIR)/bin to TARGET_PATH
Since the move of many host binaries to $(HOST_DIR), the TARGET_PATH
for internal toolchain had been changed to include $(HOST_DIR)/bin and
$(HOST_DIR)/usr/bin, but this change was not reflected to the
TARGET_PATH used in external toolchain configuration. This patches
fixes this.

We also remove $(STAGING_DIR)/bin and $(STAGING_DIR)/usr/bin from the
TARGET_PATH in external toolchain configuration, since the STAGING_DIR
is not supposed to contain host binaries.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-17 17:23:44 +02:00
Thomas Petazzoni
cc76043bd4 xorg: simplify dependencies on X.org
Many packages used to depend on BR2_PACKAGE_XORG||BR2_PACKAGE_XORG7,
but this is useless since BR2_PACKAGE_XORG is a non-existing
configuration option. So, these depencies gets simplified to
BR2_PACKAGE_XORG7 only.

Some others were depending on BR2_PACKAGE_TINYX (which doesn't) exist
or BR2_PACKAGE_XSERVER_xorg || BR2_PACKAGE_XSERVER_tiny ||
BR2_PACKAGE_XSERVER_x11r7. Replace all that mess by a simple
dependency on BR2_PACKAGE_XORG7.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-17 14:34:22 +02:00
Thomas Petazzoni
8c00f43904 xorg: remove useless configuration comment
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-17 14:26:50 +02:00
Thomas Petazzoni
2c502491f6 xorg: reindent configuration option details
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-17 14:26:29 +02:00
Thomas Petazzoni
1956d0f6d6 xorg: reorganize the selection of the X.org server type
The selection of the X.org server type was really strange. The user
had to select between none, tinyx and modular. Now, the menuconfig
interface display a single item for X.org, that can be
selected/unselected. This entry contains a submenu, that allows to
select the type of the X.org server (tinyX or modular) and that allows
(as before) to enable/disable X.org libraries, drivers, etc.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-17 14:20:06 +02:00
Thomas Petazzoni
5cfe019120 directfb: bump version
Bump the version of Direct FB to 1.4.1. Fixes bug #467. Thanks to
Lionel Landwerlin <lionel.landwerlin@openwide.fr> for the
notification.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-17 11:21:04 +02:00
Thomas Petazzoni
901b468e24 external toolchain: check cross-compiler existence
As a minimal test to the external toolchain, check that $(TARGET_CC)
is actually an existing executable file. That way, if the user
misconfigures the toolchain path and/or prefix, a meaningful error
message will be shown.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-17 08:53:55 +02:00
Thomas Petazzoni
82bf777ed7 external toolchain: respect $(Q)
Use $(Q) in external toolchain support so that the user can get the
full output by passing V=1 to make, and still get a nice and clean
output by default.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-17 08:48:35 +02:00
Thomas Petazzoni
28aa0b47fb external toolchain: copy the C++ standard library if needed
Obey the BR2_INSTALL_LIBSTDCPP configuration option to copy the C++
standard library to the target. Suggested by Lionel Landwerlin
<lionel.landwerlin@openwide.fr>.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-17 08:46:51 +02:00
Thomas Petazzoni
3026e9930e external toolchain: do not copy useless symbolic links
Do not copy .so symbolic links to target when not needed. Only copy
.so.X symbolic links and the library itself.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-17 08:46:43 +02:00
Thomas Petazzoni
0afd2103f0 external toolchain: more documentation about the principles
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-17 00:20:33 +02:00
Thomas Petazzoni
fd5570970e external toolchain: use LANG=C when calling gcc -v
Lionel Landwerlin <lionel.landwerlin@openwide.fr> reported that using
the external toolchain support when LANG=fr_FR.UTF-8 doesn't work,
since the messages printed by gcc -v are translated in another
language, defeating the grep ^Configured test.

Therefore, as per Lionel suggestion, we force LANG=C when calling
$(TARGET_CC) -v.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-17 00:10:46 +02:00
Thomas Petazzoni
57692e2535 external-toolchain: better documentation, cleanup, sysroot check
* Introduce documentation for each function of ext-tool.mk, and
   document all parameters of the functions.

 * Pass SYSROOT_DIR as argument to all functions that require it,
   instead of computing it manually everywhere

 * Use $(shell) instead of backquotes

 * Check that the SYSROOT_DIR variable is not empty, which means that
   the external toolchain doesn't support --sysroot. In that case,
   bail out with a nice error message.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-17 00:10:33 +02:00
Peter Korsgaard
bd26b5821c libvorbis: fix tremor install into staging_dir
Closes #387.

When tremor is selected, the normal libvorbis shouldn't get built and
tremer should get installed into staging_dir as well.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-16 21:47:36 +02:00
Thomas Petazzoni
00eddf0ee6 external toolchain: fix libraries copy and add ARM ABI check
Instead of hardcoding the C library versions, just copy the version
available in $SYSROOT_DIR/lib.

Add a check on the ARM ABI configured in Buildroot with regard to the
ABI of the external toolchain provided.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-16 21:45:00 +02:00
Peter Korsgaard
6c243d12d9 qtopia4: add option for STL support
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-16 14:16:25 +02:00
Peter Korsgaard
ea53650333 ruby: needs WCHAR support in toolchain
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-13 09:20:40 +02:00
laurent laffont
8703912fa0 Change ruby version to 1.9.1-p129
Ruby 1.9.1 handle cross compilation better, espescially extensions
(I'm working on ARM at91sam9263-ek).
This patch also disable ruby doc generation and ipv6.

[Peter: fixed ipv6 handling]

Signed-off-by: laurent laffont <laurent.laffont@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-12 22:33:52 +02:00
Peter Korsgaard
e5afc25114 busybox: additional 1.14.2 patches
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-12 21:13:04 +02:00
Peter Korsgaard
0167462218 libvorbis: bump version
bugfix release - Fixes playback of very short files.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-12 21:09:56 +02:00
Peter Korsgaard
1516aacdbe qtopia4: fix typo
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-08 16:07:37 +02:00
Peter Korsgaard
3a966abb62 qtopia4/directfb: remove default n
N is default, so no need to explicitly state it.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-08 16:05:41 +02:00
Peter Korsgaard
2e71cd88e7 liblockfile: bump version
Closes #83.

Fixes build with newer glibc versions.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-07 23:26:36 +02:00
Peter Korsgaard
c1a5772aeb busybox: ls fix for v1.14.2
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-05 21:58:29 +02:00
Will Newton
2c3a3af86e enchant: New package for enchant spell-checking library.
Enchant is a spell checking library that provides a consistent API across
a number of spell-checking system backends.

Signed-off-by: Will Newton <will.newton@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-05 21:29:28 +02:00
Peter Korsgaard
ddd0db77ab Merge branch 'qtopia-fixes' of git://git.busybox.net/~tpetazzoni/git/buildroot 2009-07-03 13:20:35 +02:00
Thomas Petazzoni
a1125b31af New build fix for Qtopia4
The new patch fixes the build failure when
BR2_PACKAGE_QTOPIA4_QTZLIB=y.
2009-07-03 11:13:24 +02:00
Thomas Petazzoni
1bbceff78a Bump Qtopia version to 4.5.2 2009-07-03 10:30:35 +02:00
Thomas Petazzoni
d4dab10d0b Fix Qtopia build with external toolchain
The fixes made to qmake.conf for the cross-compiling tools were not
sufficient in the case of an external toolchain, since the CFLAGS were
not taken into account. And the --sysroot option contained in the
CFLAGS are very important for external toolchains to work.

Additionally, it makes sure that Qtopia is compiled with the proper
CFLAGS, even if an external toolchain isn't used.
2009-07-03 10:30:29 +02:00
Peter Korsgaard
8ae604912b kernel-headers: bump 2.6.27.x / 2.6.29.x / 2.6.30.x stable versions
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-03 07:20:12 +02:00
Peter Korsgaard
b98de697b0 openvpn: prefix variables with OPENVPN_
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-02 14:59:48 +02:00
Gustavo Zacarias
234fb283ed openvpn: convert to Makefile.autotools.in format
Closes #359, #413.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-02 14:55:51 +02:00
Peter Korsgaard
90c5d156f5 toolchain/gcc: ensure libraries are copied to target_dir for x86-64
x86-64 stores libgcc_s / libstdc++ / libgcj under lib64 instead of lib,
so make sure that directory is searched as well for libraries to copy
to target.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-02 09:41:09 +02:00
Peter Korsgaard
0a74a04e98 Merge branch 'dropbear-fix' of git://git.busybox.net/~tpetazzoni/git/buildroot 2009-07-01 20:15:33 +02:00
Peter Korsgaard
32154996a8 Merge branch 'matchbox-fix' of git://git.busybox.net/~tpetazzoni/git/buildroot 2009-07-01 20:12:47 +02:00
Gustavo Zacarias
0468be6e07 package: add spawn-fcgi package
Closes #417,

New package spawn-fcgi, basically a FastCGI process spawner.
This was previously included in lighttpd up to version 1.4.22 and is now
a separate project.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-01 15:36:19 +02:00
Gustavo Zacarias
264b9c115d lighttpd: bump version
Closes #419.

lighttpd 1.4.23 is out, there are many bugfixes from 1.4.20 currently in
buildroot:
 *  Fix workaround for incorrect path info/scriptname if fastcgi prefix is
    ”/” (fixes #729)
 * Finally removed spawn-fcgi
 * Fix bug with FastCGI request id overflow under high load; just use always
   id 1 as we don’t use multiplexing. (thx jgray)
 * Workaround broken operating systems: check for trailing ’/’ in filenames
   (fixes #1989)
Plus fixes from 1.4.22 and 1.4.21.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-07-01 15:35:20 +02:00
Thomas Petazzoni
51ef5b8122 Fix Matchbox build
Several issues were encountered when trying to build Matchbox. This
patches fixes these issues :

 * Selecting BR2_PACKAGE_MATCHBOX should select BR2_PACKAGE_XORG7,
   otherwise the x11r7 mk files are not included, and matchbox.mk
   refers to non-existing dependencies (such as xlib_libXtst).

 * In matchbox.mk, wrong dependencies for Matchbox keyboard. When
   pango is available, use it through --enable-pango, otherwise, add
   the dependency to xlib_libXft

 * Enable AUTORECONF for libXfont and libXft, otherwise the libtool
   Buildroot patch has no effect, and these packages fail to build
   without the libtool hack.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-01 14:24:47 +02:00
Thomas Petazzoni
b7d98b2d42 Fix dropbear compilation with glibc
The patch introduced at c579e32dbe was
incorrect, since __USE_GNU is an internal C library defined, and
should not be used by programs. _GNU_SOURCE should be used instead.

This fixes a build failure on Dropbear when compiling against a
glibc-based toolchain.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-07-01 14:20:51 +02:00
Gustavo Zacarias
5818010f92 sqlite: bump version
Closed #333.

 * Refactor the internal representation of SQL expressions so that they
   use less memory on embedded platforms.
 * Reduce the amount of stack space used
 * Fix an 64-bit alignment bug on HP/UX and Sparc
 * The sqlite3_create_function() family of interfaces now return
   SQLITE_MISUSE instead of SQLITE_ERROR when passed invalid parameter
   combinations.
 * When new tables are created using CREATE TABLE ... AS SELECT ... the
   datatype of the columns is the simplified SQLite datatype (TEXT, INT,
   REAL, NUMERIC, or BLOB) instead of a copy of the original datatype
   from the source table.
 * Resolve race conditions when checking for a hot rollback journal.
 * The sqlite3_shutdown() interface frees all mutexes under windows.
 * Enhanced robustness against corrupt database files
 * Continuing improvements to the test suite and fixes to obscure bugs
   and inconsistencies that the test suite improvements are uncovering.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-06-30 21:40:23 +02:00
Peter Korsgaard
a928430ff7 u-boot: add 2009.06 release
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-06-29 20:59:49 +02:00
Peter Korsgaard
99da30bf5d u-boot: target tools: use library files from their original location
u-boot 2009.06 changed the tools/ logic, and no longer adds symbolic
links to the needed library files in the tools directory.

Fix build by referencing the library files in their original location.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-06-29 20:56:49 +02:00
Peter Korsgaard
2945b06610 qtopia4: fix build for !QTOPIA4_SHARED
Only try to copy the shared objects from staging to target if QT
is configured for shared objects.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-06-29 14:29:20 +02:00
Peter Korsgaard
85df29b9fc lib{ogg,vorbis}: bump version
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-06-24 15:41:48 +02:00
Peter Korsgaard
e616c68acc busybox: bump 1.14.x version
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-06-24 11:26:05 +02:00
Peter Korsgaard
e61606ad39 CHANGES: add issue 349 + 379
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-06-23 13:55:38 +02:00
Sven Neumann
b26520ba90 directfb: bump version
Closes #379

update DirectFB to version 1.4.0

A new stable version of DirectFB has been released upstream,
http://directfb.org/index.php?path=Main%2FNews&entry=2009-06-04-1.niels

Attached patch updates the DirectFB package and introduces a BR2
configuration option for the RGB16 dithering feature that is new in
DirectFB 1.4.0.

Signed-off-by: Sven Neumann <s.neumann@raumfeld.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-06-23 13:47:14 +02:00
Sven Neumann
e22a39fb44 libsoup: bump version
Closes #349.

Attached patch updates libsoup to version 2.26.2.

This is relevant for bug 303 as it allows to compile gvfs with much
less patching.

Signed-off-by: Sven Neumann <s.neumann@raumfeld.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-06-23 12:33:40 +02:00
Peter Korsgaard
533718a832 CHANGES: add resolved issues post-2009.05
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-06-23 09:40:23 +02:00
Will Newton
7af9cd3ac5 ipsec-tools: Bump version to 0.7.2.
Add support for configuring security context support to allow building for
non-SELinux targets.

Remove some obsolete patches.

Signed-off-by: Will Newton <will.newton@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-06-23 09:33:24 +02:00
Gustavo Zacarias
93308ccba3 php: bump version
Closes #409.

php-5.2.10 is out, mostly misc bugfixes, one small security fix:

Security Enhancements and Fixes in PHP 5.2.10:

    * Fixed bug #48378 (exif_read_data() segfaults on certain corrupted .jpeg
files). (Pierre)

Key enhancements in PHP 5.2.10 include:

    * Added "ignore_errors" option to http fopen wrapper. (David Zulke, Sara)
    * Fixed memory corruptions while reading properties of zip files. (Ilia)
    * Fixed memory leak in ob_get_clean/ob_get_flush. (Christian)
    * Fixed segfault on invalid session.save_path. (Hannes)
    * Fixed leaks in imap when a mail_criteria is used. (Pierre)
    * Changed default value of array_unique()'s optional sorting type parameter
back to SORT_STRING to fix backwards compatibility breakage introduced in PHP
5.2.9. (Moriyoshi)
    * Fixed bug #47940 (memory leaks in imap_body). (Pierre, Jake Levitt)
    * Fixed bug #47903 ("@" operator does not work with string offsets).
(Felipe)
    * Fixed bug #47644 (Valid integers are truncated with json_decode()).
(Scott)
    * Fixed bug #47564 (unpacking unsigned long 32bit big endian returns wrong
result). (Ilia)
    * Fixed bug #47365 (ip2long() may allow some invalid values on certain
64bit systems).
    * Over 100 bug fixes.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-06-23 09:26:27 +02:00
Peter Korsgaard
ab5208886e busybox: autodetect nfs mount support based on BR2_INET_RPC setting
Override nfs mount support based on BR2_INET_RPC setting, so BR will DTRT.
This way you will automatically get NFS support in busybox if available in
the toolchain, and the build won't break if the defconfig enables it but
the user has it disabled in the toolchain.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-06-22 15:28:36 +02:00
Peter Korsgaard
263c8dc7b8 busybox: 1.13.x defconfig: enable devmem applet
Small and useful for a lot of early hardware testing/verification.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-06-22 15:17:16 +02:00
Peter Korsgaard
691cf5eb42 target/generic: add /dev/sd{a,b}*, /dev/ub{a,b}* device nodes
E.G. for usb disks.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-06-21 14:42:15 +02:00
Peter Korsgaard
33f7d7929f target/generic: add /dev/i2c-N device nodes
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-06-21 14:37:09 +02:00
Nigel Kukard
ddb260707a Remove device-mapper
Device mapper is now provided by lvm2

Signed-off-by: Nigel Kukard <nkukard@lbsd.net>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-06-20 07:19:22 +02:00
Nigel Kukard
9cf1786bf0 dmraid must now require lvm2 and not dm
As device-mapper has moved to lvm2, dmraid must now require lvm2.

Signed-off-by: Nigel Kukard <nkukard@lbsd.net>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-06-20 07:19:19 +02:00
Nigel Kukard
03bcf76223 LVM2 now provides device-mapper
- Updated LVM2 to version 2.02.47
- Added option to only install dmsetup
- Updated config description - thanks Olaf Rempel
- Fixed readline issues - thanks Olaf Rempel

Signed-off-by: Nigel Kukard <nkukard@lbsd.net>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-06-20 07:18:52 +02:00
Markus Heidelberg
a8fbfdff29 gst-plugins-bad: use "select" for dependencies
Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de>
2009-06-19 16:38:14 +02:00
Peter Korsgaard
21da141911 Merge branch 'master' of git://github.com/willnewton/buildroot 2009-06-18 10:57:16 +02:00
Peter Korsgaard
95076c1ac4 docs/docs.html: fix mailing list link
As reported on IRC.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-06-17 22:47:25 +02:00
Peter Korsgaard
0a5039dfaf kernel-headers: bump 2.6.29.x version
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-06-17 14:04:29 +02:00
Peter Korsgaard
627fc43262 Merge branch 'external-toolchain' of git://git.busybox.net/~tpetazzoni/git/buildroot 2009-06-17 13:46:54 +02:00
Peter Korsgaard
b2c4191066 Merge branch 'classpath-update' of git://git.busybox.net/~tpetazzoni/git/buildroot 2009-06-17 13:43:10 +02:00
Will Newton
157d1c4639 gst-plugins-bad: New package.
A package of gstreamer plugins that may be of lesser quality or lacking
in features.

Closes #395.

Signed-off-by: Will Newton <will.newton@gmail.com>
2009-06-16 21:54:43 +01:00
Will Newton
11e7857989 gst-plugins-base: Bump version to 0.10.23.
Also add a config option for the app plugin that was moved from
to gst-plugins-base from gst-plugins-bad in version 0.10.22.

Closes #393.

Signed-off-by: Will Newton <will.newton@gmail.com>
2009-06-16 21:51:13 +01:00
Will Newton
da99a9eede gstreamer: Bump version to 0.10.23.
Closes #391.

Signed-off-by: Will Newton <will.newton@gmail.com>
2009-06-16 21:45:46 +01:00
Will Newton
6a5b9cebfe gst-plugins-good: Allow souphttpsrc plugin to be configured.
Add a config option to enable the user to enable or disable the souphttpsrc
plugin.

Closes #383.

Signed-off-by: Will Newton <will.newton@gmail.com>
2009-06-16 21:42:07 +01:00
Will Newton
9310e12d5b gstreamer: Allow libxml2 dependency to be configured.
gstreamer uses libxml2 to support the plugin registry and pipeline
load/save features. This change allows the user to build gstreamer without
libxml2 which saves a large amount of space on the target.

Closes #373.

Signed-off-by: Will Newton <will.newton@gmail.com>
2009-06-16 21:37:35 +01:00
Peter Korsgaard
40a5691f8f kernel-headers: bump 2.6.27.x version
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-06-16 12:38:45 +02:00
Thomas Petazzoni
676032036b Upgrade classpath version and fix compilation
* Upgrade to version 0.98
 * Use --disable-Werror, otherwise it doesn't build since warnings are
   treated as errors
 * Don't depend on tiff, which isn't mandatory, and doesn't
   build. Once tiff is fixed, we can re-add it as a dependency.
2009-06-15 20:48:50 +02:00
Thomas Petazzoni
9456b58a8b Improve external toolchain checks
This patch adds some checks on the external toolchains.

First, it checks that the C library selection is correct, by looking
if gcc is able to find the main C library file through the
-print-file-name option.

Then, it attempts to check if the Buildroot toolchain options match
the configuration of the toolchain :

 * for glibc, it checks that IPv6, RPC, locales, wide-char, large file
   support Buildroot options are enabled, since with glibc all these
   features are always available (at least this is the assumption we
   make) ;

 * for uClibc, it checks the Buildroot options with the uClibc
   configuration file in $SYSROOT_DIR/usr/include/bits/uClibc_config.h

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-06-15 20:48:27 +02:00
Thomas Petazzoni
643aa232f0 Simple glibc-based external toolchain support
The current Buildroot works just well with sysrootable glibc
toolchains, using the external toolchain feature. The only thing that
needs to be customized is the set of libraries that must be compiled
to the target.

The following patch takes a simple approach to making it easier for
users to use glibc toolchains. It just adds a uClibc/glibc choice in
the external toolchain menu. Then, depending on that selection, the
configuration system will choose a sane default value for the library
files list.

The other advantage of having a uClibc/glibc choice is that in the
future, we'll be able to add checks verifying that the external
toolchain configuration matches the features selected in Buildroot (in
terms of IPv6, RPC, locales or large file support).

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-06-15 20:48:27 +02:00
Pwalters
c239c1944b target/Config.in.arch: fix BR2_ARCH for i386 geode variant
Signed-off-by: PWalters <pwalters21@cox.net>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-06-15 20:33:11 +02:00
Nigel Kukard
220dca451e dmraid linking against host system fix
dmraid is hard coded with -L$(DESTDIR)$(libdir)  which tries to link in
the host systems' libs

Signed-off-by: Nigel Kukard <nkukard@lbsd.net>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-06-15 13:27:07 +02:00
Peter Korsgaard
56d63b6193 busybox: 1.14.1 ash fix
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-06-14 20:12:40 +02:00
Peter Korsgaard
0b6b2e3470 busybox: additional 1.14.1 fixes
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-06-12 14:39:38 +02:00
Will Newton
1029ec82df neon: Fix pkgconfig dependency
neon should depend on host-pkgconfig rather than pkgconfig.

Closes #385.

Signed-off-by: Will Newton <will.newton@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-06-11 21:42:12 +02:00
Peter Korsgaard
e491611316 busybox: additional 1.14.1 fixes
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-06-11 12:34:01 +02:00
Peter Korsgaard
6fac68300e toolchain/kernel: remove ancient versions
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-06-11 12:30:30 +02:00
Peter Korsgaard
223750fba2 toolchain/kernel-headers: add 2.6.30
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-06-11 12:26:16 +02:00
Daniel Mack
ee0ebdfd59 Add support for Freescale's MXC serial terminals
This patch makes ttymxc[012] an option to choose for
BR2_TARGET_GENERIC_GETTY.

It also adds these ports to the generic device table and to securetty.

Signed-off-by: Daniel Mack <daniel@caiaq.de>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-06-10 20:00:59 +02:00
Peter Korsgaard
5198e6642c libcurl: fix --without-ssl typo
Reported-by: Nestor <nestor@traceback.com.br>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-06-10 09:27:02 +02:00
Peter Korsgaard
42eca21d2c Config.in: update version for 2009.08 development
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-06-09 16:43:40 +02:00
Peter Korsgaard
d41f360565 target/generic: add ttySACx support to serial console config
Add ttySACx (samsung s3c SoC) support to the generic serial console
config.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-06-07 23:10:27 +02:00
Peter Korsgaard
82182c3e27 busybox: 1.14.1 ftpd + modprobe patches
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-06-06 21:53:15 +02:00
Peter Korsgaard
f6fa84f5ff xdriver_xf86-input-synaptics: fix download url
0.15.0 seems to never have been in Debian (it is atleast not on
snapshot.debian.net), so use the real upstream (freedesktop) instead.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-06-06 21:38:07 +02:00
Peter Korsgaard
871435fdb5 avahi: udhcpc default.script: only bring up avahi-autoipd on nak/timeout
The avahi udhcpc script used to start up avahi-autoipd at defconfig
(init) time, and then kill it if a dhcp lease was acquired, leading
to extra network traffic.

Change it to only start avahi-autoipd on timeout and dhcp nak.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-06-04 14:58:57 +02:00
Bernhard Reutner-Fischer
0ebab19479 use https for the bugtracker URLs
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2009-06-04 11:58:58 +02:00
Alex Dobrynin
e9bf6aac83 target/Config.in.arch: fix BR2_GCC_TARGET_ARCH for arm926t
Closes #367.

arm926t was wrongly listed as armv4t, and not armv5te - leading to
the following error while compiling the kernel (2.6.28):

  CC      arch/arm/kernel/traps.o
{standard input}: Assembler messages:
{standard input}:1094: Error: selected processor does not support `pld [r6,#0]'

Signed-off-by: Alex Dobrynin <alex_dobrynin@hotmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-06-01 10:45:02 +02:00
Peter Korsgaard
0b76735b47 docs/: announce 2009.05
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-06-01 09:23:21 +02:00
Peter Korsgaard
a69b3d61fb Update for 2009.05
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-06-01 09:00:03 +02:00
Marc Gauthier
a1a2e905d8 Fix diffutils build breakage with BR2_STRIP_none=y
Look at BR2_STRIP_none to decide whether to strip diffutils binaries.
This avoids bad quoting in diffutils Makefile.in (generated by automake 1.6)
when STRIP is set to:   true -Not_stripping

Signed-off-by:  Marc Gauthier <marc@alumni.uwaterloo.ca>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-06-01 08:34:36 +02:00
Svein-Erik Skjelbred
4ee69b6b64 linux-advanced: bump 2.6.29.x kernel version
Signed-off-by: Svein-Erik Skjelbred <at91rm9200@skjelbred.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-05-28 16:16:12 +02:00
Marc Gauthier
4088a5294d dropbear: fix initscript install
The -D option to install only works portably when the destination is
a file. Specifying the filename avoids the following build error (at
least on some hosts):

"/usr/bin/install: cannot overwrite directory `/tmp/buildroot/
project_build_foobar/uclibc/root/etc/init.d' with non-directory"

Signed-off-by: Marc Gauthier <marc@tensilica.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-05-28 14:31:20 +02:00
Peter Korsgaard
77fad2fd74 target/ubifsroot: mark as broken
It should get fixed to use mkfs.ubifs from mtd-utils, but that's
probably unrealistic before the 2009.05 release, so mark as broken
for now.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-05-28 14:25:32 +02:00
Peter Korsgaard
952bf43fd5 target/ubifsroot: fix source rule
Notice that the upstream git tree is no more, so this doesn't buy us
much.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-05-28 14:23:35 +02:00
Peter Korsgaard
3d89b8d64e docs/news.html: announce 2009.05-rc3
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-05-27 20:56:14 +02:00
Peter Korsgaard
45e11e2960 Update for 2009.05-rc3
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-05-27 20:44:08 +02:00
Peter Korsgaard
3c85ab716f busybox: bump 1.14.x version
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-05-27 20:14:09 +02:00
Peter Korsgaard
3169b04725 curl: make sure openssl isn't tried when the openssl package isn't enabled
Works around build errors caused by broken Xorg dependencies.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-05-27 07:18:43 +02:00
Peter Korsgaard
f9af543a25 python: disable extensions where we don't have the deps in BR
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-05-27 07:07:36 +02:00
Peter Korsgaard
8afc339757 python: fix kconfig dependencies for extension modules
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-05-27 07:02:57 +02:00
Peter Korsgaard
0f157e0cb9 readline: needs ncurses, so select it in kconfig
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-05-27 06:57:08 +02:00
Peter Korsgaard
8843ded099 busybox: fix brown paper bag typo introduced in a7ed91a
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-05-26 22:49:06 +02:00
Peter Korsgaard
ff01f2d29b strace: fix build for arm eabi
Based on patch from gentoo bug 241168: http://bugs.gentoo.org/241168

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-05-24 21:21:21 +02:00
Peter Korsgaard
e9782eb23b libusb: fix host autoconf/automake dependencies
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-05-24 19:47:42 +02:00
Peter Korsgaard
421f05c913 toolchain/gcc: 4.3.x: fix for arm pr37436
See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37436 for details.

Reported-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-05-24 07:34:09 +02:00
Peter Korsgaard
c9faf999f4 kernel-headers: bump 2.6.27 / 2.6.29 versions
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-05-20 12:15:54 +02:00
Peter Korsgaard
b46819df22 docs/news.html: announce 2009.05-rc2
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2009-05-19 20:30:32 +02:00
324 changed files with 6935 additions and 32827 deletions

2
.gitignore vendored
View File

@@ -9,3 +9,5 @@
/.config
*.depend
*.o
*.orig
*~

95
CHANGES
View File

@@ -1,3 +1,98 @@
2009.08-rc1, Released August 2nd, 2009:
Fixes all over the tree and new features.
Improvement of external toolchain support:
- Support for glibc toolchains.
- The toolchain configuration announced to Buildroot is
verified against the real toolchain configuration.
- Fixes, documentation.
Cleanup X.org support: clarified configuration options, and
removed mandatory dependency on useless libraries such as
libXt or libXaw.
New QT-based configurator, usable using 'make xconfig'.
Support for the Xtensa architecture.
Toolchain: GCC 4.4.1, 2.6.30 kernel headers, removed < 2.6.26
headers.
New packages: bmon, ctorrent, dosfstools, enchant,
gst-plugins-bad, iw, libmms, libnl, netstat-nat, ntfsprogs,
sdl_gfx, spawn-fcgi.
Updated packages: bind, busybox, coreutils, sqlite, directfb,
expat, gamin, gnuconfig, haserl, ipsec-tools, classpath,
libcurl, libglib2, liblockfile, libpng, libsoup, libxml2,
lighttpd, ltp-testsuite, lvm2, matchbox, memstat,
gst-plugins-good, gstreamer, libogg, libvorbis, mplayer,
neon, openssl, pciutils, php, qt, ruby, sawman, webkit,
wpa-supplicant, xdriver_xf86-input-synaptics,
xdriver_xf86-video-intel, xlib_libXfont, xlib_libXft,
xlib_libXt, xproto_xproto, xserver-xorg, xutil_makedepend,
xutil_util-macros.
Issues resolved (http://bugs.uclibc.org):
#83: liblockfile fails to compile due to eaccess redefinition
#163: Xtensa architecture port
#171: xorg-server / kernel headers 2.6.26 - vm86.c compilation issue
#241: device mapper + lvm2: build together
#243: ctorrent: new package
#247: ntfsprogs: new package
#271: Library 'libgcc_s.so.1' not installed in search path
#287: New package libnl
#289: New package iw
#331: Update MPlayer to version 1.0rc2
#333: Bump sqlite package to 3.6.15
#349: update libsoup to version 2.26.2
#357: New package netstat-nat
#359,#413: Upgrade openvpn to Makefile.autotools.in
#367: linux kernel compile error for arm926t
#369: Add SDL_gfx package
#373: Support for building gstreamer without libxml
#379: update DirectFB to version 1.4.0
#383: gst-plugins-good: Allow soup plugin to be configured
#385: neon: Fix pkgconfig dependency
#387: Tremor not installed to toolchain
#389: New package bmon
#391: gstreamer: Bump version to 0.10.23
#393: gst-plugins-base: Bump version to 0.10.23
#395: gst-plugins-bad: New package
#403: Error while building iso9660 image
#409: Bump php package to 5.2.10
#411: ipsec-tools: Bump version to 0.7.2
#417: New package spawn-fcgi
#419: Bump lighttpd package to 1.4.23
#421: toolchain: Clean up toolchain locale support menu
#427: webkit: Update to WebKit svn r44552
#437: ltp-testsuite: Bump version to 20090630
#451: Upgrade from unmaintained dosfstools-2.11 to dosfstools-3.0.3
#467: DirectFB 1.4.1
#473: memstat_0.5.tar.gz has install with -D and that fails "make"
#491: libxml2: Bump version to 0.7.3
#495: Bump bind package to 9.5.1-P3 (security)
#497: OpenSSL RSA key generation hangs on x86_64
#509: Bump sqlite package to 3.6.16
#523: pciutils broken with external toolchain
#533: Update gamin to 0.1.10 to fix compilation
2009.05, Released June 1st, 2009:
Fixes for dropbear & diffutils, bump linux-advanced 2.6.29.x
version and marked ubifsroot as broken.
2009.05-rc3, Released May 27th, 2009:
Fixes for toolchain (gcc arm pr37436), stable kernel versions,
busybox, curl, libusb, readline, python and strace.
Issues resolved (http://bugs.uclibc.org):
#345: libcurl package needs a urandom fix
2009.05-rc2, Released May 19th, 2009:
Fixes for toolchain (gcc w/softfloat on ppc, 3.4.6 buildfix

View File

@@ -8,7 +8,7 @@ config BR2_HAVE_DOT_CONFIG
config BR2_VERSION
string
default "2009.05-rc2"
default "2009.08-git"
source "target/Config.in.arch"
source "target/device/Config.in"

View File

@@ -28,7 +28,7 @@ CONFIG_DEFCONFIG=.defconfig
CONFIG=package/config
DATE:=$(shell date +%Y%m%d)
noconfig_targets:=menuconfig config oldconfig randconfig \
noconfig_targets:=menuconfig xconfig config oldconfig randconfig \
defconfig allyesconfig allnoconfig release tags \
source-check help
@@ -332,6 +332,9 @@ $(PROJECT_BUILD_DIR)/.root:
if [ -d "$(TARGET_SKELETON)" ]; then \
cp -fa $(TARGET_SKELETON)/* $(TARGET_DIR)/; \
fi; \
if [ -d "$(TARGET_SKELETON_PATCH)" ]; then \
toolchain/patch-kernel.sh $(TARGET_DIR) $(TARGET_SKELETON_PATCH)/ \*patch\*; \
fi; \
touch $(STAGING_DIR)/.fakeroot.00000; \
fi
-find $(TARGET_DIR) -type d -name CVS -o -name .svn -print0 | xargs -0 rm -rf
@@ -360,6 +363,10 @@ endif
find $(TARGET_DIR) -type f -perm +111 | xargs $(STRIPCMD) 2>/dev/null || true
$(TARGET_LDCONFIG) -r $(TARGET_DIR) 2>/dev/null
ifneq ($(BR2_ROOTFS_POST_BUILD_SCRIPT),"")
$(BR2_ROOTFS_POST_BUILD_SCRIPT) $(TARGET_DIR)
endif
ifeq ($(BR2_ENABLE_LOCALE_PURGE),y)
LOCALE_WHITELIST=$(PROJECT_BUILD_DIR)/locales.nopurge
LOCALE_NOPURGE=$(strip $(subst ",,$(BR2_ENABLE_LOCALE_WHITELIST)))
@@ -431,13 +438,29 @@ $(CONFIG)/conf:
-@if [ ! -f .config ]; then \
cp $(CONFIG_DEFCONFIG) .config; \
fi
$(CONFIG)/mconf:
@mkdir -p $(CONFIG)/buildroot-config
$(MAKE) CC="$(HOSTCC)" -C $(CONFIG) conf mconf
$(MAKE) CC="$(HOSTCC)" -C $(CONFIG) mconf
-@if [ ! -f .config ]; then \
cp $(CONFIG_DEFCONFIG) .config; \
fi
$(CONFIG)/qconf:
@mkdir -p $(CONFIG)/buildroot-config
$(MAKE) CC="$(HOSTCC)" -C $(CONFIG) qconf
-@if [ ! -f .config ]; then \
cp $(CONFIG_DEFCONFIG) .config; \
fi
xconfig: $(CONFIG)/qconf
@mkdir -p $(CONFIG)/buildroot-config
@if ! KCONFIG_AUTOCONFIG=$(CONFIG)/buildroot-config/auto.conf \
KCONFIG_AUTOHEADER=$(CONFIG)/buildroot-config/autoconf.h \
$(CONFIG)/qconf $(CONFIG_CONFIG_IN); then \
test -f .config.cmd || rm -f .config; \
fi
menuconfig: $(CONFIG)/mconf
@mkdir -p $(CONFIG)/buildroot-config
@if ! KCONFIG_AUTOCONFIG=$(CONFIG)/buildroot-config/auto.conf \
@@ -538,6 +561,7 @@ help:
@echo
@echo 'Configuration:'
@echo ' menuconfig - interactive curses-based configurator'
@echo ' xconfig - interactive Qt-based configurator'
@echo ' oldconfig - resolve any unresolved symbols in .config'
@echo ' configured - make {uclibc/busybox/linux26}-config'
@echo ' saveconfig - save current configuration under local/<project>'
@@ -559,5 +583,5 @@ release: distclean
rm -rf $$OUT
.PHONY: dummy subdirs release distclean clean config oldconfig \
menuconfig tags check test depend defconfig help
menuconfig xconfig tags check test depend defconfig help

15
TODO
View File

@@ -6,9 +6,12 @@ Buildroot2 TODOs
packages/Makefile.autotools.in
- fix setting of flags for packages
- stabilize for a 0.10.0 release
- think about using a common --config-cache for configure
Should take care of expanding TARGET_CONFIGURE_ARGS for cross compiles
to working presets.
- coreutils: use make install-strip to install the packages. For now,
it fails beause even if we pass STRIP="/path/to/$(ARCH)-strip", the
coreutils build system uses the host strip to strip target
binaries. The ./configure execution done by Buildroot properly
detects the cross-strip, but when running make, build-aux/missing
gets run, complains about aclocal-1.10c and atuomake-1.10c not being
present, and rerun the configuration... with the wrong environment
variables (STRIP= is missing). An autoreconf on this package is
probably necessary.

View File

@@ -37,6 +37,7 @@
<li><a href="#external_toolchain">Use an external toolchain</a></li>
<li><a href="#downloaded_packages">Location of downloaded packages</a>
</li>
<li><a href="#adapting_rootfs">Adapting the rootfs for own binaries</a></li>
<li><a href="#add_software">Extending Buildroot with more
Software</a></li>
<li><a href="#links">Resources</a></li>
@@ -154,6 +155,17 @@
$ make menuconfig
</pre>
<p>to run the curses-based configurator, or</p>
<pre>
$ make xconfig
</pre>
<p>to run the Qt3-based configurator. On Debian-like systems, the
<code>libncurses5-dev</code> package is required to use the
<i>menuconfig</i> interface, and the <code>libqt3-mt-dev</code> is
required to use the <i>xconfig</i> interface.</p>
<p>For each entry of the configuration tool, you can find associated help
that describes the purpose of the entry. </p>
@@ -218,9 +230,9 @@
<h3><a name="offline_builds" id="offline_builds"></a>
Offline builds</h3>
<p>If you intend to do an offline-build and just want to download all
sources that you previously selected in &quot;make menuconfig&quot; then
issue:</p>
<p>If you intend to do an offline-build and just want to download
all sources that you previously selected in the configurator
(<i>menuconfig</i> or <i>xconfig</i>) then issue:</p>
<pre>
$ make source
</pre>
@@ -339,9 +351,10 @@ $ make me&lt;TAB&gt;
is made. So simply rebuilding the image by running
make should propagate any new changes to the image. </li>
<li>When configuring the build system, using <code>make menuconfig</code>,
you can specify the contents of the /etc/hostname and /etc/issue
(the welcome banner) in the <code>PROJECT</code> section</li>
<li>When configuring the build system, using <code>make
menuconfig</code> or <code>make xconfig</code>, you can specify
the contents of the /etc/hostname and /etc/issue (the welcome
banner) in the <code>PROJECT</code> section</li>
</ul>
<h2><a name="custom_busybox" id="custom_busybox"></a>Customizing the
@@ -877,6 +890,22 @@ It allows to generate toolchains based on <i>uClibc</i>, <i>glibc</i>
and <i>eglibc</i> for a wide range of architectures, and has good
community support.</p>
<h2><a name="adapting_rootfs" id="adapting_rootfs">Adapting the rootfs
for own binaries</h2>
<p>When using BR2 in an environment where own software binaries or
static data should be part of the generated rootfs package, the
<code>BR2_ROOTFS_POST_BUILD_SCRIPT</code> feature might interest
you. You can specify a command here which is called <i>after</i> BR2
built all the selected software, but <i>before</i> the the rootfs
packages are assembled. The destination rootfs folder is given as
first argument. You can add own components here, change
default configurations and remove unwanted files.</p>
<p>You should, however, use that feature with care. Whenever you
find that a certain package generates wrong or unneeded files, you
should rather fix than package than working around it with a
cleanup script.</p>
<h2><a name="add_software" id="add_software"></a>Extending Buildroot with
more software</h2>

View File

@@ -20,7 +20,7 @@ Current documentation for buildroot includes:
<li>
If you find that you need help with buildroot, you can ask for help on the
<a href= "lists/uClibc/">buildroot mailing list</a> at buildroot at mail.uclibc.org.
<a href= "/lists/buildroot/">buildroot mailing list</a> at buildroot at mail.uclibc.org.
In addition the BusyBox, uClibc, and buildroot developers are also known to
hang out on the uClibc IRC channel: #uclibc on irc.freenode.net.
</li>

View File

@@ -6,7 +6,15 @@
<p>
The latest release can always be dowloaded from
The latest stable release is <b>2009.05</b>, which can be downloaded
here:<p>
<a href="/downloads/buildroot-2009.05.tar.gz">buildroot-2009.05.tar.gz</a>
or
<a href="/downloads/buildroot-2009.05.tar.bz2">buildroot-2009.05.tar.bz2</a>.
<p>
This and earlier releases can always be dowloaded from
<a href="/downloads/">http://buildroot.net/downloads/</a>.
<p>

View File

@@ -27,12 +27,13 @@ tree at any time so it is in sync with the latest and greatest by entering your
buildroot directory and running the command:
<pre>
git pull</pre>
git pull
</pre>
Because you've only been granted anonymous access to the tree, you won't be
able to commit any changes. Changes can be submitted for inclusion by posting
them to the buildroot mailing list or to the <a
href="http://bugs.uclibc.org/">Bug and Patch Tracking System</a>.
href="https://bugs.uclibc.org/">Bug and Patch Tracking System</a>.
<!--#include file="footer.html" -->

View File

@@ -36,7 +36,7 @@
<br><a href="/download.html">Download</a>
<br><a href="http://git.buildroot.net/buildroot">Browse Source</a>
<br><a href="/git.html">Accessing Source</a>
<br><a href="http://bugs.uclibc.org/">Bug Tracking</a>
<br><a href="https://bugs.uclibc.org/">Bug Tracking</a>
<br><a href="/docs.html">Documentation</a>
<br><a href="/lists.html">Mailing Lists</a>

View File

@@ -5,6 +5,41 @@
<p>
<ul>
<li><b>1 June 2009 -- 2009.05 released</b>
<p>The stable 2009.05 release is out - Thanks to everyone
contributing and testing the release candidates. See the
<a href="http://lists.busybox.net/pipermail/buildroot/2009-June/027640.html">announcement</a>
or <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.05">CHANGES</a>
for more details, and go to the <a href="/downloads/">downloads page</a>
to pick up the <a href="/downloads/buildroot-2009.05.tar.bz2">2009.05
release</a>.</p>
<li><b>27 May 2009 -- 2009.05-rc3 released</b>
<p>We had a number of fixes post-RC2, so RC3 is out (see <a
href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.05_rc3">CHANGES</a>
for details). Now is the moment to test and verify that everything
is working for your favorite config - Expect a final 2009.05 very soon.</p>
<p>Head to the <a href="/downloads/">downloads page</a> to pick up the
<a href="/downloads/buildroot-2009.05-rc3.tar.bz2">2009.05-rc3
release candidate</a>, and report any problems found to the <a
href="lists.html">mailing list</a> or <a
href="https://bugs.uclibc.org">bug tracker</a>.</p>
<li><b>19 May 2009 -- 2009.05-rc2 released</b>
<p>RC2 is out with more cleanups and bug fixes (see <a
href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.05_rc2">CHANGES</a>).
Unless big issues are found, expect this to be the last release
candidate before the release - So give it a good test.</p>
<p>Head to the <a href="/downloads/">downloads page</a> to pick up the
<a href="/downloads/buildroot-2009.05-rc2.tar.bz2">2009.05-rc2
release candidate</a>, and report any problems found to the <a
href="lists.html">mailing list</a> or <a
href="https://bugs.uclibc.org">bug tracker</a>.</p>
<li><b>14 May 2009 -- Buildroot.org</b>
@@ -26,7 +61,7 @@
<a href="/downloads/buildroot-2009.05-rc1.tar.bz2">2009.05-rc1
release candidate</a>, and report any problems found to the <a
href="lists.html">mailing list</a> or <a
href="http://bugs.uclibc.org">bug tracker</a>.</p>
href="https://bugs.uclibc.org">bug tracker</a>.</p>
<li><b>3 May 2009 -- Moved to git</b>
@@ -66,7 +101,7 @@
<a href="/downloads/buildroot-2009.02-rc4.tar.bz2">2009.02-rc4
release candidate</a>, and report any problems found to the <a
href="lists.html">mailing list</a> or <a
href="http://bugs.uclibc.org">bug tracker</a>.</p>
href="https://bugs.uclibc.org">bug tracker</a>.</p>
<li><b>31 January 2009 -- 2009.02-rc3 released</b>
<p>RC3 is out with more cleanups and bug fixes. Unless big issues
@@ -77,7 +112,7 @@
<a href="/downloads/buildroot-2009.02-rc3.tar.bz2">2009.02-rc3
release candidate</a>, and report any problems found to the <a
href="lists.html">mailing list</a> or <a
href="http://bugs.uclibc.org">bug tracker</a>.</p>
href="https://bugs.uclibc.org">bug tracker</a>.</p>
<li><b>23 January 2009 -- 2009.02-rc2 released</b>
<p>Another week, another release candidate with a bunch of
@@ -87,7 +122,7 @@
<a href="/downloads/buildroot-2009.02-rc2.tar.bz2">2009.02-rc2
release candidate</a>, and report any problems found to the <a
href="lists.html">mailing list</a> or <a
href="http://bugs.uclibc.org">bug tracker</a>.</p>
href="https://bugs.uclibc.org">bug tracker</a>.</p>
<li><b>16 January 2009 -- Release candidate and new maintainer</b>
<p>It has been a long time coming, but we finally have a new
@@ -97,7 +132,7 @@
<a href="/downloads/buildroot-2009.02-rc1.tar.bz2">2009.02-rc1
release candidate</a>, and report any problems found to the <a
href="lists.html">mailing list</a> or <a
href="http://bugs.uclibc.org">bug tracker</a>. The plan is to
href="https://bugs.uclibc.org">bug tracker</a>. The plan is to
release 2009.02 in time for <a
href="http://www.fosdem.org/2009/">FOSDEM</a>.</p>
@@ -125,7 +160,7 @@
If you find a bug in buildroot, or wish to submit a patch to fix a problem
or add a shiny new feature, please use the <a
href="http://bugs.uclibc.org/">Bug and Patch Tracking System</a> to post
href="https://bugs.uclibc.org/">Bug and Patch Tracking System</a> to post
the details, to make certain your work is not lost.

View File

@@ -61,6 +61,7 @@ source "package/customize/Config.in"
if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
source "package/dash/Config.in"
endif
source "package/enchant/Config.in"
source "package/file/Config.in"
source "package/gamin/Config.in"
source "package/icu/Config.in"
@@ -132,7 +133,9 @@ if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
source "package/boa/Config.in"
endif
source "package/bind/Config.in"
source "package/bmon/Config.in"
source "package/bridge-utils/Config.in"
source "package/ctorrent/Config.in"
if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
source "package/dhcp/Config.in"
endif
@@ -147,6 +150,7 @@ source "package/iperf/Config.in"
source "package/iproute2/Config.in"
source "package/ipsec-tools/Config.in"
source "package/iptables/Config.in"
source "package/iw/Config.in"
source "package/kismet/Config.in"
source "package/l2tp/Config.in"
source "package/libcgi/Config.in"
@@ -154,6 +158,7 @@ source "package/libcgicc/Config.in"
source "package/libcurl/Config.in"
source "package/libdnet/Config.in"
source "package/libeXosip2/Config.in"
source "package/libnl/Config.in"
source "package/libosip2/Config.in"
source "package/libpcap/Config.in"
source "package/libsoup/Config.in"
@@ -180,6 +185,7 @@ source "package/netkitbase/Config.in"
source "package/netkittelnet/Config.in"
source "package/netplug/Config.in"
source "package/netsnmp/Config.in"
source "package/netstat-nat/Config.in"
source "package/nfs-utils/Config.in"
source "package/ntp/Config.in"
source "package/olsr/Config.in"
@@ -198,6 +204,7 @@ source "package/quagga/Config.in"
source "package/rsync/Config.in"
source "package/samba/Config.in"
source "package/socat/Config.in"
source "package/spawn-fcgi/Config.in"
source "package/stunnel/Config.in"
source "package/tcpdump/Config.in"
source "package/tftpd/Config.in"
@@ -230,8 +237,8 @@ source "package/dbus/Config.in"
source "package/dbus-glib/Config.in"
source "package/dbus-python/Config.in"
source "package/devmem2/Config.in"
source "package/dm/Config.in"
source "package/dmraid/Config.in"
source "package/dosfstools/Config.in"
source "package/e2fsprogs/Config.in"
source "package/eeprog/Config.in"
source "package/fconfig/Config.in"
@@ -254,9 +261,9 @@ source "package/lm-sensors/Config.in"
source "package/lvm2/Config.in"
source "package/mdadm/Config.in"
source "package/memtester/Config.in"
source "package/mkdosfs/Config.in"
source "package/mtd/Config.in"
source "package/ntfs-3g/Config.in"
source "package/ntfsprogs/Config.in"
source "package/pciutils/Config.in"
source "package/pcmcia/Config.in"
source "package/setserial/Config.in"
@@ -305,6 +312,7 @@ source "package/sdl_image/Config.in"
source "package/sdl_mixer/Config.in"
source "package/sdl_net/Config.in"
source "package/sdl_ttf/Config.in"
source "package/sdl_gfx/Config.in"
source "package/tiff/Config.in"
comment "busybox graphic applications"
@@ -313,46 +321,13 @@ source "package/fbv/Config.in"
source "package/fbset/Config.in"
comment "other GUIs"
source "package/qtopia4/Config.in"
source "package/qt/Config.in"
#source "package/microwin/Config.in"
choice
prompt "X Window System server"
default BR2_PACKAGE_XSERVER_none
help
Select the X Window System server to use
config BR2_PACKAGE_XSERVER_none
bool "none"
config BR2_PACKAGE_XSERVER_xorg
bool "modular xorg"
depends on BR2_USE_WCHAR && BR2_LARGEFILE && BR2_INSTALL_LIBSTDCPP # && BR2_ENABLE_LOCALE
# depending on BR2_ENABLE_LOCALE gives a recursion error with dbus
config BR2_PACKAGE_XSERVER_tinyx
bool "tinyx"
depends on BR2_USE_WCHAR
endchoice
comment "xorg requires a toolchain with C++, LOCALE, LARGEFILE and WCHAR support"
depends on !(BR2_USE_WCHAR && BR2_LARGEFILE && BR2_INSTALL_LIBSTDCPP && BR2_ENABLE_LOCALE)
comment "tinyx requires a toolchain with WCHAR support"
depends on !BR2_USE_WCHAR
config BR2_X11_PREFIX
string
default "/usr/X11R6" if BR2_PACKAGE_XSERVER_xorg
default "/usr" if BR2_PACKAGE_XSERVER_tinyx
help
X11 apps root location
if !BR2_PACKAGE_XSERVER_none
source "package/x11r7/Config.in"
endif
comment "X libraries and helper libraries"
#XXX: maybe some of these should depend on !BR2_PACKAGE_XSERVER_none
source "package/atk/Config.in"
source "package/cairo/Config.in"
source "package/pango/Config.in"

View File

@@ -130,7 +130,7 @@ TOOLCHAIN_EXTERNAL_PATH:=$(strip $(subst ",, $(BR2_TOOLCHAIN_EXTERNAL_PATH)))
#"))
#TOOL_BUILD_DIR=$(BASE_DIR)/$(TOPDIR_PREFIX)toolchain_build_$(TOOLCHAIN_EXTERNAL_PREFIX)
TOOL_BUILD_DIR=$(BASE_DIR)/$(TOPDIR_PREFIX)toolchain_build_$(ARCH)$(COND_ARCH_FPU_SUFFIX)$(TOPDIR_SUFFIX)
TARGET_PATH="$(STAGING_DIR)/bin:$(STAGING_DIR)/usr/bin:$(TOOL_BUILD_DIR)/bin:$(TOOLCHAIN_EXTERNAL_PATH)/bin:$(PATH)"
TARGET_PATH="$(HOST_DIR)/bin:$(HOST_DIR)/usr/bin:$(TOOL_BUILD_DIR)/bin:$(TOOLCHAIN_EXTERNAL_PATH)/bin:$(PATH)"
#IMAGE:=$(BINARIES_DIR)/$(BR2_ROOTFS_PREFIX).$(TOOLCHAIN_EXTERNAL_PREFIX)$(ROOTFS_SUFFIX)
IMAGE:=$(BINARIES_DIR)/$(BR2_ROOTFS_PREFIX).$(ARCH)$(COND_ARCH_FPU_SUFFIX)$(ROOTFS_SUFFIX)
@@ -181,7 +181,7 @@ ifeq ($(BR2_STRIP_none),y)
TARGET_STRIP=true -Not_stripping
STRIPCMD=$(TARGET_STRIP)
endif
INSTALL=/usr/bin/install
INSTALL=$(shell which install || type -p install)
FLEX:=$(shell which flex || type -p flex)
BISON:=$(shell which bison || type -p bison)
@@ -205,20 +205,11 @@ HOST_ARCH:=$(shell $(HOSTCC) -dumpmachine | sed -e s'/-.*//' \
-e 's/mipsel-.*/mipsel/' \
-e 's/cris.*/cris/' \
-e 's/i[3-9]86/i386/' \
-e 's/xtensa.*/xtensa/' \
)
GNU_HOST_NAME:=$(HOST_ARCH)-$(subst ",,$(BR2_GNU_BUILD_SUFFIX))
#")
AUTO_CONFIGURE_TARGET=\
$(TARGET_CONFIGURE_OPTS) \
$(TARGET_CONFIGURE_ARGS) \
$(TARGET_CONFIGURE_ENV) \
$(if $(THIS_SRCDIR),$(THIS_SRCDIR)/,./)configure \
$(if $(BR2_CONFIG_CACHE),--cache-file="$(PROJECT_BUILD_DIR)/tgt-config.cache",) \
--target=$(GNU_TARGET_NAME) \
--host=$(GNU_TARGET_NAME) \
--build=$(GNU_HOST_NAME)
TARGET_CONFIGURE_OPTS=PATH=$(TARGET_PATH) \
AR="$(TARGET_AR)" \
AS="$(TARGET_AS)" \
@@ -380,23 +371,8 @@ else
ENABLE_DEBUG:=
endif
# X Windowing system
XSERVER:=
ifeq ($(BR2_PACKAGE_TINYX),y)
XSERVER+=tinyx
endif
ifeq ($(BR2_PACKAGE_XORG),y)
XSERVER+=xorg
endif
ifeq ($(BR2_PACKAGE_XORG7),y)
XSERVER+=xserver_xorg-server
endif
ifeq ($(BR2_PACKAGE_XGGI),y)
XSERVER+=xggi
endif
X11_PREFIX:=$(strip $(subst ",, $(BR2_X11_PREFIX)))
#"))

View File

@@ -45,7 +45,7 @@ ATK_CONF_OPT = --enable-shared \
--disable-glibtest --enable-explicit-deps=no \
--disable-debug
ifneq ($(BR2_PACKAGE_XSERVER_none),y)
ifeq ($(BR2_PACKAGE_XORG7),y)
ATK_CONF_OPT += --with-x \
--x-includes=$(STAGING_DIR)/usr/include/X11 \
--x-libraries=$(STAGING_DIR)/usr/lib --disable-glibtest

View File

@@ -18,6 +18,12 @@ case "$1" in
if [ $? -eq 0 ]; then
/sbin/ifconfig $interface 0.0.0.0
fi
if [ -x /usr/sbin/avahi-autoipd ]; then
/usr/sbin/avahi-autoipd -k $interface
fi
;;
leasefail|nak)
if [ -x /usr/sbin/avahi-autoipd ]; then
/usr/sbin/avahi-autoipd -wD $interface --no-chroot
fi

View File

@@ -3,7 +3,7 @@
# bind
#
#############################################################
BIND_VERSION = 9.5.1-P2
BIND_VERSION = 9.5.1-P3
BIND_SOURCE = bind-$(BIND_VERSION).tar.gz
BIND_SITE = ftp://ftp.isc.org/isc/bind9/$(BIND_VERSION)
BIND_LIBTOOL_PATCH = NO

View File

@@ -1,6 +1,6 @@
config BR2_PACKAGE_BLACKBOX
bool "blackbox"
depends on BR2_PACKAGE_XORG||BR2_PACKAGE_XORG7
depends on BR2_PACKAGE_XORG7
depends on BR2_INSTALL_LIBSTDCPP
help
Blackbox is a fast, lightweight window manager for the X

View File

@@ -14,6 +14,6 @@ BLACKBOX_INSTALL_TARGET:=YES
BLACKBOX_CONF_OPT:=--x-includes=$(STAGING_DIR)/usr/include/X11 \
--x-libraries=$(STAGING_DIR)/usr/lib
BLACKBOX_DEPENDENCIES:=uclibc $(XSERVER)
BLACKBOX_DEPENDENCIES:=uclibc xserver_xorg-server
$(eval $(call AUTOTARGETS,package,blackbox))

5
package/bmon/Config.in Normal file
View File

@@ -0,0 +1,5 @@
config BR2_PACKAGE_BMON
bool "bmon"
select BR2_PACKAGE_NCURSES
help
Linux bandwidth monitor

View File

@@ -0,0 +1,36 @@
diff -ru bmon-2.1.0~/src/out_audio.c bmon-2.1.0/src/out_audio.c
--- bmon-2.1.0~/src/out_audio.c 2008-07-26 20:06:24.000000000 +0200
+++ bmon-2.1.0/src/out_audio.c 2008-07-26 20:09:42.000000000 +0200
@@ -141,7 +141,7 @@
.om_draw = audio_draw,
.om_set_opts = audio_set_opts,
.om_probe = audio_probe,
- .om_shutdown audio_shutdown,
+ .om_shutdown = audio_shutdown
};
static void __init audio_init(void)
diff -ru bmon-2.1.0~/src/out_db.c bmon-2.1.0/src/out_db.c
--- bmon-2.1.0~/src/out_db.c 2008-07-26 20:06:24.000000000 +0200
+++ bmon-2.1.0/src/out_db.c 2008-07-26 20:07:44.000000000 +0200
@@ -679,7 +679,7 @@
.om_draw = db_draw,
.om_set_opts = db_set_opts,
.om_probe = db_probe,
- .om_shutdown db_shutdown,
+ .om_shutdown = db_shutdown,
};
static void __init db_init(void)
diff -ru bmon-2.1.0~/src/out_xml_event.c bmon-2.1.0/src/out_xml_event.c
--- bmon-2.1.0~/src/out_xml_event.c 2008-07-26 20:06:24.000000000 +0200
+++ bmon-2.1.0/src/out_xml_event.c 2008-07-26 20:09:42.000000000 +0200
@@ -127,7 +127,7 @@
.om_draw = xml_event_draw,
.om_set_opts = xml_event_set_opts,
.om_probe = xml_event_probe,
- .om_shutdown xml_event_shutdown,
+ .om_shutdown = xml_event_shutdown
};
static void __init xml_event_init(void)

View File

@@ -0,0 +1,24 @@
diff -Nura bmon/configure bmon.libnl/configure
--- bmon/configure 2005-04-05 12:01:33.000000000 -0300
+++ bmon.libnl/configure 2009-06-10 16:10:52.000000000 -0300
@@ -7327,13 +7327,13 @@
echo "${ECHO_T}$ac_cv_lib_nl_nl_connect" >&6
if test $ac_cv_lib_nl_nl_connect = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_NL "1"
-_ACEOF
-
- LIBNL="-lnl"
- NL="Yes"
+ case ${target_os} in
+ *linux*)
+ echo
+ echo "*** Warning: Building bmon on Linux w/o libnl ***"
+ echo
+ ;;
+ esac
else

View File

@@ -0,0 +1,12 @@
diff -Nura bmon/GNUmakefile bmon.nostrip/GNUmakefile
--- bmon/GNUmakefile 2005-04-05 12:01:33.000000000 -0300
+++ bmon.nostrip/GNUmakefile 2009-06-10 16:12:04.000000000 -0300
@@ -50,7 +50,7 @@
install:
./install-sh -d -m 0755 $(DESTDIR)$(prefix)/bin
./install-sh -d -m 0755 $(DESTDIR)$(mandir)/man1
- ./install-sh -c -s -m 0755 src/bmon $(DESTDIR)$(prefix)/bin
+ ./install-sh -c -m 0755 src/bmon $(DESTDIR)$(prefix)/bin
./install-sh -c -m 0644 man/bmon.1 $(DESTDIR)$(mandir)/man1
show: Makefile.opts

18
package/bmon/bmon.mk Normal file
View File

@@ -0,0 +1,18 @@
#############################################################
#
# bmon
#
#############################################################
BMON_VERSION = 2.1.0
BMON_SOURCE = bmon-$(BMON_VERSION).tar.gz
BMON_SITE = http://distfiles.gentoo.org/distfiles
BMON_DEPENDENCIES = ncurses uclibc
BMON_INSTALL_TARGET_OPT = DESTDIR=$(TARGET_DIR) install
$(eval $(call AUTOTARGETS,package,bmon))
$(BMON_TARGET_UNINSTALL):
$(call MESSAGE,"Uninstalling")
rm -f $(TARGET_DIR)/usr/bin/bmon
rm -f $(BMON_TARGET_INSTALL_TARGET) $(BMON_HOOK_POST_INSTALL)

View File

@@ -36,7 +36,7 @@ config BR2_BUSYBOX_VERSION
string
default "1.12.4" if BR2_BUSYBOX_VERSION_1_12_X
default "1.13.4" if BR2_BUSYBOX_VERSION_1_13_X
default "1.14.0" if BR2_BUSYBOX_VERSION_1_14_X
default "1.14.2" if BR2_BUSYBOX_VERSION_1_14_X
config BR2_PACKAGE_BUSYBOX_FULLINSTALL
bool "Run BusyBox's own full installation"

View File

@@ -562,7 +562,7 @@ CONFIG_DC=y
# CONFIG_DEVFSD_FG_NP is not set
# CONFIG_DEVFSD_VERBOSE is not set
# CONFIG_FEATURE_DEVFS is not set
# CONFIG_DEVMEM is not set
CONFIG_DEVMEM=y
CONFIG_EJECT=y
# CONFIG_FEATURE_EJECT_SCSI is not set
# CONFIG_FBSPLASH is not set

View File

@@ -1,13 +0,0 @@
--- busybox-1.14.0/util-linux/acpid.c Tue Apr 14 01:43:11 2009
+++ busybox-1.14.0-acpid/util-linux/acpid.c Sat Apr 18 13:33:19 2009
@@ -78,8 +78,8 @@
// goto configuration directory
xchdir(opt_conf);
-// // setup signals
-// bb_signals(BB_FATAL_SIGS, record_signo);
+ // prevent zombies
+ signal(SIGCHLD, SIG_IGN);
// no explicit evdev files given? -> use proc event interface
if (!*argv) {

View File

@@ -1,21 +0,0 @@
--- busybox-1.14.0/editors/awk.c Tue Apr 14 01:43:09 2009
+++ busybox-1.14.0-awk/editors/awk.c Mon May 18 23:49:29 2009
@@ -1571,13 +1571,14 @@
n++; /* we saw yet another delimiter */
} else {
pmatch[0].rm_eo = l;
- if (s[l]) pmatch[0].rm_eo++;
+ if (s[l])
+ pmatch[0].rm_eo++;
}
memcpy(s1, s, l);
/* make sure we remove *all* of the separator chars */
- while (l < pmatch[0].rm_eo) {
- s1[l++] = '\0';
- }
+ do {
+ s1[l] = '\0';
+ } while (++l < pmatch[0].rm_eo);
nextword(&s1);
s += pmatch[0].rm_eo;
} while (*s);

View File

@@ -1,11 +0,0 @@
--- busybox-1.14.0/scripts/defconfig Tue Apr 14 01:42:52 2009
+++ busybox-1.14.0-defconfig/scripts/defconfig Fri Apr 17 01:08:24 2009
@@ -579,7 +579,7 @@
CONFIG_EJECT=y
CONFIG_FEATURE_EJECT_SCSI=y
CONFIG_FBSPLASH=y
-CONFIG_FLASH_ERASEALL=y
+# CONFIG_FLASH_ERASEALL is not set
CONFIG_IONICE=y
# CONFIG_INOTIFYD is not set
CONFIG_LAST=y

View File

@@ -1,90 +0,0 @@
--- busybox-1.14.0/modutils/depmod.c Tue Apr 14 01:42:55 2009
+++ busybox-1.14.0-depmod/modutils/depmod.c Mon May 18 22:37:14 2009
@@ -40,26 +40,28 @@
ARG_r = (1<<6) /* Compat dummy. Linux Makefile uses it */
};
-static int FAST_FUNC parse_module(const char *fname, struct stat *sb,
- void *data, int UNUSED_PARAM depth)
+static int FAST_FUNC parse_module(const char *fname, struct stat *sb UNUSED_PARAM,
+ void *data, int depth UNUSED_PARAM)
{
+ char modname[MODULE_NAME_LEN];
module_info **first = (module_info **) data;
char *image, *ptr;
module_info *info;
- size_t len = sb->st_size;
+ /* Arbitrary. Was sb->st_size, but that breaks .gz etc */
+ size_t len = (64*1024*1024 - 4096);
if (strrstr(fname, ".ko") == NULL)
return TRUE;
image = xmalloc_open_zipped_read_close(fname, &len);
- info = xzalloc(sizeof(module_info));
+ info = xzalloc(sizeof(*info));
info->next = *first;
*first = info;
info->dnext = info->dprev = info;
info->name = xasprintf("/%s", fname);
- info->modname = filename2modname(fname, NULL);
+ info->modname = xstrdup(filename2modname(fname, modname));
for (ptr = image; ptr < image + len - 10; ptr++) {
if (strncmp(ptr, "depends=", 8) == 0) {
char *u;
@@ -69,12 +71,14 @@
if (*u == '-')
*u = '_';
ptr += string_to_llist(ptr, &info->dependencies, ",");
- } else if (ENABLE_FEATURE_MODUTILS_ALIAS &&
- strncmp(ptr, "alias=", 6) == 0) {
+ } else if (ENABLE_FEATURE_MODUTILS_ALIAS
+ && strncmp(ptr, "alias=", 6) == 0
+ ) {
llist_add_to(&info->aliases, xstrdup(ptr + 6));
ptr += strlen(ptr);
- } else if (ENABLE_FEATURE_MODUTILS_SYMBOLS &&
- strncmp(ptr, "__ksymtab_", 10) == 0) {
+ } else if (ENABLE_FEATURE_MODUTILS_SYMBOLS
+ && strncmp(ptr, "__ksymtab_", 10) == 0
+ ) {
ptr += 10;
if (strncmp(ptr, "gpl", 3) == 0 ||
strcmp(ptr, "strings") == 0)
@@ -199,10 +203,17 @@
if (!(option_mask32 & ARG_n))
xfreopen_write("modules.alias", stdout);
for (m = modules; m != NULL; m = m->next) {
+ const char *fname = bb_basename(m->name);
+ int fnlen = strchrnul(fname, '.') - fname;
while (m->aliases) {
- printf("alias %s %s\n",
+ /* Last word can well be m->modname instead,
+ * but depmod from module-init-tools 3.4
+ * uses module basename, i.e., no s/-/_/g.
+ * (pathname and .ko.* are still stripped)
+ * Mimicking that... */
+ printf("alias %s %.*s\n",
(char*)llist_pop(&m->aliases),
- m->modname);
+ fnlen, fname);
}
}
#endif
@@ -210,10 +221,12 @@
if (!(option_mask32 & ARG_n))
xfreopen_write("modules.symbols", stdout);
for (m = modules; m != NULL; m = m->next) {
+ const char *fname = bb_basename(m->name);
+ int fnlen = strchrnul(fname, '.') - fname;
while (m->symbols) {
- printf("alias symbol:%s %s\n",
+ printf("alias symbol:%s %.*s\n",
(char*)llist_pop(&m->symbols),
- m->modname);
+ fnlen, fname);
}
}
#endif

View File

@@ -1,14 +0,0 @@
--- busybox-1.14.0/libbb/pw_encrypt_des.c Tue Apr 14 01:43:00 2009
+++ busybox-1.14.0-des/libbb/pw_encrypt_des.c Fri May 1 03:40:16 2009
@@ -778,8 +778,10 @@
to64_msb_first(output + 2, (r0 >> 8));
/* bits 7..0 of r0 and 31..16 of r1 */
to64_msb_first(output + 6, (r0 << 16) | (r1 >> 16));
- /* (bits 15..0 of r1 + 00) and NUL byte */
+ /* bits 15..0 of r1 and two zero bits (plus extra zero byte) */
to64_msb_first(output + 10, (r1 << 8));
+ /* extra zero byte is encoded as '.', fixing it */
+ output[13] = '\0';
#endif
return output;

View File

@@ -1,12 +0,0 @@
--- busybox-1.14.0/networking/udhcp/leases.c Tue Apr 14 01:42:51 2009
+++ busybox-1.14.0-dhcp_hostname/networking/udhcp/leases.c Tue Apr 21 02:41:22 2009
@@ -63,7 +63,8 @@
if (oldest) {
oldest->hostname[0] = '\0';
if (hostname) {
- hostname_length = hostname[-1]; /* look at option size byte */
+ /* option size byte, + 1 for NUL */
+ hostname_length = hostname[-1] + 1;
if (hostname_length > sizeof(oldest->hostname))
hostname_length = sizeof(oldest->hostname);
hostname = (uint8_t*) safe_strncpy((char*)oldest->hostname, (char*)hostname, hostname_length);

View File

@@ -1,91 +0,0 @@
--- busybox-1.14.0/archival/gzip.c Tue Apr 14 01:42:55 2009
+++ busybox-1.14.0-gzip/archival/gzip.c Mon May 18 22:36:12 2009
@@ -389,19 +389,6 @@
}
/* ===========================================================================
- * Clear input and output buffers
- */
-static void clear_bufs(void)
-{
- G1.outcnt = 0;
-#ifdef DEBUG
- G1.insize = 0;
-#endif
- G1.isize = 0;
-}
-
-
-/* ===========================================================================
* Run a set of bytes through the crc shift register. If s is a NULL
* pointer, then initialize the crc shift register contents instead.
* Return the current crc in either case.
@@ -2019,7 +2006,37 @@
{
struct stat s;
- clear_bufs();
+ /* Clear input and output buffers */
+ G1.outcnt = 0;
+#ifdef DEBUG
+ G1.insize = 0;
+#endif
+ G1.isize = 0;
+
+ /* Reinit G2.xxx */
+ memset(&G2, 0, sizeof(G2));
+ G2.l_desc.dyn_tree = G2.dyn_ltree;
+ G2.l_desc.static_tree = G2.static_ltree;
+ G2.l_desc.extra_bits = extra_lbits;
+ G2.l_desc.extra_base = LITERALS + 1;
+ G2.l_desc.elems = L_CODES;
+ G2.l_desc.max_length = MAX_BITS;
+ //G2.l_desc.max_code = 0;
+ G2.d_desc.dyn_tree = G2.dyn_dtree;
+ G2.d_desc.static_tree = G2.static_dtree;
+ G2.d_desc.extra_bits = extra_dbits;
+ //G2.d_desc.extra_base = 0;
+ G2.d_desc.elems = D_CODES;
+ G2.d_desc.max_length = MAX_BITS;
+ //G2.d_desc.max_code = 0;
+ G2.bl_desc.dyn_tree = G2.bl_tree;
+ //G2.bl_desc.static_tree = NULL;
+ G2.bl_desc.extra_bits = extra_blbits,
+ //G2.bl_desc.extra_base = 0;
+ G2.bl_desc.elems = BL_CODES;
+ G2.bl_desc.max_length = MAX_BL_BITS;
+ //G2.bl_desc.max_code = 0;
+
s.st_ctime = 0;
fstat(STDIN_FILENO, &s);
zip(s.st_ctime);
@@ -2064,29 +2081,6 @@
SET_PTR_TO_GLOBALS(xzalloc(sizeof(struct globals) + sizeof(struct globals2))
+ sizeof(struct globals));
barrier();
- G2.l_desc.dyn_tree = G2.dyn_ltree;
- G2.l_desc.static_tree = G2.static_ltree;
- G2.l_desc.extra_bits = extra_lbits;
- G2.l_desc.extra_base = LITERALS + 1;
- G2.l_desc.elems = L_CODES;
- G2.l_desc.max_length = MAX_BITS;
- //G2.l_desc.max_code = 0;
-
- G2.d_desc.dyn_tree = G2.dyn_dtree;
- G2.d_desc.static_tree = G2.static_dtree;
- G2.d_desc.extra_bits = extra_dbits;
- //G2.d_desc.extra_base = 0;
- G2.d_desc.elems = D_CODES;
- G2.d_desc.max_length = MAX_BITS;
- //G2.d_desc.max_code = 0;
-
- G2.bl_desc.dyn_tree = G2.bl_tree;
- //G2.bl_desc.static_tree = NULL;
- G2.bl_desc.extra_bits = extra_blbits,
- //G2.bl_desc.extra_base = 0;
- G2.bl_desc.elems = BL_CODES;
- G2.bl_desc.max_length = MAX_BL_BITS;
- //G2.bl_desc.max_code = 0;
/* Allocate all global buffers (for DYN_ALLOC option) */
ALLOC(uch, G1.l_buf, INBUFSIZ);

View File

@@ -1,35 +0,0 @@
--- busybox-1.14.0/include/libbb.h Tue Apr 14 02:50:20 2009
+++ busybox-1.14.0-libbb/include/libbb.h Fri May 15 23:22:02 2009
@@ -965,6 +965,12 @@
/* How long the longest ESC sequence we know? */
KEYCODE_BUFFER_SIZE = 4
};
+/* Note: fd may be in blocking or non-blocking mode, both make sense.
+ * For one, less uses non-blocking mode.
+ * Only the first read syscall inside read_key may block indefinitely
+ * (unless fd is in non-blocking mode),
+ * subsequent reads will time out after a few milliseconds.
+ */
int read_key(int fd, smalluint *nbuffered, char *buffer) FAST_FUNC;
--- busybox-1.14.0/libbb/read.c Tue Apr 14 01:43:00 2009
+++ busybox-1.14.0-libbb/libbb/read.c Fri May 15 23:22:02 2009
@@ -229,7 +229,7 @@
if (size > 64*1024)
size = 64*1024;
}
- xrealloc(buf, total + 1);
+ buf = xrealloc(buf, total + 1);
buf[total] = '\0';
if (maxsz_p)
@@ -273,7 +273,7 @@
free(buf);
return NULL;
}
- xrealloc(buf, size + 1);
+ buf = xrealloc(buf, size + 1);
buf[size] = '\0';
if (maxsz_p)

View File

@@ -1,12 +0,0 @@
--- busybox-1.14.0/util-linux/mdev.c Tue Apr 14 23:23:04 2009
+++ busybox-1.14.0-mdev/util-linux/mdev.c Mon May 4 19:58:47 2009
@@ -181,7 +181,8 @@
* the rest of fields unless keep_matching == 1 */
/* 2nd field: uid:gid - device ownership */
- parse_chown_usergroup_or_die(&ugid, tokens[1]);
+ if (get_uidgid(&ugid, tokens[1], 1) == 0)
+ bb_error_msg("unknown user/group %s", tokens[1]);
/* 3rd field: mode - device permissions */
mode = strtoul(tokens[2], NULL, 8);

View File

@@ -1,18 +0,0 @@
--- busybox-1.14.0/procps/sysctl.c Tue Apr 14 01:43:09 2009
+++ busybox-1.14.0-sysctl/procps/sysctl.c Sun May 10 23:40:52 2009
@@ -214,11 +214,11 @@
// (but _whitespace_ from ends should be trimmed first (and we do it right))
//TODO: "var==1" is mishandled (must use "=1" as a value, but uses "1")
while (config_read(parser, token, 2, 2, "# \t=", PARSE_NORMAL)) {
+ char *tp;
sysctl_dots_to_slashes(token[0]);
- /* Save ~4 bytes by using parser internals */
- /* parser->line is big enough for sprintf */
- sprintf(parser->line, "%s=%s", token[0], token[1]);
- sysctl_act_recursive(parser->line);
+ tp = xasprintf("%s=%s", token[0], token[1]);
+ sysctl_act_recursive(tp);
+ free(tp);
}
if (ENABLE_FEATURE_CLEAN_UP)
config_close(parser);

View File

@@ -1,14 +0,0 @@
--- busybox-1.14.0/include/platform.h Tue Apr 14 01:43:05 2009
+++ busybox-1.14.0-unaligned/include/platform.h Sat Apr 18 00:14:34 2009
@@ -173,7 +173,10 @@
/* performs reasonably well (gcc usually inlines memcpy here) */
#define move_from_unaligned16(v, u16p) (memcpy(&(v), (u16p), 2))
#define move_from_unaligned32(v, u32p) (memcpy(&(v), (u32p), 4))
-#define move_to_unaligned32(u32p, v) (memcpy((u32p), &(v), 4))
+#define move_to_unaligned32(u32p, v) do { \
+ uint32_t __t = (v); \
+ memcpy((u32p), &__t, 4); \
+} while (0)
#endif
/* ---- Networking ------------------------------------------ */

View File

@@ -0,0 +1,134 @@
--- busybox-1.14.2/coreutils/df.c Sun Jul 5 22:59:28 2009
+++ busybox-1.14.2-df/coreutils/df.c Sun Jul 5 23:00:09 2009
@@ -44,7 +44,6 @@
FILE *mount_table;
struct mntent *mount_entry;
struct statfs s;
- static const char ignored_mounts[] ALIGN1 = "rootfs\0";
enum {
OPT_KILO = (1 << 0),
@@ -120,7 +119,7 @@
mount_point = *argv++;
if (!mount_point)
break;
- mount_entry = find_mount_point(mount_point, bb_path_mtab_file);
+ mount_entry = find_mount_point(mount_point);
if (!mount_entry) {
bb_error_msg("%s: can't find mount point", mount_point);
set_error:
@@ -154,8 +153,8 @@
) / (blocks_used + s.f_bavail);
}
- /* GNU coreutils 6.10 skip certain mounts, try to be compatible. */
- if (index_in_strings(device, ignored_mounts) != -1)
+ /* GNU coreutils 6.10 skips certain mounts, try to be compatible. */
+ if (strcmp(device, "rootfs") == 0)
continue;
#ifdef WHY_WE_DO_IT_FOR_DEV_ROOT_ONLY
--- busybox-1.14.2/include/libbb.h Sun Jul 5 22:59:31 2009
+++ busybox-1.14.2-df/include/libbb.h Sun Jul 5 23:00:09 2009
@@ -1025,7 +1025,7 @@
#ifdef HAVE_MNTENT_H
extern int match_fstype(const struct mntent *mt, const char *fstypes) FAST_FUNC;
-extern struct mntent *find_mount_point(const char *name, const char *table) FAST_FUNC;
+extern struct mntent *find_mount_point(const char *name) FAST_FUNC;
#endif
extern void erase_mtab(const char * name) FAST_FUNC;
extern unsigned int tty_baud_to_value(speed_t speed) FAST_FUNC;
--- busybox-1.14.2/libbb/find_mount_point.c Sun Jul 5 22:59:24 2009
+++ busybox-1.14.2-df/libbb/find_mount_point.c Sun Jul 5 23:00:09 2009
@@ -17,7 +17,7 @@
* Given any other file (or directory), find the mount table entry for its
* filesystem.
*/
-struct mntent* FAST_FUNC find_mount_point(const char *name, const char *table)
+struct mntent* FAST_FUNC find_mount_point(const char *name)
{
struct stat s;
dev_t mountDevice;
@@ -25,27 +25,35 @@
struct mntent *mountEntry;
if (stat(name, &s) != 0)
- return 0;
+ return NULL;
- if ((s.st_mode & S_IFMT) == S_IFBLK)
+ if (S_ISBLK(s.st_mode))
mountDevice = s.st_rdev;
else
mountDevice = s.st_dev;
- mountTable = setmntent(table ? table : bb_path_mtab_file, "r");
+ mountTable = setmntent(bb_path_mtab_file, "r");
if (!mountTable)
return 0;
- while ((mountEntry = getmntent(mountTable)) != 0) {
+ while ((mountEntry = getmntent(mountTable)) != NULL) {
+ /* rootfs mount in Linux 2.6 exists always,
+ * and it makes sense to always ignore it.
+ * Otherwise people can't reference their "real" root! */
+ if (strcmp(mountEntry->mnt_fsname, "rootfs") == 0)
+ continue;
+
if (strcmp(name, mountEntry->mnt_dir) == 0
|| strcmp(name, mountEntry->mnt_fsname) == 0
) { /* String match. */
break;
}
- if (stat(mountEntry->mnt_fsname, &s) == 0 && s.st_rdev == mountDevice) /* Match the device. */
+ /* Match the device. */
+ if (stat(mountEntry->mnt_fsname, &s) == 0 && s.st_rdev == mountDevice)
break;
- if (stat(mountEntry->mnt_dir, &s) == 0 && s.st_dev == mountDevice) /* Match the directory's mount point. */
+ /* Match the directory's mount point. */
+ if (stat(mountEntry->mnt_dir, &s) == 0 && s.st_dev == mountDevice)
break;
}
endmntent(mountTable);
--- busybox-1.14.2/util-linux/mkfs_minix.c Sun Jul 5 22:59:30 2009
+++ busybox-1.14.2-df/util-linux/mkfs_minix.c Sun Jul 5 23:00:09 2009
@@ -624,7 +624,6 @@
int mkfs_minix_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
int mkfs_minix_main(int argc UNUSED_PARAM, char **argv)
{
- struct mntent *mp;
unsigned opt;
char *tmp;
struct stat statbuf;
@@ -683,11 +682,8 @@
G.total_blocks = 65535;
/* Check if it is mounted */
- mp = find_mount_point(G.device_name, NULL);
- if (mp && strcmp(G.device_name, mp->mnt_fsname) == 0)
- bb_error_msg_and_die("%s is mounted on %s; "
- "refusing to make a filesystem",
- G.device_name, mp->mnt_dir);
+ if (find_mount_point(G.device_name))
+ bb_error_msg_and_die("can't format mounted filesystem");
xmove_fd(xopen(G.device_name, O_RDWR), dev_fd);
if (fstat(dev_fd, &statbuf) < 0)
--- busybox-1.14.2/util-linux/mkfs_vfat.c Sun Jul 5 22:59:30 2009
+++ busybox-1.14.2-df/util-linux/mkfs_vfat.c Sun Jul 5 23:00:35 2009
@@ -273,10 +273,10 @@
device_num == 0x0d00 || // xd
device_num == 0x1600 ) // hdc, hdd
)
- bb_error_msg_and_die("Will not try to make filesystem on full-disk device (use -I if wanted)");
+ bb_error_msg_and_die("will not try to make filesystem on full-disk device (use -I if wanted)");
// can't work on mounted filesystems
- if (find_mount_point(device_name, NULL))
- bb_error_msg_and_die("Can't format mounted filesystem");
+ if (find_mount_point(device_name))
+ bb_error_msg_and_die("can't format mounted filesystem");
#endif
// get true sector size
// (parameter must be int*, not long* or size_t*)

View File

@@ -0,0 +1,152 @@
diff -urpN busybox-1.14.2/coreutils/ls.c busybox-1.14.2-ls/coreutils/ls.c
--- busybox-1.14.2/coreutils/ls.c 2009-06-22 00:40:29.000000000 +0200
+++ busybox-1.14.2-ls/coreutils/ls.c 2009-07-03 12:46:16.000000000 +0200
@@ -144,8 +144,7 @@ static const char ls_options[] ALIGN1 =
USE_FEATURE_LS_FOLLOWLINKS("L") /* 1, 24 */
USE_FEATURE_LS_RECURSIVE("R") /* 1, 25 */
USE_FEATURE_HUMAN_READABLE("h") /* 1, 26 */
- USE_SELINUX("K") /* 1, 27 */
- USE_SELINUX("Z") /* 1, 28 */
+ USE_SELINUX("KZ") /* 2, 28 */
USE_FEATURE_AUTOWIDTH("T:w:") /* 2, 30 */
;
enum {
@@ -162,6 +161,16 @@ enum {
OPT_Q = (1 << 10),
//OPT_A = (1 << 11),
//OPT_k = (1 << 12),
+ OPTBIT_color = 13
+ + 4 * ENABLE_FEATURE_LS_TIMESTAMPS
+ + 4 * ENABLE_FEATURE_LS_SORTFILES
+ + 2 * ENABLE_FEATURE_LS_FILETYPES
+ + 1 * ENABLE_FEATURE_LS_FOLLOWLINKS
+ + 1 * ENABLE_FEATURE_LS_RECURSIVE
+ + 1 * ENABLE_FEATURE_HUMAN_READABLE
+ + 2 * ENABLE_SELINUX
+ + 2 * ENABLE_FEATURE_AUTOWIDTH,
+ OPT_color = 1 << OPTBIT_color,
};
enum {
@@ -889,16 +898,6 @@ static int list_single(const struct dnod
}
-/* colored LS support by JaWi, janwillem.janssen@lxtreme.nl */
-#if ENABLE_FEATURE_LS_COLOR
-/* long option entry used only for --color, which has no short option
- * equivalent */
-static const char ls_color_opt[] ALIGN1 =
- "color\0" Optional_argument "\xff" /* no short equivalent */
- ;
-#endif
-
-
int ls_main(int argc UNUSED_PARAM, char **argv)
{
struct dnode **dnd;
@@ -911,8 +910,25 @@ int ls_main(int argc UNUSED_PARAM, char
int dnfiles;
int dndirs;
int i;
+#if ENABLE_FEATURE_LS_COLOR
+ /* colored LS support by JaWi, janwillem.janssen@lxtreme.nl */
+ /* coreutils 6.10:
+ * # ls --color=BOGUS
+ * ls: invalid argument 'BOGUS' for '--color'
+ * Valid arguments are:
+ * 'always', 'yes', 'force'
+ * 'never', 'no', 'none'
+ * 'auto', 'tty', 'if-tty'
+ * (and substrings: "--color=alwa" work too)
+ */
+ static const char ls_longopts[] ALIGN1 =
+ "color\0" Optional_argument "\xff"; /* no short equivalent */
+ static const char color_str[] ALIGN1 =
+ "always\0""yes\0""force\0"
+ "auto\0""tty\0""if-tty\0";
/* need to initialize since --color has _an optional_ argument */
- USE_FEATURE_LS_COLOR(const char *color_opt = "always";)
+ const char *color_opt = color_str; /* "always" */
+#endif
INIT_G();
@@ -927,7 +943,7 @@ int ls_main(int argc UNUSED_PARAM, char
#endif
/* process options */
- USE_FEATURE_LS_COLOR(applet_long_options = ls_color_opt;)
+ USE_FEATURE_LS_COLOR(applet_long_options = ls_longopts;)
#if ENABLE_FEATURE_AUTOWIDTH
opt_complementary = "T+:w+"; /* -T N, -w N */
opt = getopt32(argv, ls_options, &tabstops, &terminal_width
@@ -966,13 +982,20 @@ int ls_main(int argc UNUSED_PARAM, char
if (!p || (p[0] && strcmp(p, "none") != 0))
show_color = 1;
}
- if (opt & (1 << i)) { /* next flag after short options */
- if (strcmp("always", color_opt) == 0)
- show_color = 1;
- else if (strcmp("never", color_opt) == 0)
+ if (opt & OPT_color) {
+ if (color_opt[0] == 'n')
show_color = 0;
- else if (strcmp("auto", color_opt) == 0 && isatty(STDOUT_FILENO))
- show_color = 1;
+ else switch (index_in_substrings(color_str, color_opt)) {
+ case 3:
+ case 4:
+ case 5:
+ if (isatty(STDOUT_FILENO)) {
+ case 0:
+ case 1:
+ case 2:
+ show_color = 1;
+ }
+ }
}
#endif
diff -urpN busybox-1.14.2/testsuite/ls/ls-1-works busybox-1.14.2-ls/testsuite/ls/ls-1-works
--- busybox-1.14.2/testsuite/ls/ls-1-works 2009-06-22 00:32:00.000000000 +0200
+++ busybox-1.14.2-ls/testsuite/ls/ls-1-works 2009-07-02 14:28:45.000000000 +0200
@@ -1,4 +1,4 @@
[ -n "$d" ] || d=..
-ls -1 "$d" > logfile.gnu
-busybox ls -1 "$d" > logfile.bb
-cmp logfile.gnu logfile.bb
+LC_ALL=C ls -1 "$d" > logfile.gnu
+LC_ALL=C busybox ls -1 "$d" > logfile.bb
+diff -ubw logfile.gnu logfile.bb
diff -urpN busybox-1.14.2/testsuite/ls/ls-h-works busybox-1.14.2-ls/testsuite/ls/ls-h-works
--- busybox-1.14.2/testsuite/ls/ls-h-works 2009-06-22 00:32:00.000000000 +0200
+++ busybox-1.14.2-ls/testsuite/ls/ls-h-works 2009-07-02 14:28:45.000000000 +0200
@@ -1,4 +1,4 @@
[ -n "$d" ] || d=..
-ls -h "$d" > logfile.gnu
-busybox ls -h "$d" > logfile.bb
-cmp logfile.gnu logfile.bb
+LC_ALL=C ls -h "$d" > logfile.gnu
+LC_ALL=C busybox ls -h "$d" > logfile.bb
+diff -ubw logfile.gnu logfile.bb
diff -urpN busybox-1.14.2/testsuite/ls/ls-l-works busybox-1.14.2-ls/testsuite/ls/ls-l-works
--- busybox-1.14.2/testsuite/ls/ls-l-works 2009-06-22 00:32:00.000000000 +0200
+++ busybox-1.14.2-ls/testsuite/ls/ls-l-works 2009-07-02 14:28:45.000000000 +0200
@@ -1,4 +1,4 @@
[ -n "$d" ] || d=..
LC_ALL=C ls -l "$d" > logfile.gnu
-busybox ls -l "$d" > logfile.bb
-diff -w logfile.gnu logfile.bb
+LC_ALL=C busybox ls -l "$d" > logfile.bb
+diff -ubw logfile.gnu logfile.bb
diff -urpN busybox-1.14.2/testsuite/ls/ls-s-works busybox-1.14.2-ls/testsuite/ls/ls-s-works
--- busybox-1.14.2/testsuite/ls/ls-s-works 2009-06-22 00:32:00.000000000 +0200
+++ busybox-1.14.2-ls/testsuite/ls/ls-s-works 2009-07-02 14:28:45.000000000 +0200
@@ -1,4 +1,4 @@
[ -n "$d" ] || d=..
LC_ALL=C ls -1s "$d" > logfile.gnu
-busybox ls -1s "$d" > logfile.bb
-cmp logfile.gnu logfile.bb
+LC_ALL=C busybox ls -1s "$d" > logfile.bb
+diff -ubw logfile.gnu logfile.bb

View File

@@ -0,0 +1,64 @@
diff -urpN busybox-1.14.2/coreutils/test.c busybox-1.14.2-test/coreutils/test.c
--- busybox-1.14.2/coreutils/test.c 2009-07-05 22:59:28.000000000 +0200
+++ busybox-1.14.2-test/coreutils/test.c 2009-07-17 01:46:28.000000000 +0200
@@ -571,7 +571,14 @@ static number_t nexpr(enum token n)
nest_msg(">nexpr(%s)\n", TOKSTR[n]);
if (n == UNOT) {
- res = !nexpr(check_operator(*++args));
+ n = check_operator(*++args);
+ if (n == EOI) {
+ /* special case: [ ! ], [ a -a ! ] are valid */
+ /* IOW, "! ARG" may miss ARG */
+ unnest_msg("<nexpr:1 (!EOI)\n");
+ return 1;
+ }
+ res = !nexpr(n);
unnest_msg("<nexpr:%lld\n", res);
return res;
}
@@ -742,7 +749,7 @@ int test_main(int argc, char **argv)
check_operator(argv[1]);
if (last_operator->op_type == BINOP) {
/* "test [!] arg1 <binary_op> arg2" */
- args = &argv[0];
+ args = argv;
res = (binop() == 0);
goto ret;
}
@@ -755,7 +762,7 @@ int test_main(int argc, char **argv)
argv--;
}
#endif
- args = &argv[0];
+ args = argv;
res = !oexpr(check_operator(*args));
if (*args != NULL && *++args != NULL) {
diff -urpN busybox-1.14.2/testsuite/test.tests busybox-1.14.2-test/testsuite/test.tests
--- busybox-1.14.2/testsuite/test.tests 2009-07-05 22:59:22.000000000 +0200
+++ busybox-1.14.2-test/testsuite/test.tests 2009-07-17 01:46:28.000000000 +0200
@@ -21,6 +21,11 @@ testing "test '': should be false (1)" \
"1\n" \
"" ""
+testing "test !: should be true (0)" \
+ "busybox test !; echo \$?" \
+ "0\n" \
+ "" ""
+
testing "test a: should be true (0)" \
"busybox test a; echo \$?" \
"0\n" \
@@ -51,6 +56,11 @@ testing "test -lt = -gt: should be false
"1\n" \
"" ""
+testing "test a -a !: should be true (0)" \
+ "busybox test a -a !; echo \$?" \
+ "0\n" \
+ "" ""
+
testing "test -f = a -o b: should be true (0)" \
"busybox test -f = a -o b; echo \$?" \
"0\n" \

View File

@@ -0,0 +1,12 @@
diff -urpN busybox-1.14.2/networking/udhcp/files.c busybox-1.14.2-udhcpd/networking/udhcp/files.c
--- busybox-1.14.2/networking/udhcp/files.c 2009-06-22 00:40:29.000000000 +0200
+++ busybox-1.14.2-udhcpd/networking/udhcp/files.c 2009-07-07 14:58:39.000000000 +0200
@@ -420,7 +420,7 @@ void FAST_FUNC read_leases(const char *f
continue;
/* NB: add_lease takes "relative time", IOW,
* lease duration, not lease deadline. */
- if (!(add_lease(lease.chaddr, lease.yiaddr, expires, lease.hostname))) {
+ if (!(add_lease(lease.chaddr, lease.yiaddr, expires, NULL /* was lease.hostname. bug in add_lease, disabled */ ))) {
bb_error_msg("too many leases while loading %s", file);
break;
}

View File

@@ -72,6 +72,11 @@ ifeq ($(BR2_INET_IPV6),y)
else
$(SED) "s/^.*CONFIG_FEATURE_IPV6.*/CONFIG_FEATURE_IPV6=n/;" $(BUSYBOX_DIR)/.config
endif
ifeq ($(BR2_INET_RPC),y)
$(SED) "s/^.*CONFIG_FEATURE_MOUNT_NFS.*/CONFIG_FEATURE_MOUNT_NFS=y/;" $(BUSYBOX_DIR)/.config
else
$(SED) "s/^.*CONFIG_FEATURE_MOUNT_NFS.*/CONFIG_FEATURE_MOUNT_NFS=n/;" $(BUSYBOX_DIR)/.config
endif
ifeq ($(BR2_PACKAGE_BUSYBOX_SKELETON),y)
# force mdev on
$(SED) "s/^.*CONFIG_MDEV.*/CONFIG_MDEV=y/" $(BUSYBOX_DIR)/.config
@@ -92,7 +97,7 @@ endif
$(BUSYBOX_DIR)/busybox: $(BUSYBOX_DIR)/.config
q $(MAKE) CC=$(TARGET_CC) CROSS_COMPILE="$(TARGET_CROSS)" \
$(MAKE) CC=$(TARGET_CC) CROSS_COMPILE="$(TARGET_CROSS)" \
CROSS="$(TARGET_CROSS)" PREFIX="$(TARGET_DIR)" \
ARCH=$(KERNEL_ARCH) \
EXTRA_CFLAGS="$(TARGET_CFLAGS)" -C $(BUSYBOX_DIR)

View File

@@ -48,9 +48,9 @@ else
CAIRO_CONF_OPT += --disable-directfb
endif
ifneq ($(BR2_PACKAGE_XSERVER_none),y)
ifeq ($(BR2_PACKAGE_XORG7),y)
CAIRO_CONF_OPT += --enable-xlib --with-x
CAIRO_DEPENDENCIES += $(XSERVER)
CAIRO_DEPENDENCIES += xserver_xorg-server
else
CAIRO_CONF_OPT += --disable-xlib --without-x
endif

View File

@@ -1,6 +1,10 @@
/buildroot-config
/conf
/mconf
/qconf
/qconf.moc
/.tmp_qtcheck
/lkc_defs.h
/lex.zconf.c
/zconf.hash.c
/zconf.tab.c

View File

@@ -14,7 +14,10 @@ __hostprogs := $(sort $(hostprogs-y) $(hostprogs-m))
host-csingle := $(foreach m,$(__hostprogs),$(if $($(m)-objs),,$(m)))
host-cmulti := $(foreach m,$(__hostprogs),\
$(if $($(m)-cxxobjs),,$(if $($(m)-objs),$(m))))
host-cxxmulti := $(foreach m,$(__hostprogs),\
$(if $($(m)-cxxobjs),$(m),$(if $($(m)-objs),)))
host-cobjs := $(sort $(foreach m,$(__hostprogs),$($(m)-objs)))
host-cxxobjs := $(sort $(foreach m,$(__hostprogs),$($(m)-cxxobjs)))
$(host-csingle): %: %.c
$(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) $(HOSTCFLAGS_$@) $< $(HOST_LOADLIBES) -o $@
@@ -22,9 +25,15 @@ $(host-csingle): %: %.c
$(host-cmulti): %: $(host-cobjs) $(host-cshlib)
$(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) $(HOSTCFLAGS_$@) $($@-objs) $(HOST_LOADLIBES) -o $@
$(host-cxxmulti): %: $(host-cxxobjs) $(host-cobjs) $(host-cshlib)
$(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) $(HOSTCFLAGS_$@) $($@-objs) $($@-cxxobjs) $(HOSTLOADLIBES_$@) -o $@
$(host-cobjs): %.o: %.c
$(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) $(HOSTCFLAGS_$@) -c $< -o $@
$(host-cxxobjs): %.o: %.cc
$(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) $(HOSTCXXFLAGS_$@) -c $< -o $@
$(obj)/%:: $(src)/%_shipped
$(Q)cat $< > $@

View File

@@ -4,7 +4,11 @@
PHONY += oldconfig xconfig gconfig menuconfig config silentoldconfig update-po-config
ifdef KBUILD_KCONFIG
Kconfig := $(KBUILD_KCONFIG)
else
Kconfig := arch/$(SRCARCH)/Kconfig
endif
xconfig: $(obj)/qconf
$< $(Kconfig)
@@ -24,22 +28,25 @@ oldconfig: $(obj)/conf
silentoldconfig: $(obj)/conf
$< -s $(Kconfig)
# Create new linux.po file
# Create new linux.pot file
# Adjust charset to UTF-8 in .po file to accept UTF-8 in Kconfig files
# The symlink is used to repair a deficiency in arch/um
update-po-config: $(obj)/kxgettext
xgettext --default-domain=linux \
update-po-config: $(obj)/kxgettext $(obj)/gconf.glade.h
$(Q)echo " GEN config"
$(Q)xgettext --default-domain=linux \
--add-comments --keyword=_ --keyword=N_ \
--from-code=UTF-8 \
--files-from=scripts/kconfig/POTFILES.in \
--output $(obj)/config.pot
$(Q)sed -i s/CHARSET/UTF-8/ $(obj)/config.pot
$(Q)ln -fs Kconfig.i386 arch/um/Kconfig.arch
(for i in `ls arch/`; \
do \
$(obj)/kxgettext arch/$$i/Kconfig; \
done ) >> $(obj)/config.pot
msguniq --sort-by-file --to-code=UTF-8 $(obj)/config.pot \
$(Q)(for i in `ls arch/*/Kconfig`; \
do \
echo " GEN $$i"; \
$(obj)/kxgettext $$i \
>> $(obj)/config.pot; \
done )
$(Q)msguniq --sort-by-file --to-code=UTF-8 $(obj)/config.pot \
--output $(obj)/linux.pot
$(Q)rm -f arch/um/Kconfig.arch
$(Q)rm -f $(obj)/config.pot
@@ -76,7 +83,7 @@ help:
@echo ' xconfig - Update current config utilising a QT based front-end'
@echo ' gconfig - Update current config utilising a GTK based front-end'
@echo ' oldconfig - Update current config utilising a provided .config as base'
@echo ' silentoldconfig - Same as oldconfig, but quietly'
@echo ' silentoldconfig - Same as oldconfig, but quietly, additionally update deps'
@echo ' randconfig - New config with random answer to all options'
@echo ' defconfig - New config with default answer to all options'
@echo ' allmodconfig - New config selecting modules when possible'
@@ -93,17 +100,11 @@ HOST_LOADLIBES = $(shell $(CONFIG_SHELL) $(check-lxdialog) -ldflags $(HOSTCC))
HOST_EXTRACFLAGS += -DLOCALE
PHONY += $(obj)/dochecklxdialog
$(obj)/dochecklxdialog:
$(Q)$(CONFIG_SHELL) $(check-lxdialog) -check $(HOSTCC) $(HOST_LOADLIBES)
always := dochecklxdialog
# ===========================================================================
# Shared Makefile for the various kconfig executables:
# conf: Used for defconfig, oldconfig and related targets
# mconf: Used for the mconfig target.
# mconf: Used for the menuconfig target
# Utilizes the lxdialog package
# qconf: Used for the xconfig target
# Based on QT which needs to be installed to compile it
@@ -124,12 +125,16 @@ ifeq ($(MAKECMDGOALS),menuconfig)
hostprogs-y += mconf
endif
ifeq ($(findstring mconf,$(MAKECMDGOALS)),mconf)
hostprogs-y += mconf
hostprogs-y += mconf
endif
ifeq ($(MAKECMDGOALS),xconfig)
qconf-target := 1
endif
ifeq ($(findstring qconf,$(MAKECMDGOALS)),qconf)
qconf-target := 1
endif
ifeq ($(MAKECMDGOALS),gconfig)
gconf-target := 1
endif
@@ -145,8 +150,17 @@ gconf-objs := gconf.o kconfig_load.o zconf.tab.o
endif
clean-files := lkc_defs.h qconf.moc .tmp_qtcheck \
.tmp_gtkcheck zconf.tab.c lex.zconf.c zconf.hash.c
.tmp_gtkcheck zconf.tab.c lex.zconf.c zconf.hash.c gconf.glade.h
clean-files += mconf qconf gconf
clean-files += config.pot linux.pot
# Check that we have the required ncurses stuff installed for lxdialog (menuconfig)
PHONY += $(obj)/dochecklxdialog
$(addprefix $(obj)/,$(lxdialog)): $(obj)/dochecklxdialog
$(obj)/dochecklxdialog:
$(Q)$(CONFIG_SHELL) $(check-lxdialog) -check $(HOSTCC) $(HOST_EXTRACFLAGS) $(HOST_LOADLIBES)
always := dochecklxdialog
# Add environment specific flags
HOST_EXTRACFLAGS += $(shell $(CONFIG_SHELL) $(srctree)/$(src)/check.sh $(HOSTCC) $(HOSTCFLAGS))
@@ -184,8 +198,8 @@ $(obj)/.tmp_qtcheck:
done; \
if [ -z "$$dir" ]; then \
echo "*"; \
echo "* Unable to find the QT installation. Please make sure that"; \
echo "* the QT development package is correctly installed and"; \
echo "* Unable to find the QT3 installation. Please make sure that"; \
echo "* the QT3 development package is correctly installed and"; \
echo "* either install pkg-config or set the QTDIR environment"; \
echo "* variable to the correct location."; \
echo "*"; \
@@ -251,6 +265,9 @@ $(obj)/%.moc: $(src)/%.h
$(obj)/lkc_defs.h: $(src)/lkc_proto.h
sed < $< > $@ 's/P(\([^,]*\),.*/#define \1 (\*\1_p)/'
# Extract gconf menu items for I18N support
$(obj)/gconf.glade.h: $(obj)/gconf.glade
intltool-extract --type=gettext/glade $(obj)/gconf.glade
###
# The following requires flex/bison/gperf

View File

@@ -1,5 +1,12 @@
scripts/kconfig/lxdialog/checklist.c
scripts/kconfig/lxdialog/inputbox.c
scripts/kconfig/lxdialog/menubox.c
scripts/kconfig/lxdialog/textbox.c
scripts/kconfig/lxdialog/util.c
scripts/kconfig/lxdialog/yesno.c
scripts/kconfig/mconf.c
scripts/kconfig/conf.c
scripts/kconfig/confdata.c
scripts/kconfig/gconf.c
scripts/kconfig/gconf.glade.h
scripts/kconfig/qconf.cc

View File

@@ -3,13 +3,15 @@
* Released under the terms of the GNU GPL v2.0.
*/
#include <locale.h>
#include <ctype.h>
#include <stdlib.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <time.h>
#include <unistd.h>
#include <sys/stat.h>
#include <sys/time.h>
#define LKC_DIRECT_LINK
#include "lkc.h"
@@ -31,6 +33,7 @@ char *defconfig_file;
static int indent = 1;
static int valid_stdin = 1;
static int sync_kconfig;
static int conf_cnt;
static char line[128];
static struct menu *rootEntry;
@@ -40,7 +43,7 @@ static char nohelp_text[] = N_("Sorry, no help available for this option yet.\n"
static const char *get_help(struct menu *menu)
{
if (menu_has_help(menu))
return menu_get_help(menu);
return _(menu_get_help(menu));
else
return nohelp_text;
}
@@ -64,7 +67,7 @@ static void strip(char *str)
static void check_stdin(void)
{
if (!valid_stdin && input_mode == ask_silent) {
if (!valid_stdin) {
printf(_("aborted!\n\n"));
printf(_("Console input/output is redirected. "));
printf(_("Run 'make oldconfig' to update configuration.\n\n"));
@@ -75,10 +78,9 @@ static void check_stdin(void)
static int conf_askvalue(struct symbol *sym, const char *def)
{
enum symbol_type type = sym_get_type(sym);
tristate val;
if (!sym_has_value(sym))
printf("(NEW) ");
printf(_("(NEW) "));
line[0] = '\n';
line[1] = 0;
@@ -91,15 +93,6 @@ static int conf_askvalue(struct symbol *sym, const char *def)
}
switch (input_mode) {
case set_no:
case set_mod:
case set_yes:
case set_random:
if (sym_has_value(sym)) {
printf("%s\n", def);
return 0;
}
break;
case ask_new:
case ask_silent:
if (sym_has_value(sym)) {
@@ -111,9 +104,6 @@ static int conf_askvalue(struct symbol *sym, const char *def)
fflush(stdout);
fgets(line, 128, stdin);
return 1;
case set_default:
printf("%s\n", def);
return 1;
default:
break;
}
@@ -127,52 +117,6 @@ static int conf_askvalue(struct symbol *sym, const char *def)
default:
;
}
switch (input_mode) {
case set_yes:
if (sym_tristate_within_range(sym, yes)) {
line[0] = 'y';
line[1] = '\n';
line[2] = 0;
break;
}
case set_mod:
if (type == S_TRISTATE) {
if (sym_tristate_within_range(sym, mod)) {
line[0] = 'm';
line[1] = '\n';
line[2] = 0;
break;
}
} else {
if (sym_tristate_within_range(sym, yes)) {
line[0] = 'y';
line[1] = '\n';
line[2] = 0;
break;
}
}
case set_no:
if (sym_tristate_within_range(sym, no)) {
line[0] = 'n';
line[1] = '\n';
line[2] = 0;
break;
}
case set_random:
do {
val = (tristate)(random() % 3);
} while (!sym_tristate_within_range(sym, val));
switch (val) {
case no: line[0] = 'n'; break;
case mod: line[0] = 'm'; break;
case yes: line[0] = 'y'; break;
}
line[1] = '\n';
line[2] = 0;
break;
default:
break;
}
printf("%s", line);
return 1;
}
@@ -183,7 +127,7 @@ int conf_string(struct menu *menu)
const char *def;
while (1) {
printf("%*s%s ", indent - 1, "", menu->prompt->text);
printf("%*s%s ", indent - 1, "", _(menu->prompt->text));
printf("(%s) ", sym->name);
def = sym_get_string_value(sym);
if (sym_get_string_value(sym))
@@ -216,7 +160,7 @@ static int conf_sym(struct menu *menu)
tristate oldval, newval;
while (1) {
printf("%*s%s ", indent - 1, "", menu->prompt->text);
printf("%*s%s ", indent - 1, "", _(menu->prompt->text));
if (sym->name)
printf("(%s) ", sym->name);
type = sym_get_type(sym);
@@ -306,7 +250,7 @@ static int conf_choice(struct menu *menu)
case no:
return 1;
case mod:
printf("%*s%s\n", indent - 1, "", menu_get_prompt(menu));
printf("%*s%s\n", indent - 1, "", _(menu_get_prompt(menu)));
return 0;
case yes:
break;
@@ -316,7 +260,7 @@ static int conf_choice(struct menu *menu)
while (1) {
int cnt, def;
printf("%*s%s\n", indent - 1, "", menu_get_prompt(menu));
printf("%*s%s\n", indent - 1, "", _(menu_get_prompt(menu)));
def_sym = sym_get_choice_value(sym);
cnt = def = 0;
line[0] = 0;
@@ -324,7 +268,7 @@ static int conf_choice(struct menu *menu)
if (!menu_is_visible(child))
continue;
if (!child->sym) {
printf("%*c %s\n", indent, '*', menu_get_prompt(child));
printf("%*c %s\n", indent, '*', _(menu_get_prompt(child)));
continue;
}
cnt++;
@@ -333,14 +277,14 @@ static int conf_choice(struct menu *menu)
printf("%*c", indent, '>');
} else
printf("%*c", indent, ' ');
printf(" %d. %s", cnt, menu_get_prompt(child));
printf(" %d. %s", cnt, _(menu_get_prompt(child)));
if (child->sym->name)
printf(" (%s)", child->sym->name);
if (!sym_has_value(child->sym))
printf(" (NEW)");
printf(_(" (NEW)"));
printf("\n");
}
printf("%*schoice", indent - 1, "");
printf(_("%*schoice"), indent - 1, "");
if (cnt == 1) {
printf("[1]: 1\n");
goto conf_childs;
@@ -373,15 +317,7 @@ static int conf_choice(struct menu *menu)
else
continue;
break;
case set_random:
if (is_new)
def = (random() % cnt) + 1;
case set_default:
case set_yes:
case set_mod:
case set_no:
cnt = def;
printf("%d\n", cnt);
default:
break;
}
@@ -399,9 +335,9 @@ static int conf_choice(struct menu *menu)
continue;
}
sym_set_choice_value(sym, child->sym);
if (child->list) {
for (child = child->list; child; child = child->next) {
indent += 2;
conf(child->list);
conf(child);
indent -= 2;
}
return 1;
@@ -433,7 +369,7 @@ static void conf(struct menu *menu)
if (prompt)
printf("%*c\n%*c %s\n%*c\n",
indent, '*',
indent, '*', prompt,
indent, '*', _(prompt),
indent, '*');
default:
;
@@ -495,30 +431,29 @@ static void check_conf(struct menu *menu)
int main(int ac, char **av)
{
int i = 1;
int opt;
const char *name;
struct stat tmpstat;
if (ac > i && av[i][0] == '-') {
switch (av[i++][1]) {
setlocale(LC_ALL, "");
bindtextdomain(PACKAGE, LOCALEDIR);
textdomain(PACKAGE);
while ((opt = getopt(ac, av, "osdD:nmyrh")) != -1) {
switch (opt) {
case 'o':
input_mode = ask_new;
input_mode = ask_silent;
break;
case 's':
input_mode = ask_silent;
valid_stdin = isatty(0) && isatty(1) && isatty(2);
sync_kconfig = 1;
break;
case 'd':
input_mode = set_default;
break;
case 'D':
input_mode = set_default;
defconfig_file = av[i++];
if (!defconfig_file) {
printf(_("%s: No default config file specified\n"),
av[0]);
exit(1);
}
defconfig_file = optarg;
break;
case 'n':
input_mode = set_no;
@@ -530,44 +465,63 @@ int main(int ac, char **av)
input_mode = set_yes;
break;
case 'r':
{
struct timeval now;
unsigned int seed;
/*
* Use microseconds derived seed,
* compensate for systems where it may be zero
*/
gettimeofday(&now, NULL);
seed = (unsigned int)((now.tv_sec + 1) * (now.tv_usec + 1));
srand(seed);
input_mode = set_random;
srandom(time(NULL));
break;
}
case 'h':
case '?':
fprintf(stderr, "See README for usage info\n");
printf(_("See README for usage info\n"));
exit(0);
break;
default:
fprintf(stderr, _("See README for usage info\n"));
exit(1);
}
}
name = av[i];
if (!name) {
if (ac == optind) {
printf(_("%s: Kconfig file missing\n"), av[0]);
exit(1);
}
name = av[optind];
conf_parse(name);
/*zconfdump(stdout);*/
if (sync_kconfig) {
name = conf_get_configname();
if (stat(name, &tmpstat)) {
fprintf(stderr, _("***\n"
"*** You have not yet configured Buildroot!\n"
"*** (missing .config file \"%s\")\n"
"***\n"
"*** Please run some configurator (e.g. \"make oldconfig\" or\n"
"*** \"make menuconfig\" or \"make xconfig\").\n"
"***\n"), name);
exit(1);
}
}
switch (input_mode) {
case set_default:
if (!defconfig_file)
defconfig_file = conf_get_default_confname();
if (conf_read(defconfig_file)) {
printf("***\n"
printf(_("***\n"
"*** Can't find default configuration \"%s\"!\n"
"***\n", defconfig_file);
"***\n"), defconfig_file);
exit(1);
}
break;
case ask_silent:
if (stat(".config", &tmpstat)) {
printf(_("***\n"
"*** You have not yet configured Buildroot!\n"
"*** (missing .config file)\n"
"***\n"
"*** Please run some configurator (e.g. \"make oldconfig\" or\n"
"*** \"make menuconfig\" or \"make config\").\n"
"***\n"));
exit(1);
}
case ask_all:
case ask_new:
conf_read(NULL);
@@ -597,35 +551,66 @@ int main(int ac, char **av)
break;
}
if (input_mode != ask_silent) {
if (sync_kconfig) {
if (conf_get_changed()) {
name = getenv("KCONFIG_NOSILENTUPDATE");
if (name && *name) {
fprintf(stderr,
_("\n*** Buildroot configuration requires explicit update.\n\n"));
return 1;
}
}
valid_stdin = isatty(0) && isatty(1) && isatty(2);
}
switch (input_mode) {
case set_no:
conf_set_all_new_symbols(def_no);
break;
case set_yes:
conf_set_all_new_symbols(def_yes);
break;
case set_mod:
conf_set_all_new_symbols(def_mod);
break;
case set_random:
conf_set_all_new_symbols(def_random);
break;
case set_default:
conf_set_all_new_symbols(def_default);
break;
case ask_new:
case ask_all:
rootEntry = &rootmenu;
conf(&rootmenu);
if (input_mode == ask_all) {
input_mode = ask_silent;
valid_stdin = 1;
input_mode = ask_silent;
/* fall through */
case ask_silent:
/* Update until a loop caused no more changes */
do {
conf_cnt = 0;
check_conf(&rootmenu);
} while (conf_cnt);
break;
}
if (sync_kconfig) {
/* silentoldconfig is used during the build so we shall update autoconf.
* All other commands are only used to generate a config.
*/
if (conf_get_changed() && conf_write(NULL)) {
fprintf(stderr, _("\n*** Error during writing of the Buildroot configuration.\n\n"));
exit(1);
}
} else if (conf_get_changed()) {
name = getenv("KCONFIG_NOSILENTUPDATE");
if (name && *name) {
fprintf(stderr, _("\n*** Buildroot configuration requires explicit update.\n\n"));
if (conf_write_autoconf()) {
fprintf(stderr, _("\n*** Error during update of the Buildroot configuration.\n\n"));
return 1;
}
} else
goto skip_check;
do {
conf_cnt = 0;
check_conf(&rootmenu);
} while (conf_cnt);
if (conf_write(NULL)) {
fprintf(stderr, _("\n*** Error during writing of the Buildroot configuration.\n\n"));
return 1;
} else {
if (conf_write(NULL)) {
fprintf(stderr, _("\n*** Error during writing of the Buildroot configuration.\n\n"));
exit(1);
}
}
skip_check:
if (/*input_mode == ask_silent &&*/ conf_write_autoconf()) {
fprintf(stderr, _("\n*** Error during writing of the Buildroot configuration.\n\n"));
return 1;
}
return 0;
}

View File

@@ -42,6 +42,13 @@ const char *conf_get_configname(void)
return name ? name : ".config";
}
const char *conf_get_autoconfig_name(void)
{
char *name = getenv("BUILDROOT_AUTOCONFIG");
return name ? name : "$(BR2_DEPENDS_DIR)/config/auto.conf";
}
static char *conf_expand_value(const char *in)
{
struct symbol *sym;
@@ -224,7 +231,7 @@ load:
if (def == S_DEF_USER) {
sym = sym_find(line + 2);
if (!sym) {
conf_warning("trying to assign nonexistent symbol %s", line + 2);
sym_add_change_count(1);
break;
}
} else {
@@ -233,8 +240,7 @@ load:
sym->type = S_BOOLEAN;
}
if (sym->flags & def_flags) {
conf_warning("trying to reassign symbol %s", sym->name);
break;
conf_warning("override: reassigning to symbol %s", sym->name);
}
switch (sym->type) {
case S_BOOLEAN:
@@ -260,7 +266,7 @@ load:
if (def == S_DEF_USER) {
sym = sym_find(line);
if (!sym) {
conf_warning("trying to assign nonexistent symbol %s", line);
sym_add_change_count(1);
break;
}
} else {
@@ -269,8 +275,7 @@ load:
sym->type = S_OTHER;
}
if (sym->flags & def_flags) {
conf_warning("trying to reassign symbol %s", sym->name);
break;
conf_warning("override: reassigning to symbol %s", sym->name);
}
if (conf_set_sym_val(sym, def, def_flags, p))
continue;
@@ -294,14 +299,12 @@ load:
}
break;
case yes:
if (cs->def[def].tri != no) {
conf_warning("%s creates inconsistent choice state", sym->name);
cs->flags &= ~def_flags;
} else
cs->def[def].val = sym;
if (cs->def[def].tri != no)
conf_warning("override: %s changes choice state", sym->name);
cs->def[def].val = sym;
break;
}
cs->def[def].tri = E_OR(cs->def[def].tri, sym->def[def].tri);
cs->def[def].tri = EXPR_OR(cs->def[def].tri, sym->def[def].tri);
}
}
fclose(in);
@@ -313,7 +316,7 @@ load:
int conf_read(const char *name)
{
struct symbol *sym;
struct symbol *sym, *choice_sym;
struct property *prop;
struct expr *e;
int i, flags;
@@ -354,9 +357,9 @@ int conf_read(const char *name)
*/
prop = sym_get_choice_prop(sym);
flags = sym->flags;
for (e = prop->expr; e; e = e->left.expr)
if (e->right.sym->visible != no)
flags &= e->right.sym->flags;
expr_list_for_each_sym(prop->expr, e, choice_sym)
if (choice_sym->visible != no)
flags &= choice_sym->flags;
sym->flags &= flags | ~SYMBOL_DEF_USER;
}
@@ -554,15 +557,15 @@ int conf_write(const char *name)
int conf_split_config(void)
{
char *name, path[128], *opwd, *dir, *_name;
const char *name;
char path[128];
char *opwd, *dir, *_name;
char *s, *d, c;
struct symbol *sym;
struct stat sb;
int res, i, fd;
name = getenv("KCONFIG_AUTOCONFIG");
if (!name)
name = "include/config/auto.conf";
name = conf_get_autoconfig_name();
conf_read_simple(name, S_DEF_AUTO);
opwd = malloc(256);
@@ -683,7 +686,7 @@ int conf_write_autoconf(void)
{
struct symbol *sym;
const char *str;
char *name;
const char *name;
FILE *out, *out_h;
time_t now;
int i, l;
@@ -783,9 +786,7 @@ int conf_write_autoconf(void)
name = "include/linux/autoconf.h";
if (rename(".tmpconfig.h", name))
return 1;
name = getenv("KCONFIG_AUTOCONFIG");
if (!name)
name = "include/config/auto.conf";
name = conf_get_autoconfig_name();
/*
* This must be the last step, kbuild has a dependency on auto.conf
* and this marks the successful completion of the previous steps.
@@ -822,3 +823,93 @@ void conf_set_changed_callback(void (*fn)(void))
{
conf_changed_callback = fn;
}
void conf_set_all_new_symbols(enum conf_def_mode mode)
{
struct symbol *sym, *csym;
struct property *prop;
struct expr *e;
int i, cnt, def;
for_all_symbols(i, sym) {
if (sym_has_value(sym))
continue;
switch (sym_get_type(sym)) {
case S_BOOLEAN:
case S_TRISTATE:
switch (mode) {
case def_yes:
sym->def[S_DEF_USER].tri = yes;
break;
case def_mod:
sym->def[S_DEF_USER].tri = mod;
break;
case def_no:
sym->def[S_DEF_USER].tri = no;
break;
case def_random:
sym->def[S_DEF_USER].tri = (tristate)(rand() % 3);
break;
default:
continue;
}
if (!(sym_is_choice(sym) && mode == def_random))
sym->flags |= SYMBOL_DEF_USER;
break;
default:
break;
}
}
sym_clear_all_valid();
if (mode != def_random)
return;
/*
* We have different type of choice blocks.
* If curr.tri equal to mod then we can select several
* choice symbols in one block.
* In this case we do nothing.
* If curr.tri equal yes then only one symbol can be
* selected in a choice block and we set it to yes,
* and the rest to no.
*/
for_all_symbols(i, csym) {
if (sym_has_value(csym) || !sym_is_choice(csym))
continue;
sym_calc_value(csym);
if (csym->curr.tri != yes)
continue;
prop = sym_get_choice_prop(csym);
/* count entries in choice block */
cnt = 0;
expr_list_for_each_sym(prop->expr, e, sym)
cnt++;
/*
* find a random value and set it to yes,
* set the rest to no so we have only one set
*/
def = (rand() % cnt);
cnt = 0;
expr_list_for_each_sym(prop->expr, e, sym) {
if (def == cnt++) {
sym->def[S_DEF_USER].tri = yes;
csym->def[S_DEF_USER].val = sym;
}
else {
sym->def[S_DEF_USER].tri = no;
}
}
csym->flags |= SYMBOL_DEF_USER;
/* clear VALID to get value calculated */
csym->flags &= ~(SYMBOL_VALID);
}
}

View File

@@ -87,7 +87,7 @@ struct expr *expr_copy(struct expr *org)
break;
case E_AND:
case E_OR:
case E_CHOICE:
case E_LIST:
e->left.expr = expr_copy(org->left.expr);
e->right.expr = expr_copy(org->right.expr);
break;
@@ -217,7 +217,7 @@ int expr_eq(struct expr *e1, struct expr *e2)
expr_free(e2);
trans_count = old_count;
return res;
case E_CHOICE:
case E_LIST:
case E_RANGE:
case E_NONE:
/* panic */;
@@ -648,7 +648,7 @@ struct expr *expr_transform(struct expr *e)
case E_EQUAL:
case E_UNEQUAL:
case E_SYMBOL:
case E_CHOICE:
case E_LIST:
break;
default:
e->left.expr = expr_transform(e->left.expr);
@@ -932,7 +932,7 @@ struct expr *expr_trans_compare(struct expr *e, enum expr_type type, struct symb
break;
case E_SYMBOL:
return expr_alloc_comp(type, e->left.sym, sym);
case E_CHOICE:
case E_LIST:
case E_RANGE:
case E_NONE:
/* panic */;
@@ -955,14 +955,14 @@ tristate expr_calc_value(struct expr *e)
case E_AND:
val1 = expr_calc_value(e->left.expr);
val2 = expr_calc_value(e->right.expr);
return E_AND(val1, val2);
return EXPR_AND(val1, val2);
case E_OR:
val1 = expr_calc_value(e->left.expr);
val2 = expr_calc_value(e->right.expr);
return E_OR(val1, val2);
return EXPR_OR(val1, val2);
case E_NOT:
val1 = expr_calc_value(e->left.expr);
return E_NOT(val1);
return EXPR_NOT(val1);
case E_EQUAL:
sym_calc_value(e->left.sym);
sym_calc_value(e->right.sym);
@@ -1000,9 +1000,9 @@ int expr_compare_type(enum expr_type t1, enum expr_type t2)
if (t2 == E_OR)
return 1;
case E_OR:
if (t2 == E_CHOICE)
if (t2 == E_LIST)
return 1;
case E_CHOICE:
case E_LIST:
if (t2 == 0)
return 1;
default:
@@ -1034,12 +1034,18 @@ void expr_print(struct expr *e, void (*fn)(void *, struct symbol *, const char *
expr_print(e->left.expr, fn, data, E_NOT);
break;
case E_EQUAL:
fn(data, e->left.sym, e->left.sym->name);
if (e->left.sym->name)
fn(data, e->left.sym, e->left.sym->name);
else
fn(data, NULL, "<choice>");
fn(data, NULL, "=");
fn(data, e->right.sym, e->right.sym->name);
break;
case E_UNEQUAL:
fn(data, e->left.sym, e->left.sym->name);
if (e->left.sym->name)
fn(data, e->left.sym, e->left.sym->name);
else
fn(data, NULL, "<choice>");
fn(data, NULL, "!=");
fn(data, e->right.sym, e->right.sym->name);
break;
@@ -1053,11 +1059,11 @@ void expr_print(struct expr *e, void (*fn)(void *, struct symbol *, const char *
fn(data, NULL, " && ");
expr_print(e->right.expr, fn, data, E_AND);
break;
case E_CHOICE:
case E_LIST:
fn(data, e->right.sym, e->right.sym->name);
if (e->left.expr) {
fn(data, NULL, " ^ ");
expr_print(e->left.expr, fn, data, E_CHOICE);
expr_print(e->left.expr, fn, data, E_LIST);
}
break;
case E_RANGE:

View File

@@ -25,14 +25,13 @@ struct file {
#define FILE_BUSY 0x0001
#define FILE_SCANNED 0x0002
#define FILE_PRINTED 0x0004
typedef enum tristate {
no, mod, yes
} tristate;
enum expr_type {
E_NONE, E_OR, E_AND, E_NOT, E_EQUAL, E_UNEQUAL, E_CHOICE, E_SYMBOL, E_RANGE
E_NONE, E_OR, E_AND, E_NOT, E_EQUAL, E_UNEQUAL, E_LIST, E_SYMBOL, E_RANGE
};
union expr_data {
@@ -45,9 +44,12 @@ struct expr {
union expr_data left, right;
};
#define E_OR(dep1, dep2) (((dep1)>(dep2))?(dep1):(dep2))
#define E_AND(dep1, dep2) (((dep1)<(dep2))?(dep1):(dep2))
#define E_NOT(dep) (2-(dep))
#define EXPR_OR(dep1, dep2) (((dep1)>(dep2))?(dep1):(dep2))
#define EXPR_AND(dep1, dep2) (((dep1)<(dep2))?(dep1):(dep2))
#define EXPR_NOT(dep) (2-(dep))
#define expr_list_for_each_sym(l, e, s) \
for (e = (l); e && (s = e->right.sym); e = e->left.expr)
struct expr_value {
struct expr *expr;
@@ -63,9 +65,13 @@ enum symbol_type {
S_UNKNOWN, S_BOOLEAN, S_TRISTATE, S_INT, S_HEX, S_STRING, S_OTHER
};
/* enum values are used as index to symbol.def[] */
enum {
S_DEF_USER, /* main user value */
S_DEF_AUTO
S_DEF_AUTO, /* values read from auto.conf */
S_DEF_DEF3, /* Reserved for UI usage */
S_DEF_DEF4, /* Reserved for UI usage */
S_DEF_COUNT
};
struct symbol {
@@ -73,7 +79,7 @@ struct symbol {
char *name;
enum symbol_type type;
struct symbol_value curr;
struct symbol_value def[4];
struct symbol_value def[S_DEF_COUNT];
tristate visible;
int flags;
struct property *prop;
@@ -82,42 +88,64 @@ struct symbol {
#define for_all_symbols(i, sym) for (i = 0; i < 257; i++) for (sym = symbol_hash[i]; sym; sym = sym->next) if (sym->type != S_OTHER)
#define SYMBOL_CONST 0x0001
#define SYMBOL_CHECK 0x0008
#define SYMBOL_CHOICE 0x0010
#define SYMBOL_CHOICEVAL 0x0020
#define SYMBOL_PRINTED 0x0040
#define SYMBOL_VALID 0x0080
#define SYMBOL_OPTIONAL 0x0100
#define SYMBOL_WRITE 0x0200
#define SYMBOL_CHANGED 0x0400
#define SYMBOL_AUTO 0x1000
#define SYMBOL_CHECKED 0x2000
#define SYMBOL_WARNED 0x8000
#define SYMBOL_DEF 0x10000
#define SYMBOL_DEF_USER 0x10000
#define SYMBOL_DEF_AUTO 0x20000
#define SYMBOL_DEF3 0x40000
#define SYMBOL_DEF4 0x80000
#define SYMBOL_CONST 0x0001 /* symbol is const */
#define SYMBOL_CHECK 0x0008 /* used during dependency checking */
#define SYMBOL_CHOICE 0x0010 /* start of a choice block (null name) */
#define SYMBOL_CHOICEVAL 0x0020 /* used as a value in a choice block */
#define SYMBOL_VALID 0x0080 /* set when symbol.curr is calculated */
#define SYMBOL_OPTIONAL 0x0100 /* choice is optional - values can be 'n' */
#define SYMBOL_WRITE 0x0200 /* ? */
#define SYMBOL_CHANGED 0x0400 /* ? */
#define SYMBOL_AUTO 0x1000 /* value from environment variable */
#define SYMBOL_CHECKED 0x2000 /* used during dependency checking */
#define SYMBOL_WARNED 0x8000 /* warning has been issued */
/* Set when symbol.def[] is used */
#define SYMBOL_DEF 0x10000 /* First bit of SYMBOL_DEF */
#define SYMBOL_DEF_USER 0x10000 /* symbol.def[S_DEF_USER] is valid */
#define SYMBOL_DEF_AUTO 0x20000 /* symbol.def[S_DEF_AUTO] is valid */
#define SYMBOL_DEF3 0x40000 /* symbol.def[S_DEF_3] is valid */
#define SYMBOL_DEF4 0x80000 /* symbol.def[S_DEF_4] is valid */
#define SYMBOL_MAXLENGTH 256
#define SYMBOL_HASHSIZE 257
#define SYMBOL_HASHMASK 0xff
/* A property represent the config options that can be associated
* with a config "symbol".
* Sample:
* config FOO
* default y
* prompt "foo prompt"
* select BAR
* config BAZ
* int "BAZ Value"
* range 1..255
*/
enum prop_type {
P_UNKNOWN, P_PROMPT, P_COMMENT, P_MENU, P_DEFAULT, P_CHOICE, P_SELECT, P_RANGE
P_UNKNOWN,
P_PROMPT, /* prompt "foo prompt" or "BAZ Value" */
P_COMMENT, /* text associated with a comment */
P_MENU, /* prompt associated with a menuconfig option */
P_DEFAULT, /* default y */
P_CHOICE, /* choice value */
P_SELECT, /* select BAR */
P_RANGE, /* range 7..100 (for a symbol) */
P_ENV, /* value from environment variable */
};
struct property {
struct property *next;
struct symbol *sym;
enum prop_type type;
const char *text;
struct property *next; /* next property - null if last */
struct symbol *sym; /* the symbol for which the property is associated */
enum prop_type type; /* type of property */
const char *text; /* the prompt value - P_PROMPT, P_MENU, P_COMMENT */
struct expr_value visible;
struct expr *expr;
struct menu *menu;
struct file *file;
int lineno;
struct expr *expr; /* the optional conditional part of the property */
struct menu *menu; /* the menu the property are associated with
* valid for: P_SELECT, P_RANGE, P_CHOICE,
* P_PROMPT, P_DEFAULT, P_MENU, P_COMMENT */
struct file *file; /* what file was this property defined */
int lineno; /* what lineno was this property defined */
};
#define for_all_properties(sym, st, tok) \

View File

@@ -119,8 +119,6 @@ const char *dbg_print_flags(int val)
strcat(buf, "choice/");
if (val & SYMBOL_CHOICEVAL)
strcat(buf, "choiceval/");
if (val & SYMBOL_PRINTED)
strcat(buf, "printed/");
if (val & SYMBOL_VALID)
strcat(buf, "valid/");
if (val & SYMBOL_OPTIONAL)
@@ -457,14 +455,18 @@ static void text_insert_help(struct menu *menu)
{
GtkTextBuffer *buffer;
GtkTextIter start, end;
const char *prompt = menu_get_prompt(menu);
const char *prompt = _(menu_get_prompt(menu));
gchar *name;
const char *help;
help = _(menu_get_help(menu));
help = menu_get_help(menu);
/* Gettextize if the help text not empty */
if ((help != 0) && (help[0] != 0))
help = _(help);
if (menu->sym && menu->sym->name)
name = g_strdup_printf(_(menu->sym->name));
name = g_strdup_printf(menu->sym->name);
else
name = g_strdup("");
@@ -1171,7 +1173,7 @@ static gchar **fill_row(struct menu *menu)
bzero(row, sizeof(row));
row[COL_OPTION] =
g_strdup_printf("%s %s", menu_get_prompt(menu),
g_strdup_printf("%s %s", _(menu_get_prompt(menu)),
sym && sym_has_value(sym) ? "(NEW)" : "");
if (show_all && !menu_is_visible(menu))
@@ -1221,7 +1223,7 @@ static gchar **fill_row(struct menu *menu)
if (def_menu)
row[COL_VALUE] =
g_strdup(menu_get_prompt(def_menu));
g_strdup(_(menu_get_prompt(def_menu)));
}
if (sym->flags & SYMBOL_CHOICEVAL)
row[COL_BTNRAD] = GINT_TO_POINTER(TRUE);

View File

@@ -24,7 +24,7 @@ visible if its parent entry is also visible.
Menu entries
------------
Most entries define a config option, all other entries help to organize
Most entries define a config option; all other entries help to organize
them. A single configuration option is defined like this:
config MODVERSIONS
@@ -50,7 +50,7 @@ applicable everywhere (see syntax).
- type definition: "bool"/"tristate"/"string"/"hex"/"int"
Every config option must have a type. There are only two basic types:
tristate and string, the other types are based on these two. The type
tristate and string; the other types are based on these two. The type
definition optionally accepts an input prompt, so these two examples
are equivalent:
@@ -104,14 +104,15 @@ applicable everywhere (see syntax).
Reverse dependencies can only be used with boolean or tristate
symbols.
Note:
select is evil.... select will by brute force set a symbol
equal to 'y' without visiting the dependencies. So abusing
select you are able to select a symbol FOO even if FOO depends
on BAR that is not set. In general use select only for
non-visible symbols (no promts anywhere) and for symbols with
no dependencies. That will limit the usefulness but on the
other hand avoid the illegal configurations all over. kconfig
should one day warn about such things.
select should be used with care. select will force
a symbol to a value without visiting the dependencies.
By abusing select you are able to select a symbol FOO even
if FOO depends on BAR that is not set.
In general use select only for non-visible symbols
(no prompts anywhere) and for symbols with no dependencies.
That will limit the usefulness but on the other hand avoid
the illegal configurations all over.
kconfig should one day warn about such things.
- numerical ranges: "range" <symbol> <symbol> ["if" <expr>]
This allows to limit the range of possible input values for int
@@ -127,6 +128,27 @@ applicable everywhere (see syntax).
used to help visually separate configuration logic from help within
the file as an aid to developers.
- misc options: "option" <symbol>[=<value>]
Various less common options can be defined via this option syntax,
which can modify the behaviour of the menu entry and its config
symbol. These options are currently possible:
- "defconfig_list"
This declares a list of default entries which can be used when
looking for the default configuration (which is used when the main
.config doesn't exists yet.)
- "modules"
This declares the symbol to be used as the MODULES symbol, which
enables the third modular state for all config symbols.
- "env"=<value>
This imports the environment variable into Kconfig. It behaves like
a default, except that the value comes from the environment, this
also means that the behaviour when mixing it with normal defaults is
undefined at this point. The symbol is currently not exported back
to the build environment (if this is desired, it can be done via
another symbol).
Menu dependencies
-----------------
@@ -162,9 +184,9 @@ An expression can have a value of 'n', 'm' or 'y' (or 0, 1, 2
respectively for calculations). A menu entry becomes visible when it's
expression evaluates to 'm' or 'y'.
There are two types of symbols: constant and nonconstant symbols.
Nonconstant symbols are the most common ones and are defined with the
'config' statement. Nonconstant symbols consist entirely of alphanumeric
There are two types of symbols: constant and non-constant symbols.
Non-constant symbols are the most common ones and are defined with the
'config' statement. Non-constant symbols consist entirely of alphanumeric
characters or underscores.
Constant symbols are only part of expressions. Constant symbols are
always surrounded by single or double quotes. Within the quote, any
@@ -301,3 +323,57 @@ mainmenu:
This sets the config program's title bar if the config program chooses
to use it.
Kconfig hints
-------------
This is a collection of Kconfig tips, most of which aren't obvious at
first glance and most of which have become idioms in several Kconfig
files.
Adding common features and make the usage configurable
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
It is a common idiom to implement a feature/functionality that are
relevant for some architectures but not all.
The recommended way to do so is to use a config variable named HAVE_*
that is defined in a common Kconfig file and selected by the relevant
architectures.
An example is the generic IOMAP functionality.
We would in lib/Kconfig see:
# Generic IOMAP is used to ...
config HAVE_GENERIC_IOMAP
config GENERIC_IOMAP
depends on HAVE_GENERIC_IOMAP && FOO
And in lib/Makefile we would see:
obj-$(CONFIG_GENERIC_IOMAP) += iomap.o
For each architecture using the generic IOMAP functionality we would see:
config X86
select ...
select HAVE_GENERIC_IOMAP
select ...
Note: we use the existing config option and avoid creating a new
config variable to select HAVE_GENERIC_IOMAP.
Note: the use of the internal config variable HAVE_GENERIC_IOMAP, it is
introduced to overcome the limitation of select which will force a
config option to 'y' no matter the dependencies.
The dependencies are moved to the symbol GENERIC_IOMAP and we avoid the
situation where select forces a symbol equals to 'y'.
Build as module only
~~~~~~~~~~~~~~~~~~~~
To restrict a component build to module-only, qualify its config symbol
with "depends on m". E.g.:
config FOO
depends on BAR && m
limits FOO to module (=m) or disabled (=n).

File diff suppressed because it is too large Load Diff

View File

@@ -43,6 +43,10 @@ static char *escape(const char* text, char *bf, int len)
++text;
goto next;
}
else if (*text == '\\') {
*bfp++ = '\\';
len--;
}
*bfp++ = *text++;
next:
--len;

View File

@@ -27,7 +27,7 @@
#define FLEX_SCANNER
#define YY_FLEX_MAJOR_VERSION 2
#define YY_FLEX_MINOR_VERSION 5
#define YY_FLEX_SUBMINOR_VERSION 33
#define YY_FLEX_SUBMINOR_VERSION 35
#if YY_FLEX_SUBMINOR_VERSION > 0
#define FLEX_BETA
#endif
@@ -49,7 +49,7 @@
/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
#if __STDC_VERSION__ >= 199901L
#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
* if you want the limit (max/min) macros for int types.
@@ -72,7 +72,6 @@ typedef int flex_int32_t;
typedef unsigned char flex_uint8_t;
typedef unsigned short int flex_uint16_t;
typedef unsigned int flex_uint32_t;
#endif /* ! C99 */
/* Limits of integral types. */
#ifndef INT8_MIN
@@ -103,6 +102,8 @@ typedef unsigned int flex_uint32_t;
#define UINT32_MAX (4294967295U)
#endif
#endif /* ! C99 */
#endif /* ! FLEXINT_H */
#ifdef __cplusplus
@@ -112,11 +113,12 @@ typedef unsigned int flex_uint32_t;
#else /* ! __cplusplus */
#if __STDC__
/* C99 requires __STDC__ to be defined as 1. */
#if defined (__STDC__)
#define YY_USE_CONST
#endif /* __STDC__ */
#endif /* defined (__STDC__) */
#endif /* ! __cplusplus */
#ifdef YY_USE_CONST
@@ -196,14 +198,9 @@ extern FILE *zconfin, *zconfout;
#define unput(c) yyunput( c, (yytext_ptr) )
/* The following is because we cannot portably get our hands on size_t
* (without autoconf's help, which isn't available because we want
* flex-generated scanners to compile on their own).
*/
#ifndef YY_TYPEDEF_YY_SIZE_T
#define YY_TYPEDEF_YY_SIZE_T
typedef unsigned int yy_size_t;
typedef size_t yy_size_t;
#endif
#ifndef YY_STRUCT_YY_BUFFER_STATE
@@ -767,6 +764,7 @@ int zconf_flex_debug = 0;
#define YY_MORE_ADJ 0
#define YY_RESTORE_YY_MORE_OFFSET
char *zconftext;
#define YY_NO_INPUT 1
/*
* Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
@@ -815,12 +813,6 @@ void new_string(void)
void append_string(const char *str, int size)
{
int new_size = text_size + size + 1;
if ((YY_START == 2 /* HELP */) && (size > 70)) {
fprintf (stderr, "%s:%d warning: Overlong line\n",
current_file->name, current_file->lineno);
}
if (new_size > text_asize) {
new_size += START_STRSIZE - 1;
new_size &= -START_STRSIZE;
@@ -859,6 +851,35 @@ void alloc_string(const char *str, int size)
static int yy_init_globals (void );
/* Accessor methods to globals.
These are made visible to non-reentrant scanners for convenience. */
int zconflex_destroy (void );
int zconfget_debug (void );
void zconfset_debug (int debug_flag );
YY_EXTRA_TYPE zconfget_extra (void );
void zconfset_extra (YY_EXTRA_TYPE user_defined );
FILE *zconfget_in (void );
void zconfset_in (FILE * in_str );
FILE *zconfget_out (void );
void zconfset_out (FILE * out_str );
int zconfget_leng (void );
char *zconfget_text (void );
int zconfget_lineno (void );
void zconfset_lineno (int line_number );
/* Macros after this point can all be overridden by user definitions in
* section 1.
*/
@@ -901,7 +922,7 @@ static int input (void );
/* This used to be an fputs(), but since the string might contain NUL's,
* we now use fwrite().
*/
#define ECHO (void) fwrite( zconftext, zconfleng, 1, zconfout )
#define ECHO fwrite( zconftext, zconfleng, 1, zconfout )
#endif
/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
@@ -1281,6 +1302,11 @@ YY_RULE_SETUP
case 32:
YY_RULE_SETUP
{
while (zconfleng) {
if ((zconftext[zconfleng-1] != ' ') && (zconftext[zconfleng-1] != '\t'))
break;
zconfleng--;
}
append_string(zconftext, zconfleng);
if (!first_ts)
first_ts = last_ts;
@@ -1536,7 +1562,7 @@ static int yy_get_next_buffer (void)
/* Read in more data. */
YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
(yy_n_chars), num_to_read );
(yy_n_chars), (size_t) num_to_read );
YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
}
@@ -1560,6 +1586,14 @@ static int yy_get_next_buffer (void)
else
ret_val = EOB_ACT_CONTINUE_SCAN;
if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
/* Extend the array by 50%, plus the number we really need. */
yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) zconfrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
}
(yy_n_chars) += number_to_move;
YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
@@ -1946,7 +1980,9 @@ static void zconfensure_buffer_stack (void)
(yy_buffer_stack) = (struct yy_buffer_state**)zconfalloc
(num_to_alloc * sizeof(struct yy_buffer_state*)
);
if ( ! (yy_buffer_stack) )
YY_FATAL_ERROR( "out of dynamic memory in zconfensure_buffer_stack()" );
memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
(yy_buffer_stack_max) = num_to_alloc;
@@ -1964,6 +2000,8 @@ static void zconfensure_buffer_stack (void)
((yy_buffer_stack),
num_to_alloc * sizeof(struct yy_buffer_state*)
);
if ( ! (yy_buffer_stack) )
YY_FATAL_ERROR( "out of dynamic memory in zconfensure_buffer_stack()" );
/* zero only the new slots.*/
memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
@@ -2008,7 +2046,7 @@ YY_BUFFER_STATE zconf_scan_buffer (char * base, yy_size_t size )
/** Setup the input buffer state to scan a string. The next call to zconflex() will
* scan from a @e copy of @a str.
* @param str a NUL-terminated string to scan
* @param yystr a NUL-terminated string to scan
*
* @return the newly allocated buffer state object.
* @note If you want to scan bytes that may contain NUL values, then use
@@ -2332,11 +2370,14 @@ void zconf_nextfile(const char *name)
current_buf = buf;
if (file->flags & FILE_BUSY) {
printf("recursive scan (%s)?\n", name);
printf("%s:%d: do not source '%s' from itself\n",
zconf_curname(), zconf_lineno(), name);
exit(1);
}
if (file->flags & FILE_SCANNED) {
printf("file %s already scanned?\n", name);
printf("%s:%d: file '%s' is already sourced from '%s'\n",
zconf_curname(), zconf_lineno(), name,
file->parent->name);
exit(1);
}
file->flags |= FILE_BUSY;

View File

@@ -11,9 +11,9 @@
#ifndef KBUILD_NO_NLS
# include <libintl.h>
#else
# define gettext(Msgid) ((const char *) (Msgid))
# define textdomain(Domainname) ((const char *) (Domainname))
# define bindtextdomain(Domainname, Dirname) ((const char *) (Dirname))
static inline const char *gettext(const char *txt) { return txt; }
static inline void textdomain(const char *domainname) {}
static inline void bindtextdomain(const char *name, const char *dir) {}
#endif
#ifdef __cplusplus
@@ -42,8 +42,17 @@ extern "C" {
#define TF_PARAM 0x0002
#define TF_OPTION 0x0004
enum conf_def_mode {
def_default,
def_yes,
def_mod,
def_no,
def_random
};
#define T_OPT_MODULES 1
#define T_OPT_DEFCONFIG_LIST 2
#define T_OPT_ENV 3
struct kconf_id {
int name;
@@ -65,15 +74,18 @@ char *zconf_curname(void);
/* confdata.c */
const char *conf_get_configname(void);
const char *conf_get_autoconfig_name(void);
char *conf_get_default_confname(void);
void sym_set_change_count(int count);
void sym_add_change_count(int count);
void conf_set_all_new_symbols(enum conf_def_mode mode);
/* kconfig_load.c */
void kconfig_load(void);
/* menu.c */
void menu_init(void);
void menu_warn(struct menu *menu, const char *fmt, ...);
struct menu *menu_add_menu(void);
void menu_end_menu(void);
void menu_add_entry(struct symbol *sym);
@@ -103,6 +115,8 @@ void str_printf(struct gstr *gs, const char *fmt, ...);
const char *str_get(struct gstr *gs);
/* symbol.c */
extern struct expr *sym_env_list;
void sym_init(void);
void sym_clear_all_valid(void);
void sym_set_all_changed(void);
@@ -110,6 +124,7 @@ void sym_set_changed(struct symbol *sym);
struct symbol *sym_check_deps(struct symbol *sym);
struct property *prop_alloc(enum prop_type type, struct symbol *sym);
struct symbol *prop_get_symbol(struct property *prop);
struct property *sym_get_env_prop(struct symbol *sym);
static inline tristate sym_get_tristate_value(struct symbol *sym)
{

View File

@@ -21,7 +21,7 @@ P(menu_get_help,const char *,(struct menu *menu));
/* symbol.c */
P(symbol_hash,struct symbol *,[SYMBOL_HASHSIZE]);
P(sym_lookup,struct symbol *,(const char *name, int isconst));
P(sym_lookup,struct symbol *,(const char *name, int flags));
P(sym_find,struct symbol *,(const char *name));
P(sym_re_search,struct symbol **,(const char *pattern));
P(sym_type_name,const char *,(enum symbol_type type));

View File

@@ -36,19 +36,23 @@ trap "rm -f $tmp" 0 1 2 3 15
# Check if we can link to ncurses
check() {
echo "main() {}" | $cc -xc - -o $tmp 2> /dev/null
$cc -xc - -o $tmp 2>/dev/null <<'EOF'
#include CURSES_LOC
main() {}
EOF
if [ $? != 0 ]; then
echo " *** Unable to find the ncurses libraries." 1>&2
echo " *** make menuconfig require the ncurses libraries" 1>&2
echo " *** " 1>&2
echo " *** Install ncurses (ncurses-devel) and try again" 1>&2
echo " *** " 1>&2
exit 1
echo " *** Unable to find the ncurses libraries or the" 1>&2
echo " *** required header files." 1>&2
echo " *** 'make menuconfig' requires the ncurses libraries." 1>&2
echo " *** " 1>&2
echo " *** Install ncurses (ncurses-devel) and try again." 1>&2
echo " *** " 1>&2
exit 1
fi
}
usage() {
printf "Usage: $0 [-check compiler options|-header|-library]\n"
printf "Usage: $0 [-check compiler options|-ccflags|-ldflags compiler options]\n"
}
if [ $# -eq 0 ]; then

View File

@@ -41,7 +41,8 @@ static void print_item(WINDOW * win, int choice, int selected)
wmove(win, choice, check_x);
wattrset(win, selected ? dlg.check_selected.atr
: dlg.check.atr);
wprintw(win, "(%c)", item_is_tag('X') ? 'X' : ' ');
if (!item_is_tag(':'))
wprintw(win, "(%c)", item_is_tag('X') ? 'X' : ' ');
wattrset(win, selected ? dlg.tag_selected.atr : dlg.tag.atr);
mvwaddch(win, choice, item_x, item_str()[0]);
@@ -97,8 +98,8 @@ static void print_buttons(WINDOW * dialog, int height, int width, int selected)
int x = width / 2 - 11;
int y = height - 2;
print_button(dialog, "Select", y, x, selected == 0);
print_button(dialog, " Help ", y, x + 14, selected == 1);
print_button(dialog, gettext("Select"), y, x, selected == 0);
print_button(dialog, gettext(" Help "), y, x + 14, selected == 1);
wmove(dialog, y, x + 1 + 14 * selected);
wrefresh(dialog);

View File

@@ -26,6 +26,12 @@
#include <string.h>
#include <stdbool.h>
#ifndef KBUILD_NO_NLS
# include <libintl.h>
#else
# define gettext(Msgid) ((const char *) (Msgid))
#endif
#ifdef __sun__
#define CURS_MACROS
#endif
@@ -187,10 +193,9 @@ int item_is_tag(char tag);
int on_key_esc(WINDOW *win);
int on_key_resize(void);
void init_dialog(const char *backtitle);
int init_dialog(const char *backtitle);
void set_dialog_backtitle(const char *backtitle);
void reset_dialog(void);
void end_dialog(void);
void end_dialog(int x, int y);
void attr_clear(WINDOW * win, int height, int width, chtype attr);
void dialog_clear(void);
void print_autowrap(WINDOW * win, const char *prompt, int width, int y, int x);

View File

@@ -31,8 +31,8 @@ static void print_buttons(WINDOW * dialog, int height, int width, int selected)
int x = width / 2 - 11;
int y = height - 2;
print_button(dialog, " Ok ", y, x, selected == 0);
print_button(dialog, " Help ", y, x + 14, selected == 1);
print_button(dialog, gettext(" Ok "), y, x, selected == 0);
print_button(dialog, gettext(" Help "), y, x + 14, selected == 1);
wmove(dialog, y, x + 1 + 14 * selected);
wrefresh(dialog);
@@ -89,7 +89,7 @@ do_resize:
box_y = y + 2;
box_x = (width - box_width) / 2;
draw_box(dialog, y + 1, box_x - 1, 3, box_width + 2,
dlg.border.atr, dlg.dialog.atr);
dlg.dialog.atr, dlg.border.atr);
print_buttons(dialog, height, width, 0);

View File

@@ -157,9 +157,9 @@ static void print_buttons(WINDOW * win, int height, int width, int selected)
int x = width / 2 - 16;
int y = height - 2;
print_button(win, "Select", y, x, selected == 0);
print_button(win, " Exit ", y, x + 12, selected == 1);
print_button(win, " Help ", y, x + 24, selected == 2);
print_button(win, gettext("Select"), y, x, selected == 0);
print_button(win, gettext(" Exit "), y, x + 12, selected == 1);
print_button(win, gettext(" Help "), y, x + 24, selected == 2);
wmove(win, y, x + 1 + 12 * selected);
wrefresh(win);

View File

@@ -114,7 +114,7 @@ do_resize:
print_title(dialog, title, width);
print_button(dialog, " Exit ", height - 2, width / 2 - 4, TRUE);
print_button(dialog, gettext(" Exit "), height - 2, width / 2 - 4, TRUE);
wnoutrefresh(dialog);
getyx(dialog, cur_y, cur_x); /* Save cursor position */

View File

@@ -266,10 +266,26 @@ void dialog_clear(void)
/*
* Do some initialization for dialog
*/
void init_dialog(const char *backtitle)
int init_dialog(const char *backtitle)
{
int height, width;
initscr(); /* Init curses */
getmaxyx(stdscr, height, width);
if (height < 19 || width < 80) {
endwin();
return -ERRDISPLAYTOOSMALL;
}
dlg.backtitle = backtitle;
color_setup(getenv("MENUCONFIG_COLOR"));
keypad(stdscr, TRUE);
cbreak();
noecho();
dialog_clear();
return 0;
}
void set_dialog_backtitle(const char *backtitle)
@@ -277,20 +293,14 @@ void set_dialog_backtitle(const char *backtitle)
dlg.backtitle = backtitle;
}
void reset_dialog(void)
{
initscr(); /* Init curses */
keypad(stdscr, TRUE);
cbreak();
noecho();
dialog_clear();
}
/*
* End using dialog functions.
*/
void end_dialog(void)
void end_dialog(int x, int y)
{
/* move cursor back to original position */
move(y, x);
refresh();
endwin();
}

View File

@@ -29,8 +29,8 @@ static void print_buttons(WINDOW * dialog, int height, int width, int selected)
int x = width / 2 - 10;
int y = height - 2;
print_button(dialog, " Yes ", y, x, selected == 0);
print_button(dialog, " No ", y, x + 13, selected == 1);
print_button(dialog, gettext(" Yes "), y, x, selected == 0);
print_button(dialog, gettext(" No "), y, x + 13, selected == 1);
wmove(dialog, y, x + 1 + 13 * selected);
wrefresh(dialog);

View File

@@ -8,17 +8,13 @@
* i18n, 2005, Arnaldo Carvalho de Melo <acme@conectiva.com.br>
*/
#include <sys/ioctl.h>
#include <sys/wait.h>
#include <ctype.h>
#include <errno.h>
#include <fcntl.h>
#include <limits.h>
#include <signal.h>
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
#include <termios.h>
#include <unistd.h>
#include <locale.h>
@@ -274,8 +270,6 @@ search_help[] = N_(
"\n");
static int indent;
static struct termios ios_org;
static int rows = 0, cols = 0;
static struct menu *current_menu;
static int child_count;
static int single_menu_mode;
@@ -289,51 +283,16 @@ static void show_textbox(const char *title, const char *text, int r, int c);
static void show_helptext(const char *title, const char *text);
static void show_help(struct menu *menu);
static void init_wsize(void)
{
struct winsize ws;
char *env;
if (!ioctl(STDIN_FILENO, TIOCGWINSZ, &ws)) {
rows = ws.ws_row;
cols = ws.ws_col;
}
if (!rows) {
env = getenv("LINES");
if (env)
rows = atoi(env);
if (!rows)
rows = 24;
}
if (!cols) {
env = getenv("COLUMNS");
if (env)
cols = atoi(env);
if (!cols)
cols = 80;
}
if (rows < 19 || cols < 80) {
fprintf(stderr, N_("Your display is too small to run Menuconfig!\n"));
fprintf(stderr, N_("It must be at least 19 lines by 80 columns.\n"));
exit(1);
}
rows -= 4;
cols -= 5;
}
static void get_prompt_str(struct gstr *r, struct property *prop)
{
int i, j;
struct menu *submenu[8], *menu;
str_printf(r, "Prompt: %s\n", prop->text);
str_printf(r, " Defined at %s:%d\n", prop->menu->file->name,
str_printf(r, _("Prompt: %s\n"), _(prop->text));
str_printf(r, _(" Defined at %s:%d\n"), prop->menu->file->name,
prop->menu->lineno);
if (!expr_is_yes(prop->visible.expr)) {
str_append(r, " Depends on: ");
str_append(r, _(" Depends on: "));
expr_gstr_print(prop->visible.expr, r);
str_append(r, "\n");
}
@@ -341,13 +300,13 @@ static void get_prompt_str(struct gstr *r, struct property *prop)
for (i = 0; menu != &rootmenu && i < 8; menu = menu->parent)
submenu[i++] = menu;
if (i > 0) {
str_printf(r, " Location:\n");
str_printf(r, _(" Location:\n"));
for (j = 4; --i >= 0; j += 2) {
menu = submenu[i];
str_printf(r, "%*c-> %s", j, ' ', menu_get_prompt(menu));
str_printf(r, "%*c-> %s", j, ' ', _(menu_get_prompt(menu)));
if (menu->sym) {
str_printf(r, " (%s [=%s])", menu->sym->name ?
menu->sym->name : "<choice>",
menu->sym->name : _("<choice>"),
sym_get_string_value(menu->sym));
}
str_append(r, "\n");
@@ -377,7 +336,7 @@ static void get_symbol_str(struct gstr *r, struct symbol *sym)
if (hit)
str_append(r, "\n");
if (sym->rev_dep.expr) {
str_append(r, " Selected by: ");
str_append(r, _(" Selected by: "));
expr_gstr_print(sym->rev_dep.expr, r);
str_append(r, "\n");
}
@@ -393,7 +352,7 @@ static struct gstr get_relations_str(struct symbol **sym_arr)
for (i = 0; sym_arr && (sym = sym_arr[i]); i++)
get_symbol_str(&res, sym);
if (!i)
str_append(&res, "No matches found.\n");
str_append(&res, _("No matches found.\n"));
return res;
}
@@ -473,6 +432,7 @@ static void build_conf(struct menu *menu)
switch (prop->type) {
case P_MENU:
child_count++;
prompt = _(prompt);
if (single_menu_mode) {
item_make("%s%*c%s",
menu->data ? "-->" : "++>",
@@ -488,7 +448,7 @@ static void build_conf(struct menu *menu)
case P_COMMENT:
if (prompt) {
child_count++;
item_make(" %*c*** %s ***", indent + 1, ' ', prompt);
item_make(" %*c*** %s ***", indent + 1, ' ', _(prompt));
item_set_tag(':');
item_set_data(menu);
}
@@ -496,7 +456,7 @@ static void build_conf(struct menu *menu)
default:
if (prompt) {
child_count++;
item_make("---%*c%s", indent + 1, ' ', prompt);
item_make("---%*c%s", indent + 1, ' ', _(prompt));
item_set_tag(':');
item_set_data(menu);
}
@@ -540,10 +500,10 @@ static void build_conf(struct menu *menu)
item_set_data(menu);
}
item_add_str("%*c%s", indent + 1, ' ', menu_get_prompt(menu));
item_add_str("%*c%s", indent + 1, ' ', _(menu_get_prompt(menu)));
if (val == yes) {
if (def_menu) {
item_add_str(" (%s)", menu_get_prompt(def_menu));
item_add_str(" (%s)", _(menu_get_prompt(def_menu)));
item_add_str(" --->");
if (def_menu->list) {
indent += 2;
@@ -555,7 +515,7 @@ static void build_conf(struct menu *menu)
}
} else {
if (menu == current_menu) {
item_make("---%*c%s", indent + 1, ' ', menu_get_prompt(menu));
item_make("---%*c%s", indent + 1, ' ', _(menu_get_prompt(menu)));
item_set_tag(':');
item_set_data(menu);
goto conf_childs;
@@ -598,17 +558,17 @@ static void build_conf(struct menu *menu)
tmp = indent - tmp + 4;
if (tmp < 0)
tmp = 0;
item_add_str("%*c%s%s", tmp, ' ', menu_get_prompt(menu),
item_add_str("%*c%s%s", tmp, ' ', _(menu_get_prompt(menu)),
(sym_has_value(sym) || !sym_is_changable(sym)) ?
"" : " (NEW)");
"" : _(" (NEW)"));
item_set_tag('s');
item_set_data(menu);
goto conf_childs;
}
}
item_add_str("%*c%s%s", indent + 1, ' ', menu_get_prompt(menu),
item_add_str("%*c%s%s", indent + 1, ' ', _(menu_get_prompt(menu)),
(sym_has_value(sym) || !sym_is_changable(sym)) ?
"" : " (NEW)");
"" : _(" (NEW)"));
if (menu->prompt->type == P_MENU) {
item_add_str(" --->");
return;
@@ -646,7 +606,7 @@ static void conf(struct menu *menu)
item_set_tag('S');
}
dialog_clear();
res = dialog_menu(prompt ? prompt : _("Main Menu"),
res = dialog_menu(prompt ? _(prompt) : _("Main Menu"),
_(menu_instructions),
active_menu, &s_scroll);
if (res == 1 || res == KEY_ESC || res == -ERRDISPLAYTOOSMALL)
@@ -693,7 +653,7 @@ static void conf(struct menu *menu)
if (sym)
show_help(submenu);
else
show_helptext("README", _(mconf_readme));
show_helptext(_("README"), _(mconf_readme));
break;
case 3:
if (item_is_tag('t')) {
@@ -743,7 +703,7 @@ static void show_help(struct menu *menu)
if (menu_has_help(menu))
{
if (sym->name) {
str_printf(&help, "%s:\n\n", sym->name);
str_printf(&help, "CONFIG_%s:\n\n", sym->name);
str_append(&help, _(menu_get_help(menu)));
str_append(&help, "\n");
}
@@ -751,13 +711,13 @@ static void show_help(struct menu *menu)
str_append(&help, nohelp_text);
}
get_symbol_str(&help, sym);
show_helptext(menu_get_prompt(menu), str_get(&help));
show_helptext(_(menu_get_prompt(menu)), str_get(&help));
str_free(&help);
}
static void conf_choice(struct menu *menu)
{
const char *prompt = menu_get_prompt(menu);
const char *prompt = _(menu_get_prompt(menu));
struct menu *child;
struct symbol *active;
@@ -771,7 +731,12 @@ static void conf_choice(struct menu *menu)
for (child = menu->list; child; child = child->next) {
if (!menu_is_visible(child))
continue;
item_make("%s", menu_get_prompt(child));
if (child->sym)
item_make("%s", _(menu_get_prompt(child)));
else {
item_make("*** %s ***", _(menu_get_prompt(child)));
item_set_tag(':');
}
item_set_data(child);
if (child->sym == active)
item_set_selected(1);
@@ -779,7 +744,7 @@ static void conf_choice(struct menu *menu)
item_set_tag('X');
}
dialog_clear();
res = dialog_checklist(prompt ? prompt : _("Main Menu"),
res = dialog_checklist(prompt ? _(prompt) : _("Main Menu"),
_(radiolist_instructions),
15, 70, 6);
selected = item_activate_selected();
@@ -787,6 +752,9 @@ static void conf_choice(struct menu *menu)
case 0:
if (selected) {
child = item_data();
if (!child->sym)
break;
sym_set_tristate_value(child->sym, yes);
}
return;
@@ -812,7 +780,7 @@ static void conf_string(struct menu *menu)
while (1) {
int res;
char *heading;
const char *heading;
switch (sym_get_type(menu->sym)) {
case S_INT:
@@ -825,10 +793,10 @@ static void conf_string(struct menu *menu)
heading = _(inputbox_instructions_string);
break;
default:
heading = "Internal mconf error!";
heading = _("Internal mconf error!");
}
dialog_clear();
res = dialog_inputbox(prompt ? prompt : _("Main Menu"),
res = dialog_inputbox(prompt ? _(prompt) : _("Main Menu"),
heading, 10, 75,
sym_get_string_value(menu->sym));
switch (res) {
@@ -860,6 +828,7 @@ static void conf_load(void)
return;
if (!conf_read(dialog_input_result)) {
set_config_filename(dialog_input_result);
sym_set_change_count(1);
return;
}
show_textbox(NULL, _("File does not exist!"), 5, 38);
@@ -899,13 +868,9 @@ static void conf_save(void)
}
}
static void conf_cleanup(void)
{
tcsetattr(1, TCSAFLUSH, &ios_org);
}
int main(int ac, char **av)
{
int saved_x, saved_y;
char *mode;
int res;
@@ -922,11 +887,13 @@ int main(int ac, char **av)
single_menu_mode = 1;
}
tcgetattr(1, &ios_org);
atexit(conf_cleanup);
init_wsize();
reset_dialog();
init_dialog(NULL);
getyx(stdscr, saved_y, saved_x);
if (init_dialog(NULL)) {
fprintf(stderr, N_("Your display is too small to run Menuconfig!\n"));
fprintf(stderr, N_("It must be at least 19 lines by 80 columns.\n"));
return 1;
}
set_config_filename(conf_get_configname());
do {
conf(&rootmenu);
@@ -940,7 +907,7 @@ int main(int ac, char **av)
else
res = -1;
} while (res == KEY_ESC);
end_dialog();
end_dialog(saved_x, saved_y);
switch (res) {
case 0:
@@ -965,3 +932,4 @@ int main(int ac, char **av)
return conf_write_autoconf();
}

View File

@@ -15,7 +15,7 @@ static struct menu **last_entry_ptr;
struct file *file_list;
struct file *current_file;
static void menu_warn(struct menu *menu, const char *fmt, ...)
void menu_warn(struct menu *menu, const char *fmt, ...)
{
va_list ap;
va_start(ap, fmt);
@@ -172,6 +172,9 @@ void menu_add_option(int token, char *arg)
else if (sym_defconfig_list != current_entry->sym)
zconf_error("trying to redefine defconfig symbol");
break;
case T_OPT_ENV:
prop_add_env(arg);
break;
}
}
@@ -200,12 +203,9 @@ void sym_check_prop(struct symbol *sym)
prop_warn(prop,
"config symbol '%s' uses select, but is "
"not boolean or tristate", sym->name);
else if (sym2->type == S_UNKNOWN)
prop_warn(prop,
"'select' used by config symbol '%s' "
"refers to undefined symbol '%s'",
sym->name, sym2->name);
else if (sym2->type != S_BOOLEAN && sym2->type != S_TRISTATE)
else if (sym2->type != S_UNKNOWN &&
sym2->type != S_BOOLEAN &&
sym2->type != S_TRISTATE)
prop_warn(prop,
"'%s' has wrong type. 'select' only "
"accept arguments of boolean and "
@@ -235,16 +235,22 @@ void menu_finalize(struct menu *parent)
sym = parent->sym;
if (parent->list) {
if (sym && sym_is_choice(sym)) {
/* find the first choice value and find out choice type */
for (menu = parent->list; menu; menu = menu->next) {
if (menu->sym) {
current_entry = parent;
menu_set_type(menu->sym->type);
current_entry = menu;
menu_set_type(sym->type);
break;
if (sym->type == S_UNKNOWN) {
/* find the first choice value to find out choice type */
current_entry = parent;
for (menu = parent->list; menu; menu = menu->next) {
if (menu->sym && menu->sym->type != S_UNKNOWN) {
menu_set_type(menu->sym->type);
break;
}
}
}
/* set the type of the remaining choice values */
for (menu = parent->list; menu; menu = menu->next) {
current_entry = menu;
if (menu->sym && menu->sym->type == S_UNKNOWN)
menu_set_type(sym->type);
}
parentdep = expr_alloc_symbol(sym);
} else if (parent->prompt)
parentdep = parent->prompt->visible.expr;
@@ -311,27 +317,43 @@ void menu_finalize(struct menu *parent)
}
}
for (menu = parent->list; menu; menu = menu->next) {
if (sym && sym_is_choice(sym) && menu->sym) {
if (sym && sym_is_choice(sym) &&
menu->sym && !sym_is_choice_value(menu->sym)) {
current_entry = menu;
menu->sym->flags |= SYMBOL_CHOICEVAL;
if (!menu->prompt)
menu_warn(menu, "choice value must have a prompt");
for (prop = menu->sym->prop; prop; prop = prop->next) {
if (prop->type == P_PROMPT && prop->menu != menu) {
prop_warn(prop, "choice values "
"currently only support a "
"single prompt");
}
if (prop->type == P_DEFAULT)
prop_warn(prop, "defaults for choice "
"values not supported");
"values not supported");
if (prop->menu == menu)
continue;
if (prop->type == P_PROMPT &&
prop->menu->parent->sym != sym)
prop_warn(prop, "choice value used outside its choice group");
}
/* Non-tristate choice values of tristate choices must
* depend on the choice being set to Y. The choice
* values' dependencies were propagated to their
* properties above, so the change here must be re-
* propagated.
*/
if (sym->type == S_TRISTATE && menu->sym->type != S_TRISTATE) {
basedep = expr_alloc_comp(E_EQUAL, sym, &symbol_yes);
menu->dep = expr_alloc_and(basedep, menu->dep);
for (prop = menu->sym->prop; prop; prop = prop->next) {
if (prop->menu != menu)
continue;
prop->visible.expr = expr_alloc_and(expr_copy(basedep),
prop->visible.expr);
}
}
current_entry = menu;
menu_set_type(sym->type);
menu_add_symbol(P_CHOICE, sym, NULL);
prop = sym_get_choice_prop(sym);
for (ep = &prop->expr; *ep; ep = &(*ep)->left.expr)
;
*ep = expr_alloc_one(E_CHOICE, NULL);
*ep = expr_alloc_one(E_LIST, NULL);
(*ep)->right.sym = menu->sym;
}
if (menu->list && (!menu->prompt || !menu->prompt->text)) {
@@ -394,9 +416,9 @@ bool menu_is_visible(struct menu *menu)
const char *menu_get_prompt(struct menu *menu)
{
if (menu->prompt)
return _(menu->prompt->text);
return menu->prompt->text;
else if (menu->sym)
return _(menu->sym->name);
return menu->sym->name;
return NULL;
}

View File

@@ -5,6 +5,7 @@
#include <qapplication.h>
#include <qmainwindow.h>
#include <qdesktopwidget.h>
#include <qtoolbar.h>
#include <qlayout.h>
#include <qvbox.h>
@@ -114,7 +115,7 @@ void ConfigItem::updateMenu(void)
sym = menu->sym;
prop = menu->prompt;
prompt = QString::fromLocal8Bit(menu_get_prompt(menu));
prompt = _(menu_get_prompt(menu));
if (prop) switch (prop->type) {
case P_MENU:
@@ -208,7 +209,7 @@ void ConfigItem::updateMenu(void)
break;
}
if (!sym_has_value(sym) && visible)
prompt += " (NEW)";
prompt += _(" (NEW)");
set_prompt:
setText(promptColIdx, prompt);
}
@@ -297,10 +298,10 @@ void ConfigLineEdit::show(ConfigItem* i)
void ConfigLineEdit::keyPressEvent(QKeyEvent* e)
{
switch (e->key()) {
case Key_Escape:
case Qt::Key_Escape:
break;
case Key_Return:
case Key_Enter:
case Qt::Key_Return:
case Qt::Key_Enter:
sym_set_string_value(item->menu->sym, text().latin1());
parent()->updateList(item);
break;
@@ -346,7 +347,7 @@ ConfigList::ConfigList(ConfigView* p, const char *name)
for (i = 0; i < colNr; i++)
colMap[i] = colRevMap[i] = -1;
addColumn(promptColIdx, "Option");
addColumn(promptColIdx, _("Option"));
reinit();
}
@@ -360,14 +361,14 @@ void ConfigList::reinit(void)
removeColumn(nameColIdx);
if (showName)
addColumn(nameColIdx, "Name");
addColumn(nameColIdx, _("Name"));
if (showRange) {
addColumn(noColIdx, "N");
addColumn(modColIdx, "M");
addColumn(yesColIdx, "Y");
}
if (showData)
addColumn(dataColIdx, "Value");
addColumn(dataColIdx, _("Value"));
updateListAll();
}
@@ -639,7 +640,7 @@ void ConfigList::keyPressEvent(QKeyEvent* ev)
struct menu *menu;
enum prop_type type;
if (ev->key() == Key_Escape && mode != fullMode && mode != listMode) {
if (ev->key() == Qt::Key_Escape && mode != fullMode && mode != listMode) {
emit parentSelected();
ev->accept();
return;
@@ -652,8 +653,8 @@ void ConfigList::keyPressEvent(QKeyEvent* ev)
item = (ConfigItem*)i;
switch (ev->key()) {
case Key_Return:
case Key_Enter:
case Qt::Key_Return:
case Qt::Key_Enter:
if (item->goParent) {
emit parentSelected();
break;
@@ -667,16 +668,16 @@ void ConfigList::keyPressEvent(QKeyEvent* ev)
emit menuSelected(menu);
break;
}
case Key_Space:
case Qt::Key_Space:
changeValue(item);
break;
case Key_N:
case Qt::Key_N:
setValue(item, no);
break;
case Key_M:
case Qt::Key_M:
setValue(item, mod);
break;
case Key_Y:
case Qt::Key_Y:
setValue(item, yes);
break;
default:
@@ -803,7 +804,7 @@ void ConfigList::contextMenuEvent(QContextMenuEvent *e)
QAction *action;
headerPopup = new QPopupMenu(this);
action = new QAction(NULL, "Show Name", 0, this);
action = new QAction(NULL, _("Show Name"), 0, this);
action->setToggleAction(TRUE);
connect(action, SIGNAL(toggled(bool)),
parent(), SLOT(setShowName(bool)));
@@ -811,7 +812,7 @@ void ConfigList::contextMenuEvent(QContextMenuEvent *e)
action, SLOT(setOn(bool)));
action->setOn(showName);
action->addTo(headerPopup);
action = new QAction(NULL, "Show Range", 0, this);
action = new QAction(NULL, _("Show Range"), 0, this);
action->setToggleAction(TRUE);
connect(action, SIGNAL(toggled(bool)),
parent(), SLOT(setShowRange(bool)));
@@ -819,7 +820,7 @@ void ConfigList::contextMenuEvent(QContextMenuEvent *e)
action, SLOT(setOn(bool)));
action->setOn(showRange);
action->addTo(headerPopup);
action = new QAction(NULL, "Show Data", 0, this);
action = new QAction(NULL, _("Show Data"), 0, this);
action->setToggleAction(TRUE);
connect(action, SIGNAL(toggled(bool)),
parent(), SLOT(setShowData(bool)));
@@ -920,7 +921,7 @@ void ConfigView::updateListAll(void)
}
ConfigInfoView::ConfigInfoView(QWidget* parent, const char *name)
: Parent(parent, name), menu(0), sym(0)
: Parent(parent, name), sym(0), menu(0)
{
if (name) {
configSettings->beginGroup(name);
@@ -1041,7 +1042,12 @@ void ConfigInfoView::menuInfo(void)
if (showDebug())
debug = debug_info(sym);
help = print_filter(_(menu_get_help(menu)));
help = menu_get_help(menu);
/* Gettextize if the help text not empty */
if (help.isEmpty())
help = print_filter(menu_get_help(menu));
else
help = print_filter(_(menu_get_help(menu)));
} else if (menu->prompt) {
head += "<big><b>";
head += print_filter(_(menu->prompt->text));
@@ -1083,7 +1089,11 @@ QString ConfigInfoView::debug_info(struct symbol *sym)
debug += "</a><br>";
break;
case P_DEFAULT:
debug += "default: ";
case P_SELECT:
case P_RANGE:
case P_ENV:
debug += prop_get_type_name(prop->type);
debug += ": ";
expr_print(prop->expr, expr_print_help, &debug, E_NONE);
debug += "<br>";
break;
@@ -1094,16 +1104,6 @@ QString ConfigInfoView::debug_info(struct symbol *sym)
debug += "<br>";
}
break;
case P_SELECT:
debug += "select: ";
expr_print(prop->expr, expr_print_help, &debug, E_NONE);
debug += "<br>";
break;
case P_RANGE:
debug += "range: ";
expr_print(prop->expr, expr_print_help, &debug, E_NONE);
debug += "<br>";
break;
default:
debug += "unknown property: ";
debug += prop_get_type_name(prop->type);
@@ -1167,7 +1167,7 @@ void ConfigInfoView::expr_print_help(void *data, struct symbol *sym, const char
QPopupMenu* ConfigInfoView::createPopupMenu(const QPoint& pos)
{
QPopupMenu* popup = Parent::createPopupMenu(pos);
QAction* action = new QAction(NULL,"Show Debug Info", 0, popup);
QAction* action = new QAction(NULL, _("Show Debug Info"), 0, popup);
action->setToggleAction(TRUE);
connect(action, SIGNAL(toggled(bool)), SLOT(setShowDebug(bool)));
connect(this, SIGNAL(showDebugChanged(bool)), action, SLOT(setOn(bool)));
@@ -1189,18 +1189,18 @@ ConfigSearchWindow::ConfigSearchWindow(ConfigMainWindow* parent, const char *nam
QVBoxLayout* layout1 = new QVBoxLayout(this, 11, 6);
QHBoxLayout* layout2 = new QHBoxLayout(0, 0, 6);
layout2->addWidget(new QLabel("Find:", this));
layout2->addWidget(new QLabel(_("Find:"), this));
editField = new QLineEdit(this);
connect(editField, SIGNAL(returnPressed()), SLOT(search()));
layout2->addWidget(editField);
searchButton = new QPushButton("Search", this);
searchButton = new QPushButton(_("Search"), this);
searchButton->setAutoDefault(FALSE);
connect(searchButton, SIGNAL(clicked()), SLOT(search()));
layout2->addWidget(searchButton);
layout1->addLayout(layout2);
split = new QSplitter(this);
split->setOrientation(QSplitter::Vertical);
split->setOrientation(Qt::Vertical);
list = new ConfigView(split, name);
list->list->mode = listMode;
info = new ConfigInfoView(split, name);
@@ -1276,9 +1276,8 @@ ConfigMainWindow::ConfigMainWindow(void)
int x, y, width, height;
char title[256];
QWidget *d = configApp->desktop();
snprintf(title, sizeof(title), _("Linux Kernel v%s Configuration"),
getenv("KERNELVERSION"));
QDesktopWidget *d = configApp->desktop();
snprintf(title, sizeof(title), _("Buildroot Configuration"));
setCaption(title);
width = configSettings->readNumEntry("/window width", d->width() - 64);
@@ -1291,14 +1290,14 @@ ConfigMainWindow::ConfigMainWindow(void)
move(x, y);
split1 = new QSplitter(this);
split1->setOrientation(QSplitter::Horizontal);
split1->setOrientation(Qt::Horizontal);
setCentralWidget(split1);
menuView = new ConfigView(split1, "menu");
menuList = menuView->list;
split2 = new QSplitter(split1);
split2->setOrientation(QSplitter::Vertical);
split2->setOrientation(Qt::Vertical);
// create config tree
configView = new ConfigView(split2, "config");
@@ -1313,58 +1312,58 @@ ConfigMainWindow::ConfigMainWindow(void)
menu = menuBar();
toolBar = new QToolBar("Tools", this);
backAction = new QAction("Back", QPixmap(xpm_back), "Back", 0, this);
backAction = new QAction("Back", QPixmap(xpm_back), _("Back"), 0, this);
connect(backAction, SIGNAL(activated()), SLOT(goBack()));
backAction->setEnabled(FALSE);
QAction *quitAction = new QAction("Quit", "&Quit", CTRL+Key_Q, this);
QAction *quitAction = new QAction("Quit", _("&Quit"), Qt::CTRL + Qt::Key_Q, this);
connect(quitAction, SIGNAL(activated()), SLOT(close()));
QAction *loadAction = new QAction("Load", QPixmap(xpm_load), "&Load", CTRL+Key_L, this);
QAction *loadAction = new QAction("Load", QPixmap(xpm_load), _("&Load"), Qt::CTRL + Qt::Key_L, this);
connect(loadAction, SIGNAL(activated()), SLOT(loadConfig()));
saveAction = new QAction("Save", QPixmap(xpm_save), "&Save", CTRL+Key_S, this);
saveAction = new QAction("Save", QPixmap(xpm_save), _("&Save"), Qt::CTRL + Qt::Key_S, this);
connect(saveAction, SIGNAL(activated()), SLOT(saveConfig()));
conf_set_changed_callback(conf_changed);
// Set saveAction's initial state
conf_changed();
QAction *saveAsAction = new QAction("Save As...", "Save &As...", 0, this);
QAction *saveAsAction = new QAction("Save As...", _("Save &As..."), 0, this);
connect(saveAsAction, SIGNAL(activated()), SLOT(saveConfigAs()));
QAction *searchAction = new QAction("Find", "&Find", CTRL+Key_F, this);
QAction *searchAction = new QAction("Find", _("&Find"), Qt::CTRL + Qt::Key_F, this);
connect(searchAction, SIGNAL(activated()), SLOT(searchConfig()));
QAction *singleViewAction = new QAction("Single View", QPixmap(xpm_single_view), "Split View", 0, this);
QAction *singleViewAction = new QAction("Single View", QPixmap(xpm_single_view), _("Single View"), 0, this);
connect(singleViewAction, SIGNAL(activated()), SLOT(showSingleView()));
QAction *splitViewAction = new QAction("Split View", QPixmap(xpm_split_view), "Split View", 0, this);
QAction *splitViewAction = new QAction("Split View", QPixmap(xpm_split_view), _("Split View"), 0, this);
connect(splitViewAction, SIGNAL(activated()), SLOT(showSplitView()));
QAction *fullViewAction = new QAction("Full View", QPixmap(xpm_tree_view), "Full View", 0, this);
QAction *fullViewAction = new QAction("Full View", QPixmap(xpm_tree_view), _("Full View"), 0, this);
connect(fullViewAction, SIGNAL(activated()), SLOT(showFullView()));
QAction *showNameAction = new QAction(NULL, "Show Name", 0, this);
QAction *showNameAction = new QAction(NULL, _("Show Name"), 0, this);
showNameAction->setToggleAction(TRUE);
connect(showNameAction, SIGNAL(toggled(bool)), configView, SLOT(setShowName(bool)));
connect(configView, SIGNAL(showNameChanged(bool)), showNameAction, SLOT(setOn(bool)));
showNameAction->setOn(configView->showName());
QAction *showRangeAction = new QAction(NULL, "Show Range", 0, this);
QAction *showRangeAction = new QAction(NULL, _("Show Range"), 0, this);
showRangeAction->setToggleAction(TRUE);
connect(showRangeAction, SIGNAL(toggled(bool)), configView, SLOT(setShowRange(bool)));
connect(configView, SIGNAL(showRangeChanged(bool)), showRangeAction, SLOT(setOn(bool)));
showRangeAction->setOn(configList->showRange);
QAction *showDataAction = new QAction(NULL, "Show Data", 0, this);
QAction *showDataAction = new QAction(NULL, _("Show Data"), 0, this);
showDataAction->setToggleAction(TRUE);
connect(showDataAction, SIGNAL(toggled(bool)), configView, SLOT(setShowData(bool)));
connect(configView, SIGNAL(showDataChanged(bool)), showDataAction, SLOT(setOn(bool)));
showDataAction->setOn(configList->showData);
QAction *showAllAction = new QAction(NULL, "Show All Options", 0, this);
QAction *showAllAction = new QAction(NULL, _("Show All Options"), 0, this);
showAllAction->setToggleAction(TRUE);
connect(showAllAction, SIGNAL(toggled(bool)), configView, SLOT(setShowAll(bool)));
connect(showAllAction, SIGNAL(toggled(bool)), menuView, SLOT(setShowAll(bool)));
showAllAction->setOn(configList->showAll);
QAction *showDebugAction = new QAction(NULL, "Show Debug Info", 0, this);
QAction *showDebugAction = new QAction(NULL, _("Show Debug Info"), 0, this);
showDebugAction->setToggleAction(TRUE);
connect(showDebugAction, SIGNAL(toggled(bool)), helpText, SLOT(setShowDebug(bool)));
connect(helpText, SIGNAL(showDebugChanged(bool)), showDebugAction, SLOT(setOn(bool)));
showDebugAction->setOn(helpText->showDebug());
QAction *showIntroAction = new QAction(NULL, "Introduction", 0, this);
QAction *showIntroAction = new QAction(NULL, _("Introduction"), 0, this);
connect(showIntroAction, SIGNAL(activated()), SLOT(showIntro()));
QAction *showAboutAction = new QAction(NULL, "About", 0, this);
QAction *showAboutAction = new QAction(NULL, _("About"), 0, this);
connect(showAboutAction, SIGNAL(activated()), SLOT(showAbout()));
// init tool bar
@@ -1379,7 +1378,7 @@ ConfigMainWindow::ConfigMainWindow(void)
// create config menu
QPopupMenu* config = new QPopupMenu(this);
menu->insertItem("&File", config);
menu->insertItem(_("&File"), config);
loadAction->addTo(config);
saveAction->addTo(config);
saveAsAction->addTo(config);
@@ -1388,12 +1387,12 @@ ConfigMainWindow::ConfigMainWindow(void)
// create edit menu
QPopupMenu* editMenu = new QPopupMenu(this);
menu->insertItem("&Edit", editMenu);
menu->insertItem(_("&Edit"), editMenu);
searchAction->addTo(editMenu);
// create options menu
QPopupMenu* optionMenu = new QPopupMenu(this);
menu->insertItem("&Option", optionMenu);
menu->insertItem(_("&Option"), optionMenu);
showNameAction->addTo(optionMenu);
showRangeAction->addTo(optionMenu);
showDataAction->addTo(optionMenu);
@@ -1404,7 +1403,7 @@ ConfigMainWindow::ConfigMainWindow(void)
// create help menu
QPopupMenu* helpMenu = new QPopupMenu(this);
menu->insertSeparator();
menu->insertItem("&Help", helpMenu);
menu->insertItem(_("&Help"), helpMenu);
showIntroAction->addTo(helpMenu);
showAboutAction->addTo(helpMenu);
@@ -1448,27 +1447,27 @@ ConfigMainWindow::ConfigMainWindow(void)
void ConfigMainWindow::loadConfig(void)
{
QString s = QFileDialog::getOpenFileName(".config", NULL, this);
QString s = QFileDialog::getOpenFileName(conf_get_configname(), NULL, this);
if (s.isNull())
return;
if (conf_read(QFile::encodeName(s)))
QMessageBox::information(this, "qconf", "Unable to load configuration!");
QMessageBox::information(this, "qconf", _("Unable to load configuration!"));
ConfigView::updateListAll();
}
void ConfigMainWindow::saveConfig(void)
{
if (conf_write(NULL))
QMessageBox::information(this, "qconf", "Unable to save configuration!");
QMessageBox::information(this, "qconf", _("Unable to save configuration!"));
}
void ConfigMainWindow::saveConfigAs(void)
{
QString s = QFileDialog::getSaveFileName(".config", NULL, this);
QString s = QFileDialog::getSaveFileName(conf_get_configname(), NULL, this);
if (s.isNull())
return;
if (conf_write(QFile::encodeName(s)))
QMessageBox::information(this, "qconf", "Unable to save configuration!");
QMessageBox::information(this, "qconf", _("Unable to save configuration!"));
}
void ConfigMainWindow::searchConfig(void)
@@ -1525,6 +1524,8 @@ void ConfigMainWindow::setMenuLink(struct menu *menu)
case fullMode:
list = configList;
break;
default:
break;
}
if (list) {
@@ -1610,16 +1611,18 @@ void ConfigMainWindow::closeEvent(QCloseEvent* e)
{
if (!conf_get_changed()) {
e->accept();
conf_write_autoconf();
return;
}
QMessageBox mb("qconf", "Save configuration?", QMessageBox::Warning,
QMessageBox mb("qconf", _("Save configuration?"), QMessageBox::Warning,
QMessageBox::Yes | QMessageBox::Default, QMessageBox::No, QMessageBox::Cancel | QMessageBox::Escape);
mb.setButtonText(QMessageBox::Yes, "&Save Changes");
mb.setButtonText(QMessageBox::No, "&Discard Changes");
mb.setButtonText(QMessageBox::Cancel, "Cancel Exit");
mb.setButtonText(QMessageBox::Yes, _("&Save Changes"));
mb.setButtonText(QMessageBox::No, _("&Discard Changes"));
mb.setButtonText(QMessageBox::Cancel, _("Cancel Exit"));
switch (mb.exec()) {
case QMessageBox::Yes:
conf_write(NULL);
conf_write_autoconf();
case QMessageBox::No:
e->accept();
break;
@@ -1631,7 +1634,7 @@ void ConfigMainWindow::closeEvent(QCloseEvent* e)
void ConfigMainWindow::showIntro(void)
{
static char str[] = "Welcome to the qconf graphical kernel configuration tool for Linux.\n\n"
static const QString str = _("Welcome to the qconf graphical kernel configuration tool for Linux.\n\n"
"For each option, a blank box indicates the feature is disabled, a check\n"
"indicates it is enabled, and a dot indicates that it is to be compiled\n"
"as a module. Clicking on the box will cycle through the three states.\n\n"
@@ -1641,15 +1644,15 @@ void ConfigMainWindow::showIntro(void)
"options must be enabled to support the option you are interested in, you can\n"
"still view the help of a grayed-out option.\n\n"
"Toggling Show Debug Info under the Options menu will show the dependencies,\n"
"which you can then match by examining other options.\n\n";
"which you can then match by examining other options.\n\n");
QMessageBox::information(this, "qconf", str);
}
void ConfigMainWindow::showAbout(void)
{
static char str[] = "qconf is Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>.\n\n"
"Bug reports and feature request can also be entered at http://bugzilla.kernel.org/\n";
static const QString str = _("qconf is Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>.\n\n"
"Bug reports and feature request can also be entered at http://bugzilla.kernel.org/\n");
QMessageBox::information(this, "qconf", str);
}
@@ -1674,6 +1677,9 @@ void ConfigMainWindow::saveSettings(void)
case fullMode :
entry = "full";
break;
default:
break;
}
configSettings->writeEntry("/listMode", entry);
@@ -1707,7 +1713,7 @@ static const char *progname;
static void usage(void)
{
printf("%s <config>\n", progname);
printf(_("%s <config>\n"), progname);
exit(0);
}

View File

@@ -34,18 +34,19 @@ struct symbol *sym_defconfig_list;
struct symbol *modules_sym;
tristate modules_val;
struct expr *sym_env_list;
void sym_add_default(struct symbol *sym, const char *def)
{
struct property *prop = prop_alloc(P_DEFAULT, sym);
prop->expr = expr_alloc_symbol(sym_lookup(def, 1));
prop->expr = expr_alloc_symbol(sym_lookup(def, SYMBOL_CONST));
}
void sym_init(void)
{
struct symbol *sym;
struct utsname uts;
char *p;
static bool inited = false;
if (inited)
@@ -54,20 +55,6 @@ void sym_init(void)
uname(&uts);
sym = sym_lookup("ARCH", 0);
sym->type = S_STRING;
sym->flags |= SYMBOL_AUTO;
p = getenv("ARCH");
if (p)
sym_add_default(sym, p);
sym = sym_lookup("BR2_VERSION", 0);
sym->type = S_STRING;
sym->flags |= SYMBOL_AUTO;
p = getenv("BR2_VERSION");
if (p)
sym_add_default(sym, p);
sym = sym_lookup("UNAME_RELEASE", 0);
sym->type = S_STRING;
sym->flags |= SYMBOL_AUTO;
@@ -117,6 +104,15 @@ struct property *sym_get_choice_prop(struct symbol *sym)
return NULL;
}
struct property *sym_get_env_prop(struct symbol *sym)
{
struct property *prop;
for_all_properties(sym, prop, P_ENV)
return prop;
return NULL;
}
struct property *sym_get_default_prop(struct symbol *sym)
{
struct property *prop;
@@ -199,7 +195,7 @@ static void sym_calc_visibility(struct symbol *sym)
tri = no;
for_all_prompts(sym, prop) {
prop->visible.tri = expr_calc_value(prop->visible.expr);
tri = E_OR(tri, prop->visible.tri);
tri = EXPR_OR(tri, prop->visible.tri);
}
if (tri == mod && (sym->type != S_TRISTATE || modules_val == no))
tri = yes;
@@ -247,8 +243,7 @@ static struct symbol *sym_calc_choice(struct symbol *sym)
/* just get the first visible value */
prop = sym_get_choice_prop(sym);
for (e = prop->expr; e; e = e->left.expr) {
def_sym = e->right.sym;
expr_list_for_each_sym(prop->expr, e, def_sym) {
sym_calc_visibility(def_sym);
if (def_sym->visible != no)
return def_sym;
@@ -303,22 +298,30 @@ void sym_calc_value(struct symbol *sym)
if (sym_is_choice_value(sym) && sym->visible == yes) {
prop = sym_get_choice_prop(sym);
newval.tri = (prop_get_symbol(prop)->curr.val == sym) ? yes : no;
} else if (E_OR(sym->visible, sym->rev_dep.tri) != no) {
sym->flags |= SYMBOL_WRITE;
if (sym_has_value(sym))
newval.tri = sym->def[S_DEF_USER].tri;
else if (!sym_is_choice(sym)) {
prop = sym_get_default_prop(sym);
if (prop)
newval.tri = expr_calc_value(prop->expr);
}
newval.tri = E_OR(E_AND(newval.tri, sym->visible), sym->rev_dep.tri);
} else if (!sym_is_choice(sym)) {
prop = sym_get_default_prop(sym);
if (prop) {
} else {
if (sym->visible != no) {
/* if the symbol is visible use the user value
* if available, otherwise try the default value
*/
sym->flags |= SYMBOL_WRITE;
newval.tri = expr_calc_value(prop->expr);
if (sym_has_value(sym)) {
newval.tri = EXPR_AND(sym->def[S_DEF_USER].tri,
sym->visible);
goto calc_newval;
}
}
if (sym->rev_dep.tri != no)
sym->flags |= SYMBOL_WRITE;
if (!sym_is_choice(sym)) {
prop = sym_get_default_prop(sym);
if (prop) {
sym->flags |= SYMBOL_WRITE;
newval.tri = EXPR_AND(expr_calc_value(prop->expr),
prop->visible.tri);
}
}
calc_newval:
newval.tri = EXPR_OR(newval.tri, sym->rev_dep.tri);
}
if (newval.tri == mod && sym_get_type(sym) == S_BOOLEAN)
newval.tri = yes;
@@ -361,14 +364,19 @@ void sym_calc_value(struct symbol *sym)
}
if (sym_is_choice(sym)) {
struct symbol *choice_sym;
int flags = sym->flags & (SYMBOL_CHANGED | SYMBOL_WRITE);
prop = sym_get_choice_prop(sym);
for (e = prop->expr; e; e = e->left.expr) {
e->right.sym->flags |= flags;
expr_list_for_each_sym(prop->expr, e, choice_sym) {
choice_sym->flags |= flags;
if (flags & SYMBOL_CHANGED)
sym_set_changed(e->right.sym);
sym_set_changed(choice_sym);
}
}
if (sym->flags & SYMBOL_AUTO)
sym->flags &= ~SYMBOL_WRITE;
}
void sym_clear_all_valid(void)
@@ -643,7 +651,7 @@ bool sym_is_changable(struct symbol *sym)
return sym->visible > sym->rev_dep.tri;
}
struct symbol *sym_lookup(const char *name, int isconst)
struct symbol *sym_lookup(const char *name, int flags)
{
struct symbol *symbol;
const char *ptr;
@@ -663,11 +671,10 @@ struct symbol *sym_lookup(const char *name, int isconst)
hash &= 0xff;
for (symbol = symbol_hash[hash]; symbol; symbol = symbol->next) {
if (!strcmp(symbol->name, name)) {
if ((isconst && symbol->flags & SYMBOL_CONST) ||
(!isconst && !(symbol->flags & SYMBOL_CONST)))
return symbol;
}
if (!strcmp(symbol->name, name) &&
(flags ? symbol->flags & flags
: !(symbol->flags & (SYMBOL_CONST|SYMBOL_CHOICE))))
return symbol;
}
new_name = strdup(name);
} else {
@@ -679,8 +686,7 @@ struct symbol *sym_lookup(const char *name, int isconst)
memset(symbol, 0, sizeof(*symbol));
symbol->name = new_name;
symbol->type = S_UNKNOWN;
if (isconst)
symbol->flags |= SYMBOL_CONST;
symbol->flags |= flags;
symbol->next = symbol_hash[hash];
symbol_hash[hash] = symbol;
@@ -754,8 +760,6 @@ struct symbol **sym_re_search(const char *pattern)
}
struct symbol *sym_check_deps(struct symbol *sym);
static struct symbol *sym_check_expr_deps(struct expr *e)
{
struct symbol *sym;
@@ -787,6 +791,65 @@ static struct symbol *sym_check_expr_deps(struct expr *e)
}
/* return NULL when dependencies are OK */
static struct symbol *sym_check_sym_deps(struct symbol *sym)
{
struct symbol *sym2;
struct property *prop;
sym2 = sym_check_expr_deps(sym->rev_dep.expr);
if (sym2)
return sym2;
for (prop = sym->prop; prop; prop = prop->next) {
if (prop->type == P_CHOICE || prop->type == P_SELECT)
continue;
sym2 = sym_check_expr_deps(prop->visible.expr);
if (sym2)
break;
if (prop->type != P_DEFAULT || sym_is_choice(sym))
continue;
sym2 = sym_check_expr_deps(prop->expr);
if (sym2)
break;
}
return sym2;
}
static struct symbol *sym_check_choice_deps(struct symbol *choice)
{
struct symbol *sym, *sym2;
struct property *prop;
struct expr *e;
prop = sym_get_choice_prop(choice);
expr_list_for_each_sym(prop->expr, e, sym)
sym->flags |= (SYMBOL_CHECK | SYMBOL_CHECKED);
choice->flags |= (SYMBOL_CHECK | SYMBOL_CHECKED);
sym2 = sym_check_sym_deps(choice);
choice->flags &= ~SYMBOL_CHECK;
if (sym2)
goto out;
expr_list_for_each_sym(prop->expr, e, sym) {
sym2 = sym_check_sym_deps(sym);
if (sym2) {
fprintf(stderr, " -> %s", sym->name);
break;
}
}
out:
expr_list_for_each_sym(prop->expr, e, sym)
sym->flags &= ~SYMBOL_CHECK;
if (sym2 && sym_is_choice_value(sym2) &&
prop_get_symbol(sym_get_choice_prop(sym2)) == choice)
sym2 = choice;
return sym2;
}
struct symbol *sym_check_deps(struct symbol *sym)
{
struct symbol *sym2;
@@ -794,33 +857,34 @@ struct symbol *sym_check_deps(struct symbol *sym)
if (sym->flags & SYMBOL_CHECK) {
fprintf(stderr, "%s:%d:error: found recursive dependency: %s",
sym->prop->file->name, sym->prop->lineno, sym->name);
sym->prop->file->name, sym->prop->lineno,
sym->name ? sym->name : "<choice>");
return sym;
}
if (sym->flags & SYMBOL_CHECKED)
return NULL;
sym->flags |= (SYMBOL_CHECK | SYMBOL_CHECKED);
sym2 = sym_check_expr_deps(sym->rev_dep.expr);
if (sym2)
goto out;
for (prop = sym->prop; prop; prop = prop->next) {
if (prop->type == P_CHOICE || prop->type == P_SELECT)
continue;
sym2 = sym_check_expr_deps(prop->visible.expr);
if (sym2)
goto out;
if (prop->type != P_DEFAULT || sym_is_choice(sym))
continue;
sym2 = sym_check_expr_deps(prop->expr);
if (sym2)
goto out;
if (sym_is_choice_value(sym)) {
/* for choice groups start the check with main choice symbol */
prop = sym_get_choice_prop(sym);
sym2 = sym_check_deps(prop_get_symbol(prop));
} else if (sym_is_choice(sym)) {
sym2 = sym_check_choice_deps(sym);
} else {
sym->flags |= (SYMBOL_CHECK | SYMBOL_CHECKED);
sym2 = sym_check_sym_deps(sym);
sym->flags &= ~SYMBOL_CHECK;
}
out:
if (sym2)
fprintf(stderr, " -> %s%s", sym->name, sym2 == sym? "\n": "");
sym->flags &= ~SYMBOL_CHECK;
if (sym2) {
fprintf(stderr, " -> %s", sym->name ? sym->name : "<choice>");
if (sym2 == sym) {
fprintf(stderr, "\n");
zconfnerrs++;
sym2 = NULL;
}
}
return sym2;
}
@@ -849,7 +913,7 @@ struct property *prop_alloc(enum prop_type type, struct symbol *sym)
struct symbol *prop_get_symbol(struct property *prop)
{
if (prop->expr && (prop->expr->type == E_SYMBOL ||
prop->expr->type == E_CHOICE))
prop->expr->type == E_LIST))
return prop->expr->left.sym;
return NULL;
}
@@ -859,6 +923,8 @@ const char *prop_get_type_name(enum prop_type type)
switch (type) {
case P_PROMPT:
return "prompt";
case P_ENV:
return "env";
case P_COMMENT:
return "comment";
case P_MENU:
@@ -876,3 +942,32 @@ const char *prop_get_type_name(enum prop_type type)
}
return "unknown";
}
void prop_add_env(const char *env)
{
struct symbol *sym, *sym2;
struct property *prop;
char *p;
sym = current_entry->sym;
sym->flags |= SYMBOL_AUTO;
for_all_properties(sym, prop, P_ENV) {
sym2 = prop_get_symbol(prop);
if (strcmp(sym2->name, env))
menu_warn(current_entry, "redefining environment symbol from %s",
sym2->name);
return;
}
prop = prop_alloc(P_ENV, sym);
prop->expr = expr_alloc_symbol(sym_lookup(env, SYMBOL_CONST));
sym_env_list = expr_alloc_one(E_LIST, sym_env_list);
sym_env_list->right.sym = sym;
p = getenv(env);
if (p)
sym_add_default(sym, p);
else
menu_warn(current_entry, "environment variable %s undefined", env);
}

View File

@@ -132,6 +132,8 @@ next:
/* write a dependency file as used by kbuild to track dependencies */
int file_write_dep(const char *name)
{
struct symbol *sym, *env_sym;
struct expr *e;
struct file *file;
FILE *out;
@@ -147,12 +149,28 @@ int file_write_dep(const char *name)
else
fprintf(out, "\t%s\n", file->name);
}
fprintf(out, "\n$(BR2_DEPENDS_DIR)/config/auto.conf: \\\n"
"\t$(deps_config)\n\n"
"$(deps_config): ;\n");
fprintf(out, "\n%s: \\\n"
"\t$(deps_config)\n\n", conf_get_autoconfig_name());
expr_list_for_each_sym(sym_env_list, e, sym) {
struct property *prop;
const char *value;
prop = sym_get_env_prop(sym);
env_sym = prop_get_symbol(prop);
if (!env_sym)
continue;
value = getenv(env_sym->name);
if (!value)
value = "";
fprintf(out, "ifneq \"$(%s)\" \"%s\"\n", env_sym->name, value);
fprintf(out, "%s: FORCE\n", conf_get_autoconfig_name());
fprintf(out, "endif\n");
}
fprintf(out, "\n$(deps_config): ;\n");
fclose(out);
rename("..config.tmp", name);
return write_make_deps(NULL);
}
@@ -162,7 +180,7 @@ struct gstr str_new(void)
{
struct gstr gs;
gs.s = malloc(sizeof(char) * 64);
gs.len = 16;
gs.len = 64;
strcpy(gs.s, "\0");
return gs;
}

View File

@@ -35,10 +35,10 @@ int, T_TYPE, TF_COMMAND, S_INT
hex, T_TYPE, TF_COMMAND, S_HEX
string, T_TYPE, TF_COMMAND, S_STRING
select, T_SELECT, TF_COMMAND
enable, T_SELECT, TF_COMMAND
range, T_RANGE, TF_COMMAND
option, T_OPTION, TF_COMMAND
on, T_ON, TF_PARAM
modules, T_OPT_MODULES, TF_OPTION
defconfig_list, T_OPT_DEFCONFIG_LIST,TF_OPTION
env, T_OPT_ENV, TF_OPTION
%%

View File

@@ -1,4 +1,4 @@
/* ANSI-C code produced by gperf version 3.0.2 */
/* ANSI-C code produced by gperf version 3.0.3 */
/* Command-line: gperf */
/* Computed positions: -k'1,3' */
@@ -53,9 +53,9 @@ kconf_id_hash (register const char *str, register unsigned int len)
49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 18, 11, 5,
49, 49, 49, 49, 49, 49, 49, 49, 11, 5,
0, 0, 5, 49, 5, 20, 49, 49, 5, 20,
5, 0, 30, 49, 0, 15, 0, 10, 49, 49,
5, 0, 30, 49, 0, 15, 0, 10, 0, 49,
25, 49, 49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
@@ -89,6 +89,7 @@ kconf_id_hash (register const char *str, register unsigned int len)
struct kconf_id_strings_t
{
char kconf_id_strings_str2[sizeof("on")];
char kconf_id_strings_str3[sizeof("env")];
char kconf_id_strings_str5[sizeof("endif")];
char kconf_id_strings_str6[sizeof("option")];
char kconf_id_strings_str7[sizeof("endmenu")];
@@ -107,7 +108,6 @@ struct kconf_id_strings_t
char kconf_id_strings_str21[sizeof("string")];
char kconf_id_strings_str22[sizeof("if")];
char kconf_id_strings_str23[sizeof("int")];
char kconf_id_strings_str24[sizeof("enable")];
char kconf_id_strings_str26[sizeof("select")];
char kconf_id_strings_str27[sizeof("modules")];
char kconf_id_strings_str28[sizeof("tristate")];
@@ -123,6 +123,7 @@ struct kconf_id_strings_t
static struct kconf_id_strings_t kconf_id_strings_contents =
{
"on",
"env",
"endif",
"option",
"endmenu",
@@ -141,7 +142,6 @@ static struct kconf_id_strings_t kconf_id_strings_contents =
"string",
"if",
"int",
"enable",
"select",
"modules",
"tristate",
@@ -157,6 +157,9 @@ static struct kconf_id_strings_t kconf_id_strings_contents =
#define kconf_id_strings ((const char *) &kconf_id_strings_contents)
#ifdef __GNUC__
__inline
#ifdef __GNUC_STDC_INLINE__
__attribute__ ((__gnu_inline__))
#endif
#endif
struct kconf_id *
kconf_id_lookup (register const char *str, register unsigned int len)
@@ -174,7 +177,8 @@ kconf_id_lookup (register const char *str, register unsigned int len)
{
{-1}, {-1},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str2, T_ON, TF_PARAM},
{-1}, {-1},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str3, T_OPT_ENV, TF_OPTION},
{-1},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str5, T_ENDIF, TF_COMMAND},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str6, T_OPTION, TF_COMMAND},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str7, T_ENDMENU, TF_COMMAND},
@@ -194,8 +198,7 @@ kconf_id_lookup (register const char *str, register unsigned int len)
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str21, T_TYPE, TF_COMMAND, S_STRING},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str22, T_IF, TF_COMMAND|TF_PARAM},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str23, T_TYPE, TF_COMMAND, S_INT},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str24, T_SELECT, TF_COMMAND},
{-1},
{-1}, {-1},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str26, T_SELECT, TF_COMMAND},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str27, T_OPT_MODULES, TF_OPTION},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str28, T_TYPE, TF_COMMAND, S_TRISTATE},

View File

@@ -1,5 +1,6 @@
%option backup nostdinit noyywrap never-interactive full ecs
%option 8bit backup nodefault perf-report perf-report
%option noinput
%x COMMAND HELP STRING PARAM
%{
/*
@@ -49,11 +50,6 @@ void new_string(void)
void append_string(const char *str, int size)
{
int new_size = text_size + size + 1;
if ((YY_START == 2 /* HELP */) && (size > 70)) {
fprintf (stderr, "%s:%d warning: Overlong line\n",
current_file->name, current_file->lineno);
}
if (new_size > text_asize) {
new_size += START_STRSIZE - 1;
new_size &= -START_STRSIZE;
@@ -222,6 +218,11 @@ n [A-Za-z0-9_]
append_string("\n", 1);
}
[^ \t\n].* {
while (yyleng) {
if ((yytext[yyleng-1] != ' ') && (yytext[yyleng-1] != '\t'))
break;
yyleng--;
}
append_string(yytext, yyleng);
if (!first_ts)
first_ts = last_ts;
@@ -313,11 +314,14 @@ void zconf_nextfile(const char *name)
current_buf = buf;
if (file->flags & FILE_BUSY) {
printf("recursive scan (%s)?\n", name);
printf("%s:%d: do not source '%s' from itself\n",
zconf_curname(), zconf_lineno(), name);
exit(1);
}
if (file->flags & FILE_SCANNED) {
printf("file %s already scanned?\n", name);
printf("%s:%d: file '%s' is already sourced from '%s'\n",
zconf_curname(), zconf_lineno(), name,
file->parent->name);
exit(1);
}
file->flags |= FILE_BUSY;

View File

@@ -446,16 +446,16 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 3
/* YYLAST -- Last index in YYTABLE. */
#define YYLAST 258
#define YYLAST 259
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 35
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 45
#define YYNNTS 46
/* YYNRULES -- Number of rules. */
#define YYNRULES 108
#define YYNRULES 110
/* YYNRULES -- Number of states. */
#define YYNSTATES 178
#define YYNSTATES 180
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
@@ -507,13 +507,14 @@ static const yytype_uint16 yyprhs[] =
28, 33, 37, 39, 41, 43, 45, 47, 49, 51,
53, 55, 57, 59, 61, 63, 67, 70, 74, 77,
81, 84, 85, 88, 91, 94, 97, 100, 103, 107,
112, 117, 122, 128, 132, 133, 137, 138, 141, 144,
147, 149, 153, 154, 157, 160, 163, 166, 169, 174,
178, 181, 186, 187, 190, 194, 196, 200, 201, 204,
207, 210, 214, 217, 219, 223, 224, 227, 230, 233,
237, 241, 244, 247, 250, 251, 254, 257, 260, 265,
266, 269, 271, 273, 276, 279, 282, 284, 287, 288,
291, 293, 297, 301, 305, 308, 312, 316, 318
112, 117, 122, 128, 132, 133, 137, 138, 141, 145,
148, 150, 154, 155, 158, 161, 164, 167, 170, 175,
179, 182, 187, 188, 191, 195, 197, 201, 202, 205,
208, 211, 215, 218, 220, 224, 225, 228, 231, 234,
238, 242, 245, 248, 251, 252, 255, 258, 261, 266,
267, 270, 272, 274, 277, 280, 283, 285, 288, 289,
292, 294, 298, 302, 306, 309, 313, 317, 319, 321,
322
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
@@ -533,24 +534,25 @@ static const yytype_int8 yyrhs[] =
30, -1, 20, 78, 77, 30, -1, 21, 25, 77,
30, -1, 22, 79, 79, 77, 30, -1, 23, 48,
30, -1, -1, 48, 25, 49, -1, -1, 33, 74,
-1, 7, 30, -1, 50, 54, -1, 75, -1, 51,
56, 52, -1, -1, 54, 55, -1, 54, 72, -1,
54, 70, -1, 54, 30, -1, 54, 40, -1, 18,
74, 77, 30, -1, 19, 73, 30, -1, 17, 30,
-1, 20, 25, 77, 30, -1, -1, 56, 39, -1,
14, 78, 76, -1, 75, -1, 57, 60, 58, -1,
-1, 60, 39, -1, 60, 64, -1, 60, 53, -1,
4, 74, 30, -1, 61, 71, -1, 75, -1, 62,
65, 63, -1, -1, 65, 39, -1, 65, 64, -1,
65, 53, -1, 6, 74, 30, -1, 9, 74, 30,
-1, 67, 71, -1, 12, 30, -1, 69, 13, -1,
-1, 71, 72, -1, 71, 30, -1, 71, 40, -1,
16, 24, 78, 30, -1, -1, 74, 77, -1, 25,
-1, 26, -1, 5, 30, -1, 8, 30, -1, 15,
30, -1, 30, -1, 76, 30, -1, -1, 14, 78,
-1, 79, -1, 79, 33, 79, -1, 79, 27, 79,
-1, 29, 78, 28, -1, 34, 78, -1, 78, 31,
78, -1, 78, 32, 78, -1, 25, -1, 26, -1
-1, 7, 80, 30, -1, 50, 54, -1, 75, -1,
51, 56, 52, -1, -1, 54, 55, -1, 54, 72,
-1, 54, 70, -1, 54, 30, -1, 54, 40, -1,
18, 74, 77, 30, -1, 19, 73, 30, -1, 17,
30, -1, 20, 25, 77, 30, -1, -1, 56, 39,
-1, 14, 78, 76, -1, 75, -1, 57, 60, 58,
-1, -1, 60, 39, -1, 60, 64, -1, 60, 53,
-1, 4, 74, 30, -1, 61, 71, -1, 75, -1,
62, 65, 63, -1, -1, 65, 39, -1, 65, 64,
-1, 65, 53, -1, 6, 74, 30, -1, 9, 74,
30, -1, 67, 71, -1, 12, 30, -1, 69, 13,
-1, -1, 71, 72, -1, 71, 30, -1, 71, 40,
-1, 16, 24, 78, 30, -1, -1, 74, 77, -1,
25, -1, 26, -1, 5, 30, -1, 8, 30, -1,
15, 30, -1, 30, -1, 76, 30, -1, -1, 14,
78, -1, 79, -1, 79, 33, 79, -1, 79, 27,
79, -1, 29, 78, 28, -1, 34, 78, -1, 78,
31, 78, -1, 78, 32, 78, -1, 25, -1, 26,
-1, -1, 25, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
@@ -566,7 +568,8 @@ static const yytype_uint16 yyrline[] =
339, 344, 351, 356, 364, 367, 369, 370, 371, 374,
382, 389, 396, 402, 409, 411, 412, 413, 416, 424,
426, 431, 432, 435, 436, 437, 441, 442, 445, 446,
449, 450, 451, 452, 453, 454, 455, 458, 459
449, 450, 451, 452, 453, 454, 455, 458, 459, 462,
463
};
#endif
@@ -590,7 +593,8 @@ static const char *const yytname[] =
"if_entry", "if_end", "if_stmt", "if_block", "menu", "menu_entry",
"menu_end", "menu_stmt", "menu_block", "source_stmt", "comment",
"comment_stmt", "help_start", "help", "depends_list", "depends",
"prompt_stmt_opt", "prompt", "end", "nl", "if_expr", "expr", "symbol", 0
"prompt_stmt_opt", "prompt", "end", "nl", "if_expr", "expr", "symbol",
"word_opt", 0
};
#endif
@@ -619,7 +623,8 @@ static const yytype_uint8 yyr1[] =
60, 61, 62, 63, 64, 65, 65, 65, 65, 66,
67, 68, 69, 70, 71, 71, 71, 71, 72, 73,
73, 74, 74, 75, 75, 75, 76, 76, 77, 77,
78, 78, 78, 78, 78, 78, 78, 79, 79
78, 78, 78, 78, 78, 78, 78, 79, 79, 80,
80
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
@@ -629,13 +634,14 @@ static const yytype_uint8 yyr2[] =
4, 3, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 3, 2, 3, 2, 3,
2, 0, 2, 2, 2, 2, 2, 2, 3, 4,
4, 4, 5, 3, 0, 3, 0, 2, 2, 2,
4, 4, 5, 3, 0, 3, 0, 2, 3, 2,
1, 3, 0, 2, 2, 2, 2, 2, 4, 3,
2, 4, 0, 2, 3, 1, 3, 0, 2, 2,
2, 3, 2, 1, 3, 0, 2, 2, 2, 3,
3, 2, 2, 2, 0, 2, 2, 2, 4, 0,
2, 1, 1, 2, 2, 2, 1, 2, 0, 2,
1, 3, 3, 3, 2, 3, 3, 1, 1
1, 3, 3, 3, 2, 3, 3, 1, 1, 0,
1
};
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -643,69 +649,69 @@ static const yytype_uint8 yyr2[] =
means the default is an error. */
static const yytype_uint8 yydefact[] =
{
3, 0, 0, 1, 0, 0, 0, 0, 0, 0,
3, 0, 0, 1, 0, 0, 0, 0, 0, 109,
0, 0, 0, 0, 0, 0, 12, 16, 13, 14,
18, 15, 17, 0, 19, 0, 4, 31, 22, 31,
23, 52, 62, 5, 67, 20, 84, 75, 6, 24,
84, 21, 8, 11, 91, 92, 0, 0, 93, 0,
48, 94, 0, 0, 0, 107, 108, 0, 0, 0,
100, 95, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 96, 7, 71, 79, 80, 27, 29, 0,
104, 0, 0, 64, 0, 0, 9, 10, 0, 0,
0, 0, 89, 0, 0, 0, 44, 0, 37, 36,
32, 33, 0, 35, 34, 0, 0, 89, 0, 56,
57, 53, 55, 54, 63, 51, 50, 68, 70, 66,
69, 65, 86, 87, 85, 76, 78, 74, 77, 73,
97, 103, 105, 106, 102, 101, 26, 82, 0, 98,
0, 98, 98, 98, 0, 0, 0, 83, 60, 98,
0, 98, 0, 0, 0, 38, 90, 0, 0, 98,
46, 43, 25, 0, 59, 0, 88, 99, 39, 40,
41, 0, 0, 45, 58, 61, 42, 47
110, 0, 94, 0, 0, 0, 107, 108, 0, 0,
0, 100, 95, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 96, 7, 71, 79, 48, 80, 27,
29, 0, 104, 0, 0, 64, 0, 0, 9, 10,
0, 0, 0, 0, 89, 0, 0, 0, 44, 0,
37, 36, 32, 33, 0, 35, 34, 0, 0, 89,
0, 56, 57, 53, 55, 54, 63, 51, 50, 68,
70, 66, 69, 65, 86, 87, 85, 76, 78, 74,
77, 73, 97, 103, 105, 106, 102, 101, 26, 82,
0, 98, 0, 98, 98, 98, 0, 0, 0, 83,
60, 98, 0, 98, 0, 0, 0, 38, 90, 0,
0, 98, 46, 43, 25, 0, 59, 0, 88, 99,
39, 40, 41, 0, 0, 45, 58, 61, 42, 47
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
-1, 1, 2, 25, 26, 99, 27, 28, 29, 30,
64, 100, 101, 145, 173, 31, 32, 115, 33, 66,
111, 67, 34, 119, 35, 68, 36, 37, 127, 38,
70, 39, 40, 41, 102, 103, 69, 104, 140, 141,
42, 73, 154, 59, 60
-1, 1, 2, 25, 26, 101, 27, 28, 29, 30,
65, 102, 103, 147, 175, 31, 32, 117, 33, 67,
113, 68, 34, 121, 35, 69, 36, 37, 129, 38,
71, 39, 40, 41, 104, 105, 70, 106, 142, 143,
42, 74, 156, 60, 61, 51
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
#define YYPACT_NINF -78
#define YYPACT_NINF -80
static const yytype_int16 yypact[] =
{
-78, 33, 130, -78, -28, 73, 73, 7, 73, 36,
41, 73, 26, 52, -4, 58, -78, -78, -78, -78,
-78, -78, -78, 90, -78, 94, -78, -78, -78, -78,
-78, -78, -78, -78, -78, -78, -78, -78, -78, -78,
-78, -78, -78, -78, -78, -78, 74, 85, -78, 96,
-78, -78, 131, 134, 147, -78, -78, -4, -4, 193,
-10, -78, 162, 164, 38, 102, 64, 148, 5, 192,
5, 165, -78, 174, -78, -78, -78, -78, -78, 65,
-78, -4, -4, 174, 103, 103, -78, -78, 175, 185,
197, 73, 73, -4, 194, 103, -78, 231, -78, -78,
-78, -78, 220, -78, -78, 204, 73, 73, 210, -78,
-78, -78, -78, -78, -78, -78, -78, -78, -78, -78,
-78, -78, -78, -78, -78, -78, -78, -78, -78, -78,
-78, -78, 205, -78, -78, -78, -78, -78, -4, 222,
208, 222, 195, 222, 103, 2, 209, -78, -78, 222,
211, 222, 199, -4, 212, -78, -78, 213, 214, 222,
207, -78, -78, 215, -78, 216, -78, 111, -78, -78,
-78, 217, 73, -78, -78, -78, -78, -78
-80, 2, 132, -80, -13, -1, -1, -2, -1, 9,
33, -1, 27, 40, -3, 38, -80, -80, -80, -80,
-80, -80, -80, 71, -80, 77, -80, -80, -80, -80,
-80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
-80, -80, -80, -80, -80, -80, 57, 61, -80, 63,
-80, 76, -80, 87, 101, 133, -80, -80, -3, -3,
195, -6, -80, 136, 149, 39, 104, 65, 150, 5,
194, 5, 167, -80, 176, -80, -80, -80, -80, -80,
-80, 68, -80, -3, -3, 176, 72, 72, -80, -80,
177, 187, 78, -1, -1, -3, 196, 72, -80, 222,
-80, -80, -80, -80, 221, -80, -80, 205, -1, -1,
211, -80, -80, -80, -80, -80, -80, -80, -80, -80,
-80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
-80, -80, -80, -80, 206, -80, -80, -80, -80, -80,
-3, 223, 209, 223, 197, 223, 72, 7, 210, -80,
-80, 223, 212, 223, 201, -3, 213, -80, -80, 214,
215, 223, 208, -80, -80, 216, -80, 217, -80, 113,
-80, -80, -80, 218, -1, -80, -80, -80, -80, -80
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
-78, -78, -78, -78, 121, -35, -78, -78, -78, -78,
219, -78, -78, -78, -78, -78, -78, -78, -44, -78,
-78, -78, -78, -78, -78, -78, -78, -78, -78, -6,
-78, -78, -78, -78, -78, 183, 218, 21, 143, -5,
146, 196, 69, -53, -77
-80, -80, -80, -80, 122, -34, -80, -80, -80, -80,
220, -80, -80, -80, -80, -80, -80, -80, 59, -80,
-80, -80, -80, -80, -80, -80, -80, -80, -80, 125,
-80, -80, -80, -80, -80, 183, 219, 22, 142, -5,
147, 192, 69, -54, -79, -80
};
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
@@ -715,62 +721,62 @@ static const yytype_int16 yypgoto[] =
#define YYTABLE_NINF -82
static const yytype_int16 yytable[] =
{
46, 47, 43, 49, 79, 80, 52, 134, 135, 6,
7, 8, 9, 10, 11, 12, 13, 84, 144, 14,
15, 55, 56, 85, 118, 57, 126, 160, 132, 133,
58, 110, 161, 3, 123, 24, 123, 48, -28, 88,
142, -28, -28, -28, -28, -28, -28, -28, -28, -28,
89, 53, -28, -28, 90, -28, 91, 92, 93, 94,
95, 96, 120, 97, 128, 88, 50, 159, 98, -49,
-49, 51, -49, -49, -49, -49, 89, 54, -49, -49,
90, 105, 106, 107, 108, 152, 139, 113, 61, 97,
124, 62, 124, 131, 109, 63, 81, 82, 44, 45,
167, 149, -30, 88, 72, -30, -30, -30, -30, -30,
-30, -30, -30, -30, 89, 74, -30, -30, 90, -30,
91, 92, 93, 94, 95, 96, 75, 97, 55, 56,
-2, 4, 98, 5, 6, 7, 8, 9, 10, 11,
12, 13, 81, 82, 14, 15, 16, 17, 18, 19,
20, 21, 22, 7, 8, 23, 10, 11, 12, 13,
24, 76, 14, 15, 77, -81, 88, 177, -81, -81,
-81, -81, -81, -81, -81, -81, -81, 78, 24, -81,
-81, 90, -81, -81, -81, -81, -81, -81, 114, 117,
97, 125, 86, 88, 87, 122, -72, -72, -72, -72,
-72, -72, -72, -72, 130, 136, -72, -72, 90, 153,
156, 157, 158, 116, 121, 137, 129, 97, 163, 143,
165, 138, 122, 72, 81, 82, 81, 82, 171, 166,
81, 82, 146, 147, 148, 151, 153, 82, 155, 162,
172, 164, 168, 169, 170, 174, 175, 176, 65, 112,
150, 0, 0, 0, 0, 83, 0, 0, 71
46, 47, 3, 49, 81, 82, 53, 136, 137, 6,
7, 8, 9, 10, 11, 12, 13, 43, 146, 14,
15, 86, 56, 57, 44, 45, 58, 87, 48, 134,
135, 59, 162, 112, 50, 24, 125, 163, 125, -28,
90, 144, -28, -28, -28, -28, -28, -28, -28, -28,
-28, 91, 54, -28, -28, 92, -28, 93, 94, 95,
96, 97, 98, 52, 99, 55, 90, 161, 62, 100,
-49, -49, 63, -49, -49, -49, -49, 91, 64, -49,
-49, 92, 107, 108, 109, 110, 154, 73, 141, 115,
99, 75, 126, 76, 126, 111, 133, 56, 57, 83,
84, 169, 140, 151, -30, 90, 77, -30, -30, -30,
-30, -30, -30, -30, -30, -30, 91, 78, -30, -30,
92, -30, 93, 94, 95, 96, 97, 98, 120, 99,
128, 79, -2, 4, 100, 5, 6, 7, 8, 9,
10, 11, 12, 13, 83, 84, 14, 15, 16, 17,
18, 19, 20, 21, 22, 7, 8, 23, 10, 11,
12, 13, 24, 80, 14, 15, 88, -81, 90, 179,
-81, -81, -81, -81, -81, -81, -81, -81, -81, 89,
24, -81, -81, 92, -81, -81, -81, -81, -81, -81,
116, 119, 99, 127, 122, 90, 130, 124, -72, -72,
-72, -72, -72, -72, -72, -72, 132, 138, -72, -72,
92, 155, 158, 159, 160, 118, 123, 139, 131, 99,
165, 145, 167, 148, 124, 73, 83, 84, 83, 84,
173, 168, 83, 84, 149, 150, 153, 155, 84, 157,
164, 174, 166, 170, 171, 172, 176, 177, 178, 66,
114, 152, 85, 0, 0, 0, 0, 0, 0, 72
};
static const yytype_int16 yycheck[] =
{
5, 6, 30, 8, 57, 58, 11, 84, 85, 4,
5, 6, 7, 8, 9, 10, 11, 27, 95, 14,
15, 25, 26, 33, 68, 29, 70, 25, 81, 82,
34, 66, 30, 0, 69, 30, 71, 30, 0, 1,
93, 3, 4, 5, 6, 7, 8, 9, 10, 11,
12, 25, 14, 15, 16, 17, 18, 19, 20, 21,
22, 23, 68, 25, 70, 1, 30, 144, 30, 5,
6, 30, 8, 9, 10, 11, 12, 25, 14, 15,
16, 17, 18, 19, 20, 138, 91, 66, 30, 25,
69, 1, 71, 28, 30, 1, 31, 32, 25, 26,
153, 106, 0, 1, 30, 3, 4, 5, 6, 7,
8, 9, 10, 11, 12, 30, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 30, 25, 25, 26,
0, 1, 30, 3, 4, 5, 6, 7, 8, 9,
10, 11, 31, 32, 14, 15, 16, 17, 18, 19,
20, 21, 22, 5, 6, 25, 8, 9, 10, 11,
30, 30, 14, 15, 30, 0, 1, 172, 3, 4,
5, 6, 7, 8, 9, 10, 11, 30, 30, 14,
15, 16, 17, 18, 19, 20, 21, 22, 67, 68,
25, 70, 30, 1, 30, 30, 4, 5, 6, 7,
8, 9, 10, 11, 30, 30, 14, 15, 16, 14,
141, 142, 143, 67, 68, 30, 70, 25, 149, 25,
151, 24, 30, 30, 31, 32, 31, 32, 159, 30,
31, 32, 1, 13, 30, 25, 14, 32, 30, 30,
33, 30, 30, 30, 30, 30, 30, 30, 29, 66,
107, -1, -1, -1, -1, 59, -1, -1, 40
5, 6, 0, 8, 58, 59, 11, 86, 87, 4,
5, 6, 7, 8, 9, 10, 11, 30, 97, 14,
15, 27, 25, 26, 25, 26, 29, 33, 30, 83,
84, 34, 25, 67, 25, 30, 70, 30, 72, 0,
1, 95, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 25, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 30, 25, 25, 1, 146, 30, 30,
5, 6, 1, 8, 9, 10, 11, 12, 1, 14,
15, 16, 17, 18, 19, 20, 140, 30, 93, 67,
25, 30, 70, 30, 72, 30, 28, 25, 26, 31,
32, 155, 24, 108, 0, 1, 30, 3, 4, 5,
6, 7, 8, 9, 10, 11, 12, 30, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 69, 25,
71, 30, 0, 1, 30, 3, 4, 5, 6, 7,
8, 9, 10, 11, 31, 32, 14, 15, 16, 17,
18, 19, 20, 21, 22, 5, 6, 25, 8, 9,
10, 11, 30, 30, 14, 15, 30, 0, 1, 174,
3, 4, 5, 6, 7, 8, 9, 10, 11, 30,
30, 14, 15, 16, 17, 18, 19, 20, 21, 22,
68, 69, 25, 71, 69, 1, 71, 30, 4, 5,
6, 7, 8, 9, 10, 11, 30, 30, 14, 15,
16, 14, 143, 144, 145, 68, 69, 30, 71, 25,
151, 25, 153, 1, 30, 30, 31, 32, 31, 32,
161, 30, 31, 32, 13, 30, 25, 14, 32, 30,
30, 33, 30, 30, 30, 30, 30, 30, 30, 29,
67, 109, 60, -1, -1, -1, -1, -1, -1, 40
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -782,19 +788,19 @@ static const yytype_uint8 yystos[] =
20, 21, 22, 25, 30, 38, 39, 41, 42, 43,
44, 50, 51, 53, 57, 59, 61, 62, 64, 66,
67, 68, 75, 30, 25, 26, 74, 74, 30, 74,
30, 30, 74, 25, 25, 25, 26, 29, 34, 78,
79, 30, 1, 1, 45, 45, 54, 56, 60, 71,
65, 71, 30, 76, 30, 30, 30, 30, 30, 78,
78, 31, 32, 76, 27, 33, 30, 30, 1, 12,
16, 18, 19, 20, 21, 22, 23, 25, 30, 40,
46, 47, 69, 70, 72, 17, 18, 19, 20, 30,
40, 55, 70, 72, 39, 52, 75, 39, 53, 58,
64, 75, 30, 40, 72, 39, 53, 63, 64, 75,
30, 28, 78, 78, 79, 79, 30, 30, 24, 74,
73, 74, 78, 25, 79, 48, 1, 13, 30, 74,
73, 25, 78, 14, 77, 30, 77, 77, 77, 79,
25, 30, 30, 77, 30, 77, 30, 78, 30, 30,
30, 77, 33, 49, 30, 30, 30, 74
25, 80, 30, 74, 25, 25, 25, 26, 29, 34,
78, 79, 30, 1, 1, 45, 45, 54, 56, 60,
71, 65, 71, 30, 76, 30, 30, 30, 30, 30,
30, 78, 78, 31, 32, 76, 27, 33, 30, 30,
1, 12, 16, 18, 19, 20, 21, 22, 23, 25,
30, 40, 46, 47, 69, 70, 72, 17, 18, 19,
20, 30, 40, 55, 70, 72, 39, 52, 75, 39,
53, 58, 64, 75, 30, 40, 72, 39, 53, 63,
64, 75, 30, 28, 78, 78, 79, 79, 30, 30,
24, 74, 73, 74, 78, 25, 79, 48, 1, 13,
30, 74, 73, 25, 78, 14, 77, 30, 77, 77,
77, 79, 25, 30, 30, 77, 30, 77, 30, 78,
30, 30, 30, 77, 33, 49, 30, 30, 30, 74
};
#define yyerrok (yyerrstatus = 0)
@@ -1781,8 +1787,8 @@ yyreduce:
case 48:
{
struct symbol *sym = sym_lookup(NULL, 0);
sym->flags |= SYMBOL_CHOICE;
struct symbol *sym = sym_lookup((yyvsp[(2) - (3)].string), SYMBOL_CHOICE);
sym->flags |= SYMBOL_AUTO;
menu_add_entry(sym);
menu_add_expr(P_CHOICE, NULL, NULL);
printd(DEBUG_PARSE, "%s:%d:choice\n", zconf_curname(), zconf_lineno());
@@ -2014,7 +2020,12 @@ yyreduce:
case 108:
{ (yyval.symbol) = sym_lookup((yyvsp[(1) - (1)].string), 1); free((yyvsp[(1) - (1)].string)); ;}
{ (yyval.symbol) = sym_lookup((yyvsp[(1) - (1)].string), SYMBOL_CONST); free((yyvsp[(1) - (1)].string)); ;}
break;
case 109:
{ (yyval.string) = NULL; ;}
break;

View File

@@ -91,7 +91,7 @@ static struct menu *current_menu, *current_entry;
%type <id> end
%type <id> option_name
%type <menu> if_entry menu_entry choice_entry
%type <string> symbol_option_arg
%type <string> symbol_option_arg word_opt
%destructor {
fprintf(stderr, "%s:%d: missing end statement for this entry\n",
@@ -239,10 +239,10 @@ symbol_option_arg:
/* choice entry */
choice: T_CHOICE T_EOL
choice: T_CHOICE word_opt T_EOL
{
struct symbol *sym = sym_lookup(NULL, 0);
sym->flags |= SYMBOL_CHOICE;
struct symbol *sym = sym_lookup($2, SYMBOL_CHOICE);
sym->flags |= SYMBOL_AUTO;
menu_add_entry(sym);
menu_add_expr(P_CHOICE, NULL, NULL);
printd(DEBUG_PARSE, "%s:%d:choice\n", zconf_curname(), zconf_lineno());
@@ -456,9 +456,12 @@ expr: symbol { $$ = expr_alloc_symbol($1); }
;
symbol: T_WORD { $$ = sym_lookup($1, 0); free($1); }
| T_WORD_QUOTE { $$ = sym_lookup($1, 1); free($1); }
| T_WORD_QUOTE { $$ = sym_lookup($1, SYMBOL_CONST); free($1); }
;
word_opt: /* empty */ { $$ = NULL; }
| T_WORD
%%
void conf_parse(const char *name)

View File

@@ -1,6 +1,6 @@
config BR2_PACKAGE_COREUTILS
bool "coreutils"
depends on BR2_USE_WCHAR && BR2_UCLIBC_PROGRAM_INVOCATION
depends on BR2_USE_WCHAR && BR2_PROGRAM_INVOCATION
help
All of the basic file/text/shell utilities. These are the
core utilities which are expected to exist on every system.
@@ -14,4 +14,4 @@ config BR2_PACKAGE_COREUTILS
http://www.gnu.org/software/coreutils/
comment "coreutils requires a toolchain with WCHAR and PROGRAM_INVOCATION support"
depends on !(BR2_USE_WCHAR && BR2_UCLIBC_PROGRAM_INVOCATION)
depends on !(BR2_USE_WCHAR && BR2_PROGRAM_INVOCATION)

View File

@@ -0,0 +1,25 @@
Commit 7fcb389fb4cd5ba26e330fef991ffdc05392f289 from gnulib, to fix
the rename bugs detection macros.
---
m4/rename.m4 | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Index: coreutils-7.4/m4/rename.m4
===================================================================
--- coreutils-7.4.orig/m4/rename.m4
+++ coreutils-7.4/m4/rename.m4
@@ -51,12 +51,12 @@
AC_LIBOBJ([rename])
AC_DEFINE([rename], [rpl_rename],
[Define to rpl_rename if the replacement function should be used.])
- if test $gl_cv_func_rename_trailing_slash_bug; then
+ if test $gl_cv_func_rename_trailing_slash_bug = yes; then
AC_DEFINE([RENAME_TRAILING_SLASH_BUG], [1],
[Define if rename does not work for source file names with a trailing
slash, like the one from SunOS 4.1.1_U1.])
fi
- if test $gl_cv_func_rename_dest_exists_bug; then
+ if test $gl_cv_func_rename_dest_exists_bug = yes; then
AC_DEFINE([RENAME_DEST_EXISTS_BUG], [1],
[Define if rename does not work when the destination file exists,
as on Windows.])

View File

@@ -3,11 +3,11 @@
# coreutils
#
#############################################################
COREUTILS_VERSION:=6.9
COREUTILS_SOURCE:=coreutils-$(COREUTILS_VERSION).tar.bz2
COREUTILS_VERSION:=7.4
COREUTILS_SOURCE:=coreutils-$(COREUTILS_VERSION).tar.gz
#COREUTILS_SITE:=ftp://alpha.gnu.org/gnu/coreutils/
COREUTILS_SITE:=$(BR2_GNU_MIRROR)/coreutils
COREUTILS_CAT:=$(BZCAT)
COREUTILS_CAT:=$(ZCAT)
COREUTILS_DIR:=$(BUILD_DIR)/coreutils-$(COREUTILS_VERSION)
COREUTILS_BINARY:=src/vdir
COREUTILS_TARGET_BINARY:=bin/vdir
@@ -59,6 +59,7 @@ $(COREUTILS_DIR)/.configured: $(COREUTILS_DIR)/.unpacked
ac_cv_func_mkstemp=yes \
utils_cv_func_mkstemp_limitations=no \
utils_cv_func_mkdir_trailing_slash_bug=no \
gl_cv_func_rename_dest_exists_bug=no \
ac_cv_func_memcmp_working=yes \
ac_cv_have_decl_malloc=yes \
gl_cv_func_malloc_0_nonnull=yes \

View File

@@ -0,0 +1,13 @@
comment "ctorrent requires a toolchain with C++ support enabled"
depends on !BR2_INSTALL_LIBSTDCPP
config BR2_PACKAGE_CTORRENT
bool "ctorrent"
depends on BR2_INSTALL_LIBSTDCPP
help
CTorrent is a BitTorrent client implemented in C++
to be lightweight and quick.
http://ctorrent.sourceforge.net/
This is the enhanced version from
http://www.rahul.net/dholmes/ctorrent/

View File

@@ -0,0 +1,11 @@
#############################################################
#
# enhanced ctorrent
#
#############################################################
CTORRENT_VERSION:=dnh3.3.2
CTORRENT_SOURCE:=ctorrent-$(CTORRENT_VERSION).tar.gz
CTORRENT_SITE:=http://www.rahul.net/dholmes/ctorrent/
CTORRENT_CONF_OPT:=--with-ssl=no
$(eval $(call AUTOTARGETS,package,ctorrent))

View File

@@ -18,7 +18,7 @@ else
CUPS_CONF_OPT += --disable-dbus
endif
ifneq ($(BR2_PACKAGE_XSERVER_none),y)
ifeq ($(BR2_PACKAGE_XORG7),y)
CUPS_DEPENDENCIES += xlib_libX11
endif

View File

@@ -4,8 +4,8 @@
#
#############################################################
SQLITE_VERSION = 3.6.13
SQLITE_SOURCE = sqlite-$(SQLITE_VERSION).tar.gz
SQLITE_VERSION = 3.6.16
SQLITE_SOURCE = sqlite-amalgamation-$(SQLITE_VERSION).tar.gz
SQLITE_SITE = http://www.sqlite.org
SQLITE_INSTALL_STAGING = YES
SQLITE_INSTALL_TARGET_OPT = DESTDIR=$(TARGET_DIR) install

View File

@@ -94,7 +94,8 @@ $(DIFFUTILS_DIR)/$(DIFFUTILS_BINARY): $(DIFFUTILS_DIR)/.configured
$(MAKE) CC=$(TARGET_CC) -C $(DIFFUTILS_DIR)
$(TARGET_DIR)/$(DIFFUTILS_TARGET_BINARY): $(DIFFUTILS_DIR)/$(DIFFUTILS_BINARY)
$(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(DIFFUTILS_DIR) install-strip
$(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(DIFFUTILS_DIR) \
$(if $(BR2_STRIP_none),install,install-strip)
ifneq ($(BR2_HAVE_INFOPAGES),y)
rm -rf $(TARGET_DIR)/usr/share/info
endif

View File

@@ -1,15 +1,12 @@
config BR2_PACKAGE_DILLO
bool "dillo"
depends on BR2_PACKAGE_JPEG
depends on BR2_PACKAGE_LIBGLIB12
depends on BR2_PACKAGE_LIBGTK12
depends on BR2_PACKAGE_ZLIB
depends on BR2_PACKAGE_LIBPNG
depends on BR2_PACKAGE_XORG||BR2_PACKAGE_XORG7
select BR2_PACKAGE_JPEG
select BR2_PACKAGE_LIBGLIB12
select BR2_PACKAGE_LIBGTK12
select BR2_PACKAGE_ZLIB
select BR2_PACKAGE_LIBPNG
depends on BR2_PACKAGE_XORG7
help
Dillo is a small GTK+ based web browser written in C.
http://www.dillo.org/
comment "dillo - disabled (requires jpeg,libglib12,libgtk12,zlib,libpng and Xorg(7))"
depends on !BR2_PACKAGE_JPEG || !BR2_PACKAGE_LIBGLIB12 || !BR2_PACKAGE_LIBGTK12 || !BR2_PACKAGE_ZLIB || !BR2_PACKAGE_LIBPNG || !(BR2_PACKAGE_XORG || BR2_PACKAGE_XORG7)

View File

@@ -39,7 +39,7 @@ $(DILLO_DIR)/.installed: $(DILLO_DIR)/src/dillo
$(MAKE) -C $(DILLO_DIR) DESTDIR=$(TARGET_DIR) install
touch $(DILLO_DIR)/.installed
dillo: uclibc $(XSERVER) libglib12 libgtk12 jpeg libpng $(DILLO_DIR)/.installed
dillo: uclibc xserver_xorg-server libglib12 libgtk12 jpeg libpng $(DILLO_DIR)/.installed
dillo-source: $(DL_DIR)/$(DILLO_SOURCE)

View File

@@ -16,7 +16,7 @@ config BR2_PACKAGE_DIRECTFB_MULTI
config BR2_PACKAGE_DIRECTFB_XSERVER
bool "build with X server backend"
depends on BR2_PACKAGE_DIRECTFB
depends on !BR2_PACKAGE_XSERVER_none
depends on BR2_PACKAGE_XORG7
config BR2_PACKAGE_DIRECTFB_UNIQUE
bool "enable unique window manager"
@@ -66,12 +66,6 @@ config BR2_PACKAGE_DIRECTFB_SERIALMOUSE
default y
depends on BR2_PACKAGE_DIRECTFB
config BR2_PACKAGE_DIRECTFB_PNG
bool "enable PNG support"
default y
depends on BR2_PACKAGE_DIRECTFB
select BR2_PACKAGE_LIBPNG
config BR2_PACKAGE_DIRECTFB_TSLIB
bool "enable touchscreen support"
default y
@@ -89,3 +83,16 @@ config BR2_PACKAGE_DIRECTFB_JPEG
default y
depends on BR2_PACKAGE_DIRECTFB
select BR2_PACKAGE_JPEG
config BR2_PACKAGE_DIRECTFB_PNG
bool "enable PNG support"
default y
depends on BR2_PACKAGE_DIRECTFB
select BR2_PACKAGE_LIBPNG
config BR2_PACKAGE_DIRECTB_DITHER_RGB16
bool "enable advanced dithering of RGB16 surfaces"
depends on BR2_PACKAGE_DIRECTFB
help
Enable dithering when loading images to RGB16 surfaces.
This increases the data section by 64 KBytes.

View File

@@ -3,11 +3,9 @@
# directfb
#
#############################################################
DIRECTFB_VERSION_MAJOR:=1.2
DIRECTFB_VERSION:=1.2.8
#DIRECTFB_VERSION:=1.3.0 is a development version
#DIRECTFB_VERSION_MAJOR:=1.3
DIRECTFB_SITE:=http://www.directfb.org/downloads/Core
DIRECTFB_VERSION_MAJOR:=1.4
DIRECTFB_VERSION:=1.4.1
DIRECTFB_SITE:=http://www.directfb.org/downloads/Core/DirectFB-$(DIRECTFB_VERSION_MAJOR)
DIRECTFB_SOURCE:=DirectFB-$(DIRECTFB_VERSION).tar.gz
DIRECTFB_AUTORECONF = NO
DIRECTFB_LIBTOOL_PATCH = NO
@@ -99,6 +97,12 @@ else
DIRECTFB_JPEG:=--disable-jpeg
endif
ifeq ($(BR2_PACKAGE_DIRECTB_DITHER_RGB16),y)
DIRECTFB_DITHER_RGB16:=--with-dither-rgb16=advanced
else
DIRECTFB_DITHER_RGB16:=--with-dither-rgb16=none
endif
DIRECTFB_CONF_OPT = \
--localstatedir=/var \
--with-gfxdrivers=$(DIRECTFB_GFX) \
@@ -112,6 +116,7 @@ DIRECTFB_CONF_OPT = \
$(DIRECTFB_PNG) \
$(DIRECTFB_GIF) \
$(DIRECTFB_UNIQUE) \
$(DIRECTFB_DITHER_RGB16) \
--enable-linux-input \
--enable-zlib \
--enable-freetype \

View File

@@ -1,9 +0,0 @@
config BR2_PACKAGE_DM
bool "dm"
depends on BR2_LARGEFILE
help
The Device-mapper is a new component of the linux kernel that
supports logical volume management. It is required by LVM2 and EVMS.
comment "dm requires a toolchain with LARGEFILE support"
depends on !BR2_LARGEFILE

View File

@@ -1,129 +0,0 @@
#############################################################
#
# device-mapper
#
#############################################################
# Copyright (C) 2005 by Richard Downer <rdowner@gmail.com>
# Derived from work
# Copyright (C) 2001-2005 by Erik Andersen <andersen@codepoet.org>
# Copyright (C) 2002 by Tim Riker <Tim@Rikers.org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Library General Public License as
# published by the Free Software Foundation; either version 2 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Library General Public License for more details.
#
# You should have received a copy of the GNU Library General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
# USA
DM_BASEVER=1.02
DM_PATCH=28
DM_VERSION=$(DM_BASEVER).$(DM_PATCH)
DM_SOURCE:=device-mapper.$(DM_VERSION).tgz
DM_SITE:=ftp://sources.redhat.com/pub/dm
DM_CAT:=$(ZCAT)
DM_DIR:=$(BUILD_DIR)/device-mapper.$(DM_VERSION)
DM_STAGING_BINARY:=$(STAGING_DIR)/usr/sbin/dmsetup
DM_TARGET_BINARY:=$(TARGET_DIR)/usr/sbin/dmsetup
DM_STAGING_LIBRARY:=$(STAGING_DIR)/lib/libdevmapper.so
DM_TARGET_LIBRARY:=$(TARGET_DIR)/usr/lib/libdevmapper.so
DM_TARGET_HEADER:=$(TARGET_DIR)/usr/include/libdevmapper.h
$(DL_DIR)/$(DM_SOURCE):
$(call DOWNLOAD,$(DM_SITE),$(DM_SOURCE))
dm-source: $(DL_DIR)/$(DM_SOURCE)
$(DM_DIR)/.unpacked: $(DL_DIR)/$(DM_SOURCE)
$(DM_CAT) $(DL_DIR)/$(DM_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
toolchain/patch-kernel.sh $(DM_DIR) package/dm/ \*.patch
touch $@
$(DM_DIR)/.configured: $(DM_DIR)/.unpacked
(cd $(DM_DIR); rm -rf config.cache; \
$(TARGET_CONFIGURE_OPTS) \
$(TARGET_CONFIGURE_ARGS) \
ac_cv_have_decl_malloc=yes \
gl_cv_func_malloc_0_nonnull=yes \
ac_cv_func_malloc_0_nonnull=yes \
ac_cv_func_calloc_0_nonnull=yes \
ac_cv_func_realloc_0_nonnull=yes \
ac_cv_func_lstat_dereferences_slashed_symlink=yes \
./configure \
--target=$(GNU_TARGET_NAME) \
--host=$(GNU_TARGET_NAME) \
--build=$(GNU_HOST_NAME) \
--prefix=/usr \
--exec-prefix=/usr \
--bindir=/usr/bin \
--sbindir=/usr/sbin \
--libdir=/lib \
--libexecdir=/usr/lib \
--sysconfdir=/etc \
--datadir=/usr/share \
--localstatedir=/var \
--includedir=/usr/include \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
$(DISABLE_NLS) \
$(DISABLE_LARGEFILE) \
--with-user=$(shell id -un) --with-group=$(shell id -gn) \
)
touch $@
$(DM_DIR)/$(DM_BINARY): dm-build
$(DM_DIR)/$(DM_LIBRARY): dm-build
$(DM_STAGING_BINARY) $(DM_STAGING_LIBRARY): $(DM_DIR)/.configured
$(MAKE) CC=$(TARGET_CC) -C $(DM_DIR)
$(MAKE) DESTDIR=$(STAGING_DIR) -C $(DM_DIR) install
# Install dmsetup from staging to target
$(DM_TARGET_BINARY): $(DM_STAGING_BINARY)
$(INSTALL) -m 0755 $? $@
-$(STRIPCMD) $(DM_TARGET_BINARY)
touch -c $@
# Install libdevmapper.so.1.00 from staging to target
$(DM_TARGET_LIBRARY).$(DM_BASEVER): $(DM_STAGING_LIBRARY)
$(INSTALL) -m 0644 $? $@
-$(STRIPCMD) $@
touch -c $@
# Makes libdevmapper.so a symlink to libdevmapper.so.1.00
$(DM_TARGET_LIBRARY): $(DM_TARGET_LIBRARY).$(DM_BASEVER)
rm -f $@
ln -s $(<F) $@
touch -c $@
# Install header file
$(DM_TARGET_HEADER): $(DM_TARGET_LIBRARY)
rm -f $@
mkdir -p $(STAGING_DIR)/usr/include
$(INSTALL) -m 0644 $(STAGING_DIR)/usr/include/libdevmapper.h $@
dm: uclibc $(DM_TARGET_BINARY) $(DM_TARGET_LIBRARY) #$(DM_TARGET_HEADER)
dm-clean:
rm -f $(DM_TARGET_BINARY) $(DM_TARGET_LIBRARY) \
$(DM_TARGET_LIBRARY).$(DM_BASEVER) $(DM_TARGET_HEADER)
-$(MAKE) -C $(DM_DIR) clean
dm-dirclean:
rm -rf $(DM_DIR)
#############################################################
#
# Toplevel Makefile options
#
#############################################################
ifeq ($(BR2_PACKAGE_DM),y)
TARGETS+=dm
endif

View File

@@ -4,7 +4,7 @@ comment "dmraid has no inherent support for AVR32"
config BR2_PACKAGE_DMRAID
bool "dmraid"
depends on BR2_LARGEFILE
select BR2_PACKAGE_DM
select BR2_PACKAGE_LVM2
help
dmraid discovers, activates, deactivates and displays properties
of software RAID sets (eg, ATARAID) and contained DOS partitions.

View File

@@ -9,7 +9,7 @@ DMRAID_SITE:=http://people.redhat.com/~heinzm/sw/dmraid/src
DMRAID_SUBDIR:=$(DMRAID_VERSION)
# lib and tools race with parallel make
DMRAID_MAKE = $(MAKE1)
DMRAID_DEPENDENCIES:=dm
DMRAID_DEPENDENCIES:=lvm2
DMRAID_INSTALL_STAGING:=yes
$(eval $(call AUTOTARGETS,package,dmraid))

View File

@@ -0,0 +1,15 @@
Why on earth are we trying to link against the libdir in DESTDIR?
Signed-Off-By: Nigel Kukard <nkukard@lbsd.net>
diff -ur dmraid_vanilla/1.0.0.rc15/tools/Makefile.in dmraid_library-linking-fix/1.0.0.rc15/tools/Makefile.in
--- dmraid_vanilla/1.0.0.rc15/tools/Makefile.in 2008-09-17 13:24:00.000000000 +0000
+++ dmraid_library-linking-fix/1.0.0.rc15/tools/Makefile.in 2009-06-01 10:50:52.000000000 +0000
@@ -56,7 +56,7 @@
dmraid: $(OBJECTS) $(top_srcdir)/lib/libdmraid.a
$(CC) -o $@ $(OBJECTS) $(LDFLAGS) -L$(top_srcdir)/lib \
- -L$(DESTDIR)$(libdir) $(DMRAIDLIBS) $(LIBS)
+ $(DMRAIDLIBS) $(LIBS)
install_dmraid_tools: $(TARGETS)
@echo "Installing $(TARGETS) in $(sbindir)"; \

View File

@@ -1,6 +1,6 @@
config BR2_PACKAGE_DOCKER
bool "docker"
depends on BR2_PACKAGE_XORG||BR2_PACKAGE_XORG7||BR2_PACKAGE_TINYX
depends on BR2_PACKAGE_XORG7
select BR2_PACKAGE_LIBGLIB2
help
a system tray dock for X

View File

@@ -19,7 +19,7 @@ DOCKER_MAKE_OPT = CC=$(TARGET_CC) CXX=$(TARGET_CXX) LD=$(TARGET_LD) \
DOCKER_INSTALL_TARGET_OPT = PREFIX=$(TARGET_DIR)/usr install
DOCKER_DEPENDENCIES = uclibc host-pkgconfig libglib2 $(XSERVER)
DOCKER_DEPENDENCIES = uclibc host-pkgconfig libglib2 xserver_xorg-server
$(eval $(call AUTOTARGETS,package,docker))

View File

@@ -0,0 +1,24 @@
config BR2_PACKAGE_DOSFSTOOLS
bool "dosfstools"
help
Tools for creating and checking DOS FAT filesystems.
http://www.daniel-baumann.ch/software/dosfstools/
config BR2_PACKAGE_DOSFSTOOLS_MKDOSFS
bool "mkdosfs"
depends on BR2_PACKAGE_DOSFSTOOLS
help
Creates a DOS FAT filesystem on a device.
config BR2_PACKAGE_DOSFSTOOLS_DOSFSCK
bool "dosfsck"
depends on BR2_PACKAGE_DOSFSTOOLS
help
Checks a DOS FAT filesystem.
config BR2_PACKAGE_DOSFSTOOLS_DOSFSLABEL
bool "dosfslabel"
depends on BR2_PACKAGE_DOSFSTOOLS
help
Get or set the DOS FAT filesystem label.

View File

@@ -0,0 +1,73 @@
#############################################################
#
# dosfstools
#
#############################################################
DOSFSTOOLS_VERSION:=3.0.3
DOSFSTOOLS_SOURCE:=dosfstools-$(DOSFSTOOLS_VERSION).tar.gz
DOSFSTOOLS_SITE:=http://www.daniel-baumann.ch/software/dosfstools
DOSFSTOOLS_DIR:=$(BUILD_DIR)/dosfstools-$(DOSFSTOOLS_VERSION)
DOSFSTOOLS_CAT:=$(ZCAT)
MKDOSFS_BINARY:=mkdosfs
MKDOSFS_TARGET_BINARY:=sbin/mkdosfs
DOSFSCK_BINARY:=dosfsck
DOSFSCK_TARGET_BINARY:=sbin/dosfsck
DOSFSLABEL_BINARY:=dosfslabel
DOSFSLABEL_TARGET_BINARY:=sbin/dosfslabel
$(DL_DIR)/$(DOSFSTOOLS_SOURCE):
$(call DOWNLOAD,$(DOSFSTOOLS_SITE),$(DOSFSTOOLS_SOURCE))
dosfstools-source: $(DL_DIR)/$(DOSFSTOOLS_SOURCE)
$(DOSFSTOOLS_DIR)/.unpacked: $(DL_DIR)/$(DOSFSTOOLS_SOURCE) $(wildcard local/dosfstools/dosfstools*.patch)
$(DOSFSTOOLS_CAT) $(DL_DIR)/$(DOSFSTOOLS_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
toolchain/patch-kernel.sh $(DOSFSTOOLS_DIR) package/dosfstools/ dosfstools\*.patch
touch $(DOSFSTOOLS_DIR)/.unpacked
$(DOSFSTOOLS_DIR)/.built : $(DOSFSTOOLS_DIR)/.unpacked
$(MAKE) CFLAGS="$(TARGET_CFLAGS)" CC="$(TARGET_CC)" -C $(DOSFSTOOLS_DIR)
$(STRIPCMD) $(DOSFSTOOLS_DIR)/$(MKDOSFS_BINARY)
$(STRIPCMD) $(DOSFSTOOLS_DIR)/$(DOSFSCK_BINARY)
$(STRIPCMD) $(DOSFSTOOLS_DIR)/$(DOSFSLABEL_BINARY)
touch $@
$(TARGET_DIR)/$(MKDOSFS_TARGET_BINARY): $(DOSFSTOOLS_DIR)/.built
cp -a $(DOSFSTOOLS_DIR)/$(MKDOSFS_BINARY) $@
touch -c $@
$(TARGET_DIR)/$(DOSFSCK_TARGET_BINARY): $(DOSFSTOOLS_DIR)/.built
cp -a $(DOSFSTOOLS_DIR)/$(DOSFSCK_BINARY) $@
touch -c $@
$(TARGET_DIR)/$(DOSFSLABEL_TARGET_BINARY): $(DOSFSTOOLS_DIR)/.built
cp -a $(DOSFSTOOLS_DIR)/$(DOSFSLABEL_BINARY) $@
touch -c $@
dosfstools: uclibc $(TARGET_DIR)/$(DOSFSTOOLS_TARGET_BINARY) $(TARGET_DIR)/$(DOSFSCK_TARGET_BINARY)
dosfstools-clean:
rm -f $(TARGET_DIR)/$(MKDOSFS_TARGET_BINARY)
rm -f $(TARGET_DIR)/$(DOSFSCK_TARGET_BINARY)
rm -f $(TARGET_DIR)/$(DOSFSLABEL_TARGET_BINARY)
-$(MAKE) -C $(DOSFSTOOLS_DIR) clean
dosfstools-dirclean:
rm -rf $(DOSFSTOOLS_DIR)
#############################################################
#
# Toplevel Makefile options
#
#############################################################
ifeq ($(BR2_PACKAGE_DOSFSTOOLS_MKDOSFS),y)
TARGETS+=$(TARGET_DIR)/$(MKDOSFS_TARGET_BINARY)
endif
ifeq ($(BR2_PACKAGE_DOSFSTOOLS_DOSFSCK),y)
TARGETS+=$(TARGET_DIR)/$(DOSFSCK_TARGET_BINARY)
endif
ifeq ($(BR2_PACKAGE_DOSFSTOOLS_DOSFSLABEL),y)
TARGETS+=$(TARGET_DIR)/$(DOSFSLABEL_TARGET_BINARY)
endif

View File

@@ -5,7 +5,7 @@ diff -ur dropbear-0.48/includes.h dropbear-0.48-patched/includes.h
#include <sys/param.h> /* required for BSD4_4 define */
#include <sys/socket.h>
#include <sys/stat.h>
+#define __USE_GNU
+#define _GNU_SOURCE
#include <sys/time.h>
#include <sys/un.h>
#include <sys/wait.h>

View File

@@ -28,7 +28,7 @@ $(DROPBEAR_TARGET_INSTALL_TARGET):
ln -snf ../sbin/dropbear $(TARGET_DIR)/usr/bin/scp
ln -snf ../sbin/dropbear $(TARGET_DIR)/usr/bin/ssh
if [ ! -f $(TARGET_DIR)/etc/init.d/S50dropbear ]; then \
$(INSTALL) -m 0755 -D package/dropbear/S50dropbear $(TARGET_DIR)/etc/init.d; \
$(INSTALL) -m 0755 -D package/dropbear/S50dropbear $(TARGET_DIR)/etc/init.d/S50dropbear; \
fi
touch $@

View File

@@ -0,0 +1,7 @@
config BR2_PACKAGE_ENCHANT
bool "enchant"
help
Enchant is a spell-checking library that provides a consistent
API across a number of spell-checking system backends.
http://www.abisource.com/projects/enchant/

View File

@@ -0,0 +1,14 @@
#############################################################
#
# enchant
#
#############################################################
ENCHANT_VERSION = 1.5.0
ENCHANT_SOURCE = enchant-$(ENCHANT_VERSION).tar.gz
ENCHANT_SITE = http://www.abisource.com/downloads/enchant/$(ENCHANT_VERSION)
ENCHANT_INSTALL_STAGING = YES
ENCHANT_INSTALL_TARGET = YES
ENCHANT_LIBTOOL_PATCH = NO
$(eval $(call AUTOTARGETS,package,enchant))

Some files were not shown because too many files have changed in this diff Show More