OpenWrt Source Repository
Go to file
Nick Hainke 39bdcec011 tools/xz: update to 5.4.5
* liblzma:
    - Use __attribute__((__no_sanitize_address__)) to avoid address
      sanitization with CRC64 CLMUL. It uses 16-byte-aligned reads
      which can extend past the bounds of the input buffer and
      inherently trigger address sanitization errors. This isn't
      a bug.
    - Fixed an assertion failure that could be triggered by a large
      unpadded_size argument. It was verified that there was no
      other bug than the assertion failure.
    - Fixed a bug that prevented building with Windows Vista
      threading when __attribute__((__constructor__)) is not
      supported.
* xz now properly handles special files such as "con" or "nul" on
  Windows. Before this fix, the following wrote "foo" to the
  console and deleted the input file "con_xz":
      echo foo | xz > con_xz
      xz --suffix=_xz --decompress con_xz
* Build systems:
    - Allow builds with Windows win95 threading and small mode when
      __attribute__((__constructor__)) is supported.
    - Added a new line to liblzma.pc for MSYS2 (Windows):
          Cflags.private: -DLZMA_API_STATIC
      When compiling code that will link against static liblzma,
      the LZMA_API_STATIC macro needs to be defined on Windows.
    - CMake specific changes:
        * Fixed a bug that allowed CLOCK_MONOTONIC to be used even
          if the check for it failed.
        * Fixed a bug where configuring CMake multiple times
          resulted in HAVE_CLOCK_GETTIME and HAVE_CLOCK_MONOTONIC
          not being set.
        * Fixed the build with MinGW-w64-based Clang/LLVM 17.
          llvm-windres now has more accurate GNU windres emulation
          so the GNU windres workaround from 5.4.1 is needed with
          llvm-windres version 17 too.
        * The import library on Windows is now properly named
          "liblzma.dll.a" instead of "libliblzma.dll.a"
        * Fixed a bug causing the Ninja Generator to fail on
          UNIX-like systems. This bug was introduced in 5.4.0.
        * Added a new option to disable CLMUL CRC64.
        * A module-definition (.def) file is now created when
          building liblzma.dll with MinGW-w64.
        * The pkg-config liblzma.pc file is now installed on all
          builds except when using MSVC on Windows.
        * Added large file support by default for platforms that
          need it to handle files larger than 2 GiB. This includes
          MinGW-w64, even 64-bit builds.
* Small fixes and improvements to the tests.
* Updated translations: Chinese (simplified) and Esperanto.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2023-12-04 13:18:35 +01:00
.devcontainer/ci-env devcontainer: Add development environment for gihub codespace 2023-10-30 23:34:26 +01:00
.github CI: issue-labeller: fix wrong CRLF line-ending 2023-11-16 12:38:18 +01:00
config target: Make TARGET_SERIAL independent of GRUB configuration 2023-11-29 23:43:01 +01:00
include kernel: bump 6.1 to 6.1.65 2023-12-04 12:49:47 +01:00
LICENSES
package uboot-envtools: fix GL-MT2500 offset 2023-12-03 06:56:02 +01:00
scripts image: fix Linksys image alignment and simplify footer creation 2023-11-26 18:37:20 +01:00
target kernel: bump 6.1 to 6.1.65 2023-12-04 12:49:47 +01:00
toolchain toolchain/gdb: update to 13.2 2023-11-10 08:39:38 +01:00
tools tools/xz: update to 5.4.5 2023-12-04 13:18:35 +01:00
.gitattributes
.gitignore .gitignore: ignore link if target is included from feed 2023-07-26 17:45:11 +02:00
BSDmakefile
Config.in build: scripts/config - update to kconfig-v5.14 2022-02-19 13:10:01 +01:00
COPYING COPYING: add COPYING file to specify project licenses 2021-02-14 19:21:38 +01:00
feeds.conf.default Revert "feeds: use git-src-full to allow Git versioning" 2023-05-23 14:38:55 +02:00
Makefile build: fix pkg-config detection when inside of a nix-shell 2023-11-02 20:26:32 +01:00
README.md build: drop support for python 3.6 2023-05-22 13:23:35 +02:00
rules.mk rules.mk: make toolchain dirs define more consistent 2023-10-20 16:13:56 +02:00

OpenWrt logo

OpenWrt Project is a Linux operating system targeting embedded devices. Instead of trying to create a single, static firmware, OpenWrt provides a fully writable filesystem with package management. This frees you from the application selection and configuration provided by the vendor and allows you to customize the device through the use of packages to suit any application. For developers, OpenWrt is the framework to build an application without having to build a complete firmware around it; for users this means the ability for full customization, to use the device in ways never envisioned.

Sunshine!

Download

Built firmware images are available for many architectures and come with a package selection to be used as WiFi home router. To quickly find a factory image usable to migrate from a vendor stock firmware to OpenWrt, try the Firmware Selector.

If your device is supported, please follow the Info link to see install instructions or consult the support resources listed below.

An advanced user may require additional or specific package. (Toolchain, SDK, ...) For everything else than simple firmware download, try the wiki download page:

Development

To build your own firmware you need a GNU/Linux, BSD or MacOSX system (case sensitive filesystem required). Cygwin is unsupported because of the lack of a case sensitive file system.

Requirements

You need the following tools to compile OpenWrt, the package names vary between distributions. A complete list with distribution specific packages is found in the Build System Setup documentation.

binutils bzip2 diff find flex gawk gcc-6+ getopt grep install libc-dev libz-dev
make4.1+ perl python3.7+ rsync subversion unzip which

Quickstart

  1. Run ./scripts/feeds update -a to obtain all the latest package definitions defined in feeds.conf / feeds.conf.default

  2. Run ./scripts/feeds install -a to install symlinks for all obtained packages into package/feeds/

  3. Run make menuconfig to select your preferred configuration for the toolchain, target system & firmware packages.

  4. Run make to build your firmware. This will download all sources, build the cross-compile toolchain and then cross-compile the GNU/Linux kernel & all chosen applications for your target system.

The main repository uses multiple sub-repositories to manage packages of different categories. All packages are installed via the OpenWrt package manager called opkg. If you're looking to develop the web interface or port packages to OpenWrt, please find the fitting repository below.

  • LuCI Web Interface: Modern and modular interface to control the device via a web browser.

  • OpenWrt Packages: Community repository of ported packages.

  • OpenWrt Routing: Packages specifically focused on (mesh) routing.

  • OpenWrt Video: Packages specifically focused on display servers and clients (Xorg and Wayland).

Support Information

For a list of supported devices see the OpenWrt Hardware Database

Documentation

Support Community

  • Forum: For usage, projects, discussions and hardware advise.
  • Support Chat: Channel #openwrt on oftc.net.

Developer Community

License

OpenWrt is licensed under GPL-2.0