freebasic (1.20.2-2) resolute; urgency=medium

  * Replace the unshipped NuttX iopins include and runtime symbols with the
    platform-neutral gpiopins.bi / GpioPin* API.
  * Add a generic GPIO runtime fallback so unsupported targets fail cleanly
    while NuttX supplies the /dev/gpioN backend.

 -- FreeBASIC Packagers <packagers@example.invalid>  Wed, 01 Jul 2026 06:00:00 -0400

freebasic (1.20.2-1) resolute; urgency=medium

  * Package the 1.20.2 development snapshot for Ubuntu Resolute.
  * Include the new NuttX target work, runtime/library support, test
    tooling, stricter diagnostics cleanup, and cross-target packaging
    fixes recorded in changelog.txt.

 -- FreeBASIC Packagers <packagers@example.invalid>  Wed, 01 Jul 2026 00:00:00 -0400

freebasic (1.20.1-1) jammy; urgency=medium

  * Forward-port the divergent 1.10.4 line, including its separate
    1.10.3 platform reality, into the 1.20 branch.
  * Adopt the GNUmakefile + mk/ build system together with the
    build_scripts/ and Debian packaging flow.
  * Add sfxlib to the compiler, runtime, libraries, examples, and
    package builds.
  * Add OPEN TCP / OPEN TCP SERVER, TCP ACCEPT, and EOC support.
  * Add Haiku support across compiler targets, rtlib, gfxlib2,
    sfxlib, headers, libraries, and build scripts.
  * Carry forward the broadened platform support and packaging work
    for Darwin/macOS, Linux, Windows/MinGW, Windows/Cygwin, FreeBSD,
    OpenBSD, NetBSD, DragonFly, Solaris, and Haiku.
  * Carry forward newer cpu-family and linker handling, including
    riscv64, s390x, loongarch64, and NetBSD rpath support.
  * Restore the Windows UTF-8 filename runtime layer, including
    Unicode-aware MinGW DIR() support and wide-path file wrappers.
  * Add the Solaris target-specific console/runtime files and local
    termcap shim needed on systems without usable termcap headers.
  * Refresh the Darwin graphics driver/backend set from the 1.10.4
    branch.
  * Add commented sfxlib and OPEN TCP example programs.
  * Fix Linux linker flag handling so -m32/-m64 are only passed on
    x86/x86_64 targets.
  * Fix Linux sfxlib shutdown and worker-lock issues found during the
    1.20 forward-port validation work.
  * Remove the accidentally nested duplicate src/sfxlib/sfxlib source
    tree and move shared sfxlib teardown behind per-target platform hooks
    instead of including Linux backend headers from the generic core.
  * Fix Linux sfxlib CAPTURE SAVE so buffered recordings can be written
    successfully on real hardware.
  * Fix Alpine package smoke binaries by building musl-targeted compilers
    that emit the musl dynamic loader path instead of glibc loader paths.
  * Quiet ALSA library probe diagnostics during normal sfxlib backend
    fallback while preserving them when sfxlib debug environment variables
    are enabled.
  * Tighten Linux package sfxlib smoke tests so they still fail on stderr
    while reporting the active output driver, including null fallback in
    no-audio Docker containers.
  * Fix Unix console query hangs that could block example output in
    non-responding terminal sessions.
  * Rework the DOS package builder so build_scripts/msdos-build-freebasic.sh
    can bootstrap the DOS toolchain on Linux, stage the distribution
    under out/msdos, and clean successful .build-msdos intermediates by
    default.
  * Add an image-backed DOSBox-X validation path via
    build_scripts/msdos-test-freebasic.sh that compiles hello-world,
    SCREEN 13 graphics, Sound Blaster, and no-BLASTER fallback tests
    from inside the packaged DOS distribution.
  * Fix the DOS sfxlib integration by moving the backend sources onto
    the normal DOS source path, restoring Sound Blaster and MPU-401
    linkage/init, and making missing BLASTER settings fail visibly for
    the Sound Blaster path.
  * Add a DOS PC speaker fallback backend so sfxlib can still produce
    audible playback when no Sound Blaster is configured.
  * Refactor the Debian/Ubuntu package split so the native compiler,
    runtime, startup objects, libraries, and core headers ship together
    in freebasic.
  * Reduce lintian noise by installing compiler driver manpages,
    modernizing dependency names, cleaning generated documentation package
    contents, normalizing example font/encoding handling, and documenting
    intentional cross-target archive/runtime assets.
  * Add freebasic-bindings for third-party header/binding files and
    freebasic-examples for source examples, leaving freebasic-runtime
    and freebasic-dev as transitional compatibility packages.
  * Add a separate freebasic-js binary package that installs fbc-js,
    JavaScript-target include files, libfb/libfbgfx/libsfx archives,
    startup objects, and Emscripten JavaScript runtime support files
    under a parallel freebasic-js layout.
  * Build fbc-js as a native compiler executable that defaults to the
    js-asmjs/Emscripten target while retaining the native host platform
    for host-specific compiler behavior.
  * Teach the package build to build JS-target runtime, gfxlib2, and
    sfxlib artifacts with emcc/emar/emranlib and to depend on the
    distro-provided emscripten and nodejs packages.
  * Gate freebasic-js behind the nojs build profile and add
    build_scripts/debianubuntu-build-freebasic.sh --no-js so native-only
    Debian/Ubuntu package builds do not need Emscripten or nodejs.
  * Add a JavaScript sfxlib backend using WebAudio in browsers with a
    null fallback for non-browser package smoke tests.
  * Add Debian/Ubuntu Docker smoke-test scripts for native FreeBASIC and
    freebasic-js packages, installing the local package artifacts in
    fresh containers with only their declared package dependencies.
  * Add the replacement Linux package-factory scaffold for building one
    native Docker container per distro release, cross-building CPU packages
    inside that packaging environment, and keeping the older binfmt/native
    matrix scripts available as validation wrappers.
  * Add build_scripts/linux-cross-build-freebasic-matrix.sh as the one-shot
    dispatcher above the Debian-family, APK-family, RPM-family, and
    Slackware package builders, with distro/release/architecture filters,
    --keep-going support, and default parallel make jobs based on the host
    CPU count.
  * Teach the Debian/Ubuntu package build to cross-build for a selected
    host architecture via --host-arch, using a build-architecture bootstrap
    compiler, target cross toolchains, and target development packages.
  * Add RPM and Slackware clean-container package builders that install the
    distro build dependencies, write package artifacts under out/linux, and
    run console, gfxlib SCREEN/SCREENSET, SCREEN 13, sfxlib, and sfxlib
    showcase compile/link smoke checks before packaging succeeds.
  * Keep the APK-family path wired into the package factory, install examples
    into the package layout, and reuse the shared source-copy excludes so
    isolated package worktrees do not absorb generated build artifacts.
  * Extend Linux package validation with optional full fbctests runs plus
    console, gfxlib, SCREEN 13/SCREENSET, sfxlib, and installed sfxlib
    showcase smoke coverage in clean target-architecture containers.
  * Fix Linux non-x86 package links by emitting glibc dynamic-linker paths
    for PowerPC, PowerPC64, PowerPC64LE, riscv64, and s390x targets, and
    preserve whitespace when reading compiler-driver probe output.
  * Fix strict-alignment targets by using memcpy-backed scalar loads/stores
    for unaligned packed-field access and keeping runtime-managed STRING
    and dynamic-array descriptors naturally aligned.
  * Fix riscv64 and s390x C/C++ varargs interop by modelling GCC's target
    __builtin_va_list ABI and mangling those types correctly.
  * Default Debian/Ubuntu armhf packages to ARMv7 hard-float while retaining
    an explicit armv6+fp override for Raspbian package builds.
  * Make floating-point and PRINT USING tests tolerate target-endian and
    target C-library NaN/IND differences.
  * Add a freebasic-android package build profile that installs
    fbc-android, Android/aarch64 runtime archives, Android-target headers,
    and APK template glue separately from the native freebasic package,
    and enable it by default in the Debian/Ubuntu build scripts while
    keeping it out of the normal top-level make/all build.
  * Move the fbc-android wrapper and APK template sources under tracked
    src/tools/android instead of the ignored local tools/ tree.
  * Add Android gfxlib and sfxlib backends, including modern/legacy gfx
    driver records, Activity-backed console rendering with a soft-keyboard
    toggle button, and AAudio/OpenSL ES sound backends.
  * Propagate NativeActivity lifecycle and surface callbacks into Android
    gfxlib/sfxlib so rendering and audio output pause cleanly and recover
    across Android surface recreation, and wait for stdout/stderr redirection
    before running the FreeBASIC main program.
  * Add build_scripts/debianubuntu-test-freebasic-android.sh to build
    console, gfxlib, and sfxlib APKs in a fresh container and run them
    under an Android emulator when KVM and a system image are available.
  * Keep emulator-only tooling out of the freebasic-android package
    dependencies; the Android smoke test now installs adb, emulator,
    command-line tools, and a system image only after the package has
    already proven it can build APKs from declared dependencies, along
    with the minimal X11 runtime libraries needed to launch the emulator
    in a slim container, emits gfx/sfx markers through stderr so graphics-mode
    PRINT redirection cannot hide them, force-stops each smoke Activity after
    a clean marker pair, and polls all logcat buffers with useful diagnostics
    while validating APK launch markers.
  * Add an fbc-android --target-api option so APK manifests can satisfy
    modern emulator install policy even when building against an older
    distro-provided Android platform jar.
  * Wrap the generated FreeBASIC program's exit() path in fbc-android APKs
    so NativeActivity smoke tests can report the program exit marker instead
    of terminating the Android process from the program thread.
  * Recommend adb and Android emulator command-line tooling from the
    freebasic-android package so installed users have a local APK test path
    without making emulator infrastructure mandatory for package installs.
  * Recommend optional example development packages from freebasic-examples
    and freebasic-full so users can build more bundled examples without
    making those libraries mandatory compiler dependencies.
  * Fix Android triplet detection so aarch64-linux-android resolves to
    TARGET_OS=android and use the NDK clang driver for Android assembly.
  * Fix Android sfxlib archives so the generic core does not retain a
    Linux-only fb_sfxLinuxExit reference in SFX APKs.

 -- FreeBASIC Packagers <packagers@example.invalid>  Thu, 14 May 2026 06:43:30 -0400

freebasic (1.10.4-1) jammy; urgency=medium

  * Added OPEN TCP and OPEN TCP SERVER support alongside the existing
    OPEN COM and OPEN LPT device commands.
  * Added TCP ACCEPT and EOC support for TCP communication endpoints.
  * Integrated sfxlib into the compiler, runtime, examples, and manual
    to provide broad built-in sound support.
  * Hardened the GNUmakefile and mk/ build system so prerequisite
    compiler checks fail clearly, bootstrap recovery paths are explicit,
    and cross-target configuration is more predictable.
  * Reworked the Debian/Ubuntu package build flow so it stages from a
    full source tree, keeps the native dpkg-buildpackage and lintian
    path intact, honors distro Fortify settings, disables incompatible
    LTO in package builds, and emits artifacts under out/linux by
    distro, codename, and architecture.
  * Extended the Linux package matrix to include Ubuntu 26.04 LTS
    (Resolute Raccoon) as an explicit Debian/Ubuntu target.
  * Added Darwin x86_64 and arm64 to the target matrix, limited runtime
    C++ compilation to targets that currently require it, and corrected
    NetBSD toolchain/thread configuration handling.
  * Serialized the Linux Debian/Ubuntu matrix runner, switched it to
    reuse emitted bootstrap source trees, and kept per-target build
    output visible live while still saving docker_build.log for each
    target.
  * Added bootstrap-emit-matrix coverage and cleaned successful Linux
    package builds so stage, .build-*, and src/*/obj intermediates do
    not accumulate across matrix entries.
  * Fixed Linux sfxlib packaging and runtime integration so Debian and
    Ubuntu builds include ALSA/Pulse dependencies, build the sfxlib
    libraries, install Linux arch compatibility symlinks, and link
    Linux sfxlib programs against the required audio libraries.
  * Fixed a recent sfxlib core regression by restoring the missing
    rollback helper declaration needed for clean builds.
  * Fixed Linux sfxlib playback so PulseAudio and ALSA backends keep
    feeding audio during unattended AUDIO, STREAM, MUSIC, and SFX
    playback instead of reporting success while producing silence.
  * Updated the macOS CoreAudio backend to use the same explicit feed
    model on platforms where the backend does not already own an audio
    callback or pull loop.
  * Added mk/ build-system documentation and tightened bootstrap archive
    and structure tests so hidden, stage, dist, and packages trees are
    not pulled into release artifacts.
  * Hardened the MSYS2 and Cygwin package builders so they provision
    their own dependencies, keep staging isolated, clean generated
    example artifacts, and emit release outputs under out/.
  * Updated the compiler build so fbc reports the version from
    mk/version.mk instead of relying on stale in-source release numbers.

 -- FreeBASIC Packagers <packagers@example.invalid>  Thu, 16 Apr 2026 18:00:00 +0000

freebasic (1.10.3-1) jammy; urgency=medium

  * Ported FreeBASIC to Haiku.
  * Rebuilt the build environment for the 1.10.3 release.
  * Packaged FreeBASIC for Windows/MinGW, Cygwin, Debian, Ubuntu,
    NetBSD, FreeBSD, OpenBSD, Solaris, and DragonFly.

 -- FreeBASIC Packagers <packagers@example.invalid>  Fri, 27 Feb 2026 12:53:00 +0000

freebasic (1.10.2-3) jammy; urgency=medium

  * All changes necessary to build on all platforms
  * Missing files for gfxlib added to allow successful test compiles

 -- FreeBASIC Packagers <packagers@example.invalid>  Thu, 26 Feb 2026 13:34:00 +0000


freebasic (1.10.2-2) jammy; urgency=medium

  * Updated build to use improved utilities backported from 1.20

 -- FreeBASIC Packagers <packagers@example.invalid>  Thu, 19 Feb 2026 09:34:00 +0000


freebasic (1.10.2-1) jammy; urgency=medium

  * Initial Debian/Ubuntu packaging for FreeBASIC 1.10.2.

 -- FreeBASIC Packagers <packagers@example.invalid>  Wed, 11 Feb 2026 12:50:35 +0000
