From 59765f508225998d8a73b1da8380ff06b4a6b79c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lucio=20Andr=C3=A9s=20Illanes=20Albornoz=20=28arab=2C=20vx?= =?UTF-8?q?p=29?= Date: Mon, 14 Nov 2016 23:02:47 +0100 Subject: 1) Replaces the SysV-style build script link mechanism w/ build {,meta-}targets, 2) splits build.{subr,sh}} into subr/{build,pkg,rtl}.subr and build.sh, 3) replaces {997.strip,998.midipix_sh,999.tarballs}.build with subr/{strip,tarball}.subr, 4) moves patches to patches/, vars files to vars/, and everything else to etc/, 5) renames `Create `Midipix mintty shell' shortcut.vbs' to midipix_shortcut.vbs, 6) fixes a Weechat configure issue, and 7) updates etc/{build.usage,README}. --- 000.slibtool_host.build | 1 - 001.perk_host.build | 1 - 002.binutils_host.build | 1 - 003.gcc.stage1.build | 1 - 004.psxstub.build | 1 - 004.psxstub.vars | 19 - 005.musl.no-complex.build | 1 - 006.gcc.runtime.build | 1 - 007.musl.full.build | 68 - 008.gcc.libstdc++-v3.build | 1 - 009.gcc.full.build | 164 - 010.pkgconf_host.build | 1 - 010.pkgconf_host.vars | 19 - 011.file_host.build | 1 - 100.slibtool.build | 1 - 101.perk.build | 1 - 102.pkgconf.build | 1 - 103.gmp.build | 1 - 104.mpfr.build | 1 - 105.mpc.build | 1 - 106.libelf.build | 1 - 107.binutils.build | 1 - 108.musl.native.build | 1 - 109.gcc.native.build | 1 - 200.psxtypes.build | 1 - 201.pemagine.build | 1 - 202.dalist.build | 1 - 203.ntcon.build | 1 - 204.ntapi.build | 1 - 205.psxscl.build | 1 - 206.psxscl_strace.build | 1 - 207.ntctty.build | 1 - 208.ptycon.build | 1 - 300.expat.build | 1 - 301.libz.build | 1 - 302.libffi.build | 1 - 303.gdbm.build | 1 - 304.pcre.build | 1 - 305.glib.build | 1 - 306.gzip.build | 1 - 307.libarchive.build | 1 - 308.libpipeline.build | 1 - 309.libressl.build | 1 - 310.libevent.build | 1 - 311.libfetch.build | 1 - 312.libgpg_error.build | 1 - 313.libassuan.build | 1 - 314.libfirm.build | 1 - 314.libfirm.vars | 10 - 315.libgcrypt.build | 1 - 316.libksba.build | 1 - 317.lua.build | 1 - 318.ncurses.build | 1 - 319.ncursestw.build | 1 - 320.ncursesw.build | 1 - 320.ncursesw.vars | 18 - 321.npth.build | 1 - 322.xz.build | 1 - 350.inputproto.build | 1 - 351.kbproto.build | 1 - 352.xcb_proto.build | 1 - 353.xproto.build | 1 - 354.libXau.build | 1 - 355.libpthread_stubs.build | 1 - 356.xcb.build | 1 - 357.xextproto.build | 1 - 358.xtrans.build | 1 - 359.libX11.build | 1 - 360.libXext.build | 1 - 361.libICE.build | 1 - 362.libSM.build | 1 - 363.libXt.build | 1 - 364.libXmu.build | 1 - 365.renderproto.build | 1 - 366.Xrender.build | 1 - 367.libXpm.build | 1 - 368.libXaw.build | 1 - 369.libxkbfile.build | 1 - 400.apk_tools.build | 1 - 401.bash.build | 1 - 402.bzip2.build | 1 - 403.coreutils.build | 1 - 404.cparser.build | 1 - 404.cparser.vars | 15 - 405.cron.build | 1 - 406.curl.build | 1 - 407.dash.build | 1 - 408.diffutils.build | 1 - 409.dos2unix.build | 1 - 410.ed.build | 1 - 411.file.build | 1 - 412.findutils.build | 1 - 413.gawk.build | 1 - 414.git.build | 1 - 415.gnupg.build | 1 - 416.grep.build | 1 - 417.hexcurse.build | 1 - 418.htop.build | 1 - 419.inetutils.build | 1 - 420.infounzip.build | 1 - 421.infozip.build | 1 - 422.irssi.build | 1 - 423.john.build | 1 - 424.less.build | 1 - 425.lynx.build | 1 - 426.man_db.build | 1 - 427.make.build | 1 - 428.mc.build | 1 - 429.mksh.build | 1 - 430.nano.build | 1 - 431.netcat.build | 1 - 432.openssh.build | 1 - 433.p7zip.build | 1 - 434.pacman.build | 1 - 435.patch.build | 1 - 436.perl.build | 1 - 436.perl.vars | 24 - 437.procps_ng.build | 1 - 438.python3.build | 1 - 438.python3.vars | 17 - 439.rsync.build | 1 - 440.rxvt_unicode.build | 1 - 441.sed.build | 1 - 442.tar.build | 1 - 443.tcsh.build | 1 - 444.the_silver_searcher.build | 1 - 445.tmux.build | 1 - 446.util_linux.build | 1 - 447.vim.build | 1 - 448.weechat.build | 1 - 449.which.build | 1 - 450.whois.build | 1 - 451.xeyes.build | 1 - 452.xwd.build | 1 - 453.zsh.build | 1 - 997.strip.build | 18 - 998.midipix_sh.build | 14 - 999.tarballs.build | 102 - Create `Midipix mintty shell' shortcut.vbs | 14 - LICENCE | 21 - Python-3.5.1.local.patch | 180 - README | 228 - TESTED_ON | 5 - apk-tools-2.6.6.local.patch | 55 - bash-4.3.local.patch | 7885 ---------------------------- binutils-2.24.51.local.patch | 739 --- build.sh | 225 +- build.subr | 349 -- build.usage | 60 - build.vars | 671 --- config.cache | 166 - config.sub | 1823 ------- coreutils-8.23.local.patch | 59 - curl-7.47.1.local.patch | 41 - etc/LICENCE | 21 + etc/README | 230 + etc/TESTED_ON | 5 + etc/build.usage | 49 + etc/config.cache | 166 + etc/config.sub | 1823 +++++++ etc/midipix.sh | 40 + etc/midipix_check.sh | 51 + etc/midipix_shortcut.vbs | 14 + findutils-4.5.14.local.patch | 27 - glib-2.46.2.local.patch | 170 - gmp-5.1.3.local.patch | 22 - gnupg-2.1.15.local.patch | 105 - hexcurse.local.patch | 20 - htop-2.0.1.local.patch | 11 - irssi-0.8.18.local.patch | 103 - john-1.8.0.local.patch | 155 - libarchive-3.1.2.local.patch | 139 - libassuan-2.4.3.local.patch | 192 - libelf-0.8.13.local.patch | 39 - libevent-2.0.22-stable.local.patch | 11 - libfetch-2.33.local.patch | 149 - libffi-3.2.1.local.patch | 198 - libgcrypt-1.7.3.local.patch | 172 - libgpg-error-1.24.local.patch | 56 - libksba-1.3.5.local.patch | 160 - libressl-2.2.6.local.patch | 193 - lua-5.3.3.local.patch | 128 - mc-4.8.17.local.patch | 20 - midipix.sh | 40 - midipix_check.sh | 51 - nc110.local.patch | 56 - ncurses-6.0.local.patch | 33 - p7zip.local.patch | 14 - pacman-5.0.1.local.patch | 44 - patches/Python-3.5.1.local.patch | 180 + patches/apk-tools-2.6.6.local.patch | 55 + patches/bash-4.3.local.patch | 7885 ++++++++++++++++++++++++++++ patches/binutils-2.24.51.local.patch | 739 +++ patches/coreutils-8.23.local.patch | 59 + patches/curl-7.47.1.local.patch | 41 + patches/findutils-4.5.14.local.patch | 27 + patches/glib-2.46.2.local.patch | 170 + patches/gmp-5.1.3.local.patch | 22 + patches/gnupg-2.1.15.local.patch | 105 + patches/hexcurse.local.patch | 20 + patches/htop-2.0.1.local.patch | 11 + patches/irssi-0.8.18.local.patch | 103 + patches/john-1.8.0.local.patch | 155 + patches/libarchive-3.1.2.local.patch | 139 + patches/libassuan-2.4.3.local.patch | 192 + patches/libelf-0.8.13.local.patch | 39 + patches/libevent-2.0.22-stable.local.patch | 11 + patches/libfetch-2.33.local.patch | 149 + patches/libffi-3.2.1.local.patch | 198 + patches/libgcrypt-1.7.3.local.patch | 172 + patches/libgpg-error-1.24.local.patch | 56 + patches/libksba-1.3.5.local.patch | 160 + patches/libressl-2.2.6.local.patch | 193 + patches/lua-5.3.3.local.patch | 128 + patches/mc-4.8.17.local.patch | 20 + patches/nc110.local.patch | 56 + patches/ncurses-6.0.local.patch | 33 + patches/p7zip.local.patch | 14 + patches/pacman-5.0.1.local.patch | 44 + patches/pkg-cron.git.local.patch | 22 + patches/tcsh-6.19.00.local.patch | 201 + patches/tmux-2.2.local.patch | 51 + patches/unzip60.local.patch | 14 + patches/vim-7.4.1952.local.patch | 56 + patches/weechat-1.6.local.patch | 45 + patches/zip30.local.patch | 16 + pkg-cron.git.local.patch | 22 - pkg.build | 274 - scripts/gcc.full.build | 164 + scripts/gcc.libstdc++-v3.build | 1 + scripts/gcc.native.build | 1 + scripts/gcc.runtime.build | 1 + scripts/gcc.stage1.build | 1 + scripts/midipix_sh.build | 13 + scripts/musl.full.build | 68 + scripts/musl.native.build | 1 + scripts/musl.no-complex.build | 1 + scripts/pkg.build | 259 + subr/build.subr | 140 + subr/pkg.subr | 145 + subr/rtl.subr | 102 + subr/strip.subr | 19 + subr/tarballs.subr | 108 + tcsh-6.19.00.local.patch | 201 - tmux-2.2.local.patch | 51 - unzip60.local.patch | 14 - vars/build.vars | 673 +++ vars/cparser.vars | 15 + vars/libfirm.vars | 10 + vars/ncurses.vars | 1 + vars/ncursestw.vars | 1 + vars/ncursesw.vars | 18 + vars/perl.vars | 24 + vars/pkgconf_host.vars | 19 + vars/psxstub.vars | 19 + vars/python3.vars | 17 + vim-7.4.1952.local.patch | 56 - weechat-1.6.local.patch | 24 - zip30.local.patch | 16 - 259 files changed, 15866 insertions(+), 16036 deletions(-) delete mode 120000 000.slibtool_host.build delete mode 120000 001.perk_host.build delete mode 120000 002.binutils_host.build delete mode 120000 003.gcc.stage1.build delete mode 120000 004.psxstub.build delete mode 100644 004.psxstub.vars delete mode 120000 005.musl.no-complex.build delete mode 120000 006.gcc.runtime.build delete mode 100644 007.musl.full.build delete mode 120000 008.gcc.libstdc++-v3.build delete mode 100644 009.gcc.full.build delete mode 120000 010.pkgconf_host.build delete mode 100644 010.pkgconf_host.vars delete mode 120000 011.file_host.build delete mode 120000 100.slibtool.build delete mode 120000 101.perk.build delete mode 120000 102.pkgconf.build delete mode 120000 103.gmp.build delete mode 120000 104.mpfr.build delete mode 120000 105.mpc.build delete mode 120000 106.libelf.build delete mode 120000 107.binutils.build delete mode 120000 108.musl.native.build delete mode 120000 109.gcc.native.build delete mode 120000 200.psxtypes.build delete mode 120000 201.pemagine.build delete mode 120000 202.dalist.build delete mode 120000 203.ntcon.build delete mode 120000 204.ntapi.build delete mode 120000 205.psxscl.build delete mode 120000 206.psxscl_strace.build delete mode 120000 207.ntctty.build delete mode 120000 208.ptycon.build delete mode 120000 300.expat.build delete mode 120000 301.libz.build delete mode 120000 302.libffi.build delete mode 120000 303.gdbm.build delete mode 120000 304.pcre.build delete mode 120000 305.glib.build delete mode 120000 306.gzip.build delete mode 120000 307.libarchive.build delete mode 120000 308.libpipeline.build delete mode 120000 309.libressl.build delete mode 120000 310.libevent.build delete mode 120000 311.libfetch.build delete mode 120000 312.libgpg_error.build delete mode 120000 313.libassuan.build delete mode 120000 314.libfirm.build delete mode 100644 314.libfirm.vars delete mode 120000 315.libgcrypt.build delete mode 120000 316.libksba.build delete mode 120000 317.lua.build delete mode 120000 318.ncurses.build delete mode 120000 319.ncursestw.build delete mode 120000 320.ncursesw.build delete mode 100644 320.ncursesw.vars delete mode 120000 321.npth.build delete mode 120000 322.xz.build delete mode 120000 350.inputproto.build delete mode 120000 351.kbproto.build delete mode 120000 352.xcb_proto.build delete mode 120000 353.xproto.build delete mode 120000 354.libXau.build delete mode 120000 355.libpthread_stubs.build delete mode 120000 356.xcb.build delete mode 120000 357.xextproto.build delete mode 120000 358.xtrans.build delete mode 120000 359.libX11.build delete mode 120000 360.libXext.build delete mode 120000 361.libICE.build delete mode 120000 362.libSM.build delete mode 120000 363.libXt.build delete mode 120000 364.libXmu.build delete mode 120000 365.renderproto.build delete mode 120000 366.Xrender.build delete mode 120000 367.libXpm.build delete mode 120000 368.libXaw.build delete mode 120000 369.libxkbfile.build delete mode 120000 400.apk_tools.build delete mode 120000 401.bash.build delete mode 120000 402.bzip2.build delete mode 120000 403.coreutils.build delete mode 120000 404.cparser.build delete mode 100644 404.cparser.vars delete mode 120000 405.cron.build delete mode 120000 406.curl.build delete mode 120000 407.dash.build delete mode 120000 408.diffutils.build delete mode 120000 409.dos2unix.build delete mode 120000 410.ed.build delete mode 120000 411.file.build delete mode 120000 412.findutils.build delete mode 120000 413.gawk.build delete mode 120000 414.git.build delete mode 120000 415.gnupg.build delete mode 120000 416.grep.build delete mode 120000 417.hexcurse.build delete mode 120000 418.htop.build delete mode 120000 419.inetutils.build delete mode 120000 420.infounzip.build delete mode 120000 421.infozip.build delete mode 120000 422.irssi.build delete mode 120000 423.john.build delete mode 120000 424.less.build delete mode 120000 425.lynx.build delete mode 120000 426.man_db.build delete mode 120000 427.make.build delete mode 120000 428.mc.build delete mode 120000 429.mksh.build delete mode 120000 430.nano.build delete mode 120000 431.netcat.build delete mode 120000 432.openssh.build delete mode 120000 433.p7zip.build delete mode 120000 434.pacman.build delete mode 120000 435.patch.build delete mode 120000 436.perl.build delete mode 100644 436.perl.vars delete mode 120000 437.procps_ng.build delete mode 120000 438.python3.build delete mode 100644 438.python3.vars delete mode 120000 439.rsync.build delete mode 120000 440.rxvt_unicode.build delete mode 120000 441.sed.build delete mode 120000 442.tar.build delete mode 120000 443.tcsh.build delete mode 120000 444.the_silver_searcher.build delete mode 120000 445.tmux.build delete mode 120000 446.util_linux.build delete mode 120000 447.vim.build delete mode 120000 448.weechat.build delete mode 120000 449.which.build delete mode 120000 450.whois.build delete mode 120000 451.xeyes.build delete mode 120000 452.xwd.build delete mode 120000 453.zsh.build delete mode 100644 997.strip.build delete mode 100644 998.midipix_sh.build delete mode 100644 999.tarballs.build delete mode 100644 Create `Midipix mintty shell' shortcut.vbs delete mode 100644 LICENCE delete mode 100644 Python-3.5.1.local.patch delete mode 100644 README delete mode 100644 TESTED_ON delete mode 100644 apk-tools-2.6.6.local.patch delete mode 100644 bash-4.3.local.patch delete mode 100644 binutils-2.24.51.local.patch delete mode 100644 build.subr delete mode 100644 build.usage delete mode 100644 build.vars delete mode 100644 config.cache delete mode 100644 config.sub delete mode 100644 coreutils-8.23.local.patch delete mode 100644 curl-7.47.1.local.patch create mode 100644 etc/LICENCE create mode 100644 etc/README create mode 100644 etc/TESTED_ON create mode 100644 etc/build.usage create mode 100644 etc/config.cache create mode 100644 etc/config.sub create mode 100755 etc/midipix.sh create mode 100755 etc/midipix_check.sh create mode 100644 etc/midipix_shortcut.vbs delete mode 100644 findutils-4.5.14.local.patch delete mode 100644 glib-2.46.2.local.patch delete mode 100644 gmp-5.1.3.local.patch delete mode 100644 gnupg-2.1.15.local.patch delete mode 100644 hexcurse.local.patch delete mode 100644 htop-2.0.1.local.patch delete mode 100644 irssi-0.8.18.local.patch delete mode 100644 john-1.8.0.local.patch delete mode 100644 libarchive-3.1.2.local.patch delete mode 100644 libassuan-2.4.3.local.patch delete mode 100644 libelf-0.8.13.local.patch delete mode 100644 libevent-2.0.22-stable.local.patch delete mode 100644 libfetch-2.33.local.patch delete mode 100644 libffi-3.2.1.local.patch delete mode 100644 libgcrypt-1.7.3.local.patch delete mode 100644 libgpg-error-1.24.local.patch delete mode 100644 libksba-1.3.5.local.patch delete mode 100644 libressl-2.2.6.local.patch delete mode 100644 lua-5.3.3.local.patch delete mode 100644 mc-4.8.17.local.patch delete mode 100755 midipix.sh delete mode 100755 midipix_check.sh delete mode 100644 nc110.local.patch delete mode 100644 ncurses-6.0.local.patch delete mode 100644 p7zip.local.patch delete mode 100644 pacman-5.0.1.local.patch create mode 100644 patches/Python-3.5.1.local.patch create mode 100644 patches/apk-tools-2.6.6.local.patch create mode 100644 patches/bash-4.3.local.patch create mode 100644 patches/binutils-2.24.51.local.patch create mode 100644 patches/coreutils-8.23.local.patch create mode 100644 patches/curl-7.47.1.local.patch create mode 100644 patches/findutils-4.5.14.local.patch create mode 100644 patches/glib-2.46.2.local.patch create mode 100644 patches/gmp-5.1.3.local.patch create mode 100644 patches/gnupg-2.1.15.local.patch create mode 100644 patches/hexcurse.local.patch create mode 100644 patches/htop-2.0.1.local.patch create mode 100644 patches/irssi-0.8.18.local.patch create mode 100644 patches/john-1.8.0.local.patch create mode 100644 patches/libarchive-3.1.2.local.patch create mode 100644 patches/libassuan-2.4.3.local.patch create mode 100644 patches/libelf-0.8.13.local.patch create mode 100644 patches/libevent-2.0.22-stable.local.patch create mode 100644 patches/libfetch-2.33.local.patch create mode 100644 patches/libffi-3.2.1.local.patch create mode 100644 patches/libgcrypt-1.7.3.local.patch create mode 100644 patches/libgpg-error-1.24.local.patch create mode 100644 patches/libksba-1.3.5.local.patch create mode 100644 patches/libressl-2.2.6.local.patch create mode 100644 patches/lua-5.3.3.local.patch create mode 100644 patches/mc-4.8.17.local.patch create mode 100644 patches/nc110.local.patch create mode 100644 patches/ncurses-6.0.local.patch create mode 100644 patches/p7zip.local.patch create mode 100644 patches/pacman-5.0.1.local.patch create mode 100644 patches/pkg-cron.git.local.patch create mode 100644 patches/tcsh-6.19.00.local.patch create mode 100644 patches/tmux-2.2.local.patch create mode 100644 patches/unzip60.local.patch create mode 100644 patches/vim-7.4.1952.local.patch create mode 100644 patches/weechat-1.6.local.patch create mode 100644 patches/zip30.local.patch delete mode 100644 pkg-cron.git.local.patch delete mode 100644 pkg.build create mode 100644 scripts/gcc.full.build create mode 120000 scripts/gcc.libstdc++-v3.build create mode 120000 scripts/gcc.native.build create mode 120000 scripts/gcc.runtime.build create mode 120000 scripts/gcc.stage1.build create mode 100644 scripts/midipix_sh.build create mode 100644 scripts/musl.full.build create mode 120000 scripts/musl.native.build create mode 120000 scripts/musl.no-complex.build create mode 100644 scripts/pkg.build create mode 100644 subr/build.subr create mode 100644 subr/pkg.subr create mode 100644 subr/rtl.subr create mode 100644 subr/strip.subr create mode 100644 subr/tarballs.subr delete mode 100644 tcsh-6.19.00.local.patch delete mode 100644 tmux-2.2.local.patch delete mode 100644 unzip60.local.patch create mode 100644 vars/build.vars create mode 100644 vars/cparser.vars create mode 100644 vars/libfirm.vars create mode 120000 vars/ncurses.vars create mode 120000 vars/ncursestw.vars create mode 100644 vars/ncursesw.vars create mode 100644 vars/perl.vars create mode 100644 vars/pkgconf_host.vars create mode 100644 vars/psxstub.vars create mode 100644 vars/python3.vars delete mode 100644 vim-7.4.1952.local.patch delete mode 100644 weechat-1.6.local.patch delete mode 100644 zip30.local.patch diff --git a/000.slibtool_host.build b/000.slibtool_host.build deleted file mode 120000 index 52bb82e5..00000000 --- a/000.slibtool_host.build +++ /dev/null @@ -1 +0,0 @@ -pkg.build \ No newline at end of file diff --git a/001.perk_host.build b/001.perk_host.build deleted file mode 120000 index 52bb82e5..00000000 --- a/001.perk_host.build +++ /dev/null @@ -1 +0,0 @@ -pkg.build \ No newline at end of file diff --git a/002.binutils_host.build b/002.binutils_host.build deleted file mode 120000 index 52bb82e5..00000000 --- a/002.binutils_host.build +++ /dev/null @@ -1 +0,0 @@ -pkg.build \ No newline at end of file diff --git a/003.gcc.stage1.build b/003.gcc.stage1.build deleted file mode 120000 index f1fa8b29..00000000 --- a/003.gcc.stage1.build +++ /dev/null @@ -1 +0,0 @@ -009.gcc.full.build \ No newline at end of file diff --git a/004.psxstub.build b/004.psxstub.build deleted file mode 120000 index 52bb82e5..00000000 --- a/004.psxstub.build +++ /dev/null @@ -1 +0,0 @@ -pkg.build \ No newline at end of file diff --git a/004.psxstub.vars b/004.psxstub.vars deleted file mode 100644 index cf18c4b1..00000000 --- a/004.psxstub.vars +++ /dev/null @@ -1,19 +0,0 @@ -# -# . ./build.vars and set -o errexit -o noglob are assumed. -# - -pkg_psxstub_finish() { - if ! is_build_script_done install; then - if [ "${TARGET}" = i686-nt32-midipix ] \ - || [ "${TARGET}" = x86_64-nt64-midipix ]; then - cd psxstub; - make ${MAKEFLAGS} DESTDIR=${PKG_PREFIX} TARGET=${TARGET} install; - if [ -e ${PKG_PREFIX}/lib/libpsxscl.a ]; then - secure_rm ${PKG_PREFIX}/lib/libpsxscl.a; - fi; - set_build_script_done install finish; - fi; - fi; -}; - -# vim:filetype=sh diff --git a/005.musl.no-complex.build b/005.musl.no-complex.build deleted file mode 120000 index 5455612b..00000000 --- a/005.musl.no-complex.build +++ /dev/null @@ -1 +0,0 @@ -007.musl.full.build \ No newline at end of file diff --git a/006.gcc.runtime.build b/006.gcc.runtime.build deleted file mode 120000 index f1fa8b29..00000000 --- a/006.gcc.runtime.build +++ /dev/null @@ -1 +0,0 @@ -009.gcc.full.build \ No newline at end of file diff --git a/007.musl.full.build b/007.musl.full.build deleted file mode 100644 index 1c49c6ba..00000000 --- a/007.musl.full.build +++ /dev/null @@ -1,68 +0,0 @@ -# -# . ./build.vars and set -o errexit -o noglob are assumed. -# - -# Order: no-complex, native - -# Git clone what we need. -fetch_git lazy ${GITROOT}/lazy; - -export lz_arch=${ARCH} lz_cflags_debug=-O2 lz_target=${TARGET}; - -if [ "${3}" = no-complex ]; then - # Musl: build (no-complex) - _install=install_no_complex; - set_build_dir musl-${PKG_MUSL_VERSION}-${3} cross; - if ! is_build_script_done fetch; then - fetch http://www.musl-libc.org/releases/musl-${PKG_MUSL_VERSION}.tar.gz \ - ${PKG_MUSL_SHA256SUM}; - secure_rm mmglue; - fetch_git mmglue ${GITROOT}/mmglue; - set_build_script_done fetch -extract; - fi; - if ! is_build_script_done extract; then - secure_rm musl-${PKG_MUSL_VERSION}; - tar -xf ${DLCACHEDIR}/musl-${PKG_MUSL_VERSION}.tar.gz; - set +o noglob; cp -R -- mmglue/* musl-${PKG_MUSL_VERSION}/; set -o noglob; - set_build_script_done extract -configure; - fi; -elif [ "${3}" = native ]; then - # Musl: build (full) - _install=install; - set_build_dir musl-${PKG_MUSL_VERSION} "${3}"; -elif [ "${3}" = full ]; then - # Musl: build (full) - _install=install; - set_build_dir musl-${PKG_MUSL_VERSION} cross; -fi; -if ! is_build_script_done configure; then - secure_rm ${PKG_BUILD_DIR}; - insecure_mkdir ${PKG_BUILD_DIR}; - secure_cd ${PKG_BUILD_DIR}; - env lz_cflags_cmdline="${PKG_MUSL_CFLAGS_CONFIGURE_EXTRA}" \ - lz_debug="yes" \ - ../lazy/lazy \ - -a ${ARCH} \ - -c gcc \ - -f ${PKG_PREFIX} \ - -n musl \ - -p ../musl-${PKG_MUSL_VERSION} \ - -t ${lz_target} \ - -x config; - set_build_script_done configure clean -build; -else - cd ${PKG_BUILD_DIR}; -fi; -if ! is_build_script_done clean; then - make ${MAKEFLAGS} clean; - set_build_script_done clean -build; -fi; -if ! is_build_script_done build; then - ./lazy -e ${_install} \ - -x build; - [ "${3}" = native ] && \ - ln -sf -- ../lib/libc.so ${PKG_PREFIX}/bin/ldd; - set_build_script_done build finish; -fi; - -# vim:filetype=sh diff --git a/008.gcc.libstdc++-v3.build b/008.gcc.libstdc++-v3.build deleted file mode 120000 index f1fa8b29..00000000 --- a/008.gcc.libstdc++-v3.build +++ /dev/null @@ -1 +0,0 @@ -009.gcc.full.build \ No newline at end of file diff --git a/009.gcc.full.build b/009.gcc.full.build deleted file mode 100644 index 66c77289..00000000 --- a/009.gcc.full.build +++ /dev/null @@ -1,164 +0,0 @@ -# -# . ./build.vars and set -o errexit -o noglob are assumed. -# - -# Order: stage1, runtime, full, native - -export MAKE="make LIBTOOL=slibtool"; -if [ "${3}" = runtime ]\ -|| [ "${3}" = libstdc++-v3 ]\ -|| [ "${3}" = full ]; then - set_build_dir cbb-gcc-${PKG_GCC_VERSION} cross; - cd ${PKG_BUILD_DIR}; - if [ "${3}" = runtime ]; then - # GCC, compiler runtime. - if ! is_build_script_done build; then - make ${MAKEFLAGS} all-target-libgcc; - set_build_script_done build -install; - fi; - if ! is_build_script_done install; then - make ${MAKEFLAGS} install-target-libgcc; - set_build_script_done install finish; - fi; - elif [ "${3}" = libstdc++-v3 ]; then - # GCC, libstdc++-v3. - if ! is_build_script_done build; then - make ${MAKEFLAGS} all-target-libstdc++-v3; - set_build_script_done build -install; - fi; - if ! is_build_script_done install; then - make ${MAKEFLAGS} install-target-libstdc++-v3; - set_build_script_done install finish; - fi; - elif [ "${3}" = full ]; then - # GCC, everything else. - if ! is_build_script_done build; then - make ${MAKEFLAGS}; - set_build_script_done build -install; - fi; - if ! is_build_script_done install; then - make ${MAKEFLAGS} install; - set_build_script_done install finish; - fi; - fi; -else - if [ "${3}" = stage1 ]; then - # GCC, stage1. - if ! is_build_script_done fetch; then - fetch_git cbb-gcc-${PKG_GCC_VERSION} \ - ${GITROOT}/cbb/cbb-gcc-${PKG_GCC_VERSION}; - set_build_script_done fetch -configure; - fi; - set_build_dir cbb-gcc-${PKG_GCC_VERSION} cross; - export cbb_ldflags_for_target=--sysroot=${PKG_PREFIX} \ - cbb_sysroot_for_libgcc=${PKG_PREFIX} \ - cbb_target=${TARGET} \ - cbb_neutral_libiberty=no \ - cbb_xgcc_for_specs=${WORKDIR}/${PKG_BUILD_DIR}/gcc/xgcc; - GCCTARGET_FLAGS="-DIN_TARGET_LIBRARY_BUILD --sysroot=${PKG_PREFIX}"; - elif [ "${3}" = native ]; then - # GCC, native. - set_build_dir cbb-gcc-${PKG_GCC_VERSION} native; - export cbb_ldflags_for_target=--sysroot=${PKG_PREFIX} \ - cbb_sysroot_for_libgcc=${PKG_PREFIX} \ - cbb_target=${TARGET} \ - cbb_xgcc_for_specs=${TARGET}-gcc; - GCCTARGET_FLAGS="-DIN_TARGET_LIBRARY_BUILD --sysroot=${PKG_PREFIX}"; - fi; - GCCFLAGS="${CFLAGS:+${CFLAGS} }--include $(readlink -f ${WORKDIR}/cbb-gcc-${PKG_GCC_VERSION}/libc/cbb-musl-pe.h)"; - for __ in CFLAGS CFLAGS_FOR_BUILD CPPFLAGS_FOR_BUILD CXXFLAGS CXXFLAGS_FOR_BUILD; do - export "${__}=${GCCFLAGS}"; - done; - for __ in CFLAGS_FOR_TARGET CPPFLAGS_FOR_TARGET CXXFLAGS_FOR_TARGET LIBCFLAGS_FOR_TARGET XGCC_FLAGS_FOR_TARGET; do - export "${__}=${GCCTARGET_FLAGS}"; - done; - for __ in cbb_cflags_for_stage1 cbb_cflags_for_stage2 cbb_cflags_for_stage3 cbb_cflags_for_stage4; do - export "${__}=${CFLAGS_FOR_BUILD}" ; - done; - export CFLAGS CXXFLAGS CFLAGS_FOR_BUILD CPPFLAGS_FOR_BUILD CXXFLAGS_FOR_BUILD CFLAGS_FOR_TARGET XGCC_FLAGS_FOR_TARGET CPPFLAGS_FOR_TARGET CXXFLAGS_FOR_TARGET LIBCFLAGS_FOR_TARGET; - if ! is_build_script_done configure; then - if [ "${3}" = stage1 ]; then - insecure_mkdir ${PKG_PREFIX}/include; - [ \! -d ${PKG_PREFIX}/usr ] && \ - ln -s -- . ${PKG_PREFIX}/usr; - _configure_args="--prefix=${PREFIX} --with-sysroot=${PKG_PREFIX}"; - elif [ "${3}" = native ]; then - insecure_mkdir ${PKG_PREFIX}/${TARGET}; - if [ \! -d ${PKG_PREFIX}/${TARGET}/usr ]; then - ln -s -- . ${PKG_PREFIX}/${TARGET}/usr; - fi; - if [ "${ARCH}" = nt32 ]; then - _configure_args="--host=i686-nt32-midipix"; - else - _configure_args="--host=x86_64-nt64-midipix"; - fi; - _configure_args="${_configure_args} \ - --prefix=/ \ - --with-elf=${PKG_PREFIX} \ - --with-gmp=${PKG_PREFIX} \ - --with-mpc=${PKG_PREFIX} \ - --with-mpfr=${PKG_PREFIX} \ - --with-sysroot="; - fi; - secure_rm ${PKG_BUILD_DIR}; - insecure_mkdir ${PKG_BUILD_DIR}; - secure_cd ${PKG_BUILD_DIR}; - ../cbb-gcc-${PKG_GCC_VERSION}/configure \ - --disable-bootstrap \ - --disable-libmudflap \ - --disable-multilib \ - --disable-nls \ - --disable-obsolete \ - --disable-sjlj-exceptions \ - --disable-symvers \ - --enable-canonical-system-headers \ - --enable-__cxa_atexit \ - --enable-debug \ - --enable-gnu-indirect-function \ - --enable-gnu-unique-object \ - --enable-initfini-array \ - --enable-languages=c,c++,objc,lto \ - --enable-libstdcxx-debug \ - --enable-lto \ - --enable-multiarch \ - --enable-secureplt \ - --enable-shared \ - --enable-threads=posix \ - --target=${TARGET} \ - --with-fpmath=sse \ - ${_configure_args}; - set_build_script_done configure clean -build; - else - cd ${PKG_BUILD_DIR}; - fi; - if ! is_build_script_done clean; then - make ${MAKEFLAGS} clean; - set_build_script_done clean -build; - fi; - if ! is_build_script_done build; then - if [ "${3}" = stage1 ]; then - make ${MAKEFLAGS} all-gcc; - elif [ "${3}" = native ]; then - make ${MAKEFLAGS} all-gcc; - make ${MAKEFLAGS} all-target-libgcc; - make ${MAKEFLAGS} all-target-libstdc++-v3; - make ${MAKEFLAGS} all; - fi; - set_build_script_done build -install; - fi; - if ! is_build_script_done install; then - if [ "${3}" = stage1 ]; then - make ${MAKEFLAGS} install-gcc; - __="$(uname -s)"; - if [ "${__#*CYGWIN*}" != "${__}" ]; then - ln -s -- ${PREFIX}/libexec/gcc/${TARGET}/${PKG_GCC_VERSION}/liblto_plugin.dll.a \ - ln -s -- ${PREFIX}/libexec/gcc/${TARGET}/${PKG_GCC_VERSION}/liblto_plugin.so; - fi; - elif [ "${3}" = native ]; then - make ${MAKEFLAGS} DESTDIR=${PKG_PREFIX} install; - fi; - set_build_script_done install finish; - fi; -fi; - -# vim:filetype=sh diff --git a/010.pkgconf_host.build b/010.pkgconf_host.build deleted file mode 120000 index 52bb82e5..00000000 --- a/010.pkgconf_host.build +++ /dev/null @@ -1 +0,0 @@ -pkg.build \ No newline at end of file diff --git a/010.pkgconf_host.vars b/010.pkgconf_host.vars deleted file mode 100644 index 61d467a2..00000000 --- a/010.pkgconf_host.vars +++ /dev/null @@ -1,19 +0,0 @@ -# -# . ./build.vars and set -o errexit -o noglob are assumed. -# - -pkg_pkgconf_host_install_post() { - if [ -e ${PREFIX}/bin/${TARGET}-pkg-config ]; then - secure_rm ${PREFIX}/bin/${TARGET}-pkg-config; - fi; - cat > ${PREFIX}/bin/${TARGET}-pkg-config </dev/null | awk '/\.debug_info\s/{print}')" ]; then - echo ${PKG_TARGET}-strip ${__}; - ${PKG_TARGET}-strip ${__}; - fi; - set -o errexit; - done; -fi; - -# vim:filetype=sh diff --git a/998.midipix_sh.build b/998.midipix_sh.build deleted file mode 100644 index f6a9c22d..00000000 --- a/998.midipix_sh.build +++ /dev/null @@ -1,14 +0,0 @@ -# -# . ./build.vars and set -o errexit -o noglob are assumed. -# - -if ! is_build_script_done install; then - (cd ${MIDIPIX_BUILD_PWD}; - tar -cpf - midipix_check.sh midipix.sh README \ - 'Create `Midipix mintty shell'\'' shortcut.vbs' |\ - tar -C ${PREFIX} -xpf -); - chmod +x ${PREFIX}/midipix.sh; - set_build_script_done install finish; -fi; - -# vim:filetype=sh diff --git a/999.tarballs.build b/999.tarballs.build deleted file mode 100644 index 19ab7f7a..00000000 --- a/999.tarballs.build +++ /dev/null @@ -1,102 +0,0 @@ -# -# . ./build.vars and set -o errexit -o noglob are assumed. -# - -if [ ${ARG_TARBALL:-0} -eq 0 ]; then - exit; -else - log_msg info "Building distribution tarballs..."; - cd ${PREFIX}; -fi; -if [ "${TARBALL_SUFFIX}" = "bz2" ]; then - if [ -n "$(which pbzip2 2>/dev/null)" ]; then - TARBALL_COMPRESS_CMD="pbzip2"; - else - TARBALL_COMPRESS_CMD="bzip2"; - fi; -elif [ "${TARBALL_SUFFIX}" = "gz" ]; then - if [ -n "$(which pigz 2>/dev/null)" ]; then - TARBALL_COMPRESS_CMD="pigz"; - else - TARBALL_COMPRESS_CMD="gzip"; - fi; -elif [ "${TARBALL_SUFFIX}" = "xz" ]; then - TARBALL_COMPRESS_CMD="xz"; - TARBALL_COMPRESS_ARGS="-T0"; -else - log_msg failexit "Unknown tarball suffix \`.${TARBALL_SUFFIX}'."; -fi; - -PREFIX_BASENAME=${PREFIX_NATIVE##*/}; -TARBALL_FNAME=${TARBALL_FNAME_PREFIX}${BUILD_USER}@${BUILD_HNAME}-${BUILD_DATE_START}.tar.${TARBALL_SUFFIX}; -TARBALL_CROSS_FNAME=${TARBALL_CROSS_FNAME_PREFIX}${BUILD_USER}@${BUILD_HNAME}-${BUILD_DATE_START}.tar.${TARBALL_SUFFIX}; -TARBALL_MINIPIX_FNAME=${TARBALL_MINIPIX_FNAME_PREFIX}${BUILD_USER}@${BUILD_HNAME}-${BUILD_DATE_START}.tar.${TARBALL_SUFFIX}; -TARBALL_SRC_FNAME=${TARBALL_SRC_FNAME_PREFIX}${BUILD_USER}@${BUILD_HNAME}-${BUILD_DATE_START}.tar.${TARBALL_SUFFIX}; - -secure_rm ${PREFIX_BASENAME}/lib.bak; -insecure_mkdir ${PREFIX_BASENAME}/lib.bak; -tar -C ${PREFIX_BASENAME}/lib -cpf - . | tar -C ${PREFIX_BASENAME}/lib.bak -xpf -; -log_msg info "Backed up ${PREFIX_BASENAME}/lib."; -for __ in $(find native/lib \( -iname \*.so -or -iname \*.so.\* \) \ - -type l); do - ___="native/lib/$(readlink -- ${__})"; - if [ -f "${___}" ]; then - secure_rm ${__}; ln -f -- "${___}" "${__}"; - fi; -done; -log_msg info "Converted symbolic links in ${PREFIX_BASENAME}/lib to hard links."; - -tar -cpf - $(find . -maxdepth 2 -mindepth 1 -type d \ - -not -path ./native -not -path ./native/lib.bak \ - -not -path ./tmp -not -path ./tmp/\*) \ - "Create \`Midipix mintty shell' shortcut.vbs" midipix.sh README |\ -${TARBALL_COMPRESS_CMD} ${TARBALL_COMPRESS_ARGS} -c > ${TARBALL_FNAME}; -log_msg info "Finished building binary distribution tarball."; -if [ -x "$(which gpg 2>/dev/null)" -a -n "${TARBALL_SIGN_GPG_KEY}" ] &&\ - gpg --list-keys "${TARBALL_SIGN_GPG_KEY}" >/dev/null 2>&1; then - gpg --armor --passphrase-file /dev/null \ - --local-user "${TARBALL_SIGN_GPG_KEY}" --sign ${TARBALL_FNAME}; - log_msg info "Signed binary distribution tarball."; -fi; -secure_rm ${PREFIX_BASENAME}/lib; mv -- ${PREFIX_BASENAME}/lib.bak ${PREFIX_BASENAME}/lib; -log_msg info "Restored ${PREFIX_BASENAME}/lib."; - -tar -cpf - bin include lib lib64 libexec share ${PKG_TARGET} |\ -${TARBALL_COMPRESS_CMD} ${TARBALL_COMPRESS_ARGS} -c > ${TARBALL_CROSS_FNAME}; -log_msg info "Finished building toolchain tarball."; -if [ -x "$(which gpg 2>/dev/null)" -a -n "${TARBALL_CROSS_SIGN_GPG_KEY}" ] &&\ - gpg --list-keys "${TARBALL_CROSS_SIGN_GPG_KEY}" >/dev/null 2>&1; then - gpg --armor --passphrase-file /dev/null \ - --local-user "${TARBALL_CROSS_SIGN_GPG_KEY}" --sign ${TARBALL_CROSS_FNAME}; - log_msg info "Signed toolchain tarball."; -fi; - -tar -cpf - minipix \ - "Create \`Midipix mintty shell' shortcut.vbs" midipix.sh README |\ -${TARBALL_COMPRESS_CMD} ${TARBALL_COMPRESS_ARGS} -c > ${TARBALL_MINIPIX_FNAME}; -log_msg info "Finished building binary Minipix distribution tarball."; -if [ -x "$(which gpg 2>/dev/null)" -a -n "${TARBALL_MINIPIX_SIGN_GPG_KEY}" ] &&\ - gpg --list-keys "${TARBALL_MINIPIX_SIGN_GPG_KEY}" >/dev/null 2>&1; then - gpg --armor --passphrase-file /dev/null \ - --local-user "${TARBALL_MINIPIX_SIGN_GPG_KEY}" --sign ${TARBALL_MINIPIX_FNAME}; - log_msg info "Signed binary Minipix distribution tarball."; -fi; - -if [ "${BUILD}" = "debug" ]; then - log_msg info "Building source tarball..."; - tar -cpf - $(find tmp -mindepth 2 -maxdepth 2 \ - -not -path tmp/.\* \ - -not -path tmp/ntctty/.git \ - -not -path tmp/psxscl/.git \ - -not -path tmp/ptycon/.git) |\ - ${TARBALL_COMPRESS_CMD} ${TARBALL_COMPRESS_ARGS} -c > ${TARBALL_SRC_FNAME}; - log_msg info "Finished building source tarball."; - if [ -x "$(which gpg 2>/dev/null)" -a -n "${TARBALL_SRC_SIGN_GPG_KEY}" ] &&\ - gpg --list-keys "${TARBALL_SRC_SIGN_GPG_KEY}" >/dev/null 2>&1; then - gpg --armor --passphrase-file /dev/null \ - --local-user "${TARBALL_SRC_SIGN_GPG_KEY}" --sign ${TARBALL_SRC_FNAME}; - log_msg info "Signed source tarball."; - fi; -fi; - -# vim:filetype=sh diff --git a/Create `Midipix mintty shell' shortcut.vbs b/Create `Midipix mintty shell' shortcut.vbs deleted file mode 100644 index ce8e10d4..00000000 --- a/Create `Midipix mintty shell' shortcut.vbs +++ /dev/null @@ -1,14 +0,0 @@ -Set WshShell = CreateObject("WScript.Shell") -If WScript.Arguments.Count = 0 Then - CygwinPath = "C:\cygwin64" -Else - CygwinPath = WScript.Arguments(0) -End If -Set fso = CreateObject("Scripting.FileSystemObject") -Set oMyShortCut = WshShell.CreateShortcut(WshShell.CurrentDirectory + "\Midipix shell.lnk") -oMyShortCut.Arguments = "midipix.sh" -oMyShortcut.IconLocation = CygwinPath + "\Cygwin-Terminal.ico" -oMyShortCut.TargetPath = CygwinPath + "\bin\sh.exe" -oMyShortCut.WindowStyle = 4 -oMyShortCut.WorkingDirectory = WshShell.CurrentDirectory -oMyShortCut.Save diff --git a/LICENCE b/LICENCE deleted file mode 100644 index 3d401651..00000000 --- a/LICENCE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2016 Lucio Andrés Illanes Albornoz - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/Python-3.5.1.local.patch b/Python-3.5.1.local.patch deleted file mode 100644 index b96f19e7..00000000 --- a/Python-3.5.1.local.patch +++ /dev/null @@ -1,180 +0,0 @@ ---- Python-3.5.1/configure.ac.orig 2015-12-07 01:39:11.000000000 +0000 -+++ Python-3.5.1/configure.ac 2016-04-23 12:49:17.142936229 +0000 -@@ -58,6 +58,15 @@ - - if test "$cross_compiling" = yes; then - AC_MSG_CHECKING([for python interpreter for cross build]) -+ AC_MSG_CHECKING(python for build) -+ PYTHON_FOR_BUILD="${PYTHON_FOR_BUILD:-${PWD}/hostpython}" -+ AC_MSG_RESULT($PYTHON_FOR_BUILD) -+ AC_MSG_CHECKING(pgen for build) -+ PGEN_FOR_BUILD="${PGEN_FOR_BUILD:-Parser/hostpgen}" -+ AC_MSG_RESULT($PGEN_FOR_BUILD) -+ AC_MSG_CHECKING(_freeze_importlib for build) -+ _FIP_FOR_BUILD="${_FIP_FOR_BUILD:-Programs/host_freeze_importlib}" -+ AC_MSG_RESULT($_FIP_FOR_BUILD) - if test -z "$PYTHON_FOR_BUILD"; then - for interp in python$PACKAGE_VERSION python3 python; do - which $interp >/dev/null 2>&1 || continue -@@ -75,9 +84,16 @@ - elif test "$cross_compiling" = maybe; then - AC_MSG_ERROR([Cross compiling required --host=HOST-TUPLE and --build=ARCH]) - else -- PYTHON_FOR_BUILD='./$(BUILDPYTHON) -E' -+ PYTHON_FOR_BUILD='$(BUILDPYTHON)' -+ PGEN_FOR_BUILD='$(PGEN)' -+ _FIP_FOR_BUILD='$(_FIP)' - fi - AC_SUBST(PYTHON_FOR_BUILD) -+AC_SUBST(PGEN_FOR_BUILD) -+AC_SUBST(_FIP_FOR_BUILD) -+AC_ARG_VAR(PYTHON_FOR_BUILD,[build system Python]) -+AC_ARG_VAR(PGEN_FOR_BUILD,[build system Python pgen]) -+AC_ARG_VAR(_FIP_FOR_BUILD,[build system Python _freeze_importlib]) - - dnl Ensure that if prefix is specified, it does not end in a slash. If - dnl it does, we get path names containing '//' which is both ugly and -@@ -373,6 +389,9 @@ - *-*-cygwin*) - ac_sys_system=Cygwin - ;; -+ *-*-midipix*) -+ ac_sys_system=Midipix -+ ;; - *) - # for now, limit cross builds to known configurations - MACHDEP="unknown" -@@ -399,6 +418,7 @@ - cygwin*) MACHDEP="cygwin";; - darwin*) MACHDEP="darwin";; - irix646) MACHDEP="irix6";; -+ midipix*) MACHDEP="midipix";; - '') MACHDEP="unknown";; - esac - fi -@@ -406,6 +426,9 @@ - AC_SUBST(_PYTHON_HOST_PLATFORM) - if test "$cross_compiling" = yes; then - case "$host" in -+ *-*-midipix*) -+ _host_cpu= -+ ;; - *-*-linux*) - case "$host_cpu" in - arm*) ---- Python-3.5.1/Makefile.pre.in.orig 2015-12-07 01:39:09.000000000 +0000 -+++ Python-3.5.1/Makefile.pre.in 2016-04-23 12:09:05.162989761 +0000 -@@ -276,6 +276,9 @@ - ########################################################################## - # Parser - PGEN= Parser/pgen$(EXE) -+PGEN_FOR_BUILD= @PGEN_FOR_BUILD@ -+_FIP= Programs/_freeze_importlib$(EXE) -+_FIP_FOR_BUILD= @_FIP_FOR_BUILD@ - - PSRCS= \ - Parser/acceler.c \ -@@ -597,6 +600,7 @@ - esac; \ - $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \ - _TCLTK_INCLUDES='$(TCLTK_INCLUDES)' _TCLTK_LIBS='$(TCLTK_LIBS)' \ -+ _PYTHON_HOST_PLATFORM='$(_PYTHON_HOST_PLATFORM)' \ - $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build - - # Build static library -@@ -708,15 +712,15 @@ - - Programs/_freeze_importlib.o: Programs/_freeze_importlib.c Makefile - --Programs/_freeze_importlib: Programs/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN) -+$(_FIP): Programs/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN) - $(LINKCC) $(PY_LDFLAGS) -o $@ Programs/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST) - --Python/importlib_external.h: $(srcdir)/Lib/importlib/_bootstrap_external.py Programs/_freeze_importlib -- ./Programs/_freeze_importlib \ -+Python/importlib_external.h: $(srcdir)/Lib/importlib/_bootstrap_external.py $(_FIP_FOR_BUILD) -+ ./$(_FIP_FOR_BUILD) \ - $(srcdir)/Lib/importlib/_bootstrap_external.py Python/importlib_external.h - --Python/importlib.h: $(srcdir)/Lib/importlib/_bootstrap.py Programs/_freeze_importlib -- ./Programs/_freeze_importlib \ -+Python/importlib.h: $(srcdir)/Lib/importlib/_bootstrap.py $(_FIP_FOR_BUILD) -+ ./$(_FIP_FOR_BUILD) \ - $(srcdir)/Lib/importlib/_bootstrap.py Python/importlib.h - - -@@ -777,9 +781,9 @@ - - $(IO_OBJS): $(IO_H) - --$(GRAMMAR_H): $(GRAMMAR_INPUT) $(PGEN) -+$(GRAMMAR_H): $(GRAMMAR_INPUT) $(PGEN_FOR_BUILD) - @$(MKDIR_P) Include -- $(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C) -+ $(PGEN_FOR_BUILD) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C) - $(GRAMMAR_C): $(GRAMMAR_H) - touch $(GRAMMAR_C) - -@@ -1415,6 +1419,7 @@ - # Install the dynamically loadable modules - # This goes into $(exec_prefix) - sharedinstall: sharedmods -+ _PYTHON_HOST_PLATFORM='$(_PYTHON_HOST_PLATFORM)' \ - $(RUNSHARED) $(PYTHON_FOR_BUILD) $(srcdir)/setup.py install \ - --prefix=$(prefix) \ - --install-scripts=$(BINDIR) \ ---- Python-3.5.1/Modules/socketmodule.c.orig 2015-12-07 01:39:10.000000000 +0000 -+++ Python-3.5.1/Modules/socketmodule.c 2016-04-23 12:30:40.854961004 +0000 -@@ -1313,7 +1313,7 @@ - } - #endif - --#ifdef AF_CAN -+#if defined(HAVE_LINUX_CAN_H) && defined(AF_CAN) - case AF_CAN: - { - struct sockaddr_can *a = (struct sockaddr_can *)addr; -@@ -1810,7 +1810,7 @@ - } - #endif - --#if defined(AF_CAN) && defined(CAN_RAW) && defined(CAN_BCM) -+#if defined(HAVE_LINUX_CAN_H) && defined(AF_CAN) && defined(CAN_RAW) && defined(CAN_BCM) - case AF_CAN: - switch (s->sock_proto) { - case CAN_RAW: -@@ -2017,7 +2017,7 @@ - } - #endif - --#ifdef AF_CAN -+#if defined(HAVE_LINUX_CAN_H) && defined(AF_CAN) - case AF_CAN: - { - *len_ret = sizeof (struct sockaddr_can); -@@ -6298,7 +6298,7 @@ - PyModule_AddStringConstant(m, "BDADDR_LOCAL", "00:00:00:FF:FF:FF"); - #endif - --#ifdef AF_CAN -+#if defined(HAVE_LINUX_CAN_H) && defined(AF_CAN) - /* Controller Area Network */ - PyModule_AddIntMacro(m, AF_CAN); - #endif ---- Python-3.5.1/setup.py.orig 2015-12-07 01:39:11.000000000 +0000 -+++ Python-3.5.1/setup.py 2016-04-23 15:59:20.902683131 +0000 -@@ -1294,7 +1294,13 @@ - panel_library = 'panel' - if curses_library == 'ncursesw': - curses_defines.append(('HAVE_NCURSESW', '1')) -- curses_includes.append('/usr/include/ncursesw') -+ cflags = sysconfig.get_config_var('CFLAGS') -+ m = re.search(r'-isysroot\s+(\S+)', cflags) -+ if m is None: -+ sysroot = '/usr' -+ else: -+ sysroot = m.group(1) -+ curses_includes.append(sysroot + '/include/ncursesw') - # Bug 1464056: If _curses.so links with ncursesw, - # _curses_panel.so must link with panelw. - panel_library = 'panelw' diff --git a/README b/README deleted file mode 100644 index af6924e7..00000000 --- a/README +++ /dev/null @@ -1,228 +0,0 @@ - - Obtaining and installing a Midipix distribution - Last update: Sun, 24 Apr 2016 09:42:40 +0000 - -A Midipix distribution consists of the following: -a) the native Midipix toolchain, consisting of perk, gcc, its dependencies, - and binutils, -b) musl, a lightweight, fast, simple, and free libc[1] used by Midipix, -c) the Midipix runtime components that bridge the gap between the libc and the - executive subsystems of all Windows NT-derived Windows OS starting with and - including Windows XP, and -d) a steadily increasing number of 3rd party open source packages, as expected in - any modern POSIX-compliant *nix environment, including GNU coreutils, shells, - libraries such as ncurses, libressl, as well as Perl and Python. - -Compressed Midipix distribution tarballs and, separately, source tarballs are, -at present, produced every four (4) hours UTC after each successful build and -subsequently signed. This process is fully automated by a portable Bourne shell -script; all of the above mentioned components are cross-compiled. - -Thus, the most hassle-free way to get started with Midipix is to simply download -the most recent distribution tarball and follow the instructions below. It is, -however, recommended to anyone intending to use Midipix as a development platform -to familiarise themselves with the build process. Other reasons to prefer building -a Midipix distribution yourself include integrating new 3rd party software or local -runtime component patches. At present, a full build from scratch takes about 30 -(thirty) minutes to finish on an 8-core host with eight simultaneous make jobs, -minus the generation of the tarballs. The build script can be obtained from the -following GitHub repository: . - -If you obtained a Midipix distribution tarball, extract it into a directory and -drive of your choice, henceforth referred to as target directory; the drive can -be a network drive. Do _not_ use anything but a true UNIX environment tar(1), as -e.g. WinRAR or WinZip handle extracting hard links incorrectly. -If you built Midipix yourself, the target directory is equivalent to the ${PREFIX} -configured in build.vars, which defaults to ${HOME}/midipix. - -At present, providing an interactive Midipix environment still requires the Cygwin -terminal emulator Mintty and a shell; this does not include pseudoterminals, which -are entirely handled by Midipix. Both can be installed via the 64-bit Cygwin setup -program at . - -Once installed, launching a Midipix shell is accomplished by the `midipix.sh' shell -script provided in the target directory from within a Cygwin shell prompt in Mintty -and the target directory. This may either simply be done manually each time, or -automated by a shortcut. As shortcuts cannot be distributed, it can be created by -either: -a) Opening (executing) the VBScript script in the target directory from within the - latter cscript.exe, providing the fully qualified pathname to Mintty, if it differs - from the default value of C:\cygwin64\bin\mintty.exe or -b) manually creating a shortcut to Mintty with `Start in:' set to the target directory - and the following command line: - [ ... ]\mintty.exe -i /Cygwin-Terminal.ico -e sh midipix.sh, or - -References: -Sun, 24 Apr 2016 09:04:08 +0000 [1] musl FAQ - - Linux distribution-related errata - -Busybox based distributions need the gawk, gsed, and coreutils packages to build perl. - - Midipix status report - Last update: Tue, 26 Apr 2016 10:16:16 +0000 - -The following build status codes are defined: -C -- Complete build w/ at least the default configuration, -B -- Broken, e.g. doesn't work at all or only minimally, -I -- Integrated (e.g. linked against) with other packages, -E -- Extensively tested and confirmed to work by multiple sources, possibly via a testsuite, -P -- Patches needed to build that haven't been committed upstream yet, and -U -- Update to latest stable version or HEAD pending. - -Component type Name Version Status Comments -Host toolchain binutils 2.24.51 C--EPU -Host toolchain file 5.28 C----- -Host toolchain gcc 4.6.4 ---EPU Excludes libstdc++ -Host toolchain musl 1.1.12 C-IEPU -Host toolchain perk HEAD C-IE-- -Host toolchain pkgconf 0.28 C--E-- -Host toolchain slibtool 0.5.7 C--E-- -Native toolchain binutils 2.24.51 C--EPU -Native toolchain gcc 4.6.4 ---EPU Excludes libstdc++ -Native toolchain gmp 5.1.3 C-IEPU -Native toolchain libelf 0.8.13 C-IEP- -Native toolchain mpc 1.0.1 C-IE-U -Native toolchain mpfr 3.1.2 C-IE-U -Native toolchain musl 1.1.12 C-IEPU -Native toolchain perk HEAD C-IE-- -Native toolchain pkgconf 0.28 C-IE-- -Runtime components dalist HEAD C-IE-- -Runtime components ntapi HEAD C-IE-- -Runtime components ntcon HEAD C-IE-- -Runtime components ntctty HEAD C-IE-- -Runtime components pemagine HEAD C-IE-- -Runtime components psxscl HEAD C-IE-- Excludes clone(2) and dlopen(3) -Runtime components psxtypes HEAD C-IE-- -Runtime components ptycon HEAD C-IE-- -3rd party libraries gdbm 1.12 C-I--- -3rd party libraries glib 2.46.2 C-I-P- Shared object not built -3rd party libraries gzip 1.2.4 C-IE-- -3rd party libraries libarchive 3.1.2 C-I-P- -3rd party libraries libassuan 2.4.3 C-I--- -3rd party libraries libevent 2.0.22-stable C-I--- -3rd party libraries libfetch 2.33 C-I-P- -3rd party libraries libffi 3.2.1 C-I-P- -3rd party libraries libfirm HEAD C-I-P- -3rd party libraries libgcrypt 1.7.3 C-I--- -3rd party libraries libgpg_error 1.24 C-I-P- -3rd party libraries libksba 1.3.5 C-I-P- -3rd party libraries libpipeline 1.4.1 C-I--- -3rd party libraries libressl 2.2.6 C-I-P- -3rd party libraries libz 1.2.8.2015.05.20 C-I--- -3rd party libraries lua 5.3.3 C---P- -3rd party libraries ncurses 6.0 C-IEP- ncurses, ncursestw, and ncursesw built -3rd party libraries npth 1.2 C-I--- -3rd party libraries pcre 8.39 C-I--- -3rd party libraries xz 5.2.2 C-IE-- -3rd party X11 libs inputproto 2.3.2 C----- -3rd party X11 libs kbproto 1.0.7 C----- -3rd party X11 libs libICE 1.0.9 C----- -3rd party X11 libs libSM 1.2.2 C----- -3rd party X11 libs libX11 1.6.3 C----- -3rd party X11 libs libXau 1.0.8 C----- -3rd party X11 libs libXaw 1.0.13 C----- -3rd party X11 libs libXext 1.3.3 C----- -3rd party X11 libs libXmu 1.1.2 C----- -3rd party X11 libs libXpm 3.5.11 C----- -3rd party X11 libs libXt 1.1.5 C----- -3rd party X11 libs libpthread-stubs 0.3 C----- -3rd party X11 libs libxkbfile 1.0.9 C----- -3rd party X11 libs renderproto 0.11.1 C----- -3rd party X11 libs xcb 1.12 C----- Needs pthreads / clone(2) -3rd party X11 libs xcb-proto 1.12 C----- -3rd party X11 libs xextproto 7.3.0 C----- -3rd party X11 libs xproto 7.0.29 C----- -3rd party X11 libs xtrans 1.1 C----- -3rd party X11 libs Xrender 0.9.9 C----- -3rd party packages apk_tools 2.6.6 C---P- -3rd party packages bash 4.3 C-I-P- Linked against ncursesw -3rd party packages bzip2 1.0.6 C-IE-- -3rd party packages coreutils 8.23 C---P- Needs extensive testing -3rd party packages cparser HEAD C-I-P- -3rd party packages cron HEAD C---P- -3rd party packages curl 7.47.1 C---P- -3rd party packages dash 0.5.8 C----- Provides /bin/sh -3rd party packages diffutils 3.3 C----- -3rd party packages dos2unix 7.3.4 C----- -3rd party packages ed 1.13 C----- -3rd party packages file 5.28 C----- -3rd party packages findutils 4.5.14 C---P- -3rd party packages gawk 4.1.3 C----- -3rd party packages git 2.7.1 C----- Needs clone(2) -3rd party packages gnupg 2.1.15 C----- Needs /dev/[u]random, extensive testing -3rd party packages grep 2.22 C----- -3rd party packages hexcurse 1.60.0 C-I-P- Linked against ncursesw -3rd party packages htop 2.0.1 C-I-P- Linked against ncursesw -3rd party packages inetutils 1.9.4 C----- -3rd party packages infounzip 6.0 C----- -3rd party packages infozip 3.0 C----- -3rd party packages irssi 0.8.18 CB--P- DNS and /EXEC require clone(2) due to pthreads (see psxscl;) no Perl support -3rd party packages john 1.8.0 C---P- -3rd party packages less 481 C-I--- Linked against ncursesw -3rd party packages lynx 2.8.8rel2 C----- -3rd party packages make 3.81 C----- -3rd party packages man_db 2.7.5 C----- -3rd party packages mc 4.8.17 C----- -3rd party packages mksh R52c C----- -3rd party packages nano 2.5.3 C-I--- Linked against ncursesw -3rd party packages netcat 110 C---P- -3rd party packages openssh 7.1p2 C-I--- Linked against libressl -3rd party packages pacman 5.0.1 C---P- -3rd party packages patch 2.7 C----- -3rd party packages perl 5.22.1 ------ No dlopen(3) (see psxscl,) modules missing -3rd party packages procps-ng 3.3.12 C----- -3rd party packages python 3.5.1 -B--P- No dlopen(3) (see psxscl,) modules missing -3rd party packages rsync 3.1.2 C----- -3rd party packages rxvt-unicode 9.22 C-I--- No Perl support -3rd party packages sed 4.2.2 C----- -3rd party packages tar 1.28 C----- -3rd party packages tcsh 6.19.00 C-I-P- -3rd party packages the silver searcher 0.32.0 C----- -3rd party packages tmux 2.2 C---P- -3rd party packages util_linux 2.27.1 C----- Needs extensive testing -3rd party packages vim 7.4.1952 C----- Provides /bin/vi -3rd party packages weechat 1.6 C----- -3rd party packages which 2.21 C----- -3rd party packages whois 5.2.12 C----- -3rd party packages xeyes 1.1.1 C-I--- -3rd party packages xwd 1.0.6 C-I--- -3rd party packages zsh 5.2 C-I--- Linked against ncursesw - - Midipix roadmap/TODO list - Last update: Fri, 03 Jun 2016 12:47:13 +0000 - -midipix alpha release: the final stretch -======================================== - -my.own.tasks@midipix.org ------------------------- - -* ofd tables: additional bucket allocation as needed. -* `ls -R //c`: check for the cause of individual failures. - (might be related to the above ofd bucket allocation). -* integrate clone and the initial ldso implementation. -* integrate the signal queue, check signal implementation for - semantic completion, especially in the context of multi-threaded - applications. -* implement /dev/random and /dev/urandom, as well as other virtual - folders needed by core applications. -* implement the scheduler functions. -* implement (possibly as stubs) missing system calls, fix existing - system calls as needed by the core applications. -* toolchain: provided the few interfaces missing for C++ support. -* porting of mintty. - - -porting and other release-related tasks ---------------------------------------- - -* testing of ncurses. -* testing of bash and dash when built with ncurses. -* testing of all of the coreutils, seeing which ones fail due to - a missing virtual file or folder, which ones fail due to a missing - system call (crash), and which ones fail due to an incomplete or - incorrect system call. -* porting of gdb. - -vim:expandtab sw=8 ts=8 tw=0 nowrap diff --git a/TESTED_ON b/TESTED_ON deleted file mode 100644 index 2989ae30..00000000 --- a/TESTED_ON +++ /dev/null @@ -1,5 +0,0 @@ -Arch Linux 2016.02.01 (x86_64) -CentOS v7.2.1511 (Core) (x86_64) -Debian GNU/Linux v8.5 (stable) (jessie) (x86_64) -Exherbo Linux (x86_64-pc-linux-musl) (x86_64) -openSUSE 20150612 (Tumbleweed) (x86_64) diff --git a/apk-tools-2.6.6.local.patch b/apk-tools-2.6.6.local.patch deleted file mode 100644 index df03820e..00000000 --- a/apk-tools-2.6.6.local.patch +++ /dev/null @@ -1,55 +0,0 @@ ---- apk-tools-2.6.6/src/apk.c.orig 2016-02-09 15:57:53.000000000 +0100 -+++ apk-tools-2.6.6/src/apk.c 2016-03-09 10:24:39.763540600 +0100 -@@ -425,12 +425,15 @@ - - static void apk_applet_register_builtin(void) - { -+#if 0 - extern apk_init_func_t __start_initapplets[], __stop_initapplets[]; - apk_init_func_t *p; - - list_init(&apk_applet_list); - for (p = __start_initapplets; p < __stop_initapplets; p++) - (*p)(); -+#endif -+ list_init(&apk_applet_list); - } - - int main(int argc, char **argv) ---- apk-tools-2.6.6/Make.rules.orig 2016-02-09 15:57:53.000000000 +0100 -+++ apk-tools-2.6.6/Make.rules 2016-03-09 10:44:12.457459300 +0100 -@@ -70,7 +70,7 @@ - INSTALLDIR := $(INSTALL) -d - - CFLAGS ?= -g -O2 --CFLAGS_ALL := -Werror -Wall -Wstrict-prototypes -D_GNU_SOURCE -std=gnu99 -fPIC -+CFLAGS_ALL := -Wall -Wstrict-prototypes -D_GNU_SOURCE -std=gnu99 -fPIC - CFLAGS_ALL += $(CFLAGS) - - LDFLAGS ?= -g ---- apk-tools-2.6.6/src/Makefile.orig 2016-02-09 14:57:53.000000000 +0000 -+++ apk-tools-2.6.6/src/Makefile 2016-06-23 08:14:37.843747529 +0000 -@@ -1,12 +1,12 @@ - PKGDEPS := openssl zlib --PKG_CONFIG ?= pkg-config -+PKG_CONFIG ?= $(PKG_TARGET)-pkg-config - LUAAPK ?= yes - - # lua module - ifneq ($(LUAAPK),) - LUA_VERSION ?= 5.2 - LUA_PC ?= lua$(LUA_VERSION) --LUA_LIBDIR ?= /usr/lib/lua/$(LUA_VERSION) -+LUA_LIBDIR ?= $(PREFIX)/lib/lua/$(LUA_VERSION) - LIBAPK := YesPlease - shlibs-y += apk.so - apk.so-objs := lua-apk.o -@@ -66,7 +66,7 @@ - LDFLAGS_apk-test += -L$(obj) - - CFLAGS_ALL += $(shell $(PKG_CONFIG) --cflags $(PKGDEPS)) --LIBS := /usr/lib/libfetch.a \ -+LIBS := $(PREFIX)/lib/libfetch.a \ - -Wl,--as-needed \ - $(shell $(PKG_CONFIG) --libs $(PKGDEPS)) \ - -Wl,--no-as-needed diff --git a/bash-4.3.local.patch b/bash-4.3.local.patch deleted file mode 100644 index 995f7a7e..00000000 --- a/bash-4.3.local.patch +++ /dev/null @@ -1,7885 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-001 - -Bug-Reported-by: NBaH -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-02/msg00092.html - -Bug-Description: - -A missing check for a valid option prevented `test -R' from working. There -is another problem that causes bash to look up the wrong variable name when -processing the argument to `test -R'. - -Patch (apply with `patch -p0'): - -*** bash-4.3/test.c 2014-02-04 16:52:58.000000000 -0500 ---- test.c 2014-02-28 21:22:44.000000000 -0500 -*************** -*** 647,652 **** - - case 'R': -! v = find_variable (arg); -! return (v && invisible_p (v) == 0 && var_isset (v) && nameref_p (v) ? TRUE : FALSE); - } - ---- 647,652 ---- - - case 'R': -! v = find_variable_noref (arg); -! return ((v && invisible_p (v) == 0 && var_isset (v) && nameref_p (v)) ? TRUE : FALSE); - } - -*************** -*** 724,727 **** ---- 724,728 ---- - case 'u': case 'v': case 'w': case 'x': case 'z': - case 'G': case 'L': case 'O': case 'S': case 'N': -+ case 'R': - return (1); - } -*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 0 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 1 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-002 - -Bug-Reported-by: Moe Tunes -Bug-Reference-ID: <53103F49.3070100@gmail.com> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-02/msg00086.html - -Bug-Description: - -A change to save state while running the DEBUG trap caused pipelines to hang -on systems which need process group synchronization while building pipelines. - -Patch (apply with `patch -p0'): - -*** bash-4.3/trap.c 2014-02-05 10:03:21.000000000 -0500 ---- trap.c 2014-02-28 09:51:43.000000000 -0500 -*************** -*** 921,925 **** - - #if defined (JOB_CONTROL) -! save_pipeline (1); /* XXX only provides one save level */ - #endif - ---- 921,926 ---- - - #if defined (JOB_CONTROL) -! if (sig != DEBUG_TRAP) /* run_debug_trap does this */ -! save_pipeline (1); /* XXX only provides one save level */ - #endif - -*************** -*** 941,945 **** - - #if defined (JOB_CONTROL) -! restore_pipeline (1); - #endif - ---- 942,947 ---- - - #if defined (JOB_CONTROL) -! if (sig != DEBUG_TRAP) /* run_debug_trap does this */ -! restore_pipeline (1); - #endif - -*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 1 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 2 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-003 - -Bug-Reported-by: Anatol Pomozov -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2014-03/msg00010.html - -Bug-Description: - -When in callback mode, some readline commands can cause readline to seg -fault by passing invalid contexts to callback functions. - -Patch (apply with `patch -p0'): - -*** bash-4.3/lib/readline/readline.c 2013-10-28 14:58:06.000000000 -0400 ---- lib/readline/readline.c 2014-03-10 14:15:02.000000000 -0400 -*************** -*** 745,749 **** - - RL_CHECK_SIGNALS (); -! if (r == 0) /* success! */ - { - _rl_keyseq_chain_dispose (); ---- 745,750 ---- - - RL_CHECK_SIGNALS (); -! /* We only treat values < 0 specially to simulate recursion. */ -! if (r >= 0 || (r == -1 && (cxt->flags & KSEQ_SUBSEQ) == 0)) /* success! or failure! */ - { - _rl_keyseq_chain_dispose (); -*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 2 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 3 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-004 - -Bug-Reported-by: Daan van Rossum -Bug-Reference-ID: <20140307072523.GA14250@flash.uchicago.edu> -Bug-Reference-URL: - -Bug-Description: - -The `.' command in vi mode cannot undo multi-key commands beginning with -`c', `d', and `y' (command plus motion specifier). - -Patch (apply with `patch -p0'): - -*** bash-4.3/lib/readline/readline.c 2013-10-28 14:58:06.000000000 -0400 ---- lib/readline/readline.c 2014-03-07 15:20:33.000000000 -0500 -*************** -*** 965,969 **** - if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap && - key != ANYOTHERKEY && -! rl_key_sequence_length == 1 && /* XXX */ - _rl_vi_textmod_command (key)) - _rl_vi_set_last (key, rl_numeric_arg, rl_arg_sign); ---- 965,969 ---- - if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap && - key != ANYOTHERKEY && -! _rl_dispatching_keymap == vi_movement_keymap && - _rl_vi_textmod_command (key)) - _rl_vi_set_last (key, rl_numeric_arg, rl_arg_sign); -*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 3 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 4 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-005 - -Bug-Reported-by: David Sines -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00037.html - -Bug-Description: - -When in Posix mode, bash did not correctly interpret the ANSI-C-style -$'...' quoting mechanism when performing pattern substitution word -expansions within double quotes. - -Patch (apply with `patch -p0'): - -*** bash-4.3/parse.y 2014-02-11 09:42:10.000000000 -0500 ---- parse.y 2014-03-07 20:57:15.000000000 -0500 -*************** -*** 3399,3403 **** - unescaped double-quotes or single-quotes, if any, shall occur." */ - /* This was changed in Austin Group Interp 221 */ -! if MBTEST(posixly_correct && shell_compatibility_level > 41 && dolbrace_state != DOLBRACE_QUOTE && (flags & P_DQUOTE) && (flags & P_DOLBRACE) && ch == '\'') - continue; - ---- 3399,3403 ---- - unescaped double-quotes or single-quotes, if any, shall occur." */ - /* This was changed in Austin Group Interp 221 */ -! if MBTEST(posixly_correct && shell_compatibility_level > 41 && dolbrace_state != DOLBRACE_QUOTE && dolbrace_state != DOLBRACE_QUOTE2 && (flags & P_DQUOTE) && (flags & P_DOLBRACE) && ch == '\'') - continue; - -*** bash-4.3/y.tab.c 2014-02-11 10:57:47.000000000 -0500 ---- y.tab.c 2014-03-28 10:41:15.000000000 -0400 -*************** -*** 5711,5715 **** - unescaped double-quotes or single-quotes, if any, shall occur." */ - /* This was changed in Austin Group Interp 221 */ -! if MBTEST(posixly_correct && shell_compatibility_level > 41 && dolbrace_state != DOLBRACE_QUOTE && (flags & P_DQUOTE) && (flags & P_DOLBRACE) && ch == '\'') - continue; - ---- 5711,5715 ---- - unescaped double-quotes or single-quotes, if any, shall occur." */ - /* This was changed in Austin Group Interp 221 */ -! if MBTEST(posixly_correct && shell_compatibility_level > 41 && dolbrace_state != DOLBRACE_QUOTE && dolbrace_state != DOLBRACE_QUOTE2 && (flags & P_DQUOTE) && (flags & P_DOLBRACE) && ch == '\'') - continue; - -*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 4 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 5 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-006 - -Bug-Reported-by: Eduardo A . Bustamante Lopez -Bug-Reference-ID: <20140228170013.GA16015@dualbus.me> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-02/msg00091.html - -Bug-Description: - -A shell that started with job control active but was not interactive left -the terminal in the wrong process group when exiting, causing its parent -shell to get a stop signal when it attempted to read from the terminal. - -Patch (apply with `patch -p0'): - -*** bash-4.3/jobs.c 2014-01-10 09:05:34.000000000 -0500 ---- jobs.c 2014-03-02 18:05:09.000000000 -0500 -*************** -*** 4375,4379 **** - end_job_control () - { -! if (interactive_shell) /* XXX - should it be interactive? */ - { - terminate_stopped_jobs (); ---- 4375,4379 ---- - end_job_control () - { -! if (interactive_shell || job_control) /* XXX - should it be just job_control? */ - { - terminate_stopped_jobs (); -*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 5 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 6 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-007 - -Bug-Reported-by: geir.hauge@gmail.com -Bug-Reference-ID: <20140318093650.B181C1C5B0B@gina.itea.ntnu.no> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00095.html - -Bug-Description: - -Using compound assignments for associative arrays like - -assoc=( [x]= [y]=bar ) - -left the value corresponding to the key `x' NULL. This caused subsequent -lookups to interpret it as unset. - -Patch (apply with `patch -p0'): - -*** bash-4.3/arrayfunc.c 2013-08-02 16:19:59.000000000 -0400 ---- arrayfunc.c 2014-03-18 11:08:15.000000000 -0400 -*************** -*** 598,601 **** ---- 598,606 ---- - { - val = expand_assignment_string_to_string (val, 0); -+ if (val == 0) -+ { -+ val = (char *)xmalloc (1); -+ val[0] = '\0'; /* like do_assignment_internal */ -+ } - free_val = 1; - } -*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 6 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 7 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-008 - -Bug-Reported-by: Stephane Chazelas -Bug-Reference-ID: <20140318135901.GB22158@chaz.gmail.com> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00098.html - -Bug-Description: - -Some extended glob patterns incorrectly matched filenames with a leading -dot, regardless of the setting of the `dotglob' option. - -Patch (apply with `patch -p0'): - -*** bash-4.3/lib/glob/gmisc.c 2013-10-28 14:45:25.000000000 -0400 ---- lib/glob/gmisc.c 2014-03-19 09:16:08.000000000 -0400 -*************** -*** 211,214 **** ---- 211,215 ---- - case '!': - case '@': -+ case '?': - return (pat[1] == LPAREN); - default: -*** bash-4.3/lib/glob/glob.c 2014-01-31 21:43:51.000000000 -0500 ---- lib/glob/glob.c 2014-03-20 09:01:26.000000000 -0400 -*************** -*** 180,202 **** - int flags; - { -! char *pp, *pe, *t; -! int n, r; - - pp = pat + 2; -! pe = pp + strlen (pp) - 1; /*(*/ -! if (*pe != ')') -! return 0; -! if ((t = strchr (pp, '|')) == 0) /* easy case first */ - { - *pe = '\0'; - r = skipname (pp, dname, flags); /*(*/ - *pe = ')'; - return r; - } - while (t = glob_patscan (pp, pe, '|')) - { - n = t[-1]; - t[-1] = '\0'; - r = skipname (pp, dname, flags); - t[-1] = n; - if (r == 0) /* if any pattern says not skip, we don't skip */ ---- 180,215 ---- - int flags; - { -! char *pp, *pe, *t, *se; -! int n, r, negate; - -+ negate = *pat == '!'; - pp = pat + 2; -! se = pp + strlen (pp) - 1; /* end of string */ -! pe = glob_patscan (pp, se, 0); /* end of extglob pattern (( */ -! /* we should check for invalid extglob pattern here */ -! /* if pe != se we have more of the pattern at the end of the extglob -! pattern. Check the easy case first ( */ -! if (pe == se && *pe == ')' && (t = strchr (pp, '|')) == 0) - { - *pe = '\0'; -+ #if defined (HANDLE_MULTIBYTE) -+ r = mbskipname (pp, dname, flags); -+ #else - r = skipname (pp, dname, flags); /*(*/ -+ #endif - *pe = ')'; - return r; - } -+ -+ /* check every subpattern */ - while (t = glob_patscan (pp, pe, '|')) - { - n = t[-1]; - t[-1] = '\0'; -+ #if defined (HANDLE_MULTIBYTE) -+ r = mbskipname (pp, dname, flags); -+ #else - r = skipname (pp, dname, flags); -+ #endif - t[-1] = n; - if (r == 0) /* if any pattern says not skip, we don't skip */ -*************** -*** 205,219 **** - } /*(*/ - -! if (pp == pe) /* glob_patscan might find end of pattern */ - return r; - -! *pe = '\0'; -! # if defined (HANDLE_MULTIBYTE) -! r = mbskipname (pp, dname, flags); /*(*/ -! # else -! r = skipname (pp, dname, flags); /*(*/ -! # endif -! *pe = ')'; -! return r; - } - #endif ---- 218,227 ---- - } /*(*/ - -! /* glob_patscan might find end of pattern */ -! if (pp == se) - return r; - -! /* but if it doesn't then we didn't match a leading dot */ -! return 0; - } - #endif -*************** -*** 278,289 **** - { - #if EXTENDED_GLOB -! wchar_t *pp, *pe, *t, n; -! int r; - - pp = pat + 2; -! pe = pp + wcslen (pp) - 1; /*(*/ -! if (*pe != L')') -! return 0; -! if ((t = wcschr (pp, L'|')) == 0) - { - *pe = L'\0'; ---- 286,298 ---- - { - #if EXTENDED_GLOB -! wchar_t *pp, *pe, *t, n, *se; -! int r, negate; - -+ negate = *pat == L'!'; - pp = pat + 2; -! se = pp + wcslen (pp) - 1; /*(*/ -! pe = glob_patscan_wc (pp, se, 0); -! -! if (pe == se && *pe == ')' && (t = wcschr (pp, L'|')) == 0) - { - *pe = L'\0'; -*************** -*** 292,295 **** ---- 301,306 ---- - return r; - } -+ -+ /* check every subpattern */ - while (t = glob_patscan_wc (pp, pe, '|')) - { -*************** -*** 306,313 **** - return r; - -! *pe = L'\0'; -! r = wchkname (pp, dname); /*(*/ -! *pe = L')'; -! return r; - #else - return (wchkname (pat, dname)); ---- 317,322 ---- - return r; - -! /* but if it doesn't then we didn't match a leading dot */ -! return 0; - #else - return (wchkname (pat, dname)); -*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 7 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 8 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-009 - -Bug-Reported-by: Matthias Klose -Bug-Reference-ID: <53346FC8.6090005@debian.org> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00171.html - -Bug-Description: - -There is a problem with unsigned sign extension when attempting to reallocate -the input line when it is fewer than 3 characters long and there has been a -history expansion. The sign extension causes the shell to not reallocate the -line, which results in a segmentation fault when it writes past the end. - -Patch (apply with `patch -p0'): - -*** bash-4.3/parse.y 2014-02-11 09:42:10.000000000 -0500 ---- parse.y 2014-03-27 16:33:29.000000000 -0400 -*************** -*** 2425,2429 **** - if (shell_input_line_terminator != EOF) - { -! if (shell_input_line_size < SIZE_MAX && shell_input_line_len > shell_input_line_size - 3) - shell_input_line = (char *)xrealloc (shell_input_line, - 1 + (shell_input_line_size += 2)); ---- 2425,2429 ---- - if (shell_input_line_terminator != EOF) - { -! if (shell_input_line_size < SIZE_MAX-3 && (shell_input_line_len+3 > shell_input_line_size)) - shell_input_line = (char *)xrealloc (shell_input_line, - 1 + (shell_input_line_size += 2)); -*** bash-4.3/y.tab.c 2014-03-28 11:17:06.000000000 -0400 ---- y.tab.c 2014-04-07 11:48:31.000000000 -0400 -*************** -*** 4737,4741 **** - if (shell_input_line_terminator != EOF) - { -! if (shell_input_line_size < SIZE_MAX && shell_input_line_len > shell_input_line_size - 3) - shell_input_line = (char *)xrealloc (shell_input_line, - 1 + (shell_input_line_size += 2)); ---- 4737,4741 ---- - if (shell_input_line_terminator != EOF) - { -! if (shell_input_line_size < SIZE_MAX-3 && (shell_input_line_len+3 > shell_input_line_size)) - shell_input_line = (char *)xrealloc (shell_input_line, - 1 + (shell_input_line_size += 2)); -*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 8 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 9 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-010 - -Bug-Reported-by: Albert Shih -Bug-Reference-ID: Wed, 5 Mar 2014 23:01:40 +0100 -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00028.html - -Bug-Description: - -Patch (apply with `patch -p0'): - -This patch changes the behavior of programmable completion to compensate -for two assumptions made by the bash-completion package. Bash-4.3 changed -to dequote the argument to programmable completion only under certain -circumstances, to make the behavior of compgen more consistent when run -from the command line -- closer to the behavior when run by a shell function -run as part of programmable completion. Bash-completion can pass quoted -arguments to compgen when the original word to be completed was not quoted, -expecting programmable completion to dequote the word before attempting -completion. - -This patch fixes two cases: - -1. An empty string that bash-completion passes to compgen as a quoted null - string (''). - -2. An unquoted word that bash-completion quotes using single quotes or - backslashes before passing it to compgen. - -In these cases, since readline did not detect a quote character in the original -word to be completed, bash-4.3 - -*** bash-4.3/externs.h 2014-01-02 14:58:20.000000000 -0500 ---- externs.h 2014-03-13 14:42:57.000000000 -0400 -*************** -*** 325,328 **** ---- 325,329 ---- - extern char *sh_backslash_quote_for_double_quotes __P((char *)); - extern int sh_contains_shell_metas __P((char *)); -+ extern int sh_contains_quotes __P((char *)); - - /* declarations for functions defined in lib/sh/spell.c */ -*** bash-4.3/lib/sh/shquote.c 2013-03-31 21:53:32.000000000 -0400 ---- lib/sh/shquote.c 2014-03-13 14:42:57.000000000 -0400 -*************** -*** 312,313 **** ---- 312,327 ---- - return (0); - } -+ -+ int -+ sh_contains_quotes (string) -+ char *string; -+ { -+ char *s; -+ -+ for (s = string; s && *s; s++) -+ { -+ if (*s == '\'' || *s == '"' || *s == '\\') -+ return 1; -+ } -+ return 0; -+ } -*** bash-4.3/pcomplete.c 2013-08-26 15:23:45.000000000 -0400 ---- pcomplete.c 2014-03-25 17:23:23.000000000 -0400 -*************** -*** 184,187 **** ---- 184,188 ---- - COMPSPEC *pcomp_curcs; - const char *pcomp_curcmd; -+ const char *pcomp_curtxt; - - #ifdef DEBUG -*************** -*** 754,757 **** ---- 755,784 ---- - dfn = (*rl_filename_dequoting_function) ((char *)text, rl_completion_quote_character); - } -+ /* Intended to solve a mismatched assumption by bash-completion. If -+ the text to be completed is empty, but bash-completion turns it into -+ a quoted string ('') assuming that this code will dequote it before -+ calling readline, do the dequoting. */ -+ else if (iscompgen && iscompleting && -+ pcomp_curtxt && *pcomp_curtxt == 0 && -+ text && (*text == '\'' || *text == '"') && text[1] == text[0] && text[2] == 0 && -+ rl_filename_dequoting_function) -+ dfn = (*rl_filename_dequoting_function) ((char *)text, rl_completion_quote_character); -+ /* Another mismatched assumption by bash-completion. If compgen is being -+ run as part of bash-completion, and the argument to compgen is not -+ the same as the word originally passed to the programmable completion -+ code, dequote the argument if it has quote characters. It's an -+ attempt to detect when bash-completion is quoting its filename -+ argument before calling compgen. */ -+ /* We could check whether gen_shell_function_matches is in the call -+ stack by checking whether the gen-shell-function-matches tag is in -+ the unwind-protect stack, but there's no function to do that yet. -+ We could simply check whether we're executing in a function by -+ checking variable_context, and may end up doing that. */ -+ else if (iscompgen && iscompleting && rl_filename_dequoting_function && -+ pcomp_curtxt && text && -+ STREQ (pcomp_curtxt, text) == 0 && -+ variable_context && -+ sh_contains_quotes (text)) /* guess */ -+ dfn = (*rl_filename_dequoting_function) ((char *)text, rl_completion_quote_character); - else - dfn = savestring (text); -*************** -*** 1523,1527 **** - { - COMPSPEC *cs, *oldcs; -! const char *oldcmd; - STRINGLIST *ret; - ---- 1550,1554 ---- - { - COMPSPEC *cs, *oldcs; -! const char *oldcmd, *oldtxt; - STRINGLIST *ret; - -*************** -*** 1546,1552 **** ---- 1573,1581 ---- - oldcs = pcomp_curcs; - oldcmd = pcomp_curcmd; -+ oldtxt = pcomp_curtxt; - - pcomp_curcs = cs; - pcomp_curcmd = cmd; -+ pcomp_curtxt = word; - - ret = gen_compspec_completions (cs, cmd, word, start, end, foundp); -*************** -*** 1554,1557 **** ---- 1583,1587 ---- - pcomp_curcs = oldcs; - pcomp_curcmd = oldcmd; -+ pcomp_curtxt = oldtxt; - - /* We need to conditionally handle setting *retryp here */ -*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 9 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 10 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-011 - -Bug-Reported-by: Egmont Koblinger -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00153.html - -Bug-Description: - -The signal handling changes to bash and readline (to avoid running any code -in a signal handler context) cause the cursor to be placed on the wrong -line of a multi-line command after a ^C interrupts editing. - -Patch (apply with `patch -p0'): - -*** bash-4.3/lib/readline/display.c 2013-12-27 13:10:56.000000000 -0500 ---- lib/readline/display.c 2014-03-27 11:52:45.000000000 -0400 -*************** -*** 2678,2682 **** - if (_rl_echoing_p) - { -! _rl_move_vert (_rl_vis_botlin); - _rl_vis_botlin = 0; - fflush (rl_outstream); ---- 2678,2683 ---- - if (_rl_echoing_p) - { -! if (_rl_vis_botlin > 0) /* minor optimization plus bug fix */ -! _rl_move_vert (_rl_vis_botlin); - _rl_vis_botlin = 0; - fflush (rl_outstream); -*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 10 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 11 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-012 - -Bug-Reported-by: Eduardo A. Bustamante López -Bug-Reference-ID: <5346B54C.4070205@case.edu> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-04/msg00051.html - -Bug-Description: - -When a SIGCHLD trap runs a command containing a shell builtin while -a script is running `wait' to wait for all running children to complete, -the SIGCHLD trap will not be run once for each child that terminates. - -Patch (apply with `patch -p0'): - -*** bash-4.3/jobs.c 2014-03-28 10:54:19.000000000 -0400 ---- jobs.c 2014-04-15 08:47:03.000000000 -0400 -*************** -*** 3598,3601 **** ---- 3598,3602 ---- - unwind_protect_pointer (the_pipeline); - unwind_protect_pointer (subst_assign_varlist); -+ unwind_protect_pointer (this_shell_builtin); - - /* We have to add the commands this way because they will be run -*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 11 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 12 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-013 - -Bug-Reported-by: -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-04/msg00069.html - -Bug-Description: - -Using reverse-i-search when horizontal scrolling is enabled does not redisplay -the entire line containing the successful search results. - -Patch (apply with `patch -p0'): -*** bash-4.3/lib/readline/display.c 2014-04-08 18:19:36.000000000 -0400 ---- lib/readline/display.c 2014-04-20 18:32:52.000000000 -0400 -*************** -*** 1638,1642 **** - the spot of first difference is before the end of the invisible chars, - lendiff needs to be adjusted. */ -! if (current_line == 0 && !_rl_horizontal_scroll_mode && - current_invis_chars != visible_wrap_offset) - { ---- 1638,1642 ---- - the spot of first difference is before the end of the invisible chars, - lendiff needs to be adjusted. */ -! if (current_line == 0 && /* !_rl_horizontal_scroll_mode && */ - current_invis_chars != visible_wrap_offset) - { -*************** -*** 1826,1831 **** - _rl_last_c_pos += bytes_to_insert; - - if (_rl_horizontal_scroll_mode && ((oe-old) > (ne-new))) -! goto clear_rest_of_line; - } - } ---- 1826,1836 ---- - _rl_last_c_pos += bytes_to_insert; - -+ /* XXX - we only want to do this if we are at the end of the line -+ so we move there with _rl_move_cursor_relative */ - if (_rl_horizontal_scroll_mode && ((oe-old) > (ne-new))) -! { -! _rl_move_cursor_relative (ne-new, new); -! goto clear_rest_of_line; -! } - } - } -*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 12 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 13 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-014 - -Bug-Reported-by: Greg Wooledge -Bug-Reference-ID: <20140418202123.GB7660@eeg.ccf.org> -Bug-Reference-URL: http://lists.gnu.org/archive/html/help-bash/2014-04/msg00004.html - -Bug-Description: - -Under certain circumstances, $@ is expanded incorrectly in contexts where -word splitting is not performed. - -Patch (apply with `patch -p0'): -*** bash-4.3/subst.c 2014-01-23 16:26:37.000000000 -0500 ---- subst.c 2014-04-19 15:41:26.000000000 -0400 -*************** -*** 3249,3254 **** ---- 3249,3256 ---- - return ((char *)NULL); - -+ expand_no_split_dollar_star = 1; - w->flags |= W_NOSPLIT2; - l = call_expand_word_internal (w, 0, 0, (int *)0, (int *)0); -+ expand_no_split_dollar_star = 0; - if (l) - { -*************** -*** 7848,7851 **** ---- 7850,7857 ---- - according to POSIX.2, this expands to a list of the positional - parameters no matter what IFS is set to. */ -+ /* XXX - what to do when in a context where word splitting is not -+ performed? Even when IFS is not the default, posix seems to imply -+ that we behave like unquoted $* ? Maybe we should use PF_NOSPLIT2 -+ here. */ - temp = string_list_dollar_at (list, (pflags & PF_ASSIGNRHS) ? (quoted|Q_DOUBLE_QUOTES) : quoted); - -*************** -*** 8817,8820 **** ---- 8823,8827 ---- - { - char *ifs_chars; -+ char *tstring; - - ifs_chars = (quoted_dollar_at || has_dollar_at) ? ifs_value : (char *)NULL; -*************** -*** 8831,8834 **** ---- 8838,8865 ---- - if (split_on_spaces) - list = list_string (istring, " ", 1); /* XXX quoted == 1? */ -+ /* If we have $@ (has_dollar_at != 0) and we are in a context where we -+ don't want to split the result (W_NOSPLIT2), and we are not quoted, -+ we have already separated the arguments with the first character of -+ $IFS. In this case, we want to return a list with a single word -+ with the separator possibly replaced with a space (it's what other -+ shells seem to do). -+ quoted_dollar_at is internal to this function and is set if we are -+ passed an argument that is unquoted (quoted == 0) but we encounter a -+ double-quoted $@ while expanding it. */ -+ else if (has_dollar_at && quoted_dollar_at == 0 && ifs_chars && quoted == 0 && (word->flags & W_NOSPLIT2)) -+ { -+ /* Only split and rejoin if we have to */ -+ if (*ifs_chars && *ifs_chars != ' ') -+ { -+ list = list_string (istring, *ifs_chars ? ifs_chars : " ", 1); -+ tstring = string_list (list); -+ } -+ else -+ tstring = istring; -+ tword = make_bare_word (tstring); -+ if (tstring != istring) -+ free (tstring); -+ goto set_word_flags; -+ } - else if (has_dollar_at && ifs_chars) - list = list_string (istring, *ifs_chars ? ifs_chars : " ", 1); -*************** -*** 8836,8839 **** ---- 8867,8871 ---- - { - tword = make_bare_word (istring); -+ set_word_flags: - if ((quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) || (quoted_state == WHOLLY_QUOTED)) - tword->flags |= W_QUOTED; -*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 13 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 14 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-015 - -Bug-Reported-by: Clark Wang -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-04/msg00095.html - -Bug-Description: - -When completing directory names, the directory name is dequoted twice. -This causes problems for directories with single and double quotes in -their names. - -Patch (apply with `patch -p0'): -*** bash-4.3/bashline.c 2014-02-09 19:56:58.000000000 -0500 ---- bashline.c 2014-04-25 14:57:52.000000000 -0400 -*************** -*** 4168,4174 **** - - qc = rl_dispatching ? rl_completion_quote_character : 0; -! dfn = bash_dequote_filename ((char *)text, qc); - m1 = rl_completion_matches (dfn, rl_filename_completion_function); -! free (dfn); - - if (m1 == 0 || m1[0] == 0) ---- 4209,4222 ---- - - qc = rl_dispatching ? rl_completion_quote_character : 0; -! /* If rl_completion_found_quote != 0, rl_completion_matches will call the -! filename dequoting function, causing the directory name to be dequoted -! twice. */ -! if (rl_dispatching && rl_completion_found_quote == 0) -! dfn = bash_dequote_filename ((char *)text, qc); -! else -! dfn = (char *)text; - m1 = rl_completion_matches (dfn, rl_filename_completion_function); -! if (dfn != text) -! free (dfn); - - if (m1 == 0 || m1[0] == 0) -*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 14 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 15 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-016 - -Bug-Reported-by: Pierre Gaston -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-04/msg00100.html - -Bug-Description: - -An extended glob pattern containing a slash (`/') causes the globbing code -to misinterpret it as a directory separator. - -Patch (apply with `patch -p0'): -*** bash-4.3/lib/glob/glob.c 2014-03-28 10:54:23.000000000 -0400 ---- lib/glob/glob.c 2014-05-02 10:24:28.000000000 -0400 -*************** -*** 124,127 **** ---- 124,129 ---- - extern wchar_t *glob_patscan_wc __P((wchar_t *, wchar_t *, int)); - -+ extern char *glob_dirscan __P((char *, int)); -+ - /* Compile `glob_loop.c' for single-byte characters. */ - #define CHAR unsigned char -*************** -*** 188,191 **** ---- 190,196 ---- - pe = glob_patscan (pp, se, 0); /* end of extglob pattern (( */ - /* we should check for invalid extglob pattern here */ -+ if (pe == 0) -+ return 0; -+ - /* if pe != se we have more of the pattern at the end of the extglob - pattern. Check the easy case first ( */ -*************** -*** 1016,1020 **** - char **result; - unsigned int result_size; -! char *directory_name, *filename, *dname; - unsigned int directory_len; - int free_dirname; /* flag */ ---- 1021,1025 ---- - char **result; - unsigned int result_size; -! char *directory_name, *filename, *dname, *fn; - unsigned int directory_len; - int free_dirname; /* flag */ -*************** -*** 1032,1035 **** ---- 1037,1052 ---- - /* Find the filename. */ - filename = strrchr (pathname, '/'); -+ #if defined (EXTENDED_GLOB) -+ if (filename && extended_glob) -+ { -+ fn = glob_dirscan (pathname, '/'); -+ #if DEBUG_MATCHING -+ if (fn != filename) -+ fprintf (stderr, "glob_filename: glob_dirscan: fn (%s) != filename (%s)\n", fn ? fn : "(null)", filename); -+ #endif -+ filename = fn; -+ } -+ #endif -+ - if (filename == NULL) - { -*** bash-4.3/lib/glob/gmisc.c 2014-03-28 10:54:23.000000000 -0400 ---- lib/glob/gmisc.c 2014-05-02 09:35:57.000000000 -0400 -*************** -*** 43,46 **** ---- 43,48 ---- - #define WRPAREN L')' - -+ extern char *glob_patscan __P((char *, char *, int)); -+ - /* Return 1 of the first character of WSTRING could match the first - character of pattern WPAT. Wide character version. */ -*************** -*** 376,377 **** ---- 378,410 ---- - return matlen; - } -+ -+ /* Skip characters in PAT and return the final occurrence of DIRSEP. This -+ is only called when extended_glob is set, so we have to skip over extglob -+ patterns x(...) */ -+ char * -+ glob_dirscan (pat, dirsep) -+ char *pat; -+ int dirsep; -+ { -+ char *p, *d, *pe, *se; -+ -+ d = pe = se = 0; -+ for (p = pat; p && *p; p++) -+ { -+ if (extglob_pattern_p (p)) -+ { -+ if (se == 0) -+ se = p + strlen (p) - 1; -+ pe = glob_patscan (p + 2, se, 0); -+ if (pe == 0) -+ continue; -+ else if (*pe == 0) -+ break; -+ p = pe - 1; /* will do increment above */ -+ continue; -+ } -+ if (*p == dirsep) -+ d = p; -+ } -+ return d; -+ } - -*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 15 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 16 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-017 - -Bug-Reported-by: Dan Douglas -Bug-Reference-ID: <7781746.RhfoTROLxF@smorgbox> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-05/msg00026.html - -Bug-Description: - -The code that creates local variables should not clear the `invisible' -attribute when returning an existing local variable. Let the code that -actually assigns a value clear it. - -Patch (apply with `patch -p0'): -*** bash-4.3/variables.c 2014-02-14 11:55:12.000000000 -0500 ---- variables.c 2014-05-07 10:53:57.000000000 -0400 -*************** -*** 2198,2205 **** - old_var = find_variable (name); - if (old_var && local_p (old_var) && old_var->context == variable_context) -! { -! VUNSETATTR (old_var, att_invisible); /* XXX */ -! return (old_var); -! } - - was_tmpvar = old_var && tempvar_p (old_var); ---- 2260,2264 ---- - old_var = find_variable (name); - if (old_var && local_p (old_var) && old_var->context == variable_context) -! return (old_var); - - was_tmpvar = old_var && tempvar_p (old_var); - -*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 16 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 17 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-018 - -Bug-Reported-by: Geir Hauge -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-05/msg00040.html - -Bug-Description: - -When assigning an array variable using the compound assignment syntax, -but using `declare' with the rhs of the compound assignment quoted, the -shell did not mark the variable as visible after successfully performing -the assignment. - -Patch (apply with `patch -p0'): -*** bash-4.3/arrayfunc.c 2014-03-28 10:54:21.000000000 -0400 ---- arrayfunc.c 2014-05-12 11:19:00.000000000 -0400 -*************** -*** 180,183 **** ---- 180,184 ---- - FREE (newval); - -+ VUNSETATTR (entry, att_invisible); /* no longer invisible */ - return (entry); - } - -*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 17 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 18 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-019 - -Bug-Reported-by: John Lenton -Bug-Reference-ID: -Bug-Reference-URL: https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1317476 - -Bug-Description: - -The -t timeout option to `read' does not work when the -e option is used. - -Patch (apply with `patch -p0'): - -*** bash-4.3/lib/readline/input.c 2014-01-10 15:07:08.000000000 -0500 ---- lib/readline/input.c 2014-05-22 18:40:59.000000000 -0400 -*************** -*** 535,540 **** ---- 538,551 ---- - else if (_rl_caught_signal == SIGHUP || _rl_caught_signal == SIGTERM) - return (RL_ISSTATE (RL_STATE_READCMD) ? READERR : EOF); -+ /* keyboard-generated signals of interest */ - else if (_rl_caught_signal == SIGINT || _rl_caught_signal == SIGQUIT) - RL_CHECK_SIGNALS (); -+ /* non-keyboard-generated signals of interest */ -+ else if (_rl_caught_signal == SIGALRM -+ #if defined (SIGVTALRM) -+ || _rl_caught_signal == SIGVTALRM -+ #endif -+ ) -+ RL_CHECK_SIGNALS (); - - if (rl_signal_event_hook) -*** bash-4.3/builtins/read.def 2013-09-02 11:54:00.000000000 -0400 ---- builtins/read.def 2014-05-08 11:43:35.000000000 -0400 -*************** -*** 443,447 **** - #if defined (READLINE) - if (edit) -! add_unwind_protect (reset_attempted_completion_function, (char *)NULL); - #endif - falarm (tmsec, tmusec); ---- 443,450 ---- - #if defined (READLINE) - if (edit) -! { -! add_unwind_protect (reset_attempted_completion_function, (char *)NULL); -! add_unwind_protect (bashline_reset_event_hook, (char *)NULL); -! } - #endif - falarm (tmsec, tmusec); -*************** -*** 1022,1025 **** ---- 1025,1029 ---- - old_attempted_completion_function = rl_attempted_completion_function; - rl_attempted_completion_function = (rl_completion_func_t *)NULL; -+ bashline_set_event_hook (); - if (itext) - { -*************** -*** 1033,1036 **** ---- 1037,1041 ---- - rl_attempted_completion_function = old_attempted_completion_function; - old_attempted_completion_function = (rl_completion_func_t *)NULL; -+ bashline_reset_event_hook (); - - if (ret == 0) -*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 18 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 19 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-020 - -Bug-Reported-by: Jared Yanovich -Bug-Reference-ID: <20140417073654.GB26875@nightderanger.psc.edu> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-04/msg00065.html - -Bug-Description: - -When PS2 contains a command substitution, here-documents entered in an -interactive shell can sometimes cause a segmentation fault. - -Patch (apply with `patch -p0'): - -*** bash-4.3/shell.h 2012-12-25 21:11:01.000000000 -0500 ---- shell.h 2014-06-03 09:24:28.000000000 -0400 -*************** -*** 169,173 **** - int expand_aliases; - int echo_input_at_read; -! - } sh_parser_state_t; - ---- 169,174 ---- - int expand_aliases; - int echo_input_at_read; -! int need_here_doc; -! - } sh_parser_state_t; - -*** bash-4.3/parse.y 2014-05-14 09:16:40.000000000 -0400 ---- parse.y 2014-04-30 09:27:59.000000000 -0400 -*************** -*** 2643,2647 **** - - r = 0; -! while (need_here_doc) - { - parser_state |= PST_HEREDOC; ---- 2643,2647 ---- - - r = 0; -! while (need_here_doc > 0) - { - parser_state |= PST_HEREDOC; -*************** -*** 6076,6079 **** ---- 6076,6080 ---- - ps->expand_aliases = expand_aliases; - ps->echo_input_at_read = echo_input_at_read; -+ ps->need_here_doc = need_here_doc; - - ps->token = token; -*************** -*** 6124,6127 **** ---- 6125,6129 ---- - expand_aliases = ps->expand_aliases; - echo_input_at_read = ps->echo_input_at_read; -+ need_here_doc = ps->need_here_doc; - - FREE (token); -*** bash-4.3/y.tab.c 2014-04-07 11:56:12.000000000 -0400 ---- y.tab.c 2014-07-30 09:55:57.000000000 -0400 -*************** -*** 4955,4959 **** - - r = 0; -! while (need_here_doc) - { - parser_state |= PST_HEREDOC; ---- 5151,5155 ---- - - r = 0; -! while (need_here_doc > 0) - { - parser_state |= PST_HEREDOC; -*************** -*** 8388,8391 **** ---- 8584,8588 ---- - ps->expand_aliases = expand_aliases; - ps->echo_input_at_read = echo_input_at_read; -+ ps->need_here_doc = need_here_doc; - - ps->token = token; -*************** -*** 8436,8439 **** ---- 8633,8637 ---- - expand_aliases = ps->expand_aliases; - echo_input_at_read = ps->echo_input_at_read; -+ need_here_doc = ps->need_here_doc; - - FREE (token); -*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 19 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 20 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-021 - -Bug-Reported-by: Jared Yanovich -Bug-Reference-ID: <20140625225019.GJ17044@nightderanger.psc.edu> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-06/msg00070.html - -Bug-Description: - -When the readline `revert-all-at-newline' option is set, pressing newline -when the current line is one retrieved from history results in a double free -and a segmentation fault. - -Patch (apply with `patch -p0'): - -*** bash-4.3/lib/readline/misc.c 2012-09-01 18:03:11.000000000 -0400 ---- lib/readline/misc.c 2014-06-30 13:41:19.000000000 -0400 -*************** -*** 462,465 **** ---- 462,466 ---- - /* Set up rl_line_buffer and other variables from history entry */ - rl_replace_from_history (entry, 0); /* entry->line is now current */ -+ entry->data = 0; /* entry->data is now current undo list */ - /* Undo all changes to this history entry */ - while (rl_undo_list) -*************** -*** 469,473 **** - FREE (entry->line); - entry->line = savestring (rl_line_buffer); -- entry->data = 0; - } - entry = previous_history (); ---- 470,473 ---- - -*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 20 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 21 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-022 - -Bug-Reported-by: scorp.dev.null@gmail.com -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-06/msg00061.html - -Bug-Description: - -Using nested pipelines within loops with the `lastpipe' option set can result -in a segmentation fault. - -Patch (apply with `patch -p0'): - -*** bash-4.3/execute_cmd.c 2014-01-31 10:54:52.000000000 -0500 ---- execute_cmd.c 2014-06-19 08:05:49.000000000 -0400 -*************** -*** 2410,2414 **** - lstdin = wait_for (lastpid); - #if defined (JOB_CONTROL) -! exec_result = job_exit_status (lastpipe_jid); - #endif - unfreeze_jobs_list (); ---- 2425,2438 ---- - lstdin = wait_for (lastpid); - #if defined (JOB_CONTROL) -! /* If wait_for removes the job from the jobs table, use result of last -! command as pipeline's exit status as usual. The jobs list can get -! frozen and unfrozen at inconvenient times if there are multiple pipelines -! running simultaneously. */ -! if (INVALID_JOB (lastpipe_jid) == 0) -! exec_result = job_exit_status (lastpipe_jid); -! else if (pipefail_opt) -! exec_result = exec_result | lstdin; /* XXX */ -! /* otherwise we use exec_result */ -! - #endif - unfreeze_jobs_list (); -*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 21 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 22 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-023 - -Bug-Reported-by: Tim Friske -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-06/msg00056.html - -Bug-Description: - -Bash does not correctly parse process substitution constructs that contain -unbalanced parentheses as part of the contained command. - -Patch (apply with `patch -p0'): - -*** bash-4.3/subst.h 2014-01-11 21:02:27.000000000 -0500 ---- subst.h 2014-07-20 17:25:01.000000000 -0400 -*************** -*** 83,87 **** - Start extracting at (SINDEX) as if we had just seen "<(". - Make (SINDEX) get the position just after the matching ")". */ -! extern char *extract_process_subst __P((char *, char *, int *)); - #endif /* PROCESS_SUBSTITUTION */ - ---- 83,87 ---- - Start extracting at (SINDEX) as if we had just seen "<(". - Make (SINDEX) get the position just after the matching ")". */ -! extern char *extract_process_subst __P((char *, char *, int *, int)); - #endif /* PROCESS_SUBSTITUTION */ - -*** bash-4.3/subst.c 2014-05-15 08:26:45.000000000 -0400 ---- subst.c 2014-07-20 17:26:44.000000000 -0400 -*************** -*** 1193,1202 **** - Make (SINDEX) get the position of the matching ")". */ /*))*/ - char * -! extract_process_subst (string, starter, sindex) - char *string; - char *starter; - int *sindex; - { - return (extract_delimited_string (string, sindex, starter, "(", ")", SX_COMMAND)); - } - #endif /* PROCESS_SUBSTITUTION */ ---- 1193,1208 ---- - Make (SINDEX) get the position of the matching ")". */ /*))*/ - char * -! extract_process_subst (string, starter, sindex, xflags) - char *string; - char *starter; - int *sindex; -+ int xflags; - { -+ #if 0 - return (extract_delimited_string (string, sindex, starter, "(", ")", SX_COMMAND)); -+ #else -+ xflags |= (no_longjmp_on_fatal_error ? SX_NOLONGJMP : 0); -+ return (xparse_dolparen (string, string+*sindex, sindex, xflags)); -+ #endif - } - #endif /* PROCESS_SUBSTITUTION */ -*************** -*** 1786,1790 **** - if (string[si] == '\0') - CQ_RETURN(si); -! temp = extract_process_subst (string, (c == '<') ? "<(" : ">(", &si); - free (temp); /* no SX_ALLOC here */ - i = si; ---- 1792,1796 ---- - if (string[si] == '\0') - CQ_RETURN(si); -! temp = extract_process_subst (string, (c == '<') ? "<(" : ">(", &si, 0); - free (temp); /* no SX_ALLOC here */ - i = si; -*************** -*** 8250,8254 **** - t_index = sindex + 1; /* skip past both '<' and LPAREN */ - -! temp1 = extract_process_subst (string, (c == '<') ? "<(" : ">(", &t_index); /*))*/ - sindex = t_index; - ---- 8256,8260 ---- - t_index = sindex + 1; /* skip past both '<' and LPAREN */ - -! temp1 = extract_process_subst (string, (c == '<') ? "<(" : ">(", &t_index, 0); /*))*/ - sindex = t_index; - -*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 22 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 23 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-024 - -Bug-Reported-by: Corentin Peuvrel -Bug-Reference-ID: <53CE9E5D.6050203@pom-monitoring.com> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-07/msg00021.html - -Bug-Description: - -Indirect variable references do not work correctly if the reference -variable expands to an array reference using a subscript other than 0 -(e.g., foo='bar[1]' ; echo ${!foo}). - -Patch (apply with `patch -p0'): - -*** bash-4.3/subst.c 2014-06-03 09:32:44.000000000 -0400 ---- subst.c 2014-07-23 09:58:19.000000000 -0400 -*************** -*** 7375,7379 **** - - if (want_indir) -! tdesc = parameter_brace_expand_indir (name + 1, var_is_special, quoted, quoted_dollar_atp, contains_dollar_at); - else - tdesc = parameter_brace_expand_word (name, var_is_special, quoted, PF_IGNUNBOUND|(pflags&(PF_NOSPLIT2|PF_ASSIGNRHS)), &ind); ---- 7445,7455 ---- - - if (want_indir) -! { -! tdesc = parameter_brace_expand_indir (name + 1, var_is_special, quoted, quoted_dollar_atp, contains_dollar_at); -! /* Turn off the W_ARRAYIND flag because there is no way for this function -! to return the index we're supposed to be using. */ -! if (tdesc && tdesc->flags) -! tdesc->flags &= ~W_ARRAYIND; -! } - else - tdesc = parameter_brace_expand_word (name, var_is_special, quoted, PF_IGNUNBOUND|(pflags&(PF_NOSPLIT2|PF_ASSIGNRHS)), &ind); -*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 23 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 24 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-025 - -Bug-Reported-by: Stephane Chazelas -Bug-Reference-ID: -Bug-Reference-URL: - -Bug-Description: - -Under certain circumstances, bash will execute user code while processing the -environment for exported function definitions. - -Patch (apply with `patch -p0'): - -*** bash-4.3/builtins/common.h 2013-07-08 16:54:47.000000000 -0400 ---- builtins/common.h 2014-09-12 14:25:47.000000000 -0400 -*************** -*** 34,37 **** ---- 49,54 ---- - #define SEVAL_PARSEONLY 0x020 - #define SEVAL_NOLONGJMP 0x040 -+ #define SEVAL_FUNCDEF 0x080 /* only allow function definitions */ -+ #define SEVAL_ONECMD 0x100 /* only allow a single command */ - - /* Flags for describe_command, shared between type.def and command.def */ -*** bash-4.3/builtins/evalstring.c 2014-02-11 09:42:10.000000000 -0500 ---- builtins/evalstring.c 2014-09-14 14:15:13.000000000 -0400 -*************** -*** 309,312 **** ---- 313,324 ---- - struct fd_bitmap *bitmap; - -+ if ((flags & SEVAL_FUNCDEF) && command->type != cm_function_def) -+ { -+ internal_warning ("%s: ignoring function definition attempt", from_file); -+ should_jump_to_top_level = 0; -+ last_result = last_command_exit_value = EX_BADUSAGE; -+ break; -+ } -+ - bitmap = new_fd_bitmap (FD_BITMAP_SIZE); - begin_unwind_frame ("pe_dispose"); -*************** -*** 369,372 **** ---- 381,387 ---- - dispose_fd_bitmap (bitmap); - discard_unwind_frame ("pe_dispose"); -+ -+ if (flags & SEVAL_ONECMD) -+ break; - } - } -*** bash-4.3/variables.c 2014-05-15 08:26:50.000000000 -0400 ---- variables.c 2014-09-14 14:23:35.000000000 -0400 -*************** -*** 359,369 **** - strcpy (temp_string + char_index + 1, string); - -! if (posixly_correct == 0 || legal_identifier (name)) -! parse_and_execute (temp_string, name, SEVAL_NONINT|SEVAL_NOHIST); -! -! /* Ancient backwards compatibility. Old versions of bash exported -! functions like name()=() {...} */ -! if (name[char_index - 1] == ')' && name[char_index - 2] == '(') -! name[char_index - 2] = '\0'; - - if (temp_var = find_function (name)) ---- 364,372 ---- - strcpy (temp_string + char_index + 1, string); - -! /* Don't import function names that are invalid identifiers from the -! environment, though we still allow them to be defined as shell -! variables. */ -! if (legal_identifier (name)) -! parse_and_execute (temp_string, name, SEVAL_NONINT|SEVAL_NOHIST|SEVAL_FUNCDEF|SEVAL_ONECMD); - - if (temp_var = find_function (name)) -*************** -*** 382,389 **** - report_error (_("error importing function definition for `%s'"), name); - } -- -- /* ( */ -- if (name[char_index - 1] == ')' && name[char_index - 2] == '\0') -- name[char_index - 2] = '('; /* ) */ - } - #if defined (ARRAY_VARS) ---- 385,388 ---- -*** bash-4.3/subst.c 2014-08-11 11:16:35.000000000 -0400 ---- subst.c 2014-09-12 15:31:04.000000000 -0400 -*************** -*** 8048,8052 **** - goto return0; - } -! else if (var = find_variable_last_nameref (temp1)) - { - temp = nameref_cell (var); ---- 8118,8124 ---- - goto return0; - } -! else if (var && (invisible_p (var) || var_isset (var) == 0)) -! temp = (char *)NULL; -! else if ((var = find_variable_last_nameref (temp1)) && var_isset (var) && invisible_p (var) == 0) - { - temp = nameref_cell (var); -*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 24 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 25 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-026 - -Bug-Reported-by: Tavis Ormandy -Bug-Reference-ID: -Bug-Reference-URL: http://twitter.com/taviso/statuses/514887394294652929 - -Bug-Description: - -Under certain circumstances, bash can incorrectly save a lookahead character and -return it on a subsequent call, even when reading a new line. - -Patch (apply with `patch -p0'): - -*** bash-4.3/parse.y 2014-07-30 10:14:31.000000000 -0400 ---- parse.y 2014-09-25 20:20:21.000000000 -0400 -*************** -*** 2954,2957 **** ---- 2954,2959 ---- - word_desc_to_read = (WORD_DESC *)NULL; - -+ eol_ungetc_lookahead = 0; -+ - current_token = '\n'; /* XXX */ - last_read_token = '\n'; -*** bash-4.3/y.tab.c 2014-07-30 10:14:32.000000000 -0400 ---- y.tab.c 2014-09-25 20:21:48.000000000 -0400 -*************** -*** 5266,5269 **** ---- 5266,5271 ---- - word_desc_to_read = (WORD_DESC *)NULL; - -+ eol_ungetc_lookahead = 0; -+ - current_token = '\n'; /* XXX */ - last_read_token = '\n'; -*************** -*** 8540,8542 **** - } - #endif /* HANDLE_MULTIBYTE */ -- ---- 8542,8543 ---- -*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 25 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 26 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-027 - -Bug-Reported-by: Florian Weimer -Bug-Reference-ID: -Bug-Reference-URL: - -Bug-Description: - -This patch changes the encoding bash uses for exported functions to avoid -clashes with shell variables and to avoid depending only on an environment -variable's contents to determine whether or not to interpret it as a shell -function. - -Patch (apply with `patch -p0'): - -*** bash-4.3/variables.c 2014-09-25 23:02:18.000000000 -0400 ---- variables.c 2014-09-27 20:52:04.000000000 -0400 -*************** -*** 84,87 **** ---- 84,92 ---- - #define ifsname(s) ((s)[0] == 'I' && (s)[1] == 'F' && (s)[2] == 'S' && (s)[3] == '\0') - -+ #define BASHFUNC_PREFIX "BASH_FUNC_" -+ #define BASHFUNC_PREFLEN 10 /* == strlen(BASHFUNC_PREFIX */ -+ #define BASHFUNC_SUFFIX "%%" -+ #define BASHFUNC_SUFFLEN 2 /* == strlen(BASHFUNC_SUFFIX) */ -+ - extern char **environ; - -*************** -*** 280,284 **** - static void dispose_temporary_env __P((sh_free_func_t *)); - -! static inline char *mk_env_string __P((const char *, const char *)); - static char **make_env_array_from_var_list __P((SHELL_VAR **)); - static char **make_var_export_array __P((VAR_CONTEXT *)); ---- 285,289 ---- - static void dispose_temporary_env __P((sh_free_func_t *)); - -! static inline char *mk_env_string __P((const char *, const char *, int)); - static char **make_env_array_from_var_list __P((SHELL_VAR **)); - static char **make_var_export_array __P((VAR_CONTEXT *)); -*************** -*** 350,369 **** - /* If exported function, define it now. Don't import functions from - the environment in privileged mode. */ -! if (privmode == 0 && read_but_dont_execute == 0 && STREQN ("() {", string, 4)) - { - string_length = strlen (string); -! temp_string = (char *)xmalloc (3 + string_length + char_index); - -! strcpy (temp_string, name); -! temp_string[char_index] = ' '; -! strcpy (temp_string + char_index + 1, string); - - /* Don't import function names that are invalid identifiers from the - environment, though we still allow them to be defined as shell - variables. */ -! if (legal_identifier (name)) -! parse_and_execute (temp_string, name, SEVAL_NONINT|SEVAL_NOHIST|SEVAL_FUNCDEF|SEVAL_ONECMD); - -! if (temp_var = find_function (name)) - { - VSETATTR (temp_var, (att_exported|att_imported)); ---- 355,385 ---- - /* If exported function, define it now. Don't import functions from - the environment in privileged mode. */ -! if (privmode == 0 && read_but_dont_execute == 0 && -! STREQN (BASHFUNC_PREFIX, name, BASHFUNC_PREFLEN) && -! STREQ (BASHFUNC_SUFFIX, name + char_index - BASHFUNC_SUFFLEN) && -! STREQN ("() {", string, 4)) - { -+ size_t namelen; -+ char *tname; /* desired imported function name */ -+ -+ namelen = char_index - BASHFUNC_PREFLEN - BASHFUNC_SUFFLEN; -+ -+ tname = name + BASHFUNC_PREFLEN; /* start of func name */ -+ tname[namelen] = '\0'; /* now tname == func name */ -+ - string_length = strlen (string); -! temp_string = (char *)xmalloc (namelen + string_length + 2); - -! memcpy (temp_string, tname, namelen); -! temp_string[namelen] = ' '; -! memcpy (temp_string + namelen + 1, string, string_length + 1); - - /* Don't import function names that are invalid identifiers from the - environment, though we still allow them to be defined as shell - variables. */ -! if (absolute_program (tname) == 0 && (posixly_correct == 0 || legal_identifier (tname))) -! parse_and_execute (temp_string, tname, SEVAL_NONINT|SEVAL_NOHIST|SEVAL_FUNCDEF|SEVAL_ONECMD); - -! if (temp_var = find_function (tname)) - { - VSETATTR (temp_var, (att_exported|att_imported)); -*************** -*** 378,383 **** - } - last_command_exit_value = 1; -! report_error (_("error importing function definition for `%s'"), name); - } - } - #if defined (ARRAY_VARS) ---- 394,402 ---- - } - last_command_exit_value = 1; -! report_error (_("error importing function definition for `%s'"), tname); - } -+ -+ /* Restore original suffix */ -+ tname[namelen] = BASHFUNC_SUFFIX[0]; - } - #if defined (ARRAY_VARS) -*************** -*** 2955,2959 **** - - INVALIDATE_EXPORTSTR (var); -! var->exportstr = mk_env_string (name, value); - - array_needs_making = 1; ---- 2974,2978 ---- - - INVALIDATE_EXPORTSTR (var); -! var->exportstr = mk_env_string (name, value, 0); - - array_needs_making = 1; -*************** -*** 3853,3871 **** - - static inline char * -! mk_env_string (name, value) - const char *name, *value; - { -! int name_len, value_len; -! char *p; - - name_len = strlen (name); - value_len = STRLEN (value); -! p = (char *)xmalloc (2 + name_len + value_len); -! strcpy (p, name); -! p[name_len] = '='; - if (value && *value) -! strcpy (p + name_len + 1, value); - else -! p[name_len + 1] = '\0'; - return (p); - } ---- 3872,3911 ---- - - static inline char * -! mk_env_string (name, value, isfunc) - const char *name, *value; -+ int isfunc; - { -! size_t name_len, value_len; -! char *p, *q; - - name_len = strlen (name); - value_len = STRLEN (value); -! -! /* If we are exporting a shell function, construct the encoded function -! name. */ -! if (isfunc && value) -! { -! p = (char *)xmalloc (BASHFUNC_PREFLEN + name_len + BASHFUNC_SUFFLEN + value_len + 2); -! q = p; -! memcpy (q, BASHFUNC_PREFIX, BASHFUNC_PREFLEN); -! q += BASHFUNC_PREFLEN; -! memcpy (q, name, name_len); -! q += name_len; -! memcpy (q, BASHFUNC_SUFFIX, BASHFUNC_SUFFLEN); -! q += BASHFUNC_SUFFLEN; -! } -! else -! { -! p = (char *)xmalloc (2 + name_len + value_len); -! memcpy (p, name, name_len); -! q = p + name_len; -! } -! -! q[0] = '='; - if (value && *value) -! memcpy (q + 1, value, value_len + 1); - else -! q[1] = '\0'; -! - return (p); - } -*************** -*** 3953,3957 **** - using the cached exportstr... */ - list[list_index] = USE_EXPORTSTR ? savestring (value) -! : mk_env_string (var->name, value); - - if (USE_EXPORTSTR == 0) ---- 3993,3997 ---- - using the cached exportstr... */ - list[list_index] = USE_EXPORTSTR ? savestring (value) -! : mk_env_string (var->name, value, function_p (var)); - - if (USE_EXPORTSTR == 0) -*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 26 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 27 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-028 - -Bug-Reported-by: Florian Weimer -Bug-Reference-ID: -Bug-Reference-URL: - -Bug-Description: - -There are two local buffer overflows in parse.y that can cause the shell -to dump core when given many here-documents attached to a single command -or many nested loops. - -Patch (apply with `patch -p0'): - -*** bash-4.3/parse.y 2014-09-25 23:02:35.000000000 -0400 ---- parse.y 2014-09-29 16:47:03.000000000 -0400 -*************** -*** 169,172 **** ---- 169,175 ---- - static int reserved_word_acceptable __P((int)); - static int yylex __P((void)); -+ -+ static void push_heredoc __P((REDIRECT *)); -+ static char *mk_alexpansion __P((char *)); - static int alias_expand_token __P((char *)); - static int time_command_acceptable __P((void)); -*************** -*** 266,270 **** - /* Variables to manage the task of reading here documents, because we need to - defer the reading until after a complete command has been collected. */ -! static REDIRECT *redir_stack[10]; - int need_here_doc; - ---- 269,275 ---- - /* Variables to manage the task of reading here documents, because we need to - defer the reading until after a complete command has been collected. */ -! #define HEREDOC_MAX 16 -! -! static REDIRECT *redir_stack[HEREDOC_MAX]; - int need_here_doc; - -*************** -*** 308,312 **** - index is decremented after a case, select, or for command is parsed. */ - #define MAX_CASE_NEST 128 -! static int word_lineno[MAX_CASE_NEST]; - static int word_top = -1; - ---- 313,317 ---- - index is decremented after a case, select, or for command is parsed. */ - #define MAX_CASE_NEST 128 -! static int word_lineno[MAX_CASE_NEST+1]; - static int word_top = -1; - -*************** -*** 521,525 **** - redir.filename = $2; - $$ = make_redirection (source, r_reading_until, redir, 0); -! redir_stack[need_here_doc++] = $$; - } - | NUMBER LESS_LESS WORD ---- 526,530 ---- - redir.filename = $2; - $$ = make_redirection (source, r_reading_until, redir, 0); -! push_heredoc ($$); - } - | NUMBER LESS_LESS WORD -*************** -*** 528,532 **** - redir.filename = $3; - $$ = make_redirection (source, r_reading_until, redir, 0); -! redir_stack[need_here_doc++] = $$; - } - | REDIR_WORD LESS_LESS WORD ---- 533,537 ---- - redir.filename = $3; - $$ = make_redirection (source, r_reading_until, redir, 0); -! push_heredoc ($$); - } - | REDIR_WORD LESS_LESS WORD -*************** -*** 535,539 **** - redir.filename = $3; - $$ = make_redirection (source, r_reading_until, redir, REDIR_VARASSIGN); -! redir_stack[need_here_doc++] = $$; - } - | LESS_LESS_MINUS WORD ---- 540,544 ---- - redir.filename = $3; - $$ = make_redirection (source, r_reading_until, redir, REDIR_VARASSIGN); -! push_heredoc ($$); - } - | LESS_LESS_MINUS WORD -*************** -*** 542,546 **** - redir.filename = $2; - $$ = make_redirection (source, r_deblank_reading_until, redir, 0); -! redir_stack[need_here_doc++] = $$; - } - | NUMBER LESS_LESS_MINUS WORD ---- 547,551 ---- - redir.filename = $2; - $$ = make_redirection (source, r_deblank_reading_until, redir, 0); -! push_heredoc ($$); - } - | NUMBER LESS_LESS_MINUS WORD -*************** -*** 549,553 **** - redir.filename = $3; - $$ = make_redirection (source, r_deblank_reading_until, redir, 0); -! redir_stack[need_here_doc++] = $$; - } - | REDIR_WORD LESS_LESS_MINUS WORD ---- 554,558 ---- - redir.filename = $3; - $$ = make_redirection (source, r_deblank_reading_until, redir, 0); -! push_heredoc ($$); - } - | REDIR_WORD LESS_LESS_MINUS WORD -*************** -*** 556,560 **** - redir.filename = $3; - $$ = make_redirection (source, r_deblank_reading_until, redir, REDIR_VARASSIGN); -! redir_stack[need_here_doc++] = $$; - } - | LESS_LESS_LESS WORD ---- 561,565 ---- - redir.filename = $3; - $$ = make_redirection (source, r_deblank_reading_until, redir, REDIR_VARASSIGN); -! push_heredoc ($$); - } - | LESS_LESS_LESS WORD -*************** -*** 2637,2640 **** ---- 2642,2660 ---- - static int esacs_needed_count; - -+ static void -+ push_heredoc (r) -+ REDIRECT *r; -+ { -+ if (need_here_doc >= HEREDOC_MAX) -+ { -+ last_command_exit_value = EX_BADUSAGE; -+ need_here_doc = 0; -+ report_syntax_error (_("maximum here-document count exceeded")); -+ reset_parser (); -+ exit_shell (last_command_exit_value); -+ } -+ redir_stack[need_here_doc++] = r; -+ } -+ - void - gather_here_documents () -*** bash-4.3/y.tab.c 2014-10-01 11:38:24.000000000 -0400 ---- y.tab.c 2014-10-01 12:46:11.000000000 -0400 -*************** -*** 169,173 **** - - /* Copy the first part of user declarations. */ -! #line 21 "/usr/homes/chet/src/bash/src/parse.y" - - #include "config.h" ---- 169,173 ---- - - /* Copy the first part of user declarations. */ -! #line 21 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - - #include "config.h" -*************** -*** 320,323 **** ---- 320,326 ---- - static int reserved_word_acceptable __P((int)); - static int yylex __P((void)); -+ -+ static void push_heredoc __P((REDIRECT *)); -+ static char *mk_alexpansion __P((char *)); - static int alias_expand_token __P((char *)); - static int time_command_acceptable __P((void)); -*************** -*** 417,421 **** - /* Variables to manage the task of reading here documents, because we need to - defer the reading until after a complete command has been collected. */ -! static REDIRECT *redir_stack[10]; - int need_here_doc; - ---- 420,426 ---- - /* Variables to manage the task of reading here documents, because we need to - defer the reading until after a complete command has been collected. */ -! #define HEREDOC_MAX 16 -! -! static REDIRECT *redir_stack[HEREDOC_MAX]; - int need_here_doc; - -*************** -*** 459,463 **** - index is decremented after a case, select, or for command is parsed. */ - #define MAX_CASE_NEST 128 -! static int word_lineno[MAX_CASE_NEST]; - static int word_top = -1; - ---- 464,468 ---- - index is decremented after a case, select, or for command is parsed. */ - #define MAX_CASE_NEST 128 -! static int word_lineno[MAX_CASE_NEST+1]; - static int word_top = -1; - -*************** -*** 493,497 **** - #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED - typedef union YYSTYPE -! #line 324 "/usr/homes/chet/src/bash/src/parse.y" - { - WORD_DESC *word; /* the word that we read. */ ---- 498,502 ---- - #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED - typedef union YYSTYPE -! #line 329 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - WORD_DESC *word; /* the word that we read. */ -*************** -*** 504,508 **** - } - /* Line 193 of yacc.c. */ -! #line 507 "y.tab.c" - YYSTYPE; - # define yystype YYSTYPE /* obsolescent; will be withdrawn */ ---- 509,513 ---- - } - /* Line 193 of yacc.c. */ -! #line 512 "y.tab.c" - YYSTYPE; - # define yystype YYSTYPE /* obsolescent; will be withdrawn */ -*************** -*** 517,521 **** - - /* Line 216 of yacc.c. */ -! #line 520 "y.tab.c" - - #ifdef short ---- 522,526 ---- - - /* Line 216 of yacc.c. */ -! #line 525 "y.tab.c" - - #ifdef short -*************** -*** 887,907 **** - static const yytype_uint16 yyrline[] = - { -! 0, 377, 377, 388, 397, 412, 422, 424, 428, 434, -! 440, 446, 452, 458, 464, 470, 476, 482, 488, 494, -! 500, 506, 512, 518, 525, 532, 539, 546, 553, 560, -! 566, 572, 578, 584, 590, 596, 602, 608, 614, 620, -! 626, 632, 638, 644, 650, 656, 662, 668, 674, 680, -! 686, 692, 700, 702, 704, 708, 712, 723, 725, 729, -! 731, 733, 749, 751, 755, 757, 759, 761, 763, 765, -! 767, 769, 771, 773, 775, 779, 784, 789, 794, 799, -! 804, 809, 814, 821, 826, 831, 836, 843, 848, 853, -! 858, 863, 868, 875, 880, 885, 892, 895, 898, 902, -! 904, 935, 942, 947, 964, 969, 986, 993, 995, 997, -! 1002, 1006, 1010, 1014, 1016, 1018, 1022, 1023, 1027, 1029, -! 1031, 1033, 1037, 1039, 1041, 1043, 1045, 1047, 1051, 1053, -! 1062, 1070, 1071, 1077, 1078, 1085, 1089, 1091, 1093, 1100, -! 1102, 1104, 1108, 1109, 1112, 1114, 1116, 1120, 1121, 1130, -! 1143, 1159, 1174, 1176, 1178, 1185, 1188, 1192, 1194, 1200, -! 1206, 1223, 1243, 1245, 1268, 1272, 1274, 1276 - }; - #endif ---- 892,912 ---- - static const yytype_uint16 yyrline[] = - { -! 0, 382, 382, 393, 402, 417, 427, 429, 433, 439, -! 445, 451, 457, 463, 469, 475, 481, 487, 493, 499, -! 505, 511, 517, 523, 530, 537, 544, 551, 558, 565, -! 571, 577, 583, 589, 595, 601, 607, 613, 619, 625, -! 631, 637, 643, 649, 655, 661, 667, 673, 679, 685, -! 691, 697, 705, 707, 709, 713, 717, 728, 730, 734, -! 736, 738, 754, 756, 760, 762, 764, 766, 768, 770, -! 772, 774, 776, 778, 780, 784, 789, 794, 799, 804, -! 809, 814, 819, 826, 831, 836, 841, 848, 853, 858, -! 863, 868, 873, 880, 885, 890, 897, 900, 903, 907, -! 909, 940, 947, 952, 969, 974, 991, 998, 1000, 1002, -! 1007, 1011, 1015, 1019, 1021, 1023, 1027, 1028, 1032, 1034, -! 1036, 1038, 1042, 1044, 1046, 1048, 1050, 1052, 1056, 1058, -! 1067, 1075, 1076, 1082, 1083, 1090, 1094, 1096, 1098, 1105, -! 1107, 1109, 1113, 1114, 1117, 1119, 1121, 1125, 1126, 1135, -! 1148, 1164, 1179, 1181, 1183, 1190, 1193, 1197, 1199, 1205, -! 1211, 1228, 1248, 1250, 1273, 1277, 1279, 1281 - }; - #endif -*************** -*** 2094,2098 **** - { - case 2: -! #line 378 "/usr/homes/chet/src/bash/src/parse.y" - { - /* Case of regular command. Discard the error ---- 2099,2103 ---- - { - case 2: -! #line 383 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - /* Case of regular command. Discard the error -*************** -*** 2108,2112 **** - - case 3: -! #line 389 "/usr/homes/chet/src/bash/src/parse.y" - { - /* Case of regular command, but not a very ---- 2113,2117 ---- - - case 3: -! #line 394 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - /* Case of regular command, but not a very -*************** -*** 2120,2124 **** - - case 4: -! #line 398 "/usr/homes/chet/src/bash/src/parse.y" - { - /* Error during parsing. Return NULL command. */ ---- 2125,2129 ---- - - case 4: -! #line 403 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - /* Error during parsing. Return NULL command. */ -*************** -*** 2138,2142 **** - - case 5: -! #line 413 "/usr/homes/chet/src/bash/src/parse.y" - { - /* Case of EOF seen by itself. Do ignoreeof or ---- 2143,2147 ---- - - case 5: -! #line 418 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - /* Case of EOF seen by itself. Do ignoreeof or -*************** -*** 2149,2163 **** - - case 6: -! #line 423 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), (WORD_LIST *)NULL); } - break; - - case 7: -! #line 425 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(2) - (2)].word), (yyvsp[(1) - (2)].word_list)); } - break; - - case 8: -! #line 429 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 1; ---- 2154,2168 ---- - - case 6: -! #line 428 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), (WORD_LIST *)NULL); } - break; - - case 7: -! #line 430 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(2) - (2)].word), (yyvsp[(1) - (2)].word_list)); } - break; - - case 8: -! #line 434 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; -*************** -*** 2168,2172 **** - - case 9: -! #line 435 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 0; ---- 2173,2177 ---- - - case 9: -! #line 440 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; -*************** -*** 2177,2181 **** - - case 10: -! #line 441 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2182,2186 ---- - - case 10: -! #line 446 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2186,2190 **** - - case 11: -! #line 447 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2191,2195 ---- - - case 11: -! #line 452 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2195,2199 **** - - case 12: -! #line 453 "/usr/homes/chet/src/bash/src/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2200,2204 ---- - - case 12: -! #line 458 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2204,2208 **** - - case 13: -! #line 459 "/usr/homes/chet/src/bash/src/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2209,2213 ---- - - case 13: -! #line 464 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2213,2217 **** - - case 14: -! #line 465 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 1; ---- 2218,2222 ---- - - case 14: -! #line 470 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; -*************** -*** 2222,2226 **** - - case 15: -! #line 471 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2227,2231 ---- - - case 15: -! #line 476 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2231,2235 **** - - case 16: -! #line 477 "/usr/homes/chet/src/bash/src/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2236,2240 ---- - - case 16: -! #line 482 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2240,2244 **** - - case 17: -! #line 483 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 1; ---- 2245,2249 ---- - - case 17: -! #line 488 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; -*************** -*** 2249,2253 **** - - case 18: -! #line 489 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2254,2258 ---- - - case 18: -! #line 494 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2258,2262 **** - - case 19: -! #line 495 "/usr/homes/chet/src/bash/src/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2263,2267 ---- - - case 19: -! #line 500 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2267,2271 **** - - case 20: -! #line 501 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 0; ---- 2272,2276 ---- - - case 20: -! #line 506 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; -*************** -*** 2276,2280 **** - - case 21: -! #line 507 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2281,2285 ---- - - case 21: -! #line 512 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2285,2289 **** - - case 22: -! #line 513 "/usr/homes/chet/src/bash/src/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2290,2294 ---- - - case 22: -! #line 518 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2294,2358 **** - - case 23: -! #line 519 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 0; - redir.filename = (yyvsp[(2) - (2)].word); - (yyval.redirect) = make_redirection (source, r_reading_until, redir, 0); -! redir_stack[need_here_doc++] = (yyval.redirect); - } - break; - - case 24: -! #line 526 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); - redir.filename = (yyvsp[(3) - (3)].word); - (yyval.redirect) = make_redirection (source, r_reading_until, redir, 0); -! redir_stack[need_here_doc++] = (yyval.redirect); - } - break; - - case 25: -! #line 533 "/usr/homes/chet/src/bash/src/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); - redir.filename = (yyvsp[(3) - (3)].word); - (yyval.redirect) = make_redirection (source, r_reading_until, redir, REDIR_VARASSIGN); -! redir_stack[need_here_doc++] = (yyval.redirect); - } - break; - - case 26: -! #line 540 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 0; - redir.filename = (yyvsp[(2) - (2)].word); - (yyval.redirect) = make_redirection (source, r_deblank_reading_until, redir, 0); -! redir_stack[need_here_doc++] = (yyval.redirect); - } - break; - - case 27: -! #line 547 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); - redir.filename = (yyvsp[(3) - (3)].word); - (yyval.redirect) = make_redirection (source, r_deblank_reading_until, redir, 0); -! redir_stack[need_here_doc++] = (yyval.redirect); - } - break; - - case 28: -! #line 554 "/usr/homes/chet/src/bash/src/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); - redir.filename = (yyvsp[(3) - (3)].word); - (yyval.redirect) = make_redirection (source, r_deblank_reading_until, redir, REDIR_VARASSIGN); -! redir_stack[need_here_doc++] = (yyval.redirect); - } - break; - - case 29: -! #line 561 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 0; ---- 2299,2363 ---- - - case 23: -! #line 524 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; - redir.filename = (yyvsp[(2) - (2)].word); - (yyval.redirect) = make_redirection (source, r_reading_until, redir, 0); -! push_heredoc ((yyval.redirect)); - } - break; - - case 24: -! #line 531 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); - redir.filename = (yyvsp[(3) - (3)].word); - (yyval.redirect) = make_redirection (source, r_reading_until, redir, 0); -! push_heredoc ((yyval.redirect)); - } - break; - - case 25: -! #line 538 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); - redir.filename = (yyvsp[(3) - (3)].word); - (yyval.redirect) = make_redirection (source, r_reading_until, redir, REDIR_VARASSIGN); -! push_heredoc ((yyval.redirect)); - } - break; - - case 26: -! #line 545 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; - redir.filename = (yyvsp[(2) - (2)].word); - (yyval.redirect) = make_redirection (source, r_deblank_reading_until, redir, 0); -! push_heredoc ((yyval.redirect)); - } - break; - - case 27: -! #line 552 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); - redir.filename = (yyvsp[(3) - (3)].word); - (yyval.redirect) = make_redirection (source, r_deblank_reading_until, redir, 0); -! push_heredoc ((yyval.redirect)); - } - break; - - case 28: -! #line 559 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); - redir.filename = (yyvsp[(3) - (3)].word); - (yyval.redirect) = make_redirection (source, r_deblank_reading_until, redir, REDIR_VARASSIGN); -! push_heredoc ((yyval.redirect)); - } - break; - - case 29: -! #line 566 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; -*************** -*** 2363,2367 **** - - case 30: -! #line 567 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2368,2372 ---- - - case 30: -! #line 572 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2372,2376 **** - - case 31: -! #line 573 "/usr/homes/chet/src/bash/src/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2377,2381 ---- - - case 31: -! #line 578 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2381,2385 **** - - case 32: -! #line 579 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 0; ---- 2386,2390 ---- - - case 32: -! #line 584 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; -*************** -*** 2390,2394 **** - - case 33: -! #line 585 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2395,2399 ---- - - case 33: -! #line 590 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2399,2403 **** - - case 34: -! #line 591 "/usr/homes/chet/src/bash/src/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2404,2408 ---- - - case 34: -! #line 596 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2408,2412 **** - - case 35: -! #line 597 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 1; ---- 2413,2417 ---- - - case 35: -! #line 602 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; -*************** -*** 2417,2421 **** - - case 36: -! #line 603 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2422,2426 ---- - - case 36: -! #line 608 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2426,2430 **** - - case 37: -! #line 609 "/usr/homes/chet/src/bash/src/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2431,2435 ---- - - case 37: -! #line 614 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2435,2439 **** - - case 38: -! #line 615 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 0; ---- 2440,2444 ---- - - case 38: -! #line 620 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; -*************** -*** 2444,2448 **** - - case 39: -! #line 621 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2449,2453 ---- - - case 39: -! #line 626 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2453,2457 **** - - case 40: -! #line 627 "/usr/homes/chet/src/bash/src/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2458,2462 ---- - - case 40: -! #line 632 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2462,2466 **** - - case 41: -! #line 633 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 1; ---- 2467,2471 ---- - - case 41: -! #line 638 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; -*************** -*** 2471,2475 **** - - case 42: -! #line 639 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2476,2480 ---- - - case 42: -! #line 644 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2480,2484 **** - - case 43: -! #line 645 "/usr/homes/chet/src/bash/src/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2485,2489 ---- - - case 43: -! #line 650 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2489,2493 **** - - case 44: -! #line 651 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 1; ---- 2494,2498 ---- - - case 44: -! #line 656 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; -*************** -*** 2498,2502 **** - - case 45: -! #line 657 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2503,2507 ---- - - case 45: -! #line 662 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2507,2511 **** - - case 46: -! #line 663 "/usr/homes/chet/src/bash/src/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2512,2516 ---- - - case 46: -! #line 668 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2516,2520 **** - - case 47: -! #line 669 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 0; ---- 2521,2525 ---- - - case 47: -! #line 674 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; -*************** -*** 2525,2529 **** - - case 48: -! #line 675 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2530,2534 ---- - - case 48: -! #line 680 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2534,2538 **** - - case 49: -! #line 681 "/usr/homes/chet/src/bash/src/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2539,2543 ---- - - case 49: -! #line 686 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2543,2547 **** - - case 50: -! #line 687 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 1; ---- 2548,2552 ---- - - case 50: -! #line 692 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; -*************** -*** 2552,2556 **** - - case 51: -! #line 693 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 1; ---- 2557,2561 ---- - - case 51: -! #line 698 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; -*************** -*** 2561,2580 **** - - case 52: -! #line 701 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.element).word = (yyvsp[(1) - (1)].word); (yyval.element).redirect = 0; } - break; - - case 53: -! #line 703 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.element).word = (yyvsp[(1) - (1)].word); (yyval.element).redirect = 0; } - break; - - case 54: -! #line 705 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.element).redirect = (yyvsp[(1) - (1)].redirect); (yyval.element).word = 0; } - break; - - case 55: -! #line 709 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.redirect) = (yyvsp[(1) - (1)].redirect); ---- 2566,2585 ---- - - case 52: -! #line 706 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.element).word = (yyvsp[(1) - (1)].word); (yyval.element).redirect = 0; } - break; - - case 53: -! #line 708 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.element).word = (yyvsp[(1) - (1)].word); (yyval.element).redirect = 0; } - break; - - case 54: -! #line 710 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.element).redirect = (yyvsp[(1) - (1)].redirect); (yyval.element).word = 0; } - break; - - case 55: -! #line 714 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.redirect) = (yyvsp[(1) - (1)].redirect); -*************** -*** 2583,2587 **** - - case 56: -! #line 713 "/usr/homes/chet/src/bash/src/parse.y" - { - register REDIRECT *t; ---- 2588,2592 ---- - - case 56: -! #line 718 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - register REDIRECT *t; -*************** -*** 2595,2619 **** - - case 57: -! #line 724 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = make_simple_command ((yyvsp[(1) - (1)].element), (COMMAND *)NULL); } - break; - - case 58: -! #line 726 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = make_simple_command ((yyvsp[(2) - (2)].element), (yyvsp[(1) - (2)].command)); } - break; - - case 59: -! #line 730 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = clean_simple_command ((yyvsp[(1) - (1)].command)); } - break; - - case 60: -! #line 732 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 61: -! #line 734 "/usr/homes/chet/src/bash/src/parse.y" - { - COMMAND *tc; ---- 2600,2624 ---- - - case 57: -! #line 729 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_simple_command ((yyvsp[(1) - (1)].element), (COMMAND *)NULL); } - break; - - case 58: -! #line 731 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_simple_command ((yyvsp[(2) - (2)].element), (yyvsp[(1) - (2)].command)); } - break; - - case 59: -! #line 735 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = clean_simple_command ((yyvsp[(1) - (1)].command)); } - break; - - case 60: -! #line 737 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 61: -! #line 739 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - COMMAND *tc; -*************** -*** 2634,2703 **** - - case 62: -! #line 750 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 63: -! #line 752 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 64: -! #line 756 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 65: -! #line 758 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 66: -! #line 760 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = make_while_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command)); } - break; - - case 67: -! #line 762 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = make_until_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command)); } - break; - - case 68: -! #line 764 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 69: -! #line 766 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 70: -! #line 768 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 71: -! #line 770 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 72: -! #line 772 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 73: -! #line 774 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 74: -! #line 776 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 75: -! #line 780 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); ---- 2639,2708 ---- - - case 62: -! #line 755 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 63: -! #line 757 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 64: -! #line 761 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 65: -! #line 763 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 66: -! #line 765 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_while_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command)); } - break; - - case 67: -! #line 767 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_until_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command)); } - break; - - case 68: -! #line 769 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 69: -! #line 771 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 70: -! #line 773 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 71: -! #line 775 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 72: -! #line 777 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 73: -! #line 779 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 74: -! #line 781 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 75: -! #line 785 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); -*************** -*** 2707,2711 **** - - case 76: -! #line 785 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); ---- 2712,2716 ---- - - case 76: -! #line 790 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); -*************** -*** 2715,2719 **** - - case 77: -! #line 790 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); ---- 2720,2724 ---- - - case 77: -! #line 795 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); -*************** -*** 2723,2727 **** - - case 78: -! #line 795 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); ---- 2728,2732 ---- - - case 78: -! #line 800 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); -*************** -*** 2731,2735 **** - - case 79: -! #line 800 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); ---- 2736,2740 ---- - - case 79: -! #line 805 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); -*************** -*** 2739,2743 **** - - case 80: -! #line 805 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); ---- 2744,2748 ---- - - case 80: -! #line 810 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); -*************** -*** 2747,2751 **** - - case 81: -! #line 810 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (9)].word), (WORD_LIST *)NULL, (yyvsp[(8) - (9)].command), word_lineno[word_top]); ---- 2752,2756 ---- - - case 81: -! #line 815 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (9)].word), (WORD_LIST *)NULL, (yyvsp[(8) - (9)].command), word_lineno[word_top]); -*************** -*** 2755,2759 **** - - case 82: -! #line 815 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (9)].word), (WORD_LIST *)NULL, (yyvsp[(8) - (9)].command), word_lineno[word_top]); ---- 2760,2764 ---- - - case 82: -! #line 820 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (9)].word), (WORD_LIST *)NULL, (yyvsp[(8) - (9)].command), word_lineno[word_top]); -*************** -*** 2763,2767 **** - - case 83: -! #line 822 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (7)].word_list), (yyvsp[(6) - (7)].command), arith_for_lineno); ---- 2768,2772 ---- - - case 83: -! #line 827 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (7)].word_list), (yyvsp[(6) - (7)].command), arith_for_lineno); -*************** -*** 2771,2775 **** - - case 84: -! #line 827 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (7)].word_list), (yyvsp[(6) - (7)].command), arith_for_lineno); ---- 2776,2780 ---- - - case 84: -! #line 832 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (7)].word_list), (yyvsp[(6) - (7)].command), arith_for_lineno); -*************** -*** 2779,2783 **** - - case 85: -! #line 832 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (5)].word_list), (yyvsp[(4) - (5)].command), arith_for_lineno); ---- 2784,2788 ---- - - case 85: -! #line 837 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (5)].word_list), (yyvsp[(4) - (5)].command), arith_for_lineno); -*************** -*** 2787,2791 **** - - case 86: -! #line 837 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (5)].word_list), (yyvsp[(4) - (5)].command), arith_for_lineno); ---- 2792,2796 ---- - - case 86: -! #line 842 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (5)].word_list), (yyvsp[(4) - (5)].command), arith_for_lineno); -*************** -*** 2795,2799 **** - - case 87: -! #line 844 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); ---- 2800,2804 ---- - - case 87: -! #line 849 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); -*************** -*** 2803,2807 **** - - case 88: -! #line 849 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); ---- 2808,2812 ---- - - case 88: -! #line 854 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); -*************** -*** 2811,2815 **** - - case 89: -! #line 854 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); ---- 2816,2820 ---- - - case 89: -! #line 859 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); -*************** -*** 2819,2823 **** - - case 90: -! #line 859 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); ---- 2824,2828 ---- - - case 90: -! #line 864 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); -*************** -*** 2827,2831 **** - - case 91: -! #line 864 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); ---- 2832,2836 ---- - - case 91: -! #line 869 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); -*************** -*** 2835,2839 **** - - case 92: -! #line 869 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); ---- 2840,2844 ---- - - case 92: -! #line 874 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); -*************** -*** 2843,2847 **** - - case 93: -! #line 876 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_case_command ((yyvsp[(2) - (6)].word), (PATTERN_LIST *)NULL, word_lineno[word_top]); ---- 2848,2852 ---- - - case 93: -! #line 881 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_case_command ((yyvsp[(2) - (6)].word), (PATTERN_LIST *)NULL, word_lineno[word_top]); -*************** -*** 2851,2855 **** - - case 94: -! #line 881 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_case_command ((yyvsp[(2) - (7)].word), (yyvsp[(5) - (7)].pattern), word_lineno[word_top]); ---- 2856,2860 ---- - - case 94: -! #line 886 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_case_command ((yyvsp[(2) - (7)].word), (yyvsp[(5) - (7)].pattern), word_lineno[word_top]); -*************** -*** 2859,2863 **** - - case 95: -! #line 886 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_case_command ((yyvsp[(2) - (6)].word), (yyvsp[(5) - (6)].pattern), word_lineno[word_top]); ---- 2864,2868 ---- - - case 95: -! #line 891 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_case_command ((yyvsp[(2) - (6)].word), (yyvsp[(5) - (6)].pattern), word_lineno[word_top]); -*************** -*** 2867,2891 **** - - case 96: -! #line 893 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = make_function_def ((yyvsp[(1) - (5)].word), (yyvsp[(5) - (5)].command), function_dstart, function_bstart); } - break; - - case 97: -! #line 896 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = make_function_def ((yyvsp[(2) - (6)].word), (yyvsp[(6) - (6)].command), function_dstart, function_bstart); } - break; - - case 98: -! #line 899 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = make_function_def ((yyvsp[(2) - (4)].word), (yyvsp[(4) - (4)].command), function_dstart, function_bstart); } - break; - - case 99: -! #line 903 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 100: -! #line 905 "/usr/homes/chet/src/bash/src/parse.y" - { - COMMAND *tc; ---- 2872,2896 ---- - - case 96: -! #line 898 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_function_def ((yyvsp[(1) - (5)].word), (yyvsp[(5) - (5)].command), function_dstart, function_bstart); } - break; - - case 97: -! #line 901 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_function_def ((yyvsp[(2) - (6)].word), (yyvsp[(6) - (6)].command), function_dstart, function_bstart); } - break; - - case 98: -! #line 904 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_function_def ((yyvsp[(2) - (4)].word), (yyvsp[(4) - (4)].command), function_dstart, function_bstart); } - break; - - case 99: -! #line 908 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 100: -! #line 910 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - COMMAND *tc; -*************** -*** 2919,2923 **** - - case 101: -! #line 936 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_subshell_command ((yyvsp[(2) - (3)].command)); ---- 2924,2928 ---- - - case 101: -! #line 941 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_subshell_command ((yyvsp[(2) - (3)].command)); -*************** -*** 2927,2931 **** - - case 102: -! #line 943 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_coproc_command ("COPROC", (yyvsp[(2) - (2)].command)); ---- 2932,2936 ---- - - case 102: -! #line 948 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_coproc_command ("COPROC", (yyvsp[(2) - (2)].command)); -*************** -*** 2935,2939 **** - - case 103: -! #line 948 "/usr/homes/chet/src/bash/src/parse.y" - { - COMMAND *tc; ---- 2940,2944 ---- - - case 103: -! #line 953 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - COMMAND *tc; -*************** -*** 2955,2959 **** - - case 104: -! #line 965 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_coproc_command ((yyvsp[(2) - (3)].word)->word, (yyvsp[(3) - (3)].command)); ---- 2960,2964 ---- - - case 104: -! #line 970 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_coproc_command ((yyvsp[(2) - (3)].word)->word, (yyvsp[(3) - (3)].command)); -*************** -*** 2963,2967 **** - - case 105: -! #line 970 "/usr/homes/chet/src/bash/src/parse.y" - { - COMMAND *tc; ---- 2968,2972 ---- - - case 105: -! #line 975 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - COMMAND *tc; -*************** -*** 2983,2987 **** - - case 106: -! #line 987 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_coproc_command ("COPROC", clean_simple_command ((yyvsp[(2) - (2)].command))); ---- 2988,2992 ---- - - case 106: -! #line 992 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_coproc_command ("COPROC", clean_simple_command ((yyvsp[(2) - (2)].command))); -*************** -*** 2991,3105 **** - - case 107: -! #line 994 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command), (COMMAND *)NULL); } - break; - - case 108: -! #line 996 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (7)].command), (yyvsp[(4) - (7)].command), (yyvsp[(6) - (7)].command)); } - break; - - case 109: -! #line 998 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(5) - (6)].command)); } - break; - - case 110: -! #line 1003 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = make_group_command ((yyvsp[(2) - (3)].command)); } - break; - - case 111: -! #line 1007 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = make_arith_command ((yyvsp[(1) - (1)].word_list)); } - break; - - case 112: -! #line 1011 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(2) - (3)].command); } - break; - - case 113: -! #line 1015 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (4)].command), (yyvsp[(4) - (4)].command), (COMMAND *)NULL); } - break; - - case 114: -! #line 1017 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(6) - (6)].command)); } - break; - - case 115: -! #line 1019 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command), (yyvsp[(5) - (5)].command)); } - break; - - case 117: -! #line 1024 "/usr/homes/chet/src/bash/src/parse.y" - { (yyvsp[(2) - (2)].pattern)->next = (yyvsp[(1) - (2)].pattern); (yyval.pattern) = (yyvsp[(2) - (2)].pattern); } - break; - - case 118: -! #line 1028 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), (yyvsp[(4) - (4)].command)); } - break; - - case 119: -! #line 1030 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), (COMMAND *)NULL); } - break; - - case 120: -! #line 1032 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), (yyvsp[(5) - (5)].command)); } - break; - - case 121: -! #line 1034 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), (COMMAND *)NULL); } - break; - - case 122: -! #line 1038 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } - break; - - case 123: -! #line 1040 "/usr/homes/chet/src/bash/src/parse.y" - { (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } - break; - - case 124: -! #line 1042 "/usr/homes/chet/src/bash/src/parse.y" - { (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } - break; - - case 125: -! #line 1044 "/usr/homes/chet/src/bash/src/parse.y" - { (yyvsp[(2) - (3)].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } - break; - - case 126: -! #line 1046 "/usr/homes/chet/src/bash/src/parse.y" - { (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_TESTNEXT; (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } - break; - - case 127: -! #line 1048 "/usr/homes/chet/src/bash/src/parse.y" - { (yyvsp[(2) - (3)].pattern)->flags |= CASEPAT_TESTNEXT; (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } - break; - - case 128: -! #line 1052 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), (WORD_LIST *)NULL); } - break; - - case 129: -! #line 1054 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(3) - (3)].word), (yyvsp[(1) - (3)].word_list)); } - break; - - case 130: -! #line 1063 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = (yyvsp[(2) - (2)].command); ---- 2996,3110 ---- - - case 107: -! #line 999 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command), (COMMAND *)NULL); } - break; - - case 108: -! #line 1001 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (7)].command), (yyvsp[(4) - (7)].command), (yyvsp[(6) - (7)].command)); } - break; - - case 109: -! #line 1003 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(5) - (6)].command)); } - break; - - case 110: -! #line 1008 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_group_command ((yyvsp[(2) - (3)].command)); } - break; - - case 111: -! #line 1012 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_arith_command ((yyvsp[(1) - (1)].word_list)); } - break; - - case 112: -! #line 1016 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(2) - (3)].command); } - break; - - case 113: -! #line 1020 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (4)].command), (yyvsp[(4) - (4)].command), (COMMAND *)NULL); } - break; - - case 114: -! #line 1022 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(6) - (6)].command)); } - break; - - case 115: -! #line 1024 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command), (yyvsp[(5) - (5)].command)); } - break; - - case 117: -! #line 1029 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyvsp[(2) - (2)].pattern)->next = (yyvsp[(1) - (2)].pattern); (yyval.pattern) = (yyvsp[(2) - (2)].pattern); } - break; - - case 118: -! #line 1033 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), (yyvsp[(4) - (4)].command)); } - break; - - case 119: -! #line 1035 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), (COMMAND *)NULL); } - break; - - case 120: -! #line 1037 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), (yyvsp[(5) - (5)].command)); } - break; - - case 121: -! #line 1039 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), (COMMAND *)NULL); } - break; - - case 122: -! #line 1043 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } - break; - - case 123: -! #line 1045 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } - break; - - case 124: -! #line 1047 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } - break; - - case 125: -! #line 1049 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyvsp[(2) - (3)].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } - break; - - case 126: -! #line 1051 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_TESTNEXT; (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } - break; - - case 127: -! #line 1053 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyvsp[(2) - (3)].pattern)->flags |= CASEPAT_TESTNEXT; (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } - break; - - case 128: -! #line 1057 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), (WORD_LIST *)NULL); } - break; - - case 129: -! #line 1059 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(3) - (3)].word), (yyvsp[(1) - (3)].word_list)); } - break; - - case 130: -! #line 1068 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = (yyvsp[(2) - (2)].command); -*************** -*** 3110,3114 **** - - case 132: -! #line 1072 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = (yyvsp[(2) - (2)].command); ---- 3115,3119 ---- - - case 132: -! #line 1077 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = (yyvsp[(2) - (2)].command); -*************** -*** 3117,3121 **** - - case 134: -! #line 1079 "/usr/homes/chet/src/bash/src/parse.y" - { - if ((yyvsp[(1) - (3)].command)->type == cm_connection) ---- 3122,3126 ---- - - case 134: -! #line 1084 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - if ((yyvsp[(1) - (3)].command)->type == cm_connection) -*************** -*** 3127,3141 **** - - case 136: -! #line 1090 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), AND_AND); } - break; - - case 137: -! #line 1092 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), OR_OR); } - break; - - case 138: -! #line 1094 "/usr/homes/chet/src/bash/src/parse.y" - { - if ((yyvsp[(1) - (4)].command)->type == cm_connection) ---- 3132,3146 ---- - - case 136: -! #line 1095 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), AND_AND); } - break; - - case 137: -! #line 1097 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), OR_OR); } - break; - - case 138: -! #line 1099 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - if ((yyvsp[(1) - (4)].command)->type == cm_connection) -*************** -*** 3147,3181 **** - - case 139: -! #line 1101 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), ';'); } - break; - - case 140: -! #line 1103 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), ';'); } - break; - - case 141: -! #line 1105 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 144: -! #line 1113 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.number) = '\n'; } - break; - - case 145: -! #line 1115 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.number) = ';'; } - break; - - case 146: -! #line 1117 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.number) = yacc_EOF; } - break; - - case 149: -! #line 1131 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = (yyvsp[(1) - (1)].command); ---- 3152,3186 ---- - - case 139: -! #line 1106 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), ';'); } - break; - - case 140: -! #line 1108 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), ';'); } - break; - - case 141: -! #line 1110 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 144: -! #line 1118 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.number) = '\n'; } - break; - - case 145: -! #line 1120 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.number) = ';'; } - break; - - case 146: -! #line 1122 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.number) = yacc_EOF; } - break; - - case 149: -! #line 1136 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = (yyvsp[(1) - (1)].command); -*************** -*** 3193,3197 **** - - case 150: -! #line 1144 "/usr/homes/chet/src/bash/src/parse.y" - { - if ((yyvsp[(1) - (2)].command)->type == cm_connection) ---- 3198,3202 ---- - - case 150: -! #line 1149 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - if ((yyvsp[(1) - (2)].command)->type == cm_connection) -*************** -*** 3212,3216 **** - - case 151: -! #line 1160 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = (yyvsp[(1) - (2)].command); ---- 3217,3221 ---- - - case 151: -! #line 1165 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = (yyvsp[(1) - (2)].command); -*************** -*** 3228,3242 **** - - case 152: -! #line 1175 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), AND_AND); } - break; - - case 153: -! #line 1177 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), OR_OR); } - break; - - case 154: -! #line 1179 "/usr/homes/chet/src/bash/src/parse.y" - { - if ((yyvsp[(1) - (3)].command)->type == cm_connection) ---- 3233,3247 ---- - - case 152: -! #line 1180 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), AND_AND); } - break; - - case 153: -! #line 1182 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), OR_OR); } - break; - - case 154: -! #line 1184 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - if ((yyvsp[(1) - (3)].command)->type == cm_connection) -*************** -*** 3248,3267 **** - - case 155: -! #line 1186 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (3)].command), (yyvsp[(3) - (3)].command), ';'); } - break; - - case 156: -! #line 1189 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 157: -! #line 1193 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 158: -! #line 1195 "/usr/homes/chet/src/bash/src/parse.y" - { - if ((yyvsp[(2) - (2)].command)) ---- 3253,3272 ---- - - case 155: -! #line 1191 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (3)].command), (yyvsp[(3) - (3)].command), ';'); } - break; - - case 156: -! #line 1194 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 157: -! #line 1198 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 158: -! #line 1200 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - if ((yyvsp[(2) - (2)].command)) -*************** -*** 3272,3276 **** - - case 159: -! #line 1201 "/usr/homes/chet/src/bash/src/parse.y" - { - if ((yyvsp[(2) - (2)].command)) ---- 3277,3281 ---- - - case 159: -! #line 1206 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - if ((yyvsp[(2) - (2)].command)) -*************** -*** 3281,3285 **** - - case 160: -! #line 1207 "/usr/homes/chet/src/bash/src/parse.y" - { - ELEMENT x; ---- 3286,3290 ---- - - case 160: -! #line 1212 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - ELEMENT x; -*************** -*** 3301,3305 **** - - case 161: -! #line 1224 "/usr/homes/chet/src/bash/src/parse.y" - { - ELEMENT x; ---- 3306,3310 ---- - - case 161: -! #line 1229 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - ELEMENT x; -*************** -*** 3322,3331 **** - - case 162: -! #line 1244 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), '|'); } - break; - - case 163: -! #line 1246 "/usr/homes/chet/src/bash/src/parse.y" - { - /* Make cmd1 |& cmd2 equivalent to cmd1 2>&1 | cmd2 */ ---- 3327,3336 ---- - - case 162: -! #line 1249 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), '|'); } - break; - - case 163: -! #line 1251 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - /* Make cmd1 |& cmd2 equivalent to cmd1 2>&1 | cmd2 */ -*************** -*** 3353,3372 **** - - case 164: -! #line 1269 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 165: -! #line 1273 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.number) = CMD_TIME_PIPELINE; } - break; - - case 166: -! #line 1275 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } - break; - - case 167: -! #line 1277 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } - break; ---- 3358,3377 ---- - - case 164: -! #line 1274 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 165: -! #line 1278 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.number) = CMD_TIME_PIPELINE; } - break; - - case 166: -! #line 1280 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } - break; - - case 167: -! #line 1282 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } - break; -*************** -*** 3374,3378 **** - - /* Line 1267 of yacc.c. */ -! #line 3377 "y.tab.c" - default: break; - } ---- 3379,3383 ---- - - /* Line 1267 of yacc.c. */ -! #line 3382 "y.tab.c" - default: break; - } -*************** -*** 3588,3592 **** - - -! #line 1279 "/usr/homes/chet/src/bash/src/parse.y" - - ---- 3593,3597 ---- - - -! #line 1284 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - - -*************** -*** 4949,4952 **** ---- 4954,4972 ---- - static int esacs_needed_count; - -+ static void -+ push_heredoc (r) -+ REDIRECT *r; -+ { -+ if (need_here_doc >= HEREDOC_MAX) -+ { -+ last_command_exit_value = EX_BADUSAGE; -+ need_here_doc = 0; -+ report_syntax_error (_("maximum here-document count exceeded")); -+ reset_parser (); -+ exit_shell (last_command_exit_value); -+ } -+ redir_stack[need_here_doc++] = r; -+ } -+ - void - gather_here_documents () -*************** -*** 8542,8543 **** ---- 8562,8564 ---- - } - #endif /* HANDLE_MULTIBYTE */ -+ -*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 27 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 28 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-029 - -Bug-Reported-by: Michal Zalewski -Bug-Reference-ID: -Bug-Reference-URL: - -Bug-Description: - -When bash is parsing a function definition that contains a here-document -delimited by end-of-file (or end-of-string), it leaves the closing delimiter -uninitialized. This can result in an invalid memory access when the parsed -function is later copied. - -Patch (apply with `patch -p0'): - -*** bash-4.3/make_cmd.c 2011-12-16 08:08:01.000000000 -0500 ---- make_cmd.c 2014-10-02 11:24:23.000000000 -0400 -*************** -*** 693,696 **** ---- 693,697 ---- - temp->redirector = source; - temp->redirectee = dest_and_filename; -+ temp->here_doc_eof = 0; - temp->instruction = instruction; - temp->flags = 0; -*** bash-4.3/copy_cmd.c 2009-09-11 16:28:02.000000000 -0400 ---- copy_cmd.c 2014-10-02 11:24:23.000000000 -0400 -*************** -*** 127,131 **** - case r_reading_until: - case r_deblank_reading_until: -! new_redirect->here_doc_eof = savestring (redirect->here_doc_eof); - /*FALLTHROUGH*/ - case r_reading_string: ---- 127,131 ---- - case r_reading_until: - case r_deblank_reading_until: -! new_redirect->here_doc_eof = redirect->here_doc_eof ? savestring (redirect->here_doc_eof) : 0; - /*FALLTHROUGH*/ - case r_reading_string: -*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 28 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 29 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-030 - -Bug-Reported-by: Michal Zalewski -Bug-Reference-ID: -Bug-Reference-URL: - -Bug-Description: - -A combination of nested command substitutions and function importing from -the environment can cause bash to execute code appearing in the environment -variable value following the function definition. - -Patch (apply with `patch -p0'): - -*** bash-4.3/builtins/evalstring.c 2014-10-01 12:57:47.000000000 -0400 ---- builtins/evalstring.c 2014-10-03 11:57:04.000000000 -0400 -*************** -*** 309,318 **** - struct fd_bitmap *bitmap; - -! if ((flags & SEVAL_FUNCDEF) && command->type != cm_function_def) - { -! internal_warning ("%s: ignoring function definition attempt", from_file); -! should_jump_to_top_level = 0; -! last_result = last_command_exit_value = EX_BADUSAGE; -! break; - } - ---- 313,335 ---- - struct fd_bitmap *bitmap; - -! if (flags & SEVAL_FUNCDEF) - { -! char *x; -! -! /* If the command parses to something other than a straight -! function definition, or if we have not consumed the entire -! string, or if the parser has transformed the function -! name (as parsing will if it begins or ends with shell -! whitespace, for example), reject the attempt */ -! if (command->type != cm_function_def || -! ((x = parser_remaining_input ()) && *x) || -! (STREQ (from_file, command->value.Function_def->name->word) == 0)) -! { -! internal_warning (_("%s: ignoring function definition attempt"), from_file); -! should_jump_to_top_level = 0; -! last_result = last_command_exit_value = EX_BADUSAGE; -! reset_parser (); -! break; -! } - } - -*************** -*** 379,383 **** - - if (flags & SEVAL_ONECMD) -! break; - } - } ---- 396,403 ---- - - if (flags & SEVAL_ONECMD) -! { -! reset_parser (); -! break; -! } - } - } -*** bash-4.3/parse.y 2014-10-01 12:58:43.000000000 -0400 ---- parse.y 2014-10-03 14:48:59.000000000 -0400 -*************** -*** 2539,2542 **** ---- 2539,2552 ---- - } - -+ char * -+ parser_remaining_input () -+ { -+ if (shell_input_line == 0) -+ return 0; -+ if (shell_input_line_index < 0 || shell_input_line_index >= shell_input_line_len) -+ return '\0'; /* XXX */ -+ return (shell_input_line + shell_input_line_index); -+ } -+ - #ifdef INCLUDE_UNUSED - /* Back the input pointer up by one, effectively `ungetting' a character. */ -*************** -*** 4028,4033 **** - /* reset_parser clears shell_input_line and associated variables */ - restore_input_line_state (&ls); -! if (interactive) -! token_to_read = 0; - - /* Need to find how many characters parse_and_execute consumed, update ---- 4053,4058 ---- - /* reset_parser clears shell_input_line and associated variables */ - restore_input_line_state (&ls); -! -! token_to_read = 0; - - /* Need to find how many characters parse_and_execute consumed, update -*** bash-4.3/shell.h 2014-10-01 12:57:39.000000000 -0400 ---- shell.h 2014-10-03 14:49:12.000000000 -0400 -*************** -*** 181,184 **** ---- 181,186 ---- - - /* Let's try declaring these here. */ -+ extern char *parser_remaining_input __P((void)); -+ - extern sh_parser_state_t *save_parser_state __P((sh_parser_state_t *)); - extern void restore_parser_state __P((sh_parser_state_t *)); -*** bash-4.3/y.tab.c 2014-10-01 13:09:46.000000000 -0400 ---- y.tab.c 2014-10-04 19:26:22.000000000 -0400 -*************** -*** 169,173 **** - - /* Copy the first part of user declarations. */ -! #line 21 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - - #include "config.h" ---- 169,173 ---- - - /* Copy the first part of user declarations. */ -! #line 21 "/usr/src/local/bash/bash-4.3-patched/parse.y" - - #include "config.h" -*************** -*** 498,502 **** - #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED - typedef union YYSTYPE -! #line 329 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - WORD_DESC *word; /* the word that we read. */ ---- 498,502 ---- - #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED - typedef union YYSTYPE -! #line 329 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - WORD_DESC *word; /* the word that we read. */ -*************** -*** 2099,2103 **** - { - case 2: -! #line 383 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - /* Case of regular command. Discard the error ---- 2099,2103 ---- - { - case 2: -! #line 383 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - /* Case of regular command. Discard the error -*************** -*** 2113,2117 **** - - case 3: -! #line 394 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - /* Case of regular command, but not a very ---- 2113,2117 ---- - - case 3: -! #line 394 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - /* Case of regular command, but not a very -*************** -*** 2125,2129 **** - - case 4: -! #line 403 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - /* Error during parsing. Return NULL command. */ ---- 2125,2129 ---- - - case 4: -! #line 403 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - /* Error during parsing. Return NULL command. */ -*************** -*** 2143,2147 **** - - case 5: -! #line 418 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - /* Case of EOF seen by itself. Do ignoreeof or ---- 2143,2147 ---- - - case 5: -! #line 418 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - /* Case of EOF seen by itself. Do ignoreeof or -*************** -*** 2154,2168 **** - - case 6: -! #line 428 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), (WORD_LIST *)NULL); } - break; - - case 7: -! #line 430 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(2) - (2)].word), (yyvsp[(1) - (2)].word_list)); } - break; - - case 8: -! #line 434 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; ---- 2154,2168 ---- - - case 6: -! #line 428 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), (WORD_LIST *)NULL); } - break; - - case 7: -! #line 430 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(2) - (2)].word), (yyvsp[(1) - (2)].word_list)); } - break; - - case 8: -! #line 434 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 1; -*************** -*** 2173,2177 **** - - case 9: -! #line 440 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; ---- 2173,2177 ---- - - case 9: -! #line 440 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 0; -*************** -*** 2182,2186 **** - - case 10: -! #line 446 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2182,2186 ---- - - case 10: -! #line 446 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2191,2195 **** - - case 11: -! #line 452 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2191,2195 ---- - - case 11: -! #line 452 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2200,2204 **** - - case 12: -! #line 458 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2200,2204 ---- - - case 12: -! #line 458 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2209,2213 **** - - case 13: -! #line 464 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2209,2213 ---- - - case 13: -! #line 464 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2218,2222 **** - - case 14: -! #line 470 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; ---- 2218,2222 ---- - - case 14: -! #line 470 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 1; -*************** -*** 2227,2231 **** - - case 15: -! #line 476 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2227,2231 ---- - - case 15: -! #line 476 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2236,2240 **** - - case 16: -! #line 482 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2236,2240 ---- - - case 16: -! #line 482 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2245,2249 **** - - case 17: -! #line 488 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; ---- 2245,2249 ---- - - case 17: -! #line 488 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 1; -*************** -*** 2254,2258 **** - - case 18: -! #line 494 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2254,2258 ---- - - case 18: -! #line 494 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2263,2267 **** - - case 19: -! #line 500 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2263,2267 ---- - - case 19: -! #line 500 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2272,2276 **** - - case 20: -! #line 506 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; ---- 2272,2276 ---- - - case 20: -! #line 506 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 0; -*************** -*** 2281,2285 **** - - case 21: -! #line 512 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2281,2285 ---- - - case 21: -! #line 512 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2290,2294 **** - - case 22: -! #line 518 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2290,2294 ---- - - case 22: -! #line 518 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2299,2303 **** - - case 23: -! #line 524 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; ---- 2299,2303 ---- - - case 23: -! #line 524 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 0; -*************** -*** 2309,2313 **** - - case 24: -! #line 531 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2309,2313 ---- - - case 24: -! #line 531 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2319,2323 **** - - case 25: -! #line 538 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2319,2323 ---- - - case 25: -! #line 538 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2329,2333 **** - - case 26: -! #line 545 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; ---- 2329,2333 ---- - - case 26: -! #line 545 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 0; -*************** -*** 2339,2343 **** - - case 27: -! #line 552 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2339,2343 ---- - - case 27: -! #line 552 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2349,2353 **** - - case 28: -! #line 559 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2349,2353 ---- - - case 28: -! #line 559 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2359,2363 **** - - case 29: -! #line 566 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; ---- 2359,2363 ---- - - case 29: -! #line 566 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 0; -*************** -*** 2368,2372 **** - - case 30: -! #line 572 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2368,2372 ---- - - case 30: -! #line 572 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2377,2381 **** - - case 31: -! #line 578 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2377,2381 ---- - - case 31: -! #line 578 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2386,2390 **** - - case 32: -! #line 584 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; ---- 2386,2390 ---- - - case 32: -! #line 584 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 0; -*************** -*** 2395,2399 **** - - case 33: -! #line 590 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2395,2399 ---- - - case 33: -! #line 590 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2404,2408 **** - - case 34: -! #line 596 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2404,2408 ---- - - case 34: -! #line 596 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2413,2417 **** - - case 35: -! #line 602 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; ---- 2413,2417 ---- - - case 35: -! #line 602 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 1; -*************** -*** 2422,2426 **** - - case 36: -! #line 608 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2422,2426 ---- - - case 36: -! #line 608 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2431,2435 **** - - case 37: -! #line 614 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2431,2435 ---- - - case 37: -! #line 614 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2440,2444 **** - - case 38: -! #line 620 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; ---- 2440,2444 ---- - - case 38: -! #line 620 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 0; -*************** -*** 2449,2453 **** - - case 39: -! #line 626 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2449,2453 ---- - - case 39: -! #line 626 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2458,2462 **** - - case 40: -! #line 632 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2458,2462 ---- - - case 40: -! #line 632 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2467,2471 **** - - case 41: -! #line 638 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; ---- 2467,2471 ---- - - case 41: -! #line 638 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 1; -*************** -*** 2476,2480 **** - - case 42: -! #line 644 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2476,2480 ---- - - case 42: -! #line 644 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2485,2489 **** - - case 43: -! #line 650 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2485,2489 ---- - - case 43: -! #line 650 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2494,2498 **** - - case 44: -! #line 656 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; ---- 2494,2498 ---- - - case 44: -! #line 656 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 1; -*************** -*** 2503,2507 **** - - case 45: -! #line 662 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2503,2507 ---- - - case 45: -! #line 662 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2512,2516 **** - - case 46: -! #line 668 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2512,2516 ---- - - case 46: -! #line 668 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2521,2525 **** - - case 47: -! #line 674 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; ---- 2521,2525 ---- - - case 47: -! #line 674 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 0; -*************** -*** 2530,2534 **** - - case 48: -! #line 680 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2530,2534 ---- - - case 48: -! #line 680 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2539,2543 **** - - case 49: -! #line 686 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2539,2543 ---- - - case 49: -! #line 686 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2548,2552 **** - - case 50: -! #line 692 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; ---- 2548,2552 ---- - - case 50: -! #line 692 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 1; -*************** -*** 2557,2561 **** - - case 51: -! #line 698 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; ---- 2557,2561 ---- - - case 51: -! #line 698 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 1; -*************** -*** 2566,2585 **** - - case 52: -! #line 706 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.element).word = (yyvsp[(1) - (1)].word); (yyval.element).redirect = 0; } - break; - - case 53: -! #line 708 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.element).word = (yyvsp[(1) - (1)].word); (yyval.element).redirect = 0; } - break; - - case 54: -! #line 710 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.element).redirect = (yyvsp[(1) - (1)].redirect); (yyval.element).word = 0; } - break; - - case 55: -! #line 714 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.redirect) = (yyvsp[(1) - (1)].redirect); ---- 2566,2585 ---- - - case 52: -! #line 706 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.element).word = (yyvsp[(1) - (1)].word); (yyval.element).redirect = 0; } - break; - - case 53: -! #line 708 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.element).word = (yyvsp[(1) - (1)].word); (yyval.element).redirect = 0; } - break; - - case 54: -! #line 710 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.element).redirect = (yyvsp[(1) - (1)].redirect); (yyval.element).word = 0; } - break; - - case 55: -! #line 714 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.redirect) = (yyvsp[(1) - (1)].redirect); -*************** -*** 2588,2592 **** - - case 56: -! #line 718 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - register REDIRECT *t; ---- 2588,2592 ---- - - case 56: -! #line 718 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - register REDIRECT *t; -*************** -*** 2600,2624 **** - - case 57: -! #line 729 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_simple_command ((yyvsp[(1) - (1)].element), (COMMAND *)NULL); } - break; - - case 58: -! #line 731 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_simple_command ((yyvsp[(2) - (2)].element), (yyvsp[(1) - (2)].command)); } - break; - - case 59: -! #line 735 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = clean_simple_command ((yyvsp[(1) - (1)].command)); } - break; - - case 60: -! #line 737 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 61: -! #line 739 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - COMMAND *tc; ---- 2600,2624 ---- - - case 57: -! #line 729 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = make_simple_command ((yyvsp[(1) - (1)].element), (COMMAND *)NULL); } - break; - - case 58: -! #line 731 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = make_simple_command ((yyvsp[(2) - (2)].element), (yyvsp[(1) - (2)].command)); } - break; - - case 59: -! #line 735 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = clean_simple_command ((yyvsp[(1) - (1)].command)); } - break; - - case 60: -! #line 737 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 61: -! #line 739 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - COMMAND *tc; -*************** -*** 2639,2708 **** - - case 62: -! #line 755 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 63: -! #line 757 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 64: -! #line 761 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 65: -! #line 763 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 66: -! #line 765 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_while_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command)); } - break; - - case 67: -! #line 767 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_until_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command)); } - break; - - case 68: -! #line 769 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 69: -! #line 771 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 70: -! #line 773 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 71: -! #line 775 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 72: -! #line 777 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 73: -! #line 779 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 74: -! #line 781 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 75: -! #line 785 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); ---- 2639,2708 ---- - - case 62: -! #line 755 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 63: -! #line 757 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 64: -! #line 761 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 65: -! #line 763 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 66: -! #line 765 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = make_while_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command)); } - break; - - case 67: -! #line 767 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = make_until_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command)); } - break; - - case 68: -! #line 769 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 69: -! #line 771 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 70: -! #line 773 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 71: -! #line 775 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 72: -! #line 777 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 73: -! #line 779 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 74: -! #line 781 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 75: -! #line 785 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); -*************** -*** 2712,2716 **** - - case 76: -! #line 790 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); ---- 2712,2716 ---- - - case 76: -! #line 790 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); -*************** -*** 2720,2724 **** - - case 77: -! #line 795 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); ---- 2720,2724 ---- - - case 77: -! #line 795 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); -*************** -*** 2728,2732 **** - - case 78: -! #line 800 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); ---- 2728,2732 ---- - - case 78: -! #line 800 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); -*************** -*** 2736,2740 **** - - case 79: -! #line 805 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); ---- 2736,2740 ---- - - case 79: -! #line 805 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); -*************** -*** 2744,2748 **** - - case 80: -! #line 810 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); ---- 2744,2748 ---- - - case 80: -! #line 810 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); -*************** -*** 2752,2756 **** - - case 81: -! #line 815 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (9)].word), (WORD_LIST *)NULL, (yyvsp[(8) - (9)].command), word_lineno[word_top]); ---- 2752,2756 ---- - - case 81: -! #line 815 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (9)].word), (WORD_LIST *)NULL, (yyvsp[(8) - (9)].command), word_lineno[word_top]); -*************** -*** 2760,2764 **** - - case 82: -! #line 820 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (9)].word), (WORD_LIST *)NULL, (yyvsp[(8) - (9)].command), word_lineno[word_top]); ---- 2760,2764 ---- - - case 82: -! #line 820 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (9)].word), (WORD_LIST *)NULL, (yyvsp[(8) - (9)].command), word_lineno[word_top]); -*************** -*** 2768,2772 **** - - case 83: -! #line 827 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (7)].word_list), (yyvsp[(6) - (7)].command), arith_for_lineno); ---- 2768,2772 ---- - - case 83: -! #line 827 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (7)].word_list), (yyvsp[(6) - (7)].command), arith_for_lineno); -*************** -*** 2776,2780 **** - - case 84: -! #line 832 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (7)].word_list), (yyvsp[(6) - (7)].command), arith_for_lineno); ---- 2776,2780 ---- - - case 84: -! #line 832 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (7)].word_list), (yyvsp[(6) - (7)].command), arith_for_lineno); -*************** -*** 2784,2788 **** - - case 85: -! #line 837 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (5)].word_list), (yyvsp[(4) - (5)].command), arith_for_lineno); ---- 2784,2788 ---- - - case 85: -! #line 837 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (5)].word_list), (yyvsp[(4) - (5)].command), arith_for_lineno); -*************** -*** 2792,2796 **** - - case 86: -! #line 842 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (5)].word_list), (yyvsp[(4) - (5)].command), arith_for_lineno); ---- 2792,2796 ---- - - case 86: -! #line 842 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (5)].word_list), (yyvsp[(4) - (5)].command), arith_for_lineno); -*************** -*** 2800,2804 **** - - case 87: -! #line 849 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); ---- 2800,2804 ---- - - case 87: -! #line 849 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); -*************** -*** 2808,2812 **** - - case 88: -! #line 854 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); ---- 2808,2812 ---- - - case 88: -! #line 854 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); -*************** -*** 2816,2820 **** - - case 89: -! #line 859 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); ---- 2816,2820 ---- - - case 89: -! #line 859 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); -*************** -*** 2824,2828 **** - - case 90: -! #line 864 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); ---- 2824,2828 ---- - - case 90: -! #line 864 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); -*************** -*** 2832,2836 **** - - case 91: -! #line 869 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); ---- 2832,2836 ---- - - case 91: -! #line 869 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); -*************** -*** 2840,2844 **** - - case 92: -! #line 874 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); ---- 2840,2844 ---- - - case 92: -! #line 874 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); -*************** -*** 2848,2852 **** - - case 93: -! #line 881 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_case_command ((yyvsp[(2) - (6)].word), (PATTERN_LIST *)NULL, word_lineno[word_top]); ---- 2848,2852 ---- - - case 93: -! #line 881 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_case_command ((yyvsp[(2) - (6)].word), (PATTERN_LIST *)NULL, word_lineno[word_top]); -*************** -*** 2856,2860 **** - - case 94: -! #line 886 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_case_command ((yyvsp[(2) - (7)].word), (yyvsp[(5) - (7)].pattern), word_lineno[word_top]); ---- 2856,2860 ---- - - case 94: -! #line 886 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_case_command ((yyvsp[(2) - (7)].word), (yyvsp[(5) - (7)].pattern), word_lineno[word_top]); -*************** -*** 2864,2868 **** - - case 95: -! #line 891 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_case_command ((yyvsp[(2) - (6)].word), (yyvsp[(5) - (6)].pattern), word_lineno[word_top]); ---- 2864,2868 ---- - - case 95: -! #line 891 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_case_command ((yyvsp[(2) - (6)].word), (yyvsp[(5) - (6)].pattern), word_lineno[word_top]); -*************** -*** 2872,2896 **** - - case 96: -! #line 898 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_function_def ((yyvsp[(1) - (5)].word), (yyvsp[(5) - (5)].command), function_dstart, function_bstart); } - break; - - case 97: -! #line 901 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_function_def ((yyvsp[(2) - (6)].word), (yyvsp[(6) - (6)].command), function_dstart, function_bstart); } - break; - - case 98: -! #line 904 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_function_def ((yyvsp[(2) - (4)].word), (yyvsp[(4) - (4)].command), function_dstart, function_bstart); } - break; - - case 99: -! #line 908 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 100: -! #line 910 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - COMMAND *tc; ---- 2872,2896 ---- - - case 96: -! #line 898 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = make_function_def ((yyvsp[(1) - (5)].word), (yyvsp[(5) - (5)].command), function_dstart, function_bstart); } - break; - - case 97: -! #line 901 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = make_function_def ((yyvsp[(2) - (6)].word), (yyvsp[(6) - (6)].command), function_dstart, function_bstart); } - break; - - case 98: -! #line 904 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = make_function_def ((yyvsp[(2) - (4)].word), (yyvsp[(4) - (4)].command), function_dstart, function_bstart); } - break; - - case 99: -! #line 908 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 100: -! #line 910 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - COMMAND *tc; -*************** -*** 2924,2928 **** - - case 101: -! #line 941 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_subshell_command ((yyvsp[(2) - (3)].command)); ---- 2924,2928 ---- - - case 101: -! #line 941 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_subshell_command ((yyvsp[(2) - (3)].command)); -*************** -*** 2932,2936 **** - - case 102: -! #line 948 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_coproc_command ("COPROC", (yyvsp[(2) - (2)].command)); ---- 2932,2936 ---- - - case 102: -! #line 948 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_coproc_command ("COPROC", (yyvsp[(2) - (2)].command)); -*************** -*** 2940,2944 **** - - case 103: -! #line 953 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - COMMAND *tc; ---- 2940,2944 ---- - - case 103: -! #line 953 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - COMMAND *tc; -*************** -*** 2960,2964 **** - - case 104: -! #line 970 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_coproc_command ((yyvsp[(2) - (3)].word)->word, (yyvsp[(3) - (3)].command)); ---- 2960,2964 ---- - - case 104: -! #line 970 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_coproc_command ((yyvsp[(2) - (3)].word)->word, (yyvsp[(3) - (3)].command)); -*************** -*** 2968,2972 **** - - case 105: -! #line 975 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - COMMAND *tc; ---- 2968,2972 ---- - - case 105: -! #line 975 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - COMMAND *tc; -*************** -*** 2988,2992 **** - - case 106: -! #line 992 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_coproc_command ("COPROC", clean_simple_command ((yyvsp[(2) - (2)].command))); ---- 2988,2992 ---- - - case 106: -! #line 992 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_coproc_command ("COPROC", clean_simple_command ((yyvsp[(2) - (2)].command))); -*************** -*** 2996,3110 **** - - case 107: -! #line 999 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command), (COMMAND *)NULL); } - break; - - case 108: -! #line 1001 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (7)].command), (yyvsp[(4) - (7)].command), (yyvsp[(6) - (7)].command)); } - break; - - case 109: -! #line 1003 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(5) - (6)].command)); } - break; - - case 110: -! #line 1008 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_group_command ((yyvsp[(2) - (3)].command)); } - break; - - case 111: -! #line 1012 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_arith_command ((yyvsp[(1) - (1)].word_list)); } - break; - - case 112: -! #line 1016 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(2) - (3)].command); } - break; - - case 113: -! #line 1020 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (4)].command), (yyvsp[(4) - (4)].command), (COMMAND *)NULL); } - break; - - case 114: -! #line 1022 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(6) - (6)].command)); } - break; - - case 115: -! #line 1024 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command), (yyvsp[(5) - (5)].command)); } - break; - - case 117: -! #line 1029 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyvsp[(2) - (2)].pattern)->next = (yyvsp[(1) - (2)].pattern); (yyval.pattern) = (yyvsp[(2) - (2)].pattern); } - break; - - case 118: -! #line 1033 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), (yyvsp[(4) - (4)].command)); } - break; - - case 119: -! #line 1035 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), (COMMAND *)NULL); } - break; - - case 120: -! #line 1037 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), (yyvsp[(5) - (5)].command)); } - break; - - case 121: -! #line 1039 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), (COMMAND *)NULL); } - break; - - case 122: -! #line 1043 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } - break; - - case 123: -! #line 1045 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } - break; - - case 124: -! #line 1047 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } - break; - - case 125: -! #line 1049 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyvsp[(2) - (3)].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } - break; - - case 126: -! #line 1051 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_TESTNEXT; (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } - break; - - case 127: -! #line 1053 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyvsp[(2) - (3)].pattern)->flags |= CASEPAT_TESTNEXT; (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } - break; - - case 128: -! #line 1057 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), (WORD_LIST *)NULL); } - break; - - case 129: -! #line 1059 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(3) - (3)].word), (yyvsp[(1) - (3)].word_list)); } - break; - - case 130: -! #line 1068 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = (yyvsp[(2) - (2)].command); ---- 2996,3110 ---- - - case 107: -! #line 999 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command), (COMMAND *)NULL); } - break; - - case 108: -! #line 1001 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (7)].command), (yyvsp[(4) - (7)].command), (yyvsp[(6) - (7)].command)); } - break; - - case 109: -! #line 1003 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(5) - (6)].command)); } - break; - - case 110: -! #line 1008 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = make_group_command ((yyvsp[(2) - (3)].command)); } - break; - - case 111: -! #line 1012 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = make_arith_command ((yyvsp[(1) - (1)].word_list)); } - break; - - case 112: -! #line 1016 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(2) - (3)].command); } - break; - - case 113: -! #line 1020 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (4)].command), (yyvsp[(4) - (4)].command), (COMMAND *)NULL); } - break; - - case 114: -! #line 1022 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(6) - (6)].command)); } - break; - - case 115: -! #line 1024 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command), (yyvsp[(5) - (5)].command)); } - break; - - case 117: -! #line 1029 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyvsp[(2) - (2)].pattern)->next = (yyvsp[(1) - (2)].pattern); (yyval.pattern) = (yyvsp[(2) - (2)].pattern); } - break; - - case 118: -! #line 1033 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), (yyvsp[(4) - (4)].command)); } - break; - - case 119: -! #line 1035 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), (COMMAND *)NULL); } - break; - - case 120: -! #line 1037 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), (yyvsp[(5) - (5)].command)); } - break; - - case 121: -! #line 1039 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), (COMMAND *)NULL); } - break; - - case 122: -! #line 1043 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } - break; - - case 123: -! #line 1045 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } - break; - - case 124: -! #line 1047 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } - break; - - case 125: -! #line 1049 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyvsp[(2) - (3)].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } - break; - - case 126: -! #line 1051 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_TESTNEXT; (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } - break; - - case 127: -! #line 1053 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyvsp[(2) - (3)].pattern)->flags |= CASEPAT_TESTNEXT; (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } - break; - - case 128: -! #line 1057 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), (WORD_LIST *)NULL); } - break; - - case 129: -! #line 1059 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(3) - (3)].word), (yyvsp[(1) - (3)].word_list)); } - break; - - case 130: -! #line 1068 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = (yyvsp[(2) - (2)].command); -*************** -*** 3115,3119 **** - - case 132: -! #line 1077 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = (yyvsp[(2) - (2)].command); ---- 3115,3119 ---- - - case 132: -! #line 1077 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = (yyvsp[(2) - (2)].command); -*************** -*** 3122,3126 **** - - case 134: -! #line 1084 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - if ((yyvsp[(1) - (3)].command)->type == cm_connection) ---- 3122,3126 ---- - - case 134: -! #line 1084 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - if ((yyvsp[(1) - (3)].command)->type == cm_connection) -*************** -*** 3132,3146 **** - - case 136: -! #line 1095 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), AND_AND); } - break; - - case 137: -! #line 1097 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), OR_OR); } - break; - - case 138: -! #line 1099 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - if ((yyvsp[(1) - (4)].command)->type == cm_connection) ---- 3132,3146 ---- - - case 136: -! #line 1095 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), AND_AND); } - break; - - case 137: -! #line 1097 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), OR_OR); } - break; - - case 138: -! #line 1099 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - if ((yyvsp[(1) - (4)].command)->type == cm_connection) -*************** -*** 3152,3186 **** - - case 139: -! #line 1106 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), ';'); } - break; - - case 140: -! #line 1108 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), ';'); } - break; - - case 141: -! #line 1110 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 144: -! #line 1118 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.number) = '\n'; } - break; - - case 145: -! #line 1120 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.number) = ';'; } - break; - - case 146: -! #line 1122 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.number) = yacc_EOF; } - break; - - case 149: -! #line 1136 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = (yyvsp[(1) - (1)].command); ---- 3152,3186 ---- - - case 139: -! #line 1106 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), ';'); } - break; - - case 140: -! #line 1108 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), ';'); } - break; - - case 141: -! #line 1110 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 144: -! #line 1118 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.number) = '\n'; } - break; - - case 145: -! #line 1120 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.number) = ';'; } - break; - - case 146: -! #line 1122 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.number) = yacc_EOF; } - break; - - case 149: -! #line 1136 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = (yyvsp[(1) - (1)].command); -*************** -*** 3198,3202 **** - - case 150: -! #line 1149 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - if ((yyvsp[(1) - (2)].command)->type == cm_connection) ---- 3198,3202 ---- - - case 150: -! #line 1149 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - if ((yyvsp[(1) - (2)].command)->type == cm_connection) -*************** -*** 3217,3221 **** - - case 151: -! #line 1165 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = (yyvsp[(1) - (2)].command); ---- 3217,3221 ---- - - case 151: -! #line 1165 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = (yyvsp[(1) - (2)].command); -*************** -*** 3233,3247 **** - - case 152: -! #line 1180 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), AND_AND); } - break; - - case 153: -! #line 1182 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), OR_OR); } - break; - - case 154: -! #line 1184 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - if ((yyvsp[(1) - (3)].command)->type == cm_connection) ---- 3233,3247 ---- - - case 152: -! #line 1180 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), AND_AND); } - break; - - case 153: -! #line 1182 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), OR_OR); } - break; - - case 154: -! #line 1184 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - if ((yyvsp[(1) - (3)].command)->type == cm_connection) -*************** -*** 3253,3272 **** - - case 155: -! #line 1191 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (3)].command), (yyvsp[(3) - (3)].command), ';'); } - break; - - case 156: -! #line 1194 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 157: -! #line 1198 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 158: -! #line 1200 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - if ((yyvsp[(2) - (2)].command)) ---- 3253,3272 ---- - - case 155: -! #line 1191 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (3)].command), (yyvsp[(3) - (3)].command), ';'); } - break; - - case 156: -! #line 1194 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 157: -! #line 1198 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 158: -! #line 1200 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - if ((yyvsp[(2) - (2)].command)) -*************** -*** 3277,3281 **** - - case 159: -! #line 1206 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - if ((yyvsp[(2) - (2)].command)) ---- 3277,3281 ---- - - case 159: -! #line 1206 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - if ((yyvsp[(2) - (2)].command)) -*************** -*** 3286,3290 **** - - case 160: -! #line 1212 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - ELEMENT x; ---- 3286,3290 ---- - - case 160: -! #line 1212 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - ELEMENT x; -*************** -*** 3306,3310 **** - - case 161: -! #line 1229 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - ELEMENT x; ---- 3306,3310 ---- - - case 161: -! #line 1229 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - ELEMENT x; -*************** -*** 3327,3336 **** - - case 162: -! #line 1249 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), '|'); } - break; - - case 163: -! #line 1251 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - /* Make cmd1 |& cmd2 equivalent to cmd1 2>&1 | cmd2 */ ---- 3327,3336 ---- - - case 162: -! #line 1249 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), '|'); } - break; - - case 163: -! #line 1251 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - /* Make cmd1 |& cmd2 equivalent to cmd1 2>&1 | cmd2 */ -*************** -*** 3358,3377 **** - - case 164: -! #line 1274 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 165: -! #line 1278 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.number) = CMD_TIME_PIPELINE; } - break; - - case 166: -! #line 1280 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } - break; - - case 167: -! #line 1282 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } - break; ---- 3358,3377 ---- - - case 164: -! #line 1274 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 165: -! #line 1278 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.number) = CMD_TIME_PIPELINE; } - break; - - case 166: -! #line 1280 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } - break; - - case 167: -! #line 1282 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } - break; -*************** -*** 3593,3597 **** - - -! #line 1284 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - - ---- 3593,3597 ---- - - -! #line 1284 "/usr/src/local/bash/bash-4.3-patched/parse.y" - - -*************** -*** 4851,4854 **** ---- 4851,4864 ---- - } - -+ char * -+ parser_remaining_input () -+ { -+ if (shell_input_line == 0) -+ return 0; -+ if (shell_input_line_index < 0 || shell_input_line_index >= shell_input_line_len) -+ return '\0'; /* XXX */ -+ return (shell_input_line + shell_input_line_index); -+ } -+ - #ifdef INCLUDE_UNUSED - /* Back the input pointer up by one, effectively `ungetting' a character. */ -*************** -*** 6340,6345 **** - /* reset_parser clears shell_input_line and associated variables */ - restore_input_line_state (&ls); -! if (interactive) -! token_to_read = 0; - - /* Need to find how many characters parse_and_execute consumed, update ---- 6350,6355 ---- - /* reset_parser clears shell_input_line and associated variables */ - restore_input_line_state (&ls); -! -! token_to_read = 0; - - /* Need to find how many characters parse_and_execute consumed, update -*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 29 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 30 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-031 - -Bug-Reported-by: lolilolicon -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-08/msg00139.html - -Bug-Description: - -The new nameref assignment functionality introduced in bash-4.3 did not perform -enough validation on the variable value and would create variables with -invalid names. - -Patch (apply with `patch -p0'): - -*** bash-4.3/subst.h 2014-01-11 21:02:27.000000000 -0500 ---- subst.h 2014-09-01 12:16:56.000000000 -0400 -*************** -*** 48,51 **** ---- 48,52 ---- - #define ASS_MKGLOBAL 0x0008 /* force global assignment */ - #define ASS_NAMEREF 0x0010 /* assigning to nameref variable */ -+ #define ASS_FROMREF 0x0020 /* assigning from value of nameref variable */ - - /* Flags for the string extraction functions. */ -*** bash-4.3/variables.c 2014-05-15 08:26:50.000000000 -0400 ---- variables.c 2014-09-01 14:37:44.000000000 -0400 -*************** -*** 2504,2511 **** - int hflags, aflags; - { -! char *newval; - SHELL_VAR *entry; - - entry = (hflags & HASH_NOSRCH) ? (SHELL_VAR *)NULL : hash_lookup (name, table); - /* Follow the nameref chain here if this is the global variables table */ - if (entry && nameref_p (entry) && (invisible_p (entry) == 0) && table == global_variables->table) ---- 2566,2590 ---- - int hflags, aflags; - { -! char *newname, *newval; - SHELL_VAR *entry; -+ #if defined (ARRAY_VARS) -+ arrayind_t ind; -+ char *subp; -+ int sublen; -+ #endif - -+ newname = 0; -+ #if defined (ARRAY_VARS) -+ if ((aflags & ASS_FROMREF) && (hflags & HASH_NOSRCH) == 0 && valid_array_reference (name)) -+ { -+ newname = array_variable_name (name, &subp, &sublen); -+ if (newname == 0) -+ return (SHELL_VAR *)NULL; /* XXX */ -+ entry = hash_lookup (newname, table); -+ } -+ else -+ #endif - entry = (hflags & HASH_NOSRCH) ? (SHELL_VAR *)NULL : hash_lookup (name, table); -+ - /* Follow the nameref chain here if this is the global variables table */ - if (entry && nameref_p (entry) && (invisible_p (entry) == 0) && table == global_variables->table) -*************** -*** 2538,2541 **** ---- 2617,2630 ---- - } - } -+ #if defined (ARRAY_VARS) -+ else if (entry == 0 && newname) -+ { -+ entry = make_new_array_variable (newname); /* indexed array by default */ -+ if (entry == 0) -+ return entry; -+ ind = array_expand_index (name, subp, sublen); -+ bind_array_element (entry, ind, value, aflags); -+ } -+ #endif - else if (entry == 0) - { -*************** -*** 2658,2662 **** - if (nameref_cell (nv) == 0) - return (bind_variable_internal (nv->name, value, nvc->table, 0, flags)); -! return (bind_variable_internal (nameref_cell (nv), value, nvc->table, 0, flags)); - } - else ---- 2747,2752 ---- - if (nameref_cell (nv) == 0) - return (bind_variable_internal (nv->name, value, nvc->table, 0, flags)); -! /* XXX - bug here with ref=array[index] */ -! return (bind_variable_internal (nameref_cell (nv), value, nvc->table, 0, flags|ASS_FROMREF)); - } - else -*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 30 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 31 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-032 - -Bug-Reported-by: crispusfairbairn@gmail.com -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-09/msg00013.html - -Bug-Description: - -When bash is running in Posix mode, it allows signals -- including SIGCHLD -- -to interrupt the `wait' builtin, as Posix requires. However, the interrupt -causes bash to not run a SIGCHLD trap for all exited children. This patch -fixes the issue and restores the documented behavior in Posix mode. - -Patch (apply with `patch -p0'): - -*** bash-4.3/jobs.c 2014-05-14 09:20:15.000000000 -0400 ---- jobs.c 2014-09-09 11:50:38.000000000 -0400 -*************** -*** 3340,3344 **** - { - interrupt_immediately = 0; -! trap_handler (SIGCHLD); /* set pending_traps[SIGCHLD] */ - wait_signal_received = SIGCHLD; - /* If we're in a signal handler, let CHECK_WAIT_INTR pick it up; ---- 3346,3352 ---- - { - interrupt_immediately = 0; -! /* This was trap_handler (SIGCHLD) but that can lose traps if -! children_exited > 1 */ -! queue_sigchld_trap (children_exited); - wait_signal_received = SIGCHLD; - /* If we're in a signal handler, let CHECK_WAIT_INTR pick it up; -*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 31 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 32 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-033 - -Bug-Reported-by: mickael9@gmail.com, Jan Rome -Bug-Reference-ID: <20140907224046.382ED3610CC@mickael-laptop.localdomain>, - <540D661D.50908@gmail.com> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-09/msg00029.html - http://lists.gnu.org/archive/html/bug-bash/2014-09/msg00030.html - -Bug-Description: - -Bash does not clean up the terminal state in all cases where bash or -readline modifies it and bash is subsequently terminated by a fatal signal. -This happens when the `read' builtin modifies the terminal settings, both -when readline is active and when it is not. It occurs most often when a script -installs a trap that exits on a signal without re-sending the signal to itself. - -Patch (apply with `patch -p0'): - -*** bash-4.3/shell.c 2014-01-14 08:04:32.000000000 -0500 ---- shell.c 2014-12-22 10:27:50.000000000 -0500 -*************** -*** 74,77 **** ---- 74,78 ---- - - #if defined (READLINE) -+ # include - # include "bashline.h" - #endif -*************** -*** 910,913 **** ---- 912,923 ---- - fflush (stderr); - -+ /* Clean up the terminal if we are in a state where it's been modified. */ -+ #if defined (READLINE) -+ if (RL_ISSTATE (RL_STATE_TERMPREPPED) && rl_deprep_term_function) -+ (*rl_deprep_term_function) (); -+ #endif -+ if (read_tty_modified ()) -+ read_tty_cleanup (); -+ - /* Do trap[0] if defined. Allow it to override the exit status - passed to us. */ -*** bash-4.3/builtins/read.def 2014-10-01 12:57:38.000000000 -0400 ---- builtins/read.def 2014-12-22 10:48:54.000000000 -0500 -*************** -*** 141,148 **** - int sigalrm_seen; - -! static int reading; - static SigHandler *old_alrm; - static unsigned char delim; - - /* In all cases, SIGALRM just sets a flag that we check periodically. This - avoids problems with the semi-tricky stuff we do with the xfree of ---- 141,150 ---- - int sigalrm_seen; - -! static int reading, tty_modified; - static SigHandler *old_alrm; - static unsigned char delim; - -+ static struct ttsave termsave; -+ - /* In all cases, SIGALRM just sets a flag that we check periodically. This - avoids problems with the semi-tricky stuff we do with the xfree of -*************** -*** 189,193 **** - SHELL_VAR *var; - TTYSTRUCT ttattrs, ttset; -- struct ttsave termsave; - #if defined (ARRAY_VARS) - WORD_LIST *alist; ---- 191,194 ---- -*************** -*** 222,226 **** - USE_VAR(lastsig); - -! sigalrm_seen = reading = 0; - - i = 0; /* Index into the string that we are reading. */ ---- 223,227 ---- - USE_VAR(lastsig); - -! sigalrm_seen = reading = tty_modified = 0; - - i = 0; /* Index into the string that we are reading. */ -*************** -*** 439,442 **** ---- 440,445 ---- - goto assign_vars; - } -+ if (interactive_shell == 0) -+ initialize_terminating_signals (); - old_alrm = set_signal_handler (SIGALRM, sigalrm); - add_unwind_protect (reset_alarm, (char *)NULL); -*************** -*** 483,487 **** ---- 486,493 ---- - if (i < 0) - sh_ttyerror (1); -+ tty_modified = 1; - add_unwind_protect ((Function *)ttyrestore, (char *)&termsave); -+ if (interactive_shell == 0) -+ initialize_terminating_signals (); - } - } -*************** -*** 498,502 **** ---- 504,511 ---- - sh_ttyerror (1); - -+ tty_modified = 1; - add_unwind_protect ((Function *)ttyrestore, (char *)&termsave); -+ if (interactive_shell == 0) -+ initialize_terminating_signals (); - } - -*************** -*** 589,592 **** ---- 598,603 ---- - else - lastsig = 0; -+ if (terminating_signal && tty_modified) -+ ttyrestore (&termsave); /* fix terminal before exiting */ - CHECK_TERMSIG; - eof = 1; -*************** -*** 979,982 **** ---- 990,1007 ---- - { - ttsetattr (ttp->fd, ttp->attrs); -+ tty_modified = 0; -+ } -+ -+ void -+ read_tty_cleanup () -+ { -+ if (tty_modified) -+ ttyrestore (&termsave); -+ } -+ -+ int -+ read_tty_modified () -+ { -+ return (tty_modified); - } - -*** bash-4.3/builtins/common.h 2014-10-01 12:57:47.000000000 -0400 ---- builtins/common.h 2014-12-22 10:10:14.000000000 -0500 -*************** -*** 123,126 **** ---- 141,148 ---- - extern void getopts_reset __P((int)); - -+ /* Functions from read.def */ -+ extern void read_tty_cleanup __P((void)); -+ extern int read_tty_modified __P((void)); -+ - /* Functions from set.def */ - extern int minus_o_option_value __P((char *)); -*** bash-4.3/bashline.c 2014-05-14 09:22:39.000000000 -0400 ---- bashline.c 2014-09-08 11:28:56.000000000 -0400 -*************** -*** 203,206 **** ---- 203,207 ---- - extern int array_needs_making; - extern int posixly_correct, no_symbolic_links; -+ extern int sigalrm_seen; - extern char *current_prompt_string, *ps1_prompt; - extern STRING_INT_ALIST word_token_alist[]; -*************** -*** 4209,4214 **** - /* If we're going to longjmp to top_level, make sure we clean up readline. - check_signals will call QUIT, which will eventually longjmp to top_level, -! calling run_interrupt_trap along the way. */ -! if (interrupt_state) - rl_cleanup_after_signal (); - bashline_reset_event_hook (); ---- 4262,4268 ---- - /* If we're going to longjmp to top_level, make sure we clean up readline. - check_signals will call QUIT, which will eventually longjmp to top_level, -! calling run_interrupt_trap along the way. The check for sigalrm_seen is -! to clean up the read builtin's state. */ -! if (terminating_signal || interrupt_state || sigalrm_seen) - rl_cleanup_after_signal (); - bashline_reset_event_hook (); -*** bash-4.3/sig.c 2014-01-10 15:06:06.000000000 -0500 ---- sig.c 2014-09-08 11:26:33.000000000 -0400 -*************** -*** 533,538 **** - /* Set the event hook so readline will call it after the signal handlers - finish executing, so if this interrupted character input we can get -! quick response. */ -! if (interactive_shell && interactive && no_line_editing == 0) - bashline_set_event_hook (); - #endif ---- 533,540 ---- - /* Set the event hook so readline will call it after the signal handlers - finish executing, so if this interrupted character input we can get -! quick response. If readline is active or has modified the terminal we -! need to set this no matter what the signal is, though the check for -! RL_STATE_TERMPREPPED is possibly redundant. */ -! if (RL_ISSTATE (RL_STATE_SIGHANDLER) || RL_ISSTATE (RL_STATE_TERMPREPPED)) - bashline_set_event_hook (); - #endif -*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 32 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 33 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-034 - -Bug-Reported-by: Dreamcat4 -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2015-05/msg00001.html - -Bug-Description: - -If neither the -f nor -v options is supplied to unset, and a name argument is -found to be a function and unset, subsequent name arguments are not treated as -variables before attempting to unset a function by that name. - -Patch (apply with `patch -p0'): - -*** bash-4.3/builtins/set.def 2013-04-19 07:20:34.000000000 -0400 ---- builtins/set.def 2015-05-05 13:25:36.000000000 -0400 -*************** -*** 752,758 **** ---- 797,805 ---- - { - int unset_function, unset_variable, unset_array, opt, nameref, any_failed; -+ int global_unset_func, global_unset_var; - char *name; - - unset_function = unset_variable = unset_array = nameref = any_failed = 0; -+ global_unset_func = global_unset_var = 0; - - reset_internal_getopt (); -*************** -*** 762,769 **** - { - case 'f': -! unset_function = 1; - break; - case 'v': -! unset_variable = 1; - break; - case 'n': ---- 809,816 ---- - { - case 'f': -! global_unset_func = 1; - break; - case 'v': -! global_unset_var = 1; - break; - case 'n': -*************** -*** 778,782 **** - list = loptend; - -! if (unset_function && unset_variable) - { - builtin_error (_("cannot simultaneously unset a function and a variable")); ---- 825,829 ---- - list = loptend; - -! if (global_unset_func && global_unset_var) - { - builtin_error (_("cannot simultaneously unset a function and a variable")); -*************** -*** 796,799 **** ---- 843,849 ---- - name = list->word->word; - -+ unset_function = global_unset_func; -+ unset_variable = global_unset_var; -+ - #if defined (ARRAY_VARS) - unset_array = 0; - -*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 33 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 34 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-035 - -Bug-Reported-by: -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-08/msg00045.html - -Bug-Description: - -A locale with a long name can trigger a buffer overflow and core dump. This -applies on systems that do not have locale_charset in libc, are not using -GNU libiconv, and are not using the libintl that ships with bash in lib/intl. - -Patch (apply with `patch -p0'): - -*** bash-4.3/lib/sh/unicode.c 2014-01-30 16:47:19.000000000 -0500 ---- lib/sh/unicode.c 2015-05-01 08:58:30.000000000 -0400 -*************** -*** 79,83 **** - if (s) - { -! strcpy (charsetbuf, s+1); - t = strchr (charsetbuf, '@'); - if (t) ---- 79,84 ---- - if (s) - { -! strncpy (charsetbuf, s+1, sizeof (charsetbuf) - 1); -! charsetbuf[sizeof (charsetbuf) - 1] = '\0'; - t = strchr (charsetbuf, '@'); - if (t) -*************** -*** 85,89 **** - return charsetbuf; - } -! strcpy (charsetbuf, locale); - return charsetbuf; - } ---- 86,91 ---- - return charsetbuf; - } -! strncpy (charsetbuf, locale, sizeof (charsetbuf) - 1); -! charsetbuf[sizeof (charsetbuf) - 1] = '\0'; - return charsetbuf; - } -*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 34 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 35 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-036 - -Bug-Reported-by: emanuelczirai@cryptolab.net -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2015-02/msg00071.html - -Bug-Description: - -When evaluating and setting integer variables, and the assignment fails to -create a variable (for example, when performing an operation on an array -variable with an invalid subscript), bash attempts to dereference a null -pointer, causing a segmentation violation. - -Patch (apply with `patch -p0'): - -*** bash-4.3/variables.c 2015-01-23 20:39:27.000000000 -0500 ---- variables.c 2015-02-19 13:56:12.000000000 -0500 -*************** -*** 2834,2841 **** - v = bind_variable (lhs, rhs, 0); - -! if (v && isint) -! VSETATTR (v, att_integer); -! -! VUNSETATTR (v, att_invisible); - - return (v); ---- 2834,2843 ---- - v = bind_variable (lhs, rhs, 0); - -! if (v) -! { -! if (isint) -! VSETATTR (v, att_integer); -! VUNSETATTR (v, att_invisible); -! } - - return (v); -*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 35 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 36 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-037 - -Bug-Reported-by: Greg Wooledge -Bug-Reference-ID: <20150204144240.GN13956@eeg.ccf.org> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2015-02/msg00007.html - -Bug-Description: - -If an associative array uses `@' or `*' as a subscript, `declare -p' produces -output that cannot be reused as input. - -Patch (apply with `patch -p0'): - -*** bash-4.3/assoc.c 2011-11-05 16:39:05.000000000 -0400 ---- assoc.c 2015-02-04 15:28:25.000000000 -0500 -*************** -*** 437,440 **** ---- 440,445 ---- - if (sh_contains_shell_metas (tlist->key)) - istr = sh_double_quote (tlist->key); -+ else if (ALL_ELEMENT_SUB (tlist->key[0]) && tlist->key[1] == '\0') -+ istr = sh_double_quote (tlist->key); - else - istr = tlist->key; -*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 36 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 37 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-038 - -Bug-Reported-by: worley@alum.mit.edu (Dale R. Worley) -Bug-Reference-ID: <201406100051.s5A0pCeB014978@hobgoblin.ariadne.com> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-06/msg00028.html - -Bug-Description: - -There are a number of instances where `time' is not recognized as a reserved -word when the shell grammar says it should be. - -Patch (apply with `patch -p0'): - -*** bash-4.3/parse.y 2014-04-07 11:56:12.000000000 -0400 ---- parse.y 2014-06-11 10:25:53.000000000 -0400 -*************** -*** 2819,2827 **** - case OR_OR: - case '&': - case DO: - case THEN: - case ELSE: - case '{': /* } */ -! case '(': /* ) */ - case BANG: /* ! time pipeline */ - case TIME: /* time time pipeline */ ---- 2819,2832 ---- - case OR_OR: - case '&': -+ case WHILE: - case DO: -+ case UNTIL: -+ case IF: - case THEN: -+ case ELIF: - case ELSE: - case '{': /* } */ -! case '(': /* )( */ -! case ')': /* only valid in case statement */ - case BANG: /* ! time pipeline */ - case TIME: /* time time pipeline */ -*** bash-4.3/y.tab.c 2014-10-05 13:52:50.000000000 -0400 ---- y.tab.c 2015-05-19 15:08:43.000000000 -0400 -*************** -*** 5131,5139 **** - case OR_OR: - case '&': - case DO: - case THEN: - case ELSE: - case '{': /* } */ -! case '(': /* ) */ - case BANG: /* ! time pipeline */ - case TIME: /* time time pipeline */ ---- 5131,5144 ---- - case OR_OR: - case '&': -+ case WHILE: - case DO: -+ case UNTIL: -+ case IF: - case THEN: -+ case ELIF: - case ELSE: - case '{': /* } */ -! case '(': /* )( */ -! case ')': /* only valid in case statement */ - case BANG: /* ! time pipeline */ - case TIME: /* time time pipeline */ -*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 37 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 38 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-039 - -Bug-Reported-by: SN -Bug-Reference-ID: <54E2554C.205@gazeta.pl> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2015-02/msg00060.html - -Bug-Description: - -Using the output of `declare -p' when run in a function can result in variables -that are invisible to `declare -p'. This problem occurs when an assignment -builtin such as `declare' receives a quoted compound array assignment as one of -its arguments. - -Patch (apply with `patch -p0'): - -*** bash-4.3/arrayfunc.c 2014-10-01 13:08:48.000000000 -0400 ---- arrayfunc.c 2015-02-19 14:33:05.000000000 -0500 -*************** -*** 405,408 **** ---- 405,411 ---- - else - array_insert (a, i, l->word->word); -+ -+ VUNSETATTR (var, att_invisible); /* no longer invisible */ -+ - return var; - } -*************** -*** 635,638 **** ---- 638,645 ---- - if (nlist) - dispose_words (nlist); -+ -+ if (var) -+ VUNSETATTR (var, att_invisible); /* no longer invisible */ -+ - return (var); - } -*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 38 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 39 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-040 - -Bug-Reported-by: Jean Delvare -Bug-Reference-ID: <20150609180231.5f463695@endymion.delvare> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2015-06/msg00033.html - -Bug-Description: - -There is a memory leak that occurs when bash expands an array reference on -the rhs of an assignment statement. - -Patch (apply with `patch -p0'): - -*** bash-4.3/subst.c 2014-10-01 12:57:47.000000000 -0400 ---- subst.c 2015-06-22 09:16:53.000000000 -0400 -*************** -*** 5783,5787 **** - if (pflags & PF_ASSIGNRHS) - { -! temp = array_variable_name (name, &tt, (int *)0); - if (ALL_ELEMENT_SUB (tt[0]) && tt[1] == ']') - temp = array_value (name, quoted|Q_DOUBLE_QUOTES, 0, &atype, &ind); ---- 5783,5787 ---- - if (pflags & PF_ASSIGNRHS) - { -! var = array_variable_part (name, &tt, (int *)0); - if (ALL_ELEMENT_SUB (tt[0]) && tt[1] == ']') - temp = array_value (name, quoted|Q_DOUBLE_QUOTES, 0, &atype, &ind); -*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 39 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 40 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-041 - -Bug-Reported-by: Hanno Böck -Bug-Reference-ID: <20150623131106.6f111da9@pc1>, <20150707004640.0e61d2f9@pc1> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2015-06/msg00089.html, - http://lists.gnu.org/archive/html/bug-bash/2015-07/msg00018.html - -Bug-Description: - -There are several out-of-bounds read errors that occur when completing command -lines where assignment statements appear before the command name. The first -two appear only when programmable completion is enabled; the last one only -happens when listing possible completions. - -Patch (apply with `patch -p0'): - -*** bash-4.3/bashline.c 2014-12-29 14:39:43.000000000 -0500 ---- bashline.c 2015-08-12 10:21:58.000000000 -0400 -*************** -*** 1469,1476 **** ---- 1469,1489 ---- - os = start; - n = 0; -+ was_assignment = 0; - s = find_cmd_start (os); - e = find_cmd_end (end); - do - { -+ /* Don't read past the end of rl_line_buffer */ -+ if (s > rl_end) -+ { -+ s1 = s = e1; -+ break; -+ } -+ /* Or past point if point is within an assignment statement */ -+ else if (was_assignment && s > rl_point) -+ { -+ s1 = s = e1; -+ break; -+ } - /* Skip over assignment statements preceding a command name. If we - don't find a command name at all, we can perform command name -*** bash-4.3/lib/readline/complete.c 2013-10-14 09:27:10.000000000 -0400 ---- lib/readline/complete.c 2015-07-31 09:34:39.000000000 -0400 -*************** -*** 690,693 **** ---- 690,695 ---- - if (temp == 0 || *temp == '\0') - return (pathname); -+ else if (temp[1] == 0 && temp == pathname) -+ return (pathname); - /* If the basename is NULL, we might have a pathname like '/usr/src/'. - Look for a previous slash and, if one is found, return the portion -*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 40 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 41 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-042 - -Bug-Reported-by: Nathan Neulinger -Bug-Reference-ID: <558EFDF2.7060402@neulinger.org> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2015-06/msg00096.html - -Bug-Description: - -There is a problem when parsing command substitutions containing `case' -commands within pipelines that causes the parser to not correctly identify -the end of the command substitution. - -Patch (apply with `patch -p0'): - -*** bash-4.3/parse.y 2015-05-18 19:27:05.000000000 -0400 ---- parse.y 2015-06-29 10:59:27.000000000 -0400 -*************** -*** 3709,3712 **** ---- 3709,3714 ---- - tflags |= LEX_INWORD; - lex_wlen = 0; -+ if (tflags & LEX_RESWDOK) -+ lex_rwlen = 0; - } - } -*** bash-4.3/y.tab.c 2015-05-18 19:27:05.000000000 -0400 ---- y.tab.c 2015-06-29 10:59:27.000000000 -0400 -*************** -*** 6021,6024 **** ---- 6021,6026 ---- - tflags |= LEX_INWORD; - lex_wlen = 0; -+ if (tflags & LEX_RESWDOK) -+ lex_rwlen = 0; - } - } -*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 41 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 42 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-043 - -Bug-Reported-by: lolilolicon -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-08/msg00040.html - -Bug-Description: - -When the lastpipe option is enabled, the last component can contain nested -pipelines and cause a segmentation fault under certain circumestances. - -Patch (apply with `patch -p0'): - -*** bash-4.3/execute_cmd.c 2014-07-30 10:26:52.000000000 -0400 ---- execute_cmd.c 2014-08-15 08:55:24.000000000 -0400 -*************** -*** 2406,2412 **** - { - #if defined (JOB_CONTROL) -! append_process (savestring (the_printed_command), dollar_dollar_pid, exec_result, lastpipe_jid); -! #endif - lstdin = wait_for (lastpid); - #if defined (JOB_CONTROL) - /* If wait_for removes the job from the jobs table, use result of last ---- 2433,2447 ---- - { - #if defined (JOB_CONTROL) -! if (INVALID_JOB (lastpipe_jid) == 0) -! { -! append_process (savestring (the_printed_command_except_trap), dollar_dollar_pid, exec_result, lastpipe_jid); -! lstdin = wait_for (lastpid); -! } -! else -! lstdin = wait_for_single_pid (lastpid); /* checks bgpids list */ -! #else - lstdin = wait_for (lastpid); -+ #endif -+ - #if defined (JOB_CONTROL) - /* If wait_for removes the job from the jobs table, use result of last -*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 42 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 43 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-044 - -Bug-Reported-by: Ondrej Oprala -Bug-Reference-ID: <539ED55B.2080103@redhat.com> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-06/msg00046.html - -Bug-Description: - -A typo prevents the `compat42' shopt option from working as intended. - -Patch (apply with `patch -p0'): - -diff -rC 2 bash-4.3.42/builtins/shopt.def bash-4.3.43/builtins/shopt.def -*** bash-4.3.42/builtins/shopt.def 2013-02-27 09:43:20.000000000 -0500 ---- builtins/shopt.def 2015-10-16 11:25:28.000000000 -0400 -*************** -*** 161,165 **** - { "compat40", &shopt_compat40, set_compatibility_level }, - { "compat41", &shopt_compat41, set_compatibility_level }, -! { "compat42", &shopt_compat41, set_compatibility_level }, - #if defined (READLINE) - { "complete_fullquote", &complete_fullquote, (shopt_set_func_t *)NULL}, ---- 161,165 ---- - { "compat40", &shopt_compat40, set_compatibility_level }, - { "compat41", &shopt_compat41, set_compatibility_level }, -! { "compat42", &shopt_compat42, set_compatibility_level }, - #if defined (READLINE) - { "complete_fullquote", &complete_fullquote, (shopt_set_func_t *)NULL}, - -*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 43 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 44 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-045 - -Bug-Reported-by: Basin Ilya -Bug-Reference-ID: <5624C0AC.8070802@gmail.com> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2015-10/msg00141.html - -Bug-Description: - -If a file open attempted as part of a redirection fails because it is interrupted -by a signal, the shell needs to process any pending traps to allow the redirection -to be canceled. - -Patch (apply with `patch -p0'): - -*** bash-20150109/redir.c 2014-12-03 10:47:38.000000000 -0500 ---- redir.c 2015-01-16 10:15:47.000000000 -0500 -*************** -*** 672,676 **** - e = errno; - if (fd < 0 && e == EINTR) -! QUIT; - errno = e; - } ---- 672,679 ---- - e = errno; - if (fd < 0 && e == EINTR) -! { -! QUIT; -! run_pending_traps (); -! } - errno = e; - } - -*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 44 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 45 - - #endif /* _PATCHLEVEL_H_ */ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-046 - -Bug-Reported-by: Sergey Tselikh -Bug-Reference-ID: <20150816110235.91f3e12e3f20d20cdaad963e@gmail.com> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2015-08/msg00080.html - -Bug-Description: - -An incorrect conversion from an indexed to associative array can result in a -core dump. - -Patch (apply with `patch -p0'): - -*** bash-4.3/subst.c 2015-08-13 11:32:54.000000000 -0400 ---- subst.c 2015-08-18 10:13:59.000000000 -0400 -*************** -*** 9562,9566 **** - opts[opti] = '\0'; - if (opti > 0) -! make_internal_declare (tlist->word->word, opts); - - t = do_word_assignment (tlist->word, 0); ---- 9562,9573 ---- - opts[opti] = '\0'; - if (opti > 0) -! { -! t = make_internal_declare (tlist->word->word, opts); -! if (t != EXECUTION_SUCCESS) -! { -! last_command_exit_value = t; -! exp_jump_to_top_level (DISCARD); -! } -! } - - t = do_word_assignment (tlist->word, 0); - -*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 45 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 46 - - #endif /* _PATCHLEVEL_H_ */ ---- bash-4.3/configure.orig 2014-02-11 15:38:00.000000000 +0000 -+++ bash-4.3/configure 2016-03-02 10:32:54.098832248 +0000 -@@ -2870,6 +2870,7 @@ - *-opennt*|*-interix*) opt_bash_malloc=no ;; # Interix, now owned by Microsoft - *-nsk*) opt_bash_malloc=no ;; # HP NonStop - *-haiku*) opt_bash_malloc=no ;; # Haiku OS -+*-midipix*) opt_bash_malloc=no ;; # Midipix - esac - - # memory scrambling on free() -@@ -5167,13 +5168,13 @@ - if test "x$ac_cv_lib_curses_tgetent" = xyes; then : - bash_cv_termcap_lib=libcurses - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -lncurses" >&5 --$as_echo_n "checking for tgetent in -lncurses... " >&6; } --if ${ac_cv_lib_ncurses_tgetent+:} false; then : -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -lncursesw" >&5 -+$as_echo_n "checking for tgetent in -lncursesw... " >&6; } -+if ${ac_cv_lib_ncursesw_tgetent+:} false; then : - $as_echo_n "(cached) " >&6 - else - ac_check_lib_save_LIBS=$LIBS --LIBS="-lncurses $LIBS" -+LIBS="-lncursesw $LIBS" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - -@@ -5193,18 +5194,18 @@ - } - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : -- ac_cv_lib_ncurses_tgetent=yes -+ ac_cv_lib_ncursesw_tgetent=yes - else -- ac_cv_lib_ncurses_tgetent=no -+ ac_cv_lib_ncursesw_tgetent=no - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LIBS=$ac_check_lib_save_LIBS - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncurses_tgetent" >&5 --$as_echo "$ac_cv_lib_ncurses_tgetent" >&6; } --if test "x$ac_cv_lib_ncurses_tgetent" = xyes; then : -- bash_cv_termcap_lib=libncurses -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncursesw_tgetent" >&5 -+$as_echo "$ac_cv_lib_ncursesw_tgetent" >&6; } -+if test "x$ac_cv_lib_ncursesw_tgetent" = xyes; then : -+ bash_cv_termcap_lib=libncursesw - else - bash_cv_termcap_lib=gnutermcap - fi -@@ -5235,8 +5236,8 @@ - elif test $bash_cv_termcap_lib = libtinfo; then - TERMCAP_LIB=-ltinfo - TERMCAP_DEP= --elif test $bash_cv_termcap_lib = libncurses; then --TERMCAP_LIB=-lncurses -+elif test $bash_cv_termcap_lib = libncursesw; then -+TERMCAP_LIB=-lncursesw - TERMCAP_DEP= - elif test $bash_cv_termcap_lib = libc; then - TERMCAP_LIB= -@@ -15708,13 +15709,13 @@ - if test "x$ac_cv_lib_curses_tgetent" = xyes; then : - bash_cv_termcap_lib=libcurses - else -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -lncurses" >&5 --$as_echo_n "checking for tgetent in -lncurses... " >&6; } --if ${ac_cv_lib_ncurses_tgetent+:} false; then : -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -lncursesw" >&5 -+$as_echo_n "checking for tgetent in -lncursesw... " >&6; } -+if ${ac_cv_lib_ncursesw_tgetent+:} false; then : - $as_echo_n "(cached) " >&6 - else - ac_check_lib_save_LIBS=$LIBS --LIBS="-lncurses $LIBS" -+LIBS="-lncursesw $LIBS" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - -@@ -15734,18 +15735,18 @@ - } - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : -- ac_cv_lib_ncurses_tgetent=yes -+ ac_cv_lib_ncursesw_tgetent=yes - else -- ac_cv_lib_ncurses_tgetent=no -+ ac_cv_lib_ncursesw_tgetent=no - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LIBS=$ac_check_lib_save_LIBS - fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncurses_tgetent" >&5 --$as_echo "$ac_cv_lib_ncurses_tgetent" >&6; } --if test "x$ac_cv_lib_ncurses_tgetent" = xyes; then : -- bash_cv_termcap_lib=libncurses -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncursesw_tgetent" >&5 -+$as_echo "$ac_cv_lib_ncursesw_tgetent" >&6; } -+if test "x$ac_cv_lib_ncursesw_tgetent" = xyes; then : -+ bash_cv_termcap_lib=libncursesw - else - bash_cv_termcap_lib=gnutermcap - fi -@@ -15776,8 +15777,8 @@ - elif test $bash_cv_termcap_lib = libtinfo; then - TERMCAP_LIB=-ltinfo - TERMCAP_DEP= --elif test $bash_cv_termcap_lib = libncurses; then --TERMCAP_LIB=-lncurses -+elif test $bash_cv_termcap_lib = libncursesw; then -+TERMCAP_LIB=-lncursesw - TERMCAP_DEP= - elif test $bash_cv_termcap_lib = libc; then - TERMCAP_LIB= ---- bash-4.3/lib/intl/libgnuintl.h.in.orig 2009-01-04 19:32:30.000000000 +0000 -+++ bash-4.3/lib/intl/libgnuintl.h.in 2016-05-30 22:03:02.589798655 +0000 -@@ -107,7 +107,7 @@ - #endif - /* Auxiliary macros. */ - #ifdef _INTL_REDIRECT_ASM --# define _INTL_ASM(cname) __asm__ (_INTL_ASMNAME (__USER_LABEL_PREFIX__, #cname)) -+# define _INTL_ASM(cname) __asm__ (#cname) - # define _INTL_ASMNAME(prefix,cnamestring) _INTL_STRINGIFY (prefix) cnamestring - # define _INTL_STRINGIFY(prefix) #prefix - #else diff --git a/binutils-2.24.51.local.patch b/binutils-2.24.51.local.patch deleted file mode 100644 index 1f983f04..00000000 --- a/binutils-2.24.51.local.patch +++ /dev/null @@ -1,739 +0,0 @@ -diff -ru --new-file a/bfd/midipix.h b/bfd/midipix.h ---- a/bfd/midipix.h 1969-12-31 19:00:00.000000000 -0500 -+++ b/bfd/midipix.h 2015-03-11 17:23:18.492453732 -0400 -@@ -0,0 +1,10 @@ -+#ifndef MIDIPIX_H -+#define MIDIPIX_H -+ -+#define PE_TARGET_MIDIPIX -+ -+#define PE_DSO_SUFFIX ".so" -+#define PE_DSOLIB_SUFFIX ".dso.a" -+#define PE_IMPLIB_SUFFIX ".lib.a" -+ -+#endif ---- a/ld/configure 2014-07-03 01:37:48.000000000 -0400 -+++ b/ld/configure 2015-03-11 20:01:08.888756786 -0400 -@@ -19773,3 +19773,23 @@ - $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} - fi - -+sed -i -e 's/@pe_executable_name@/'$PE_EXECUTABLE_NAME'/g' Makefile -+sed -i -e 's/@pe_crt_section@/'$PE_CRT_SECTION'/g' Makefile -+sed -i -e 's/@pe_cygwin_fork_support@/'$PE_CYGWIN_FORK_SUPPORT'/g' Makefile -+ -+#PE custom import library support -+if [ -f peimplib.h ]; then -+ echo 'build directory is not clean (peimplib.h already exists)' -+ exit 2 -+fi -+ -+touch peimplib.h || exit 2 -+ -+case $target_os in -+ *midipix*) -+ cat >> peimplib.h << EOF -+ -+/* midipix supersystem support */ -+#include "midipix.h" -+EOF -+esac -diff -ru --new-file a/ld/emultempl/pe.em b/ld/emultempl/pe.em ---- a/ld/emultempl/pe.em 2014-07-03 01:37:48.000000000 -0400 -+++ b/ld/emultempl/pe.em 2015-11-25 09:02:09.729144140 -0500 -@@ -35,6 +35,18 @@ - only determine if the subsystem is console or windows in order to select - the correct entry point by default. */ - -+ -+#include "peimplib.h" -+ -+#ifndef PE_IMPLIB_SUFFIX -+#define PE_IMPLIB_SUFFIX ".dll.a" -+#endif -+ -+#ifndef PE_DSO_SUFFIX -+#define PE_DSO_SUFFIX ".dll" -+#endif -+ -+ - #define TARGET_IS_${EMULATION_NAME} - - /* Do this before including bfd.h, so we prototype the right functions. */ -@@ -132,7 +144,7 @@ - static char * thumb_entry_symbol = NULL; - static lang_assignment_statement_type *image_base_statement = 0; - static unsigned short pe_dll_characteristics = 0; --static bfd_boolean insert_timestamp = TRUE; -+static bfd_boolean insert_timestamp = 0; - static const char *emit_build_id; - - #ifdef DLL_SUPPORT -@@ -471,8 +483,8 @@ - specifically set with --image-base\n")); - fprintf (file, _(" --disable-auto-image-base Do not auto-choose image base. (default)\n")); - fprintf (file, _(" --dll-search-prefix= When linking dynamically to a dll without\n\ -- an importlib, use .dll\n\ -- in preference to lib.dll \n")); -+ an importlib, use "PE_DSO_SUFFIX"\n\ -+ in preference to lib"PE_DSO_SUFFIX" \n")); - fprintf (file, _(" --enable-auto-import Do sophisticated linking of _sym to\n\ - __imp_sym for DATA references\n")); - fprintf (file, _(" --disable-auto-import Do not auto-import DATA items from DLLs\n")); -@@ -1698,7 +1710,7 @@ - extension, and use that for the remainder of the - comparisons. */ - pnt = strrchr (is3->the_bfd->filename, '.'); -- if (pnt != NULL && filename_cmp (pnt, ".dll") == 0) -+ if (pnt != NULL && filename_cmp (pnt, PE_DSO_SUFFIX) == 0) - break; - } - -@@ -1733,7 +1745,7 @@ - then leave the filename alone. */ - pnt = strrchr (is->the_bfd->filename, '.'); - -- if (is_ms_arch && (filename_cmp (pnt, ".dll") == 0)) -+ if (is_ms_arch && (filename_cmp (pnt, PE_DSO_SUFFIX) == 0)) - { - int idata2 = 0, reloc_count=0; - asection *sec; -@@ -2298,10 +2310,14 @@ - } - libname_fmt [] = - { -+ /* optionally support ldso-specific import libraries */ -+ #ifdef PE_DSOLIB_SUFFIX -+ { "lib%s"PE_DSOLIB_SUFFIX, FALSE }, -+ #endif - /* Preferred explicit import library for dll's. */ -- { "lib%s.dll.a", FALSE }, -+ { "lib%s"PE_IMPLIB_SUFFIX, FALSE }, - /* Alternate explicit import library for dll's. */ -- { "%s.dll.a", FALSE }, -+ { "%s"PE_IMPLIB_SUFFIX, FALSE }, - /* "libfoo.a" could be either an import lib or a static lib. - For backwards compatibility, libfoo.a needs to precede - libfoo.dll and foo.dll in the search. */ -@@ -2310,10 +2326,10 @@ - { "%s.lib", FALSE }, - #ifdef DLL_SUPPORT - /* Try "foo.dll" (preferred dll name, if specified). */ -- { "%s%s.dll", TRUE }, -+ { "%s%s"PE_DSO_SUFFIX, TRUE }, - #endif - /* Try "libfoo.dll" (default preferred dll name). */ -- { "lib%s.dll", FALSE }, -+ { "lib%s"PE_DSO_SUFFIX, FALSE }, - /* Finally try 'native' dll name "foo.dll". */ - { "%s.dll", FALSE }, - /* Note: If adding more formats to this table, make sure to check to -diff -ru --new-file a/ld/emultempl/pep.em b/ld/emultempl/pep.em ---- a/ld/emultempl/pep.em 2014-07-03 01:37:48.000000000 -0400 -+++ b/ld/emultempl/pep.em 2015-11-25 09:02:21.153143987 -0500 -@@ -42,6 +42,18 @@ - /* For WINDOWS_XP64 and higher */ - /* Based on pe.em, but modified for 64 bit support. */ - -+ -+#include "peimplib.h" -+ -+#ifndef PE_IMPLIB_SUFFIX -+#define PE_IMPLIB_SUFFIX ".dll.a" -+#endif -+ -+#ifndef PE_DSO_SUFFIX -+#define PE_DSO_SUFFIX ".dll" -+#endif -+ -+ - #define TARGET_IS_${EMULATION_NAME} - - #define COFF_IMAGE_WITH_PE -@@ -147,7 +159,7 @@ - static int support_old_code = 0; - static lang_assignment_statement_type *image_base_statement = 0; - static unsigned short pe_dll_characteristics = 0; --static bfd_boolean insert_timestamp = TRUE; -+static bfd_boolean insert_timestamp = 0; - static const char *emit_build_id; - - #ifdef DLL_SUPPORT -@@ -434,8 +446,8 @@ - unless user specifies one\n")); - fprintf (file, _(" --disable-auto-image-base Do not auto-choose image base. (default)\n")); - fprintf (file, _(" --dll-search-prefix= When linking dynamically to a dll without\n\ -- an importlib, use .dll\n\ -- in preference to lib.dll \n")); -+ an importlib, use "PE_DSO_SUFFIX"\n\ -+ in preference to lib"PE_DSO_SUFFIX" \n")); - fprintf (file, _(" --enable-auto-import Do sophisticated linking of _sym to\n\ - __imp_sym for DATA references\n")); - fprintf (file, _(" --disable-auto-import Do not auto-import DATA items from DLLs\n")); -@@ -1635,7 +1647,7 @@ - extension, and use that for the remainder of the - comparisons. */ - pnt = strrchr (is3->the_bfd->filename, '.'); -- if (pnt != NULL && filename_cmp (pnt, ".dll") == 0) -+ if (pnt != NULL && filename_cmp (pnt, PE_DSO_SUFFIX) == 0) - break; - } - -@@ -1670,7 +1682,7 @@ - then leave the filename alone. */ - pnt = strrchr (is->the_bfd->filename, '.'); - -- if (is_ms_arch && (filename_cmp (pnt, ".dll") == 0)) -+ if (is_ms_arch && (filename_cmp (pnt, PE_DSO_SUFFIX) == 0)) - { - int idata2 = 0, reloc_count=0; - asection *sec; -@@ -2062,10 +2074,14 @@ - } - libname_fmt [] = - { -+ /* optionally support ldso-specific import libraries */ -+ #ifdef PE_DSOLIB_SUFFIX -+ { "lib%s"PE_DSOLIB_SUFFIX, FALSE }, -+ #endif - /* Preferred explicit import library for dll's. */ -- { "lib%s.dll.a", FALSE }, -+ { "lib%s"PE_IMPLIB_SUFFIX, FALSE }, - /* Alternate explicit import library for dll's. */ -- { "%s.dll.a", FALSE }, -+ { "%s"PE_IMPLIB_SUFFIX, FALSE }, - /* "libfoo.a" could be either an import lib or a static lib. - For backwards compatibility, libfoo.a needs to precede - libfoo.dll and foo.dll in the search. */ -@@ -2074,10 +2090,10 @@ - { "%s.lib", FALSE }, - #ifdef DLL_SUPPORT - /* Try "foo.dll" (preferred dll name, if specified). */ -- { "%s%s.dll", TRUE }, -+ { "%s%s"PE_DSO_SUFFIX, TRUE }, - #endif - /* Try "libfoo.dll" (default preferred dll name). */ -- { "lib%s.dll", FALSE }, -+ { "lib%s"PE_DSO_SUFFIX, FALSE }, - /* Finally try 'native' dll name "foo.dll". */ - { "%s.dll", FALSE }, - /* Note: If adding more formats to this table, make sure to check to -diff -ru --new-file a/ld/configure.tgt b/ld/configure.tgt ---- a/ld/configure.tgt 2014-07-03 01:37:48.000000000 -0400 -+++ b/ld/configure.tgt 2015-03-11 20:09:20.564772519 -0400 -@@ -319,6 +319,11 @@ - test "$targ" != "$host" && LIB_PATH='${tooldir}/lib/w32api' ;; - i[3-7]86-*-mingw32*) targ_emul=i386pe ; - targ_extra_ofiles="deffilep.o pe-dll.o" ;; -+i[3-7]86-*-midipix*) targ_emul=i386pe ; -+ targ_extra_ofiles="deffilep.o pe-dll.o" ; -+ PE_EXECUTABLE_NAME=a.out ; -+ PE_CRT_SECTION=no ; -+ PE_CYGWIN_FORK_SUPPORT=no ;; - x86_64-*-pe | x86_64-*-pep) targ_emul=i386pep ; - targ_extra_emuls=i386pe ; - targ_extra_ofiles="deffilep.o pep-dll.o pe-dll.o" ;; -@@ -329,7 +333,13 @@ - x86_64-*-mingw*) targ_emul=i386pep ; - targ_extra_emuls=i386pe - targ_extra_ofiles="deffilep.o pep-dll.o pe-dll.o" ;; --i[3-7]86-*-interix*) targ_emul=i386pe_posix; -+x86_64-*-midipix*) targ_emul=i386pep ; -+ targ_extra_emuls=i386pe ; -+ targ_extra_ofiles="deffilep.o pep-dll.o pe-dll.o" ; -+ PE_EXECUTABLE_NAME=a.out ; -+ PE_CRT_SECTION=no ; -+ PE_CYGWIN_FORK_SUPPORT=no ;; -+i[3-7]86-*-interix*) targ_emul=i386pe_posix ; - targ_extra_ofiles="deffilep.o pe-dll.o" ;; - i[3-7]86-*-beospe*) targ_emul=i386beos ;; - i[3-7]86-*-beos*) targ_emul=elf_i386_be ;; -diff -ru --new-file a/ld/Makefile.in b/ld/Makefile.in ---- a/ld/Makefile.in 2014-07-03 01:37:48.000000000 -0400 -+++ b/ld/Makefile.in 2015-03-11 20:09:38.972773108 -0400 -@@ -54,6 +54,9 @@ - host_triplet = @host@ - target_triplet = @target@ - bin_PROGRAMS = ld-new$(EXEEXT) -+PE_EXECUTABLE_NAME = @pe_executable_name@ -+PE_CRT_SECTION = @pe_crt_section@ -+PE_CYGWIN_FORK_SUPPORT = @pe_cygwin_fork_support@ - - # Automake 1.9 will only build info files in the objdir if they are - # mentioned in DISTCLEANFILES. It doesn't have to be unconditional, -@@ -831,7 +833,7 @@ - POTFILES = $(CFILES) $(HFILES) $(EMULATION_FILES) - - # These all start with e so 'make clean' can find them. --GENSCRIPTS = LIB_PATH='${LIB_PATH}' $(SHELL) $(srcdir)/genscripts.sh "${srcdir}" "${libdir}" "${prefix}" "${exec_prefix}" @host@ @target@ @target_alias@ "@EMULATION_LIBPATH@" "@NATIVE_LIB_DIRS@" @use_sysroot@ @enable_initfini_array@ -+GENSCRIPTS = EXECUTABLE_NAME='${PE_EXECUTABLE_NAME}' PE_CRT_SECTION='${PE_CRT_SECTION}' PE_CYGWIN_FORK_SUPPORT='${PE_CYGWIN_FORK_SUPPORT}' LIB_PATH='${LIB_PATH}' $(SHELL) $(srcdir)/genscripts.sh "${srcdir}" "${libdir}" "${prefix}" "${exec_prefix}" @host@ @target@ @target_alias@ "@EMULATION_LIBPATH@" "@NATIVE_LIB_DIRS@" @use_sysroot@ @enable_initfini_array@ - GEN_DEPENDS = $(srcdir)/genscripts.sh stringify.sed - ELF_DEPS = $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/elf-generic.em $(srcdir)/scripttempl/DWARF.sc - ELF_GEN_DEPS = $(srcdir)/emultempl/generic.em $(srcdir)/emultempl/elf-generic.em $(srcdir)/emultempl/genelf.em $(srcdir)/scripttempl/DWARF.sc -diff -ru --new-file a/ld/scripttempl/pep.sc b/ld/scripttempl/pep.sc ---- a/ld/scripttempl/pep.sc 2014-07-03 01:37:48.000000000 -0400 -+++ b/ld/scripttempl/pep.sc 2015-03-11 20:10:05.324773952 -0400 -@@ -92,12 +92,17 @@ - ${RELOCATING+ *(.gcc_except_table)} - } - -+EOF -+if [ x"$PE_CYGWIN_FORK_SUPPORT" != xno ]; then cat << EOF - /* The Cygwin32 library uses a section to avoid copying certain data - on fork. This used to be named ".data$nocopy". The linker used - to include this between __data_start__ and __data_end__, but that - breaks building the cygwin32 dll. Instead, we name the section - ".data_cygwin_nocopy" and explicitly include it after __data_end__. */ - -+EOF -+fi -+cat << EOF - .data ${RELOCATING+BLOCK(__section_alignment__)} : - { - ${RELOCATING+__data_start__ = . ;} -@@ -106,7 +111,12 @@ - ${R_DATA} - *(.jcr) - ${RELOCATING+__data_end__ = . ;} -+EOF -+if [ x"$PE_CYGWIN_FORK_SUPPORT" != xno ]; then cat << EOF - ${RELOCATING+*(.data_cygwin_nocopy)} -+EOF -+fi -+cat << EOF - } - - .rdata ${RELOCATING+BLOCK(__section_alignment__)} : -@@ -170,6 +180,8 @@ - ${RELOCATING+__IAT_end__ = .;} - ${R_IDATA67} - } -+EOF -+if [ x"$PE_CRT_SECTION" != xno ]; then cat << EOF - .CRT ${RELOCATING+BLOCK(__section_alignment__)} : - { - ${RELOCATING+___crt_xc_start__ = . ;} -@@ -188,6 +200,9 @@ - ${R_CRT_XT} - ${RELOCATING+___crt_xt_end__ = . ;} - } -+EOF -+fi -+cat << EOF - - /* Windows TLS expects .tls\$AAA to be at the start and .tls\$ZZZ to be - at the end of the .tls section. This is important because _tls_start MUST -diff -ru --new-file a/ld/scripttempl/pe.sc b/ld/scripttempl/pe.sc ---- a/ld/scripttempl/pe.sc 2014-07-03 01:37:48.000000000 -0400 -+++ b/ld/scripttempl/pe.sc 2015-03-11 20:10:10.036774102 -0400 -@@ -92,12 +92,17 @@ - ${RELOCATING+ *(.gcc_except_table)} - } - -+EOF -+if [ x"$PE_CYGWIN_FORK_SUPPORT" != xno ]; then cat << EOF - /* The Cygwin32 library uses a section to avoid copying certain data - on fork. This used to be named ".data$nocopy". The linker used - to include this between __data_start__ and __data_end__, but that - breaks building the cygwin32 dll. Instead, we name the section - ".data_cygwin_nocopy" and explicitly include it after __data_end__. */ - -+EOF -+fi -+cat << EOF - .data ${RELOCATING+BLOCK(__section_alignment__)} : - { - ${RELOCATING+__data_start__ = . ;} -@@ -106,7 +111,12 @@ - ${R_DATA} - *(.jcr) - ${RELOCATING+__data_end__ = . ;} -+EOF -+if [ x"$PE_CYGWIN_FORK_SUPPORT" != xno ]; then cat << EOF - ${RELOCATING+*(.data_cygwin_nocopy)} -+EOF -+fi -+cat << EOF - } - - .rdata ${RELOCATING+BLOCK(__section_alignment__)} : -@@ -165,6 +175,8 @@ - ${RELOCATING+__IAT_end__ = .;} - ${R_IDATA67} - } -+EOF -+if [ x"$PE_CRT_SECTION" != xno ]; then cat << EOF - .CRT ${RELOCATING+BLOCK(__section_alignment__)} : - { - ${RELOCATING+___crt_xc_start__ = . ;} -@@ -183,6 +195,9 @@ - ${R_CRT_XT} - ${RELOCATING+___crt_xt_end__ = . ;} - } -+EOF -+fi -+cat << EOF - - /* Windows TLS expects .tls\$AAA to be at the start and .tls\$ZZZ to be - at the end of section. This is important because _tls_start MUST -diff -ru --new-file a/binutils/winduni.c b/binutils/winduni.c ---- a/binutils/winduni.c 2014-07-03 01:37:23.000000000 -0400 -+++ b/binutils/winduni.c 2015-02-14 11:18:32.987163288 -0500 -@@ -57,7 +57,7 @@ - /* Codepages mapped. */ - static local_iconv_map codepages[] = - { -- { 0, "MS-ANSI" }, -+ { 0, "cp1252" }, - { 1, "WINDOWS-1252" }, - { 437, "MS-ANSI" }, - { 737, "MS-GREEK" }, -diff -ru a/ld/pe-dll.c b/ld/pe-dll.c ---- a/ld/pe-dll.c 2014-07-03 01:37:48.000000000 -0400 -+++ b/ld/pe-dll.c 2015-06-13 20:08:00.160401506 -0400 -@@ -40,6 +40,7 @@ - #include "coff/internal.h" - #include "../bfd/libcoff.h" - #include "deffile.h" -+#include "peimplib.h" - - #ifdef pe_use_x86_64 - -@@ -234,7 +235,11 @@ - { STRING_COMMA_LEN ("impure_ptr") }, - { STRING_COMMA_LEN ("_impure_ptr") }, - { STRING_COMMA_LEN ("_fmode") }, -+ #ifdef PE_TARGET_MIDIPIX -+ /* (default) excluded symbols are defined by the caller (specs, etc.) */ -+ #else - { STRING_COMMA_LEN ("environ") }, -+ #endif - { NULL, 0 } - }; - -@@ -644,10 +649,13 @@ - { - int i, j; - struct bfd_link_hash_entry *blhe; -+ struct bfd_link_hash_entry *blhew; - bfd *b; - struct bfd_section *s; - def_file_export *e = 0; - bfd_boolean resort_needed; -+ char *weaksym; -+ char *objsym; - - if (!pe_def_file) - pe_def_file = def_file_empty (); -@@ -737,6 +745,16 @@ - if (is_import (sn)) - continue; - -+ if (!strncmp (sn, ".weak.", 6) && strchr (sn + 6, '.')) -+ { -+ objsym = strdup (sn); -+ weaksym = strdup (sn + 6); -+ *(strchr (weaksym, '.')) = '\0'; -+ sn = weaksym; -+ } -+ else -+ weaksym = 0; -+ - name = xmalloc (strlen ("__imp_") + strlen (sn) + 1); - sprintf (name, "%s%s", "__imp_", sn); - -@@ -745,7 +763,8 @@ - free (name); - - if (blhe && blhe->type == bfd_link_hash_defined) -- continue; -+ if (strncmp (blhe->u.def.section->name, ".got$", 5)) -+ continue; - } - - if (pe_details->underscored && *sn == '_') -@@ -761,7 +780,20 @@ - /* Fill data flag properly, from dlltool.c. */ - if (!is_dup) - p->flag_data = !(symbols[j]->flags & BSF_FUNCTION); -+ -+ if (weaksym) -+ { -+ blhew = bfd_link_hash_lookup (info->hash, weaksym, -+ FALSE, FALSE, FALSE); -+ if (blhew->type != bfd_link_hash_defined) -+ { -+ free (p->internal_name); -+ p->internal_name = objsym; -+ } -+ } - } -+ if (weaksym) -+ free (weaksym); - } - } - } -@@ -910,6 +942,7 @@ - - if (blhe - && (blhe->type == bfd_link_hash_defined -+ || (blhe->type == bfd_link_hash_defweak) - || (blhe->type == bfd_link_hash_common))) - { - count_exported++; -@@ -919,7 +952,7 @@ - /* Only fill in the sections. The actual offsets are computed - in fill_exported_offsets() after common symbols are laid - out. */ -- if (blhe->type == bfd_link_hash_defined) -+ if ((blhe->type == bfd_link_hash_defined) || (blhe->type == bfd_link_hash_defweak)) - exported_symbol_sections[i] = blhe->u.def.section; - else - exported_symbol_sections[i] = blhe->u.c.p->section; -diff -ru --new-file a/bfd/config.bfd b/bfd/config.bfd ---- a/bfd/config.bfd 2014-07-03 01:37:20.000000000 -0400 -+++ b/bfd/config.bfd 2015-02-14 11:27:08.199179775 -0500 -@@ -679,7 +679,7 @@ - targ_archs="$targ_archs bfd_arm_arch" - want64=true - ;; -- x86_64-*-mingw* | x86_64-*-pe | x86_64-*-pep | x86_64-*-cygwin) -+ x86_64-*-mingw* | x86_64-*-pe | x86_64-*-pep | x86_64-*-cygwin | x86_64-*-midipix*) - targ_defvec=x86_64_pe_vec - targ_selvecs="x86_64_pe_vec x86_64_pei_vec x86_64_pe_be_vec x86_64_elf64_vec l1om_elf64_vec k1om_elf64_vec i386_pe_vec i386_pei_vec i386_elf32_vec" - want64=true -@@ -731,7 +731,7 @@ - targ_defvec=i386_elf32_vec - targ_selvecs=i386_coff_vec - ;; -- i[3-7]86-*-mingw32* | i[3-7]86-*-cygwin* | i[3-7]86-*-winnt | i[3-7]86-*-pe) -+ i[3-7]86-*-mingw32* | i[3-7]86-*-cygwin* | i[3-7]86-*-winnt | i[3-7]86-*-pe | i[3-7]86-*-midipix*) - targ_defvec=i386_pe_vec - targ_selvecs="i386_pe_vec i386_pei_vec i386_elf32_vec" - targ_underscore=yes -diff -ru --new-file a/binutils/configure b/binutils/configure ---- a/binutils/configure 2014-07-03 01:37:22.000000000 -0400 -+++ b/binutils/configure 2015-09-13 21:35:09.738957435 -0400 -@@ -14015,7 +14015,7 @@ - BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)' - BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)' - ;; -- x86_64-*-mingw* | x86_64-*-cygwin*) -+ x86_64-*-mingw* | x86_64-*-midipix* | x86_64-*-cygwin*) - BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' - if test -z "$DLLTOOL_DEFAULT"; then - DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_MX86_64" -@@ -14025,7 +14025,7 @@ - BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)' - BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)' - ;; -- i[3-7]86-*-pe* | i[3-7]86-*-cygwin* | i[3-7]86-*-mingw32** | i[3-7]86-*-netbsdpe*) -+ i[3-7]86-*-pe* | i[3-7]86-*-cygwin* | i[3-7]86-*-midipix* | i[3-7]86-*-mingw32** | i[3-7]86-*-netbsdpe*) - BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' - if test -z "$DLLTOOL_DEFAULT"; then - DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_I386" -diff -ru --new-file a/configure b/configure ---- a/configure 2014-07-03 01:37:23.000000000 -0400 -+++ b/configure 2015-03-11 17:07:15.820422926 -0400 -@@ -3428,6 +3428,9 @@ - x86_64-*-mingw*) - noconfigdirs="$noconfigdirs ${libgcj}" - ;; -+ *-midipix*) -+ noconfigdirs="$noconfigdirs ${libgcj}" -+ ;; - mmix-*-*) - noconfigdirs="$noconfigdirs target-libffi target-boehm-gc" - ;; -@@ -3549,6 +3552,9 @@ - *-*-mingw*) - noconfigdirs="$noconfigdirs target-newlib target-libgloss" - ;; -+ *-*-midipix*) -+ noconfigdirs="$noconfigdirs target-newlib target-libgloss" -+ ;; - *-*-netbsd*) - noconfigdirs="$noconfigdirs target-newlib target-libgloss" - ;; -@@ -6257,7 +6263,7 @@ - - target_elf=no - case $target in -- *-darwin* | *-aix* | *-cygwin* | *-mingw* | *-aout* | *-*coff* | \ -+ *-darwin* | *-aix* | *-cygwin* | *-mingw* | *-midipix* | *-aout* | *-*coff* | \ - *-msdosdjgpp* | *-vms* | *-wince* | *-*-pe* | \ - alpha*-dec-osf* | *-interix* | hppa[12]*-*-hpux*) - target_elf=no -diff -ru --new-file a/gas/configure.tgt b/gas/configure.tgt ---- a/gas/configure.tgt 2014-07-03 01:37:25.000000000 -0400 -+++ b/gas/configure.tgt 2015-02-14 11:27:08.223179776 -0500 -@@ -262,7 +262,7 @@ - i*) fmt=coff em=pe ;; - esac ;; - i386-*-interix*) fmt=coff em=interix ;; -- i386-*-mingw*) -+ i386-*-mingw* | i386-*-midipix*) - case ${cpu} in - x86_64*) fmt=coff em=pep ;; - i*) fmt=coff em=pe ;; -diff -ru a/bfd/cofflink.c b/bfd/cofflink.c ---- a/bfd/cofflink.c 2014-07-03 01:37:20.000000000 -0400 -+++ b/bfd/cofflink.c 2015-06-13 20:22:46.000389638 -0400 -@@ -202,6 +202,7 @@ - bfd_size_type symesz; - bfd_byte *esym; - bfd_byte *esym_end; -+ char *weaksym; - - *pneeded = FALSE; - -@@ -236,6 +237,16 @@ - && CONST_STRNEQ (name, "__imp_")) - h = bfd_link_hash_lookup (info->hash, name + 6, FALSE, FALSE, TRUE); - -+ if (!h && !strncmp (name, ".weak.", 6) && strchr (name + 6, '.')) -+ { -+ weaksym = strdup (name + 6); -+ *(strchr (weaksym, '.')) = '\0'; -+ h = bfd_link_hash_lookup (info->hash, weaksym, FALSE, FALSE, TRUE); -+ name = weaksym; -+ } -+ else -+ weaksym = 0; -+ - /* We are only interested in symbols that are currently - undefined. If a symbol is currently known to be common, - COFF linkers do not bring in an object file which defines -@@ -249,6 +260,9 @@ - *pneeded = TRUE; - return TRUE; - } -+ -+ if (weaksym) -+ free (weaksym); - } - - esym += (sym.n_numaux + 1) * symesz; -@@ -320,6 +334,7 @@ - bfd_byte *esym; - bfd_byte *esym_end; - bfd_size_type amt; -+ char *weaksym; - - symcount = obj_raw_syment_count (abfd); - -@@ -476,6 +491,20 @@ - addit = FALSE; - } - -+ if (!strncmp (name, ".weak.", 6) && strchr (name + 6, '.')) -+ { -+ if (! (bfd_coff_link_add_one_symbol -+ (info, abfd, name, flags, section, value, -+ (const char *) NULL, copy, FALSE, -+ (struct bfd_link_hash_entry **) sym_hash))) -+ goto error_return; -+ -+ weaksym = strdup (name + 6); -+ *(strchr(weaksym, '.')) = 0; -+ name = weaksym; -+ flags |= BSF_WEAK; -+ } -+ - if (addit) - { - if (! (bfd_coff_link_add_one_symbol -diff -ru a/bfd/linker.c b/bfd/linker.c ---- a/bfd/linker.c 2014-07-03 01:37:21.000000000 -0400 -+++ b/bfd/linker.c 2015-06-06 17:51:24.148275212 -0400 -@@ -1050,6 +1050,7 @@ - struct archive_hash_table arsym_hash; - unsigned int indx; - struct bfd_link_hash_entry **pundef; -+ char *weaksym; - - if (! bfd_has_map (abfd)) - { -@@ -1073,6 +1074,13 @@ - struct archive_hash_entry *arh; - struct archive_list *l, **pp; - -+ if (!strncmp (arsym->name, ".weak.", 6) && strchr (arsym->name + 6, '.')) -+ { -+ weaksym = strdup (arsym->name + 6); -+ *(strchr (weaksym, '.')) = '\0'; -+ arsym->name = weaksym; -+ } -+ - arh = archive_hash_lookup (&arsym_hash, arsym->name, TRUE, FALSE); - if (arh == NULL) - goto error_return; -diff -ru a/gas/config/tc-i386.c b/gas/config/tc-i386.c ---- a/gas/config/tc-i386.c 2014-07-03 01:37:25.000000000 -0400 -+++ b/gas/config/tc-i386.c 2015-06-12 22:40:37.100250091 -0400 -@@ -9148,25 +9148,6 @@ - value += md_pcrel_from (fixP); - #endif - } --#if defined (OBJ_COFF) && defined (TE_PE) -- if (fixP->fx_addsy != NULL -- && S_IS_WEAK (fixP->fx_addsy) -- /* PR 16858: Do not modify weak function references. */ -- && ! fixP->fx_pcrel) -- { --#if !defined (TE_PEP) -- /* For x86 PE weak function symbols are neither PC-relative -- nor do they set S_IS_FUNCTION. So the only reliable way -- to detect them is to check the flags of their containing -- section. */ -- if (S_GET_SEGMENT (fixP->fx_addsy) != NULL -- && S_GET_SEGMENT (fixP->fx_addsy)->flags & SEC_CODE) -- ; -- else --#endif -- value -= S_GET_VALUE (fixP->fx_addsy); -- } --#endif - - /* Fix a few things - the dynamic linker expects certain values here, - and we must not disappoint it. */ -@@ -9237,8 +9218,11 @@ - fixP->fx_done = 0; - /* Remember value for tc_gen_reloc. */ - fixP->fx_addnumber = value; -- /* Clear out the frag for now. */ -- value = 0; -+ /* for data symbols, cancel the effect of the relocation */ -+ if (!((S_GET_SEGMENT (fixP->fx_addsy)->flags) & SEC_CODE)) -+ value = -S_GET_VALUE (fixP->fx_addsy); -+ else -+ value = 0; - } - #endif - else if (use_rela_relocations) - ---- a/binutils/rename.c 2014-07-03 01:37:22.000000000 -0400 -+++ b/binutils/rename.c 2015-11-25 23:13:38.086948592 -0500 -@@ -167,7 +167,10 @@ - && s.st_nlink == 1) - ) - { -- ret = rename (from, to); -+ if ((ret = rename (from, to))) -+ if (!(ret = simple_copy (from, to))) -+ unlink (from); -+ - if (ret == 0) - { - if (exists) ---- binutils-2.24.51/intl/libgnuintl.h.orig 2014-07-03 05:37:48.000000000 +0000 -+++ binutils-2.24.51/intl/libgnuintl.h 2016-05-30 19:56:21.701967351 +0000 -@@ -105,7 +105,7 @@ - #endif - /* Auxiliary macros. */ - #ifdef _INTL_REDIRECT_ASM --# define _INTL_ASM(cname) __asm__ (_INTL_ASMNAME (__USER_LABEL_PREFIX__, #cname)) -+# define _INTL_ASM(cname) __asm__ (#cname) - # define _INTL_ASMNAME(prefix,cnamestring) _INTL_STRINGIFY (prefix) cnamestring - # define _INTL_STRINGIFY(prefix) #prefix - #else diff --git a/build.sh b/build.sh index 6efcd837..2d616f54 100755 --- a/build.sh +++ b/build.sh @@ -2,195 +2,100 @@ # Copyright (c) 2016 Lucio Andrés Illanes Albornoz # -. ./build.subr; -VALID_BUILD_LEVELS="fetch,extract,build_dir,autoconf,patch,configure,clean,build,install"; - # +# Clear the environment. +# Source subroutine scripts. +# Source the build variables file and its local overrides, if any. # Process command line arguments. +for __ in subr/*.subr; do + . ./${__}; +done; +check_cpuinfo; source_vars; clear_env; while [ ${#} -gt 0 ]; do case ${1} in --c) ARG_CLEAN=1; ;; --d) disable_build_script_link "${2}"; exit; ;; --e) enable_build_script_link "${2}"; exit; ;; +-c) export ARG_CLEAN=1; ;; +-n) export ARG_DRYRUN=1 ARG_VERBOSE=1; ;; -t*) export ARG_TARBALL=1; [ "${1#-t.}" != "${1}" ] && TARBALL_SUFFIX=${1#-t.}; ;; -v) export ARG_VERBOSE=1; ;; --x) ARG_XTRACE=1; set -o xtrace; ;; --a) [ -z "${2}" ] && exec cat build.usage || ARCH="${2}"; shift; ;; --b) [ -z "${2}" ] && exec cat build.usage || BUILD="${2}"; shift; ;; --pi) [ -z "${2}" ] && exec cat build.usage || insert_build_script_link "${2}"; exit; ;; --pr) [ -z "${2}" ] && exec cat build.usage || remove_build_script_link "${2}"; exit; ;; --r) [ -n "${ARG_RESTART_SCRIPT}" ] && exec cat build.usage; - if [ "${2#*:*}" != "${2}" ]; then - ARG_RESTART_SCRIPT="${2%%:*}"; ARG_RESTART_SCRIPT_AT="${2##*:}"; - if [ "${ARG_RESTART_SCRIPT_AT}" != diff ]; then - for __ in $(split , "${ARG_RESTART_SCRIPT_AT}"); do - if ! match_list "${VALID_BUILD_LEVELS}" , "${__}"; then - log_msg fail "Error: unknown build level specified."; - exec cat build.usage; - fi; - done; - fi; - else - ARG_RESTART_SCRIPT="${2}"; ARG_RESTART_SCRIPT_AT=ALL; - fi; - if [ ! -e "${ARG_RESTART_SCRIPT}" ]; then - log_msg fail "Error: unknown build script specified."; +-x) export ARG_XTRACE=1; set -o xtrace; ;; +-a) [ -z "${2}" ] && exec cat etc/build.usage || export ARCH=${2}; shift; ;; +-b) [ -z "${2}" ] && exec cat etc/build.usage || export BUILD=${2}; shift; ;; +-r) if [ -z "${2}" ]; then exec cat build.usage; - fi; - shift; ;; + elif [ "${2%:*}" = "${2}" ]; then + export ARG_RESTART=${2}; + else + export ARG_RESTART=${2%:*} ARG_RESTART_AT=${2#*:}; + fi; shift; ;; +host_toolchain|native_toolchain|runtime|lib_packages|leaf_packages|devroot|world) + export BUILD_TARGETS_META="${BUILD_TARGETS_META:+${BUILD_TARGETS_META} }${1}"; ;; *=*) set_var_unsafe "${1%%=*}" "${1#*=}"; ;; -*) exec cat build.usage; ;; -esac; shift; done; - -if [ -z "${BUILD_CPUS}" ] \ -&& [ -e /proc/cpuinfo ]; then - BUILD_CPUS=$(awk '/^processor/{cpus++} END{print cpus}' /proc/cpuinfo); -fi; - -# Source the build variables file and its local overrides, if any. -for __ in ${HOME}/midipix_build.vars ../midipix_build.vars ./build.vars; do - [ -e ${__} ] && . ${__}; +*) exec cat etc/build.usage; ;; +esac; shift; done; +if [ -z "${BUILD_TARGETS_META}" ]; then + BUILD_TARGETS_META=world; +fi; # -# Clear the environment. # Check whether the pathnames in build.vars contain non-empty valid values. # Check whether all prerequisite command names resolve. # Check whether all prerequisite pathnames resolve. # Check whether all prerequisite Perl modules exist. -for __ in $(export | sed -e 's/^export //' -e 's/=.*$//'); do - if ! match_list "${CLEAR_ENV_VARS_EXCEPT}" " " "${__}"; then - unset "${__}"; - fi; -done; -for __ in ${CHECK_PATH_VARS}; do - if [ -z "${___:=$(get_var_unsafe "${__}")}" ]; then - log_msg failexit "Error: variable \`${__}' is empty or unset."; - elif [ "${___#* *}" != "${___}" ]; then - log_msg failexit "Error: variable \`${__}' contains one or more whitespace characters."; - fi; -done; -for __ in ${CHECK_PREREQ_CMDS} $(eval echo ${CHECK_PREREQ_FILES_DYNAMIC}) ${CHECK_PREREQ_FILES}; do - if [ "${__#/}" != "${__}" ]; then - if [ ! -e "${__}" ]; then - log_msg fail "Error: missing prerequisite file \`${__}'."; - __exit=1; - fi; - else - if ! test_cmd "${__}"; then - log_msg fail "Error: missing prerequisite command \`${__}'."; - __exit=1; - fi; - fi; -done; -for __ in ${CHECK_PREREQ_PERL_MODULES}; do - if ! perl -M"${__}" -e "" 2>/dev/null; then - log_msg fail "Error: missing prerequisite Perl module \`${__}'."; - __exit=1; - fi; -done; -if [ ${__exit:-0} = 1 ]; then - exit 1; -elif [ -n "${__exit}" ]; then - unset __exit; -fi; - # Clean ${PREFIX} if requested. -if [ ${ARG_CLEAN:-0} -eq 1 ]; then - log_msg info "-c specified, cleaning prefix..."; - for __ in ${CLEAR_PREFIX_DIRS}; do - if [ -e ${PREFIX}/${__} ]; then - secure_rm ${PREFIX}/${__}; - fi; - done; -fi; - # Create directory hierarchy and usr -> . symlinks. -insecure_mkdir ${PREFIX} ${PREFIX_NATIVE} ${PREFIX_CROSS} ${PREFIX_TARGET}/lib ${DLCACHEDIR} ${WORKDIR}; -for __ in ${PREFIX}/usr ${PREFIX_NATIVE}/usr; do - if [ ! -L "${__}" ]; then - secure_rm "${__}"; ln -sf -- . "${__}"; - fi; -done; -insecure_mkdir ${PREFIX_MINIPIX}/bin; -for __ in lib libexec share; do - if [ ! -e ${PREFIX_MINIPIX}/${__} ]; then - ln -sf bin ${PREFIX_MINIPIX}/${__}; - fi; -done; - -if [ -e ${BUILD_LOG_FNAME} ]; then - mv -- ${BUILD_LOG_FNAME} ${BUILD_LOG_LAST_FNAME}; -fi; -touch ${BUILD_STATUS_IN_PROGRESS_FNAME}; -{( -BUILD_DATE_START="$(date %Y-%m-%d-%H-%M-%S)"; -BUILD_NFINI=${BUILD_NSKIP:=${BUILD_NFAIL:=${BUILD_NBUILT:=0}}}; -BUILD_TIMES_SECS=$(command date +%s); +check_paths; clean_prefix; create_dirs; +init_build_log; init_build_progress_file; +{(init_build_vars; log_msg info "Build started by ${BUILD_USER:=${USER}}@${BUILD_HNAME:=$(hostname)} at ${BUILD_DATE_START}."; log_env_vars "build (global)" ${LOG_ENV_VARS}; - -for BUILD_LVL in 0 1 2 3 4 9; do - for BUILD_SCRIPT_FNAME in ${BUILD_LVL}[0-9][0-9].*.build; do - if [ -n "${ARG_RESTART_SCRIPT}" ] \ - && [ "${ARG_RESTART_SCRIPT}" != "ALL" ] \ - && [ "${ARG_RESTART_SCRIPT}" != ${BUILD_SCRIPT_FNAME} ]; then - if [ ${ARG_XTRACE:-0} -eq 0 ]; then - log_msg info "Skipped build script \`${BUILD_SCRIPT_FNAME}' (--build-scripts policy.)"; +for BUILD_TARGET_LC in $(subst_tgts ${BUILD_TARGETS_META}); do + BUILD_TARGET=$(echo ${BUILD_TARGET_LC} | tr a-z A-Z); + for BUILD_PACKAGE_LC in $(get_var_unsafe ${BUILD_TARGET}_PACKAGES); do + BUILD_PACKAGE=$(echo ${BUILD_PACKAGE_LC} | tr a-z A-Z); + if [ -n "${ARG_RESTART}" ]; then + if ! match_list ${ARG_RESTART} , ${BUILD_PACKAGE_LC}; then + if [ ${ARG_VERBOSE:-0} -eq 1 ]; then + log_msg info "Skipped \`${BUILD_PACKAGE_LC}' (-r specified.)"; + fi; + : $((BUILD_NSKIP+=1)); BUILD_SCRIPT_RC=0; continue; fi; - continue; - elif [ ! -f "${BUILD_SCRIPT_FNAME}" ]; then - log_msg info "Build script \`${BUILD_SCRIPT_FNAME}' non-existent or not a file."; - continue; - else - unset BUILD_SCRIPT_RC; : $((BUILD_NBUILT+=1)); - if [ "${ARG_RESTART_SCRIPT}" != ALL ]\ - && is_build_script_done finish "${BUILD_SCRIPT_FNAME%.build}"; then - log_msg info "Skipped build script \`${BUILD_SCRIPT_FNAME}' (already built.)"; - : $((BUILD_NSKIP+=1)); BUILD_SCRIPT_RC=0; continue; + elif is_build_script_done finish "${BUILD_PACKAGE_LC}"; then + if [ ${ARG_VERBOSE:-0} -eq 1 ]; then + log_msg info "Skipped \`${BUILD_PACKAGE_LC}' (already built.)"; fi; - log_msg info "Invoking build script${ARG_RESTART_SCRIPT:+ (forcibly)} \`${BUILD_SCRIPT_FNAME}'${ARG_RESTART_SCRIPT_AT:+ at build step ${ARG_RESTART_SCRIPT_AT}}."; - (set -o errexit -o noglob; \ - set -- $(split . ${BUILD_SCRIPT_FNAME%%.build*}); \ - SCRIPT_FNAME=${BUILD_SCRIPT_FNAME}; \ - SCRIPT_NAME=${SCRIPT_FNAME%%.build*}; \ - export PKG_BUILD=${BUILD}; \ - export PKG_TARGET=${TARGET}; \ - export PKG_PREFIX=$(get_vars_unsafe PKG_LVL${BUILD_LVL}_PREFIX \ - PKG_$(echo ${2} | tr a-z A-Z)_PREFIX); \ - if [ ${BUILD_LVL} -eq 9 ]; then - export PREFIX PREFIX_CROSS PREFIX_MIDIPIX PREFIX_NATIVE PREFIX_ROOT; - fi; - export MIDIPIX_BUILD_PWD=$(pwd); cd ${WORKDIR}; \ - for SCRIPT_SOURCE in build.subr ${SCRIPT_NAME}.vars \ - ${BUILD_SCRIPT_FNAME}; do \ - [ -f ${MIDIPIX_BUILD_PWD}/${SCRIPT_SOURCE} ] && \ - . ${MIDIPIX_BUILD_PWD}/${SCRIPT_SOURCE}; \ - done); - case ${BUILD_SCRIPT_RC:=${?}} in - 0) log_msg succ "Finished build script \`${BUILD_SCRIPT_FNAME}'."; - : $((BUILD_NFINI+=1)); continue; ;; - *) log_msg fail "Build failed in build script \`${BUILD_SCRIPT_FNAME}' (last return code ${BUILD_SCRIPT_RC}.)."; - : $((BUILD_NFAIL+=1)); break; ;; - esac; + : $((BUILD_NSKIP+=1)); BUILD_SCRIPT_RC=0; continue; + fi; + if [ -e scripts/${BUILD_PACKAGE_LC}.build ]; then + BUILD_SCRIPT_FNAME=scripts/${BUILD_PACKAGE_LC}.build; + else + BUILD_SCRIPT_FNAME=scripts/pkg.build; + fi; + if [ ${ARG_VERBOSE:-0} -eq 1 ]; then + log_msg info "Invoking build script \`${BUILD_SCRIPT_FNAME}'${ARG_RESTART:+ (forcibly)} for package \`${BUILD_PACKAGE_LC}'."; fi; + (set -o errexit -o noglob; + export MIDIPIX_BUILD_PWD=$(pwd) \ + PKG_BUILD=${BUILD} PKG_TARGET=${TARGET} \ + PKG_PREFIX=$(get_vars_unsafe ${BUILD_TARGET}_PREFIX \ + PKG_${BUILD_PACKAGE%.*}_PREFIX) \ + PREFIX PREFIX_CROSS PREFIX_MIDIPIX PREFIX_NATIVE PREFIX_ROOT; + cd ${WORKDIR}; source_scripts); + BUILD_SCRIPT_RC=${?}; case ${BUILD_SCRIPT_RC} in + 0) log_msg succ "Finished \`${BUILD_PACKAGE_LC}' build."; + : $((BUILD_NFINI+=1)); continue; ;; + *) log_msg fail "Build failed in \`${BUILD_PACKAGE_LC}' (last return code ${BUILD_SCRIPT_RC}.)."; + : $((BUILD_NFAIL+=1)); break; ;; + esac; done; if [ ${BUILD_SCRIPT_RC:-0} -ne 0 ]; then break; fi; done; - +do_strip; do_tarballs; fini_build_vars; log_msg info "${BUILD_NFINI} finished, ${BUILD_NSKIP} skipped, and ${BUILD_NFAIL} failed builds in ${BUILD_NBUILT} build script(s)."; -: $((BUILD_TIMES_SECS=$(command date +%s)-${BUILD_TIMES_SECS})); -: $((BUILD_TIMES_HOURS=${BUILD_TIMES_SECS}/3600)); -: $((BUILD_TIMES_MINUTES=(${BUILD_TIMES_SECS}%3600)/60)); -: $((BUILD_TIMES_SECS=(${BUILD_TIMES_SECS}%3600)%60)); log_msg info "Build time: ${BUILD_TIMES_HOURS} hour(s), ${BUILD_TIMES_MINUTES} minute(s), and ${BUILD_TIMES_SECS} second(s)."; - -if [ -f "${BUILD_STATUS_IN_PROGRESS_FNAME}" ]; then - secure_rm ${BUILD_STATUS_IN_PROGRESS_FNAME}; -fi; - +fini_build_progress_file; exit ${BUILD_SCRIPT_RC})} 2>&1 | tee ${BUILD_LOG_FNAME} & TEE_PID=${!}; trap "rm -f ${BUILD_STATUS_IN_PROGRESS_FNAME}; \ diff --git a/build.subr b/build.subr deleted file mode 100644 index c994c7d7..00000000 --- a/build.subr +++ /dev/null @@ -1,349 +0,0 @@ -# -# . ./build.vars and set -o errexit -o noglob are assumed. -# See warning at the top of build.vars. -# - -date() { command date +"${1:-${TIMESTAMP_FMT}}"; }; -get_var_unsafe() { eval echo \${${1}}; }; -set_var_unsafe() { eval ${1}=\"${2}\"; }; -push_IFS() { _pI_IFS="${IFS}"; IFS="${1}"; }; -pop_IFS() { IFS="${_pI_IFS}"; unset _pI_IFS; }; -set_build_dir() { PKG_BUILD_DIR=${1}-${2}-${TARGET}; }; -split() { push_IFS "${1}"; set -- ${2}; pop_IFS; echo "${*}"; }; -test_cmd() { command -v "${1}" >/dev/null; }; -unsplit() { push_IFS "${1}"; shift; set -- "${@}"; echo "${*}"; pop_IFS; }; - -# N.B. URLs ($1) may contain `?' or '&' characters. -fetch() { - _f_url="${1}"; _f_sha256sum_src="${2}"; - _f_url_dst="${DLCACHEDIR}/$(basename "${_f_url}")"; - if [ -e ${_f_url_dst}.fetched ]; then - unset _f_url _f_sha256sum_src _f_url_dst; - return 0; - else - wget ${WGET_ARGS} -c -O ${_f_url_dst} "${_f_url}"; - fi; - if [ -n "${_f_sha256sum_src}" ]; then - set -- $(openssl dgst -sha256 ${_f_url_dst}); shift $((${#}-1)); - if [ "${_f_sha256sum_dst:=${1}}" != "${_f_sha256sum_src}" ]; then - log_msg failexit "Error: hash mismatch for URL \`${_f_url}' (is: ${_f_sha256sum_dst}, should be: ${_f_sha256sum_src}.)"; - fi; - fi; - touch ${_f_url_dst}.fetched; - unset _f_url _f_url_dst _f_sha256sum_src _f_sha256sum_dst; -}; -fetch_git() { - _fg_subdir="${1}"; _fg_url="${2}"; _fg_branch="${3}"; - if [ -e "${DLCACHEDIR}/${_fg_subdir}" ]; then - cd ${DLCACHEDIR}/${_fg_subdir} &&\ - git pull origin ${_fg_branch:-main} && cd ${OLDPWD}; - else - git clone ${_fg_url} ${DLCACHEDIR}/${_fg_subdir}; - if [ -n "${_fg_branch}" -a \ - \( -z "${_fg_branch#main}" \) -a \ - \( -z "${_fg_branch#master}" \) ]; then - cd ${DLCACHEDIR}/${_fg_subdir} &&\ - git checkout -b ${_fg_branch} && cd ${OLDPWD}; - fi; - fi; - secure_rm ${_fg_subdir}; - cp -pr ${DLCACHEDIR}/${_fg_subdir} .; -}; - -get_vars_unsafe() { - while [ ${#} -gt 0 ]; do - _gvu_vval="$(eval echo \${${1}})"; - [ -z "${_gvu_vval}" ] || _gvu_vval_="${_gvu_vval}"; - shift; - done; echo "${_gvu_vval_}"; - unset _gvu_vval _gvu_vval_; -}; - -disable_build_script_link() { - if [ -e ${1%.disabled}.disabled ]; then - log_msg failexit "Error: build script already disabled."; - elif [ ! -e ${1} ]; then - log_msg failexit "Error: invalid or non-existent build script filename/level/name."; - else - echo mv -- ${1} ${1}.disabled; - mv -- ${1} ${1}.disabled; - fi; -} -enable_build_script_link() { - if [ -e ${1%.disabled} ]; then - log_msg failexit "Error: build script already enabled."; - elif [ ! -e ${1%.disabled}.disabled ]; then - log_msg failexit "Error: invalid or non-existent build script filename/level/name."; - else - echo mv -- ${1%.disabled}.disabled ${1%.disabled}; - mv -- ${1%.disabled}.disabled ${1%.disabled}; - fi; -} -insert_build_script_link() { - _ibsl_fname=${1}; - _ibsl_level=${_ibsl_fname%%.*}; - _ibsl_name=${_ibsl_fname#*.}; _ibsl_name=${_ibsl_name%.build}; - if [ -z "${_ibsl_fname}" -o -z "${_ibsl_level}" \ - -o -z "${_ibsl_name}" ] \ - || ! isnumber ${_ibsl_level} \ - || [ ${#_ibsl_level} != 3 ]; then - log_msg failexit "Error: invalid or empty build script filename/level/name."; - elif [ -e ${_ibsl_fname} ]; then - log_msg failexit "Error: build script \`${_ibsl_fname}' already exists."; - elif [ -z "$(find -maxdepth 1 -name ${_ibsl_level}.\* -printf '%P\n' -quit)" ]; then - echo ln -s -- pkg.build ${_ibsl_fname}; - ln -s -- pkg.build ${_ibsl_fname}; - unset _ibsl_fname _ibsl_level _ibsl_name; - return 0; - else - _ibsl_levels="$(find -maxdepth 1 -name \ - ${_ibsl_level%[0-9][0-9]}\[0-9\]\[0-9\].\* \ - -printf '%P\n' | sort -nk1)"; - fi; - for _ibsl_fname_cur in ${_ibsl_levels}; do - if [ \( ${_ibsl_changed:=0} -eq 0 \) -a \ - \( "${_ibsl_fname_cur%%.*}" -eq ${_ibsl_level} \) ]; then - echo ln -s -- pkg.build ${_ibsl_fname}; - ln -s -- pkg.build ${_ibsl_fname}; - _ibsl_changed=1; - fi; - if [ ${_ibsl_changed:=0} -eq 1 ]; then - if [ -z "$(find -maxdepth 1 \ - -name $((${_ibsl_fname_cur%%.*}+1)).\* \ - -printf '%P\n' -quit)" ]; then - _ibsl_last=1; - fi; - echo mv -- ${_ibsl_fname_cur} \ - $((${_ibsl_fname_cur%%.*}+1)).${_ibsl_fname_cur#*.}; - mv -- ${_ibsl_fname_cur} \ - $((${_ibsl_fname_cur%%.*}+1)).${_ibsl_fname_cur#*.}; - if [ ${_ibsl_last:-0} -eq 1 ]; then - break; - fi; - fi; - done; - if [ ${_ibsl_changed:=0} -eq 0 ]; then - log_msg failexit "Error: build level ${_ibsl_level} not in \`${_ibsl_levels}'."; - else - unset _ibsl_levels _ibsl_fname_cur _ibsl_changed _ibsl_last; - unset _ibsl_fname _ibsl_level _ibsl_name; - fi; -}; -isnumber() { - [ -z "${1}" ] && return 1 || _i_num=${1}; - while [ -n "${_i_num}" ]; do - if [ "${_i_num#[0-9]}" = "${_i_num}" ]; then - return 1; - else - _i_num="${_i_num#[0-9]}"; - fi; - done; unset _i_num; return 0; -}; -remove_build_script_link() { - _rbsl_fname=${1}; - _rbsl_level=${_rbsl_fname%%.*}; - _rbsl_name=${_rbsl_fname#*.}; _rbsl_name=${_rbsl_name%.build}; - if [ -z "${_rbsl_fname}" -o -z "${_rbsl_level}" \ - -o -z "${_rbsl_name}" ] \ - || ! isnumber ${_rbsl_level} \ - || [ ${#_rbsl_level} != 3 ]; then - log_msg failexit "Error: invalid or empty build script filename/level/name."; - elif [ ! -e ${_rbsl_fname} ]; then - log_msg failexit "Error: build script \`${_rbsl_fname}' doesn't exist."; - else for _rbsl_fname_cur in $(find -maxdepth 1 \ - -name ${_rbsl_level%[0-9][0-9]}\[0-9\]\[0-9\].\* \ - -printf '%P\n' | sort -nk1); do - _rbsl_fname_cur_level=${_rbsl_fname_cur%%.*}; - if [ ${_rbsl_fname_cur_level} -gt ${_rbsl_level} ]; then - echo mv ${_rbsl_fname_cur} \ - $(printf "%03u" \ - $((${_rbsl_fname_cur_level#00}-1))).${_rbsl_fname_cur#*.}; - mv ${_rbsl_fname_cur} \ - $(printf "%03u" \ - $((${_rbsl_fname_cur_level#00}-1))).${_rbsl_fname_cur#*.}; - fi; - done; fi; - echo rm -- ${_rbsl_fname}; - rm -- ${_rbsl_fname}; -}; - -is_build_script_done() { - if [ -n "${ARG_RESTART_SCRIPT_AT}" ]; then - if [ "${1}" = clean ]\ - && [ -z "${ARG_RESTART_SCRIPT_AT#ALL}" ]; then - return 0; # Skip - elif [ "${1}" = finish ]\ - || [ -z "${ARG_RESTART_SCRIPT_AT#ALL}" ]; then - return 1; # Build - elif ! match_list ${ARG_RESTART_SCRIPT_AT} , ${1}; then - return 0; # Skip - else - return 1; # Build - fi; - elif [ -f "${WORKDIR}/.${2:-$(basename ${SCRIPT_FNAME%.build})}.${1}" ]; then - return 0; # Skip - else - return 1; # Build - fi; -}; -set_build_script_done() { - _sbsd_script_fname=${SCRIPT_FNAME##*/}; - _sbsd_done_fname=${WORKDIR}/.${_sbsd_script_fname%.build}; - while [ $# -ge 1 ]; do - if [ "${1#-}" != "${1}" ]; then - secure_rm ${_sbsd_done_fname}.${1#-}; - else - touch ${_sbsd_done_fname}.${1}; - log_msg info "Finished build step ${1} of build script \`${_sbsd_script_fname}'."; - fi; shift; - done; unset _sbsd_script_fname _sbsd_done_fname; -}; - -log_env_vars() { - log_msg info "Variables for this ${1:-build}:"; shift; - while [ ${_lev_nvar:=0} -lt ${#} ]; do - _lev_arg="$(eval echo \${${_lev_nvar}})"; - _lev_arg="${_lev_arg%%=*}"; - if [ ${#_lev_arg} -gt ${_lev_arg_len_max:=0} ]; then - _lev_arg_len_max=${#_lev_arg}; - fi; : $((_lev_nvar+=1)); - done; unset _lev_nvar _lev_arg; - while [ ${#} -gt 0 ]; do - log_msg info "$(printf \ - "%${_lev_arg_len_max}.${_lev_arg_len_max}s=%s" \ - "${1%%=*}" "$(get_var_unsafe ${1#*=})")"; - shift; - done; unset _lev_arg_len_max; -}; - -log_msg() { - _lm_lvl=${1}; shift; - case ${_lm_lvl} in - failexit) printf "\033[0m\033[${LOG_MSG_FAIL_COLOUR}m"; ;; - fail) printf "\033[0m\033[${LOG_MSG_FAIL_COLOUR}m"; ;; - info) printf "\033[0m\033[${LOG_MSG_INFO_COLOUR}m"; ;; - succ) printf "\033[0m\033[${LOG_MSG_SUCC_COLOUR}m"; ;; - warn) printf "\033[0m\033[${LOG_MSG_WARN_COLOUR}m"; ;; - esac; - if [ $# -gt 1 ]; then - printf "==> %s %s %s\033[0m\n" "$(date "${TIMESTAMP_FMT}")" "${1}" "$*"; - else - printf "==> %s %s\033[0m\n" "$(date "${TIMESTAMP_FMT}")" "${1}"; - fi; [ ${_lm_lvl} = failexit ] && exit 1 || unset _lm_lvl; -}; - -match_list() { - _ml_cmp="${3}"; push_IFS "${2}"; set -- ${1}; pop_IFS; - while [ ${#} -gt 0 ]; do - if [ "${1}" = "${_ml_cmp}" ]; then - unset _ml_cmp; return 0; - fi; shift; - done; unset _ml_cmp; return 1; -}; - -parse_with_pkg_name() { - PKG_LVL=${1}; PKG_NAME=${2}; shift 2; - _pwpn_pkg_NAME=$(echo ${PKG_NAME} | tr a-z A-Z); - if [ -z "$(get_var_unsafe PKG_${_pwpn_pkg_NAME}_URL)" ]; then - unset _pwpn_pkg_NAME; - log_msg failexit "Error: package \`${PKG_NAME}' missing in build.vars."; - else - for _pwpn_vname in ${PKG_BUILD_VARS}; do - if [ -n "$(get_var_unsafe DEFAULT_${_pwpn_vname})" ]; then - export "PKG_${_pwpn_vname}=$(get_var_unsafe DEFAULT_${_pwpn_vname})"; - fi; - if [ -n "$(get_var_unsafe PKG_LVL${PKG_LVL}_${_pwpn_vname})" ]; then - export "PKG_${_pwpn_vname}=$(get_var_unsafe PKG_LVL${PKG_LVL}_${_pwpn_vname})"; - fi; - if [ "${BUILD}" = "debug" ] \ - && [ -n "$(get_var_unsafe PKG_${_pwpn_pkg_NAME}_${_pwpn_vname}_DEBUG)" ]; then - export "PKG_${_pwpn_vname}=$(get_var_unsafe PKG_${_pwpn_pkg_NAME}_${_pwpn_vname}_DEBUG)"; - elif [ "${BUILD}" = "release" ] \ - && [ -n "$(get_var_unsafe PKG_${_pwpn_pkg_NAME}_${_pwpn_vname}_RELEASE)" ]; then - export "PKG_${_pwpn_vname}=$(get_var_unsafe PKG_${_pwpn_pkg_NAME}_${_pwpn_vname}_RELEASE)"; - elif [ -n "$(get_var_unsafe PKG_${_pwpn_pkg_NAME}_${_pwpn_vname})" ]; then - export "PKG_${_pwpn_vname}=$(get_var_unsafe PKG_${_pwpn_pkg_NAME}_${_pwpn_vname})"; - fi; - done; unset _pwpn_vname; - fi; - [ -z "${PKG_FNAME}" ] && PKG_FNAME=${PKG_URL##*/}; - [ -z "${PKG_SUBDIR}" ] && PKG_SUBDIR=${PKG_FNAME%%.tar*}; - [ -n "${PKG_ENV_VARS_EXTRA}" ] && set_env_vars_with_sep : "${PKG_ENV_VARS_EXTRA}"; - for _pwpn_env_var in $(export); do - if [ "${_pwpn_env_var#PKG_}" != "${_pwpn_env_var}" ]; then - _pwpn_env_vars="${_pwpn_env_vars:+${_pwpn_env_vars} }${_pwpn_env_var%%=*}"; - fi; - done; - if [ -n "${_pwpn_env_vars}" ]; then - log_env_vars "build script" ${_pwpn_env_vars}; - fi; unset _pwpn_pkg_NAME _pwpn_env_var _pwpn_env_vars; -}; -set_env_vars_with_sep() { - _sevws_sep=${1}; shift; push_IFS ${_sevws_sep}; set -- ${1}; - while [ ${#} -gt 0 ]; do - export "${1}"; shift; - done; unset _sevws_sep; pop_IFS; -}; - -secure_cd() { - if [ \( -z "${1}" \) -o \( ! -e "${1}" \) ]; then - return 1; - else - (cd "${1}"; [ "${PWD#${PREFIX_ROOT}}" = "${PWD}" ] &&\ - return 1 || return 0); - if [ ${?} -eq 0 ]; then - [ "${ARG_VERBOSE:-0}" -eq 1 ] &&\ - log_msg warn "Changing working directory to \`${1}'."; - cd -- "${1}"; - else - log_msg failexit "secure_cd() called with pathname \`${1}' not below \${PREFIX_ROOT} (${PREFIX_ROOT}). This is a bug."; - fi; - fi; -}; -insecure_mkdir() { - while [ ${#} -gt 0 ]; do - if [ -z "${1}" ]; then - return 1; - elif [ ! -e "${1}" ]; then - [ "${ARG_VERBOSE:-0}" -eq 1 ] &&\ - log_msg warn "Making directory \`${1}'."; - mkdir -p -- "${1}"; - fi; shift; - done; -}; -secure_rm() { - while [ ${#} -gt 0 ]; do - if [ -z "${1}" ]; then - return 1; - elif [ -e "${1}" ]; then - if [ -d "${1}" ]; then - _sr_pname_check="${1}"; - else - _sr_pname_check="$(dirname "${1}")"; - fi; - (cd "${_sr_pname_check}"; [ "${PWD#${PREFIX_ROOT}}" = "${PWD}" ] &&\ - return 1 || return 0); - if [ ${?} -eq 0 ]; then - unset _sr_pname_check; - [ "${ARG_VERBOSE:-0}" -eq 1 ] &&\ - log_msg warn "Removing directory or file \`${1}'."; - rm -rf -- "${1}"; - else - log_msg failexit "secure_rm() called with pathname \`${1}' not below \${PREFIX_ROOT} (${PREFIX_ROOT}). This is a bug."; - fi; - fi; shift; - done; -}; - -run_cmd_unsplit() { - _rcu_cmd=${1}; shift; - while [ ${#} -gt 0 ]; do - [ -n "${1}" ] &&\ - _rcu_cmdline="${_rcu_cmdline:+${_rcu_cmdline}:}${1}"; - shift; - done; - push_IFS :; ${_rcu_cmd} ${_rcu_cmdline}; _rcu_rc=$?; pop_IFS; - unset _rcu_cmd _rcu_cmdline; return ${_rcu_rc}; -}; - -# vim:filetype=sh diff --git a/build.usage b/build.usage deleted file mode 100644 index f8786253..00000000 --- a/build.usage +++ /dev/null @@ -1,60 +0,0 @@ -usage: ./build.sh [-x] [-a nt32|nt64] [-b debug|release] [-c] [-d] [-e] [-h] [-pi level.name.build] - [-pr level.name.build] [-r ALL|level.name.build[:diff|:step[,...]]] - [-t[.gz|.bz2|.xz] - -a nt32|nt64 Selects 32-bit or 64-bit architecture; defaults to nt64. - -b debug|release Selects debug or release build; defaults to debug. - This currently only controls CFLAGS. - -c Clean ${PREFIX} before processing build scripts. - -d level.name.build Disables the specified build script. - -e level.name.build Enables the specified build script. - -h Show this screen. - -pi level.name.build Insert link to pkg.build for the specified build script. - All consecutive scripts with higher build levels will - be renamed automatically. - -pr level.name.build Remove the specified build script. As with -pi, all con- - secutive scripts with higher build levels will be renamed - automatically. - -r ALL|level.name.build[:step[,...]] - Restart all or the specified build script(s) completely - or at the optionally specified build step. Currently defined - build steps are: fetch extract build_dir autoconf patch - configure clean build install. - -r level.name.build:diff - Automatically produce diff(1). - -t[.gz|.bz2|.xz] Produce binary distribution and source tarballs containing ${PREFIX} - sans ${WORKDIR} and ${PREFIX}/src/midipix_build and ${WORKDIR} sans top- - level regular files at the end of a build with zero failures. The - tarballs will be compressed with either gzip, bzip2, or xz and signed - with GPG; the default compression is xz. - -v Be verbose; this currently only affects secure_{cd,rm}() and insecure_mkdir(). - -x Set the xtrace sh(1)ell option for debugging purposes. - - ${HOME}/midipix_build.vars, ../midipix_build.vars, and build.vars are sourced - if they exist. - - Packages that are built by pkg.build will apply local patches in ${WORKDIR} - named ${PKG_SUBDIR}.local.patch. - - Examples: - ./build.sh -r ALL - Forcibly restart the entire build. - - ./build.sh -r 301.coreutils.build - Completely restart the coreutils build. - - ./build.sh -r 301.coreutils.build:configure,build,install - Restart the configure, build, and install steps of the coreutils build script. - - ./build.sh -r 205.psxscl.build GITROOT_HEAD=... PKG_PSXSCL_CFLAGS_CONFIGURE_EXTRA=-DPSX_INTERNAL_STRACE - Build psxscl from the internal repository with strace enabled. - - ./build.sh -c -r ALL GITROOT_HEAD=... - Clean ${PREFIX} and forcibly rebuild everything. - -This script has been tested on the following platforms: -Alpine v3.4 (20160917_17:50) (x86_64) -Arch Linux 2016.02.01 (x86_64) -CentOS v7.2.1511 (Core) (x86_64) -Debian GNU/Linux v8.5 (stable) (jessie) (x86_64) -Exherbo Linux (x86_64-pc-linux-musl) (x86_64) -openSUSE 20150612 (Tumbleweed) (x86_64) diff --git a/build.vars b/build.vars deleted file mode 100644 index 0be6fc20..00000000 --- a/build.vars +++ /dev/null @@ -1,671 +0,0 @@ -# -# WARNING: Do _NOT_ use whitespaces (` ') or tab (` ') -# characters in any of the variables below save for MAKEFLAGS, -# PATH, and TIMESTAMP_FMT. -# -# $PREFIX_{CROSS,NATIVE} and $WORKDIR must be immediately -# beneath $PREFIX. $PREFIX must be o+rwx. The variables mentioned -# should not be forward slash-terminated. -# - -if [ "${ARCH:=nt64}" = nt32 ]; then - TARGET="i686-nt32-midipix"; -elif [ "${ARCH}" = nt64 ]; then - TARGET="x86_64-nt64-midipix"; -else - log_msg failexit "Error: invalid architecture \`${ARCH}'."; -fi; -if [ "${BUILD:=debug}" = debug ]; then - PKG_LVL0_CFLAGS_CONFIGURE_DEFAULT="-g2 -O0"; - PKG_LVL1_CFLAGS_CONFIGURE_DEFAULT="-g2 -O0"; - PKG_LVL2_CFLAGS_CONFIGURE_DEFAULT="-g3 -O0"; - PKG_LVL3_CFLAGS_CONFIGURE_DEFAULT="-g2 -O0"; - PKG_LVL4_CFLAGS_CONFIGURE_DEFAULT="-g2 -O0"; -elif [ "${BUILD}" = release ]; then - PKG_LVL0_CFLAGS_CONFIGURE_DEFAULT="-g0 -O2"; - PKG_LVL1_CFLAGS_CONFIGURE_DEFAULT="-g0 -O2"; - PKG_LVL2_CFLAGS_CONFIGURE_DEFAULT="-g0 -O2"; - PKG_LVL3_CFLAGS_CONFIGURE_DEFAULT="-g0 -O2"; - PKG_LVL4_CFLAGS_CONFIGURE_DEFAULT="-g0 -O2"; -else - log_msg failexit "Error: unknown build type \`${BUILD}'."; -fi; - -: ${PREFIX_ROOT:=${HOME}/midipix}; -: ${PREFIX:=${PREFIX_ROOT}/${ARCH}/${BUILD}}; -: ${PREFIX_MINIPIX:=${PREFIX}/minipix}; -: ${PREFIX_NATIVE:=${PREFIX}/native}; -: ${PREFIX_CROSS:=${PREFIX}/${TARGET}}; -: ${DLCACHEDIR:=${PREFIX_ROOT}/dlcache}; -: ${WORKDIR:=${PREFIX}/tmp}; -export PATH="${PREFIX}/bin${PATH:+:${PATH}}"; - -: ${BUILD_LOG_FNAME:=${PREFIX}/build.log}; -: ${BUILD_LOG_LAST_FNAME:=${PREFIX}/build.log.last}; -: ${BUILD_STATUS_IN_PROGRESS_FNAME:=${PREFIX}/BUILD_IN_PROGRESS}; -: ${CHECK_PREREQ_CMDS:="aclocal autoconf autopoint awk basename bunzip2 find flex gcc git groff gunzip install ld libtool lzma make makeinfo msgfmt nl nroff openssl patch python sed sha256sum sort tar tee tic tr uname wget xz"}; -: ${CHECK_PREREQ_FILES:="/usr/include/gmpxx.h /usr/include/mpc.h /usr/include/mpfr.h"}; -: ${CHECK_PREREQ_FILES_DYNAMIC:='/usr/share/groff/$(groff -v 2>/dev/null | awk '\''/^GNU groff version /{print $NF}'\'')/tmac/e.tmac'}; -: ${CHECK_PREREQ_PERL_MODULES:="autodie ExtUtils::MakeMaker"}; -: ${CHECK_PATH_VARS:="PREFIX PREFIX_NATIVE PREFIX_CROSS DLCACHEDIR WORKDIR"}; -: ${CLEAR_ENV_VARS_EXCEPT:="ARG_TARBALL ARG_VERBOSE HOME PATH SHELL TERM USER"}; -: ${CLEAR_PREFIX_DIRS:="bin i686-nt32-midipix include lib lib64 libexec minipix native share tmp x86_64-nt64-midipix"}; -: ${GITROOT:=git://midipix.org}; -: ${GITROOT_HEAD:=git://midipix.org}; -: ${LOG_ENV_VARS:="HOME PATH SHELL USER GITROOT ARCH BUILD PKG_LVL0_CFLAGS_CONFIGURE PKG_LVL1_CFLAGS_CONFIGURE PKG_LVL2_CFLAGS_CONFIGURE PKG_LVL3_CFLAGS_CONFIGURE PKG_LVL4_CFLAGS_CONFIGURE PREFIX PREFIX_NATIVE PREFIX_CROSS WORKDIR"}; -: ${LOG_MSG_FAIL_COLOUR:=91}; -: ${LOG_MSG_INFO_COLOUR:=93}; -: ${LOG_MSG_SUCC_COLOUR:=92}; -: ${LOG_MSG_WARN_COLOUR:=96}; -: ${TARBALL_FNAME_PREFIX:=midipix-${ARCH}-${BUILD}.}; -: ${TARBALL_SIGN_GPG_KEY:=}; -: ${TARBALL_CROSS_FNAME_PREFIX:=midipix-${ARCH}-${BUILD}_cross.}; -: ${TARBALL_CROSS_SIGN_GPG_KEY:=}; -: ${TARBALL_MINIPIX_FNAME_PREFIX:=minipix-${ARCH}-${BUILD}.}; -: ${TARBALL_MINIPIX_SIGN_GPG_KEY:=}; -: ${TARBALL_SRC_FNAME_PREFIX:=midipix-${ARCH}-${BUILD}_src.}; -: ${TARBALL_SRC_SIGN_GPG_KEY:=}; -: ${TARBALL_SUFFIX:=xz}; -: ${TIMESTAMP_FMT_STATUS_FILES:=%Y-%m-%d-%H-%M-%S}; -: ${TIMESTAMP_FMT:="%Y/%m/%d %H:%M:%S"}; -: ${WGET_ARGS:="--no-check-certificate"}; - -# -# pkg.build -# -DEFAULT_MAKEFLAGS_BUILD=-j${BUILD_CPUS:=1}; -PKG_BUILD_VARS="BUILD_CMDLINE BUILD_DIR BUILD_TYPE CFLAGS_BUILD_EXTRA CFLAGS_CONFIGURE CFLAGS_CONFIGURE_EXTRA CFLAGS_INSTALL_EXTRA CONFIG_CACHE_EXTRA CONFIGURE CONFIGURE_ARGS CONFIGURE_ARGS_EXTRA DISABLED ENV_VARS_EXTRA FNAME GIT_BRANCH INSTALL_FILES INSTALL_TARGET INSTALL_TARGET_EXTRA LDFLAGS_BUILD_EXTRA LDFLAGS_CONFIGURE LDFLAGS_CONFIGURE_EXTRA LDFLAGS_INSTALL_EXTRA MAKEFLAGS_BUILD MAKEFLAGS_BUILD_EXTRA MAKEFLAGS_INSTALL MAKEFLAGS_INSTALL_EXTRA NO_CLEAN NO_MAKE_INSTALL PREFIX_EXTRA SHA256SUM SLIBTOOL SUBDIR SUBDIR_CREATE URL URL_FNAME URL_TYPE VERSION"; -PKG_LVL0_PREFIX="${PREFIX_CROSS}"; -PKG_LVL0_BUILD_TYPE="host"; -PKG_LVL0_CFLAGS_CONFIGURE="${PKG_LVL0_CFLAGS_CONFIGURE_DEFAULT}"; -PKG_LVL0_CONFIGURE_ARGS="-C --disable-nls --host=${TARGET} --prefix= --target=${TARGET}"; -PKG_LVL1_PREFIX="${PREFIX_NATIVE}"; -PKG_LVL1_CFLAGS_CONFIGURE="${PKG_LVL1_CFLAGS_CONFIGURE_DEFAULT}"; -PKG_LVL1_CONFIGURE_ARGS="--disable-nls --host=${TARGET} --prefix=/ --target=${TARGET}"; -PKG_LVL1_MAKEFLAGS_INSTALL="DESTDIR=${PREFIX_NATIVE}"; -PKG_LVL2_BUILD_TYPE="cross"; -PKG_LVL2_PREFIX="${PREFIX_NATIVE}"; -PKG_LVL2_CFLAGS_CONFIGURE="${PKG_LVL2_CFLAGS_CONFIGURE_DEFAULT}"; -PKG_LVL2_CONFIGURE_ARGS="--prefix= --strict --host=${TARGET}"; -PKG_LVL2_ENV_VARS_EXTRA="CFLAGS_PATH=-I${PREFIX_NATIVE}/include:LDFLAGS_PATH=-L${PREFIX_NATIVE}/lib"; -PKG_LVL2_MAKEFLAGS_INSTALL="DESTDIR=${PREFIX_NATIVE}"; -PKG_LVL2_URL_TYPE="git"; -PKG_LVL3_PREFIX="${PREFIX_NATIVE}"; -PKG_LVL3_CFLAGS_CONFIGURE="${PKG_LVL3_CFLAGS_CONFIGURE_DEFAULT:+${PKG_LVL3_CFLAGS_CONFIGURE_DEFAULT} }--sysroot=${PREFIX_NATIVE}"; -PKG_LVL3_LDFLAGS_CONFIGURE="--sysroot=${PREFIX_NATIVE}"; -PKG_LVL3_CONFIGURE_ARGS="-C --disable-nls --host=${TARGET} --prefix= --target=${TARGET}"; -PKG_LVL3_MAKEFLAGS_INSTALL="DESTDIR=${PREFIX_NATIVE}"; -PKG_LVL4_PREFIX="${PREFIX_NATIVE}"; -PKG_LVL4_CFLAGS_CONFIGURE="${PKG_LVL4_CFLAGS_CONFIGURE_DEFAULT:+${PKG_LVL4_CFLAGS_CONFIGURE_DEFAULT} }--sysroot=${PREFIX_NATIVE}"; -PKG_LVL4_LDFLAGS_CONFIGURE="--sysroot=${PREFIX_NATIVE}"; -PKG_LVL4_CONFIGURE_ARGS="-C --disable-nls --host=${TARGET} --prefix= --target=${TARGET}"; -PKG_LVL4_MAKEFLAGS_INSTALL="DESTDIR=${PREFIX_NATIVE}"; - -# -# Build level 0 (cross-toolchain) -# -: ${PKG_BINUTILS_HOST_VERSION:=2.24.51}; -: ${PKG_BINUTILS_HOST_SHA256SUM:=250d3b2925c6b211fb16173b0b25bc091c58829fbcad3eb849645e0af52cf7fa}; -: ${PKG_BINUTILS_HOST_URL:=ftp://sourceware.org/pub/binutils/snapshots/binutils-${PKG_BINUTILS_HOST_VERSION}.tar.bz2}; -: ${PKG_BINUTILS_HOST_CONFIGURE_ARGS:=--disable-werror --prefix=${PREFIX} --target=${TARGET} --with-sysroot=${PREFIX_CROSS}}; -: ${PKG_BINUTILS_HOST_SLIBTOOL:=slibtool-static}; -: ${PKG_FILE_HOST_VERSION:=5.28}; -: ${PKG_FILE_HOST_SHA256SUM:=0ecb5e146b8655d1fa84159a847ee619fc102575205a0ff9c6cc60fc5ee2e012}; -: ${PKG_FILE_HOST_URL:=ftp://ftp.astron.com/pub/file/file-${PKG_FILE_HOST_VERSION}.tar.gz}; -: ${PKG_FILE_HOST_CONFIGURE_ARGS:="-C --prefix=${PREFIX}"}; -: ${PKG_PERK_HOST_URL:=${GITROOT}/perk}; -: ${PKG_PERK_HOST_URL_TYPE:=git}; -: ${PKG_PERK_HOST_CONFIGURE_ARGS="--prefix=/usr"}; -: ${PKG_PERK_HOST_MAKEFLAGS_INSTALL="DESTDIR=${PREFIX}"}; -: ${PKG_PKGCONF_HOST_SHA256SUM:=7ec8b516e655e247f4ba976837cee808134785819ab8f538f652fe919cc6c09f}; -: ${PKG_PKGCONF_HOST_VERSION:=0.9.12}; -: ${PKG_PKGCONF_HOST_URL:=https://github.com/pkgconf/pkgconf/releases/download/pkgconf-${PKG_PKGCONF_HOST_VERSION}/pkgconf-${PKG_PKGCONF_HOST_VERSION}.tar.bz2}; -: ${PKG_PKGCONF_HOST_CONFIGURE_ARGS:="-C --prefix=${PREFIX_NATIVE}"}; -: ${PKG_PKGCONF_HOST_MAKEFLAGS_INSTALL_EXTRA:=prefix=${PREFIX}}; -: ${PKG_PSXSTUB_URL:=${GITROOT}/psxstub}; -: ${PKG_PSXSTUB_URL_TYPE:=git}; -: ${PKG_SLIBTOOL_HOST_URL:=git://midipix.org/slibtool}; -: ${PKG_SLIBTOOL_HOST_URL_TYPE:=git}; -: ${PKG_SLIBTOOL_HOST_CONFIGURE_ARGS:=--host= --prefix=}; -: ${PKG_SLIBTOOL_HOST_MAKEFLAGS_INSTALL=DESTDIR=${PREFIX}}; - -# -# Build level 1 (native toolchain) -# -: ${PKG_BINUTILS_VERSION:=2.24.51}; -: ${PKG_BINUTILS_SHA256SUM:=250d3b2925c6b211fb16173b0b25bc091c58829fbcad3eb849645e0af52cf7fa}; -: ${PKG_BINUTILS_URL:=ftp://sourceware.org/pub/binutils/snapshots/binutils-${PKG_BINUTILS_VERSION}.tar.bz2}; -: ${PKG_BINUTILS_CONFIGURE_ARGS_EXTRA:=--with-libelf=${PREFIX_NATIVE} --with-gmp=${PREFIX_NATIVE} --with-mpc=${PREFIX_NATIVE} --with-mpfr=${PREFIX_NATIVE} --with-sysroot=/}; -: ${PKG_BINUTILS_SLIBTOOL:=slibtool-static}; -: ${PKG_GCC_VERSION:=4.6.4}; -: ${PKG_GMP_VERSION:=5.1.3}; -: ${PKG_GMP_SHA256SUM:=752079520b4690531171d0f4532e40f08600215feefede70b24fabdc6f1ab160}; -: ${PKG_GMP_URL:=https://gmplib.org/download/gmp/gmp-${PKG_GMP_VERSION}.tar.bz2}; -: ${PKG_GMP_CONFIGURE_ARGS_EXTRA:=--disable-assembly}; -: ${PKG_GMP_PREFIX_EXTRA:=${PREFIX_CROSS}}; -: ${PKG_LIBELF_VERSION:=0.8.13}; -: ${PKG_LIBELF_SHA256SUM:=591a9b4ec81c1f2042a97aa60564e0cb79d041c52faa7416acb38bc95bd2c76d}; -: ${PKG_LIBELF_URL:=http://www.mr511.de/software/libelf-${PKG_LIBELF_VERSION}.tar.gz}; -: ${PKG_LIBELF_CONFIGURE_ARGS:="--disable-nls --host=${TARGET} --prefix=${PREFIX_NATIVE} --target=${TARGET}"}; -: ${PKG_LIBELF_MAKEFLAGS_INSTALL:=}; -: ${PKG_MPC_VERSION:=1.0.1}; -: ${PKG_MPC_SHA256SUM:=ed5a815cfea525dc778df0cb37468b9c1b554aaf30d9328b1431ca705b7400ff}; -: ${PKG_MPC_URL:=ftp://ftp.gnu.org/gnu/mpc/mpc-${PKG_MPC_VERSION}.tar.gz}; -: ${PKG_MPC_CONFIGURE_ARGS_EXTRA:=--with-gmp=${PREFIX_NATIVE} --with-mpfr=${PREFIX_NATIVE}}; -: ${PKG_MPC_PREFIX_EXTRA:=${PREFIX_CROSS}}; -: ${PKG_MPFR_VERSION:=3.1.2}; -: ${PKG_MPFR_SHA256SUM:=79c73f60af010a30a5c27a955a1d2d01ba095b72537dab0ecaad57f5a7bb1b6b}; -: ${PKG_MPFR_URL:=ftp://ftp.gnu.org/gnu/mpfr/mpfr-${PKG_MPFR_VERSION}.tar.bz2}; -: ${PKG_MPFR_CONFIGURE_ARGS_EXTRA:=--with-gmp=${PREFIX_NATIVE}}; -: ${PKG_MPFR_PREFIX_EXTRA:=${PREFIX_CROSS}}; -: ${PKG_MUSL_VERSION:=1.1.12}; -: ${PKG_MUSL_SHA256SUM:=720b83c7e276b4b679c0bffe9509340d5f81fd601508e607e708177df0d31c0e}; -: ${PKG_MUSL_URL:=http://www.musl-libc.org/releases/musl-${PKG_MUSL_VERSION}.tar.gz}; -: ${PKG_PERK_URL:=${GITROOT}/perk}; -: ${PKG_PERK_URL_TYPE:=git}; -: ${PKG_PERK_CONFIGURE_ARGS="--prefix=/usr --target=${TARGET}"}; -: ${PKG_PKGCONF_SHA256SUM:=7ec8b516e655e247f4ba976837cee808134785819ab8f538f652fe919cc6c09f}; -: ${PKG_PKGCONF_VERSION:=0.9.12}; -: ${PKG_PKGCONF_URL:=https://github.com/pkgconf/pkgconf/releases/download/pkgconf-${PKG_PKGCONF_VERSION}/pkgconf-${PKG_PKGCONF_VERSION}.tar.bz2}; -: ${PKG_PKGCONF_INSTALL_FILES:=/=lib/pkgconfig}; -: ${PKG_SLIBTOOL_URL:=git://midipix.org/slibtool}; -: ${PKG_SLIBTOOL_URL_TYPE:=git}; -: ${PKG_SLIBTOOL_CONFIGURE_ARGS="--host=${TARGET} --prefix= --target=${TARGET}"}; - -# -# Build level 2 (runtime components) -# -: ${PKG_DALIST_URL:=${GITROOT}/dalist}; -: ${PKG_DALIST_INSTALL_TARGET_EXTRA:=install-lib}; -: ${PKG_DALIST_PREFIX_EXTRA:=${PREFIX_MINIPIX}}; -: ${PKG_NTAPI_URL:=${GITROOT}/ntapi}; -: ${PKG_NTAPI_INSTALL_TARGET_EXTRA:=install-lib}; -: ${PKG_NTAPI_PREFIX_EXTRA:=${PREFIX_MINIPIX}}; -: ${PKG_NTCON_URL:=${GITROOT}/ntcon}; -: ${PKG_NTCON_INSTALL_TARGET_EXTRA:=install-lib}; -: ${PKG_NTCON_PREFIX_EXTRA:=${PREFIX_MINIPIX}}; -: ${PKG_NTCTTY_URL:=${GITROOT_HEAD}/ntctty}; -: ${PKG_NTCTTY_CFLAGS_CONFIGURE_EXTRA:=-O0}; -: ${PKG_NTCTTY_PREFIX_EXTRA:=${PREFIX_MINIPIX}}; -: ${PKG_PEMAGINE_URL:=${GITROOT}/pemagine}; -: ${PKG_PEMAGINE_CFLAGS_CONFIGURE_EXTRA:=-O0}; -: ${PKG_PEMAGINE_INSTALL_TARGET_EXTRA:=install-lib}; -: ${PKG_PEMAGINE_PREFIX_EXTRA:=${PREFIX_MINIPIX}}; -: ${PKG_PSXSCL_URL:=${GITROOT_HEAD}/psxscl}; -: ${PKG_PSXSCL_CFLAGS_CONFIGURE_EXTRA:=-O0}; -: ${PKG_PSXSCL_INSTALL_TARGET_EXTRA:=install-lib}; -: ${PKG_PSXSCL_PREFIX_EXTRA:=${PREFIX_MINIPIX}}; -: ${PKG_PSXSCL_STRACE_URL:=${GITROOT_HEAD}/psxscl}; -: ${PKG_PSXSCL_STRACE_CFLAGS_CONFIGURE_EXTRA="-DPSX_INTERNAL_STRACE -O0"}; -: ${PKG_PSXSCL_STRACE_INSTALL_FILES:="/=lib/psxscl_strace lib/libpsxscl.so=lib/psxscl_strace/"}; -: ${PKG_PSXSCL_STRACE_NO_MAKE_INSTALL:=1}; -: ${PKG_PSXTYPES_URL:=${GITROOT}/psxtypes}; -: ${PKG_PSXTYPES_BUILD_DIR:=psxtypes}; -: ${PKG_PSXTYPES_MAKEFLAGS_BUILD:="DESTDIR=${PREFIX_NATIVE}"}; -: ${PKG_PTYCON_URL:=${GITROOT_HEAD}/ptycon}; -: ${PKG_PTYCON_CFLAGS_CONFIGURE_EXTRA:=-O0}; -: ${PKG_PTYCON_INSTALL_TARGET_EXTRA:=install-app install-lib}; -: ${PKG_PTYCON_PREFIX_EXTRA:=${PREFIX_MINIPIX}}; - -# -# Build level 3, 300-349 (3rd party packages) -# Dependencies -# -: ${PKG_EXPAT_VERSION:=2.2.0}; -: ${PKG_EXPAT_SHA256SUM:=d9e50ff2d19b3538bd2127902a89987474e1a4db8e43a66a4d1a712ab9a504ff}; -: ${PKG_EXPAT_URL:=http://pkgs.fedoraproject.org/repo/pkgs/expat/expat-${PKG_EXPAT_VERSION}.tar.bz2/2f47841c829facb346eb6e3fab5212e2/expat-${PKG_EXPAT_VERSION}.tar.bz2}; -: ${PKG_GDBM_VERSION:=1.12}; -: ${PKG_GDBM_SHA256SUM:=d97b2166ee867fd6ca5c022efee80702d6f30dd66af0e03ed092285c3af9bcea}; -: ${PKG_GDBM_URL:=ftp://ftp.gnu.org/gnu/gdbm/gdbm-${PKG_GDBM_VERSION}.tar.gz}; -: ${PKG_GLIB_VERSION:=2.46.2}; -: ${PKG_GLIB_SHA256SUM:=5031722e37036719c1a09163cc6cf7c326e4c4f1f1e074b433c156862bd733db}; -: ${PKG_GLIB_URL:=http://ftp.gnome.org/pub/GNOME/sources/glib/${PKG_GLIB_VERSION%.[0-9]}/glib-${PKG_GLIB_VERSION}.tar.xz}; -: ${PKG_GLIB_CONFIGURE_ARGS_EXTRA:=--disable-libelf}; -: ${PKG_GLIB_ENV_VARS_EXTRA:=LIBFFI_CFLAGS=-I${PREFIX_NATIVE}/lib/libffi-3.2.1/include:LIBFFI_LIBS=-L${PREFIX_NATIVE}/lib -lffi}; -: ${PKG_GLIB_LDFLAGS_CONFIGURE_EXTRA:=-L${PREFIX_NATIVE}/lib}; -: ${PKG_GLIB_MAKEFLAGS_BUILD_EXTRA:=V=99}; -: ${PKG_GZIP_VERSION:=1.2.4}; -: ${PKG_GZIP_SHA256SUM:=1ca41818a23c9c59ef1d5e1d00c0d5eaa2285d931c0fb059637d7c0cc02ad967}; -: ${PKG_GZIP_URL:=https://ftp.gnu.org/gnu/gzip/gzip-${PKG_GZIP_VERSION}.tar.gz}; -: ${PKG_GZIP_CONFIGURE_ARGS:=--host=${TARGET} --prefix= --target=${TARGET} --sysroot=${PREFIX_NATIVE}}; -: ${PKG_GZIP_CFLAGS_CONFIGURE_EXTRA:=-DNO_ASM -UASMV}; -: ${PKG_GZIP_MAKEFLAGS_BUILD_EXTRA:=OBJA= prefix=${PREFIX_NATIVE}}; -: ${PKG_GZIP_MAKEFLAGS_INSTALL_EXTRA:=OBJA= prefix=${PREFIX_NATIVE}}; -: ${PKG_LIBARCHIVE_VERSION:=3.1.2}; -: ${PKG_LIBARCHIVE_SHA256SUM:=eb87eacd8fe49e8d90c8fdc189813023ccc319c5e752b01fb6ad0cc7b2c53d5e}; -: ${PKG_LIBARCHIVE_URL:=http://www.libarchive.org/downloads/libarchive-${PKG_LIBARCHIVE_VERSION}.tar.gz}; -: ${PKG_LIBARCHIVE_CONFIGURE_ARGS_EXTRA:=--without-xml2}; -: ${PKG_LIBARCHIVE_LDFLAGS_CONFIGURE_EXTRA:=-L${PREFIX_NATIVE}/lib}; -: ${PKG_LIBARCHIVE_MAKEFLAGS_INSTALL_EXTRA:="prefix=:DESTDIR=${PREFIX_NATIVE}:LIBTOOL=slibtool"}; -: ${PKG_LIBASSUAN_VERSION:=2.4.3}; -: ${PKG_LIBASSUAN_SHA256SUM:=22843a3bdb256f59be49842abf24da76700354293a066d82ade8134bb5aa2b71}; -: ${PKG_LIBASSUAN_URL:=https://www.gnupg.org/ftp/gcrypt/libassuan/libassuan-${PKG_LIBASSUAN_VERSION}.tar.bz2}; -: ${PKG_LIBEVENT_VERSION:=2.0.22-stable}; -: ${PKG_LIBEVENT_SHA256SUM:=71c2c49f0adadacfdbe6332a372c38cf9c8b7895bb73dabeaa53cdcc1d4e1fa3}; -: ${PKG_LIBEVENT_URL:=https://github.com/libevent/libevent/releases/download/release-${PKG_LIBEVENT_VERSION}/libevent-${PKG_LIBEVENT_VERSION}.tar.gz}; -: ${PKG_LIBFETCH_VERSION:=2.33}; -: ${PKG_LIBFETCH_SHA256SUM:=3226f53d5ad29cc27510db968ef0d37bf4554b8aaaeadcd56e23067213b08943}; -: ${PKG_LIBFETCH_URL:=https://sources.archlinux.org/other/libfetch/libfetch-${PKG_LIBFETCH_VERSION}.tar.gz}; -: ${PKG_LIBFETCH_BUILD_DIR:=libfetch-${PKG_LIBFETCH_VERSION}}; -: ${PKG_LIBFETCH_ENV_VARS_EXTRA:=CFLAGS=--sysroot=${PREFIX_NATIVE}:LDFLAGS=--sysroot=${PREFIX_NATIVE}}; -: ${PKG_LIBFETCH_MAKEFLAGS_BUILD_EXTRA:=E=echo Q= AR=${TARGET}-ar CC=${TARGET}-gcc LD=${TARGET}-gcc}; -: ${PKG_LIBFETCH_MAKEFLAGS_INSTALL_EXTRA:=E=echo Q= prefix=}; -: ${PKG_LIBFFI_VERSION:=3.2.1}; -: ${PKG_LIBFFI_SHA256SUM:=d06ebb8e1d9a22d19e38d63fdb83954253f39bedc5d46232a05645685722ca37}; -: ${PKG_LIBFFI_URL:=ftp://sourceware.org/pub/libffi/libffi-${PKG_LIBFFI_VERSION}.tar.gz}; -: ${PKG_LIBFFI_CFLAGS_CONFIGURE_EXTRA:=-D_WIN64}; -: ${PKG_LIBFFI_CONFIGURE_ARGS_EXTRA:=--program-prefix=}; -: ${PKG_LIBFIRM_URL:=http://pp.info.uni-karlsruhe.de/git/libfirm.git}; -: ${PKG_LIBFIRM_URL_TYPE:=git}; -: ${PKG_LIBFIRM_BUILD_DIR:=cparser+libfirm/build/libfirm}; -: ${PKG_LIBFIRM_CONFIGURE:=bfirm/configure}; -: ${PKG_LIBFIRM_CONFIGURE_ARGS:="--source-dir=../../../libfirm --prefix="}; -: ${PKG_LIBFIRM_GIT_BRANCH:=master}; -: ${PKG_LIBFIRM_MAKEFLAGS_INSTALL:=DESTDIR=../../sysroot}; -: ${PKG_LIBFIRM_PREFIX_EXTRA:=${PREFIX_NATIVE}}; -: ${PKG_LIBFIRM_SUBDIR:=libfirm}; -: ${PKG_LIBGCRYPT_VERSION:=1.7.3}; -: ${PKG_LIBGCRYPT_SHA256SUM:=ddac6111077d0a1612247587be238c5294dd0ee4d76dc7ba783cc55fb0337071}; -: ${PKG_LIBGCRYPT_URL:=https://www.gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-${PKG_LIBGCRYPT_VERSION}.tar.bz2}; -: ${PKG_LIBGCRYPT_CONFIGURE_ARGS_EXTRA:=--disable-asm --disable-padlock-support --disable-aesni-support --disable-pclmul-support --disable-sse41-support --disable-drng-support --disable-avx-support --disable-avx2-support gcry_cv_gcc_inline_asm_avx2=no gcry_cv_gcc_inline_asm_avx=no gcry_cv_gcc_inline_asm_bmi2=no gcry_cv_gcc_inline_asm_pclmul=no gcry_cv_gcc_inline_asm_sse41=no gcry_cv_gcc_inline_asm_ssse3=no --disable-amd64-as-feature-detection}; -: ${PKG_LIBGPG_ERROR_VERSION:=1.24}; -: ${PKG_LIBGPG_ERROR_SHA256SUM:=9268e1cc487de5e6e4460fca612a06e4f383072ac43ae90603e5e46783d3e540}; -: ${PKG_LIBGPG_ERROR_URL:=https://www.gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-${PKG_LIBGPG_ERROR_VERSION}.tar.bz2}; -: ${PKG_LIBKSBA_VERSION:=1.3.5}; -: ${PKG_LIBKSBA_SHA256SUM:=41444fd7a6ff73a79ad9728f985e71c9ba8cd3e5e53358e70d5f066d35c1a340}; -: ${PKG_LIBKSBA_URL:=https://www.gnupg.org/ftp/gcrypt/libksba/libksba-${PKG_LIBKSBA_VERSION}.tar.bz2}; -: ${PKG_LIBNBCOMPAT_URL:=http://ftp.netbsd.org/pub/pkgsrc/current/pkgsrc/pkgtools/libnbcompat/files}; -: ${PKG_LIBNBCOMPAT_URL_TYPE:=wget_recursive}; -: ${PKG_LIBNBCOMPAT_BUILD_DIR:=libnbcompat}; -: ${PKG_LIBNBCOMPAT_SUBDIR:=libnbcompat}; -: ${PKG_LIBPIPELINE_VERSION:=1.4.1}; -: ${PKG_LIBPIPELINE_SHA256SUM:=da46d7b20163aadb9db2faae483f734e9096a7550c84b94029abeab62dd1b9ee}; -: ${PKG_LIBPIPELINE_URL:=http://download.savannah.gnu.org/releases/libpipeline/libpipeline-${PKG_LIBPIPELINE_VERSION}.tar.gz}; -: ${PKG_LIBPIPELINE_CFLAGS_BUILD_EXTRA:=-Dprogram_name=program_invocation_name}; -: ${PKG_LIBRESSL_VERSION:=2.2.6}; -: ${PKG_LIBRESSL_SHA256SUM:=1ee19994cffd047d40f63ba149115dba18a681b0cc923beec301bf424b58d64f}; -: ${PKG_LIBRESSL_URL:=http://ftp.eu.openbsd.org/pub/OpenBSD/LibreSSL/libressl-${PKG_LIBRESSL_VERSION}.tar.gz}; -: ${PKG_LIBRESSL_CFLAGS_CONFIGURE_EXTRA:=-D__MIDIPIX}; -: ${PKG_LIBRESSL_CONFIGURE_ARGS_EXTRA:=--disable-asm}; -: ${PKG_LIBZ_VERSION:=1.2.8.2015.05.20}; -: ${PKG_LIBZ_SHA256SUM:=33e65f22ec3d3e3f87436e53f82eb114054cd3aa373dc0480625dd92806fd9a0}; -: ${PKG_LIBZ_URL:=https://sortix.org/libz/release/libz-${PKG_LIBZ_VERSION}.tar.gz}; -: ${PKG_LIBZ_CONFIGURE_ARGS:=--host=${TARGET} --prefix= --target=${TARGET}}; -: ${PKG_NCURSES_VERSION:=6.0}; -: ${PKG_NCURSES_SHA256SUM:=f551c24b30ce8bfb6e96d9f59b42fbea30fa3a6123384172f9e7284bcf647260}; -: ${PKG_NCURSES_URL:=https://ftp.gnu.org/gnu/ncurses/ncurses-${PKG_NCURSES_VERSION}.tar.gz}; -: ${PKG_NCURSES_BUILD_DIR:=ncurses-${PKG_NCURSES_VERSION}-native-${TARGET}}; -: ${PKG_NCURSES_CONFIGURE_ARGS_EXTRA:="--enable-pc-files --program-prefix= --with-pkg-config-libdir=${PREFIX_NATIVE}/lib/pkgconfig --with-shared --without-manpages --without-progs --without-tests --disable-widec --without-pthread"}; -: ${PKG_NCURSESTW_VERSION:=6.0}; -: ${PKG_NCURSESTW_SHA256SUM:=f551c24b30ce8bfb6e96d9f59b42fbea30fa3a6123384172f9e7284bcf647260}; -: ${PKG_NCURSESTW_URL:=https://ftp.gnu.org/gnu/ncurses/ncurses-${PKG_NCURSESTW_VERSION}.tar.gz}; -: ${PKG_NCURSESTW_BUILD_DIR:=ncursestw-${PKG_NCURSESTW_VERSION}-native-${TARGET}}; -: ${PKG_NCURSESTW_CONFIGURE_ARGS_EXTRA:="--enable-pc-files --program-prefix= --with-pkg-config-libdir=${PREFIX_NATIVE}/lib/pkgconfig --with-shared --without-manpages --without-progs --without-tests --disable-widec --with-pthread"}; -: ${PKG_NCURSESW_VERSION:=6.0}; -: ${PKG_NCURSESW_SHA256SUM:=f551c24b30ce8bfb6e96d9f59b42fbea30fa3a6123384172f9e7284bcf647260}; -: ${PKG_NCURSESW_URL:=https://ftp.gnu.org/gnu/ncurses/ncurses-${PKG_NCURSESW_VERSION}.tar.gz}; -: ${PKG_NCURSESW_BUILD_DIR:=ncursesw-${PKG_NCURSESW_VERSION}-native-${TARGET}}; -: ${PKG_NCURSESW_CONFIGURE_ARGS_EXTRA:="--enable-pc-files --program-prefix= --with-pkg-config-libdir=${PREFIX_NATIVE}/lib/pkgconfig --with-shared --with-manpages --with-progs --without-tests --enable-widec --without-pthread"}; -: ${PKG_NCURSESW_INSTALL_FILES:=@ncursesw/ncurses.h=include/ncurses.h}; -: ${PKG_NPTH_VERSION:=1.2}; -: ${PKG_NPTH_SHA256SUM:=6ddbdddb2cf49a4723f9d1ad6563c480d6760dcb63cb7726b8fc3bc2e1b6c08a}; -: ${PKG_NPTH_URL:=https://www.gnupg.org/ftp/gcrypt/npth/npth-${PKG_NPTH_VERSION}.tar.bz2}; -: ${PKG_PCRE_VERSION:=8.39}; -: ${PKG_PCRE_SHA256SUM:=ccdf7e788769838f8285b3ee672ed573358202305ee361cfec7a4a4fb005bbc7}; -: ${PKG_PCRE_URL:=ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-${PKG_PCRE_VERSION}.tar.gz}; -: ${PKG_XZ_VERSION:=5.2.2}; -: ${PKG_XZ_SHA256SUM:=73df4d5d34f0468bd57d09f2d8af363e95ed6cc3a4a86129d2f2c366259902a2}; -: ${PKG_XZ_URL:=http://tukaani.org/xz/xz-${PKG_XZ_VERSION}.tar.gz}; - -# -# Build level 3, 350-399 (3rd party packages) -# X11 dependencies -# -: ${PKG_INPUTPROTO_VERSION:=2.3.2}; -: ${PKG_INPUTPROTO_SHA256SUM:=893a6af55733262058a27b38eeb1edc733669f01d404e8581b167f03c03ef31d}; -: ${PKG_INPUTPROTO_URL:=https://www.x.org/releases/individual/proto/inputproto-${PKG_INPUTPROTO_VERSION}.tar.bz2}; -: ${PKG_KBPROTO_VERSION:=1.0.7}; -: ${PKG_KBPROTO_SHA256SUM:=f882210b76376e3fa006b11dbd890e56ec0942bc56e65d1249ff4af86f90b857}; -: ${PKG_KBPROTO_URL:=https://www.x.org/releases/individual/proto/kbproto-${PKG_KBPROTO_VERSION}.tar.bz2}; -: ${PKG_RENDERPROTO_VERSION:=0.11.1}; -: ${PKG_RENDERPROTO_SHA256SUM:=06735a5b92b20759204e4751ecd6064a2ad8a6246bb65b3078b862a00def2537}; -: ${PKG_RENDERPROTO_URL:=https://www.x.org/releases/individual/proto/renderproto-${PKG_RENDERPROTO_VERSION}.tar.bz2}; -: ${PKG_XCB_VERSION:=1.12}; -: ${PKG_XCB_SHA256SUM:=4adfb1b7c67e99bc9c2ccb110b2f175686576d2f792c8a71b9c8b19014057b5b}; -: ${PKG_XCB_URL:=https://www.x.org/releases/individual/xcb/libxcb-${PKG_XCB_VERSION}.tar.bz2}; -: ${PKG_XCB_CONFIGURE_ARGS_EXTRA:=--disable-randr}; -: ${PKG_XCB_PROTO_VERSION:=1.12}; -: ${PKG_XCB_PROTO_SHA256SUM:=5922aba4c664ab7899a29d92ea91a87aa4c1fc7eb5ee550325c3216c480a4906}; -: ${PKG_XCB_PROTO_URL:=https://www.x.org/releases/individual/xcb/xcb-proto-${PKG_XCB_PROTO_VERSION}.tar.bz2}; -: ${PKG_XCB_PROTO_MAKEFLAGS_INSTALL:="DESTDIR=${PREFIX_NATIVE}/"}; -: ${PKG_XEXTPROTO_VERSION:=7.3.0}; -: ${PKG_XEXTPROTO_SHA256SUM:=f3f4b23ac8db9c3a9e0d8edb591713f3d70ef9c3b175970dd8823dfc92aa5bb0}; -: ${PKG_XEXTPROTO_URL:=https://www.x.org/releases/individual/proto/xextproto-${PKG_XEXTPROTO_VERSION}.tar.bz2}; -: ${PKG_XPROTO_VERSION:=7.0.29}; -: ${PKG_XPROTO_SHA256SUM:=6c1a477092ca73233902b8d5f33012635c4b0208f17e7833cc7efe5c93ba9f8a}; -: ${PKG_XPROTO_URL:=https://www.x.org/releases/individual/proto/xproto-${PKG_XPROTO_VERSION}.tar.bz2}; -: ${PKG_XRENDER_VERSION:=0.9.9}; -: ${PKG_XRENDER_SHA256SUM:=fc2fe57980a14092426dffcd1f2d9de0987b9d40adea663bd70d6342c0e9be1a}; -: ${PKG_XRENDER_URL:=https://www.x.org/releases/individual/lib/libXrender-${PKG_XRENDER_VERSION}.tar.bz2}; -: ${PKG_XTRANS_VERSION:=1.1}; -: ${PKG_XTRANS_SHA256SUM:=16bc4646f105efd3d0dd105899ac19035d67acf50950ca8c70cf68772508272d}; -: ${PKG_XTRANS_URL:=https://www.x.org/releases/individual/lib/xtrans-${PKG_XTRANS_VERSION}.tar.bz2}; -: ${PKG_LIBICE_VERSION:=1.0.9}; -: ${PKG_LIBICE_SHA256SUM:=8f7032f2c1c64352b5423f6b48a8ebdc339cc63064af34d66a6c9aa79759e202}; -: ${PKG_LIBICE_URL:=https://www.x.org/releases/individual/lib/libICE-${PKG_LIBICE_VERSION}.tar.bz2}; -: ${PKG_LIBPTHREAD_STUBS_VERSION:=0.3}; -: ${PKG_LIBPTHREAD_STUBS_SHA256SUM:=35b6d54e3cc6f3ba28061da81af64b9a92b7b757319098172488a660e3d87299}; -: ${PKG_LIBPTHREAD_STUBS_URL:=https://xcb.freedesktop.org/dist/libpthread-stubs-${PKG_LIBPTHREAD_STUBS_VERSION}.tar.bz2}; -: ${PKG_LIBSM_VERSION:=1.2.2}; -: ${PKG_LIBSM_SHA256SUM:=0baca8c9f5d934450a70896c4ad38d06475521255ca63b717a6510fdb6e287bd}; -: ${PKG_LIBSM_URL:=https://www.x.org/releases/individual/lib/libSM-${PKG_LIBSM_VERSION}.tar.bz2}; -: ${PKG_LIBX11_VERSION:=1.6.3}; -: ${PKG_LIBX11_SHA256SUM:=cf31a7c39f2f52e8ebd0db95640384e63451f9b014eed2bb7f5de03e8adc8111}; -: ${PKG_LIBX11_URL:=https://www.x.org/releases/individual/lib/libX11-${PKG_LIBX11_VERSION}.tar.bz2}; -: ${PKG_LIBXAU_VERSION:=1.0.8}; -: ${PKG_LIBXAU_SHA256SUM:=fdd477320aeb5cdd67272838722d6b7d544887dfe7de46e1e7cc0c27c2bea4f2}; -: ${PKG_LIBXAU_URL:=https://www.x.org/releases/individual/lib/libXau-${PKG_LIBXAU_VERSION}.tar.bz2}; -: ${PKG_LIBXAW_VERSION:=1.0.13}; -: ${PKG_LIBXAW_SHA256SUM:=8ef8067312571292ccc2bbe94c41109dcf022ea5a4ec71656a83d8cce9edb0cd}; -: ${PKG_LIBXAW_URL:=https://www.x.org/releases/individual/lib/libXaw-${PKG_LIBXAW_VERSION}.tar.bz2}; -: ${PKG_LIBXEXT_VERSION:=1.3.3}; -: ${PKG_LIBXEXT_SHA256SUM:=b518d4d332231f313371fdefac59e3776f4f0823bcb23cf7c7305bfb57b16e35}; -: ${PKG_LIBXEXT_URL:=https://www.x.org/releases/individual/lib/libXext-${PKG_LIBXEXT_VERSION}.tar.bz2}; -: ${PKG_LIBXKBFILE_VERSION:=1.0.9}; -: ${PKG_LIBXKBFILE_SHA256SUM:=51817e0530961975d9513b773960b4edd275f7d5c72293d5a151ed4f42aeb16a}; -: ${PKG_LIBXKBFILE_URL:=https://www.x.org/releases/individual/lib/libxkbfile-${PKG_LIBXKBFILE_VERSION}.tar.bz2}; -: ${PKG_LIBXMU_VERSION:=1.1.2}; -: ${PKG_LIBXMU_SHA256SUM:=756edc7c383254eef8b4e1b733c3bf1dc061b523c9f9833ac7058378b8349d0b}; -: ${PKG_LIBXMU_URL:=https://www.x.org/releases/individual/lib/libXmu-${PKG_LIBXMU_VERSION}.tar.bz2}; -: ${PKG_LIBXPM_VERSION:=3.5.11}; -: ${PKG_LIBXPM_SHA256SUM:=c5bdafa51d1ae30086fac01ab83be8d47fe117b238d3437f8e965434090e041c}; -: ${PKG_LIBXPM_URL:=https://www.x.org/releases/individual/lib/libXpm-${PKG_LIBXPM_VERSION}.tar.bz2}; -: ${PKG_LIBXT_VERSION:=1.1.5}; -: ${PKG_LIBXT_SHA256SUM:=46eeb6be780211fdd98c5109286618f6707712235fdd19df4ce1e6954f349f1a}; -: ${PKG_LIBXT_URL:=https://www.x.org/releases/individual/lib/libXt-${PKG_LIBXT_VERSION}.tar.bz2}; -: ${PKG_LIBXT_CFLAGS_CONFIGURE:=${PKG_LVL3_CFLAGS_CONFIGURE_DEFAULT}}; -: ${PKG_LIBXT_LDFLAGS_CONFIGURE:=-g}; - -# -# Build level 4, 400-499 (3rd party packages) -# Leaf packages -# -: ${PKG_APK_TOOLS_VERSION:=2.6.6}; -: ${PKG_APK_TOOLS_SHA256SUM:=7e5e86c856ce236c7fd54605ee0b1dbf59920398d3b33f9f6ff0e5f98e6828af}; -: ${PKG_APK_TOOLS_URL:=http://git.alpinelinux.org/cgit/apk-tools/snapshot/apk-tools-${PKG_APK_TOOLS_VERSION}.tar.bz2}; -: ${PKG_APK_TOOLS_MAKEFLAGS_INSTALL_EXTRA:=MANDIR=/share/man DOCDIR=/share/doc/apk}; -: ${PKG_APK_TOOLS_BUILD_DIR:=apk-tools-${PKG_APK_TOOLS_VERSION}}; -: ${PKG_APK_TOOLS_ENV_VARS_EXTRA:=CFLAGS=--sysroot=${PREFIX_NATIVE}:CROSS_COMPILE=${TARGET}-:LUAAPK=:VERBOSE=1:PREFIX=${PREFIX_NATIVE}}; -: ${PKG_BZIP2_VERSION:=1.0.6}; -: ${PKG_BZIP2_SHA256SUM:=a2848f34fcd5d6cf47def00461fcb528a0484d8edef8208d6d2e2909dc61d9cd}; -: ${PKG_BZIP2_URL:=http://www.bzip.org/1.0.6/bzip2-${PKG_BZIP2_VERSION}.tar.gz}; -: ${PKG_BZIP2_BUILD_DIR:=bzip2-${PKG_BZIP2_VERSION}}; -: ${PKG_BZIP2_CFLAGS_BUILD_EXTRA:=${PKG_LVL4_CFLAGS_CONFIGURE}}; -: ${PKG_BZIP2_INSTALL_FILES:="@bzdiff=bin/bzcmp @bzgrep=bin/bzegrep @bzgrep=bin/bzfgrep @bzmore=bin/bzless libbz2.so.1.0=lib/ libbz2.so.1.0.6=lib/"}; -: ${PKG_BZIP2_MAKEFLAGS_BUILD_EXTRA:=-f Makefile-libbz2_so}; -: ${PKG_BZIP2_MAKEFLAGS_INSTALL_EXTRA:=PREFIX=${PREFIX_NATIVE}}; -: ${PKG_BZIP2_NO_CLEAN:=1}; -: ${PKG_BASH_VERSION:=4.3}; -: ${PKG_BASH_SHA256SUM:=afc687a28e0e24dc21b988fa159ff9dbcf6b7caa92ade8645cc6d5605cd024d4}; -: ${PKG_BASH_URL:=https://ftp.gnu.org/gnu/bash/bash-${PKG_BASH_VERSION}.tar.gz}; -: ${PKG_BASH_CONFIGURE_ARGS_EXTRA:="--without-bash-malloc --with-curses"}; -: ${PKG_BASH_PREFIX_EXTRA:=${PREFIX_MINIPIX}}; -: ${PKG_COREUTILS_VERSION:=8.23}; -: ${PKG_COREUTILS_SHA256SUM:=ec43ca5bcfc62242accb46b7f121f6b684ee21ecd7d075059bf650ff9e37b82d}; -: ${PKG_COREUTILS_URL:=https://ftp.gnu.org/gnu/coreutils/coreutils-${PKG_COREUTILS_VERSION}.tar.xz}; -: ${PKG_COREUTILS_PREFIX_EXTRA:=${PREFIX_MINIPIX}}; -: ${PKG_CPARSER_URL:=http://pp.info.uni-karlsruhe.de/git/cparser.git}; -: ${PKG_CPARSER_URL_TYPE:=git}; -: ${PKG_CPARSER_BUILD_DIR:=cparser+libfirm/build/cparser}; -: ${PKG_CPARSER_CONFIGURE:=bcparser/configure}; -: ${PKG_CPARSER_CONFIGURE_ARGS:="--source-dir=../../../cparser --prefix="}; -: ${PKG_CPARSER_GIT_BRANCH:=master}; -: ${PKG_CPARSER_MAKEFLAGS_INSTALL:=DESTDIR=../../sysroot}; -: ${PKG_CPARSER_PREFIX_EXTRA:=${PREFIX_NATIVE}}; -: ${PKG_CPARSER_SUBDIR:=cparser}; -: ${PKG_CRON_URL:=git://anonscm.debian.org/pkg-cron/pkg-cron.git}; -: ${PKG_CRON_URL_TYPE:=git}; -: ${PKG_CRON_BUILD_DIR:=pkg-cron.git}; -: ${PKG_CRON_ENV_VARS_EXTRA:="CC=${TARGET}-gcc:CFLAGS=${PKG_LVL4_CFLAGS_CONFIGURE} -D__GNU__"}; -: ${PKG_CRON_GIT_BRANCH:=debian/3.0pl1-128}; -: ${PKG_CURL_VERSION:=7.47.1}; -: ${PKG_CURL_SHA256SUM:=ddc643ab9382e24bbe4747d43df189a0a6ce38fcb33df041b9cb0b3cd47ae98f}; -: ${PKG_CURL_URL:=https://curl.haxx.se/download/curl-${PKG_CURL_VERSION}.tar.bz2}; -: ${PKG_CURL_LDFLAGS_BUILD_EXTRA:=-L${PREFIX_NATIVE}/lib}; -: ${PKG_DASH_VERSION:=0.5.8}; -: ${PKG_DASH_SHA256SUM:=c6db3a237747b02d20382a761397563d813b306c020ae28ce25a1c3915fac60f}; -: ${PKG_DASH_URL:=http://gondor.apana.org.au/~herbert/dash/files/dash-${PKG_DASH_VERSION}.tar.gz}; -: ${PKG_DASH_INSTALL_FILES:=@dash=bin/sh}; -: ${PKG_DOS2UNIX_VERSION:=7.3.4}; -: ${PKG_DOS2UNIX_SHA256SUM:=8ccda7bbc5a2f903dafd95900abb5bf5e77a769b572ef25150fde4056c5f30c5}; -: ${PKG_DOS2UNIX_URL=http://waterlan.home.xs4all.nl/dos2unix/dos2unix-${PKG_DOS2UNIX_VERSION}.tar.gz}; -: ${PKG_DOS2UNIX_BUILD_DIR:=dos2unix-${PKG_DOS2UNIX_VERSION}}; -: ${PKG_DOS2UNIX_CFLAGS_BUILD_EXTRA:=${PKG_LVL4_CFLAGS_CONFIGURE}}; -: ${PKG_DOS2UNIX_INSTALL_FILES:="dos2unix=bin/ dos2unix=bin/ @dos2unix=bin/mac2unix @unix2dos=bin/unix2mac"}; -: ${PKG_ED_VERSION:=1.13}; -: ${PKG_ED_SHA256SUM:=c7a98062d0597b41295f03275a2ea07342b18b86653e3b9a51746b9983db8d48}; -: ${PKG_ED_URL:=http://ftp5.gwdg.de/pub/linux/slackware/slackware64-current/source/a/ed/ed-${PKG_ED_VERSION}.tar.xz}; -: ${PKG_ED_CONFIGURE_ARGS="--prefix= CC=${TARGET}-gcc"}; -: ${PKG_DIFFUTILS_VERSION:=3.3}; -: ${PKG_DIFFUTILS_SHA256SUM:=a25e89a8ab65fded1731e4186be1bb25cda967834b6df973599cdcd5abdfc19c}; -: ${PKG_DIFFUTILS_URL:=https://ftp.gnu.org/gnu/diffutils/diffutils-${PKG_DIFFUTILS_VERSION}.tar.xz}; -: ${PKG_FILE_VERSION:=5.28}; -: ${PKG_FILE_SHA256SUM:=0ecb5e146b8655d1fa84159a847ee619fc102575205a0ff9c6cc60fc5ee2e012}; -: ${PKG_FILE_URL:=ftp://ftp.astron.com/pub/file/file-${PKG_FILE_VERSION}.tar.gz}; -: ${PKG_FINDUTILS_VERSION:=4.5.14}; -: ${PKG_FINDUTILS_SHA256SUM:=0de3cf625a5c9f154eee3171e072515ffdde405244dd00502af617ac57b73ae2}; -: ${PKG_FINDUTILS_URL:=http://alpha.gnu.org/gnu/findutils/findutils-${PKG_FINDUTILS_VERSION}.tar.gz}; -: ${PKG_FINDUTILS_CFLAGS_CONFIGURE_EXTRA:=-Dendpwent=setpwent}; -: ${PKG_GAWK_VERSION:=4.1.3}; -: ${PKG_GAWK_SHA256SUM:=e3cf55e91e31ea2845f8338bedd91e40671fc30e4d82ea147d220e687abda625}; -: ${PKG_GAWK_URL:=https://ftp.gnu.org/gnu/gawk/gawk-${PKG_GAWK_VERSION}.tar.xz}; -: ${PKG_GIT_VERSION:=2.9.0}; -: ${PKG_GIT_SHA256SUM:=dad202c1a2dec4caa2a6cab5c1ca8dc486206fd4a39585613bece8aa8c9da93b}; -: ${PKG_GIT_URL:=https://github.com/git/git/archive/v${PKG_GIT_VERSION}.tar.gz}; -: ${PKG_GIT_ENV_VARS_EXTRA:="ac_cv_fread_reads_directories=1:ac_cv_snprintf_returns_bogus=0"}; -: ${PKG_GIT_BUILD_DIR:=git-${PKG_GIT_VERSION}}; -: ${PKG_GIT_MAKEFLAGS_INSTALL_EXTRA:=prefix=}; -: ${PKG_GIT_SUBDIR:=${PKG_GIT_BUILD_DIR}}; -: ${PKG_GNUPG_VERSION:=2.1.15}; -: ${PKG_GNUPG_SHA256SUM:=c28c1a208f1b8ad63bdb6b88d252f6734ff4d33de6b54e38494b11d49e00ffdd}; -: ${PKG_GNUPG_URL:=https://www.gnupg.org/ftp/gcrypt/gnupg/gnupg-${PKG_GNUPG_VERSION}.tar.bz2}; -: ${PKG_GNUPG_CONFIGURE_ARGS_EXTRA:="--with-libgpg-error-prefix=${PREFIX_NATIVE} --with-libgcrypt-prefix=${PREFIX_NATIVE} --with-libassuan-prefix=${PREFIX_NATIVE} --with-ksba-prefix=${PREFIX_NATIVE} --with-npth-prefix=${PREFIX_NATIVE}"}; -: ${PKG_GREP_VERSION:=2.22}; -: ${PKG_GREP_SHA256SUM:=ca91d22f017bfcb503d4bc3b44295491c89a33a3df0c3d8b8614f2d3831836eb}; -: ${PKG_GREP_URL:=https://ftp.gnu.org/gnu/grep/grep-${PKG_GREP_VERSION}.tar.xz}; -: ${PKG_HEXCURSE_CFLAGS_CONFIGURE_EXTRA:=-I${PREFIX_NATIVE}/include/ncursesw}; -: ${PKG_HEXCURSE_URL:=https://github.com/LonnyGomes/hexcurse}; -: ${PKG_HEXCURSE_URL_TYPE:=git}; -: ${PKG_HEXCURSE_GIT_BRANCH:=master}; -: ${PKG_HTOP_VERSION:=2.0.1}; -: ${PKG_HTOP_SHA256SUM:=f410626dfaf6b70fdf73cd7bb33cae768869707028d847fed94a978e974f5666}; -: ${PKG_HTOP_URL:=http://hisham.hm/htop/releases/${PKG_HTOP_VERSION}/htop-${PKG_HTOP_VERSION}.tar.gz}; -: ${PKG_HTOP_CONFIGURE_ARGS_EXTRA:=--program-prefix=}; -: ${PKG_INETUTILS_VERSION=1.9.4}; -: ${PKG_INETUTILS_SHA256SUM:=849d96f136effdef69548a940e3e0ec0624fc0c81265296987986a0dd36ded37}; -: ${PKG_INETUTILS_URL:=https://ftp.gnu.org/gnu/inetutils/inetutils-${PKG_INETUTILS_VERSION}.tar.xz}; -: ${PKG_INETUTILS_CONFIGURE_ARGS_EXTRA:="--disable-ftpd --disable-inetd --disable-rexecd --disable-rlogind --disable-rshd --disable-syslogd --disable-talkd --disable-telnetd --disable-tftpd --disable-uucpd --disable-ftp --disable-dnsdomainname --disable-hostname --disable-ping --disable-ping6 --disable-rcp --disable-rexec --disable-rlogin --disable-rsh --disable-logger --disable-talk --enable-telnet --disable-tftp --disable-whois --disable-ifconfig --disable-traceroute"}; -: ${PKG_INFOUNZIP_VERSION:=60}; -: ${PKG_INFOUNZIP_SHA256SUM:=036d96991646d0449ed0aa952e4fbe21b476ce994abc276e49d30e686708bd37}; -: ${PKG_INFOUNZIP_URL:=ftp://ftp.info-zip.org/pub/infozip/src/unzip${PKG_INFOUNZIP_VERSION}.tgz}; -: ${PKG_INFOUNZIP_BUILD_DIR:=unzip60}; -: ${PKG_INFOUNZIP_SUBDIR:=${PKG_INFOUNZIP_BUILD_DIR}}; -: ${PKG_INFOUNZIP_INSTALL_FILES:="funzip=bin/ unzip=bin/ unzipsfx=bin/"}; -: ${PKG_INFOUNZIP_MAKEFLAGS_BUILD_EXTRA:="-f unix/Makefile midipix"}; -: ${PKG_INFOUNZIP_NO_MAKE_INSTALL:=1}; -: ${PKG_INFOZIP_VERSION:=30}; -: ${PKG_INFOZIP_SHA256SUM:=f0e8bb1f9b7eb0b01285495a2699df3a4b766784c1765a8f1aeedf63c0806369}; -: ${PKG_INFOZIP_URL:=ftp://ftp.info-zip.org/pub/infozip/src/zip${PKG_INFOZIP_VERSION}.tgz}; -: ${PKG_INFOZIP_BUILD_DIR:=zip${PKG_INFOZIP_VERSION}}; -: ${PKG_INFOZIP_SUBDIR:=${PKG_INFOZIP_BUILD_DIR}}; -: ${PKG_INFOZIP_INSTALL_FILES:="zip=bin/ zipcloak=bin/ zipnote=bin/ zipsplit=bin/"}; -: ${PKG_INFOZIP_MAKEFLAGS_BUILD_EXTRA:="-f unix/Makefile midipix"}; -: ${PKG_INFOZIP_NO_MAKE_INSTALL:=1}; -: ${PKG_IRSSI_VERSION=0.8.18}; -: ${PKG_IRSSI_SHA256SUM:=30043784815bb864b1bb66a82c1e659c325be0a18ddcf76fc101812e36c39c20}; -: ${PKG_IRSSI_URL:=https://github.com/irssi/irssi/releases/download/0.8.18/irssi-0.8.18.tar.gz}; -: ${PKG_IRSSI_CONFIGURE_ARGS_EXTRA:=--with-ncurses=${PREFIX_NATIVE}}; -: ${PKG_JOHN_VERSION:=1.8.0}; -: ${PKG_JOHN_SHA256SUM:=952cf68369fb5b27f2d112ce7ca1eb16b975c85cbce8c658abb8bc5a20e1b266}; -: ${PKG_JOHN_URL:=http://www.openwall.com/john/j/john-${PKG_JOHN_VERSION}.tar.xz}; -: ${PKG_JOHN_BUILD_DIR:=john-${PKG_JOHN_VERSION}}; -if [ "${ARCH}" = "nt32" ]; then -: ${PKG_JOHN_DISABLED:=1}; -fi; -: ${PKG_JOHN_INSTALL_FILES:="run/john=bin/ run/mailer=bin/ run/makechr=bin/ run/relbench=bin/ run/unafs=bin/ run/unique=bin/ run/unshadow=bin/ /=share/john run/ascii.chr=share/john/ run/digits.chr=share/john/ run/john.conf=share/john/ run/lm_ascii.chr=share/john/ run/password.lst=share/john/"}; -: ${PKG_JOHN_MAKEFLAGS_BUILD_EXTRA_DEBUG:="-C src midipix-x86-64"}; -: ${PKG_JOHN_MAKEFLAGS_BUILD_EXTRA_RELEASE:="-C src midipix-x86-64 LDFLAGS_DEBUG=-s"}; -: ${PKG_JOHN_MAKEFLAGS_INSTALL_EXTRA:="-C src"}; -: ${PKG_JOHN_NO_MAKE_INSTALL:=1}; -: ${PKG_JOHN_SUBDIR:=john-${PKG_JOHN_VERSION}}; -: ${PKG_LESS_VERSION:=481}; -: ${PKG_LESS_SHA256SUM:=3fa38f2cf5e9e040bb44fffaa6c76a84506e379e47f5a04686ab78102090dda5}; -: ${PKG_LESS_URL:=http://www.greenwoodsoftware.com/less/less-${PKG_LESS_VERSION}.tar.gz}; -: ${PKG_LUA_VERSION:=5.3.3}; -: ${PKG_LUA_SHA256SUM:=5113c06884f7de453ce57702abaac1d618307f33f6789fa870e87a59d772aca2}; -: ${PKG_LUA_URL:=https://www.lua.org/ftp/lua-${PKG_LUA_VERSION}.tar.gz}; -: ${PKG_LUA_BUILD_DIR=lua-5.3.3}; -: ${PKG_LUA_MAKEFLAGS_BUILD_EXTRA:="CC=${TARGET}-gcc midipix"}; -: ${PKG_LUA_MAKEFLAGS_INSTALL_EXTRA:=INSTALL_TOP=${PREFIX_NATIVE}}; -: ${PKG_LYNX_VERSION:=2.8.8rel.2}; -: ${PKG_LYNX_SHA256SUM:=6980e75cf0d677fd52c116e2e0dfd3884e360970c88c8356a114338500d5bee7}; -: ${PKG_LYNX_URL:=ftp://invisible-island.net/lynx/tarballs/lynx${PKG_LYNX_VERSION}.tar.bz2}; -: ${PKG_LYNX_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include -I${PREFIX_NATIVE}/include/ncursesw"}; -: ${PKG_LYNX_SUBDIR:=lynx2-8-8}; -: ${PKG_LYNX_CONFIGURE_ARGS_EXTRA:=--program-prefix=}; -: ${PKG_MAN_DB_VERSION:=2.7.5}; -: ${PKG_MAN_DB_SHA256SUM:=5c4ddd0d67abbbcb408dc5804906f62210f7c863ef791198faca3d75681cca14}; -: ${PKG_MAN_DB_URL:=http://download.savannah.gnu.org/releases/man-db/man-db-${PKG_MAN_DB_VERSION}.tar.xz}; -: ${PKG_MAN_DB_SLIBTOOL:=slibtool-static}; -: ${PKG_MAKE_VERSION:=3.81}; -: ${PKG_MAKE_SHA256SUM:=f3e69023771e23908f5d5592954d8271d3d6af09693cecfd29cee6fde8550dc8}; -: ${PKG_MAKE_URL:=https://ftp.gnu.org/gnu/make/make-${PKG_MAKE_VERSION}.tar.bz2}; -: ${PKG_MC_VERSION:=4.8.17}; -: ${PKG_MC_SHA256SUM:=0447bdddc0baa81866e66f50f9a545d29d6eebb68b0ab46c98d8fddd2bf4e44d}; -: ${PKG_MC_URL:=http://ftp.midnight-commander.org/mc-${PKG_MC_VERSION}.tar.xz}; -: ${PKG_MC_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include -I${PREFIX_NATIVE}/include/ncursesw"}; -: ${PKG_MC_CONFIGURE_ARGS_EXTRA:="--with-screen=ncurses --x-includes=${PREFIX_NATIVE}/include/X11 --x-libraries=${PREFIX_NATIVE}/lib"}; -: ${PKG_MKSH_VERSION:=R52c}; -: ${PKG_MKSH_SHA256SUM:=c6341acea725103f782c14e994d6e12dabaee69e60fe1bc78603a41258d43ba6}; -: ${PKG_MKSH_URL:=http://pub.allbsd.org/MirOS/dist/mir/mksh/mksh-${PKG_MKSH_VERSION}.tgz}; -: ${PKG_MKSH_BUILD_CMDLINE:="sh Build.sh"}; -: ${PKG_MKSH_BUILD_DIR:=mksh}; -: ${PKG_MKSH_ENV_VARS_EXTRA:="CC=${TARGET}-gcc:CFLAGS=${PKG_LVL4_CFLAGS_CONFIGURE:+${PKG_LVL4_CFLAGS_CONFIGURE} }-DMKSH_NOPROSPECTOFWORK"}; -: ${PKG_MKSH_INSTALL_FILES:="mksh=bin/ /=share/doc/mksh/examples dot.mkshrc=share/doc/mksh/examples/ mksh.1=share/man/man1/"}; -: ${PKG_MKSH_NO_MAKE_INSTALL:=1}; -: ${PKG_MKSH_SUBDIR:=${PKG_MKSH_BUILD_DIR}}; -: ${PKG_NANO_VERSION:=2.5.3}; -: ${PKG_NANO_SHA256SUM:=b2b060129b9feff2d4870d803a441178c96531de9aed144ec0b83bd63ccb12ee}; -: ${PKG_NANO_URL:=http://www.nano-editor.org/dist/v${PKG_NANO_VERSION%.[0-9]}/nano-${PKG_NANO_VERSION}.tar.gz}; -: ${PKG_NETCAT_VERSION:=110}; -: ${PKG_NETCAT_SHA256SUM:=5b3fda14e972d908896a605293f4634a72e2968278117410e12d8b3faf9a3976}; -: ${PKG_NETCAT_URL:=https://dl.packetstormsecurity.net/UNIX/netcat/nc110.tgz}; -: ${PKG_NETCAT_BUILD_DIR:=nc110}; -: ${PKG_NETCAT_MAKEFLAGS_BUILD_EXTRA_DEBUG:="midipix CC=${TARGET}-gcc"}; -: ${PKG_NETCAT_MAKEFLAGS_BUILD_EXTRA_RELEASE:="midipix CC=${TARGET}-gcc LDFLAGS_DEBUG=-s"}; -: ${PKG_NETCAT_ENV_VARS_EXTRA:="CFLAGS_EXTRA=${PKG_LVL4_CFLAGS_CONFIGURE}:LDFLAGS=${PKG_LVL4_LDFLAGS_CONFIGURE}"}; -: ${PKG_NETCAT_INSTALL_FILES:=nc=bin/}; -: ${PKG_NETCAT_NO_MAKE_INSTALL:=1}; -: ${PKG_NETCAT_SUBDIR:=${PKG_NETCAT_BUILD_DIR}}; -: ${PKG_NETCAT_SUBDIR_CREATE:=1}; -: ${PKG_OPENSSH_VERSION:=7.1p2}; -: ${PKG_OPENSSH_SHA256SUM:=dd75f024dcf21e06a0d6421d582690bf987a1f6323e32ad6619392f3bfde6bbd}; -: ${PKG_OPENSSH_URL:=http://artfiles.org/openbsd/OpenSSH/portable/openssh-${PKG_OPENSSH_VERSION}.tar.gz}; -: ${PKG_OPENSSH_CONFIGURE_ARGS_EXTRA_DEBUG:=--disable-strip}; -: ${PKG_OPENSSH_INSTALL_TARGET:=install-nokeys}; -: ${PKG_P7ZIP_URL:=https://github.com/lalbornoz/p7zip-midipix.git}; -: ${PKG_P7ZIP_URL_TYPE:=git}; -: ${PKG_P7ZIP_BUILD_DIR:=p7zip-midipix.git}; -: ${PKG_P7ZIP_GIT_BRANCH:=master}; -: ${PKG_P7ZIP_NO_MAKE_INSTALL:=1}; -: ${PKG_P7ZIP_INSTALL_FILES:="bin/7za=bin/"}; -: ${PKG_PACMAN_VERSION:=5.0.1}; -: ${PKG_PACMAN_SHA256SUM:=84599e2ee2158134fd704f1cd681ea46e021165bed4df5f002aa1748caef9e7b}; -: ${PKG_PACMAN_URL:=https://projects.archlinux.org/pacman.git/snapshot/pacman-${PKG_PACMAN_VERSION}.tar.gz}; -: ${PKG_PACMAN_CONFIGURE_ARGS_EXTRA:=--disable-doc}; -: ${PKG_PATCH_VERSION:=2.7}; -: ${PKG_PATCH_SHA256SUM:=59c29f56faa0a924827e6a60c6accd6e2900eae5c6aaa922268c717f06a62048}; -: ${PKG_PATCH_URL:=https://ftp.gnu.org/gnu/patch/patch-${PKG_PATCH_VERSION}.tar.gz}; -: ${PKG_PERL_VERSION:=5.22.1}; -: ${PKG_PERL_SHA256SUM:=2b475d0849d54c4250e9cba4241b7b7291cffb45dfd083b677ca7b5d38118f27}; -: ${PKG_PERL_URL:=http://www.cpan.org/src/5.0/perl-${PKG_PERL_VERSION}.tar.gz}; -: ${PKG_PERL_CONFIGURE_ARGS:="-A ccflags=-I${PREFIX_NATIVE}/include --sysroot=${PREFIX_NATIVE} --target=${TARGET}"}; -: ${PKG_PERL_ENV_VARS_EXTRA:="TARGET=${TARGET}"}; -: ${PKG_PERL_MAKEFLAGS_BUILD:=-j1}; -: ${PKG_PROCPS_NG_VERSION:=3.3.12}; -: ${PKG_PROCPS_NG_SHA256SUM:=b1036c109f271c7c50325b11a748236f8e58aa1dbafefb30c995ff1d05b4a1a8}; -: ${PKG_PROCPS_NG_URL:=https://gitlab.com/procps-ng/procps/repository/archive.tar.gz?ref=v${PKG_PROCPS_NG_VERSION}}; -: ${PKG_PROCPS_NG_CFLAGS_CONFIGURE_EXTRA:=-I${PREFIX_NATIVE}/include/ncursesw}; -: ${PKG_PROCPS_NG_SUBDIR:=procps-v${PKG_PROCPS_NG_VERSION}-e0784ddaed30d095bb1d9a8ad6b5a23d10a212c4}; -: ${PKG_PYTHON3_VERSION:=3.5.1}; -: ${PKG_PYTHON3_SHA256SUM:=687e067d9f391da645423c7eda8205bae9d35edc0c76ef5218dcbe4cc770d0d7}; -: ${PKG_PYTHON3_URL:=https://www.python.org/ftp/python/${PKG_PYTHON3_VERSION}/Python-${PKG_PYTHON3_VERSION}.tgz}; -: ${PKG_PYTHON3_CONFIGURE_ARGS:="--build=x86_64 -C --enable-ipv6 --enable-shared --host=${TARGET} --prefix=${PREFIX_NATIVE} --without-ensurepip"}; -: ${PKG_PYTHON3_ENV_VARS_EXTRA:="BLDSHARED=${TARGET}-gcc -shared -mout-implib --sysroot=${PREFIX_NATIVE}:CC=${TARGET}-gcc:CFLAGS=--sysroot=${PREFIX_NATIVE}:CPPFLAGS=--sysroot=${PREFIX_NATIVE}:LDFLAGS=-L${PREFIX_NATIVE}/lib"}: -: ${PKG_PYTHON3_MAKEFLAGS_INSTALL_EXTRA:=prefix=}; -: ${PKG_PYTHON3_SUBDIR:=Python-${PKG_PYTHON3_VERSION}}; -: ${PKG_RSYNC_VERSION:=3.1.2}; -: ${PKG_RSYNC_SHA256SUM:=ecfa62a7fa3c4c18b9eccd8c16eaddee4bd308a76ea50b5c02a5840f09c0a1c2}; -: ${PKG_RSYNC_URL:=https://download.samba.org/pub/rsync/src/rsync-${PKG_RSYNC_VERSION}.tar.gz}; -: ${PKG_RSYNC_CONFIGURE_ARGS_EXTRA:=--with-included-popt --with-included-zlib}; -: ${PKG_RXVT_UNICODE_VERSION:=9.22}; -: ${PKG_RXVT_UNICODE_SHA256SUM:=e94628e9bcfa0adb1115d83649f898d6edb4baced44f5d5b769c2eeb8b95addd}; -: ${PKG_RXVT_UNICODE_URL:=http://dist.schmorp.de/rxvt-unicode/rxvt-unicode-${PKG_RXVT_UNICODE_VERSION}.tar.bz2}; -: ${PKG_RXVT_UNICODE_CONFIGURE_ARGS_EXTRA:=--disable-perl --disable-lastlog --disable-utmp --disable-wtmp}; -: ${PKG_TAR_VERSION:=1.28}; -: ${PKG_TAR_SHA256SUM:=6a6b65bac00a127a508533c604d5bf1a3d40f82707d56f20cefd38a05e8237de}; -: ${PKG_TAR_URL:=https://ftp.gnu.org/gnu/tar/tar-${PKG_TAR_VERSION}.tar.gz}; -: ${PKG_TCSH_VERSION:=6.19.00}; -: ${PKG_TCSH_SHA256SUM:=12e271e0b89e4259d9d6e8d525322e77340e7244cfbd199a591e5f8146285c49}; -: ${PKG_TCSH_URL:=http://ftp.funet.fi/pub/mirrors/ftp.astron.com/pub/tcsh/tcsh-${PKG_TCSH_VERSION}.tar.gz}; -: ${PKG_THE_SILVER_SEARCHER_VERSION:=0.32.0}; -: ${PKG_THE_SILVER_SEARCHER_SHA256SUM:=944ca77e498f344b2bfbd8df6d5d8df7bbc1c7e080b50c0bab3d1a9a55151b60}; -: ${PKG_THE_SILVER_SEARCHER_URL:=http://geoff.greer.fm/ag/releases/the_silver_searcher-${PKG_THE_SILVER_SEARCHER_VERSION}.tar.gz}; -: ${PKG_TMUX_VERSION:=2.2}; -: ${PKG_TMUX_SHA256SUM:=bc28541b64f99929fe8e3ae7a02291263f3c97730781201824c0f05d7c8e19e4}; -: ${PKG_TMUX_URL:=https://github.com/tmux/tmux/releases/download/${PKG_TMUX_VERSION}/tmux-${PKG_TMUX_VERSION}.tar.gz}; -: ${PKG_SED_VERSION:=4.2.2}; -: ${PKG_SED_SHA256SUM:=f048d1838da284c8bc9753e4506b85a1e0cc1ea8999d36f6995bcb9460cddbd7}; -: ${PKG_SED_URL:=https://ftp.gnu.org/gnu/sed/sed-${PKG_SED_VERSION}.tar.bz2}; -: ${PKG_UTIL_LINUX_VERSION:=2.27.1}; -: ${PKG_UTIL_LINUX_SHA256SUM:=133c14f625d40e90e73e9d200faf3f2ce87937b99f923c84e5504ac0badc71d6}; -: ${PKG_UTIL_LINUX_URL:=https://www.kernel.org/pub/linux/utils/util-linux/v2.27/util-linux-${PKG_UTIL_LINUX_VERSION}.tar.gz}; -: ${PKG_UTIL_LINUX_CONFIGURE_ARGS_EXTRA:=--disable-agetty --disable-wall --disable-write}; -: ${PKG_UTIL_LINUX_ENV_VARS_EXTRA:=PKG_CONFIG=${PREFIX}/bin/${TARGET}-pkg-config}; -: ${PKG_VIM_VERSION:=7.4.1952}; -: ${PKG_VIM_SHA256SUM:=8de19b12cabde17b87f915a05e1855f6ff8404962947c5cf2204cf51f1ce5d67}; -: ${PKG_VIM_URL:=https://github.com/vim/vim/archive/v${PKG_VIM_VERSION}.tar.gz}; -: ${PKG_VIM_SUBDIR:=vim-${PKG_VIM_VERSION}}; -: ${PKG_VIM_BUILD_DIR:=${PKG_VIM_SUBDIR}}; -: ${PKG_VIM_ENV_VARS_EXTRA:=PKG_CONFIG=${PREFIX}/bin/${TARGET}-pkg-config}; -: ${PKG_VIM_CONFIG_CACHE_EXTRA:=${PKG_VIM_BUILD_DIR}/src/auto}; -: ${PKG_VIM_CONFIGURE_ARGS_EXTRA:=--with-tlib=ncursesw}; -: ${PKG_VIM_INSTALL_FILES:=@vim=bin/vi}; -: ${PKG_VIM_MAKEFLAGS_INSTALL_EXTRA:=STRIP=/bin/true}; -: ${PKG_WEECHAT_VERSION:=1.6}; -: ${PKG_WEECHAT_URL:=https://weechat.org/files/src/weechat-${PKG_WEECHAT_VERSION}.tar.gz}; -: ${PKG_WEECHAT_SHA256SUM:=3061e57460e0e3e4533551c45ced53b222fe0933848250d0fb7337d9aacfd853}; -: ${PKG_WEECHAT_CONFIGURE_ARGS_EXTRA:="--disable-python --disable-python3 --disable-tcl"}; -: ${PKG_WEECHAT_ENV_VARS_EXTRA:=CURL_CONFIG=${PREFIX_NATIVE}/bin/curl-config}; -: ${PKG_WEECHAT_LDFLAGS_BUILD_EXTRA:=-L${PREFIX_NATIVE}/lib}; -: ${PKG_WHICH_VERSION:=2.21}; -: ${PKG_WHICH_SHA256SUM:=f4a245b94124b377d8b49646bf421f9155d36aa7614b6ebf83705d3ffc76eaad}; -: ${PKG_WHICH_URL:=https://ftp.gnu.org/gnu/which/which-${PKG_WHICH_VERSION}.tar.gz}; -: ${PKG_WHOIS_VERSION:=5.2.12}; -: ${PKG_WHOIS_SHA256SUM:=8485aa02909fd6aaa1cfd8b5e63559310879bf8a62793a83c96a4502164b968a}; -: ${PKG_WHOIS_URL:=https://github.com/rfc1036/whois/archive/v${PKG_WHOIS_VERSION}.tar.gz}; -: ${PKG_WHOIS_BUILD_DIR:=whois-${PKG_WHOIS_VERSION}}; -: ${PKG_WHOIS_MAKEFLAGS_INSTALL:=BASEDIR=${PREFIX_NATIVE}}; -: ${PKG_WHOIS_SUBDIR:=${PKG_WHOIS_BUILD_DIR}}; -: ${PKG_XEYES_VERSION:=1.1.1}; -: ${PKG_XEYES_SHA256SUM:=975e98680cd59e1f9439016386609546ed08c284d0f05a95276f96aca6e8a521}; -: ${PKG_XEYES_URL:=https://www.x.org/releases/individual/app/xeyes-${PKG_XEYES_VERSION}.tar.bz2}; -: ${PKG_XWD_VERSION:=1.0.6}; -: ${PKG_XWD_SHA256SUM:=3bb396a2268d78de4b1c3e5237a85f7849d3434e87b3cd1f4d57eef614227d79}; -: ${PKG_XWD_URL:=https://www.x.org/releases/individual/app/xwd-${PKG_XWD_VERSION}.tar.bz2}; -: ${PKG_ZSH_VERSION:=5.2}; -: ${PKG_ZSH_SHA256SUM:=f17916320ffaa844bbd7ce48ceeb5945fc5f3eff64b149b4229bbfbdf3795a9d}; -: ${PKG_ZSH_URL:="https://fourdots.com/mirror/zsh/zsh-${PKG_ZSH_VERSION}.tar.xz"}; -: ${PKG_ZSH_FNAME:=zsh-${PKG_ZSH_VERSION}.tar.xz}; - -# vim:filetype=sh textwidth=0 diff --git a/config.cache b/config.cache deleted file mode 100644 index 2910ce71..00000000 --- a/config.cache +++ /dev/null @@ -1,166 +0,0 @@ -# autoconf -ac_cv_buggy_getaddrinfo=no -ac_cv_func_calloc_0_nonnull=yes -ac_cv_func_chown_works=yes -ac_cv_func_getgroups_works=yes -ac_cv_func_malloc_0_nonnull=yes -ac_cv_func_strnlen_working=yes -ac_cv_func_mmap_fixed_mapped=yes -ac_cv_func_strcoll_works=yes -ac_cv_func_working_mktime=yes -ac_cv_file__dev_ptmx=yes -ac_cv_file__dev_ptc=no -gt_cv_int_divbyzero_sigfpe=yes - -# gnulib -gl_cv_func_cbrtl_ieee=yes -gl_cv_func_ceilf_ieee=yes -gl_cv_func_ceil_ieee=yes -gl_cv_func_ceill_ieee=yes -gl_cv_func_chown_ctime_works=yes -gl_cv_func_chown_slash_works=yes -gl_cv_func_exp2l_ieee=yes -gl_cv_func_expm1_ieee=yes -gl_cv_func_fcntl_f_dupfd_works=yes -gl_cv_func_fdopendir_works=yes -gl_cv_func_floorf_ieee=yes -gl_cv_func_fflush_stdin=yes -gl_cv_func_fmaf_works=yes -gl_cv_func_fmal_works=yes -gl_cv_func_fma_works=yes -gl_cv_func_fmodf_ieee=yes -gl_cv_func_fmod_ieee=yes -gl_cv_func_fmodl_ieee=yes -gl_cv_func_fpurge_works=yes -gl_cv_func_fseeko=yes -gl_cv_func_futimens_works=yes -gl_cv_func_futimesat_works=yes -gl_cv_func_getgroups_works=yes -gl_cv_func_gettimeofday_clobber=no -gl_cv_func_hypotf_ieee=yes -gl_cv_func_hypotl_ieee=yes -gl_cv_func_hypot_ieee=yes -gl_cv_func_isfinitel_works=yes -gl_cv_func_isnanl_works=yes -gl_cv_func_linkat_slash=yes -gl_cv_func_link_works=yes -gl_cv_func_log10f_ieee=yes -gl_cv_func_log10_ieee=yes -gl_cv_func_log1pf_ieee=yes -gl_cv_func_log1p_ieee=yes -gl_cv_func_log1pl_ieee=yes -gl_cv_func_log2f_ieee=yes -gl_cv_func_log2_ieee=yes -gl_cv_func_logf_ieee=yes -gl_cv_func_log_ieee=yes -gl_cv_func_lstat_dereferences_slashed_symlink=yes -gl_cv_func_mbrlen_empty_input=yes -gl_cv_func_mbrtowc_empty_input=yes -gl_cv_func_memchr_works=yes -gl_cv_func_memmem_works_fast=yes -gl_cv_func_mkdir_trailing_dot_works=yes -gl_cv_func_mkdir_trailing_slash_works=yes -gl_cv_func_mkfifo_works=yes -gl_cv_func_mknod_works=yes -gl_cv_func_modff_ieee=yes -gl_cv_func_modf_ieee=yes -gl_cv_func_modfl_ieee=yes -gl_cv_func_nanosleep=yes -gl_cv_func_open_directory_works=yes -gl_cv_func_perror_works=yes -gl_cv_func_printf_directive_a=yes -gl_cv_func_printf_directive_f=yes -gl_cv_func_printf_directive_n=yes -gl_cv_func_printf_enomem=yes -gl_cv_func_printf_flag_zero=yes -gl_cv_func_printf_infinite_long_double=yes -gl_cv_func_printf_infinite=yes -gl_cv_func_printf_sizes_c99=yes -gl_cv_func_pselect_detects_ebadf=yes -gl_cv_func_ptsname_sets_errno=yes -gl_cv_func_readlink_works=yes -gl_cv_func_realpath_works=yes -gl_cv_func_remainderf_ieee=yes -gl_cv_func_remainder_ieee=yes -gl_cv_func_remainderl_ieee=yes -gl_cv_func_rename_dest_works=yes -gl_cv_func_rename_link_works=yes -gl_cv_func_rename_slash_dst_works=yes -gl_cv_func_rename_slash_src_works=yes -gl_cv_func_rmdir_works=yes -gl_cv_func_roundf_ieee=yes -gl_cv_func_round_ieee=yes -gl_cv_func_select_detects_ebadf=yes -gl_cv_func_setenv_works=yes -gl_cv_func_signbit_gcc=yes -gl_cv_func_signbit=yes -gl_cv_func_sleep_works=yes -gl_cv_func_snprintf_directive_n=yes -gl_cv_func_snprintf_retval_c99=yes -gl_cv_func_snprintf_truncation_c99=yes -gl_cv_func_stat_dir_slash=yes -gl_cv_func_stat_file_slash=yes -gl_cv_func_stpncpy=yes -gl_cv_func_strcasestr_linear=yes -gl_cv_func_strchrnul_works=yes -gl_cv_func_strerror_0_works=yes -gl_cv_func_strstr_linear=yes -gl_cv_func_strtod_works=yes -gl_cv_func_svid_putenv=yes -gl_cv_func_symlink_works=yes -gl_cv_func_tdelete_works=yes -gl_cv_func_truncf_ieee=yes -gl_cv_func_trunc_ieee=yes -gl_cv_func_truncl_ieee=yes -gl_cv_func_tzset_clobber=no -gl_cv_func_ungetc_works=yes -gl_cv_func_unlink_honors_slashes=yes -gl_cv_func_unsetenv_works=yes -gl_cv_func_usleep_works=yes -gl_cv_func_utimensat_works=yes -gl_cv_func_vsnprintf_posix=yes -gl_cv_func_vsnprintf_zerosize_c99=yes -gl_cv_func_vsprintf_posix=yes -gl_cv_func_wcwidth_works=yes -gl_cv_func_working_getdelim=yes -gl_cv_func_working_mkstemp=yes -gl_cv_func_working_mktime=yes -gl_cv_func_working_strerror=yes -ac_cv_func___fseterr=yes -gl_cv_func_getcwd_null=yes -gl_cv_struct_dirent_d_ino=yes - -# bash -bash_cv_func_sigsetjmp=present -bash_cv_getcwd_malloc=yes -bash_cv_job_control_missing=present -bash_cv_printf_a_format=yes -bash_cv_sys_named_pipes=present -bash_cv_ulimit_maxfds=yes -bash_cv_under_sys_siglist=yes -bash_cv_unusable_rtsigs=no - -# libX11 -xorg_cv_malloc0_returns_null=yes - -# mc -ac_list_mounted_fs=found - -# procps_ng -ac_cv_func_realloc_0_nonnull=yes - -# vim -ac_cv_small_wchar_t=no -ac_x_header_dirs=${PKG_PREFIX}/include -vim_cv_bcopy_handles_overlap=yes -vim_cv_getcwd_broken=no -vim_cv_memcpy_handles_overlap=no -vim_cv_memmove_handles_overlap=yes -vim_cv_stat_ignores_slash=no -vim_cv_terminfo=yes -vim_cv_toupper_broken=no -vim_cv_tty_group=tty -vim_cv_tty_mode=0666 - -# libevent -ac_pe_target=true diff --git a/config.sub b/config.sub deleted file mode 100644 index 9feb73bf..00000000 --- a/config.sub +++ /dev/null @@ -1,1823 +0,0 @@ -#! /bin/sh -# Configuration validation subroutine script. -# Copyright 1992-2016 Free Software Foundation, Inc. - -timestamp='2016-06-20' - -# This file is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 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 -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, see . -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that -# program. This Exception is an additional permission under section 7 -# of the GNU General Public License, version 3 ("GPLv3"). - - -# Please send patches to . -# -# Configuration subroutine to validate and canonicalize a configuration type. -# Supply the specified configuration type as an argument. -# If it is invalid, we print an error message on stderr and exit with code 1. -# Otherwise, we print the canonical config type on stdout and succeed. - -# You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub - -# This file is supposed to be the same for all GNU packages -# and recognize all the CPU types, system types and aliases -# that are meaningful with *any* GNU software. -# Each package is responsible for reporting which valid configurations -# it does not support. The user should be able to distinguish -# a failure to support a valid configuration from a meaningless -# configuration. - -# The goal of this file is to map all the various variations of a given -# machine specification into a single specification in the form: -# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM -# or in some cases, the newer four-part form: -# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM -# It is wrong to echo any other type of specification. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS - -Canonicalize a configuration name. - -Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version="\ -GNU config.sub ($timestamp) - -Copyright 1992-2016 Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" - exit 1 ;; - - *local*) - # First pass through any local machine types. - echo $1 - exit ;; - - * ) - break ;; - esac -done - -case $# in - 0) echo "$me: missing argument$help" >&2 - exit 1;; - 1) ;; - *) echo "$me: too many arguments$help" >&2 - exit 1;; -esac - -# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). -# Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` -case $maybe_os in - nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ - linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ - knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ - kopensolaris*-gnu* | \ - storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - android-linux) - os=-linux-android - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi - ;; -esac - -### Let's recognize common machines as not being operating systems so -### that things like config.sub decstation-3100 work. We also -### recognize some manufacturers as not being operating systems, so we -### can provide default operating systems below. -case $os in - -sun*os*) - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray | -microblaze*) - os= - basic_machine=$1 - ;; - -bluegene*) - os=-cnk - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) - ;; - -wrs) - os=-vxworks - basic_machine=$1 - ;; - -chorusos*) - os=-chorusos - basic_machine=$1 - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; - -sco6) - os=-sco5v6 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco5v6*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) - os=-isc2.2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -clix*) - basic_machine=clipper-intergraph - ;; - -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -lynx*178) - os=-lynxos178 - ;; - -lynx*5) - os=-lynxos5 - ;; - -lynx*) - os=-lynxos - ;; - -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` - ;; - -windowsnt*) - os=`echo $os | sed -e 's/windowsnt/winnt/'` - ;; - -psos*) - os=-psos - ;; - -mint | -mint[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; -esac - -# Decode aliases for certain CPU-COMPANY combinations. -case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. - 1750a | 580 \ - | a29k \ - | aarch64 | aarch64_be \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | am33_2.0 \ - | arc | arceb \ - | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ - | avr | avr32 \ - | ba \ - | be32 | be64 \ - | bfin \ - | c4x | c8051 | clipper \ - | d10v | d30v | dlx | dsp16xx \ - | e2k | epiphany \ - | fido | fr30 | frv | ft32 \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | hexagon \ - | i370 | i860 | i960 | ia64 \ - | ip2k | iq2000 \ - | k1om \ - | le32 | le64 \ - | lm32 \ - | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64octeon | mips64octeonel \ - | mips64orion | mips64orionel \ - | mips64r5900 | mips64r5900el \ - | mips64vr | mips64vrel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ - | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa32r6 | mipsisa32r6el \ - | mipsisa64 | mipsisa64el \ - | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64r6 | mipsisa64r6el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipsr5900 | mipsr5900el \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ - | moxie \ - | mt \ - | msp430 \ - | nds32 | nds32le | nds32be \ - | nios | nios2 | nios2eb | nios2el \ - | ns16k | ns32k \ - | open8 | or1k | or1knd | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle \ - | pyramid \ - | riscv32 | riscv64 \ - | rl78 | rx \ - | score \ - | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ - | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ - | spu \ - | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ - | ubicom32 \ - | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ - | visium \ - | we32k \ - | x86 | xc16x | xstormy16 | xtensa \ - | z8k | z80) - basic_machine=$basic_machine-unknown - ;; - c54x) - basic_machine=tic54x-unknown - ;; - c55x) - basic_machine=tic55x-unknown - ;; - c6x) - basic_machine=tic6x-unknown - ;; - leon|leon[3-9]) - basic_machine=sparc-$basic_machine - ;; - m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) - basic_machine=$basic_machine-unknown - os=-none - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; - ms1) - basic_machine=mt-unknown - ;; - - strongarm | thumb | xscale) - basic_machine=arm-unknown - ;; - xgate) - basic_machine=$basic_machine-unknown - os=-none - ;; - xscaleeb) - basic_machine=armeb-unknown - ;; - - xscaleel) - basic_machine=armel-unknown - ;; - - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. - 580-* \ - | a29k-* \ - | aarch64-* | aarch64_be-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* | avr32-* \ - | ba-* \ - | be32-* | be64-* \ - | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* \ - | c8051-* | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | e2k-* | elxsi-* \ - | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | hexagon-* \ - | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* | iq2000-* \ - | k1om-* \ - | le32-* | le64-* \ - | lm32-* \ - | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ - | microblaze-* | microblazeel-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64octeon-* | mips64octeonel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64r5900-* | mips64r5900el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ - | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa32r6-* | mipsisa32r6el-* \ - | mipsisa64-* | mipsisa64el-* \ - | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64r6-* | mipsisa64r6el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipsr5900-* | mipsr5900el-* \ - | mipstx39-* | mipstx39el-* \ - | mmix-* \ - | mt-* \ - | msp430-* \ - | nds32-* | nds32le-* | nds32be-* \ - | nios-* | nios2-* | nios2eb-* | nios2el-* \ - | none-* | np1-* | ns16k-* | ns32k-* \ - | open8-* \ - | or1k*-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ - | pyramid-* \ - | riscv32-* | riscv64-* \ - | rl78-* | romp-* | rs6000-* | rx-* \ - | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ - | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ - | tahoe-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tile*-* \ - | tron-* \ - | ubicom32-* \ - | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ - | vax-* \ - | visium-* \ - | we32k-* \ - | x86-* | x86_64-* | xc16x-* | xps100-* \ - | xstormy16-* | xtensa*-* \ - | ymp-* \ - | z8k-* | z80-*) - ;; - # Recognize the basic CPU types without company name, with glob match. - xtensa*) - basic_machine=$basic_machine-unknown - ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att - ;; - 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; - abacus) - basic_machine=abacus-unknown - ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; - amd64) - basic_machine=x86_64-pc - ;; - amd64-*) - basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) - basic_machine=m68k-unknown - os=-amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown - os=-sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - os=-sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo - os=-bsd - ;; - aros) - basic_machine=i386-pc - os=-aros - ;; - asmjs) - basic_machine=asmjs-unknown - ;; - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; - blackfin) - basic_machine=bfin-unknown - os=-linux - ;; - blackfin-*) - basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - bluegene*) - basic_machine=powerpc-ibm - os=-cnk - ;; - c54x-*) - basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - c55x-*) - basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - c6x-*) - basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - cegcc) - basic_machine=arm-unknown - os=-cegcc - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; - convex-c2) - basic_machine=c2-convex - os=-bsd - ;; - convex-c32) - basic_machine=c32-convex - os=-bsd - ;; - convex-c34) - basic_machine=c34-convex - os=-bsd - ;; - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; - craynv) - basic_machine=craynv-cray - os=-unicosmp - ;; - cr16 | cr16-*) - basic_machine=cr16-unknown - os=-elf - ;; - crds | unos) - basic_machine=m68k-crds - ;; - crisv32 | crisv32-* | etraxfs*) - basic_machine=crisv32-axis - ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; - crx) - basic_machine=crx-unknown - os=-elf - ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec - ;; - decsystem10* | dec10*) - basic_machine=pdp10-dec - os=-tops10 - ;; - decsystem20* | dec20*) - basic_machine=pdp10-dec - os=-tops20 - ;; - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; - dicos) - basic_machine=i686-pc - os=-dicos - ;; - djgpp) - basic_machine=i586-pc - os=-msdosdjgpp - ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; - e500v[12]) - basic_machine=powerpc-unknown - os=$os"spe" - ;; - e500v[12]-*) - basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` - os=$os"spe" - ;; - ebmon29k) - basic_machine=a29k-amd - os=-ebmon - ;; - elxsi) - basic_machine=elxsi-elxsi - os=-bsd - ;; - encore | umax | mmax) - basic_machine=ns32k-encore - ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson - os=-ose - ;; - fx2800) - basic_machine=i860-alliant - ;; - genix) - basic_machine=ns32k-ns - ;; - gmicro) - basic_machine=tron-gmicro - os=-sysv - ;; - go32) - basic_machine=i386-pc - os=-go32 - ;; - h3050r* | hiux*) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - h8300hms) - basic_machine=h8300-hitachi - os=-hms - ;; - h8300xray) - basic_machine=h8300-hitachi - os=-xray - ;; - h8500hms) - basic_machine=h8500-hitachi - os=-hms - ;; - harris) - basic_machine=m88k-harris - os=-sysv3 - ;; - hp300-*) - basic_machine=m68k-hp - ;; - hp300bsd) - basic_machine=m68k-hp - os=-bsd - ;; - hp300hpux) - basic_machine=m68k-hp - os=-hpux - ;; - hp3k9[0-9][0-9] | hp9[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k2[0-9][0-9] | hp9k31[0-9]) - basic_machine=m68000-hp - ;; - hp9k3[2-9][0-9]) - basic_machine=m68k-hp - ;; - hp9k6[0-9][0-9] | hp6[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k7[0-79][0-9] | hp7[0-79][0-9]) - basic_machine=hppa1.1-hp - ;; - hp9k78[0-9] | hp78[0-9]) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][13679] | hp8[0-9][13679]) - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][0-9] | hp8[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hppa-next) - os=-nextstep3 - ;; - hppaosf) - basic_machine=hppa1.1-hp - os=-osf - ;; - hppro) - basic_machine=hppa1.1-hp - os=-proelf - ;; - i370-ibm* | ibm*) - basic_machine=i370-ibm - ;; - i*86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv32 - ;; - i*86v4*) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv4 - ;; - i*86v) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv - ;; - i*86sol2) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-solaris2 - ;; - i386mach) - basic_machine=i386-mach - os=-mach - ;; - i386-vsta | vsta) - basic_machine=i386-unknown - os=-vsta - ;; - iris | iris4d) - basic_machine=mips-sgi - case $os in - -irix*) - ;; - *) - os=-irix4 - ;; - esac - ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; - leon-*|leon[3-9]-*) - basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` - ;; - m68knommu) - basic_machine=m68k-unknown - os=-linux - ;; - m68knommu-*) - basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - microblaze*) - basic_machine=microblaze-xilinx - ;; - mingw64) - basic_machine=x86_64-pc - os=-mingw64 - ;; - mingw32) - basic_machine=i686-pc - os=-mingw32 - ;; - mingw32ce) - basic_machine=arm-unknown - os=-mingw32ce - ;; - miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - moxiebox) - basic_machine=moxie-unknown - os=-moxiebox - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; - ms1-*) - basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` - ;; - msys) - basic_machine=i686-pc - os=-msys - ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - nacl) - basic_machine=le32-unknown - os=-nacl - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; - netbsd386) - basic_machine=i386-unknown - os=-netbsd - ;; - netwinder) - basic_machine=armv4l-rebel - os=-linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - os=-newsos - ;; - news1000) - basic_machine=m68030-sony - os=-newsos - ;; - news-3600 | risc-news) - basic_machine=mips-sony - os=-newsos - ;; - necv70) - basic_machine=v70-nec - os=-sysv - ;; - next | m*-next ) - basic_machine=m68k-next - case $os in - -nextstep* ) - ;; - -ns2*) - os=-nextstep2 - ;; - *) - os=-nextstep3 - ;; - esac - ;; - nh3000) - basic_machine=m68k-harris - os=-cxux - ;; - nh[45]000) - basic_machine=m88k-harris - os=-cxux - ;; - nindy960) - basic_machine=i960-intel - os=-nindy - ;; - mon960) - basic_machine=i960-intel - os=-mon960 - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; - np1) - basic_machine=np1-gould - ;; - neo-tandem) - basic_machine=neo-tandem - ;; - nse-tandem) - basic_machine=nse-tandem - ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; - openrisc | openrisc-*) - basic_machine=or32-unknown - ;; - os400) - basic_machine=powerpc-ibm - os=-os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k - ;; - pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; - parisc) - basic_machine=hppa-unknown - os=-linux - ;; - parisc-*) - basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - pbd) - basic_machine=sparc-tti - ;; - pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; - pc98) - basic_machine=i386-pc - ;; - pc98-*) - basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; - pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; - pentium4) - basic_machine=i786-pc - ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentium4-*) - basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pn) - basic_machine=pn-gould - ;; - power) basic_machine=power-ibm - ;; - ppc | ppcbe) basic_machine=powerpc-unknown - ;; - ppc-* | ppcbe-*) - basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppcle | powerpclittle | ppc-le | powerpc-little) - basic_machine=powerpcle-unknown - ;; - ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64) basic_machine=powerpc64-unknown - ;; - ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64le | powerpc64little | ppc64-le | powerpc64-little) - basic_machine=powerpc64le-unknown - ;; - ppc64le-* | powerpc64little-*) - basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ps2) - basic_machine=i386-ibm - ;; - pw32) - basic_machine=i586-unknown - os=-pw32 - ;; - rdos | rdos64) - basic_machine=x86_64-pc - os=-rdos - ;; - rdos32) - basic_machine=i386-pc - os=-rdos - ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff - ;; - rm[46]00) - basic_machine=mips-siemens - ;; - rtpc | rtpc-*) - basic_machine=romp-ibm - ;; - s390 | s390-*) - basic_machine=s390-ibm - ;; - s390x | s390x-*) - basic_machine=s390x-ibm - ;; - sa29200) - basic_machine=a29k-amd - os=-udi - ;; - sb1) - basic_machine=mipsisa64sb1-unknown - ;; - sb1el) - basic_machine=mipsisa64sb1el-unknown - ;; - sde) - basic_machine=mipsisa32-sde - os=-elf - ;; - sei) - basic_machine=mips-sei - os=-seiux - ;; - sequent) - basic_machine=i386-sequent - ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; - sh5el) - basic_machine=sh5le-unknown - ;; - sh64) - basic_machine=sh64-unknown - ;; - sparclite-wrs | simso-wrs) - basic_machine=sparclite-wrs - os=-vxworks - ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 - ;; - spur) - basic_machine=spur-unknown - ;; - st2000) - basic_machine=m68k-tandem - ;; - stratus) - basic_machine=i860-stratus - os=-sysv4 - ;; - strongarm-* | thumb-*) - basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - sun2) - basic_machine=m68000-sun - ;; - sun2os3) - basic_machine=m68000-sun - os=-sunos3 - ;; - sun2os4) - basic_machine=m68000-sun - os=-sunos4 - ;; - sun3os3) - basic_machine=m68k-sun - os=-sunos3 - ;; - sun3os4) - basic_machine=m68k-sun - os=-sunos4 - ;; - sun4os3) - basic_machine=sparc-sun - os=-sunos3 - ;; - sun4os4) - basic_machine=sparc-sun - os=-sunos4 - ;; - sun4sol2) - basic_machine=sparc-sun - os=-solaris2 - ;; - sun3 | sun3-*) - basic_machine=m68k-sun - ;; - sun4) - basic_machine=sparc-sun - ;; - sun386 | sun386i | roadrunner) - basic_machine=i386-sun - ;; - sv1) - basic_machine=sv1-cray - os=-unicos - ;; - symmetry) - basic_machine=i386-sequent - os=-dynix - ;; - t3e) - basic_machine=alphaev5-cray - os=-unicos - ;; - t90) - basic_machine=t90-cray - os=-unicos - ;; - tile*) - basic_machine=$basic_machine-unknown - os=-linux-gnu - ;; - tx39) - basic_machine=mipstx39-unknown - ;; - tx39el) - basic_machine=mipstx39el-unknown - ;; - toad1) - basic_machine=pdp10-xkl - os=-tops20 - ;; - tower | tower-32) - basic_machine=m68k-ncr - ;; - tpf) - basic_machine=s390x-ibm - os=-tpf - ;; - udi29k) - basic_machine=a29k-amd - os=-udi - ;; - ultra3) - basic_machine=a29k-nyu - os=-sym1 - ;; - v810 | necv810) - basic_machine=v810-nec - os=-none - ;; - vaxv) - basic_machine=vax-dec - os=-sysv - ;; - vms) - basic_machine=vax-dec - os=-vms - ;; - vpp*|vx|vx-*) - basic_machine=f301-fujitsu - ;; - vxworks960) - basic_machine=i960-wrs - os=-vxworks - ;; - vxworks68) - basic_machine=m68k-wrs - os=-vxworks - ;; - vxworks29k) - basic_machine=a29k-wrs - os=-vxworks - ;; - w65*) - basic_machine=w65-wdc - os=-none - ;; - w89k-*) - basic_machine=hppa1.1-winbond - os=-proelf - ;; - xbox) - basic_machine=i686-pc - os=-mingw32 - ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; - xscale-* | xscalee[bl]-*) - basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` - ;; - ymp) - basic_machine=ymp-cray - os=-unicos - ;; - z8k-*-coff) - basic_machine=z8k-unknown - os=-sim - ;; - z80-*-coff) - basic_machine=z80-unknown - os=-sim - ;; - none) - basic_machine=none-none - os=-none - ;; - -# Here we handle the default manufacturer of certain CPU types. It is in -# some cases the only manufacturer, in others, it is the most popular. - w89k) - basic_machine=hppa1.1-winbond - ;; - op50n) - basic_machine=hppa1.1-oki - ;; - op60c) - basic_machine=hppa1.1-oki - ;; - romp) - basic_machine=romp-ibm - ;; - mmix) - basic_machine=mmix-knuth - ;; - rs6000) - basic_machine=rs6000-ibm - ;; - vax) - basic_machine=vax-dec - ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown - ;; - pdp11) - basic_machine=pdp11-dec - ;; - we32k) - basic_machine=we32k-att - ;; - sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown - ;; - sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) - basic_machine=sparc-sun - ;; - cydra) - basic_machine=cydra-cydrome - ;; - orion) - basic_machine=orion-highlevel - ;; - orion105) - basic_machine=clipper-highlevel - ;; - mac | mpw | mac-mpw) - basic_machine=m68k-apple - ;; - pmac | pmac-mpw) - basic_machine=powerpc-apple - ;; - *-unknown) - # Make sure to match an already-canonicalized machine name. - ;; - *) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; -esac - -# Here we canonicalize certain aliases for manufacturers. -case $basic_machine in - *-digital*) - basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` - ;; - *-commodore*) - basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` - ;; - *) - ;; -esac - -# Decode manufacturer-specific aliases for certain operating systems. - -if [ x"$os" != x"" ] -then -case $os in - # First match some system type aliases - # that might get confused with valid system types. - # -solaris* is a basic system type, with this one exception. - -auroraux) - os=-auroraux - ;; - -solaris1 | -solaris1.*) - os=`echo $os | sed -e 's|solaris1|sunos4|'` - ;; - -solaris) - os=-solaris2 - ;; - -svr4*) - os=-sysv4 - ;; - -unixware*) - os=-sysv4.2uw - ;; - -gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; - # First accept the basic system types. - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ - | -sym* | -kopensolaris* | -plan9* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* | -aros* | -cloudabi* | -sortix* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ - | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ - | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ - | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* | -cegcc* \ - | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ - | -linux-newlib* | -linux-musl* | -linux-uclibc* \ - | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ - | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ - | -onefs* | -tirtos* | -phoenix*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) - case $basic_machine in - x86-* | i*86-*) - ;; - *) - os=-nto$os - ;; - esac - ;; - -nto-qnx*) - ;; - -nto*) - os=`echo $os | sed -e 's|nto|nto-qnx|'` - ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) - ;; - -mac*) - os=`echo $os | sed -e 's|mac|macos|'` - ;; - -linux-dietlibc) - os=-linux-dietlibc - ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; - -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` - ;; - -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` - ;; - -opened*) - os=-openedition - ;; - -os400*) - os=-os400 - ;; - -wince*) - os=-wince - ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf - ;; - -utek*) - os=-bsd - ;; - -dynix*) - os=-bsd - ;; - -acis*) - os=-aos - ;; - -atheos*) - os=-atheos - ;; - -syllable*) - os=-syllable - ;; - -386bsd) - os=-bsd - ;; - -ctix* | -uts*) - os=-sysv - ;; - -nova*) - os=-rtmk-nova - ;; - -ns2 ) - os=-nextstep2 - ;; - -nsk*) - os=-nsk - ;; - # Preserve the version number of sinix5. - -sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` - ;; - -sinix*) - os=-sysv4 - ;; - -tpf*) - os=-tpf - ;; - -triton*) - os=-sysv3 - ;; - -oss*) - os=-sysv3 - ;; - -svr4) - os=-sysv4 - ;; - -svr3) - os=-sysv3 - ;; - -sysvr4) - os=-sysv4 - ;; - # This must come after -sysvr4. - -sysv*) - ;; - -ose*) - os=-ose - ;; - -es1800*) - os=-ose - ;; - -xenix) - os=-xenix - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - os=-mint - ;; - -aros*) - os=-aros - ;; - -zvmoe) - os=-zvmoe - ;; - -dicos*) - os=-dicos - ;; - -nacl*) - ;; - -ios) - ;; - -none) - ;; - *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 - exit 1 - ;; -esac -else - -# Here we handle the default operating systems that come with various machines. -# The value should be what the vendor currently ships out the door with their -# machine or put another way, the most popular os provided with the machine. - -# Note that if you're going to try to match "-MANUFACTURER" here (say, -# "-sun"), then you have to tell the case statement up towards the top -# that MANUFACTURER isn't an operating system. Otherwise, code above -# will signal an error saying that MANUFACTURER isn't an operating -# system, and we'll never get to this point. - -case $basic_machine in - score-*) - os=-elf - ;; - spu-*) - os=-elf - ;; - *-acorn) - os=-riscix1.2 - ;; - arm*-rebel) - os=-linux - ;; - arm*-semi) - os=-aout - ;; - c4x-* | tic4x-*) - os=-coff - ;; - c8051-*) - os=-elf - ;; - hexagon-*) - os=-elf - ;; - tic54x-*) - os=-coff - ;; - tic55x-*) - os=-coff - ;; - tic6x-*) - os=-coff - ;; - # This must come before the *-dec entry. - pdp10-*) - os=-tops20 - ;; - pdp11-*) - os=-none - ;; - *-dec | vax-*) - os=-ultrix4.2 - ;; - m68*-apollo) - os=-domain - ;; - i386-sun) - os=-sunos4.0.2 - ;; - m68000-sun) - os=-sunos3 - ;; - m68*-cisco) - os=-aout - ;; - mep-*) - os=-elf - ;; - mips*-cisco) - os=-elf - ;; - mips*-*) - os=-elf - ;; - or32-*) - os=-coff - ;; - *-tti) # must be before sparc entry or we get the wrong os. - os=-sysv3 - ;; - sparc-* | *-sun) - os=-sunos4.1.1 - ;; - *-be) - os=-beos - ;; - *-haiku) - os=-haiku - ;; - *-ibm) - os=-aix - ;; - *-knuth) - os=-mmixware - ;; - *-wec) - os=-proelf - ;; - *-winbond) - os=-proelf - ;; - *-oki) - os=-proelf - ;; - *-hp) - os=-hpux - ;; - *-hitachi) - os=-hiux - ;; - i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) - os=-sysv - ;; - *-cbm) - os=-amigaos - ;; - *-dg) - os=-dgux - ;; - *-dolphin) - os=-sysv3 - ;; - m68k-ccur) - os=-rtu - ;; - m88k-omron*) - os=-luna - ;; - *-next ) - os=-nextstep - ;; - *-sequent) - os=-ptx - ;; - *-crds) - os=-unos - ;; - *-ns) - os=-genix - ;; - i370-*) - os=-mvs - ;; - *-next) - os=-nextstep3 - ;; - *-gould) - os=-sysv - ;; - *-highlevel) - os=-bsd - ;; - *-encore) - os=-bsd - ;; - *-sgi) - os=-irix - ;; - *-siemens) - os=-sysv4 - ;; - *-masscomp) - os=-rtu - ;; - f30[01]-fujitsu | f700-fujitsu) - os=-uxpv - ;; - *-rom68k) - os=-coff - ;; - *-*bug) - os=-coff - ;; - *-apple) - os=-macos - ;; - *-atari*) - os=-mint - ;; - *) - os=-none - ;; -esac -fi - -# Here we handle the case where we know the os, and the CPU type, but not the -# manufacturer. We pick the logical manufacturer. -vendor=unknown -case $basic_machine in - *-unknown) - case $os in - -riscix*) - vendor=acorn - ;; - -sunos*) - vendor=sun - ;; - -cnk*|-aix*) - vendor=ibm - ;; - -beos*) - vendor=be - ;; - -hpux*) - vendor=hp - ;; - -mpeix*) - vendor=hp - ;; - -hiux*) - vendor=hitachi - ;; - -unos*) - vendor=crds - ;; - -dgux*) - vendor=dg - ;; - -luna*) - vendor=omron - ;; - -genix*) - vendor=ns - ;; - -mvs* | -opened*) - vendor=ibm - ;; - -os400*) - vendor=ibm - ;; - -ptx*) - vendor=sequent - ;; - -tpf*) - vendor=ibm - ;; - -vxsim* | -vxworks* | -windiss*) - vendor=wrs - ;; - -aux*) - vendor=apple - ;; - -hms*) - vendor=hitachi - ;; - -mpw* | -macos*) - vendor=apple - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - vendor=atari - ;; - -vos*) - vendor=stratus - ;; - esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` - ;; -esac - -echo $basic_machine$os -exit - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/coreutils-8.23.local.patch b/coreutils-8.23.local.patch deleted file mode 100644 index a98d3791..00000000 --- a/coreutils-8.23.local.patch +++ /dev/null @@ -1,59 +0,0 @@ -diff -ru --new-file a/configure b/configure ---- a/configure 2014-07-18 18:07:39.000000000 -0400 -+++ b/configure 2015-06-01 12:42:55.874926255 -0400 -@@ -66789,3 +66791,11 @@ - $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} - fi - -+# bypass dependency on help2man -+if [ x"$cross_compiling" = xyes ]; then -+ mkdir -p man; -+ for f in $srcdir/src/*.c; do src=$(basename $f); doc="${src%.*}"; echo $doc; touch man/$doc.1; done -+ for f in dir sha1sum sha224sum sha256sum sha384sum sha512sum vdir; do touch man/$f.1; done -+ -+ sed -i -e 's/@cross_compiling@/'$cross_compiling'/g' Makefile || exit 2 -+fi -diff -ru --new-file a/Makefile.in b/Makefile.in ---- a/Makefile.in 2014-07-18 18:22:24.000000000 -0400 -+++ b/Makefile.in 2015-06-01 12:03:29.274957961 -0400 -@@ -4911,6 +4911,8 @@ - $(bin_SCRIPTS) \ - $(EXTRA_PROGRAMS) - -+CROSS_COMPILE = @cross_compiling@ -+ - pm = progs-makefile - pr = progs-readme - @CROSS_COMPILING_FALSE@cu_install_program = src/ginstall -@@ -14061,6 +14063,10 @@ - # Include the generated man dependencies. - @AMDEP_TRUE@@am__include@ man/dynamic-deps.mk - -+ifeq ($(CROSS_COMPILE),yes) -+.x.1: -+ -+else - .x.1: - $(AM_V_GEN)name=`echo $@ | sed 's|.*/||; s|\.1$$||'` || exit 1; \ - case $$name in \ -@@ -14086,6 +14092,8 @@ - && chmod a-w $@-t \ - && mv $@-t $@ - .PHONY: check-root -+endif -+ - check-root: - $(MAKE) check TESTS='$(root_tests)' SUBDIRS=. - -diff -ru --new-file a/src/fs.h b/src/fs.h ---- a/src/fs.h 2014-07-18 14:33:26.000000000 -0400 -+++ b/src/fs.h 2015-06-01 10:19:57.475041184 -0400 -@@ -2,7 +2,7 @@ - Please send additions to bug-coreutils@gnu.org and meskes@debian.org. - This file is generated automatically from ./src/stat.c. */ - --#if defined __linux__ -+#if defined __linux__ || defined __midipix__ - # define S_MAGIC_ADFS 0xADF5 - # define S_MAGIC_AFFS 0xADFF - # define S_MAGIC_AFS 0x5346414F diff --git a/curl-7.47.1.local.patch b/curl-7.47.1.local.patch deleted file mode 100644 index 3a10aa92..00000000 --- a/curl-7.47.1.local.patch +++ /dev/null @@ -1,41 +0,0 @@ ---- curl-7.47.1/configure.orig 2016-02-07 15:43:48.000000000 +0100 -+++ curl-7.47.1/configure 2016-03-08 11:33:24.125711200 +0100 -@@ -14297,6 +14297,18 @@ - dynamic_linker='GNU/Linux ld.so' - ;; - -+midipix*) -+ version_type=linux -+ need_lib_prefix=no -+ need_version=no -+ library_names_spec="\${libname}\${release}\${shared_ext}\$versuffix \${libname}\${release}\${shared_ext}\$major \$libname\${shared_ext}" -+ soname_spec="\${libname}\${release}\${shared_ext}\$major" -+ shlibpath_var=LD_LIBRARY_PATH -+ shlibpath_overrides_runpath=no -+ hardcode_into_libs=no -+ dynamic_linker='GNU/Linux ld.so' -+ ;; -+ - netbsdelf*-gnu) - version_type=linux - need_lib_prefix=no ---- curl-7.47.1/lib/Makefile.in.orig 2016-02-07 14:43:49.000000000 +0000 -+++ curl-7.47.1/lib/Makefile.in 2016-06-10 00:07:28.334457112 +0000 -@@ -243,7 +243,7 @@ - am__v_lt_1 = - libcurl_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libcurl_la_CFLAGS) \ -- $(CFLAGS) $(libcurl_la_LDFLAGS) $(LDFLAGS) -o $@ -+ $(CFLAGS) $(LDFLAGS) -o $@ - libcurlu_la_LIBADD = - am__objects_6 = libcurlu_la-file.lo libcurlu_la-timeval.lo \ - libcurlu_la-base64.lo libcurlu_la-hostip.lo \ -@@ -842,7 +842,7 @@ - vtls/$(DEPDIR)/$(am__dirstamp) - - libcurl.la: $(libcurl_la_OBJECTS) $(libcurl_la_DEPENDENCIES) $(EXTRA_libcurl_la_DEPENDENCIES) -- $(AM_V_CCLD)$(libcurl_la_LINK) -rpath $(libdir) $(libcurl_la_OBJECTS) $(libcurl_la_LIBADD) $(LIBS) -+ $(AM_V_CCLD)$(libcurl_la_LINK) -rpath $(libdir) $(libcurl_la_OBJECTS) $(libcurl_la_LIBADD) $(LIBS) $(libcurl_la_LDFLAGS) - vtls/libcurlu_la-openssl.lo: vtls/$(am__dirstamp) \ - vtls/$(DEPDIR)/$(am__dirstamp) - vtls/libcurlu_la-gtls.lo: vtls/$(am__dirstamp) \ diff --git a/etc/LICENCE b/etc/LICENCE new file mode 100644 index 00000000..3d401651 --- /dev/null +++ b/etc/LICENCE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Lucio Andrés Illanes Albornoz + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/etc/README b/etc/README new file mode 100644 index 00000000..5cab545e --- /dev/null +++ b/etc/README @@ -0,0 +1,230 @@ + + Obtaining and installing a Midipix distribution + Last update: Sun, 24 Apr 2016 09:42:40 +0000 + +A Midipix distribution consists of the following: +a) the native Midipix toolchain, consisting of perk, gcc, its dependencies, + and binutils, +b) musl, a lightweight, fast, simple, and free libc[1] used by Midipix, +c) the Midipix runtime components that bridge the gap between the libc and the + executive subsystems of all Windows NT-derived Windows OS starting with and + including Windows XP, and +d) a steadily increasing number of 3rd party open source packages, as expected in + any modern POSIX-compliant *nix environment, including GNU coreutils, shells, + libraries such as ncurses, libressl, as well as Perl and Python. + +Compressed Midipix distribution tarballs and, separately, source tarballs are, +at present, produced every four (4) hours UTC after each successful build and +subsequently signed. This process is fully automated by a portable Bourne shell +script; all of the above mentioned components are cross-compiled. + +Thus, the most hassle-free way to get started with Midipix is to simply download +the most recent distribution tarball and follow the instructions below. It is, +however, recommended to anyone intending to use Midipix as a development platform +to familiarise themselves with the build process. Other reasons to prefer building +a Midipix distribution yourself include integrating new 3rd party software or local +runtime component patches. At present, a full build from scratch takes about 30 +(thirty) minutes to finish on an 8-core host with eight simultaneous make jobs, +minus the generation of the tarballs. The build script can be obtained from the +following GitHub repository: . + +If you obtained a Midipix distribution tarball, extract it into a directory and +drive of your choice, henceforth referred to as target directory; the drive can +be a network drive. Do _not_ use anything but a true UNIX environment tar(1), as +e.g. WinRAR or WinZip handle extracting hard links incorrectly. +If you built Midipix yourself, the target directory is equivalent to the ${PREFIX} +configured in build.vars, which defaults to ${HOME}/midipix. + +At present, providing an interactive Midipix environment still requires the Cygwin +terminal emulator Mintty and a shell; this does not include pseudoterminals, which +are entirely handled by Midipix. Both can be installed via the 64-bit Cygwin setup +program at . + +Once installed, launching a Midipix shell is accomplished by the `midipix.sh' shell +script provided in the target directory from within a Cygwin shell prompt in Mintty +and the target directory. This may either simply be done manually each time, or +automated by a shortcut. As shortcuts cannot be distributed, it can be created by +either: +a) Opening (executing) the VBScript script in the target directory from within the + latter cscript.exe, providing the fully qualified pathname to Mintty, if it differs + from the default value of C:\cygwin64\bin\mintty.exe or +b) manually creating a shortcut to Mintty with `Start in:' set to the target directory + and the following command line: + [ ... ]\mintty.exe -i /Cygwin-Terminal.ico -e sh midipix.sh, or + +References: +Sun, 24 Apr 2016 09:04:08 +0000 [1] musl FAQ + + Linux distribution-related errata + +Busybox based distributions need the gawk, gsed, and coreutils packages to build perl. + + Midipix status report + Last update: Tue, 26 Apr 2016 10:16:16 +0000 + +The following build status codes are defined: +C -- Complete build w/ at least the default configuration, +B -- Broken, e.g. doesn't work at all or only minimally, +I -- Integrated (e.g. linked against) with other packages, +E -- Extensively tested and confirmed to work by multiple sources, possibly via a testsuite, +P -- Patches needed to build that haven't been committed upstream yet, and +U -- Update to latest stable version or HEAD pending. + +Component type Name Version Status Comments +Host toolchain binutils 2.24.51 C--EPU +Host toolchain file 5.28 C----- +Host toolchain gcc 4.6.4 ---EPU Excludes libstdc++ +Host toolchain musl 1.1.12 C-IEPU +Host toolchain perk HEAD C-IE-- +Host toolchain pkgconf 0.28 C--E-- +Host toolchain slibtool 0.5.7 C--E-- +Native toolchain binutils 2.24.51 C--EPU +Native toolchain gcc 4.6.4 ---EPU Excludes libstdc++ +Native toolchain gmp 5.1.3 C-IEPU +Native toolchain libelf 0.8.13 C-IEP- +Native toolchain mpc 1.0.1 C-IE-U +Native toolchain mpfr 3.1.2 C-IE-U +Native toolchain musl 1.1.12 C-IEPU +Native toolchain perk HEAD C-IE-- +Native toolchain pkgconf 0.28 C-IE-- +Runtime components dalist HEAD C-IE-- +Runtime components ntapi HEAD C-IE-- +Runtime components ntcon HEAD C-IE-- +Runtime components ntctty HEAD C-IE-- +Runtime components pemagine HEAD C-IE-- +Runtime components psxscl HEAD C-IE-- Excludes clone(2) and dlopen(3) +Runtime components psxtypes HEAD C-IE-- +Runtime components ptycon HEAD C-IE-- +3rd party libraries bzip2 1.0.6 C-IE-- +3rd party libraries curl 7.47.1 C---P- +3rd party libraries expat 2.2.0 C----- +3rd party libraries gdbm 1.12 C-I--- +3rd party libraries glib 2.46.2 C-I-P- Shared object not built +3rd party libraries gzip 1.2.4 C-IE-- +3rd party libraries inputproto 2.3.2 C----- +3rd party libraries kbproto 1.0.7 C----- +3rd party libraries libarchive 3.1.2 C-I-P- +3rd party libraries libassuan 2.4.3 C-I--- +3rd party libraries libevent 2.0.22-stable C-I--- +3rd party libraries libfetch 2.33 C-I-P- +3rd party libraries libffi 3.2.1 C-I-P- +3rd party libraries libfirm HEAD C-I-P- +3rd party libraries libgcrypt 1.7.3 C-I--- +3rd party libraries libgpg_error 1.24 C-I-P- +3rd party libraries libICE 1.0.9 C----- +3rd party libraries libksba 1.3.5 C-I-P- +3rd party libraries libpipeline 1.4.1 C-I--- +3rd party libraries libpthread-stubs 0.3 C----- +3rd party libraries libressl 2.2.6 C-I-P- +3rd party libraries libSM 1.2.2 C----- +3rd party libraries libX11 1.6.3 C----- +3rd party libraries libXau 1.0.8 C----- +3rd party libraries libXaw 1.0.13 C----- +3rd party libraries libXext 1.3.3 C----- +3rd party libraries libxkbfile 1.0.9 C----- +3rd party libraries libXmu 1.1.2 C----- +3rd party libraries libXpm 3.5.11 C----- +3rd party libraries libXt 1.1.5 C----- +3rd party libraries libz 1.2.8.2015.05.20 C-I--- +3rd party libraries lua 5.3.3 C---P- +3rd party libraries ncurses 6.0 C-IEP- ncurses, ncursestw, and ncursesw built +3rd party libraries npth 1.2 C-I--- +3rd party libraries pcre 8.39 C-I--- +3rd party libraries renderproto 0.11.1 C----- +3rd party libraries xcb 1.12 C----- Needs pthreads / clone(2) +3rd party libraries xcb-proto 1.12 C----- +3rd party libraries xextproto 7.3.0 C----- +3rd party libraries xproto 7.0.29 C----- +3rd party libraries Xrender 0.9.9 C----- +3rd party libraries xtrans 1.1 C----- +3rd party libraries xz 5.2.2 C-IE-- +3rd party packages apk_tools 2.6.6 C---P- +3rd party packages bash 4.3 C-I-P- Linked against ncursesw +3rd party packages coreutils 8.23 C---P- Needs extensive testing +3rd party packages cparser HEAD C-I-P- +3rd party packages cron HEAD C---P- +3rd party packages dash 0.5.8 C----- Provides /bin/sh +3rd party packages diffutils 3.3 C----- +3rd party packages dos2unix 7.3.4 C----- +3rd party packages ed 1.13 C----- +3rd party packages file 5.28 C----- +3rd party packages findutils 4.5.14 C---P- +3rd party packages gawk 4.1.3 C----- +3rd party packages git 2.7.1 C----- Needs clone(2) +3rd party packages gnupg 2.1.15 C----- Needs /dev/[u]random, extensive testing +3rd party packages grep 2.22 C----- +3rd party packages hexcurse 1.60.0 C-I-P- Linked against ncursesw +3rd party packages htop 2.0.1 C-I-P- Linked against ncursesw +3rd party packages inetutils 1.9.4 C----- +3rd party packages infounzip 6.0 C----- +3rd party packages infozip 3.0 C----- +3rd party packages irssi 0.8.18 CB--P- DNS and /EXEC require clone(2) due to pthreads (see psxscl;) no Perl support +3rd party packages john 1.8.0 C---P- +3rd party packages less 481 C-I--- Linked against ncursesw +3rd party packages lynx 2.8.8rel2 C----- +3rd party packages make 3.81 C----- +3rd party packages man_db 2.7.5 C----- +3rd party packages mc 4.8.17 C----- +3rd party packages mksh R52c C----- +3rd party packages nano 2.5.3 C-I--- Linked against ncursesw +3rd party packages netcat 110 C---P- +3rd party packages openssh 7.1p2 C-I--- Linked against libressl +3rd party packages p7zip HEAD C----- +3rd party packages pacman 5.0.1 C---P- +3rd party packages patch 2.7 C----- +3rd party packages perl 5.22.1 ------ No dlopen(3) (see psxscl,) modules missing +3rd party packages procps-ng 3.3.12 C----- +3rd party packages python 3.5.1 -B--P- No dlopen(3) (see psxscl,) modules missing +3rd party packages rsync 3.1.2 C----- +3rd party packages rxvt-unicode 9.22 C-I--- No Perl support +3rd party packages sed 4.2.2 C----- +3rd party packages tar 1.28 C----- +3rd party packages tcsh 6.19.00 C-I-P- +3rd party packages the silver searcher 0.32.0 C----- +3rd party packages tmux 2.2 C---P- +3rd party packages util_linux 2.27.1 C----- Needs extensive testing +3rd party packages vim 7.4.1952 C----- Provides /bin/vi +3rd party packages weechat 1.6 C----- +3rd party packages which 2.21 C----- +3rd party packages whois 5.2.12 C----- +3rd party packages xeyes 1.1.1 C-I--- +3rd party packages xwd 1.0.6 C-I--- +3rd party packages zsh 5.2 C-I--- Linked against ncursesw + + Midipix roadmap/TODO list + Last update: Fri, 03 Jun 2016 12:47:13 +0000 + +midipix alpha release: the final stretch +======================================== + +my.own.tasks@midipix.org +------------------------ + +* ofd tables: additional bucket allocation as needed. +* `ls -R //c`: check for the cause of individual failures. + (might be related to the above ofd bucket allocation). +* integrate clone and the initial ldso implementation. +* integrate the signal queue, check signal implementation for + semantic completion, especially in the context of multi-threaded + applications. +* implement /dev/random and /dev/urandom, as well as other virtual + folders needed by core applications. +* implement the scheduler functions. +* implement (possibly as stubs) missing system calls, fix existing + system calls as needed by the core applications. +* toolchain: provided the few interfaces missing for C++ support. +* porting of mintty. + + +porting and other release-related tasks +--------------------------------------- + +* testing of ncurses. +* testing of bash and dash when built with ncurses. +* testing of all of the coreutils, seeing which ones fail due to + a missing virtual file or folder, which ones fail due to a missing + system call (crash), and which ones fail due to an incomplete or + incorrect system call. +* porting of gdb. + +vim:expandtab sw=8 ts=8 tw=0 nowrap diff --git a/etc/TESTED_ON b/etc/TESTED_ON new file mode 100644 index 00000000..2989ae30 --- /dev/null +++ b/etc/TESTED_ON @@ -0,0 +1,5 @@ +Arch Linux 2016.02.01 (x86_64) +CentOS v7.2.1511 (Core) (x86_64) +Debian GNU/Linux v8.5 (stable) (jessie) (x86_64) +Exherbo Linux (x86_64-pc-linux-musl) (x86_64) +openSUSE 20150612 (Tumbleweed) (x86_64) diff --git a/etc/build.usage b/etc/build.usage new file mode 100644 index 00000000..c513c82c --- /dev/null +++ b/etc/build.usage @@ -0,0 +1,49 @@ +usage: ./build.sh [-x] [-a nt32|nt64] [-b debug|release] [-c] [-h] [-n] + [-r package[,...][:step]] [-t[.gz|.bz2|.xz] [-v] + [[ ...]] + -x Set the xtrace sh(1)ell option for debugging purposes. + -a nt32|nt64 Selects 32-bit or 64-bit architecture; defaults to nt64. + -b debug|release Selects debug or release build; defaults to debug. + This currently only controls CFLAGS. + -c Clean ${PREFIX} before processing build scripts. + -h Show this screen. + -n Perform dry run. + -r package[,...][:step] Restart the specified comma-separated build(s) completely or at + the optionally specified step. Currently defined steps are: + fetch extract build_dir autoconf patch configure clean build install + -t[.gz|.bz2|.xz] Produce binary distribution and source tarballs containing ${PREFIX} + sans ${WORKDIR} and ${PREFIX}/src/midipix_build and ${WORKDIR} sans top- + level regular files at the end of a build with zero failures. The + tarballs will be compressed with either gzip, bzip2, or xz and signed + with GPG; the default compression is xz. + -v Be verbose; this currently only affects secure_{cd,rm}() and insecure_mkdir(). + [ ...] One of: + host_toolchain, native_toolchain, runtime, lib_packages, + leaf_packages, world, or devroot. + + ${HOME}/midipix_build.vars, ../midipix_build.vars, and build.vars are sourced + if they exist. + + Packages that are built by pkg.build will apply local patches in ${WORKDIR} + named ${PKG_SUBDIR}.local.patch. + + Examples: + ./build.sh -r coreutils + Completely restart the coreutils build. + + ./build.sh -r coreutils:configure,build,install + Restart the configure, build, and install steps of the coreutils build. + + ./build.sh -r psxscl GITROOT_HEAD=... PKG_PSXSCL_CFLAGS_CONFIGURE_EXTRA=-DPSX_INTERNAL_STRACE + Build psxscl from the internal repository with strace enabled. + + ./build.sh -c -r ALL GITROOT_HEAD=... + Clean ${PREFIX} and forcibly rebuild everything. + +This script has been tested on the following platforms: +Alpine v3.4 (20160917_17:50) (x86_64) +Arch Linux 2016.02.01 (x86_64) +CentOS v7.2.1511 (Core) (x86_64) +Debian GNU/Linux v8.5 (stable) (jessie) (x86_64) +Exherbo Linux (x86_64-pc-linux-musl) (x86_64) +openSUSE 20150612 (Tumbleweed) (x86_64) diff --git a/etc/config.cache b/etc/config.cache new file mode 100644 index 00000000..2910ce71 --- /dev/null +++ b/etc/config.cache @@ -0,0 +1,166 @@ +# autoconf +ac_cv_buggy_getaddrinfo=no +ac_cv_func_calloc_0_nonnull=yes +ac_cv_func_chown_works=yes +ac_cv_func_getgroups_works=yes +ac_cv_func_malloc_0_nonnull=yes +ac_cv_func_strnlen_working=yes +ac_cv_func_mmap_fixed_mapped=yes +ac_cv_func_strcoll_works=yes +ac_cv_func_working_mktime=yes +ac_cv_file__dev_ptmx=yes +ac_cv_file__dev_ptc=no +gt_cv_int_divbyzero_sigfpe=yes + +# gnulib +gl_cv_func_cbrtl_ieee=yes +gl_cv_func_ceilf_ieee=yes +gl_cv_func_ceil_ieee=yes +gl_cv_func_ceill_ieee=yes +gl_cv_func_chown_ctime_works=yes +gl_cv_func_chown_slash_works=yes +gl_cv_func_exp2l_ieee=yes +gl_cv_func_expm1_ieee=yes +gl_cv_func_fcntl_f_dupfd_works=yes +gl_cv_func_fdopendir_works=yes +gl_cv_func_floorf_ieee=yes +gl_cv_func_fflush_stdin=yes +gl_cv_func_fmaf_works=yes +gl_cv_func_fmal_works=yes +gl_cv_func_fma_works=yes +gl_cv_func_fmodf_ieee=yes +gl_cv_func_fmod_ieee=yes +gl_cv_func_fmodl_ieee=yes +gl_cv_func_fpurge_works=yes +gl_cv_func_fseeko=yes +gl_cv_func_futimens_works=yes +gl_cv_func_futimesat_works=yes +gl_cv_func_getgroups_works=yes +gl_cv_func_gettimeofday_clobber=no +gl_cv_func_hypotf_ieee=yes +gl_cv_func_hypotl_ieee=yes +gl_cv_func_hypot_ieee=yes +gl_cv_func_isfinitel_works=yes +gl_cv_func_isnanl_works=yes +gl_cv_func_linkat_slash=yes +gl_cv_func_link_works=yes +gl_cv_func_log10f_ieee=yes +gl_cv_func_log10_ieee=yes +gl_cv_func_log1pf_ieee=yes +gl_cv_func_log1p_ieee=yes +gl_cv_func_log1pl_ieee=yes +gl_cv_func_log2f_ieee=yes +gl_cv_func_log2_ieee=yes +gl_cv_func_logf_ieee=yes +gl_cv_func_log_ieee=yes +gl_cv_func_lstat_dereferences_slashed_symlink=yes +gl_cv_func_mbrlen_empty_input=yes +gl_cv_func_mbrtowc_empty_input=yes +gl_cv_func_memchr_works=yes +gl_cv_func_memmem_works_fast=yes +gl_cv_func_mkdir_trailing_dot_works=yes +gl_cv_func_mkdir_trailing_slash_works=yes +gl_cv_func_mkfifo_works=yes +gl_cv_func_mknod_works=yes +gl_cv_func_modff_ieee=yes +gl_cv_func_modf_ieee=yes +gl_cv_func_modfl_ieee=yes +gl_cv_func_nanosleep=yes +gl_cv_func_open_directory_works=yes +gl_cv_func_perror_works=yes +gl_cv_func_printf_directive_a=yes +gl_cv_func_printf_directive_f=yes +gl_cv_func_printf_directive_n=yes +gl_cv_func_printf_enomem=yes +gl_cv_func_printf_flag_zero=yes +gl_cv_func_printf_infinite_long_double=yes +gl_cv_func_printf_infinite=yes +gl_cv_func_printf_sizes_c99=yes +gl_cv_func_pselect_detects_ebadf=yes +gl_cv_func_ptsname_sets_errno=yes +gl_cv_func_readlink_works=yes +gl_cv_func_realpath_works=yes +gl_cv_func_remainderf_ieee=yes +gl_cv_func_remainder_ieee=yes +gl_cv_func_remainderl_ieee=yes +gl_cv_func_rename_dest_works=yes +gl_cv_func_rename_link_works=yes +gl_cv_func_rename_slash_dst_works=yes +gl_cv_func_rename_slash_src_works=yes +gl_cv_func_rmdir_works=yes +gl_cv_func_roundf_ieee=yes +gl_cv_func_round_ieee=yes +gl_cv_func_select_detects_ebadf=yes +gl_cv_func_setenv_works=yes +gl_cv_func_signbit_gcc=yes +gl_cv_func_signbit=yes +gl_cv_func_sleep_works=yes +gl_cv_func_snprintf_directive_n=yes +gl_cv_func_snprintf_retval_c99=yes +gl_cv_func_snprintf_truncation_c99=yes +gl_cv_func_stat_dir_slash=yes +gl_cv_func_stat_file_slash=yes +gl_cv_func_stpncpy=yes +gl_cv_func_strcasestr_linear=yes +gl_cv_func_strchrnul_works=yes +gl_cv_func_strerror_0_works=yes +gl_cv_func_strstr_linear=yes +gl_cv_func_strtod_works=yes +gl_cv_func_svid_putenv=yes +gl_cv_func_symlink_works=yes +gl_cv_func_tdelete_works=yes +gl_cv_func_truncf_ieee=yes +gl_cv_func_trunc_ieee=yes +gl_cv_func_truncl_ieee=yes +gl_cv_func_tzset_clobber=no +gl_cv_func_ungetc_works=yes +gl_cv_func_unlink_honors_slashes=yes +gl_cv_func_unsetenv_works=yes +gl_cv_func_usleep_works=yes +gl_cv_func_utimensat_works=yes +gl_cv_func_vsnprintf_posix=yes +gl_cv_func_vsnprintf_zerosize_c99=yes +gl_cv_func_vsprintf_posix=yes +gl_cv_func_wcwidth_works=yes +gl_cv_func_working_getdelim=yes +gl_cv_func_working_mkstemp=yes +gl_cv_func_working_mktime=yes +gl_cv_func_working_strerror=yes +ac_cv_func___fseterr=yes +gl_cv_func_getcwd_null=yes +gl_cv_struct_dirent_d_ino=yes + +# bash +bash_cv_func_sigsetjmp=present +bash_cv_getcwd_malloc=yes +bash_cv_job_control_missing=present +bash_cv_printf_a_format=yes +bash_cv_sys_named_pipes=present +bash_cv_ulimit_maxfds=yes +bash_cv_under_sys_siglist=yes +bash_cv_unusable_rtsigs=no + +# libX11 +xorg_cv_malloc0_returns_null=yes + +# mc +ac_list_mounted_fs=found + +# procps_ng +ac_cv_func_realloc_0_nonnull=yes + +# vim +ac_cv_small_wchar_t=no +ac_x_header_dirs=${PKG_PREFIX}/include +vim_cv_bcopy_handles_overlap=yes +vim_cv_getcwd_broken=no +vim_cv_memcpy_handles_overlap=no +vim_cv_memmove_handles_overlap=yes +vim_cv_stat_ignores_slash=no +vim_cv_terminfo=yes +vim_cv_toupper_broken=no +vim_cv_tty_group=tty +vim_cv_tty_mode=0666 + +# libevent +ac_pe_target=true diff --git a/etc/config.sub b/etc/config.sub new file mode 100644 index 00000000..9feb73bf --- /dev/null +++ b/etc/config.sub @@ -0,0 +1,1823 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright 1992-2016 Free Software Foundation, Inc. + +timestamp='2016-06-20' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 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 +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). + + +# Please send patches to . +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS + +Canonicalize a configuration name. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright 1992-2016 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo $1 + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +# Here we must recognize all the valid KERNEL-OS combinations. +maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +case $maybe_os in + nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ + linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ + knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ + kopensolaris*-gnu* | \ + storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + android-linux) + os=-linux-android + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown + ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] + then os=`echo $1 | sed 's/.*-/-/'` + else os=; fi + ;; +esac + +### Let's recognize common machines as not being operating systems so +### that things like config.sub decstation-3100 work. We also +### recognize some manufacturers as not being operating systems, so we +### can provide default operating systems below. +case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ + -apple | -axis | -knuth | -cray | -microblaze*) + os= + basic_machine=$1 + ;; + -bluegene*) + os=-cnk + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 + ;; + -scout) + ;; + -wrs) + os=-vxworks + basic_machine=$1 + ;; + -chorusos*) + os=-chorusos + basic_machine=$1 + ;; + -chorusrdb) + os=-chorusrdb + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco6) + os=-sco5v6 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5) + os=-sco3.2v5 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -udk*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*178) + os=-lynxos178 + ;; + -lynx*5) + os=-lynxos5 + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + ;; + -windowsnt*) + os=`echo $os | sed -e 's/windowsnt/winnt/'` + ;; + -psos*) + os=-psos + ;; + -mint | -mint[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; +esac + +# Decode aliases for certain CPU-COMPANY combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ + | aarch64 | aarch64_be \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ + | arc | arceb \ + | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ + | avr | avr32 \ + | ba \ + | be32 | be64 \ + | bfin \ + | c4x | c8051 | clipper \ + | d10v | d30v | dlx | dsp16xx \ + | e2k | epiphany \ + | fido | fr30 | frv | ft32 \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | hexagon \ + | i370 | i860 | i960 | ia64 \ + | ip2k | iq2000 \ + | k1om \ + | le32 | le64 \ + | lm32 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ + | mips64octeon | mips64octeonel \ + | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa32r6 | mipsisa32r6el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64r6 | mipsisa64r6el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipsr5900 | mipsr5900el \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | moxie \ + | mt \ + | msp430 \ + | nds32 | nds32le | nds32be \ + | nios | nios2 | nios2eb | nios2el \ + | ns16k | ns32k \ + | open8 | or1k | or1knd | or32 \ + | pdp10 | pdp11 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle \ + | pyramid \ + | riscv32 | riscv64 \ + | rl78 | rx \ + | score \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ + | spu \ + | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ + | ubicom32 \ + | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ + | visium \ + | we32k \ + | x86 | xc16x | xstormy16 | xtensa \ + | z8k | z80) + basic_machine=$basic_machine-unknown + ;; + c54x) + basic_machine=tic54x-unknown + ;; + c55x) + basic_machine=tic55x-unknown + ;; + c6x) + basic_machine=tic6x-unknown + ;; + leon|leon[3-9]) + basic_machine=sparc-$basic_machine + ;; + m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + ;; + ms1) + basic_machine=mt-unknown + ;; + + strongarm | thumb | xscale) + basic_machine=arm-unknown + ;; + xgate) + basic_machine=$basic_machine-unknown + os=-none + ;; + xscaleeb) + basic_machine=armeb-unknown + ;; + + xscaleel) + basic_machine=armel-unknown + ;; + + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i*86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ + | aarch64-* | aarch64_be-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* | avr32-* \ + | ba-* \ + | be32-* | be64-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* \ + | c8051-* | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | e2k-* | elxsi-* \ + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | hexagon-* \ + | i*86-* | i860-* | i960-* | ia64-* \ + | ip2k-* | iq2000-* \ + | k1om-* \ + | le32-* | le64-* \ + | lm32-* \ + | m32c-* | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ + | microblaze-* | microblazeel-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ + | mips64octeon-* | mips64octeonel-* \ + | mips64orion-* | mips64orionel-* \ + | mips64r5900-* | mips64r5900el-* \ + | mips64vr-* | mips64vrel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa32r6-* | mipsisa32r6el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64r6-* | mipsisa64r6el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipsr5900-* | mipsr5900el-* \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ + | msp430-* \ + | nds32-* | nds32le-* | nds32be-* \ + | nios-* | nios2-* | nios2eb-* | nios2el-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ + | open8-* \ + | or1k*-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ + | pyramid-* \ + | riscv32-* | riscv64-* \ + | rl78-* | romp-* | rs6000-* | rx-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ + | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ + | tahoe-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tile*-* \ + | tron-* \ + | ubicom32-* \ + | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ + | vax-* \ + | visium-* \ + | we32k-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* \ + | xstormy16-* | xtensa*-* \ + | ymp-* \ + | z8k-* | z80-*) + ;; + # Recognize the basic CPU types without company name, with glob match. + xtensa*) + basic_machine=$basic_machine-unknown + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 386bsd) + basic_machine=i386-unknown + os=-bsd + ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + a29khif) + basic_machine=a29k-amd + os=-udi + ;; + abacus) + basic_machine=abacus-unknown + ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amd64) + basic_machine=x86_64-pc + ;; + amd64-*) + basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-unknown + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=-amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=-bsd + ;; + aros) + basic_machine=i386-pc + os=-aros + ;; + asmjs) + basic_machine=asmjs-unknown + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + blackfin) + basic_machine=bfin-unknown + os=-linux + ;; + blackfin-*) + basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + bluegene*) + basic_machine=powerpc-ibm + os=-cnk + ;; + c54x-*) + basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c55x-*) + basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c6x-*) + basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; + cegcc) + basic_machine=arm-unknown + os=-cegcc + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | j90) + basic_machine=j90-cray + os=-unicos + ;; + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16 | cr16-*) + basic_machine=cr16-unknown + os=-elf + ;; + crds | unos) + basic_machine=m68k-crds + ;; + crisv32 | crisv32-* | etraxfs*) + basic_machine=crisv32-axis + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + decsystem10* | dec10*) + basic_machine=pdp10-dec + os=-tops10 + ;; + decsystem20* | dec20*) + basic_machine=pdp10-dec + os=-tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + dicos) + basic_machine=i686-pc + os=-dicos + ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2* | dpx2*-bull) + basic_machine=m68k-bull + os=-sysv3 + ;; + e500v[12]) + basic_machine=powerpc-unknown + os=$os"spe" + ;; + e500v[12]-*) + basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + os=$os"spe" + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=-ose + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + go32) + basic_machine=i386-pc + os=-go32 + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=-xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + basic_machine=hppa1.1-hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hppa-next) + os=-nextstep3 + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=-osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=-proelf + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; + i*86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; + i*86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; + i*86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; + i*86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; + i386mach) + basic_machine=i386-mach + os=-mach + ;; + i386-vsta | vsta) + basic_machine=i386-unknown + os=-vsta + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + leon-*|leon[3-9]-*) + basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` + ;; + m68knommu) + basic_machine=m68k-unknown + os=-linux + ;; + m68knommu-*) + basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + microblaze*) + basic_machine=microblaze-xilinx + ;; + mingw64) + basic_machine=x86_64-pc + os=-mingw64 + ;; + mingw32) + basic_machine=i686-pc + os=-mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + os=-mingw32ce + ;; + miniframe) + basic_machine=m68000-convergent + ;; + *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; + monitor) + basic_machine=m68k-rom68k + os=-coff + ;; + morphos) + basic_machine=powerpc-unknown + os=-morphos + ;; + moxiebox) + basic_machine=moxie-unknown + os=-moxiebox + ;; + msdos) + basic_machine=i386-pc + os=-msdos + ;; + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; + msys) + basic_machine=i686-pc + os=-msys + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; + nacl) + basic_machine=le32-unknown + os=-nacl + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + netbsd386) + basic_machine=i386-unknown + os=-netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=-linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + necv70) + basic_machine=v70-nec + os=-sysv + ;; + next | m*-next ) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + mon960) + basic_machine=i960-intel + os=-mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=-nonstopux + ;; + np1) + basic_machine=np1-gould + ;; + neo-tandem) + basic_machine=neo-tandem + ;; + nse-tandem) + basic_machine=nse-tandem + ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; + openrisc | openrisc-*) + basic_machine=or32-unknown + ;; + os400) + basic_machine=powerpc-ibm + os=-os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose + ;; + os68k) + basic_machine=m68k-none + os=-os68k + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + parisc) + basic_machine=hppa-unknown + os=-linux + ;; + parisc-*) + basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pc98) + basic_machine=i386-pc + ;; + pc98-*) + basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium | p5 | k5 | k6 | nexgen | viac3) + basic_machine=i586-pc + ;; + pentiumpro | p6 | 6x86 | athlon | athlon_*) + basic_machine=i686-pc + ;; + pentiumii | pentium2 | pentiumiii | pentium3) + basic_machine=i686-pc + ;; + pentium4) + basic_machine=i786-pc + ;; + pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumpro-* | p6-* | 6x86-* | athlon-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium4-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=power-ibm + ;; + ppc | ppcbe) basic_machine=powerpc-unknown + ;; + ppc-* | ppcbe-*) + basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64) basic_machine=powerpc64-unknown + ;; + ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64le | powerpc64little | ppc64-le | powerpc64-little) + basic_machine=powerpc64le-unknown + ;; + ppc64le-* | powerpc64little-*) + basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + pw32) + basic_machine=i586-unknown + os=-pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + os=-rdos + ;; + rdos32) + basic_machine=i386-pc + os=-rdos + ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff + ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + s390 | s390-*) + basic_machine=s390-ibm + ;; + s390x | s390x-*) + basic_machine=s390x-ibm + ;; + sa29200) + basic_machine=a29k-amd + os=-udi + ;; + sb1) + basic_machine=mipsisa64sb1-unknown + ;; + sb1el) + basic_machine=mipsisa64sb1el-unknown + ;; + sde) + basic_machine=mipsisa32-sde + os=-elf + ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; + sequent) + basic_machine=i386-sequent + ;; + sh) + basic_machine=sh-hitachi + os=-hms + ;; + sh5el) + basic_machine=sh5le-unknown + ;; + sh64) + basic_machine=sh64-unknown + ;; + sparclite-wrs | simso-wrs) + basic_machine=sparclite-wrs + os=-vxworks + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + st2000) + basic_machine=m68k-tandem + ;; + stratus) + basic_machine=i860-stratus + os=-sysv4 + ;; + strongarm-* | thumb-*) + basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + sv1) + basic_machine=sv1-cray + os=-unicos + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + t3e) + basic_machine=alphaev5-cray + os=-unicos + ;; + t90) + basic_machine=t90-cray + os=-unicos + ;; + tile*) + basic_machine=$basic_machine-unknown + os=-linux-gnu + ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; + toad1) + basic_machine=pdp10-xkl + os=-tops20 + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + tpf) + basic_machine=s390x-ibm + os=-tpf + ;; + udi29k) + basic_machine=a29k-amd + os=-udi + ;; + ultra3) + basic_machine=a29k-nyu + os=-sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + os=-none + ;; + vaxv) + basic_machine=vax-dec + os=-sysv + ;; + vms) + basic_machine=vax-dec + os=-vms + ;; + vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=-vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=-vxworks + ;; + w65*) + basic_machine=w65-wdc + os=-none + ;; + w89k-*) + basic_machine=hppa1.1-winbond + os=-proelf + ;; + xbox) + basic_machine=i686-pc + os=-mingw32 + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + xscale-* | xscalee[bl]-*) + basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` + ;; + ymp) + basic_machine=ymp-cray + os=-unicos + ;; + z8k-*-coff) + basic_machine=z8k-unknown + os=-sim + ;; + z80-*-coff) + basic_machine=z80-unknown + os=-sim + ;; + none) + basic_machine=none-none + os=-none + ;; + +# Here we handle the default manufacturer of certain CPU types. It is in +# some cases the only manufacturer, in others, it is the most popular. + w89k) + basic_machine=hppa1.1-winbond + ;; + op50n) + basic_machine=hppa1.1-oki + ;; + op60c) + basic_machine=hppa1.1-oki + ;; + romp) + basic_machine=romp-ibm + ;; + mmix) + basic_machine=mmix-knuth + ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; + pdp10) + # there are many clones, so DEC is not a safe bet + basic_machine=pdp10-unknown + ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; + sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; + sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) + basic_machine=sparc-sun + ;; + cydra) + basic_machine=cydra-cydrome + ;; + orion) + basic_machine=orion-highlevel + ;; + orion105) + basic_machine=clipper-highlevel + ;; + mac | mpw | mac-mpw) + basic_machine=m68k-apple + ;; + pmac | pmac-mpw) + basic_machine=powerpc-apple + ;; + *-unknown) + # Make sure to match an already-canonicalized machine name. + ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $basic_machine in + *-digital*) + basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + ;; + *-commodore*) + basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if [ x"$os" != x"" ] +then +case $os in + # First match some system type aliases + # that might get confused with valid system types. + # -solaris* is a basic system type, with this one exception. + -auroraux) + os=-auroraux + ;; + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; + -solaris) + os=-solaris2 + ;; + -svr4*) + os=-sysv4 + ;; + -unixware*) + os=-sysv4.2uw + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; + # First accept the basic system types. + # The portable systems comes first. + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ + | -sym* | -kopensolaris* | -plan9* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* | -aros* | -cloudabi* | -sortix* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ + | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* | -cegcc* \ + | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ + | -linux-newlib* | -linux-musl* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ + | -onefs* | -tirtos* | -phoenix*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) + case $basic_machine in + x86-* | i*86-*) + ;; + *) + os=-nto$os + ;; + esac + ;; + -nto-qnx*) + ;; + -nto*) + os=`echo $os | sed -e 's|nto|nto-qnx|'` + ;; + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo $os | sed -e 's|mac|macos|'` + ;; + -linux-dietlibc) + os=-linux-dietlibc + ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo $os | sed -e 's|sunos6|solaris3|'` + ;; + -opened*) + os=-openedition + ;; + -os400*) + os=-os400 + ;; + -wince*) + os=-wince + ;; + -osfrose*) + os=-osfrose + ;; + -osf*) + os=-osf + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -atheos*) + os=-atheos + ;; + -syllable*) + os=-syllable + ;; + -386bsd) + os=-bsd + ;; + -ctix* | -uts*) + os=-sysv + ;; + -nova*) + os=-rtmk-nova + ;; + -ns2 ) + os=-nextstep2 + ;; + -nsk*) + os=-nsk + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -tpf*) + os=-tpf + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -ose*) + os=-ose + ;; + -es1800*) + os=-ose + ;; + -xenix) + os=-xenix + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -aros*) + os=-aros + ;; + -zvmoe) + os=-zvmoe + ;; + -dicos*) + os=-dicos + ;; + -nacl*) + ;; + -ios) + ;; + -none) + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $os | sed 's/[^-]*-//'` + echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + exit 1 + ;; +esac +else + +# Here we handle the default operating systems that come with various machines. +# The value should be what the vendor currently ships out the door with their +# machine or put another way, the most popular os provided with the machine. + +# Note that if you're going to try to match "-MANUFACTURER" here (say, +# "-sun"), then you have to tell the case statement up towards the top +# that MANUFACTURER isn't an operating system. Otherwise, code above +# will signal an error saying that MANUFACTURER isn't an operating +# system, and we'll never get to this point. + +case $basic_machine in + score-*) + os=-elf + ;; + spu-*) + os=-elf + ;; + *-acorn) + os=-riscix1.2 + ;; + arm*-rebel) + os=-linux + ;; + arm*-semi) + os=-aout + ;; + c4x-* | tic4x-*) + os=-coff + ;; + c8051-*) + os=-elf + ;; + hexagon-*) + os=-elf + ;; + tic54x-*) + os=-coff + ;; + tic55x-*) + os=-coff + ;; + tic6x-*) + os=-coff + ;; + # This must come before the *-dec entry. + pdp10-*) + os=-tops20 + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + ;; + m68*-cisco) + os=-aout + ;; + mep-*) + os=-elf + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + or32-*) + os=-coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + *-be) + os=-beos + ;; + *-haiku) + os=-haiku + ;; + *-ibm) + os=-aix + ;; + *-knuth) + os=-mmixware + ;; + *-wec) + os=-proelf + ;; + *-winbond) + os=-proelf + ;; + *-oki) + os=-proelf + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigaos + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next ) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-next) + os=-nextstep3 + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + f30[01]-fujitsu | f700-fujitsu) + os=-uxpv + ;; + *-rom68k) + os=-coff + ;; + *-*bug) + os=-coff + ;; + *-apple) + os=-macos + ;; + *-atari*) + os=-mint + ;; + *) + os=-none + ;; +esac +fi + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +vendor=unknown +case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -cnk*|-aix*) + vendor=ibm + ;; + -beos*) + vendor=be + ;; + -hpux*) + vendor=hp + ;; + -mpeix*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs* | -opened*) + vendor=ibm + ;; + -os400*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -tpf*) + vendor=ibm + ;; + -vxsim* | -vxworks* | -windiss*) + vendor=wrs + ;; + -aux*) + vendor=apple + ;; + -hms*) + vendor=hitachi + ;; + -mpw* | -macos*) + vendor=apple + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; + -vos*) + vendor=stratus + ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; +esac + +echo $basic_machine$os +exit + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/etc/midipix.sh b/etc/midipix.sh new file mode 100755 index 00000000..cc168d18 --- /dev/null +++ b/etc/midipix.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +set -o noglob; +if [ -z "${PATH##/bin:*}" \ +-a -z "${PATH##*:/bin:*}" \ +-a -z "${PATH##*:/bin}" ]; then + export PATH="/bin${PATH:+:${PATH}}"; +fi; +while getopts m __; do +case ${__} in +m) MIDIPIX_DNAME_DIST=minipix; ;; +*) echo "usage: $0 [-m] [Cygwin pathname to Midipix root]"; + echo " -m: use Minipix distribution"; exit 0; +esac; done; +if [ -n "${1}" ]; then + MIDIPIX_PATH=$(cygpath -am "${1}"); cd ${MIDIPIX_PATH} || exit 1; +else + MIDIPIX_PATH=$(cygpath -am .); +fi; +printf "%-35s: %s\n" "Absolute Midipix pathname" "${MIDIPIX_PATH}"; +printf "%-35s: %s\n" "Distribution name" "${MIDIPIX_DNAME_DIST:=native}"; +if [ -f libpsxscl.log ]; then + echo Found libpsxscl.log, copying to libpsxscl.last. + if ! cp -p -- libpsxscl.log libpsxscl.last; then + echo "(cp(1) returned ${?}, ignored.)"; + fi; +fi; +if [ "$(uname -o)" = "Msys" ]; then + export MSYS2_ARG_CONV_EXCL="*"; +fi; +mintty -h always -s 120,80 -e /bin/sh -c " + set -o errexit; + env PATH=${MIDIPIX_PATH}/${MIDIPIX_DNAME_DIST}/lib \ + ${MIDIPIX_DNAME_DIST}/bin/ntctty.exe -e \ + ${MIDIPIX_DNAME_DIST}/bin/chroot ${MIDIPIX_DNAME_DIST} \ + /bin/env PATH=/bin:/lib bash" & +sleep ${SLEEP_DELAY:=0.25}; +printf "%-35s: %s\n" "ntctty PID" "$(ps -W | awk '$NF ~ /ntctty\.exe$/{print $1}')"; + +# vim:filetype=sh diff --git a/etc/midipix_check.sh b/etc/midipix_check.sh new file mode 100755 index 00000000..f669de44 --- /dev/null +++ b/etc/midipix_check.sh @@ -0,0 +1,51 @@ +#!/bin/sh + +set -o errexit -o noglob; +if [ "${1}" = "-m" ]; then + MIDIPIX_DNAME_DIST=minipix; shift; +fi; +if [ -n "${1}" ]; then + MIDIPIX_PATH=$(cygpath -am "${1}"); +else + MIDIPIX_PATH=$(cygpath -am .); +fi; +: ${MIDIPIX_DNAME_DIST:=native}; +echo "Absolute Midipix pathname: ${MIDIPIX_PATH}"; +echo "Distribution name : ${MIDIPIX_DNAME_DIST}"; +printf "%-85s" "Checking if all binaries are present..."; +for __ in chroot env ntctty.exe; do + if [ ! -e ${MIDIPIX_PATH}/${MIDIPIX_DNAME_DIST}/bin/${__} ]; then + printf "\nerror: missing file ${MIDIPIX_PATH}/${MIDIPIX_DNAME_DIST}/bin/${__}\n"; + exit 2; + fi; +done; +printf "\033[97m[ \033[92mOK \033[97m]\033[0m\n"; +printf "%-85s" "Checking ${MIDIPIX_PATH}/${MIDIPIX_DNAME_DIST}/lib for symbolic links..."; +if [ -n "$(find ${MIDIPIX_DNAME_DIST}/lib \ + -maxdepth 1 -name \*.so -type l -print -quit)" ]; then + echo; + echo "Warning: ${MIDIPIX_PATH}/${MIDIPIX_DNAME_DIST}/lib contains shared objects (library" + echo "images) that are symbolic links. This is not supported by Midipix at" + echo "present and commonly occurs if the binary distribution tarball was" + echo "extracted by an application that does not support symbolic links" + echo "correctly. This also occurs when a binary distribution was built locally." + printf "Convert all shared object symbolic links to hard links? (y|N) "; + read __; + case "${__}" in + [yY]) break; ;; + *) echo "Exiting."; exit 3; ;; + esac; + for LINK_NAME in $(find ${MIDIPIX_PATH}/${MIDIPIX_DNAME_DIST}/lib \ + -maxdepth 1 -name \*.so -type l); do + LINK_TARGET="$(readlink -- "${LINK_NAME}")"; + if [ -f "${MIDIPIX_PATH}/native/lib/${LINK_TARGET}" ]; then + echo rm -f -- "${LINK_NAME}"; + rm -f -- "${LINK_NAME}"; + echo ln -f -- "${LINK_TARGET}" "${LINK_NAME}"; + ln -f -- "${LINK_TARGET}" "${LINK_NAME}"; + fi; + done; +fi; +printf "\033[97m[ \033[92mOK \033[97m]\033[0m\n"; + +# vim:filetype=sh diff --git a/etc/midipix_shortcut.vbs b/etc/midipix_shortcut.vbs new file mode 100644 index 00000000..ce8e10d4 --- /dev/null +++ b/etc/midipix_shortcut.vbs @@ -0,0 +1,14 @@ +Set WshShell = CreateObject("WScript.Shell") +If WScript.Arguments.Count = 0 Then + CygwinPath = "C:\cygwin64" +Else + CygwinPath = WScript.Arguments(0) +End If +Set fso = CreateObject("Scripting.FileSystemObject") +Set oMyShortCut = WshShell.CreateShortcut(WshShell.CurrentDirectory + "\Midipix shell.lnk") +oMyShortCut.Arguments = "midipix.sh" +oMyShortcut.IconLocation = CygwinPath + "\Cygwin-Terminal.ico" +oMyShortCut.TargetPath = CygwinPath + "\bin\sh.exe" +oMyShortCut.WindowStyle = 4 +oMyShortCut.WorkingDirectory = WshShell.CurrentDirectory +oMyShortCut.Save diff --git a/findutils-4.5.14.local.patch b/findutils-4.5.14.local.patch deleted file mode 100644 index a28d9dc2..00000000 --- a/findutils-4.5.14.local.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff -ru --new-file a/configure b/configure ---- a/configure 2014-07-19 06:24:44.000000000 -0400 -+++ b/configure 2015-05-31 23:05:19.895583486 -0400 -@@ -54948,3 +54950,23 @@ - $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} - fi - -+ -+cat >> config.h << EOF -+ -+#define HAVE_ENDPWENT 1 -+ -+#undef fchownat -+#undef fchdir -+#undef fseeko -+#undef fstatat -+#undef getcwd -+#undef gmtime -+#undef localtime -+#undef lstat -+#undef malloc -+#undef memcmp -+#undef mktime -+#undef realloc -+#undef strnlen -+ -+EOF diff --git a/glib-2.46.2.local.patch b/glib-2.46.2.local.patch deleted file mode 100644 index 8153cb8a..00000000 --- a/glib-2.46.2.local.patch +++ /dev/null @@ -1,170 +0,0 @@ ---- glib-2.46.2/configure.orig 2015-11-06 22:28:54.000000000 +0000 -+++ glib-2.46.2/configure 2016-03-06 18:55:06.490493143 +0000 -@@ -21737,33 +21737,7 @@ - if ${glib_cv_stack_grows+:} false; then : - $as_echo_n "(cached) " >&6 - else -- -- if test "$cross_compiling" = yes; then : -- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 --$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} --as_fn_error $? "cannot run test program while cross compiling --See \`config.log' for more details" "$LINENO" 5; } --else -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext --/* end confdefs.h. */ -- -- volatile int *a = 0, *b = 0; -- void f (int i) { volatile int x = 5; if (i == 0) b = &x; else f (i - 1); } -- int main () { volatile int y = 7; a = &y; f (100); return b > a ? 0 : 1; } -- --_ACEOF --if ac_fn_c_try_run "$LINENO"; then : - glib_cv_stack_grows=yes -- --else -- glib_cv_stack_grows=no -- --fi --rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ -- conftest.$ac_objext conftest.beam conftest.$ac_ext --fi -- -- - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glib_cv_stack_grows" >&5 - $as_echo "$glib_cv_stack_grows" >&6; } -@@ -25142,37 +25116,7 @@ - if ${glib_cv_uscore+:} false; then : - $as_echo_n "(cached) " >&6 - else -- -- if test "$cross_compiling" = yes; then : -- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 --$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} --as_fn_error $? "cannot run test program while cross compiling --See \`config.log' for more details" "$LINENO" 5; } --else -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext --/* end confdefs.h. */ --#include -- int glib_underscore_test (void) { return 42; } -- int main() { -- void *f1 = (void*)0, *f2 = (void*)0, *handle; -- handle = dlopen ((void*)0, 0); -- if (handle) { -- f1 = dlsym (handle, "glib_underscore_test"); -- f2 = dlsym (handle, "_glib_underscore_test"); -- } return (!f2 || f1); -- } --_ACEOF --if ac_fn_c_try_run "$LINENO"; then : - glib_cv_uscore=yes --else -- glib_cv_uscore=no --fi --rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ -- conftest.$ac_objext conftest.beam conftest.$ac_ext --fi -- -- rm -f plugin.c plugin.$ac_objext plugin.lo -- - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glib_cv_uscore" >&5 - $as_echo "$glib_cv_uscore" >&6; } -@@ -26503,37 +26447,7 @@ - if ${ac_cv_func_posix_getpwuid_r+:} false; then : - $as_echo_n "(cached) " >&6 - else -- if test "$cross_compiling" = yes; then : -- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 --$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} --as_fn_error $? "cannot run test program while cross compiling --See \`config.log' for more details" "$LINENO" 5; } --else -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext --/* end confdefs.h. */ -- --#include --#include --int main () { -- char buffer[10000]; -- struct passwd pwd, *pwptr = &pwd; -- int error; -- errno = 0; -- error = getpwuid_r (0, &pwd, buffer, -- sizeof (buffer), &pwptr); -- return (error < 0 && errno == ENOSYS) -- || error == ENOSYS; --} --_ACEOF --if ac_fn_c_try_run "$LINENO"; then : - ac_cv_func_posix_getpwuid_r=yes --else -- ac_cv_func_posix_getpwuid_r=no --fi --rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ -- conftest.$ac_objext conftest.beam conftest.$ac_ext --fi -- - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_posix_getpwuid_r" >&5 - $as_echo "$ac_cv_func_posix_getpwuid_r" >&6; } -@@ -26594,37 +26508,7 @@ - if ${ac_cv_func_posix_getgrgid_r+:} false; then : - $as_echo_n "(cached) " >&6 - else -- if test "$cross_compiling" = yes; then : -- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 --$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} --as_fn_error $? "cannot run test program while cross compiling --See \`config.log' for more details" "$LINENO" 5; } --else -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext --/* end confdefs.h. */ -- --#include --#include --int main () { -- char buffer[10000]; -- struct group grp, *grpptr = &grp; -- int error; -- errno = 0; -- error = getgrgid_r (0, &grp, buffer, -- sizeof (buffer), &grpptr); -- return (error < 0 && errno == ENOSYS) -- || error == ENOSYS; --} --_ACEOF --if ac_fn_c_try_run "$LINENO"; then : - ac_cv_func_posix_getgrgid_r=yes --else -- ac_cv_func_posix_getgrgid_r=no --fi --rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ -- conftest.$ac_objext conftest.beam conftest.$ac_ext --fi -- - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_posix_getgrgid_r" >&5 - $as_echo "$ac_cv_func_posix_getgrgid_r" >&6; } -@@ -27053,7 +26937,7 @@ - } - _ACEOF - if ac_fn_c_try_compile "$LINENO"; then : -- glib_cv_eventfd=yes -+ glib_cv_eventfd=no - else - glib_cv_eventfd=no - fi ---- glib-2.46.2/gio/inotify/Makefile.in.orig 2015-11-06 23:28:59.000000000 +0100 -+++ glib-2.46.2/gio/inotify/Makefile.in 2016-09-07 05:20:16.670049836 +0200 -@@ -180,7 +180,7 @@ - "$(DESTDIR)$(installed_test_metadir)" \ - "$(DESTDIR)$(installed_testdir)" - LTLIBRARIES = $(installed_test_LTLIBRARIES) $(noinst_LTLIBRARIES) --libinotify_la_LIBADD = -+libinotify_la_LIBADD = -L../../glib -lglib-2.0 - am__objects_1 = - am_libinotify_la_OBJECTS = libinotify_la-inotify-kernel.lo \ - libinotify_la-inotify-sub.lo libinotify_la-inotify-path.lo \ diff --git a/gmp-5.1.3.local.patch b/gmp-5.1.3.local.patch deleted file mode 100644 index ecee6b99..00000000 --- a/gmp-5.1.3.local.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff -ru a/configfsf.sub b/configfsf.sub ---- a/configfsf.sub 2013-09-30 06:18:28.000000000 -0400 -+++ b/configfsf.sub 2015-05-28 00:18:19.772345286 -0400 -@@ -794,6 +794,9 @@ - microblaze*) - basic_machine=microblaze-xilinx - ;; -+ midipix) -+ os=-midipix -+ ;; - mingw64) - basic_machine=x86_64-pc - os=-mingw64 -@@ -1370,7 +1373,7 @@ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* | -cegcc* \ - | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ -- | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ -+ | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ - | -linux-newlib* | -linux-musl* | -linux-uclibc* \ - | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ diff --git a/gnupg-2.1.15.local.patch b/gnupg-2.1.15.local.patch deleted file mode 100644 index b0bf6ca3..00000000 --- a/gnupg-2.1.15.local.patch +++ /dev/null @@ -1,105 +0,0 @@ -diff -ru gnupg-2.1.15.orig/tests/inittests gnupg-2.1.15/tests/inittests ---- gnupg-2.1.15.orig/tests/inittests 2016-02-02 07:05:16.000000000 +0100 -+++ gnupg-2.1.15/tests/inittests 2016-10-19 18:09:36.112010000 +0200 -@@ -1,99 +1,3 @@ - #!/bin/sh --# Copyright (C) 2002 Free Software Foundation, Inc. --# --# This file is free software; as a special exception the author gives --# unlimited permission to copy and/or distribute it, with or without --# modifications, as long as this notice is preserved. --# --# This file is distributed in the hope that it will be useful, but --# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the --# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -- --set -e -- --sample_certs=' --cert_g10code_test1.pem --cert_g10code_pete1.pem --cert_g10code_theo1.pem --' -- --private_keys=' --32100C27173EF6E9C4E9A25D3D69F86D37A4F939 --' -- --clean_files=' --gpgsm.conf gpg-agent.conf trustlist.txt pubring.kbx --msg msg.sig msg.unsig --' -- -- --[ -z "$srcdir" ] && srcdir=. --[ -z "$GPGSM" ] && GPGSM=../sm/gpgsm -- --if [ -d $srcdir/samplekeys ] \ -- && grep TESTS_ENVIRONMENT Makefile >/dev/null 2>&1; then -- : --else -- # During make distclean the Makefile has already been removed, -- # so we need this extra test. -- if ! grep gnupg-test-directory testdir.stamp >/dev/null 2>&1; then -- echo "inittests: please cd to the tests directory first" >&2 -- exit 1 -- fi --fi -- --if [ "$1" = "--clean" ]; then -- if [ -d private-keys-v1.d ]; then -- rm private-keys-v1.d/* 2>/dev/null || true -- rmdir private-keys-v1.d -- fi -- rm ${clean_files} testdir.stamp 2>/dev/null || true -- exit 0 --fi -- --if [ "$GNUPGHOME" != "`/bin/pwd`" ]; then -- echo "inittests: please set GNUPGHOME to the test directory" >&2 -- exit 1 --fi -- --if [ -n "$GPG_AGENT_INFO" ]; then -- echo "inittests: please unset GPG_AGENT_INFO" >&2 -- exit 1 --fi -- --# A stamp file used with --clean --echo gnupg-test-directory > testdir.stamp -- -- --# Create the private key directy if it does not exists and copy --# the sample keys. --[ -d private-keys-v1.d ] || mkdir private-keys-v1.d --for i in ${private_keys}; do -- cat ${srcdir}/samplekeys/$i.key >private-keys-v1.d/$i.key --done -- --# Create the configuration scripts --# Note, die to an expired test certificate, we need to use --# the faked system time option. --cat > gpgsm.conf < gpg-agent.conf < trustlist.txt < /dev/null) -+ htop_config_script=$("${PKG_PREFIX}/bin/ncursesw6-config" --libs 2> /dev/null) - htop_script_success=no - htop_save_LDFLAGS="$LDFLAGS" - if test ! "x$htop_config_script" = x; then diff --git a/irssi-0.8.18.local.patch b/irssi-0.8.18.local.patch deleted file mode 100644 index 8c72336e..00000000 --- a/irssi-0.8.18.local.patch +++ /dev/null @@ -1,103 +0,0 @@ ---- irssi-0.8.18/src/core/servers.c.orig 2016-01-20 22:08:07.000000000 +0000 -+++ irssi-0.8.18/src/core/servers.c 2016-06-13 11:28:49.187797037 +0000 -@@ -407,6 +407,36 @@ - /* connect with unix socket */ - server_real_connect(server, NULL, server->connrec->address); - } else { -+ #ifdef __midipix__ -+ IPADDR ip4, ip6, *ip; -+ -+ connect_address = server->connrec->proxy != NULL ? -+ server->connrec->proxy : server->connrec->address; -+ if (net_gethostbyname(connect_address, &ip4, &ip6) == -1) { -+ g_warning("net_gethostbyname(): -1"); -+ g_free(server->tag); -+ g_free(server->nick); -+ return FALSE; -+ } else if (server->connrec->family == 0) { -+ /* prefer IPv4 addresses */ -+ ip = ip4.family != 0 ? &ip4 : &ip6; -+ } else if (server->connrec->family == AF_INET6) { -+ /* IPv6 address, use if possible */ -+ if (ip6.family != 0) { -+ ip = &ip6; -+ } else { -+ ip = &ip4; -+ } -+ } else { -+ /* IPv4 address, use if possible */ -+ if (ip4.family != 0) { -+ ip = &ip4; -+ } else { -+ ip = &ip6; -+ } -+ } -+ server_real_connect(server, ip, NULL); -+ #else - /* resolve host name */ - if (pipe(fd) != 0) { - g_warning("server_connect(): pipe() failed."); -@@ -433,6 +463,7 @@ - lookup_servers = g_slist_append(lookup_servers, server); - - signal_emit("server looking", 1, server); -+ #endif - } - return TRUE; - } ---- irssi-0.8.18/src/core/network.c.orig 2016-02-08 21:20:37.000000000 +0100 -+++ irssi-0.8.18/src/core/network.c 2016-06-17 16:34:16.870746400 +0200 -@@ -572,9 +572,13 @@ - int data; - socklen_t len = sizeof(data); - -+#ifndef __midipix__ - if (getsockopt(g_io_channel_unix_get_fd(handle), - SOL_SOCKET, SO_ERROR, (void *) &data, &len) == -1) - return -1; -+#else -+ data = 0; -+#endif - - return data; - } ---- irssi-0.8.18/src/core/pidwait.c.orig 2014-09-02 11:13:51.000000000 +0200 -+++ irssi-0.8.18/src/core/pidwait.c 2016-06-19 00:20:33.327763200 +0200 -@@ -39,8 +39,10 @@ - void pidwait_add(int pid) - { - if (g_hash_table_lookup(child_pids, GINT_TO_POINTER(pid)) == NULL) { -+#ifndef __midipix__ - int id = g_child_watch_add_full(10, pid, sig_child, NULL, NULL); - g_hash_table_insert(child_pids, GINT_TO_POINTER(pid), GINT_TO_POINTER(id)); -+#endif - pids = g_slist_append(pids, GINT_TO_POINTER(pid)); - } - } ---- irssi-0.8.18/src/fe-common/core/fe-exec.c.orig 2016-01-20 23:08:07.000000000 +0100 -+++ irssi-0.8.18/src/fe-common/core/fe-exec.c 2016-06-19 01:22:40.792090300 +0200 -@@ -288,6 +288,9 @@ - } - } - -+#ifdef __midipix__ -+static void sig_pidwait(void *pid, void *statusp); -+#endif - static void process_exec(PROCESS_REC *rec, const char *cmd) - { - const char *shell_args[4] = { "/bin/sh", "-c", NULL, NULL }; -@@ -535,6 +538,14 @@ - (GInputFunction) sig_exec_input_reader, - rec); - processes = g_slist_append(processes, rec); -+#ifdef __midipix__ -+ int status; -+ waitpid(rec->pid, &status, 0); -+ while (rec->read_tag != -1) { -+ sig_exec_input_reader(rec); -+ } -+ sig_pidwait((void *)rec->pid, &status); -+#endif - - if (rec->target == NULL && interactive) - rec->target_item = exec_wi_create(active_win, rec); diff --git a/john-1.8.0.local.patch b/john-1.8.0.local.patch deleted file mode 100644 index 21999942..00000000 --- a/john-1.8.0.local.patch +++ /dev/null @@ -1,155 +0,0 @@ -diff -ru a/src/DES_bs.c b/src/DES_bs.c ---- a/src/DES_bs.c 2012-07-14 09:36:44.000000000 -0400 -+++ b/src/DES_bs.c 2016-08-07 15:08:48.011369100 -0400 -@@ -52,7 +52,7 @@ - }; - - #if DES_BS_ASM --extern void DES_bs_init_asm(void); -+extern void DES_INTERNAL_CALL DES_bs_init_asm(void); - #endif - - void DES_bs_init(int LM, int cpt) -diff -ru a/src/DES_bs.h b/src/DES_bs.h ---- a/src/DES_bs.h 2013-05-06 02:19:49.000000000 -0400 -+++ b/src/DES_bs.h 2016-08-07 15:09:17.512056400 -0400 -@@ -35,6 +35,16 @@ - #define DES_bs_vector ARCH_WORD - #endif - -+#ifndef HAVE_INTERNAL_ATTR -+#define HAVE_INTERNAL_ATTR 0 -+#endif -+ -+#if HAVE_INTERNAL_ATTR -+#define DES_INTERNAL_CALL __attribute__((visibility("internal"))) -+#else -+#define DES_INTERNAL_CALL -+#endif -+ - /* - * All bitslice DES parameters combined into one struct for more efficient - * cache usage. Don't re-order unless you know what you're doing, as there -@@ -112,7 +122,7 @@ - #else - #define DES_bs_mt 0 - #define DES_bs_cpt 1 --extern DES_bs_combined DES_bs_all; -+extern DES_INTERNAL_CALL DES_bs_combined DES_bs_all; - #define for_each_t(n) - #define init_t() - #endif -@@ -120,7 +130,7 @@ - /* - * Initializes the internal structures. - */ --extern void DES_bs_init(int LM, int cpt); -+extern void DES_INTERNAL_CALL DES_bs_init(int LM, int cpt); - - /* - * Sets a salt for DES_bs_crypt(). -@@ -139,12 +149,12 @@ - /* - * Almost generic implementation: 24-bit salts, variable iteration count. - */ --extern void DES_bs_crypt(int count, int keys_count); -+extern void DES_INTERNAL_CALL DES_bs_crypt(int count, int keys_count); - - /* - * A simplified special-case implementation: 12-bit salts, 25 iterations. - */ --extern void DES_bs_crypt_25(int keys_count); -+extern void DES_INTERNAL_CALL DES_bs_crypt_25(int keys_count); - - /* - * Another special-case version: a non-zero IV, no salts, no iterations. ---- john-1.8.0/src/Makefile.orig 2013-05-29 23:21:25.000000000 +0000 -+++ john-1.8.0/src/Makefile 2016-09-11 21:19:18.930129331 +0000 -@@ -32,7 +32,7 @@ - # CFLAGS for use on the main john.c file only - CFLAGS_MAIN = $(CFLAGS) - ASFLAGS = -c $(OMPFLAGS) --LDFLAGS = -s $(OMPFLAGS) -+LDFLAGS = $(LDFLAGS_DEBUG) $(OMPFLAGS) - OPT_NORMAL = -funroll-loops - # Remove the "-Os" if you're using an ancient version of gcc - OPT_INLINE = -Os -funroll-loops -finline-functions -@@ -104,6 +104,13 @@ - # @echo "linux-ppc64-altivec Linux, PowerPC 64-bit w/AltiVec" - @echo "linux-ppc64 Linux, PowerPC 64-bit" - @echo "linux-ia64 Linux, IA-64" -+ @echo "midipix-x86-64-avx Midipix, x86-64 with AVX (2011+ Intel CPUs)" -+ @echo "midipix-x86-64 Midipix, x86-64 with SSE2 (most common)" -+ @echo "midipix-x86-avx Midipix, x86 32-bit with AVX (2011+ Intel CPUs)" -+ @echo "midipix-x86-xop Midipix, x86 32-bit with AVX and XOP (2011+ AMD CPUs)" -+ @echo "midipix-x86-sse2 Midipix, x86 32-bit with SSE2 (most common, if 32-bit)" -+ @echo "midipix-x86-mmx Midipix, x86 32-bit with MMX (for old computers)" -+ @echo "midipix-x86-any Midipix, x86 32-bit (for truly ancient computers)" - @echo "freebsd-x86-64 FreeBSD, x86-64 with SSE2 (best)" - @echo "freebsd-x86-sse2 FreeBSD, x86 with SSE2 (best if 32-bit)" - @echo "freebsd-x86-mmx FreeBSD, x86 with MMX" -@@ -306,6 +313,64 @@ - CFLAGS="$(CFLAGS) -DHAVE_CRYPT" \ - LDFLAGS="$(LDFLAGS) -lcrypt" - -+midipix-x86-64-avx: -+ $(LN) x86-64.h arch.h -+ $(MAKE) $(PROJ) \ -+ JOHN_OBJS="$(JOHN_OBJS) c3_fmt.o x86-64.o" \ -+ CFLAGS_MAIN="$(CFLAGS) -DJOHN_AVX -DHAVE_CRYPT" \ -+ CFLAGS="$(CFLAGS) -mavx -DHAVE_CRYPT -DHAVE_INTERNAL_ATTR" \ -+ ASFLAGS="$(ASFLAGS) -mavx" \ -+ LDFLAGS="$(LDFLAGS) -lcrypt" -+ -+midipix-x86-64: -+ $(LN) x86-64.h arch.h -+ $(MAKE) $(PROJ) \ -+ JOHN_OBJS="$(JOHN_OBJS) c3_fmt.o x86-64.o" \ -+ CFLAGS="$(CFLAGS) -DHAVE_CRYPT -DHAVE_INTERNAL_ATTR" \ -+ LDFLAGS="$(LDFLAGS) -lcrypt" -+ -+midipix-x86-avx: -+ $(LN) x86-sse.h arch.h -+ $(MAKE) $(PROJ) \ -+ JOHN_OBJS="$(JOHN_OBJS) c3_fmt.o x86.o" \ -+ CFLAGS_MAIN="$(CFLAGS) -m32 -DJOHN_AVX -DHAVE_CRYPT -DHAVE_INTERNAL_ATTR -DUNDERSCORES" \ -+ CFLAGS="$(CFLAGS) -m32 -mavx -DHAVE_CRYPT -DHAVE_INTERNAL_ATTR -DUNDERSCORES" \ -+ ASFLAGS="$(ASFLAGS) -m32 -mavx -DUNDERSCORES" \ -+ LDFLAGS="$(LDFLAGS) -m32 -lcrypt" -+ -+midipix-x86-xop: -+ $(LN) x86-sse.h arch.h -+ $(MAKE) $(PROJ) \ -+ JOHN_OBJS="$(JOHN_OBJS) c3_fmt.o x86.o" \ -+ CFLAGS_MAIN="$(CFLAGS) -m32 -DJOHN_XOP -DHAVE_CRYPT -DHAVE_INTERNAL_ATTR -DUNDERSCORES" \ -+ CFLAGS="$(CFLAGS) -m32 -mxop -DHAVE_CRYPT -DHAVE_INTERNAL_ATTR -DUNDERSCORES" \ -+ ASFLAGS="$(ASFLAGS) -m32 -mxop -DUNDERSCORES" \ -+ LDFLAGS="$(LDFLAGS) -m32 -lcrypt" -+ -+midipix-x86-sse2: -+ $(LN) x86-sse.h arch.h -+ $(MAKE) $(PROJ) \ -+ JOHN_OBJS="$(JOHN_OBJS) c3_fmt.o x86.o x86-sse.o" \ -+ CFLAGS="$(CFLAGS) -DHAVE_CRYPT -DHAVE_INTERNAL_ATTR -DUNDERSCORES" \ -+ ASFLAGS="$(ASFLAGS) -m32 -DUNDERSCORES" \ -+ LDFLAGS="$(LDFLAGS) -lcrypt" -+ -+midipix-x86-mmx: -+ $(LN) x86-mmx.h arch.h -+ $(MAKE) $(PROJ) \ -+ JOHN_OBJS="$(JOHN_OBJS) c3_fmt.o x86.o x86-mmx.o" \ -+ CFLAGS="$(CFLAGS) -DHAVE_CRYPT -DHAVE_INTERNAL_ATTR -DUNDERSCORES" \ -+ ASFLAGS="$(ASFLAGS) -m32 -DUNDERSCORES" \ -+ LDFLAGS="$(LDFLAGS) -lcrypt" -+ -+midipix-x86-any: -+ $(LN) x86-any.h arch.h -+ $(MAKE) $(PROJ) \ -+ JOHN_OBJS="$(JOHN_OBJS) c3_fmt.o x86.o" \ -+ CFLAGS="$(CFLAGS) -DHAVE_CRYPT -DHAVE_INTERNAL_ATTR -DUNDERSCORES" \ -+ ASFLAGS="$(ASFLAGS) -m32 -DUNDERSCORES" \ -+ LDFLAGS="$(LDFLAGS) -lcrypt" -+ - freebsd-x86-64: - $(LN) x86-64.h arch.h - $(MAKE) $(PROJ) \ diff --git a/libarchive-3.1.2.local.patch b/libarchive-3.1.2.local.patch deleted file mode 100644 index 746a4b70..00000000 --- a/libarchive-3.1.2.local.patch +++ /dev/null @@ -1,139 +0,0 @@ ---- libarchive-3.1.2/cpio/bsdcpio.1.orig -+++ libarchive-3.1.2/cpio/bsdcpio.1 -@@ -156,7 +156,8 @@ - .It Fl Fl insecure - (i and p mode only) - Disable security checks during extraction or copying. --This allows extraction via symbolic links and path names containing -+This allows extraction via symbolic links, absolute paths, -+and path names containing - .Sq .. - in the name. - .It Fl J , Fl Fl xz ---- libarchive-3.1.2/cpio/cpio.c.orig -+++ libarchive-3.1.2/cpio/cpio.c -@@ -179,6 +179,7 @@ - cpio->extract_flags |= ARCHIVE_EXTRACT_NO_OVERWRITE_NEWER; - cpio->extract_flags |= ARCHIVE_EXTRACT_SECURE_SYMLINKS; - cpio->extract_flags |= ARCHIVE_EXTRACT_SECURE_NODOTDOT; -+ cpio->extract_flags |= ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS; - cpio->extract_flags |= ARCHIVE_EXTRACT_PERM; - cpio->extract_flags |= ARCHIVE_EXTRACT_FFLAGS; - cpio->extract_flags |= ARCHIVE_EXTRACT_ACL; -@@ -264,6 +265,7 @@ - case OPTION_INSECURE: - cpio->extract_flags &= ~ARCHIVE_EXTRACT_SECURE_SYMLINKS; - cpio->extract_flags &= ~ARCHIVE_EXTRACT_SECURE_NODOTDOT; -+ cpio->extract_flags &= ~ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS; - break; - case 'L': /* GNU cpio */ - cpio->option_follow_links = 1; -@@ -300,6 +302,7 @@ - "Cannot use both -p and -%c", cpio->mode); - cpio->mode = opt; - cpio->extract_flags &= ~ARCHIVE_EXTRACT_SECURE_NODOTDOT; -+ cpio->extract_flags &= ~ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS; - break; - case OPTION_PRESERVE_OWNER: - cpio->extract_flags |= ARCHIVE_EXTRACT_OWNER; ---- libarchive-3.1.2/libarchive/archive.h.orig -+++ libarchive-3.1.2/libarchive/archive.h -@@ -562,6 +562,8 @@ - /* Default: Do not use HFS+ compression if it was not compressed. */ - /* This has no effect except on Mac OS v10.6 or later. */ - #define ARCHIVE_EXTRACT_HFS_COMPRESSION_FORCED (0x8000) -+/* Default: Do not reject entries with absolute paths */ -+#define ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS (0x10000) - - __LA_DECL int archive_read_extract(struct archive *, struct archive_entry *, - int flags); ---- libarchive-3.1.2/libarchive/archive_write_disk.3.orig -+++ libarchive-3.1.2/libarchive/archive_write_disk.3 -@@ -177,6 +177,9 @@ - Note that paths ending in - .Pa .. - always cause an error, regardless of this flag. -+.It Cm ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS -+Refuse to extract an absolute path. -+The default is to not refuse such paths. - .It Cm ARCHIVE_EXTRACT_SPARSE - Scan data for blocks of NUL bytes and try to recreate them with holes. - This results in sparse files, independent of whether the archive format ---- libarchive-3.1.2/libarchive/archive_write_disk_posix.c.orig -+++ libarchive-3.1.2/libarchive/archive_write_disk_posix.c -@@ -2504,8 +2504,9 @@ - /* - * Canonicalize the pathname. In particular, this strips duplicate - * '/' characters, '.' elements, and trailing '/'. It also raises an -- * error for an empty path, a trailing '..' or (if _SECURE_NODOTDOT is -- * set) any '..' in the path. -+ * error for an empty path, a trailing '..', (if _SECURE_NODOTDOT is -+ * set) any '..' in the path or (if ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS -+ * is set) if the path is absolute. - */ - static int - cleanup_pathname(struct archive_write_disk *a) -@@ -2524,8 +2525,15 @@ - cleanup_pathname_win(a); - #endif - /* Skip leading '/'. */ -- if (*src == '/') -+ if (*src == '/') { -+ if (a->flags & ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS) { -+ archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, -+ "Path is absolute"); -+ return (ARCHIVE_FAILED); -+ } -+ - separator = *src++; -+ } - - /* Scan the pathname one element at a time. */ - for (;;) { ---- libarchive-3.1.2/libarchive/test/test_write_disk_secure.c.orig -+++ libarchive-3.1.2/libarchive/test/test_write_disk_secure.c -@@ -178,6 +178,29 @@ - assert(S_ISDIR(st.st_mode)); - archive_entry_free(ae); - -+ /* -+ * Without security checks, we should be able to -+ * extract an absolute path. -+ */ -+ assert((ae = archive_entry_new()) != NULL); -+ archive_entry_copy_pathname(ae, "/tmp/libarchive_test-test_write_disk_secure-absolute_path.tmp"); -+ archive_entry_set_mode(ae, S_IFREG | 0777); -+ assert(0 == archive_write_header(a, ae)); -+ assert(0 == archive_write_finish_entry(a)); -+ assertFileExists("/tmp/libarchive_test-test_write_disk_secure-absolute_path.tmp"); -+ assert(0 == unlink("/tmp/libarchive_test-test_write_disk_secure-absolute_path.tmp")); -+ -+ /* But with security checks enabled, this should fail. */ -+ assert(archive_entry_clear(ae) != NULL); -+ archive_entry_copy_pathname(ae, "/tmp/libarchive_test-test_write_disk_secure-absolute_path.tmp"); -+ archive_entry_set_mode(ae, S_IFREG | 0777); -+ archive_write_disk_set_options(a, ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS); -+ failure("Extracting an absolute path should fail here."); -+ assertEqualInt(ARCHIVE_FAILED, archive_write_header(a, ae)); -+ archive_entry_free(ae); -+ assert(0 == archive_write_finish_entry(a)); -+ assertFileNotExists("/tmp/libarchive_test-test_write_disk_secure-absolute_path.tmp"); -+ - assertEqualInt(ARCHIVE_OK, archive_write_free(a)); - - /* Test the entries on disk. */ ---- libarchive-3.1.2/libarchive/archive_write.c.orig 2016-06-03 13:15:42.862830537 +0000 -+++ libarchive-3.1.2/libarchive/archive_write.c 2016-06-03 13:19:01.590826126 +0000 -@@ -671,8 +671,12 @@ - _archive_write_data(struct archive *_a, const void *buff, size_t s) - { - struct archive_write *a = (struct archive_write *)_a; -+ const size_t max_write = INT_MAX; - archive_check_magic(&a->archive, ARCHIVE_WRITE_MAGIC, - ARCHIVE_STATE_DATA, "archive_write_data"); -+ /* In particular, this catches attempts to pass negative values. */ -+ if (s > max_write) -+ s = max_write; - archive_clear_error(&a->archive); - return ((a->format_write_data)(a, buff, s)); - } diff --git a/libassuan-2.4.3.local.patch b/libassuan-2.4.3.local.patch deleted file mode 100644 index 8e0265b0..00000000 --- a/libassuan-2.4.3.local.patch +++ /dev/null @@ -1,192 +0,0 @@ ---- libassuan-2.4.3.orig/configure 2016-07-14 10:11:48.000000000 +0200 -+++ libassuan-2.4.3/configure 2016-10-18 22:20:05.511896688 +0200 -@@ -14171,187 +14171,8 @@ - - # Checking for libgpg-error. - -- gpg_error_config_prefix="" -- --# Check whether --with-libgpg-error-prefix was given. --if test "${with_libgpg_error_prefix+set}" = set; then : -- withval=$with_libgpg_error_prefix; gpg_error_config_prefix="$withval" --fi -- -- -- --# Check whether --with-gpg-error-prefix was given. --if test "${with_gpg_error_prefix+set}" = set; then : -- withval=$with_gpg_error_prefix; gpg_error_config_prefix="$withval" --fi -- -- -- if test x$gpg_error_config_prefix != x ; then -- if test x${GPG_ERROR_CONFIG+set} != xset ; then -- GPG_ERROR_CONFIG=$gpg_error_config_prefix/bin/gpg-error-config -- fi -- fi -- -- if test -n "$ac_tool_prefix"; then -- # Extract the first word of "${ac_tool_prefix}gpg-error-config", so it can be a program name with args. --set dummy ${ac_tool_prefix}gpg-error-config; ac_word=$2 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 --$as_echo_n "checking for $ac_word... " >&6; } --if ${ac_cv_path_GPG_ERROR_CONFIG+:} false; then : -- $as_echo_n "(cached) " >&6 --else -- case $GPG_ERROR_CONFIG in -- [\\/]* | ?:[\\/]*) -- ac_cv_path_GPG_ERROR_CONFIG="$GPG_ERROR_CONFIG" # Let the user override the test with a path. -- ;; -- *) -- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR --for as_dir in $PATH --do -- IFS=$as_save_IFS -- test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -- ac_cv_path_GPG_ERROR_CONFIG="$as_dir/$ac_word$ac_exec_ext" -- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -- break 2 -- fi --done -- done --IFS=$as_save_IFS -- -- ;; --esac --fi --GPG_ERROR_CONFIG=$ac_cv_path_GPG_ERROR_CONFIG --if test -n "$GPG_ERROR_CONFIG"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GPG_ERROR_CONFIG" >&5 --$as_echo "$GPG_ERROR_CONFIG" >&6; } --else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 --$as_echo "no" >&6; } --fi -- -- --fi --if test -z "$ac_cv_path_GPG_ERROR_CONFIG"; then -- ac_pt_GPG_ERROR_CONFIG=$GPG_ERROR_CONFIG -- # Extract the first word of "gpg-error-config", so it can be a program name with args. --set dummy gpg-error-config; ac_word=$2 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 --$as_echo_n "checking for $ac_word... " >&6; } --if ${ac_cv_path_ac_pt_GPG_ERROR_CONFIG+:} false; then : -- $as_echo_n "(cached) " >&6 --else -- case $ac_pt_GPG_ERROR_CONFIG in -- [\\/]* | ?:[\\/]*) -- ac_cv_path_ac_pt_GPG_ERROR_CONFIG="$ac_pt_GPG_ERROR_CONFIG" # Let the user override the test with a path. -- ;; -- *) -- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR --for as_dir in $PATH --do -- IFS=$as_save_IFS -- test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -- ac_cv_path_ac_pt_GPG_ERROR_CONFIG="$as_dir/$ac_word$ac_exec_ext" -- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -- break 2 -- fi --done -- done --IFS=$as_save_IFS -- -- ;; --esac --fi --ac_pt_GPG_ERROR_CONFIG=$ac_cv_path_ac_pt_GPG_ERROR_CONFIG --if test -n "$ac_pt_GPG_ERROR_CONFIG"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_GPG_ERROR_CONFIG" >&5 --$as_echo "$ac_pt_GPG_ERROR_CONFIG" >&6; } --else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 --$as_echo "no" >&6; } --fi -- -- if test "x$ac_pt_GPG_ERROR_CONFIG" = x; then -- GPG_ERROR_CONFIG="no" -- else -- case $cross_compiling:$ac_tool_warned in --yes:) --{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 --$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} --ac_tool_warned=yes ;; --esac -- GPG_ERROR_CONFIG=$ac_pt_GPG_ERROR_CONFIG -- fi --else -- GPG_ERROR_CONFIG="$ac_cv_path_GPG_ERROR_CONFIG" --fi -- -- min_gpg_error_version=1.17 -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GPG Error - version >= $min_gpg_error_version" >&5 --$as_echo_n "checking for GPG Error - version >= $min_gpg_error_version... " >&6; } -- ok=no -- if test "$GPG_ERROR_CONFIG" != "no" \ -- && test -f "$GPG_ERROR_CONFIG" ; then -- req_major=`echo $min_gpg_error_version | \ -- sed 's/\([0-9]*\)\.\([0-9]*\)/\1/'` -- req_minor=`echo $min_gpg_error_version | \ -- sed 's/\([0-9]*\)\.\([0-9]*\)/\2/'` -- gpg_error_config_version=`$GPG_ERROR_CONFIG $gpg_error_config_args --version` -- major=`echo $gpg_error_config_version | \ -- sed 's/\([0-9]*\)\.\([0-9]*\).*/\1/'` -- minor=`echo $gpg_error_config_version | \ -- sed 's/\([0-9]*\)\.\([0-9]*\).*/\2/'` -- if test "$major" -gt "$req_major"; then -- ok=yes -- else -- if test "$major" -eq "$req_major"; then -- if test "$minor" -ge "$req_minor"; then -- ok=yes -- fi -- fi -- fi -- fi -- if test $ok = yes; then -- GPG_ERROR_CFLAGS=`$GPG_ERROR_CONFIG $gpg_error_config_args --cflags` -- GPG_ERROR_LIBS=`$GPG_ERROR_CONFIG $gpg_error_config_args --libs` -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes ($gpg_error_config_version)" >&5 --$as_echo "yes ($gpg_error_config_version)" >&6; } -- : -- gpg_error_config_host=`$GPG_ERROR_CONFIG $gpg_error_config_args --host 2>/dev/null || echo none` -- if test x"$gpg_error_config_host" != xnone ; then -- if test x"$gpg_error_config_host" != x"$host" ; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --*** --*** The config script $GPG_ERROR_CONFIG was --*** built for $gpg_error_config_host and thus may not match the --*** used host $host. --*** You may want to use the configure option --with-gpg-error-prefix --*** to specify a matching config script. --***" >&5 --$as_echo "$as_me: WARNING: --*** --*** The config script $GPG_ERROR_CONFIG was --*** built for $gpg_error_config_host and thus may not match the --*** used host $host. --*** You may want to use the configure option --with-gpg-error-prefix --*** to specify a matching config script. --***" >&2;} -- fi -- fi -- else -- GPG_ERROR_CFLAGS="" -- GPG_ERROR_LIBS="" -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 --$as_echo "no" >&6; } -- as_fn_error $? "libgpg-error was not found" "$LINENO" 5 -- fi -- -- -- -+#Overcomplicated useless checking for gpg-error, use CFLAGS and LDFLAGS! >:( -+ GPG_ERROR_LIBS="-lgpg-error" - - # - # Checks for library functions. diff --git a/libelf-0.8.13.local.patch b/libelf-0.8.13.local.patch deleted file mode 100644 index 73d60e90..00000000 --- a/libelf-0.8.13.local.patch +++ /dev/null @@ -1,39 +0,0 @@ -diff -ru a/configure b/configure ---- a/configure 2008-05-23 04:18:03.000000000 -0400 -+++ b/configure 2015-03-10 20:32:16.332333640 -0400 -@@ -3445,6 +3445,16 @@ - LINK_SHLIB='$(LD) -G -z text -h $(SONAME)' - INSTALL_SHLIB='$(INSTALL_PROGRAM)' - ;; -+ *midipix*) -+ PICFLAGS='-fPIC -DPIC' -+ SHLIB_SFX='.so.$(VERSION)' -+ SHLINK_SFX='.so' -+ SONAME_SFX='.so.$(MAJOR)' -+ LINK_SHLIB='$(CC) -shared -Wl,-soname,$(SONAME) -mout-implib -moutput-def' -+ IMPLIB_NAME=libelf.`echo "so.$VERSION" | sed -E 's/[^\.]+$/lib.a/'` -+ INSTALL_SHLIB='cp $(IMPLIB_NAME) $(libdir)/libelf.lib.a; $(INSTALL_PROGRAM)' -+ DEPSHLIBS='' -+ ;; - *) - echo "configure: warning: shared libraries not supported for $host" 1>&2 - mr_enable_shared=no -@@ -3687,6 +3697,7 @@ - s%@INSTALL_SHLIB@%$INSTALL_SHLIB%g - s%@DEPSHLIBS@%$DEPSHLIBS%g - s%@DO_SHLIB@%$DO_SHLIB%g -+s%@IMPLIB_NAME@%$IMPLIB_NAME%g - - CEOF - EOF -diff -ru a/lib/Makefile.in b/lib/Makefile.in ---- a/lib/Makefile.in 2009-11-01 08:04:19.000000000 -0500 -+++ b/lib/Makefile.in 2015-03-09 00:13:06.842232837 -0400 -@@ -49,6 +49,7 @@ - SHLINK_SFX = @SHLINK_SFX@ - SONAME_SFX = @SONAME_SFX@ - LINK_SHLIB = @LINK_SHLIB@ -+IMPLIB_NAME = @IMPLIB_NAME@ - INSTALL_SHLIB = @INSTALL_SHLIB@ - - SHLIB = libelf$(SHLIB_SFX) diff --git a/libevent-2.0.22-stable.local.patch b/libevent-2.0.22-stable.local.patch deleted file mode 100644 index f75fe90b..00000000 --- a/libevent-2.0.22-stable.local.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- libevent-2.0.22-stable/configure.orig 2016-09-10 18:47:19.360327924 -0400 -+++ libevent-2.0.22-stable/configure 2016-09-10 18:48:54.160396670 -0400 -@@ -12937,7 +12937,7 @@ - BUILD_CYGWIN_FALSE= - fi - -- if test x$bwin32 = xtrue || test x$cygwin = xtrue; then -+ if test x$bwin32 = xtrue || test x$cygwin = xtrue || test x$ac_pe_target = xtrue; then - BUILD_WITH_NO_UNDEFINED_TRUE= - BUILD_WITH_NO_UNDEFINED_FALSE='#' - else diff --git a/libfetch-2.33.local.patch b/libfetch-2.33.local.patch deleted file mode 100644 index 8d0bbcf8..00000000 --- a/libfetch-2.33.local.patch +++ /dev/null @@ -1,149 +0,0 @@ ---- libfetch-2.33/common.h.orig 2010-08-23 22:40:48.000000000 +0200 -+++ libfetch-2.33/common.h 2016-03-09 10:01:24.270907600 +0100 -@@ -47,7 +47,7 @@ - - #if !defined(__sun) && !defined(__hpux) && !defined(__INTERIX) && \ - !defined(__digital__) && !defined(__linux) && !defined(__MINT__) && \ -- !defined(__sgi) -+ !defined(__sgi) && !defined(__midipix__) - #define HAVE_SA_LEN - #endif - ---- libfetch-2.33/Makefile.orig 2010-08-23 20:40:48.000000000 +0000 -+++ libfetch-2.33/Makefile 2016-07-08 22:18:05.749860554 +0000 -@@ -1,42 +1,93 @@ --# $NetBSD: Makefile,v 1.5 2010/02/24 22:00:51 joerg Exp $ -- --LIB= fetch --SRCS= fetch.c common.c ftp.c http.c file.c --DPSRCS= ftperr.h httperr.h --INCS= fetch.h --MAN= fetch.3 --CLEANFILES= ftperr.h httperr.h --MKLINT= no --MKPIC= no --MKPROFILE= no -- --.include -- --CPPFLAGS+= -I. --CPPFLAGS+= -D_LARGEFILE_SOURCE -D_LARGE_FILES -- --FETCH_WITH_INET6?= no --FETCH_WITH_OPENSSL?= no -- --.if !empty(FETCH_WITH_INET6:M[yY][eE][sS]) --CPPFLAGS+= -DINET6 --.endif -- --.if !empty(FETCH_WITH_OPENSSL:M[yY][eE][sS]) --CPPFLAGS+= -DWITH_SSL --LDADD= -lssl -lcrypto --.endif -- --CPPFLAGS+= -DFTP_COMBINE_CWDS -- --WARNS?= 4 -- --ftperr.h: ${.CURDIR}/ftp.errors ${.CURDIR}/Makefile ${.CURDIR}/errlist.sh -- ${.CURDIR}/errlist.sh ftp_errlist FTP \ -- ${.CURDIR}/ftp.errors > ${.TARGET} -- --httperr.h: ${.CURDIR}/http.errors ${.CURDIR}/Makefile ${.CURDIR}/errlist.sh -- ${.CURDIR}/errlist.sh http_errlist HTTP \ -- ${.CURDIR}/http.errors > ${.TARGET} -- --.include -+prefix = /usr -+DESTDIR = -+DEBUG = false -+FETCH_WITH_INET6 = true -+FETCH_WITH_OPENSSL = true -+FETCH_WITH_LFS = true -+ -+WARNINGS = -Wall -Wstrict-prototypes -Wsign-compare -Wchar-subscripts \ -+ -Wpointer-arith -Wcast-align -Wsign-compare -+CFLAGS += -O2 -pipe -I. -fPIC $(WARNINGS) -+ -+ -+CFLAGS += -DFTP_COMBINE_CWDS -DNETBSD -+ -+ifeq ($(strip $(FETCH_WITH_LFS)), true) -+CFLAGS+= -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGE_FILES -+endif -+ -+ifeq ($(strip $(FETCH_WITH_INET6)), true) -+CFLAGS+= -DINET6 -+endif -+ -+ifeq ($(strip $(FETCH_WITH_OPENSSL)), true) -+CFLAGS+= -DWITH_SSL -+LDFLAGS_LIBS+= -lssl -lcrypto -+endif -+ -+ifeq ($(strip $(DEBUG)), true) -+CFLAGS += -g -DDEBUG -+else -+CFLAGS += -UDEBUG -+endif -+ -+CC = $(CROSS_COMPILE)gcc -+LD = $(CROSS_COMPILE)gcc -+AR = $(CROSS_COMPILE)ar -+RANLIB = ranlib -+INSTALL = install -c -D -+ -+OBJS= fetch.o common.o ftp.o http.o file.o -+INCS= fetch.h common.h -+GEN = ftperr.h httperr.h -+MAN = libdownload.3 -+ -+#pretty print! -+E = @echo -+Q = @ -+ -+all: libfetch.so libfetch.a -+ $(E) " built with: " $(CFLAGS) -+.PHONY: all -+ -+%.o: %.c $(INCS) $(GEN) -+ $(E) " compile " $@ -+ $(Q) $(CC) $(CFLAGS) -c $< -+ -+ftperr.h: ftp.errors -+ $(E) " generate " $@ -+ $(Q) ./errlist.sh ftp_errlist FTP ftp.errors > $@ -+ -+httperr.h: http.errors -+ $(E) " generate " $@ -+ $(Q) ./errlist.sh http_errlist HTTP http.errors > $@ -+ -+libfetch.so: $(GEN) $(INCS) $(OBJS) -+ $(E) " build " $@ -+ $(Q) rm -f $@ -+ $(Q) $(LD) $(LDFLAGS) *.o -shared -o $@ $(LDFLAGS_LIBS) -+ -+libfetch.a: $(GEN) $(INCS) $(OBJS) -+ $(E) " build " $@ -+ $(Q) rm -f $@ -+ $(Q) $(AR) rcs $@ *.o -+ $(Q) $(RANLIB) $@ -+ -+clean: -+ $(E) " clean " -+ $(Q) rm -f libfetch.so libfetch.a *.o $(GEN) -+.PHONY: clean -+ -+install: all -+ $(Q) $(INSTALL) -m 755 libfetch.so $(DESTDIR)$(prefix)/lib/libfetch.so -+ $(Q) $(INSTALL) -m 644 libfetch.a $(DESTDIR)$(prefix)/lib/libfetch.a -+ $(Q) $(INSTALL) -m 644 fetch.h $(DESTDIR)$(prefix)/include/fetch.h -+ $(Q) $(INSTALL) -m 644 fetch.3 $(DESTDIR)$(prefix)/share/man/man3/fetch.3 -+.PHONY: install -+ -+uninstall: -+ $(Q) rm -f $(DESTDIR)$(prefix)/lib/libfetch.so -+ $(Q) rm -f $(DESTDIR)$(prefix)/lib/libfetch.a -+ $(Q) rm -f $(DESTDIR)$(prefix)/include/fetch.h -+ $(Q) rm -f $(DESTDIR)$(prefix)/share/man/man3/fetch.3 -+.PHONY: uninstall diff --git a/libffi-3.2.1.local.patch b/libffi-3.2.1.local.patch deleted file mode 100644 index d5c7fbdc..00000000 --- a/libffi-3.2.1.local.patch +++ /dev/null @@ -1,198 +0,0 @@ -diff -ru --new-file a/configure b/configure ---- a/configure 2014-11-12 06:59:57.000000000 -0500 -+++ b/configure 2016-01-25 18:26:47.000000000 -0500 -@@ -17133,7 +17133,7 @@ - i?86-*-freebsd* | i?86-*-openbsd*) - TARGET=X86_FREEBSD; TARGETDIR=x86 - ;; -- i?86-win32* | i?86-*-cygwin* | i?86-*-mingw* | i?86-*-os2* | i?86-*-interix*) -+ i?86-win32* | i?86-*-cygwin* | i?86-*-mingw* | i?86-*-os2* | i?86-*-interix* | i?86-*-midipix*) - TARGET=X86_WIN32; TARGETDIR=x86 - # All mingw/cygwin/win32 builds require -no-undefined for sharedlib. - # We must also check with_cross_host to decide if this is a native -@@ -17161,7 +17161,7 @@ - TARGET=X86_DARWIN; TARGETDIR=x86 - ;; - -- x86_64-*-cygwin* | x86_64-*-mingw*) -+ x86_64-*-cygwin* | x86_64-*-mingw* | x86_64-*-midipix*) - TARGET=X86_WIN64; TARGETDIR=x86 - # All mingw/cygwin/win32 builds require -no-undefined for sharedlib. - # We must also check with_cross_host to decide if this is a native -diff -ru --new-file a/src/closures.c b/src/closures.c ---- a/src/closures.c 2014-11-08 07:47:24.000000000 -0500 -+++ b/src/closures.c 2016-01-25 17:57:43.000000000 -0500 -@@ -26,6 +26,25 @@ - DEALINGS IN THE SOFTWARE. - ----------------------------------------------------------------------- */ - -+#ifdef __midipix__ -+ -+#include -+ -+void * ffi_closure_alloc (size_t size, void ** code) -+{ -+ if (code) -+ return (*code = malloc(size)); -+ else -+ return 0; -+} -+ -+void ffi_closure_free (void * addr) -+{ -+ free(addr); -+} -+ -+#else -+ - #if defined __linux__ && !defined _GNU_SOURCE - #define _GNU_SOURCE 1 - #endif -@@ -686,3 +705,4 @@ - - # endif /* ! FFI_MMAP_EXEC_WRIT */ - #endif /* FFI_CLOSURES */ -+#endif -diff -ru --new-file a/src/x86/ffi.c b/src/x86/ffi.c ---- a/src/x86/ffi.c 2014-11-08 07:47:24.000000000 -0500 -+++ b/src/x86/ffi.c 2016-01-25 17:52:14.000000000 -0500 -@@ -31,8 +31,12 @@ - #if !defined(__x86_64__) || defined(_WIN64) || defined(__CYGWIN__) - - #ifdef _WIN64 -+#ifdef __midipix__ -+/* not needed */ -+#else - #include - #endif -+#endif - - #include - #include -diff -ru --new-file a/src/x86/win32.S b/src/x86/win32.S ---- a/src/x86/win32.S 2014-11-11 09:41:37.000000000 -0500 -+++ b/src/x86/win32.S 2016-01-25 18:36:49.000000000 -0500 -@@ -1344,6 +1344,14 @@ - .align 4 - .LEFDE5: - -+#ifdef __midipix__ -+ .section .got$ffi_call_win32,"r" -+ .global __imp_ffi_call_win32 -+__imp_ffi_call_win32: -+ .long ffi_call_win32 -+ .linkonce discard -+#endif -+ - #endif /* !_MSC_VER */ - - #if defined __ELF__ && defined __linux__ -diff -ru --new-file a/src/x86/win64.S b/src/x86/win64.S ---- a/src/x86/win64.S 2014-11-08 07:47:24.000000000 -0500 -+++ b/src/x86/win64.S 2016-01-25 17:47:17.000000000 -0500 -@@ -516,5 +516,15 @@ - pop %rbp - retq - .seh_endproc -+ -+ -+#ifdef __midipix__ -+ .section .got$ffi_call_win64,"r" -+ .global __imp_ffi_call_win64 -+__imp_ffi_call_win64: -+ .quad ffi_call_win64 -+ .linkonce discard -+#endif -+ - #endif /* !_MSC_VER */ - ---- libffi-3.2.1/src/x86/win32.S.orig2 2016-05-31 09:21:19.120895425 +0000 -+++ libffi-3.2.1/src/x86/win32.S 2016-05-31 09:22:19.252894091 +0000 -@@ -529,7 +529,9 @@ - - # This assumes we are using gas. - .balign 16 -+#ifndef __midipix__ - FFI_HIDDEN(ffi_call_win32) -+#endif - .globl USCORE_SYMBOL(ffi_call_win32) - #if defined(X86_WIN32) && !defined(__OS2__) - .def _ffi_call_win32; .scl 2; .type 32; .endef -@@ -712,7 +714,9 @@ - ret - .ffi_call_win32_end: - .balign 16 -+#ifndef __midipix__ - FFI_HIDDEN(ffi_closure_THISCALL) -+#endif - .globl USCORE_SYMBOL(ffi_closure_THISCALL) - #if defined(X86_WIN32) && !defined(__OS2__) - .def _ffi_closure_THISCALL; .scl 2; .type 32; .endef -@@ -725,7 +729,9 @@ - jmp .ffi_closure_STDCALL_internal - - .balign 16 -+#ifndef __midipix__ - FFI_HIDDEN(ffi_closure_FASTCALL) -+#endif - .globl USCORE_SYMBOL(ffi_closure_FASTCALL) - #if defined(X86_WIN32) && !defined(__OS2__) - .def _ffi_closure_FASTCALL; .scl 2; .type 32; .endef -@@ -737,7 +743,9 @@ - push %edx - push %ecx - jmp .ffi_closure_STDCALL_internal -+#ifndef __midipix__ - FFI_HIDDEN(ffi_closure_REGISTER) -+#endif - .globl USCORE_SYMBOL(ffi_closure_REGISTER) - #if defined(X86_WIN32) && !defined(__OS2__) - .def _ffi_closure_REGISTER; .scl 2; .type 32; .endef -@@ -754,7 +762,9 @@ - .LFE1: - # This assumes we are using gas. - .balign 16 -+#ifndef __midipix__ - FFI_HIDDEN(ffi_closure_SYSV) -+#endif - #if defined(X86_WIN32) - .globl USCORE_SYMBOL(ffi_closure_SYSV) - #if defined(X86_WIN32) && !defined(__OS2__) -@@ -898,7 +908,9 @@ - - #ifdef X86_WIN32 - .balign 16 -+#ifndef __midipix__ - FFI_HIDDEN(ffi_closure_raw_THISCALL) -+#endif - .globl USCORE_SYMBOL(ffi_closure_raw_THISCALL) - #if defined(X86_WIN32) && !defined(__OS2__) - .def _ffi_closure_raw_THISCALL; .scl 2; .type 32; .endef -@@ -1040,7 +1052,9 @@ - - # This assumes we are using gas. - .balign 16 -+#ifndef __midipix__ - FFI_HIDDEN(ffi_closure_STDCALL) -+#endif - .globl USCORE_SYMBOL(ffi_closure_STDCALL) - #if defined(X86_WIN32) && !defined(__OS2__) - .def _ffi_closure_STDCALL; .scl 2; .type 32; .endef -@@ -1345,10 +1359,17 @@ - .LEFDE5: - - #ifdef __midipix__ -+#if defined(SYMBOL_UNDERSCORE) -+ .section .got$ffi__call_win32,"r" -+ .global __imp__ffi_call_win32 -+__imp__ffi_call_win32: -+ .long _ffi_call_win32 -+#else - .section .got$ffi_call_win32,"r" - .global __imp_ffi_call_win32 - __imp_ffi_call_win32: - .long ffi_call_win32 -+#endif - .linkonce discard - #endif - diff --git a/libgcrypt-1.7.3.local.patch b/libgcrypt-1.7.3.local.patch deleted file mode 100644 index ff81df03..00000000 --- a/libgcrypt-1.7.3.local.patch +++ /dev/null @@ -1,172 +0,0 @@ -Only in libgcrypt-1.7.3.orig: config.log -diff -ru libgcrypt-1.7.3.orig/configure libgcrypt-1.7.3/configure ---- libgcrypt-1.7.3.orig/configure 2016-08-17 13:34:20.000000000 +0200 -+++ libgcrypt-1.7.3/configure 2016-10-18 22:58:40.255896688 +0200 -@@ -13067,7 +13067,9 @@ - *-linux*) - PRINTABLE_OS_NAME="GNU/Linux" - ;; -- -+ *-midipix*) -+ PRINTABLE_OS_NAME="Midipix" -+ ;; - *) - PRINTABLE_OS_NAME=`uname -s || echo "Unknown"` - ;; -@@ -14141,155 +14143,8 @@ - # gpg-error is required. - # - -- gpg_error_config_prefix="" -- --# Check whether --with-libgpg-error-prefix was given. --if test "${with_libgpg_error_prefix+set}" = set; then : -- withval=$with_libgpg_error_prefix; gpg_error_config_prefix="$withval" --fi -- -- -- --# Check whether --with-gpg-error-prefix was given. --if test "${with_gpg_error_prefix+set}" = set; then : -- withval=$with_gpg_error_prefix; gpg_error_config_prefix="$withval" --fi -- -+ GPG_ERROR_LIBS="-lgpg-error" - -- if test x"${GPG_ERROR_CONFIG}" = x ; then -- if test x"${gpg_error_config_prefix}" != x ; then -- GPG_ERROR_CONFIG="${gpg_error_config_prefix}/bin/gpg-error-config" -- else -- case "${SYSROOT}" in -- /*) -- if test -x "${SYSROOT}/bin/gpg-error-config" ; then -- GPG_ERROR_CONFIG="${SYSROOT}/bin/gpg-error-config" -- fi -- ;; -- '') -- ;; -- *) -- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring \$SYSROOT as it is not an absolute path." >&5 --$as_echo "$as_me: WARNING: Ignoring \$SYSROOT as it is not an absolute path." >&2;} -- ;; -- esac -- fi -- fi -- -- # Extract the first word of "gpg-error-config", so it can be a program name with args. --set dummy gpg-error-config; ac_word=$2 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 --$as_echo_n "checking for $ac_word... " >&6; } --if ${ac_cv_path_GPG_ERROR_CONFIG+:} false; then : -- $as_echo_n "(cached) " >&6 --else -- case $GPG_ERROR_CONFIG in -- [\\/]* | ?:[\\/]*) -- ac_cv_path_GPG_ERROR_CONFIG="$GPG_ERROR_CONFIG" # Let the user override the test with a path. -- ;; -- *) -- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR --for as_dir in $PATH --do -- IFS=$as_save_IFS -- test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -- ac_cv_path_GPG_ERROR_CONFIG="$as_dir/$ac_word$ac_exec_ext" -- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -- break 2 -- fi --done -- done --IFS=$as_save_IFS -- -- test -z "$ac_cv_path_GPG_ERROR_CONFIG" && ac_cv_path_GPG_ERROR_CONFIG="no" -- ;; --esac --fi --GPG_ERROR_CONFIG=$ac_cv_path_GPG_ERROR_CONFIG --if test -n "$GPG_ERROR_CONFIG"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GPG_ERROR_CONFIG" >&5 --$as_echo "$GPG_ERROR_CONFIG" >&6; } --else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 --$as_echo "no" >&6; } --fi -- -- -- min_gpg_error_version="$NEED_GPG_ERROR_VERSION" -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GPG Error - version >= $min_gpg_error_version" >&5 --$as_echo_n "checking for GPG Error - version >= $min_gpg_error_version... " >&6; } -- ok=no -- if test "$GPG_ERROR_CONFIG" != "no" \ -- && test -f "$GPG_ERROR_CONFIG" ; then -- req_major=`echo $min_gpg_error_version | \ -- sed 's/\([0-9]*\)\.\([0-9]*\)/\1/'` -- req_minor=`echo $min_gpg_error_version | \ -- sed 's/\([0-9]*\)\.\([0-9]*\)/\2/'` -- gpg_error_config_version=`$GPG_ERROR_CONFIG $gpg_error_config_args --version` -- major=`echo $gpg_error_config_version | \ -- sed 's/\([0-9]*\)\.\([0-9]*\).*/\1/'` -- minor=`echo $gpg_error_config_version | \ -- sed 's/\([0-9]*\)\.\([0-9]*\).*/\2/'` -- if test "$major" -gt "$req_major"; then -- ok=yes -- else -- if test "$major" -eq "$req_major"; then -- if test "$minor" -ge "$req_minor"; then -- ok=yes -- fi -- fi -- fi -- fi -- if test $ok = yes; then -- GPG_ERROR_CFLAGS=`$GPG_ERROR_CONFIG $gpg_error_config_args --cflags` -- GPG_ERROR_LIBS=`$GPG_ERROR_CONFIG $gpg_error_config_args --libs` -- GPG_ERROR_MT_CFLAGS=`$GPG_ERROR_CONFIG $gpg_error_config_args --mt --cflags 2>/dev/null` -- GPG_ERROR_MT_LIBS=`$GPG_ERROR_CONFIG $gpg_error_config_args --mt --libs 2>/dev/null` -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes ($gpg_error_config_version)" >&5 --$as_echo "yes ($gpg_error_config_version)" >&6; } -- : -- gpg_error_config_host=`$GPG_ERROR_CONFIG $gpg_error_config_args --host 2>/dev/null || echo none` -- if test x"$gpg_error_config_host" != xnone ; then -- if test x"$gpg_error_config_host" != x"$host" ; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --*** --*** The config script $GPG_ERROR_CONFIG was --*** built for $gpg_error_config_host and thus may not match the --*** used host $host. --*** You may want to use the configure option --with-gpg-error-prefix --*** to specify a matching config script or use \$SYSROOT. --***" >&5 --$as_echo "$as_me: WARNING: --*** --*** The config script $GPG_ERROR_CONFIG was --*** built for $gpg_error_config_host and thus may not match the --*** used host $host. --*** You may want to use the configure option --with-gpg-error-prefix --*** to specify a matching config script or use \$SYSROOT. --***" >&2;} -- gpg_config_script_warn="$gpg_config_script_warn libgpg-error" -- fi -- fi -- else -- GPG_ERROR_CFLAGS="" -- GPG_ERROR_LIBS="" -- GPG_ERROR_MT_CFLAGS="" -- GPG_ERROR_MT_LIBS="" -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 --$as_echo "no" >&6; } -- : -- fi -- -- -- -- -- --if test "x$GPG_ERROR_LIBS" = "x"; then -- as_fn_error $? "libgpg-error is needed. -- See ftp://ftp.gnupg.org/gcrypt/libgpg-error/ ." "$LINENO" 5 --fi - - - $as_echo "#define GPG_ERR_SOURCE_DEFAULT GPG_ERR_SOURCE_GCRYPT" >>confdefs.h diff --git a/libgpg-error-1.24.local.patch b/libgpg-error-1.24.local.patch deleted file mode 100644 index 208e47a1..00000000 --- a/libgpg-error-1.24.local.patch +++ /dev/null @@ -1,56 +0,0 @@ -diff -ru --new-file libgpg-error-1.24.orig/src/syscfg/lock-obj-pub.i686-nt64-midipix.h libgpg-error-1.24/src/syscfg/lock-obj-pub.i686-nt64-midipix.h ---- libgpg-error-1.24.orig/src/syscfg/lock-obj-pub.i686-nt64-midipix.h 1970-01-01 01:00:00.000000000 +0100 -+++ libgpg-error-1.24/src/syscfg/lock-obj-pub.i686-nt64-midipix.h 2015-03-06 10:36:24.000000000 +0100 -@@ -0,0 +1,23 @@ -+## lock-obj-pub.i686-pc-linux-gnu.h -+## File created by gen-posix-lock-obj - DO NOT EDIT -+## To be included by mkheader into gpg-error.h -+ -+typedef struct -+{ -+ long _vers; -+ union { -+ volatile char _priv[24]; -+ long _x_align; -+ long *_xp_align; -+ } u; -+} gpgrt_lock_t; -+ -+#define GPGRT_LOCK_INITIALIZER {1,{{0,0,0,0,0,0,0,0, \ -+ 0,0,0,0,0,0,0,0, \ -+ 0,0,0,0,0,0,0,0}}} -+## -+## Local Variables: -+## mode: c -+## buffer-read-only: t -+## End: -+## -diff -ru --new-file libgpg-error-1.24.orig/src/syscfg/lock-obj-pub.x86_64-nt64-midipix.h libgpg-error-1.24/src/syscfg/lock-obj-pub.x86_64-nt64-midipix.h ---- libgpg-error-1.24.orig/src/syscfg/lock-obj-pub.x86_64-nt64-midipix.h 1970-01-01 01:00:00.000000000 +0100 -+++ libgpg-error-1.24/src/syscfg/lock-obj-pub.x86_64-nt64-midipix.h 2016-03-14 14:04:33.000000000 +0100 -@@ -0,0 +1,25 @@ -+## lock-obj-pub.x86_64-pc-linux-musl.h -+## File created by gen-posix-lock-obj - DO NOT EDIT -+## To be included by mkheader into gpg-error.h -+ -+typedef struct -+{ -+ long _vers; -+ union { -+ volatile char _priv[40]; -+ long _x_align; -+ long *_xp_align; -+ } u; -+} gpgrt_lock_t; -+ -+#define GPGRT_LOCK_INITIALIZER {1,{{0,0,0,0,0,0,0,0, \ -+ 0,0,0,0,0,0,0,0, \ -+ 0,0,0,0,0,0,0,0, \ -+ 0,0,0,0,0,0,0,0, \ -+ 0,0,0,0,0,0,0,0}}} -+## -+## Local Variables: -+## mode: c -+## buffer-read-only: t -+## End: -+## diff --git a/libksba-1.3.5.local.patch b/libksba-1.3.5.local.patch deleted file mode 100644 index 9c9420b0..00000000 --- a/libksba-1.3.5.local.patch +++ /dev/null @@ -1,160 +0,0 @@ ---- libksba-1.3.5/baconfigure.orig 2016-08-22 11:56:54.000000000 +0200 -+++ libksba-1.3.5/configure 2016-10-18 22:46:31.763896688 +0200 -@@ -13852,155 +13852,9 @@ - # Checks for libraries. - # - -- gpg_error_config_prefix="" -+#Overcomplicated and useless check for gpg-error, use CFLAGS and LDFLAGS! >:( -+ GPG_ERROR_LIBS="-lgpg-error" - --# Check whether --with-libgpg-error-prefix was given. --if test "${with_libgpg_error_prefix+set}" = set; then : -- withval=$with_libgpg_error_prefix; gpg_error_config_prefix="$withval" --fi -- -- -- --# Check whether --with-gpg-error-prefix was given. --if test "${with_gpg_error_prefix+set}" = set; then : -- withval=$with_gpg_error_prefix; gpg_error_config_prefix="$withval" --fi -- -- -- if test x"${GPG_ERROR_CONFIG}" = x ; then -- if test x"${gpg_error_config_prefix}" != x ; then -- GPG_ERROR_CONFIG="${gpg_error_config_prefix}/bin/gpg-error-config" -- else -- case "${SYSROOT}" in -- /*) -- if test -x "${SYSROOT}/bin/gpg-error-config" ; then -- GPG_ERROR_CONFIG="${SYSROOT}/bin/gpg-error-config" -- fi -- ;; -- '') -- ;; -- *) -- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring \$SYSROOT as it is not an absolute path." >&5 --$as_echo "$as_me: WARNING: Ignoring \$SYSROOT as it is not an absolute path." >&2;} -- ;; -- esac -- fi -- fi -- -- # Extract the first word of "gpg-error-config", so it can be a program name with args. --set dummy gpg-error-config; ac_word=$2 --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 --$as_echo_n "checking for $ac_word... " >&6; } --if ${ac_cv_path_GPG_ERROR_CONFIG+:} false; then : -- $as_echo_n "(cached) " >&6 --else -- case $GPG_ERROR_CONFIG in -- [\\/]* | ?:[\\/]*) -- ac_cv_path_GPG_ERROR_CONFIG="$GPG_ERROR_CONFIG" # Let the user override the test with a path. -- ;; -- *) -- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR --for as_dir in $PATH --do -- IFS=$as_save_IFS -- test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -- ac_cv_path_GPG_ERROR_CONFIG="$as_dir/$ac_word$ac_exec_ext" -- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -- break 2 -- fi --done -- done --IFS=$as_save_IFS -- -- test -z "$ac_cv_path_GPG_ERROR_CONFIG" && ac_cv_path_GPG_ERROR_CONFIG="no" -- ;; --esac --fi --GPG_ERROR_CONFIG=$ac_cv_path_GPG_ERROR_CONFIG --if test -n "$GPG_ERROR_CONFIG"; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GPG_ERROR_CONFIG" >&5 --$as_echo "$GPG_ERROR_CONFIG" >&6; } --else -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 --$as_echo "no" >&6; } --fi -- -- -- min_gpg_error_version="$NEED_GPG_ERROR_VERSION" -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GPG Error - version >= $min_gpg_error_version" >&5 --$as_echo_n "checking for GPG Error - version >= $min_gpg_error_version... " >&6; } -- ok=no -- if test "$GPG_ERROR_CONFIG" != "no" \ -- && test -f "$GPG_ERROR_CONFIG" ; then -- req_major=`echo $min_gpg_error_version | \ -- sed 's/\([0-9]*\)\.\([0-9]*\)/\1/'` -- req_minor=`echo $min_gpg_error_version | \ -- sed 's/\([0-9]*\)\.\([0-9]*\)/\2/'` -- gpg_error_config_version=`$GPG_ERROR_CONFIG $gpg_error_config_args --version` -- major=`echo $gpg_error_config_version | \ -- sed 's/\([0-9]*\)\.\([0-9]*\).*/\1/'` -- minor=`echo $gpg_error_config_version | \ -- sed 's/\([0-9]*\)\.\([0-9]*\).*/\2/'` -- if test "$major" -gt "$req_major"; then -- ok=yes -- else -- if test "$major" -eq "$req_major"; then -- if test "$minor" -ge "$req_minor"; then -- ok=yes -- fi -- fi -- fi -- fi -- if test $ok = yes; then -- GPG_ERROR_CFLAGS=`$GPG_ERROR_CONFIG $gpg_error_config_args --cflags` -- GPG_ERROR_LIBS=`$GPG_ERROR_CONFIG $gpg_error_config_args --libs` -- GPG_ERROR_MT_CFLAGS=`$GPG_ERROR_CONFIG $gpg_error_config_args --mt --cflags 2>/dev/null` -- GPG_ERROR_MT_LIBS=`$GPG_ERROR_CONFIG $gpg_error_config_args --mt --libs 2>/dev/null` -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes ($gpg_error_config_version)" >&5 --$as_echo "yes ($gpg_error_config_version)" >&6; } -- : -- gpg_error_config_host=`$GPG_ERROR_CONFIG $gpg_error_config_args --host 2>/dev/null || echo none` -- if test x"$gpg_error_config_host" != xnone ; then -- if test x"$gpg_error_config_host" != x"$host" ; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --*** --*** The config script $GPG_ERROR_CONFIG was --*** built for $gpg_error_config_host and thus may not match the --*** used host $host. --*** You may want to use the configure option --with-gpg-error-prefix --*** to specify a matching config script or use \$SYSROOT. --***" >&5 --$as_echo "$as_me: WARNING: --*** --*** The config script $GPG_ERROR_CONFIG was --*** built for $gpg_error_config_host and thus may not match the --*** used host $host. --*** You may want to use the configure option --with-gpg-error-prefix --*** to specify a matching config script or use \$SYSROOT. --***" >&2;} -- gpg_config_script_warn="$gpg_config_script_warn libgpg-error" -- fi -- fi -- else -- GPG_ERROR_CFLAGS="" -- GPG_ERROR_LIBS="" -- GPG_ERROR_MT_CFLAGS="" -- GPG_ERROR_MT_LIBS="" -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 --$as_echo "no" >&6; } -- : -- fi -- -- -- -- -- --if test "x$GPG_ERROR_LIBS" = "x"; then -- as_fn_error $? "libgpg-error is needed. -- See ftp://ftp.gnupg.org/gcrypt/libgpg-error/ ." "$LINENO" 5 --fi - - - $as_echo "#define GPG_ERR_SOURCE_DEFAULT GPG_ERR_SOURCE_KSBA" >>confdefs.h diff --git a/libressl-2.2.6.local.patch b/libressl-2.2.6.local.patch deleted file mode 100644 index 759cfecd..00000000 --- a/libressl-2.2.6.local.patch +++ /dev/null @@ -1,193 +0,0 @@ ---- libressl-2.2.6/crypto/compat/arc4random.h.orig 2015-10-15 23:18:44.000000000 +0200 -+++ libressl-2.2.6/crypto/compat/arc4random.h 2016-02-12 17:19:40.815245600 +0100 -@@ -12,7 +12,7 @@ - #elif defined(__hpux) - #include "arc4random_hpux.h" - --#elif defined(__linux__) -+#elif defined(__linux__) || defined(__MIDIPIX) - #include "arc4random_linux.h" - - #elif defined(__NetBSD__) ---- libressl-2.2.6/crypto/compat/getentropy_linux.c.orig 2015-10-16 00:04:58.000000000 +0200 -+++ libressl-2.2.6/crypto/compat/getentropy_linux.c 2016-02-12 17:48:47.474391200 +0100 -@@ -27,7 +27,7 @@ - #include - #include - #include --#ifdef SYS__sysctl -+#if defined(SYS__sysctl) && !defined(__MIDIPIX) - #include - #endif - #include -@@ -49,8 +49,10 @@ - #include - #include - -+#ifndef __MIDIPIX - #include - #include -+#endif - #ifdef HAVE_GETAUXVAL - #include - #endif -@@ -78,7 +80,7 @@ - static int getentropy_getrandom(void *buf, size_t len); - #endif - static int getentropy_urandom(void *buf, size_t len); --#ifdef SYS__sysctl -+#if defined(SYS__sysctl) && !defined(__MIDIPIX) - static int getentropy_sysctl(void *buf, size_t len); - #endif - static int getentropy_fallback(void *buf, size_t len); -@@ -115,7 +117,7 @@ - if (ret != -1) - return (ret); - --#ifdef SYS__sysctl -+#if defined(SYS__sysctl) && !defined(__MIDIPIX) - /* - * Try to use sysctl CTL_KERN, KERN_RANDOM, RANDOM_UUID. - * sysctl is a failsafe API, so it guarantees a result. This -@@ -241,10 +243,12 @@ - close(fd); - goto nodevrandom; - } -+#ifndef __MIDIPIX - if (ioctl(fd, RNDGETENTCNT, &cnt) == -1) { - close(fd); - goto nodevrandom; - } -+#endif - for (i = 0; i < len; ) { - size_t wanted = len - i; - ssize_t ret = read(fd, (char *)buf + i, wanted); -@@ -267,7 +271,7 @@ - return -1; - } - --#ifdef SYS__sysctl -+#if defined(SYS__sysctl) && !defined(__MIDIPIX) - static int - getentropy_sysctl(void *buf, size_t len) - { ---- libressl-2.2.6/crypto/Makefile.in.orig 2016-01-28 19:18:08.000000000 +0100 -+++ libressl-2.2.6/crypto/Makefile.in 2016-02-12 17:19:40.823245600 +0100 -@@ -111,10 +111,11 @@ - @HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_FREEBSD_TRUE@am__append_19 = compat/getentropy_freebsd.c - @HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_HPUX_TRUE@am__append_20 = compat/getentropy_hpux.c - @HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_LINUX_TRUE@am__append_21 = compat/getentropy_linux.c --@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_NETBSD_TRUE@am__append_22 = compat/getentropy_netbsd.c --@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_DARWIN_TRUE@am__append_23 = compat/getentropy_osx.c --@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_SOLARIS_TRUE@am__append_24 = compat/getentropy_solaris.c --@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_WIN_TRUE@am__append_25 = compat/getentropy_win.c -+@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_MIDIPIX_TRUE@am__append_22 = compat/getentropy_linux.c -+@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_NETBSD_TRUE@am__append_23 = compat/getentropy_netbsd.c -+@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_DARWIN_TRUE@am__append_24 = compat/getentropy_osx.c -+@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_SOLARIS_TRUE@am__append_25 = compat/getentropy_solaris.c -+@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_WIN_TRUE@am__append_26 = compat/getentropy_win.c - @HOST_ASM_ELF_X86_64_TRUE@am__append_26 = -DAES_ASM -DBSAES_ASM \ - @HOST_ASM_ELF_X86_64_TRUE@ -DVPAES_ASM -DOPENSSL_IA32_SSE2 \ - @HOST_ASM_ELF_X86_64_TRUE@ -DOPENSSL_BN_ASM_MONT \ -@@ -220,17 +221,18 @@ - @HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_FREEBSD_TRUE@am__objects_13 = compat/getentropy_freebsd.lo - @HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_HPUX_TRUE@am__objects_14 = compat/getentropy_hpux.lo - @HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_LINUX_TRUE@am__objects_15 = compat/getentropy_linux.lo --@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_NETBSD_TRUE@am__objects_16 = compat/getentropy_netbsd.lo --@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_DARWIN_TRUE@am__objects_17 = compat/getentropy_osx.lo --@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_SOLARIS_TRUE@am__objects_18 = compat/getentropy_solaris.lo --@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_WIN_TRUE@am__objects_19 = compat/getentropy_win.lo -+@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_MIDIPIX_TRUE@am__objects_16 = compat/getentropy_linux.lo -+@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_NETBSD_TRUE@am__objects_17 = compat/getentropy_netbsd.lo -+@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_DARWIN_TRUE@am__objects_18 = compat/getentropy_osx.lo -+@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_SOLARIS_TRUE@am__objects_19 = compat/getentropy_solaris.lo -+@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_WIN_TRUE@am__objects_20 = compat/getentropy_win.lo - am_libcompat_la_OBJECTS = $(am__objects_1) $(am__objects_2) \ - $(am__objects_3) $(am__objects_4) $(am__objects_5) \ - $(am__objects_6) $(am__objects_7) $(am__objects_8) \ - $(am__objects_9) $(am__objects_10) $(am__objects_11) \ - $(am__objects_12) $(am__objects_13) $(am__objects_14) \ - $(am__objects_15) $(am__objects_16) $(am__objects_17) \ -- $(am__objects_18) $(am__objects_19) -+ $(am__objects_18) $(am__objects_19) $(am__objects_20) - libcompat_la_OBJECTS = $(am_libcompat_la_OBJECTS) - AM_V_lt = $(am__v_lt_@AM_V@) - am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -@@ -985,7 +987,7 @@ - $(am__append_16) $(am__append_17) $(am__append_18) \ - $(am__append_19) $(am__append_20) $(am__append_21) \ - $(am__append_22) $(am__append_23) $(am__append_24) \ -- $(am__append_25) -+ $(am__append_25) $(am__append_26) - libcompat_la_LIBADD = $(PLATFORM_LDADD) - - # rc4 ---- libressl-2.2.6/include/compat/machine/endian.h.orig 2015-10-15 23:18:44.000000000 +0200 -+++ libressl-2.2.6/include/compat/machine/endian.h 2016-02-12 17:19:40.827245600 +0100 -@@ -21,7 +21,7 @@ - #define BYTE_ORDER BIG_ENDIAN - #endif - --#elif defined(__linux__) -+#elif defined(__linux__) || defined(__MIDIPIX) - #include - - #elif defined(__sun) || defined(_AIX) || defined(__hpux) ---- libressl-2.2.6/configure.orig 2016-01-28 18:18:06.000000000 +0000 -+++ libressl-2.2.6/configure 2016-02-23 13:25:30.689963257 +0000 -@@ -690,6 +690,8 @@ - HOST_NETBSD_TRUE - HOST_LINUX_FALSE - HOST_LINUX_TRUE -+HOST_MIDIPIX_FALSE -+HOST_MIDIPIX_TRUE - HOST_HPUX_FALSE - HOST_HPUX_TRUE - HOST_FREEBSD_FALSE -@@ -10824,7 +10826,7 @@ - ;; - - # This must be glibc/ELF. --linux* | k*bsd*-gnu | kopensolaris*-gnu) -+linux* | k*bsd*-gnu | kopensolaris*-gnu | midipix*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no -@@ -11902,6 +11904,11 @@ - HOST_ABI=elf - CPPFLAGS="$CPPFLAGS -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_POSIX_SOURCE -D_GNU_SOURCE" - ;; -+ *midipix*) -+ HOST_OS=midipix -+ HOST_ABI=pe -+ CFLAGS="$CFLAGS -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_POSIX_SOURCE -D_GNU_SOURCE" -+ ;; - *netbsd*) - HOST_OS=netbsd - CPPFLAGS="$CPPFLAGS -D_OPENBSD_SOURCE" -@@ -11981,6 +11988,14 @@ - HOST_LINUX_FALSE= - fi - -+ if test x$HOST_OS = xmidipix; then -+ HOST_MIDIPIX_TRUE= -+ HOST_MIDIPIX_FALSE='#' -+else -+ HOST_MIDIPIX_TRUE='#' -+ HOST_MIDIPIX_FALSE= -+fi -+ - if test x$HOST_OS = xnetbsd; then - HOST_NETBSD_TRUE= - HOST_NETBSD_FALSE='#' -@@ -13422,6 +13437,10 @@ - as_fn_error $? "conditional \"HOST_LINUX\" was never defined. - Usually this means the macro was only invoked conditionally." "$LINENO" 5 - fi -+if test -z "${HOST_MIDIPIX_TRUE}" && test -z "${HOST_MIDIPIX_FALSE}"; then -+ as_fn_error $? "conditional \"HOST_MIDIPIX\" was never defined. -+Usually this means the macro was only invoked conditionally." "$LINENO" 5 -+fi - if test -z "${HOST_NETBSD_TRUE}" && test -z "${HOST_NETBSD_FALSE}"; then - as_fn_error $? "conditional \"HOST_NETBSD\" was never defined. - Usually this means the macro was only invoked conditionally." "$LINENO" 5 diff --git a/lua-5.3.3.local.patch b/lua-5.3.3.local.patch deleted file mode 100644 index e4a035d1..00000000 --- a/lua-5.3.3.local.patch +++ /dev/null @@ -1,128 +0,0 @@ ---- lua-5.3.3/src/luaconf.h.orig 2016-05-01 20:06:09.000000000 +0000 -+++ lua-5.3.3/src/luaconf.h 2016-06-23 10:02:23.471604030 +0000 -@@ -72,6 +72,12 @@ - #endif - - -+#if defined(LUA_USE_MIDIPIX) -+#define LUA_USE_POSIX -+#define LUA_USE_DLOPEN /* needs an extra library: -ldl */ -+#endif -+ -+ - /* - @@ LUA_C89_NUMBERS ensures that Lua uses the largest types available for - ** C89 ('long' and 'double'); Windows always has '__int64', so it does -@@ -188,7 +194,7 @@ - - #else /* }{ */ - --#define LUA_ROOT "/usr/local/" -+#define LUA_ROOT "/usr/" - #define LUA_LDIR LUA_ROOT "share/lua/" LUA_VDIR "/" - #define LUA_CDIR LUA_ROOT "lib/lua/" LUA_VDIR "/" - #define LUA_PATH_DEFAULT \ ---- lua-5.3.3/src/Makefile.orig 2015-05-27 11:10:11.000000000 +0000 -+++ lua-5.3.3/src/Makefile 2016-06-23 10:45:40.323546394 +0000 -@@ -26,9 +26,10 @@ - - # == END OF USER SETTINGS -- NO NEED TO CHANGE ANYTHING BELOW THIS LINE ======= - --PLATS= aix bsd c89 freebsd generic linux macosx mingw posix solaris -+PLATS= aix bsd c89 freebsd generic linux macosx midipix mingw posix solaris - - LUA_A= liblua.a -+LUA_SO= liblua.so - CORE_O= lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o \ - lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o \ - ltm.o lundump.o lvm.o lzio.o -@@ -36,14 +37,14 @@ - lmathlib.o loslib.o lstrlib.o ltablib.o lutf8lib.o loadlib.o linit.o - BASE_O= $(CORE_O) $(LIB_O) $(MYOBJS) - --LUA_T= lua -+LUA_T= lua$(V) - LUA_O= lua.o - --LUAC_T= luac -+LUAC_T= luac$(V) - LUAC_O= luac.o - - ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O) --ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) -+ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) $(LUA_SO) - ALL_A= $(LUA_A) - - # Targets start here. -@@ -56,9 +57,14 @@ - a: $(ALL_A) - - $(LUA_A): $(BASE_O) -- $(AR) $@ $(BASE_O) -+ $(AR) rcs $@ $(BASE_O) - $(RANLIB) $@ - -+$(LUA_SO): $(CORE_O) $(LIB_O) -+ $(CC) -shared -ldl -Wl,-soname,$(LUA_SO).$(V) -o $@.$(R) $? -lm $(MYLDFLAGS) -+ ln -sf $(LUA_SO).$(R) $(LUA_SO).$(V) -+ ln -sf $(LUA_SO).$(R) $(LUA_SO) -+ - $(LUA_T): $(LUA_O) $(LUA_A) - $(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS) - -@@ -112,6 +118,9 @@ - macosx: - $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_MACOSX" SYSLIBS="-lreadline" CC=cc - -+midipix: -+ $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_MIDIPIX" SYSLIBS="-Wl,-E -ldl" -+ - mingw: - $(MAKE) "LUA_A=lua53.dll" "LUA_T=lua.exe" \ - "AR=$(CC) -shared -o" "RANLIB=strip --strip-unneeded" \ ---- lua-5.3.3/Makefile.orig 2015-05-27 11:10:11.000000000 +0000 -+++ lua-5.3.3/Makefile 2016-06-23 10:59:29.519527991 +0000 -@@ -36,23 +36,25 @@ - # == END OF USER SETTINGS -- NO NEED TO CHANGE ANYTHING BELOW THIS LINE ======= - - # Convenience platforms targets. --PLATS= aix bsd c89 freebsd generic linux macosx mingw posix solaris -+PLATS= aix bsd c89 freebsd generic linux macosx midipix mingw posix solaris -+ -+# Lua version and release. -+V= 5.3 -+R= $V.3 - - # What to install. --TO_BIN= lua luac -+TO_BIN= lua$(V) luac$(V) -+TO_BIN_LINKS= lua$(V):lua luac$(V):luac - TO_INC= lua.h luaconf.h lualib.h lauxlib.h lua.hpp - TO_LIB= liblua.a -+TO_LIBSO= liblua.so liblua.so.$V - TO_MAN= lua.1 luac.1 - --# Lua version and release. --V= 5.3 --R= $V.3 -- - # Targets start here. - all: $(PLAT) - - $(PLATS) clean: -- cd src && $(MAKE) $@ -+ cd src && $(MAKE) $@ V=$(V) R=$(R) - - test: dummy - src/lua -v -@@ -60,8 +62,10 @@ - install: dummy - cd src && $(MKDIR) $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB) $(INSTALL_MAN) $(INSTALL_LMOD) $(INSTALL_CMOD) - cd src && $(INSTALL_EXEC) $(TO_BIN) $(INSTALL_BIN) -+ cd src && for FNAME in $(TO_BIN_LINKS); do echo ln -fs $${FNAME%:*} $(INSTALL_BIN)/$${FNAME#*:}; ln -fs $${FNAME%:*} $(INSTALL_BIN)/$${FNAME#*:}; done - cd src && $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC) - cd src && $(INSTALL_DATA) $(TO_LIB) $(INSTALL_LIB) -+ cd src && $(INSTALL_EXEC) $(TO_LIBSO) $(INSTALL_LIB) - cd doc && $(INSTALL_DATA) $(TO_MAN) $(INSTALL_MAN) - - uninstall: diff --git a/mc-4.8.17.local.patch b/mc-4.8.17.local.patch deleted file mode 100644 index 05c2ac50..00000000 --- a/mc-4.8.17.local.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- mc-4.8.17/configure.orig 2016-05-07 18:13:45.000000000 +0200 -+++ mc-4.8.17/configure 2016-09-06 18:16:45.987179012 +0200 -@@ -19922,7 +19922,7 @@ - - - # Determine how to get the list of mounted file systems. --ac_list_mounted_fs= -+#ac_list_mounted_fs= - - # If the getmntent function is available but not in the standard library, - # make sure LIBS contains the appropriate -l option. -@@ -20634,7 +20634,7 @@ - - - # Determine how to get the list of mounted file systems. --ac_list_mounted_fs= -+#ac_list_mounted_fs= - - # If the getmntent function is available but not in the standard library, - # make sure LIBS contains the appropriate -l option. diff --git a/midipix.sh b/midipix.sh deleted file mode 100755 index cc168d18..00000000 --- a/midipix.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/sh - -set -o noglob; -if [ -z "${PATH##/bin:*}" \ --a -z "${PATH##*:/bin:*}" \ --a -z "${PATH##*:/bin}" ]; then - export PATH="/bin${PATH:+:${PATH}}"; -fi; -while getopts m __; do -case ${__} in -m) MIDIPIX_DNAME_DIST=minipix; ;; -*) echo "usage: $0 [-m] [Cygwin pathname to Midipix root]"; - echo " -m: use Minipix distribution"; exit 0; -esac; done; -if [ -n "${1}" ]; then - MIDIPIX_PATH=$(cygpath -am "${1}"); cd ${MIDIPIX_PATH} || exit 1; -else - MIDIPIX_PATH=$(cygpath -am .); -fi; -printf "%-35s: %s\n" "Absolute Midipix pathname" "${MIDIPIX_PATH}"; -printf "%-35s: %s\n" "Distribution name" "${MIDIPIX_DNAME_DIST:=native}"; -if [ -f libpsxscl.log ]; then - echo Found libpsxscl.log, copying to libpsxscl.last. - if ! cp -p -- libpsxscl.log libpsxscl.last; then - echo "(cp(1) returned ${?}, ignored.)"; - fi; -fi; -if [ "$(uname -o)" = "Msys" ]; then - export MSYS2_ARG_CONV_EXCL="*"; -fi; -mintty -h always -s 120,80 -e /bin/sh -c " - set -o errexit; - env PATH=${MIDIPIX_PATH}/${MIDIPIX_DNAME_DIST}/lib \ - ${MIDIPIX_DNAME_DIST}/bin/ntctty.exe -e \ - ${MIDIPIX_DNAME_DIST}/bin/chroot ${MIDIPIX_DNAME_DIST} \ - /bin/env PATH=/bin:/lib bash" & -sleep ${SLEEP_DELAY:=0.25}; -printf "%-35s: %s\n" "ntctty PID" "$(ps -W | awk '$NF ~ /ntctty\.exe$/{print $1}')"; - -# vim:filetype=sh diff --git a/midipix_check.sh b/midipix_check.sh deleted file mode 100755 index f669de44..00000000 --- a/midipix_check.sh +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/sh - -set -o errexit -o noglob; -if [ "${1}" = "-m" ]; then - MIDIPIX_DNAME_DIST=minipix; shift; -fi; -if [ -n "${1}" ]; then - MIDIPIX_PATH=$(cygpath -am "${1}"); -else - MIDIPIX_PATH=$(cygpath -am .); -fi; -: ${MIDIPIX_DNAME_DIST:=native}; -echo "Absolute Midipix pathname: ${MIDIPIX_PATH}"; -echo "Distribution name : ${MIDIPIX_DNAME_DIST}"; -printf "%-85s" "Checking if all binaries are present..."; -for __ in chroot env ntctty.exe; do - if [ ! -e ${MIDIPIX_PATH}/${MIDIPIX_DNAME_DIST}/bin/${__} ]; then - printf "\nerror: missing file ${MIDIPIX_PATH}/${MIDIPIX_DNAME_DIST}/bin/${__}\n"; - exit 2; - fi; -done; -printf "\033[97m[ \033[92mOK \033[97m]\033[0m\n"; -printf "%-85s" "Checking ${MIDIPIX_PATH}/${MIDIPIX_DNAME_DIST}/lib for symbolic links..."; -if [ -n "$(find ${MIDIPIX_DNAME_DIST}/lib \ - -maxdepth 1 -name \*.so -type l -print -quit)" ]; then - echo; - echo "Warning: ${MIDIPIX_PATH}/${MIDIPIX_DNAME_DIST}/lib contains shared objects (library" - echo "images) that are symbolic links. This is not supported by Midipix at" - echo "present and commonly occurs if the binary distribution tarball was" - echo "extracted by an application that does not support symbolic links" - echo "correctly. This also occurs when a binary distribution was built locally." - printf "Convert all shared object symbolic links to hard links? (y|N) "; - read __; - case "${__}" in - [yY]) break; ;; - *) echo "Exiting."; exit 3; ;; - esac; - for LINK_NAME in $(find ${MIDIPIX_PATH}/${MIDIPIX_DNAME_DIST}/lib \ - -maxdepth 1 -name \*.so -type l); do - LINK_TARGET="$(readlink -- "${LINK_NAME}")"; - if [ -f "${MIDIPIX_PATH}/native/lib/${LINK_TARGET}" ]; then - echo rm -f -- "${LINK_NAME}"; - rm -f -- "${LINK_NAME}"; - echo ln -f -- "${LINK_TARGET}" "${LINK_NAME}"; - ln -f -- "${LINK_TARGET}" "${LINK_NAME}"; - fi; - done; -fi; -printf "\033[97m[ \033[92mOK \033[97m]\033[0m\n"; - -# vim:filetype=sh diff --git a/nc110.local.patch b/nc110.local.patch deleted file mode 100644 index fcf63536..00000000 --- a/nc110.local.patch +++ /dev/null @@ -1,56 +0,0 @@ ---- nc110/Makefile.orig 1996-03-20 03:16:06.000000000 +0000 -+++ nc110/Makefile 2016-09-11 20:44:21.896119203 +0000 -@@ -9,13 +9,13 @@ - # pick gcc if you'd rather , and/or do -g instead of -O if debugging - # debugging - # DFLAGS = -DTEST -DDEBUG --CFLAGS = -O -+CFLAGS = -O $(CFLAGS_EXTRA) - XFLAGS = # xtra cflags, set by systype targets - XLIBS = # xtra libs if necessary? - # -Bstatic for sunos, -static for gcc, etc. You want this, trust me. - STATIC = --CC = cc $(CFLAGS) --LD = $(CC) -s # linker; defaults to stripped executables -+CC = cc ${CFLAGS} -+LD = $(CC) $(LDFLAGS_DEBUG) # linker; defaults to stripped executables - o = o # object extension - - ALL = nc -@@ -28,7 +28,7 @@ - ### HARD TARGETS - - nc: netcat.c -- $(LD) $(DFLAGS) $(XFLAGS) $(STATIC) -o nc netcat.c $(XLIBS) -+ $(LD) $(CFLAGS) $(LDFLAGS) $(DFLAGS) $(XFLAGS) $(STATIC) -o nc netcat.c $(XLIBS) - - nc-dos: - @echo "DOS?! Maybe someday, but not now" -@@ -109,6 +109,10 @@ - next: - make -e $(ALL) $(MFLAGS) XFLAGS='-DNEXT' STATIC=-Bstatic - -+# midipix -+midipix: -+ make -e $(ALL) $(MFLAGS) XFLAGS='-DLINUX' STATIC= -+ - # start with this for a new architecture, and see what breaks. - generic: - make -e $(ALL) $(MFLAGS) XFLAGS='-DGENERIC' STATIC= ---- nc110/generic.h.orig 1996-02-18 01:36:43.000000000 +0000 -+++ nc110/generic.h 2016-06-15 18:44:06.379382216 +0000 -@@ -360,6 +360,14 @@ - #undef HAVE_SELECT_X - #endif /* NeXTSTEP 3.2 motorola */ - -+/* midipix */ -+#ifdef MIDIPIX -+#undef UTMPX -+#undef HAVE_SYSINFO -+#undef HAVE_SELECT_H -+#undef HAVE_TTYENT_H -+#endif /* midipix */ -+ - /* Make some "generic" assumptions if all else fails */ - #ifdef GENERIC - #undef HAVE_FLOCK diff --git a/ncurses-6.0.local.patch b/ncurses-6.0.local.patch deleted file mode 100644 index 6b86c27b..00000000 --- a/ncurses-6.0.local.patch +++ /dev/null @@ -1,33 +0,0 @@ ---- ncurses-6.0/configure.orig 2015-08-05 09:20:32.000000000 +0000 -+++ ncurses-6.0/configure 2016-02-23 11:33:12.718112802 +0000 -@@ -5856,7 +5856,7 @@ - LD_RPATH_OPT="-rpath " - fi - ;; --(linux*|gnu*|k*bsd*-gnu) -+(linux*|gnu*|k*bsd*-gnu|midipix*) - LD_RPATH_OPT="-Wl,-rpath," - ;; - (openbsd[2-9].*|mirbsd*) -@@ -6188,7 +6188,7 @@ - fi - cf_cv_rm_so_locs=yes - ;; -- (linux*|gnu*|k*bsd*-gnu) -+ (linux*|gnu*|k*bsd*-gnu|midipix*) - if test "$DFT_LWR_MODEL" = "shared" ; then - LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)" - LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" ---- ncurses-6.0/misc/Makefile.in.orig 2015-08-05 23:15:41.000000000 +0000 -+++ ncurses-6.0/misc/Makefile.in 2016-06-23 08:40:43.767712775 +0000 -@@ -110,8 +110,8 @@ - install.libs :: $(DESTDIR)$(bindir) ncurses-config - $(INSTALL_SCRIPT) ncurses-config $(DESTDIR)$(bindir)/$(NCURSES_CONFIG) - --@MAKE_PC_FILES@install.libs :: pc-files $(DESTDIR)$(PKG_CONFIG_LIBDIR) --@MAKE_PC_FILES@ $(SHELL) -c 'for name in *.pc; do $(INSTALL_DATA) $$name $(DESTDIR)$(PKG_CONFIG_LIBDIR)/$$name; done' -+@MAKE_PC_FILES@install.libs :: pc-files $(PKG_CONFIG_LIBDIR) -+@MAKE_PC_FILES@ $(SHELL) -c 'for name in *.pc; do $(INSTALL_DATA) $$name $(PKG_CONFIG_LIBDIR)/$$name; done' - - @MAKE_PC_FILES@sources :: pc-files - @MAKE_PC_FILES@pc-files : diff --git a/p7zip.local.patch b/p7zip.local.patch deleted file mode 100644 index e9233672..00000000 --- a/p7zip.local.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -ru midipix_build.orig/build.vars midipix_build/build.vars ---- midipix_build.orig/build.vars 2016-11-11 20:27:40.381427111 +0100 -+++ midipix_build/build.vars 2016-11-11 23:23:58.045425113 +0100 -@@ -640,5 +640,10 @@ - : ${PKG_ZSH_SHA256SUM:=f17916320ffaa844bbd7ce48ceeb5945fc5f3eff64b149b4229bbfbdf3795a9d}; - : ${PKG_ZSH_URL:="https://fourdots.com/mirror/zsh/zsh-${PKG_ZSH_VERSION}.tar.xz"}; - : ${PKG_ZSH_FNAME:=zsh-${PKG_ZSH_VERSION}.tar.xz}; -+: ${PKG_P7ZIP_URL_TYPE:=git}; -+: ${PKG_P7ZIP_URL:=https://github.com/Redfoxmoon3/p7zip-midipix.git}; -+: ${PKG_P7ZIP_BUILD_DIR:=p7zip-midipix.git}; -+: ${PKG_P7ZIP_NO_MAKE_INSTALL:=1}; -+: ${PKG_P7ZIP_INSTALL_FILES:="bin/7za=bin/"}; - - # vim:filetype=sh textwidth=0 diff --git a/pacman-5.0.1.local.patch b/pacman-5.0.1.local.patch deleted file mode 100644 index 7df4cd24..00000000 --- a/pacman-5.0.1.local.patch +++ /dev/null @@ -1,44 +0,0 @@ ---- pacman-5.0.1/lib/libalpm/Makefile.am.orig 2016-02-23 03:46:25.000000000 +0000 -+++ pacman-5.0.1/lib/libalpm/Makefile.am 2016-05-31 06:39:23.693111052 +0000 -@@ -78,6 +78,7 @@ - $(GPGME_LIBS) \ - $(LIBARCHIVE_LIBS) \ - $(LIBCURL_LIBS) \ -- $(LIBSSL_LIBS) -+ $(LIBSSL_LIBS) \ -+ $(LIBALPM_LIBS) - - # vim:set noet: ---- pacman-5.0.1/src/pacman/Makefile.am.orig 2016-02-23 03:46:25.000000000 +0000 -+++ pacman-5.0.1/src/pacman/Makefile.am 2016-05-31 08:33:33.452959027 +0000 -@@ -47,6 +47,6 @@ - util.h util.c \ - util-common.h util-common.c - --LDADD = $(LTLIBINTL) $(top_builddir)/lib/libalpm/.libs/libalpm.la -+LDADD = $(LTLIBINTL) $(top_builddir)/lib/libalpm/libalpm.la - - # vim:set noet: ---- pacman-5.0.1/src/util/Makefile.am.orig 2016-02-23 03:46:25.000000000 +0000 -+++ pacman-5.0.1/src/util/Makefile.am 2016-05-31 08:33:48.912958683 +0000 -@@ -19,16 +19,16 @@ - $(LIBARCHIVE_CFLAGS) - - cleanupdelta_SOURCES = cleanupdelta.c --cleanupdelta_LDADD = $(top_builddir)/lib/libalpm/.libs/libalpm.la -+cleanupdelta_LDADD = $(top_builddir)/lib/libalpm/libalpm.la - - pacsort_SOURCES = pacsort.c util-common.c --pacsort_LDADD = $(top_builddir)/lib/libalpm/.libs/libalpm.la -+pacsort_LDADD = $(top_builddir)/lib/libalpm/libalpm.la - - pactree_SOURCES = pactree.c util-common.c --pactree_LDADD = $(top_builddir)/lib/libalpm/.libs/libalpm.la -+pactree_LDADD = $(top_builddir)/lib/libalpm/libalpm.la - - testpkg_SOURCES = testpkg.c --testpkg_LDADD = $(top_builddir)/lib/libalpm/.libs/libalpm.la -+testpkg_LDADD = $(top_builddir)/lib/libalpm/libalpm.la - - vercmp_SOURCES = vercmp.c - vercmp_LDADD = $(top_builddir)/lib/libalpm/libalpm_la-version.lo diff --git a/patches/Python-3.5.1.local.patch b/patches/Python-3.5.1.local.patch new file mode 100644 index 00000000..b96f19e7 --- /dev/null +++ b/patches/Python-3.5.1.local.patch @@ -0,0 +1,180 @@ +--- Python-3.5.1/configure.ac.orig 2015-12-07 01:39:11.000000000 +0000 ++++ Python-3.5.1/configure.ac 2016-04-23 12:49:17.142936229 +0000 +@@ -58,6 +58,15 @@ + + if test "$cross_compiling" = yes; then + AC_MSG_CHECKING([for python interpreter for cross build]) ++ AC_MSG_CHECKING(python for build) ++ PYTHON_FOR_BUILD="${PYTHON_FOR_BUILD:-${PWD}/hostpython}" ++ AC_MSG_RESULT($PYTHON_FOR_BUILD) ++ AC_MSG_CHECKING(pgen for build) ++ PGEN_FOR_BUILD="${PGEN_FOR_BUILD:-Parser/hostpgen}" ++ AC_MSG_RESULT($PGEN_FOR_BUILD) ++ AC_MSG_CHECKING(_freeze_importlib for build) ++ _FIP_FOR_BUILD="${_FIP_FOR_BUILD:-Programs/host_freeze_importlib}" ++ AC_MSG_RESULT($_FIP_FOR_BUILD) + if test -z "$PYTHON_FOR_BUILD"; then + for interp in python$PACKAGE_VERSION python3 python; do + which $interp >/dev/null 2>&1 || continue +@@ -75,9 +84,16 @@ + elif test "$cross_compiling" = maybe; then + AC_MSG_ERROR([Cross compiling required --host=HOST-TUPLE and --build=ARCH]) + else +- PYTHON_FOR_BUILD='./$(BUILDPYTHON) -E' ++ PYTHON_FOR_BUILD='$(BUILDPYTHON)' ++ PGEN_FOR_BUILD='$(PGEN)' ++ _FIP_FOR_BUILD='$(_FIP)' + fi + AC_SUBST(PYTHON_FOR_BUILD) ++AC_SUBST(PGEN_FOR_BUILD) ++AC_SUBST(_FIP_FOR_BUILD) ++AC_ARG_VAR(PYTHON_FOR_BUILD,[build system Python]) ++AC_ARG_VAR(PGEN_FOR_BUILD,[build system Python pgen]) ++AC_ARG_VAR(_FIP_FOR_BUILD,[build system Python _freeze_importlib]) + + dnl Ensure that if prefix is specified, it does not end in a slash. If + dnl it does, we get path names containing '//' which is both ugly and +@@ -373,6 +389,9 @@ + *-*-cygwin*) + ac_sys_system=Cygwin + ;; ++ *-*-midipix*) ++ ac_sys_system=Midipix ++ ;; + *) + # for now, limit cross builds to known configurations + MACHDEP="unknown" +@@ -399,6 +418,7 @@ + cygwin*) MACHDEP="cygwin";; + darwin*) MACHDEP="darwin";; + irix646) MACHDEP="irix6";; ++ midipix*) MACHDEP="midipix";; + '') MACHDEP="unknown";; + esac + fi +@@ -406,6 +426,9 @@ + AC_SUBST(_PYTHON_HOST_PLATFORM) + if test "$cross_compiling" = yes; then + case "$host" in ++ *-*-midipix*) ++ _host_cpu= ++ ;; + *-*-linux*) + case "$host_cpu" in + arm*) +--- Python-3.5.1/Makefile.pre.in.orig 2015-12-07 01:39:09.000000000 +0000 ++++ Python-3.5.1/Makefile.pre.in 2016-04-23 12:09:05.162989761 +0000 +@@ -276,6 +276,9 @@ + ########################################################################## + # Parser + PGEN= Parser/pgen$(EXE) ++PGEN_FOR_BUILD= @PGEN_FOR_BUILD@ ++_FIP= Programs/_freeze_importlib$(EXE) ++_FIP_FOR_BUILD= @_FIP_FOR_BUILD@ + + PSRCS= \ + Parser/acceler.c \ +@@ -597,6 +600,7 @@ + esac; \ + $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \ + _TCLTK_INCLUDES='$(TCLTK_INCLUDES)' _TCLTK_LIBS='$(TCLTK_LIBS)' \ ++ _PYTHON_HOST_PLATFORM='$(_PYTHON_HOST_PLATFORM)' \ + $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build + + # Build static library +@@ -708,15 +712,15 @@ + + Programs/_freeze_importlib.o: Programs/_freeze_importlib.c Makefile + +-Programs/_freeze_importlib: Programs/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN) ++$(_FIP): Programs/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN) + $(LINKCC) $(PY_LDFLAGS) -o $@ Programs/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST) + +-Python/importlib_external.h: $(srcdir)/Lib/importlib/_bootstrap_external.py Programs/_freeze_importlib +- ./Programs/_freeze_importlib \ ++Python/importlib_external.h: $(srcdir)/Lib/importlib/_bootstrap_external.py $(_FIP_FOR_BUILD) ++ ./$(_FIP_FOR_BUILD) \ + $(srcdir)/Lib/importlib/_bootstrap_external.py Python/importlib_external.h + +-Python/importlib.h: $(srcdir)/Lib/importlib/_bootstrap.py Programs/_freeze_importlib +- ./Programs/_freeze_importlib \ ++Python/importlib.h: $(srcdir)/Lib/importlib/_bootstrap.py $(_FIP_FOR_BUILD) ++ ./$(_FIP_FOR_BUILD) \ + $(srcdir)/Lib/importlib/_bootstrap.py Python/importlib.h + + +@@ -777,9 +781,9 @@ + + $(IO_OBJS): $(IO_H) + +-$(GRAMMAR_H): $(GRAMMAR_INPUT) $(PGEN) ++$(GRAMMAR_H): $(GRAMMAR_INPUT) $(PGEN_FOR_BUILD) + @$(MKDIR_P) Include +- $(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C) ++ $(PGEN_FOR_BUILD) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C) + $(GRAMMAR_C): $(GRAMMAR_H) + touch $(GRAMMAR_C) + +@@ -1415,6 +1419,7 @@ + # Install the dynamically loadable modules + # This goes into $(exec_prefix) + sharedinstall: sharedmods ++ _PYTHON_HOST_PLATFORM='$(_PYTHON_HOST_PLATFORM)' \ + $(RUNSHARED) $(PYTHON_FOR_BUILD) $(srcdir)/setup.py install \ + --prefix=$(prefix) \ + --install-scripts=$(BINDIR) \ +--- Python-3.5.1/Modules/socketmodule.c.orig 2015-12-07 01:39:10.000000000 +0000 ++++ Python-3.5.1/Modules/socketmodule.c 2016-04-23 12:30:40.854961004 +0000 +@@ -1313,7 +1313,7 @@ + } + #endif + +-#ifdef AF_CAN ++#if defined(HAVE_LINUX_CAN_H) && defined(AF_CAN) + case AF_CAN: + { + struct sockaddr_can *a = (struct sockaddr_can *)addr; +@@ -1810,7 +1810,7 @@ + } + #endif + +-#if defined(AF_CAN) && defined(CAN_RAW) && defined(CAN_BCM) ++#if defined(HAVE_LINUX_CAN_H) && defined(AF_CAN) && defined(CAN_RAW) && defined(CAN_BCM) + case AF_CAN: + switch (s->sock_proto) { + case CAN_RAW: +@@ -2017,7 +2017,7 @@ + } + #endif + +-#ifdef AF_CAN ++#if defined(HAVE_LINUX_CAN_H) && defined(AF_CAN) + case AF_CAN: + { + *len_ret = sizeof (struct sockaddr_can); +@@ -6298,7 +6298,7 @@ + PyModule_AddStringConstant(m, "BDADDR_LOCAL", "00:00:00:FF:FF:FF"); + #endif + +-#ifdef AF_CAN ++#if defined(HAVE_LINUX_CAN_H) && defined(AF_CAN) + /* Controller Area Network */ + PyModule_AddIntMacro(m, AF_CAN); + #endif +--- Python-3.5.1/setup.py.orig 2015-12-07 01:39:11.000000000 +0000 ++++ Python-3.5.1/setup.py 2016-04-23 15:59:20.902683131 +0000 +@@ -1294,7 +1294,13 @@ + panel_library = 'panel' + if curses_library == 'ncursesw': + curses_defines.append(('HAVE_NCURSESW', '1')) +- curses_includes.append('/usr/include/ncursesw') ++ cflags = sysconfig.get_config_var('CFLAGS') ++ m = re.search(r'-isysroot\s+(\S+)', cflags) ++ if m is None: ++ sysroot = '/usr' ++ else: ++ sysroot = m.group(1) ++ curses_includes.append(sysroot + '/include/ncursesw') + # Bug 1464056: If _curses.so links with ncursesw, + # _curses_panel.so must link with panelw. + panel_library = 'panelw' diff --git a/patches/apk-tools-2.6.6.local.patch b/patches/apk-tools-2.6.6.local.patch new file mode 100644 index 00000000..df03820e --- /dev/null +++ b/patches/apk-tools-2.6.6.local.patch @@ -0,0 +1,55 @@ +--- apk-tools-2.6.6/src/apk.c.orig 2016-02-09 15:57:53.000000000 +0100 ++++ apk-tools-2.6.6/src/apk.c 2016-03-09 10:24:39.763540600 +0100 +@@ -425,12 +425,15 @@ + + static void apk_applet_register_builtin(void) + { ++#if 0 + extern apk_init_func_t __start_initapplets[], __stop_initapplets[]; + apk_init_func_t *p; + + list_init(&apk_applet_list); + for (p = __start_initapplets; p < __stop_initapplets; p++) + (*p)(); ++#endif ++ list_init(&apk_applet_list); + } + + int main(int argc, char **argv) +--- apk-tools-2.6.6/Make.rules.orig 2016-02-09 15:57:53.000000000 +0100 ++++ apk-tools-2.6.6/Make.rules 2016-03-09 10:44:12.457459300 +0100 +@@ -70,7 +70,7 @@ + INSTALLDIR := $(INSTALL) -d + + CFLAGS ?= -g -O2 +-CFLAGS_ALL := -Werror -Wall -Wstrict-prototypes -D_GNU_SOURCE -std=gnu99 -fPIC ++CFLAGS_ALL := -Wall -Wstrict-prototypes -D_GNU_SOURCE -std=gnu99 -fPIC + CFLAGS_ALL += $(CFLAGS) + + LDFLAGS ?= -g +--- apk-tools-2.6.6/src/Makefile.orig 2016-02-09 14:57:53.000000000 +0000 ++++ apk-tools-2.6.6/src/Makefile 2016-06-23 08:14:37.843747529 +0000 +@@ -1,12 +1,12 @@ + PKGDEPS := openssl zlib +-PKG_CONFIG ?= pkg-config ++PKG_CONFIG ?= $(PKG_TARGET)-pkg-config + LUAAPK ?= yes + + # lua module + ifneq ($(LUAAPK),) + LUA_VERSION ?= 5.2 + LUA_PC ?= lua$(LUA_VERSION) +-LUA_LIBDIR ?= /usr/lib/lua/$(LUA_VERSION) ++LUA_LIBDIR ?= $(PREFIX)/lib/lua/$(LUA_VERSION) + LIBAPK := YesPlease + shlibs-y += apk.so + apk.so-objs := lua-apk.o +@@ -66,7 +66,7 @@ + LDFLAGS_apk-test += -L$(obj) + + CFLAGS_ALL += $(shell $(PKG_CONFIG) --cflags $(PKGDEPS)) +-LIBS := /usr/lib/libfetch.a \ ++LIBS := $(PREFIX)/lib/libfetch.a \ + -Wl,--as-needed \ + $(shell $(PKG_CONFIG) --libs $(PKGDEPS)) \ + -Wl,--no-as-needed diff --git a/patches/bash-4.3.local.patch b/patches/bash-4.3.local.patch new file mode 100644 index 00000000..995f7a7e --- /dev/null +++ b/patches/bash-4.3.local.patch @@ -0,0 +1,7885 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-001 + +Bug-Reported-by: NBaH +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-02/msg00092.html + +Bug-Description: + +A missing check for a valid option prevented `test -R' from working. There +is another problem that causes bash to look up the wrong variable name when +processing the argument to `test -R'. + +Patch (apply with `patch -p0'): + +*** bash-4.3/test.c 2014-02-04 16:52:58.000000000 -0500 +--- test.c 2014-02-28 21:22:44.000000000 -0500 +*************** +*** 647,652 **** + + case 'R': +! v = find_variable (arg); +! return (v && invisible_p (v) == 0 && var_isset (v) && nameref_p (v) ? TRUE : FALSE); + } + +--- 647,652 ---- + + case 'R': +! v = find_variable_noref (arg); +! return ((v && invisible_p (v) == 0 && var_isset (v) && nameref_p (v)) ? TRUE : FALSE); + } + +*************** +*** 724,727 **** +--- 724,728 ---- + case 'u': case 'v': case 'w': case 'x': case 'z': + case 'G': case 'L': case 'O': case 'S': case 'N': ++ case 'R': + return (1); + } +*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 0 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 1 + + #endif /* _PATCHLEVEL_H_ */ + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-002 + +Bug-Reported-by: Moe Tunes +Bug-Reference-ID: <53103F49.3070100@gmail.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-02/msg00086.html + +Bug-Description: + +A change to save state while running the DEBUG trap caused pipelines to hang +on systems which need process group synchronization while building pipelines. + +Patch (apply with `patch -p0'): + +*** bash-4.3/trap.c 2014-02-05 10:03:21.000000000 -0500 +--- trap.c 2014-02-28 09:51:43.000000000 -0500 +*************** +*** 921,925 **** + + #if defined (JOB_CONTROL) +! save_pipeline (1); /* XXX only provides one save level */ + #endif + +--- 921,926 ---- + + #if defined (JOB_CONTROL) +! if (sig != DEBUG_TRAP) /* run_debug_trap does this */ +! save_pipeline (1); /* XXX only provides one save level */ + #endif + +*************** +*** 941,945 **** + + #if defined (JOB_CONTROL) +! restore_pipeline (1); + #endif + +--- 942,947 ---- + + #if defined (JOB_CONTROL) +! if (sig != DEBUG_TRAP) /* run_debug_trap does this */ +! restore_pipeline (1); + #endif + +*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 1 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 2 + + #endif /* _PATCHLEVEL_H_ */ + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-003 + +Bug-Reported-by: Anatol Pomozov +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2014-03/msg00010.html + +Bug-Description: + +When in callback mode, some readline commands can cause readline to seg +fault by passing invalid contexts to callback functions. + +Patch (apply with `patch -p0'): + +*** bash-4.3/lib/readline/readline.c 2013-10-28 14:58:06.000000000 -0400 +--- lib/readline/readline.c 2014-03-10 14:15:02.000000000 -0400 +*************** +*** 745,749 **** + + RL_CHECK_SIGNALS (); +! if (r == 0) /* success! */ + { + _rl_keyseq_chain_dispose (); +--- 745,750 ---- + + RL_CHECK_SIGNALS (); +! /* We only treat values < 0 specially to simulate recursion. */ +! if (r >= 0 || (r == -1 && (cxt->flags & KSEQ_SUBSEQ) == 0)) /* success! or failure! */ + { + _rl_keyseq_chain_dispose (); +*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 2 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 3 + + #endif /* _PATCHLEVEL_H_ */ + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-004 + +Bug-Reported-by: Daan van Rossum +Bug-Reference-ID: <20140307072523.GA14250@flash.uchicago.edu> +Bug-Reference-URL: + +Bug-Description: + +The `.' command in vi mode cannot undo multi-key commands beginning with +`c', `d', and `y' (command plus motion specifier). + +Patch (apply with `patch -p0'): + +*** bash-4.3/lib/readline/readline.c 2013-10-28 14:58:06.000000000 -0400 +--- lib/readline/readline.c 2014-03-07 15:20:33.000000000 -0500 +*************** +*** 965,969 **** + if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap && + key != ANYOTHERKEY && +! rl_key_sequence_length == 1 && /* XXX */ + _rl_vi_textmod_command (key)) + _rl_vi_set_last (key, rl_numeric_arg, rl_arg_sign); +--- 965,969 ---- + if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap && + key != ANYOTHERKEY && +! _rl_dispatching_keymap == vi_movement_keymap && + _rl_vi_textmod_command (key)) + _rl_vi_set_last (key, rl_numeric_arg, rl_arg_sign); +*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 3 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 4 + + #endif /* _PATCHLEVEL_H_ */ + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-005 + +Bug-Reported-by: David Sines +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00037.html + +Bug-Description: + +When in Posix mode, bash did not correctly interpret the ANSI-C-style +$'...' quoting mechanism when performing pattern substitution word +expansions within double quotes. + +Patch (apply with `patch -p0'): + +*** bash-4.3/parse.y 2014-02-11 09:42:10.000000000 -0500 +--- parse.y 2014-03-07 20:57:15.000000000 -0500 +*************** +*** 3399,3403 **** + unescaped double-quotes or single-quotes, if any, shall occur." */ + /* This was changed in Austin Group Interp 221 */ +! if MBTEST(posixly_correct && shell_compatibility_level > 41 && dolbrace_state != DOLBRACE_QUOTE && (flags & P_DQUOTE) && (flags & P_DOLBRACE) && ch == '\'') + continue; + +--- 3399,3403 ---- + unescaped double-quotes or single-quotes, if any, shall occur." */ + /* This was changed in Austin Group Interp 221 */ +! if MBTEST(posixly_correct && shell_compatibility_level > 41 && dolbrace_state != DOLBRACE_QUOTE && dolbrace_state != DOLBRACE_QUOTE2 && (flags & P_DQUOTE) && (flags & P_DOLBRACE) && ch == '\'') + continue; + +*** bash-4.3/y.tab.c 2014-02-11 10:57:47.000000000 -0500 +--- y.tab.c 2014-03-28 10:41:15.000000000 -0400 +*************** +*** 5711,5715 **** + unescaped double-quotes or single-quotes, if any, shall occur." */ + /* This was changed in Austin Group Interp 221 */ +! if MBTEST(posixly_correct && shell_compatibility_level > 41 && dolbrace_state != DOLBRACE_QUOTE && (flags & P_DQUOTE) && (flags & P_DOLBRACE) && ch == '\'') + continue; + +--- 5711,5715 ---- + unescaped double-quotes or single-quotes, if any, shall occur." */ + /* This was changed in Austin Group Interp 221 */ +! if MBTEST(posixly_correct && shell_compatibility_level > 41 && dolbrace_state != DOLBRACE_QUOTE && dolbrace_state != DOLBRACE_QUOTE2 && (flags & P_DQUOTE) && (flags & P_DOLBRACE) && ch == '\'') + continue; + +*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 4 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 5 + + #endif /* _PATCHLEVEL_H_ */ + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-006 + +Bug-Reported-by: Eduardo A . Bustamante Lopez +Bug-Reference-ID: <20140228170013.GA16015@dualbus.me> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-02/msg00091.html + +Bug-Description: + +A shell that started with job control active but was not interactive left +the terminal in the wrong process group when exiting, causing its parent +shell to get a stop signal when it attempted to read from the terminal. + +Patch (apply with `patch -p0'): + +*** bash-4.3/jobs.c 2014-01-10 09:05:34.000000000 -0500 +--- jobs.c 2014-03-02 18:05:09.000000000 -0500 +*************** +*** 4375,4379 **** + end_job_control () + { +! if (interactive_shell) /* XXX - should it be interactive? */ + { + terminate_stopped_jobs (); +--- 4375,4379 ---- + end_job_control () + { +! if (interactive_shell || job_control) /* XXX - should it be just job_control? */ + { + terminate_stopped_jobs (); +*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 5 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 6 + + #endif /* _PATCHLEVEL_H_ */ + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-007 + +Bug-Reported-by: geir.hauge@gmail.com +Bug-Reference-ID: <20140318093650.B181C1C5B0B@gina.itea.ntnu.no> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00095.html + +Bug-Description: + +Using compound assignments for associative arrays like + +assoc=( [x]= [y]=bar ) + +left the value corresponding to the key `x' NULL. This caused subsequent +lookups to interpret it as unset. + +Patch (apply with `patch -p0'): + +*** bash-4.3/arrayfunc.c 2013-08-02 16:19:59.000000000 -0400 +--- arrayfunc.c 2014-03-18 11:08:15.000000000 -0400 +*************** +*** 598,601 **** +--- 598,606 ---- + { + val = expand_assignment_string_to_string (val, 0); ++ if (val == 0) ++ { ++ val = (char *)xmalloc (1); ++ val[0] = '\0'; /* like do_assignment_internal */ ++ } + free_val = 1; + } +*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 6 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 7 + + #endif /* _PATCHLEVEL_H_ */ + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-008 + +Bug-Reported-by: Stephane Chazelas +Bug-Reference-ID: <20140318135901.GB22158@chaz.gmail.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00098.html + +Bug-Description: + +Some extended glob patterns incorrectly matched filenames with a leading +dot, regardless of the setting of the `dotglob' option. + +Patch (apply with `patch -p0'): + +*** bash-4.3/lib/glob/gmisc.c 2013-10-28 14:45:25.000000000 -0400 +--- lib/glob/gmisc.c 2014-03-19 09:16:08.000000000 -0400 +*************** +*** 211,214 **** +--- 211,215 ---- + case '!': + case '@': ++ case '?': + return (pat[1] == LPAREN); + default: +*** bash-4.3/lib/glob/glob.c 2014-01-31 21:43:51.000000000 -0500 +--- lib/glob/glob.c 2014-03-20 09:01:26.000000000 -0400 +*************** +*** 180,202 **** + int flags; + { +! char *pp, *pe, *t; +! int n, r; + + pp = pat + 2; +! pe = pp + strlen (pp) - 1; /*(*/ +! if (*pe != ')') +! return 0; +! if ((t = strchr (pp, '|')) == 0) /* easy case first */ + { + *pe = '\0'; + r = skipname (pp, dname, flags); /*(*/ + *pe = ')'; + return r; + } + while (t = glob_patscan (pp, pe, '|')) + { + n = t[-1]; + t[-1] = '\0'; + r = skipname (pp, dname, flags); + t[-1] = n; + if (r == 0) /* if any pattern says not skip, we don't skip */ +--- 180,215 ---- + int flags; + { +! char *pp, *pe, *t, *se; +! int n, r, negate; + ++ negate = *pat == '!'; + pp = pat + 2; +! se = pp + strlen (pp) - 1; /* end of string */ +! pe = glob_patscan (pp, se, 0); /* end of extglob pattern (( */ +! /* we should check for invalid extglob pattern here */ +! /* if pe != se we have more of the pattern at the end of the extglob +! pattern. Check the easy case first ( */ +! if (pe == se && *pe == ')' && (t = strchr (pp, '|')) == 0) + { + *pe = '\0'; ++ #if defined (HANDLE_MULTIBYTE) ++ r = mbskipname (pp, dname, flags); ++ #else + r = skipname (pp, dname, flags); /*(*/ ++ #endif + *pe = ')'; + return r; + } ++ ++ /* check every subpattern */ + while (t = glob_patscan (pp, pe, '|')) + { + n = t[-1]; + t[-1] = '\0'; ++ #if defined (HANDLE_MULTIBYTE) ++ r = mbskipname (pp, dname, flags); ++ #else + r = skipname (pp, dname, flags); ++ #endif + t[-1] = n; + if (r == 0) /* if any pattern says not skip, we don't skip */ +*************** +*** 205,219 **** + } /*(*/ + +! if (pp == pe) /* glob_patscan might find end of pattern */ + return r; + +! *pe = '\0'; +! # if defined (HANDLE_MULTIBYTE) +! r = mbskipname (pp, dname, flags); /*(*/ +! # else +! r = skipname (pp, dname, flags); /*(*/ +! # endif +! *pe = ')'; +! return r; + } + #endif +--- 218,227 ---- + } /*(*/ + +! /* glob_patscan might find end of pattern */ +! if (pp == se) + return r; + +! /* but if it doesn't then we didn't match a leading dot */ +! return 0; + } + #endif +*************** +*** 278,289 **** + { + #if EXTENDED_GLOB +! wchar_t *pp, *pe, *t, n; +! int r; + + pp = pat + 2; +! pe = pp + wcslen (pp) - 1; /*(*/ +! if (*pe != L')') +! return 0; +! if ((t = wcschr (pp, L'|')) == 0) + { + *pe = L'\0'; +--- 286,298 ---- + { + #if EXTENDED_GLOB +! wchar_t *pp, *pe, *t, n, *se; +! int r, negate; + ++ negate = *pat == L'!'; + pp = pat + 2; +! se = pp + wcslen (pp) - 1; /*(*/ +! pe = glob_patscan_wc (pp, se, 0); +! +! if (pe == se && *pe == ')' && (t = wcschr (pp, L'|')) == 0) + { + *pe = L'\0'; +*************** +*** 292,295 **** +--- 301,306 ---- + return r; + } ++ ++ /* check every subpattern */ + while (t = glob_patscan_wc (pp, pe, '|')) + { +*************** +*** 306,313 **** + return r; + +! *pe = L'\0'; +! r = wchkname (pp, dname); /*(*/ +! *pe = L')'; +! return r; + #else + return (wchkname (pat, dname)); +--- 317,322 ---- + return r; + +! /* but if it doesn't then we didn't match a leading dot */ +! return 0; + #else + return (wchkname (pat, dname)); +*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 7 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 8 + + #endif /* _PATCHLEVEL_H_ */ + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-009 + +Bug-Reported-by: Matthias Klose +Bug-Reference-ID: <53346FC8.6090005@debian.org> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00171.html + +Bug-Description: + +There is a problem with unsigned sign extension when attempting to reallocate +the input line when it is fewer than 3 characters long and there has been a +history expansion. The sign extension causes the shell to not reallocate the +line, which results in a segmentation fault when it writes past the end. + +Patch (apply with `patch -p0'): + +*** bash-4.3/parse.y 2014-02-11 09:42:10.000000000 -0500 +--- parse.y 2014-03-27 16:33:29.000000000 -0400 +*************** +*** 2425,2429 **** + if (shell_input_line_terminator != EOF) + { +! if (shell_input_line_size < SIZE_MAX && shell_input_line_len > shell_input_line_size - 3) + shell_input_line = (char *)xrealloc (shell_input_line, + 1 + (shell_input_line_size += 2)); +--- 2425,2429 ---- + if (shell_input_line_terminator != EOF) + { +! if (shell_input_line_size < SIZE_MAX-3 && (shell_input_line_len+3 > shell_input_line_size)) + shell_input_line = (char *)xrealloc (shell_input_line, + 1 + (shell_input_line_size += 2)); +*** bash-4.3/y.tab.c 2014-03-28 11:17:06.000000000 -0400 +--- y.tab.c 2014-04-07 11:48:31.000000000 -0400 +*************** +*** 4737,4741 **** + if (shell_input_line_terminator != EOF) + { +! if (shell_input_line_size < SIZE_MAX && shell_input_line_len > shell_input_line_size - 3) + shell_input_line = (char *)xrealloc (shell_input_line, + 1 + (shell_input_line_size += 2)); +--- 4737,4741 ---- + if (shell_input_line_terminator != EOF) + { +! if (shell_input_line_size < SIZE_MAX-3 && (shell_input_line_len+3 > shell_input_line_size)) + shell_input_line = (char *)xrealloc (shell_input_line, + 1 + (shell_input_line_size += 2)); +*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 8 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 9 + + #endif /* _PATCHLEVEL_H_ */ + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-010 + +Bug-Reported-by: Albert Shih +Bug-Reference-ID: Wed, 5 Mar 2014 23:01:40 +0100 +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00028.html + +Bug-Description: + +Patch (apply with `patch -p0'): + +This patch changes the behavior of programmable completion to compensate +for two assumptions made by the bash-completion package. Bash-4.3 changed +to dequote the argument to programmable completion only under certain +circumstances, to make the behavior of compgen more consistent when run +from the command line -- closer to the behavior when run by a shell function +run as part of programmable completion. Bash-completion can pass quoted +arguments to compgen when the original word to be completed was not quoted, +expecting programmable completion to dequote the word before attempting +completion. + +This patch fixes two cases: + +1. An empty string that bash-completion passes to compgen as a quoted null + string (''). + +2. An unquoted word that bash-completion quotes using single quotes or + backslashes before passing it to compgen. + +In these cases, since readline did not detect a quote character in the original +word to be completed, bash-4.3 + +*** bash-4.3/externs.h 2014-01-02 14:58:20.000000000 -0500 +--- externs.h 2014-03-13 14:42:57.000000000 -0400 +*************** +*** 325,328 **** +--- 325,329 ---- + extern char *sh_backslash_quote_for_double_quotes __P((char *)); + extern int sh_contains_shell_metas __P((char *)); ++ extern int sh_contains_quotes __P((char *)); + + /* declarations for functions defined in lib/sh/spell.c */ +*** bash-4.3/lib/sh/shquote.c 2013-03-31 21:53:32.000000000 -0400 +--- lib/sh/shquote.c 2014-03-13 14:42:57.000000000 -0400 +*************** +*** 312,313 **** +--- 312,327 ---- + return (0); + } ++ ++ int ++ sh_contains_quotes (string) ++ char *string; ++ { ++ char *s; ++ ++ for (s = string; s && *s; s++) ++ { ++ if (*s == '\'' || *s == '"' || *s == '\\') ++ return 1; ++ } ++ return 0; ++ } +*** bash-4.3/pcomplete.c 2013-08-26 15:23:45.000000000 -0400 +--- pcomplete.c 2014-03-25 17:23:23.000000000 -0400 +*************** +*** 184,187 **** +--- 184,188 ---- + COMPSPEC *pcomp_curcs; + const char *pcomp_curcmd; ++ const char *pcomp_curtxt; + + #ifdef DEBUG +*************** +*** 754,757 **** +--- 755,784 ---- + dfn = (*rl_filename_dequoting_function) ((char *)text, rl_completion_quote_character); + } ++ /* Intended to solve a mismatched assumption by bash-completion. If ++ the text to be completed is empty, but bash-completion turns it into ++ a quoted string ('') assuming that this code will dequote it before ++ calling readline, do the dequoting. */ ++ else if (iscompgen && iscompleting && ++ pcomp_curtxt && *pcomp_curtxt == 0 && ++ text && (*text == '\'' || *text == '"') && text[1] == text[0] && text[2] == 0 && ++ rl_filename_dequoting_function) ++ dfn = (*rl_filename_dequoting_function) ((char *)text, rl_completion_quote_character); ++ /* Another mismatched assumption by bash-completion. If compgen is being ++ run as part of bash-completion, and the argument to compgen is not ++ the same as the word originally passed to the programmable completion ++ code, dequote the argument if it has quote characters. It's an ++ attempt to detect when bash-completion is quoting its filename ++ argument before calling compgen. */ ++ /* We could check whether gen_shell_function_matches is in the call ++ stack by checking whether the gen-shell-function-matches tag is in ++ the unwind-protect stack, but there's no function to do that yet. ++ We could simply check whether we're executing in a function by ++ checking variable_context, and may end up doing that. */ ++ else if (iscompgen && iscompleting && rl_filename_dequoting_function && ++ pcomp_curtxt && text && ++ STREQ (pcomp_curtxt, text) == 0 && ++ variable_context && ++ sh_contains_quotes (text)) /* guess */ ++ dfn = (*rl_filename_dequoting_function) ((char *)text, rl_completion_quote_character); + else + dfn = savestring (text); +*************** +*** 1523,1527 **** + { + COMPSPEC *cs, *oldcs; +! const char *oldcmd; + STRINGLIST *ret; + +--- 1550,1554 ---- + { + COMPSPEC *cs, *oldcs; +! const char *oldcmd, *oldtxt; + STRINGLIST *ret; + +*************** +*** 1546,1552 **** +--- 1573,1581 ---- + oldcs = pcomp_curcs; + oldcmd = pcomp_curcmd; ++ oldtxt = pcomp_curtxt; + + pcomp_curcs = cs; + pcomp_curcmd = cmd; ++ pcomp_curtxt = word; + + ret = gen_compspec_completions (cs, cmd, word, start, end, foundp); +*************** +*** 1554,1557 **** +--- 1583,1587 ---- + pcomp_curcs = oldcs; + pcomp_curcmd = oldcmd; ++ pcomp_curtxt = oldtxt; + + /* We need to conditionally handle setting *retryp here */ +*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 9 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 10 + + #endif /* _PATCHLEVEL_H_ */ + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-011 + +Bug-Reported-by: Egmont Koblinger +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00153.html + +Bug-Description: + +The signal handling changes to bash and readline (to avoid running any code +in a signal handler context) cause the cursor to be placed on the wrong +line of a multi-line command after a ^C interrupts editing. + +Patch (apply with `patch -p0'): + +*** bash-4.3/lib/readline/display.c 2013-12-27 13:10:56.000000000 -0500 +--- lib/readline/display.c 2014-03-27 11:52:45.000000000 -0400 +*************** +*** 2678,2682 **** + if (_rl_echoing_p) + { +! _rl_move_vert (_rl_vis_botlin); + _rl_vis_botlin = 0; + fflush (rl_outstream); +--- 2678,2683 ---- + if (_rl_echoing_p) + { +! if (_rl_vis_botlin > 0) /* minor optimization plus bug fix */ +! _rl_move_vert (_rl_vis_botlin); + _rl_vis_botlin = 0; + fflush (rl_outstream); +*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 10 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 11 + + #endif /* _PATCHLEVEL_H_ */ + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-012 + +Bug-Reported-by: Eduardo A. Bustamante López +Bug-Reference-ID: <5346B54C.4070205@case.edu> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-04/msg00051.html + +Bug-Description: + +When a SIGCHLD trap runs a command containing a shell builtin while +a script is running `wait' to wait for all running children to complete, +the SIGCHLD trap will not be run once for each child that terminates. + +Patch (apply with `patch -p0'): + +*** bash-4.3/jobs.c 2014-03-28 10:54:19.000000000 -0400 +--- jobs.c 2014-04-15 08:47:03.000000000 -0400 +*************** +*** 3598,3601 **** +--- 3598,3602 ---- + unwind_protect_pointer (the_pipeline); + unwind_protect_pointer (subst_assign_varlist); ++ unwind_protect_pointer (this_shell_builtin); + + /* We have to add the commands this way because they will be run +*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 11 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 12 + + #endif /* _PATCHLEVEL_H_ */ + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-013 + +Bug-Reported-by: +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-04/msg00069.html + +Bug-Description: + +Using reverse-i-search when horizontal scrolling is enabled does not redisplay +the entire line containing the successful search results. + +Patch (apply with `patch -p0'): +*** bash-4.3/lib/readline/display.c 2014-04-08 18:19:36.000000000 -0400 +--- lib/readline/display.c 2014-04-20 18:32:52.000000000 -0400 +*************** +*** 1638,1642 **** + the spot of first difference is before the end of the invisible chars, + lendiff needs to be adjusted. */ +! if (current_line == 0 && !_rl_horizontal_scroll_mode && + current_invis_chars != visible_wrap_offset) + { +--- 1638,1642 ---- + the spot of first difference is before the end of the invisible chars, + lendiff needs to be adjusted. */ +! if (current_line == 0 && /* !_rl_horizontal_scroll_mode && */ + current_invis_chars != visible_wrap_offset) + { +*************** +*** 1826,1831 **** + _rl_last_c_pos += bytes_to_insert; + + if (_rl_horizontal_scroll_mode && ((oe-old) > (ne-new))) +! goto clear_rest_of_line; + } + } +--- 1826,1836 ---- + _rl_last_c_pos += bytes_to_insert; + ++ /* XXX - we only want to do this if we are at the end of the line ++ so we move there with _rl_move_cursor_relative */ + if (_rl_horizontal_scroll_mode && ((oe-old) > (ne-new))) +! { +! _rl_move_cursor_relative (ne-new, new); +! goto clear_rest_of_line; +! } + } + } +*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 12 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 13 + + #endif /* _PATCHLEVEL_H_ */ + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-014 + +Bug-Reported-by: Greg Wooledge +Bug-Reference-ID: <20140418202123.GB7660@eeg.ccf.org> +Bug-Reference-URL: http://lists.gnu.org/archive/html/help-bash/2014-04/msg00004.html + +Bug-Description: + +Under certain circumstances, $@ is expanded incorrectly in contexts where +word splitting is not performed. + +Patch (apply with `patch -p0'): +*** bash-4.3/subst.c 2014-01-23 16:26:37.000000000 -0500 +--- subst.c 2014-04-19 15:41:26.000000000 -0400 +*************** +*** 3249,3254 **** +--- 3249,3256 ---- + return ((char *)NULL); + ++ expand_no_split_dollar_star = 1; + w->flags |= W_NOSPLIT2; + l = call_expand_word_internal (w, 0, 0, (int *)0, (int *)0); ++ expand_no_split_dollar_star = 0; + if (l) + { +*************** +*** 7848,7851 **** +--- 7850,7857 ---- + according to POSIX.2, this expands to a list of the positional + parameters no matter what IFS is set to. */ ++ /* XXX - what to do when in a context where word splitting is not ++ performed? Even when IFS is not the default, posix seems to imply ++ that we behave like unquoted $* ? Maybe we should use PF_NOSPLIT2 ++ here. */ + temp = string_list_dollar_at (list, (pflags & PF_ASSIGNRHS) ? (quoted|Q_DOUBLE_QUOTES) : quoted); + +*************** +*** 8817,8820 **** +--- 8823,8827 ---- + { + char *ifs_chars; ++ char *tstring; + + ifs_chars = (quoted_dollar_at || has_dollar_at) ? ifs_value : (char *)NULL; +*************** +*** 8831,8834 **** +--- 8838,8865 ---- + if (split_on_spaces) + list = list_string (istring, " ", 1); /* XXX quoted == 1? */ ++ /* If we have $@ (has_dollar_at != 0) and we are in a context where we ++ don't want to split the result (W_NOSPLIT2), and we are not quoted, ++ we have already separated the arguments with the first character of ++ $IFS. In this case, we want to return a list with a single word ++ with the separator possibly replaced with a space (it's what other ++ shells seem to do). ++ quoted_dollar_at is internal to this function and is set if we are ++ passed an argument that is unquoted (quoted == 0) but we encounter a ++ double-quoted $@ while expanding it. */ ++ else if (has_dollar_at && quoted_dollar_at == 0 && ifs_chars && quoted == 0 && (word->flags & W_NOSPLIT2)) ++ { ++ /* Only split and rejoin if we have to */ ++ if (*ifs_chars && *ifs_chars != ' ') ++ { ++ list = list_string (istring, *ifs_chars ? ifs_chars : " ", 1); ++ tstring = string_list (list); ++ } ++ else ++ tstring = istring; ++ tword = make_bare_word (tstring); ++ if (tstring != istring) ++ free (tstring); ++ goto set_word_flags; ++ } + else if (has_dollar_at && ifs_chars) + list = list_string (istring, *ifs_chars ? ifs_chars : " ", 1); +*************** +*** 8836,8839 **** +--- 8867,8871 ---- + { + tword = make_bare_word (istring); ++ set_word_flags: + if ((quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) || (quoted_state == WHOLLY_QUOTED)) + tword->flags |= W_QUOTED; +*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 13 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 14 + + #endif /* _PATCHLEVEL_H_ */ + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-015 + +Bug-Reported-by: Clark Wang +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-04/msg00095.html + +Bug-Description: + +When completing directory names, the directory name is dequoted twice. +This causes problems for directories with single and double quotes in +their names. + +Patch (apply with `patch -p0'): +*** bash-4.3/bashline.c 2014-02-09 19:56:58.000000000 -0500 +--- bashline.c 2014-04-25 14:57:52.000000000 -0400 +*************** +*** 4168,4174 **** + + qc = rl_dispatching ? rl_completion_quote_character : 0; +! dfn = bash_dequote_filename ((char *)text, qc); + m1 = rl_completion_matches (dfn, rl_filename_completion_function); +! free (dfn); + + if (m1 == 0 || m1[0] == 0) +--- 4209,4222 ---- + + qc = rl_dispatching ? rl_completion_quote_character : 0; +! /* If rl_completion_found_quote != 0, rl_completion_matches will call the +! filename dequoting function, causing the directory name to be dequoted +! twice. */ +! if (rl_dispatching && rl_completion_found_quote == 0) +! dfn = bash_dequote_filename ((char *)text, qc); +! else +! dfn = (char *)text; + m1 = rl_completion_matches (dfn, rl_filename_completion_function); +! if (dfn != text) +! free (dfn); + + if (m1 == 0 || m1[0] == 0) +*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 14 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 15 + + #endif /* _PATCHLEVEL_H_ */ + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-016 + +Bug-Reported-by: Pierre Gaston +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-04/msg00100.html + +Bug-Description: + +An extended glob pattern containing a slash (`/') causes the globbing code +to misinterpret it as a directory separator. + +Patch (apply with `patch -p0'): +*** bash-4.3/lib/glob/glob.c 2014-03-28 10:54:23.000000000 -0400 +--- lib/glob/glob.c 2014-05-02 10:24:28.000000000 -0400 +*************** +*** 124,127 **** +--- 124,129 ---- + extern wchar_t *glob_patscan_wc __P((wchar_t *, wchar_t *, int)); + ++ extern char *glob_dirscan __P((char *, int)); ++ + /* Compile `glob_loop.c' for single-byte characters. */ + #define CHAR unsigned char +*************** +*** 188,191 **** +--- 190,196 ---- + pe = glob_patscan (pp, se, 0); /* end of extglob pattern (( */ + /* we should check for invalid extglob pattern here */ ++ if (pe == 0) ++ return 0; ++ + /* if pe != se we have more of the pattern at the end of the extglob + pattern. Check the easy case first ( */ +*************** +*** 1016,1020 **** + char **result; + unsigned int result_size; +! char *directory_name, *filename, *dname; + unsigned int directory_len; + int free_dirname; /* flag */ +--- 1021,1025 ---- + char **result; + unsigned int result_size; +! char *directory_name, *filename, *dname, *fn; + unsigned int directory_len; + int free_dirname; /* flag */ +*************** +*** 1032,1035 **** +--- 1037,1052 ---- + /* Find the filename. */ + filename = strrchr (pathname, '/'); ++ #if defined (EXTENDED_GLOB) ++ if (filename && extended_glob) ++ { ++ fn = glob_dirscan (pathname, '/'); ++ #if DEBUG_MATCHING ++ if (fn != filename) ++ fprintf (stderr, "glob_filename: glob_dirscan: fn (%s) != filename (%s)\n", fn ? fn : "(null)", filename); ++ #endif ++ filename = fn; ++ } ++ #endif ++ + if (filename == NULL) + { +*** bash-4.3/lib/glob/gmisc.c 2014-03-28 10:54:23.000000000 -0400 +--- lib/glob/gmisc.c 2014-05-02 09:35:57.000000000 -0400 +*************** +*** 43,46 **** +--- 43,48 ---- + #define WRPAREN L')' + ++ extern char *glob_patscan __P((char *, char *, int)); ++ + /* Return 1 of the first character of WSTRING could match the first + character of pattern WPAT. Wide character version. */ +*************** +*** 376,377 **** +--- 378,410 ---- + return matlen; + } ++ ++ /* Skip characters in PAT and return the final occurrence of DIRSEP. This ++ is only called when extended_glob is set, so we have to skip over extglob ++ patterns x(...) */ ++ char * ++ glob_dirscan (pat, dirsep) ++ char *pat; ++ int dirsep; ++ { ++ char *p, *d, *pe, *se; ++ ++ d = pe = se = 0; ++ for (p = pat; p && *p; p++) ++ { ++ if (extglob_pattern_p (p)) ++ { ++ if (se == 0) ++ se = p + strlen (p) - 1; ++ pe = glob_patscan (p + 2, se, 0); ++ if (pe == 0) ++ continue; ++ else if (*pe == 0) ++ break; ++ p = pe - 1; /* will do increment above */ ++ continue; ++ } ++ if (*p == dirsep) ++ d = p; ++ } ++ return d; ++ } + +*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 15 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 16 + + #endif /* _PATCHLEVEL_H_ */ + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-017 + +Bug-Reported-by: Dan Douglas +Bug-Reference-ID: <7781746.RhfoTROLxF@smorgbox> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-05/msg00026.html + +Bug-Description: + +The code that creates local variables should not clear the `invisible' +attribute when returning an existing local variable. Let the code that +actually assigns a value clear it. + +Patch (apply with `patch -p0'): +*** bash-4.3/variables.c 2014-02-14 11:55:12.000000000 -0500 +--- variables.c 2014-05-07 10:53:57.000000000 -0400 +*************** +*** 2198,2205 **** + old_var = find_variable (name); + if (old_var && local_p (old_var) && old_var->context == variable_context) +! { +! VUNSETATTR (old_var, att_invisible); /* XXX */ +! return (old_var); +! } + + was_tmpvar = old_var && tempvar_p (old_var); +--- 2260,2264 ---- + old_var = find_variable (name); + if (old_var && local_p (old_var) && old_var->context == variable_context) +! return (old_var); + + was_tmpvar = old_var && tempvar_p (old_var); + +*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 16 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 17 + + #endif /* _PATCHLEVEL_H_ */ + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-018 + +Bug-Reported-by: Geir Hauge +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-05/msg00040.html + +Bug-Description: + +When assigning an array variable using the compound assignment syntax, +but using `declare' with the rhs of the compound assignment quoted, the +shell did not mark the variable as visible after successfully performing +the assignment. + +Patch (apply with `patch -p0'): +*** bash-4.3/arrayfunc.c 2014-03-28 10:54:21.000000000 -0400 +--- arrayfunc.c 2014-05-12 11:19:00.000000000 -0400 +*************** +*** 180,183 **** +--- 180,184 ---- + FREE (newval); + ++ VUNSETATTR (entry, att_invisible); /* no longer invisible */ + return (entry); + } + +*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 17 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 18 + + #endif /* _PATCHLEVEL_H_ */ + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-019 + +Bug-Reported-by: John Lenton +Bug-Reference-ID: +Bug-Reference-URL: https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1317476 + +Bug-Description: + +The -t timeout option to `read' does not work when the -e option is used. + +Patch (apply with `patch -p0'): + +*** bash-4.3/lib/readline/input.c 2014-01-10 15:07:08.000000000 -0500 +--- lib/readline/input.c 2014-05-22 18:40:59.000000000 -0400 +*************** +*** 535,540 **** +--- 538,551 ---- + else if (_rl_caught_signal == SIGHUP || _rl_caught_signal == SIGTERM) + return (RL_ISSTATE (RL_STATE_READCMD) ? READERR : EOF); ++ /* keyboard-generated signals of interest */ + else if (_rl_caught_signal == SIGINT || _rl_caught_signal == SIGQUIT) + RL_CHECK_SIGNALS (); ++ /* non-keyboard-generated signals of interest */ ++ else if (_rl_caught_signal == SIGALRM ++ #if defined (SIGVTALRM) ++ || _rl_caught_signal == SIGVTALRM ++ #endif ++ ) ++ RL_CHECK_SIGNALS (); + + if (rl_signal_event_hook) +*** bash-4.3/builtins/read.def 2013-09-02 11:54:00.000000000 -0400 +--- builtins/read.def 2014-05-08 11:43:35.000000000 -0400 +*************** +*** 443,447 **** + #if defined (READLINE) + if (edit) +! add_unwind_protect (reset_attempted_completion_function, (char *)NULL); + #endif + falarm (tmsec, tmusec); +--- 443,450 ---- + #if defined (READLINE) + if (edit) +! { +! add_unwind_protect (reset_attempted_completion_function, (char *)NULL); +! add_unwind_protect (bashline_reset_event_hook, (char *)NULL); +! } + #endif + falarm (tmsec, tmusec); +*************** +*** 1022,1025 **** +--- 1025,1029 ---- + old_attempted_completion_function = rl_attempted_completion_function; + rl_attempted_completion_function = (rl_completion_func_t *)NULL; ++ bashline_set_event_hook (); + if (itext) + { +*************** +*** 1033,1036 **** +--- 1037,1041 ---- + rl_attempted_completion_function = old_attempted_completion_function; + old_attempted_completion_function = (rl_completion_func_t *)NULL; ++ bashline_reset_event_hook (); + + if (ret == 0) +*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 18 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 19 + + #endif /* _PATCHLEVEL_H_ */ + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-020 + +Bug-Reported-by: Jared Yanovich +Bug-Reference-ID: <20140417073654.GB26875@nightderanger.psc.edu> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-04/msg00065.html + +Bug-Description: + +When PS2 contains a command substitution, here-documents entered in an +interactive shell can sometimes cause a segmentation fault. + +Patch (apply with `patch -p0'): + +*** bash-4.3/shell.h 2012-12-25 21:11:01.000000000 -0500 +--- shell.h 2014-06-03 09:24:28.000000000 -0400 +*************** +*** 169,173 **** + int expand_aliases; + int echo_input_at_read; +! + } sh_parser_state_t; + +--- 169,174 ---- + int expand_aliases; + int echo_input_at_read; +! int need_here_doc; +! + } sh_parser_state_t; + +*** bash-4.3/parse.y 2014-05-14 09:16:40.000000000 -0400 +--- parse.y 2014-04-30 09:27:59.000000000 -0400 +*************** +*** 2643,2647 **** + + r = 0; +! while (need_here_doc) + { + parser_state |= PST_HEREDOC; +--- 2643,2647 ---- + + r = 0; +! while (need_here_doc > 0) + { + parser_state |= PST_HEREDOC; +*************** +*** 6076,6079 **** +--- 6076,6080 ---- + ps->expand_aliases = expand_aliases; + ps->echo_input_at_read = echo_input_at_read; ++ ps->need_here_doc = need_here_doc; + + ps->token = token; +*************** +*** 6124,6127 **** +--- 6125,6129 ---- + expand_aliases = ps->expand_aliases; + echo_input_at_read = ps->echo_input_at_read; ++ need_here_doc = ps->need_here_doc; + + FREE (token); +*** bash-4.3/y.tab.c 2014-04-07 11:56:12.000000000 -0400 +--- y.tab.c 2014-07-30 09:55:57.000000000 -0400 +*************** +*** 4955,4959 **** + + r = 0; +! while (need_here_doc) + { + parser_state |= PST_HEREDOC; +--- 5151,5155 ---- + + r = 0; +! while (need_here_doc > 0) + { + parser_state |= PST_HEREDOC; +*************** +*** 8388,8391 **** +--- 8584,8588 ---- + ps->expand_aliases = expand_aliases; + ps->echo_input_at_read = echo_input_at_read; ++ ps->need_here_doc = need_here_doc; + + ps->token = token; +*************** +*** 8436,8439 **** +--- 8633,8637 ---- + expand_aliases = ps->expand_aliases; + echo_input_at_read = ps->echo_input_at_read; ++ need_here_doc = ps->need_here_doc; + + FREE (token); +*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 19 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 20 + + #endif /* _PATCHLEVEL_H_ */ + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-021 + +Bug-Reported-by: Jared Yanovich +Bug-Reference-ID: <20140625225019.GJ17044@nightderanger.psc.edu> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-06/msg00070.html + +Bug-Description: + +When the readline `revert-all-at-newline' option is set, pressing newline +when the current line is one retrieved from history results in a double free +and a segmentation fault. + +Patch (apply with `patch -p0'): + +*** bash-4.3/lib/readline/misc.c 2012-09-01 18:03:11.000000000 -0400 +--- lib/readline/misc.c 2014-06-30 13:41:19.000000000 -0400 +*************** +*** 462,465 **** +--- 462,466 ---- + /* Set up rl_line_buffer and other variables from history entry */ + rl_replace_from_history (entry, 0); /* entry->line is now current */ ++ entry->data = 0; /* entry->data is now current undo list */ + /* Undo all changes to this history entry */ + while (rl_undo_list) +*************** +*** 469,473 **** + FREE (entry->line); + entry->line = savestring (rl_line_buffer); +- entry->data = 0; + } + entry = previous_history (); +--- 470,473 ---- + +*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 20 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 21 + + #endif /* _PATCHLEVEL_H_ */ + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-022 + +Bug-Reported-by: scorp.dev.null@gmail.com +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-06/msg00061.html + +Bug-Description: + +Using nested pipelines within loops with the `lastpipe' option set can result +in a segmentation fault. + +Patch (apply with `patch -p0'): + +*** bash-4.3/execute_cmd.c 2014-01-31 10:54:52.000000000 -0500 +--- execute_cmd.c 2014-06-19 08:05:49.000000000 -0400 +*************** +*** 2410,2414 **** + lstdin = wait_for (lastpid); + #if defined (JOB_CONTROL) +! exec_result = job_exit_status (lastpipe_jid); + #endif + unfreeze_jobs_list (); +--- 2425,2438 ---- + lstdin = wait_for (lastpid); + #if defined (JOB_CONTROL) +! /* If wait_for removes the job from the jobs table, use result of last +! command as pipeline's exit status as usual. The jobs list can get +! frozen and unfrozen at inconvenient times if there are multiple pipelines +! running simultaneously. */ +! if (INVALID_JOB (lastpipe_jid) == 0) +! exec_result = job_exit_status (lastpipe_jid); +! else if (pipefail_opt) +! exec_result = exec_result | lstdin; /* XXX */ +! /* otherwise we use exec_result */ +! + #endif + unfreeze_jobs_list (); +*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 21 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 22 + + #endif /* _PATCHLEVEL_H_ */ + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-023 + +Bug-Reported-by: Tim Friske +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-06/msg00056.html + +Bug-Description: + +Bash does not correctly parse process substitution constructs that contain +unbalanced parentheses as part of the contained command. + +Patch (apply with `patch -p0'): + +*** bash-4.3/subst.h 2014-01-11 21:02:27.000000000 -0500 +--- subst.h 2014-07-20 17:25:01.000000000 -0400 +*************** +*** 83,87 **** + Start extracting at (SINDEX) as if we had just seen "<(". + Make (SINDEX) get the position just after the matching ")". */ +! extern char *extract_process_subst __P((char *, char *, int *)); + #endif /* PROCESS_SUBSTITUTION */ + +--- 83,87 ---- + Start extracting at (SINDEX) as if we had just seen "<(". + Make (SINDEX) get the position just after the matching ")". */ +! extern char *extract_process_subst __P((char *, char *, int *, int)); + #endif /* PROCESS_SUBSTITUTION */ + +*** bash-4.3/subst.c 2014-05-15 08:26:45.000000000 -0400 +--- subst.c 2014-07-20 17:26:44.000000000 -0400 +*************** +*** 1193,1202 **** + Make (SINDEX) get the position of the matching ")". */ /*))*/ + char * +! extract_process_subst (string, starter, sindex) + char *string; + char *starter; + int *sindex; + { + return (extract_delimited_string (string, sindex, starter, "(", ")", SX_COMMAND)); + } + #endif /* PROCESS_SUBSTITUTION */ +--- 1193,1208 ---- + Make (SINDEX) get the position of the matching ")". */ /*))*/ + char * +! extract_process_subst (string, starter, sindex, xflags) + char *string; + char *starter; + int *sindex; ++ int xflags; + { ++ #if 0 + return (extract_delimited_string (string, sindex, starter, "(", ")", SX_COMMAND)); ++ #else ++ xflags |= (no_longjmp_on_fatal_error ? SX_NOLONGJMP : 0); ++ return (xparse_dolparen (string, string+*sindex, sindex, xflags)); ++ #endif + } + #endif /* PROCESS_SUBSTITUTION */ +*************** +*** 1786,1790 **** + if (string[si] == '\0') + CQ_RETURN(si); +! temp = extract_process_subst (string, (c == '<') ? "<(" : ">(", &si); + free (temp); /* no SX_ALLOC here */ + i = si; +--- 1792,1796 ---- + if (string[si] == '\0') + CQ_RETURN(si); +! temp = extract_process_subst (string, (c == '<') ? "<(" : ">(", &si, 0); + free (temp); /* no SX_ALLOC here */ + i = si; +*************** +*** 8250,8254 **** + t_index = sindex + 1; /* skip past both '<' and LPAREN */ + +! temp1 = extract_process_subst (string, (c == '<') ? "<(" : ">(", &t_index); /*))*/ + sindex = t_index; + +--- 8256,8260 ---- + t_index = sindex + 1; /* skip past both '<' and LPAREN */ + +! temp1 = extract_process_subst (string, (c == '<') ? "<(" : ">(", &t_index, 0); /*))*/ + sindex = t_index; + +*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 22 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 23 + + #endif /* _PATCHLEVEL_H_ */ + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-024 + +Bug-Reported-by: Corentin Peuvrel +Bug-Reference-ID: <53CE9E5D.6050203@pom-monitoring.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-07/msg00021.html + +Bug-Description: + +Indirect variable references do not work correctly if the reference +variable expands to an array reference using a subscript other than 0 +(e.g., foo='bar[1]' ; echo ${!foo}). + +Patch (apply with `patch -p0'): + +*** bash-4.3/subst.c 2014-06-03 09:32:44.000000000 -0400 +--- subst.c 2014-07-23 09:58:19.000000000 -0400 +*************** +*** 7375,7379 **** + + if (want_indir) +! tdesc = parameter_brace_expand_indir (name + 1, var_is_special, quoted, quoted_dollar_atp, contains_dollar_at); + else + tdesc = parameter_brace_expand_word (name, var_is_special, quoted, PF_IGNUNBOUND|(pflags&(PF_NOSPLIT2|PF_ASSIGNRHS)), &ind); +--- 7445,7455 ---- + + if (want_indir) +! { +! tdesc = parameter_brace_expand_indir (name + 1, var_is_special, quoted, quoted_dollar_atp, contains_dollar_at); +! /* Turn off the W_ARRAYIND flag because there is no way for this function +! to return the index we're supposed to be using. */ +! if (tdesc && tdesc->flags) +! tdesc->flags &= ~W_ARRAYIND; +! } + else + tdesc = parameter_brace_expand_word (name, var_is_special, quoted, PF_IGNUNBOUND|(pflags&(PF_NOSPLIT2|PF_ASSIGNRHS)), &ind); +*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 23 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 24 + + #endif /* _PATCHLEVEL_H_ */ + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-025 + +Bug-Reported-by: Stephane Chazelas +Bug-Reference-ID: +Bug-Reference-URL: + +Bug-Description: + +Under certain circumstances, bash will execute user code while processing the +environment for exported function definitions. + +Patch (apply with `patch -p0'): + +*** bash-4.3/builtins/common.h 2013-07-08 16:54:47.000000000 -0400 +--- builtins/common.h 2014-09-12 14:25:47.000000000 -0400 +*************** +*** 34,37 **** +--- 49,54 ---- + #define SEVAL_PARSEONLY 0x020 + #define SEVAL_NOLONGJMP 0x040 ++ #define SEVAL_FUNCDEF 0x080 /* only allow function definitions */ ++ #define SEVAL_ONECMD 0x100 /* only allow a single command */ + + /* Flags for describe_command, shared between type.def and command.def */ +*** bash-4.3/builtins/evalstring.c 2014-02-11 09:42:10.000000000 -0500 +--- builtins/evalstring.c 2014-09-14 14:15:13.000000000 -0400 +*************** +*** 309,312 **** +--- 313,324 ---- + struct fd_bitmap *bitmap; + ++ if ((flags & SEVAL_FUNCDEF) && command->type != cm_function_def) ++ { ++ internal_warning ("%s: ignoring function definition attempt", from_file); ++ should_jump_to_top_level = 0; ++ last_result = last_command_exit_value = EX_BADUSAGE; ++ break; ++ } ++ + bitmap = new_fd_bitmap (FD_BITMAP_SIZE); + begin_unwind_frame ("pe_dispose"); +*************** +*** 369,372 **** +--- 381,387 ---- + dispose_fd_bitmap (bitmap); + discard_unwind_frame ("pe_dispose"); ++ ++ if (flags & SEVAL_ONECMD) ++ break; + } + } +*** bash-4.3/variables.c 2014-05-15 08:26:50.000000000 -0400 +--- variables.c 2014-09-14 14:23:35.000000000 -0400 +*************** +*** 359,369 **** + strcpy (temp_string + char_index + 1, string); + +! if (posixly_correct == 0 || legal_identifier (name)) +! parse_and_execute (temp_string, name, SEVAL_NONINT|SEVAL_NOHIST); +! +! /* Ancient backwards compatibility. Old versions of bash exported +! functions like name()=() {...} */ +! if (name[char_index - 1] == ')' && name[char_index - 2] == '(') +! name[char_index - 2] = '\0'; + + if (temp_var = find_function (name)) +--- 364,372 ---- + strcpy (temp_string + char_index + 1, string); + +! /* Don't import function names that are invalid identifiers from the +! environment, though we still allow them to be defined as shell +! variables. */ +! if (legal_identifier (name)) +! parse_and_execute (temp_string, name, SEVAL_NONINT|SEVAL_NOHIST|SEVAL_FUNCDEF|SEVAL_ONECMD); + + if (temp_var = find_function (name)) +*************** +*** 382,389 **** + report_error (_("error importing function definition for `%s'"), name); + } +- +- /* ( */ +- if (name[char_index - 1] == ')' && name[char_index - 2] == '\0') +- name[char_index - 2] = '('; /* ) */ + } + #if defined (ARRAY_VARS) +--- 385,388 ---- +*** bash-4.3/subst.c 2014-08-11 11:16:35.000000000 -0400 +--- subst.c 2014-09-12 15:31:04.000000000 -0400 +*************** +*** 8048,8052 **** + goto return0; + } +! else if (var = find_variable_last_nameref (temp1)) + { + temp = nameref_cell (var); +--- 8118,8124 ---- + goto return0; + } +! else if (var && (invisible_p (var) || var_isset (var) == 0)) +! temp = (char *)NULL; +! else if ((var = find_variable_last_nameref (temp1)) && var_isset (var) && invisible_p (var) == 0) + { + temp = nameref_cell (var); +*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 24 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 25 + + #endif /* _PATCHLEVEL_H_ */ + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-026 + +Bug-Reported-by: Tavis Ormandy +Bug-Reference-ID: +Bug-Reference-URL: http://twitter.com/taviso/statuses/514887394294652929 + +Bug-Description: + +Under certain circumstances, bash can incorrectly save a lookahead character and +return it on a subsequent call, even when reading a new line. + +Patch (apply with `patch -p0'): + +*** bash-4.3/parse.y 2014-07-30 10:14:31.000000000 -0400 +--- parse.y 2014-09-25 20:20:21.000000000 -0400 +*************** +*** 2954,2957 **** +--- 2954,2959 ---- + word_desc_to_read = (WORD_DESC *)NULL; + ++ eol_ungetc_lookahead = 0; ++ + current_token = '\n'; /* XXX */ + last_read_token = '\n'; +*** bash-4.3/y.tab.c 2014-07-30 10:14:32.000000000 -0400 +--- y.tab.c 2014-09-25 20:21:48.000000000 -0400 +*************** +*** 5266,5269 **** +--- 5266,5271 ---- + word_desc_to_read = (WORD_DESC *)NULL; + ++ eol_ungetc_lookahead = 0; ++ + current_token = '\n'; /* XXX */ + last_read_token = '\n'; +*************** +*** 8540,8542 **** + } + #endif /* HANDLE_MULTIBYTE */ +- +--- 8542,8543 ---- +*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 25 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 26 + + #endif /* _PATCHLEVEL_H_ */ + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-027 + +Bug-Reported-by: Florian Weimer +Bug-Reference-ID: +Bug-Reference-URL: + +Bug-Description: + +This patch changes the encoding bash uses for exported functions to avoid +clashes with shell variables and to avoid depending only on an environment +variable's contents to determine whether or not to interpret it as a shell +function. + +Patch (apply with `patch -p0'): + +*** bash-4.3/variables.c 2014-09-25 23:02:18.000000000 -0400 +--- variables.c 2014-09-27 20:52:04.000000000 -0400 +*************** +*** 84,87 **** +--- 84,92 ---- + #define ifsname(s) ((s)[0] == 'I' && (s)[1] == 'F' && (s)[2] == 'S' && (s)[3] == '\0') + ++ #define BASHFUNC_PREFIX "BASH_FUNC_" ++ #define BASHFUNC_PREFLEN 10 /* == strlen(BASHFUNC_PREFIX */ ++ #define BASHFUNC_SUFFIX "%%" ++ #define BASHFUNC_SUFFLEN 2 /* == strlen(BASHFUNC_SUFFIX) */ ++ + extern char **environ; + +*************** +*** 280,284 **** + static void dispose_temporary_env __P((sh_free_func_t *)); + +! static inline char *mk_env_string __P((const char *, const char *)); + static char **make_env_array_from_var_list __P((SHELL_VAR **)); + static char **make_var_export_array __P((VAR_CONTEXT *)); +--- 285,289 ---- + static void dispose_temporary_env __P((sh_free_func_t *)); + +! static inline char *mk_env_string __P((const char *, const char *, int)); + static char **make_env_array_from_var_list __P((SHELL_VAR **)); + static char **make_var_export_array __P((VAR_CONTEXT *)); +*************** +*** 350,369 **** + /* If exported function, define it now. Don't import functions from + the environment in privileged mode. */ +! if (privmode == 0 && read_but_dont_execute == 0 && STREQN ("() {", string, 4)) + { + string_length = strlen (string); +! temp_string = (char *)xmalloc (3 + string_length + char_index); + +! strcpy (temp_string, name); +! temp_string[char_index] = ' '; +! strcpy (temp_string + char_index + 1, string); + + /* Don't import function names that are invalid identifiers from the + environment, though we still allow them to be defined as shell + variables. */ +! if (legal_identifier (name)) +! parse_and_execute (temp_string, name, SEVAL_NONINT|SEVAL_NOHIST|SEVAL_FUNCDEF|SEVAL_ONECMD); + +! if (temp_var = find_function (name)) + { + VSETATTR (temp_var, (att_exported|att_imported)); +--- 355,385 ---- + /* If exported function, define it now. Don't import functions from + the environment in privileged mode. */ +! if (privmode == 0 && read_but_dont_execute == 0 && +! STREQN (BASHFUNC_PREFIX, name, BASHFUNC_PREFLEN) && +! STREQ (BASHFUNC_SUFFIX, name + char_index - BASHFUNC_SUFFLEN) && +! STREQN ("() {", string, 4)) + { ++ size_t namelen; ++ char *tname; /* desired imported function name */ ++ ++ namelen = char_index - BASHFUNC_PREFLEN - BASHFUNC_SUFFLEN; ++ ++ tname = name + BASHFUNC_PREFLEN; /* start of func name */ ++ tname[namelen] = '\0'; /* now tname == func name */ ++ + string_length = strlen (string); +! temp_string = (char *)xmalloc (namelen + string_length + 2); + +! memcpy (temp_string, tname, namelen); +! temp_string[namelen] = ' '; +! memcpy (temp_string + namelen + 1, string, string_length + 1); + + /* Don't import function names that are invalid identifiers from the + environment, though we still allow them to be defined as shell + variables. */ +! if (absolute_program (tname) == 0 && (posixly_correct == 0 || legal_identifier (tname))) +! parse_and_execute (temp_string, tname, SEVAL_NONINT|SEVAL_NOHIST|SEVAL_FUNCDEF|SEVAL_ONECMD); + +! if (temp_var = find_function (tname)) + { + VSETATTR (temp_var, (att_exported|att_imported)); +*************** +*** 378,383 **** + } + last_command_exit_value = 1; +! report_error (_("error importing function definition for `%s'"), name); + } + } + #if defined (ARRAY_VARS) +--- 394,402 ---- + } + last_command_exit_value = 1; +! report_error (_("error importing function definition for `%s'"), tname); + } ++ ++ /* Restore original suffix */ ++ tname[namelen] = BASHFUNC_SUFFIX[0]; + } + #if defined (ARRAY_VARS) +*************** +*** 2955,2959 **** + + INVALIDATE_EXPORTSTR (var); +! var->exportstr = mk_env_string (name, value); + + array_needs_making = 1; +--- 2974,2978 ---- + + INVALIDATE_EXPORTSTR (var); +! var->exportstr = mk_env_string (name, value, 0); + + array_needs_making = 1; +*************** +*** 3853,3871 **** + + static inline char * +! mk_env_string (name, value) + const char *name, *value; + { +! int name_len, value_len; +! char *p; + + name_len = strlen (name); + value_len = STRLEN (value); +! p = (char *)xmalloc (2 + name_len + value_len); +! strcpy (p, name); +! p[name_len] = '='; + if (value && *value) +! strcpy (p + name_len + 1, value); + else +! p[name_len + 1] = '\0'; + return (p); + } +--- 3872,3911 ---- + + static inline char * +! mk_env_string (name, value, isfunc) + const char *name, *value; ++ int isfunc; + { +! size_t name_len, value_len; +! char *p, *q; + + name_len = strlen (name); + value_len = STRLEN (value); +! +! /* If we are exporting a shell function, construct the encoded function +! name. */ +! if (isfunc && value) +! { +! p = (char *)xmalloc (BASHFUNC_PREFLEN + name_len + BASHFUNC_SUFFLEN + value_len + 2); +! q = p; +! memcpy (q, BASHFUNC_PREFIX, BASHFUNC_PREFLEN); +! q += BASHFUNC_PREFLEN; +! memcpy (q, name, name_len); +! q += name_len; +! memcpy (q, BASHFUNC_SUFFIX, BASHFUNC_SUFFLEN); +! q += BASHFUNC_SUFFLEN; +! } +! else +! { +! p = (char *)xmalloc (2 + name_len + value_len); +! memcpy (p, name, name_len); +! q = p + name_len; +! } +! +! q[0] = '='; + if (value && *value) +! memcpy (q + 1, value, value_len + 1); + else +! q[1] = '\0'; +! + return (p); + } +*************** +*** 3953,3957 **** + using the cached exportstr... */ + list[list_index] = USE_EXPORTSTR ? savestring (value) +! : mk_env_string (var->name, value); + + if (USE_EXPORTSTR == 0) +--- 3993,3997 ---- + using the cached exportstr... */ + list[list_index] = USE_EXPORTSTR ? savestring (value) +! : mk_env_string (var->name, value, function_p (var)); + + if (USE_EXPORTSTR == 0) +*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 26 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 27 + + #endif /* _PATCHLEVEL_H_ */ + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-028 + +Bug-Reported-by: Florian Weimer +Bug-Reference-ID: +Bug-Reference-URL: + +Bug-Description: + +There are two local buffer overflows in parse.y that can cause the shell +to dump core when given many here-documents attached to a single command +or many nested loops. + +Patch (apply with `patch -p0'): + +*** bash-4.3/parse.y 2014-09-25 23:02:35.000000000 -0400 +--- parse.y 2014-09-29 16:47:03.000000000 -0400 +*************** +*** 169,172 **** +--- 169,175 ---- + static int reserved_word_acceptable __P((int)); + static int yylex __P((void)); ++ ++ static void push_heredoc __P((REDIRECT *)); ++ static char *mk_alexpansion __P((char *)); + static int alias_expand_token __P((char *)); + static int time_command_acceptable __P((void)); +*************** +*** 266,270 **** + /* Variables to manage the task of reading here documents, because we need to + defer the reading until after a complete command has been collected. */ +! static REDIRECT *redir_stack[10]; + int need_here_doc; + +--- 269,275 ---- + /* Variables to manage the task of reading here documents, because we need to + defer the reading until after a complete command has been collected. */ +! #define HEREDOC_MAX 16 +! +! static REDIRECT *redir_stack[HEREDOC_MAX]; + int need_here_doc; + +*************** +*** 308,312 **** + index is decremented after a case, select, or for command is parsed. */ + #define MAX_CASE_NEST 128 +! static int word_lineno[MAX_CASE_NEST]; + static int word_top = -1; + +--- 313,317 ---- + index is decremented after a case, select, or for command is parsed. */ + #define MAX_CASE_NEST 128 +! static int word_lineno[MAX_CASE_NEST+1]; + static int word_top = -1; + +*************** +*** 521,525 **** + redir.filename = $2; + $$ = make_redirection (source, r_reading_until, redir, 0); +! redir_stack[need_here_doc++] = $$; + } + | NUMBER LESS_LESS WORD +--- 526,530 ---- + redir.filename = $2; + $$ = make_redirection (source, r_reading_until, redir, 0); +! push_heredoc ($$); + } + | NUMBER LESS_LESS WORD +*************** +*** 528,532 **** + redir.filename = $3; + $$ = make_redirection (source, r_reading_until, redir, 0); +! redir_stack[need_here_doc++] = $$; + } + | REDIR_WORD LESS_LESS WORD +--- 533,537 ---- + redir.filename = $3; + $$ = make_redirection (source, r_reading_until, redir, 0); +! push_heredoc ($$); + } + | REDIR_WORD LESS_LESS WORD +*************** +*** 535,539 **** + redir.filename = $3; + $$ = make_redirection (source, r_reading_until, redir, REDIR_VARASSIGN); +! redir_stack[need_here_doc++] = $$; + } + | LESS_LESS_MINUS WORD +--- 540,544 ---- + redir.filename = $3; + $$ = make_redirection (source, r_reading_until, redir, REDIR_VARASSIGN); +! push_heredoc ($$); + } + | LESS_LESS_MINUS WORD +*************** +*** 542,546 **** + redir.filename = $2; + $$ = make_redirection (source, r_deblank_reading_until, redir, 0); +! redir_stack[need_here_doc++] = $$; + } + | NUMBER LESS_LESS_MINUS WORD +--- 547,551 ---- + redir.filename = $2; + $$ = make_redirection (source, r_deblank_reading_until, redir, 0); +! push_heredoc ($$); + } + | NUMBER LESS_LESS_MINUS WORD +*************** +*** 549,553 **** + redir.filename = $3; + $$ = make_redirection (source, r_deblank_reading_until, redir, 0); +! redir_stack[need_here_doc++] = $$; + } + | REDIR_WORD LESS_LESS_MINUS WORD +--- 554,558 ---- + redir.filename = $3; + $$ = make_redirection (source, r_deblank_reading_until, redir, 0); +! push_heredoc ($$); + } + | REDIR_WORD LESS_LESS_MINUS WORD +*************** +*** 556,560 **** + redir.filename = $3; + $$ = make_redirection (source, r_deblank_reading_until, redir, REDIR_VARASSIGN); +! redir_stack[need_here_doc++] = $$; + } + | LESS_LESS_LESS WORD +--- 561,565 ---- + redir.filename = $3; + $$ = make_redirection (source, r_deblank_reading_until, redir, REDIR_VARASSIGN); +! push_heredoc ($$); + } + | LESS_LESS_LESS WORD +*************** +*** 2637,2640 **** +--- 2642,2660 ---- + static int esacs_needed_count; + ++ static void ++ push_heredoc (r) ++ REDIRECT *r; ++ { ++ if (need_here_doc >= HEREDOC_MAX) ++ { ++ last_command_exit_value = EX_BADUSAGE; ++ need_here_doc = 0; ++ report_syntax_error (_("maximum here-document count exceeded")); ++ reset_parser (); ++ exit_shell (last_command_exit_value); ++ } ++ redir_stack[need_here_doc++] = r; ++ } ++ + void + gather_here_documents () +*** bash-4.3/y.tab.c 2014-10-01 11:38:24.000000000 -0400 +--- y.tab.c 2014-10-01 12:46:11.000000000 -0400 +*************** +*** 169,173 **** + + /* Copy the first part of user declarations. */ +! #line 21 "/usr/homes/chet/src/bash/src/parse.y" + + #include "config.h" +--- 169,173 ---- + + /* Copy the first part of user declarations. */ +! #line 21 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + + #include "config.h" +*************** +*** 320,323 **** +--- 320,326 ---- + static int reserved_word_acceptable __P((int)); + static int yylex __P((void)); ++ ++ static void push_heredoc __P((REDIRECT *)); ++ static char *mk_alexpansion __P((char *)); + static int alias_expand_token __P((char *)); + static int time_command_acceptable __P((void)); +*************** +*** 417,421 **** + /* Variables to manage the task of reading here documents, because we need to + defer the reading until after a complete command has been collected. */ +! static REDIRECT *redir_stack[10]; + int need_here_doc; + +--- 420,426 ---- + /* Variables to manage the task of reading here documents, because we need to + defer the reading until after a complete command has been collected. */ +! #define HEREDOC_MAX 16 +! +! static REDIRECT *redir_stack[HEREDOC_MAX]; + int need_here_doc; + +*************** +*** 459,463 **** + index is decremented after a case, select, or for command is parsed. */ + #define MAX_CASE_NEST 128 +! static int word_lineno[MAX_CASE_NEST]; + static int word_top = -1; + +--- 464,468 ---- + index is decremented after a case, select, or for command is parsed. */ + #define MAX_CASE_NEST 128 +! static int word_lineno[MAX_CASE_NEST+1]; + static int word_top = -1; + +*************** +*** 493,497 **** + #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED + typedef union YYSTYPE +! #line 324 "/usr/homes/chet/src/bash/src/parse.y" + { + WORD_DESC *word; /* the word that we read. */ +--- 498,502 ---- + #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED + typedef union YYSTYPE +! #line 329 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + WORD_DESC *word; /* the word that we read. */ +*************** +*** 504,508 **** + } + /* Line 193 of yacc.c. */ +! #line 507 "y.tab.c" + YYSTYPE; + # define yystype YYSTYPE /* obsolescent; will be withdrawn */ +--- 509,513 ---- + } + /* Line 193 of yacc.c. */ +! #line 512 "y.tab.c" + YYSTYPE; + # define yystype YYSTYPE /* obsolescent; will be withdrawn */ +*************** +*** 517,521 **** + + /* Line 216 of yacc.c. */ +! #line 520 "y.tab.c" + + #ifdef short +--- 522,526 ---- + + /* Line 216 of yacc.c. */ +! #line 525 "y.tab.c" + + #ifdef short +*************** +*** 887,907 **** + static const yytype_uint16 yyrline[] = + { +! 0, 377, 377, 388, 397, 412, 422, 424, 428, 434, +! 440, 446, 452, 458, 464, 470, 476, 482, 488, 494, +! 500, 506, 512, 518, 525, 532, 539, 546, 553, 560, +! 566, 572, 578, 584, 590, 596, 602, 608, 614, 620, +! 626, 632, 638, 644, 650, 656, 662, 668, 674, 680, +! 686, 692, 700, 702, 704, 708, 712, 723, 725, 729, +! 731, 733, 749, 751, 755, 757, 759, 761, 763, 765, +! 767, 769, 771, 773, 775, 779, 784, 789, 794, 799, +! 804, 809, 814, 821, 826, 831, 836, 843, 848, 853, +! 858, 863, 868, 875, 880, 885, 892, 895, 898, 902, +! 904, 935, 942, 947, 964, 969, 986, 993, 995, 997, +! 1002, 1006, 1010, 1014, 1016, 1018, 1022, 1023, 1027, 1029, +! 1031, 1033, 1037, 1039, 1041, 1043, 1045, 1047, 1051, 1053, +! 1062, 1070, 1071, 1077, 1078, 1085, 1089, 1091, 1093, 1100, +! 1102, 1104, 1108, 1109, 1112, 1114, 1116, 1120, 1121, 1130, +! 1143, 1159, 1174, 1176, 1178, 1185, 1188, 1192, 1194, 1200, +! 1206, 1223, 1243, 1245, 1268, 1272, 1274, 1276 + }; + #endif +--- 892,912 ---- + static const yytype_uint16 yyrline[] = + { +! 0, 382, 382, 393, 402, 417, 427, 429, 433, 439, +! 445, 451, 457, 463, 469, 475, 481, 487, 493, 499, +! 505, 511, 517, 523, 530, 537, 544, 551, 558, 565, +! 571, 577, 583, 589, 595, 601, 607, 613, 619, 625, +! 631, 637, 643, 649, 655, 661, 667, 673, 679, 685, +! 691, 697, 705, 707, 709, 713, 717, 728, 730, 734, +! 736, 738, 754, 756, 760, 762, 764, 766, 768, 770, +! 772, 774, 776, 778, 780, 784, 789, 794, 799, 804, +! 809, 814, 819, 826, 831, 836, 841, 848, 853, 858, +! 863, 868, 873, 880, 885, 890, 897, 900, 903, 907, +! 909, 940, 947, 952, 969, 974, 991, 998, 1000, 1002, +! 1007, 1011, 1015, 1019, 1021, 1023, 1027, 1028, 1032, 1034, +! 1036, 1038, 1042, 1044, 1046, 1048, 1050, 1052, 1056, 1058, +! 1067, 1075, 1076, 1082, 1083, 1090, 1094, 1096, 1098, 1105, +! 1107, 1109, 1113, 1114, 1117, 1119, 1121, 1125, 1126, 1135, +! 1148, 1164, 1179, 1181, 1183, 1190, 1193, 1197, 1199, 1205, +! 1211, 1228, 1248, 1250, 1273, 1277, 1279, 1281 + }; + #endif +*************** +*** 2094,2098 **** + { + case 2: +! #line 378 "/usr/homes/chet/src/bash/src/parse.y" + { + /* Case of regular command. Discard the error +--- 2099,2103 ---- + { + case 2: +! #line 383 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + /* Case of regular command. Discard the error +*************** +*** 2108,2112 **** + + case 3: +! #line 389 "/usr/homes/chet/src/bash/src/parse.y" + { + /* Case of regular command, but not a very +--- 2113,2117 ---- + + case 3: +! #line 394 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + /* Case of regular command, but not a very +*************** +*** 2120,2124 **** + + case 4: +! #line 398 "/usr/homes/chet/src/bash/src/parse.y" + { + /* Error during parsing. Return NULL command. */ +--- 2125,2129 ---- + + case 4: +! #line 403 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + /* Error during parsing. Return NULL command. */ +*************** +*** 2138,2142 **** + + case 5: +! #line 413 "/usr/homes/chet/src/bash/src/parse.y" + { + /* Case of EOF seen by itself. Do ignoreeof or +--- 2143,2147 ---- + + case 5: +! #line 418 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + /* Case of EOF seen by itself. Do ignoreeof or +*************** +*** 2149,2163 **** + + case 6: +! #line 423 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), (WORD_LIST *)NULL); } + break; + + case 7: +! #line 425 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.word_list) = make_word_list ((yyvsp[(2) - (2)].word), (yyvsp[(1) - (2)].word_list)); } + break; + + case 8: +! #line 429 "/usr/homes/chet/src/bash/src/parse.y" + { + source.dest = 1; +--- 2154,2168 ---- + + case 6: +! #line 428 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), (WORD_LIST *)NULL); } + break; + + case 7: +! #line 430 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.word_list) = make_word_list ((yyvsp[(2) - (2)].word), (yyvsp[(1) - (2)].word_list)); } + break; + + case 8: +! #line 434 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = 1; +*************** +*** 2168,2172 **** + + case 9: +! #line 435 "/usr/homes/chet/src/bash/src/parse.y" + { + source.dest = 0; +--- 2173,2177 ---- + + case 9: +! #line 440 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = 0; +*************** +*** 2177,2181 **** + + case 10: +! #line 441 "/usr/homes/chet/src/bash/src/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +--- 2182,2186 ---- + + case 10: +! #line 446 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +*************** +*** 2186,2190 **** + + case 11: +! #line 447 "/usr/homes/chet/src/bash/src/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +--- 2191,2195 ---- + + case 11: +! #line 452 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +*************** +*** 2195,2199 **** + + case 12: +! #line 453 "/usr/homes/chet/src/bash/src/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +--- 2200,2204 ---- + + case 12: +! #line 458 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +*************** +*** 2204,2208 **** + + case 13: +! #line 459 "/usr/homes/chet/src/bash/src/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +--- 2209,2213 ---- + + case 13: +! #line 464 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +*************** +*** 2213,2217 **** + + case 14: +! #line 465 "/usr/homes/chet/src/bash/src/parse.y" + { + source.dest = 1; +--- 2218,2222 ---- + + case 14: +! #line 470 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = 1; +*************** +*** 2222,2226 **** + + case 15: +! #line 471 "/usr/homes/chet/src/bash/src/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +--- 2227,2231 ---- + + case 15: +! #line 476 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +*************** +*** 2231,2235 **** + + case 16: +! #line 477 "/usr/homes/chet/src/bash/src/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +--- 2236,2240 ---- + + case 16: +! #line 482 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +*************** +*** 2240,2244 **** + + case 17: +! #line 483 "/usr/homes/chet/src/bash/src/parse.y" + { + source.dest = 1; +--- 2245,2249 ---- + + case 17: +! #line 488 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = 1; +*************** +*** 2249,2253 **** + + case 18: +! #line 489 "/usr/homes/chet/src/bash/src/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +--- 2254,2258 ---- + + case 18: +! #line 494 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +*************** +*** 2258,2262 **** + + case 19: +! #line 495 "/usr/homes/chet/src/bash/src/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +--- 2263,2267 ---- + + case 19: +! #line 500 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +*************** +*** 2267,2271 **** + + case 20: +! #line 501 "/usr/homes/chet/src/bash/src/parse.y" + { + source.dest = 0; +--- 2272,2276 ---- + + case 20: +! #line 506 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = 0; +*************** +*** 2276,2280 **** + + case 21: +! #line 507 "/usr/homes/chet/src/bash/src/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +--- 2281,2285 ---- + + case 21: +! #line 512 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +*************** +*** 2285,2289 **** + + case 22: +! #line 513 "/usr/homes/chet/src/bash/src/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +--- 2290,2294 ---- + + case 22: +! #line 518 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +*************** +*** 2294,2358 **** + + case 23: +! #line 519 "/usr/homes/chet/src/bash/src/parse.y" + { + source.dest = 0; + redir.filename = (yyvsp[(2) - (2)].word); + (yyval.redirect) = make_redirection (source, r_reading_until, redir, 0); +! redir_stack[need_here_doc++] = (yyval.redirect); + } + break; + + case 24: +! #line 526 "/usr/homes/chet/src/bash/src/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); + redir.filename = (yyvsp[(3) - (3)].word); + (yyval.redirect) = make_redirection (source, r_reading_until, redir, 0); +! redir_stack[need_here_doc++] = (yyval.redirect); + } + break; + + case 25: +! #line 533 "/usr/homes/chet/src/bash/src/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); + redir.filename = (yyvsp[(3) - (3)].word); + (yyval.redirect) = make_redirection (source, r_reading_until, redir, REDIR_VARASSIGN); +! redir_stack[need_here_doc++] = (yyval.redirect); + } + break; + + case 26: +! #line 540 "/usr/homes/chet/src/bash/src/parse.y" + { + source.dest = 0; + redir.filename = (yyvsp[(2) - (2)].word); + (yyval.redirect) = make_redirection (source, r_deblank_reading_until, redir, 0); +! redir_stack[need_here_doc++] = (yyval.redirect); + } + break; + + case 27: +! #line 547 "/usr/homes/chet/src/bash/src/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); + redir.filename = (yyvsp[(3) - (3)].word); + (yyval.redirect) = make_redirection (source, r_deblank_reading_until, redir, 0); +! redir_stack[need_here_doc++] = (yyval.redirect); + } + break; + + case 28: +! #line 554 "/usr/homes/chet/src/bash/src/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); + redir.filename = (yyvsp[(3) - (3)].word); + (yyval.redirect) = make_redirection (source, r_deblank_reading_until, redir, REDIR_VARASSIGN); +! redir_stack[need_here_doc++] = (yyval.redirect); + } + break; + + case 29: +! #line 561 "/usr/homes/chet/src/bash/src/parse.y" + { + source.dest = 0; +--- 2299,2363 ---- + + case 23: +! #line 524 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = 0; + redir.filename = (yyvsp[(2) - (2)].word); + (yyval.redirect) = make_redirection (source, r_reading_until, redir, 0); +! push_heredoc ((yyval.redirect)); + } + break; + + case 24: +! #line 531 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); + redir.filename = (yyvsp[(3) - (3)].word); + (yyval.redirect) = make_redirection (source, r_reading_until, redir, 0); +! push_heredoc ((yyval.redirect)); + } + break; + + case 25: +! #line 538 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); + redir.filename = (yyvsp[(3) - (3)].word); + (yyval.redirect) = make_redirection (source, r_reading_until, redir, REDIR_VARASSIGN); +! push_heredoc ((yyval.redirect)); + } + break; + + case 26: +! #line 545 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = 0; + redir.filename = (yyvsp[(2) - (2)].word); + (yyval.redirect) = make_redirection (source, r_deblank_reading_until, redir, 0); +! push_heredoc ((yyval.redirect)); + } + break; + + case 27: +! #line 552 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); + redir.filename = (yyvsp[(3) - (3)].word); + (yyval.redirect) = make_redirection (source, r_deblank_reading_until, redir, 0); +! push_heredoc ((yyval.redirect)); + } + break; + + case 28: +! #line 559 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); + redir.filename = (yyvsp[(3) - (3)].word); + (yyval.redirect) = make_redirection (source, r_deblank_reading_until, redir, REDIR_VARASSIGN); +! push_heredoc ((yyval.redirect)); + } + break; + + case 29: +! #line 566 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = 0; +*************** +*** 2363,2367 **** + + case 30: +! #line 567 "/usr/homes/chet/src/bash/src/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +--- 2368,2372 ---- + + case 30: +! #line 572 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +*************** +*** 2372,2376 **** + + case 31: +! #line 573 "/usr/homes/chet/src/bash/src/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +--- 2377,2381 ---- + + case 31: +! #line 578 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +*************** +*** 2381,2385 **** + + case 32: +! #line 579 "/usr/homes/chet/src/bash/src/parse.y" + { + source.dest = 0; +--- 2386,2390 ---- + + case 32: +! #line 584 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = 0; +*************** +*** 2390,2394 **** + + case 33: +! #line 585 "/usr/homes/chet/src/bash/src/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +--- 2395,2399 ---- + + case 33: +! #line 590 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +*************** +*** 2399,2403 **** + + case 34: +! #line 591 "/usr/homes/chet/src/bash/src/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +--- 2404,2408 ---- + + case 34: +! #line 596 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +*************** +*** 2408,2412 **** + + case 35: +! #line 597 "/usr/homes/chet/src/bash/src/parse.y" + { + source.dest = 1; +--- 2413,2417 ---- + + case 35: +! #line 602 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = 1; +*************** +*** 2417,2421 **** + + case 36: +! #line 603 "/usr/homes/chet/src/bash/src/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +--- 2422,2426 ---- + + case 36: +! #line 608 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +*************** +*** 2426,2430 **** + + case 37: +! #line 609 "/usr/homes/chet/src/bash/src/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +--- 2431,2435 ---- + + case 37: +! #line 614 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +*************** +*** 2435,2439 **** + + case 38: +! #line 615 "/usr/homes/chet/src/bash/src/parse.y" + { + source.dest = 0; +--- 2440,2444 ---- + + case 38: +! #line 620 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = 0; +*************** +*** 2444,2448 **** + + case 39: +! #line 621 "/usr/homes/chet/src/bash/src/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +--- 2449,2453 ---- + + case 39: +! #line 626 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +*************** +*** 2453,2457 **** + + case 40: +! #line 627 "/usr/homes/chet/src/bash/src/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +--- 2458,2462 ---- + + case 40: +! #line 632 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +*************** +*** 2462,2466 **** + + case 41: +! #line 633 "/usr/homes/chet/src/bash/src/parse.y" + { + source.dest = 1; +--- 2467,2471 ---- + + case 41: +! #line 638 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = 1; +*************** +*** 2471,2475 **** + + case 42: +! #line 639 "/usr/homes/chet/src/bash/src/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +--- 2476,2480 ---- + + case 42: +! #line 644 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +*************** +*** 2480,2484 **** + + case 43: +! #line 645 "/usr/homes/chet/src/bash/src/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +--- 2485,2489 ---- + + case 43: +! #line 650 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +*************** +*** 2489,2493 **** + + case 44: +! #line 651 "/usr/homes/chet/src/bash/src/parse.y" + { + source.dest = 1; +--- 2494,2498 ---- + + case 44: +! #line 656 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = 1; +*************** +*** 2498,2502 **** + + case 45: +! #line 657 "/usr/homes/chet/src/bash/src/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +--- 2503,2507 ---- + + case 45: +! #line 662 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +*************** +*** 2507,2511 **** + + case 46: +! #line 663 "/usr/homes/chet/src/bash/src/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +--- 2512,2516 ---- + + case 46: +! #line 668 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +*************** +*** 2516,2520 **** + + case 47: +! #line 669 "/usr/homes/chet/src/bash/src/parse.y" + { + source.dest = 0; +--- 2521,2525 ---- + + case 47: +! #line 674 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = 0; +*************** +*** 2525,2529 **** + + case 48: +! #line 675 "/usr/homes/chet/src/bash/src/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +--- 2530,2534 ---- + + case 48: +! #line 680 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +*************** +*** 2534,2538 **** + + case 49: +! #line 681 "/usr/homes/chet/src/bash/src/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +--- 2539,2543 ---- + + case 49: +! #line 686 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +*************** +*** 2543,2547 **** + + case 50: +! #line 687 "/usr/homes/chet/src/bash/src/parse.y" + { + source.dest = 1; +--- 2548,2552 ---- + + case 50: +! #line 692 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = 1; +*************** +*** 2552,2556 **** + + case 51: +! #line 693 "/usr/homes/chet/src/bash/src/parse.y" + { + source.dest = 1; +--- 2557,2561 ---- + + case 51: +! #line 698 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = 1; +*************** +*** 2561,2580 **** + + case 52: +! #line 701 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.element).word = (yyvsp[(1) - (1)].word); (yyval.element).redirect = 0; } + break; + + case 53: +! #line 703 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.element).word = (yyvsp[(1) - (1)].word); (yyval.element).redirect = 0; } + break; + + case 54: +! #line 705 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.element).redirect = (yyvsp[(1) - (1)].redirect); (yyval.element).word = 0; } + break; + + case 55: +! #line 709 "/usr/homes/chet/src/bash/src/parse.y" + { + (yyval.redirect) = (yyvsp[(1) - (1)].redirect); +--- 2566,2585 ---- + + case 52: +! #line 706 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.element).word = (yyvsp[(1) - (1)].word); (yyval.element).redirect = 0; } + break; + + case 53: +! #line 708 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.element).word = (yyvsp[(1) - (1)].word); (yyval.element).redirect = 0; } + break; + + case 54: +! #line 710 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.element).redirect = (yyvsp[(1) - (1)].redirect); (yyval.element).word = 0; } + break; + + case 55: +! #line 714 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.redirect) = (yyvsp[(1) - (1)].redirect); +*************** +*** 2583,2587 **** + + case 56: +! #line 713 "/usr/homes/chet/src/bash/src/parse.y" + { + register REDIRECT *t; +--- 2588,2592 ---- + + case 56: +! #line 718 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + register REDIRECT *t; +*************** +*** 2595,2619 **** + + case 57: +! #line 724 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.command) = make_simple_command ((yyvsp[(1) - (1)].element), (COMMAND *)NULL); } + break; + + case 58: +! #line 726 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.command) = make_simple_command ((yyvsp[(2) - (2)].element), (yyvsp[(1) - (2)].command)); } + break; + + case 59: +! #line 730 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.command) = clean_simple_command ((yyvsp[(1) - (1)].command)); } + break; + + case 60: +! #line 732 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 61: +! #line 734 "/usr/homes/chet/src/bash/src/parse.y" + { + COMMAND *tc; +--- 2600,2624 ---- + + case 57: +! #line 729 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = make_simple_command ((yyvsp[(1) - (1)].element), (COMMAND *)NULL); } + break; + + case 58: +! #line 731 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = make_simple_command ((yyvsp[(2) - (2)].element), (yyvsp[(1) - (2)].command)); } + break; + + case 59: +! #line 735 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = clean_simple_command ((yyvsp[(1) - (1)].command)); } + break; + + case 60: +! #line 737 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 61: +! #line 739 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + COMMAND *tc; +*************** +*** 2634,2703 **** + + case 62: +! #line 750 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 63: +! #line 752 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 64: +! #line 756 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 65: +! #line 758 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 66: +! #line 760 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.command) = make_while_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command)); } + break; + + case 67: +! #line 762 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.command) = make_until_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command)); } + break; + + case 68: +! #line 764 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 69: +! #line 766 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 70: +! #line 768 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 71: +! #line 770 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 72: +! #line 772 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 73: +! #line 774 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 74: +! #line 776 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 75: +! #line 780 "/usr/homes/chet/src/bash/src/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); +--- 2639,2708 ---- + + case 62: +! #line 755 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 63: +! #line 757 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 64: +! #line 761 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 65: +! #line 763 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 66: +! #line 765 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = make_while_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command)); } + break; + + case 67: +! #line 767 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = make_until_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command)); } + break; + + case 68: +! #line 769 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 69: +! #line 771 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 70: +! #line 773 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 71: +! #line 775 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 72: +! #line 777 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 73: +! #line 779 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 74: +! #line 781 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 75: +! #line 785 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); +*************** +*** 2707,2711 **** + + case 76: +! #line 785 "/usr/homes/chet/src/bash/src/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); +--- 2712,2716 ---- + + case 76: +! #line 790 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); +*************** +*** 2715,2719 **** + + case 77: +! #line 790 "/usr/homes/chet/src/bash/src/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); +--- 2720,2724 ---- + + case 77: +! #line 795 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); +*************** +*** 2723,2727 **** + + case 78: +! #line 795 "/usr/homes/chet/src/bash/src/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); +--- 2728,2732 ---- + + case 78: +! #line 800 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); +*************** +*** 2731,2735 **** + + case 79: +! #line 800 "/usr/homes/chet/src/bash/src/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); +--- 2736,2740 ---- + + case 79: +! #line 805 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); +*************** +*** 2739,2743 **** + + case 80: +! #line 805 "/usr/homes/chet/src/bash/src/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); +--- 2744,2748 ---- + + case 80: +! #line 810 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); +*************** +*** 2747,2751 **** + + case 81: +! #line 810 "/usr/homes/chet/src/bash/src/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[(2) - (9)].word), (WORD_LIST *)NULL, (yyvsp[(8) - (9)].command), word_lineno[word_top]); +--- 2752,2756 ---- + + case 81: +! #line 815 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[(2) - (9)].word), (WORD_LIST *)NULL, (yyvsp[(8) - (9)].command), word_lineno[word_top]); +*************** +*** 2755,2759 **** + + case 82: +! #line 815 "/usr/homes/chet/src/bash/src/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[(2) - (9)].word), (WORD_LIST *)NULL, (yyvsp[(8) - (9)].command), word_lineno[word_top]); +--- 2760,2764 ---- + + case 82: +! #line 820 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[(2) - (9)].word), (WORD_LIST *)NULL, (yyvsp[(8) - (9)].command), word_lineno[word_top]); +*************** +*** 2763,2767 **** + + case 83: +! #line 822 "/usr/homes/chet/src/bash/src/parse.y" + { + (yyval.command) = make_arith_for_command ((yyvsp[(2) - (7)].word_list), (yyvsp[(6) - (7)].command), arith_for_lineno); +--- 2768,2772 ---- + + case 83: +! #line 827 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_arith_for_command ((yyvsp[(2) - (7)].word_list), (yyvsp[(6) - (7)].command), arith_for_lineno); +*************** +*** 2771,2775 **** + + case 84: +! #line 827 "/usr/homes/chet/src/bash/src/parse.y" + { + (yyval.command) = make_arith_for_command ((yyvsp[(2) - (7)].word_list), (yyvsp[(6) - (7)].command), arith_for_lineno); +--- 2776,2780 ---- + + case 84: +! #line 832 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_arith_for_command ((yyvsp[(2) - (7)].word_list), (yyvsp[(6) - (7)].command), arith_for_lineno); +*************** +*** 2779,2783 **** + + case 85: +! #line 832 "/usr/homes/chet/src/bash/src/parse.y" + { + (yyval.command) = make_arith_for_command ((yyvsp[(2) - (5)].word_list), (yyvsp[(4) - (5)].command), arith_for_lineno); +--- 2784,2788 ---- + + case 85: +! #line 837 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_arith_for_command ((yyvsp[(2) - (5)].word_list), (yyvsp[(4) - (5)].command), arith_for_lineno); +*************** +*** 2787,2791 **** + + case 86: +! #line 837 "/usr/homes/chet/src/bash/src/parse.y" + { + (yyval.command) = make_arith_for_command ((yyvsp[(2) - (5)].word_list), (yyvsp[(4) - (5)].command), arith_for_lineno); +--- 2792,2796 ---- + + case 86: +! #line 842 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_arith_for_command ((yyvsp[(2) - (5)].word_list), (yyvsp[(4) - (5)].command), arith_for_lineno); +*************** +*** 2795,2799 **** + + case 87: +! #line 844 "/usr/homes/chet/src/bash/src/parse.y" + { + (yyval.command) = make_select_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); +--- 2800,2804 ---- + + case 87: +! #line 849 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_select_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); +*************** +*** 2803,2807 **** + + case 88: +! #line 849 "/usr/homes/chet/src/bash/src/parse.y" + { + (yyval.command) = make_select_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); +--- 2808,2812 ---- + + case 88: +! #line 854 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_select_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); +*************** +*** 2811,2815 **** + + case 89: +! #line 854 "/usr/homes/chet/src/bash/src/parse.y" + { + (yyval.command) = make_select_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); +--- 2816,2820 ---- + + case 89: +! #line 859 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_select_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); +*************** +*** 2819,2823 **** + + case 90: +! #line 859 "/usr/homes/chet/src/bash/src/parse.y" + { + (yyval.command) = make_select_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); +--- 2824,2828 ---- + + case 90: +! #line 864 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_select_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); +*************** +*** 2827,2831 **** + + case 91: +! #line 864 "/usr/homes/chet/src/bash/src/parse.y" + { + (yyval.command) = make_select_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); +--- 2832,2836 ---- + + case 91: +! #line 869 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_select_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); +*************** +*** 2835,2839 **** + + case 92: +! #line 869 "/usr/homes/chet/src/bash/src/parse.y" + { + (yyval.command) = make_select_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); +--- 2840,2844 ---- + + case 92: +! #line 874 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_select_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); +*************** +*** 2843,2847 **** + + case 93: +! #line 876 "/usr/homes/chet/src/bash/src/parse.y" + { + (yyval.command) = make_case_command ((yyvsp[(2) - (6)].word), (PATTERN_LIST *)NULL, word_lineno[word_top]); +--- 2848,2852 ---- + + case 93: +! #line 881 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_case_command ((yyvsp[(2) - (6)].word), (PATTERN_LIST *)NULL, word_lineno[word_top]); +*************** +*** 2851,2855 **** + + case 94: +! #line 881 "/usr/homes/chet/src/bash/src/parse.y" + { + (yyval.command) = make_case_command ((yyvsp[(2) - (7)].word), (yyvsp[(5) - (7)].pattern), word_lineno[word_top]); +--- 2856,2860 ---- + + case 94: +! #line 886 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_case_command ((yyvsp[(2) - (7)].word), (yyvsp[(5) - (7)].pattern), word_lineno[word_top]); +*************** +*** 2859,2863 **** + + case 95: +! #line 886 "/usr/homes/chet/src/bash/src/parse.y" + { + (yyval.command) = make_case_command ((yyvsp[(2) - (6)].word), (yyvsp[(5) - (6)].pattern), word_lineno[word_top]); +--- 2864,2868 ---- + + case 95: +! #line 891 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_case_command ((yyvsp[(2) - (6)].word), (yyvsp[(5) - (6)].pattern), word_lineno[word_top]); +*************** +*** 2867,2891 **** + + case 96: +! #line 893 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.command) = make_function_def ((yyvsp[(1) - (5)].word), (yyvsp[(5) - (5)].command), function_dstart, function_bstart); } + break; + + case 97: +! #line 896 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.command) = make_function_def ((yyvsp[(2) - (6)].word), (yyvsp[(6) - (6)].command), function_dstart, function_bstart); } + break; + + case 98: +! #line 899 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.command) = make_function_def ((yyvsp[(2) - (4)].word), (yyvsp[(4) - (4)].command), function_dstart, function_bstart); } + break; + + case 99: +! #line 903 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 100: +! #line 905 "/usr/homes/chet/src/bash/src/parse.y" + { + COMMAND *tc; +--- 2872,2896 ---- + + case 96: +! #line 898 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = make_function_def ((yyvsp[(1) - (5)].word), (yyvsp[(5) - (5)].command), function_dstart, function_bstart); } + break; + + case 97: +! #line 901 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = make_function_def ((yyvsp[(2) - (6)].word), (yyvsp[(6) - (6)].command), function_dstart, function_bstart); } + break; + + case 98: +! #line 904 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = make_function_def ((yyvsp[(2) - (4)].word), (yyvsp[(4) - (4)].command), function_dstart, function_bstart); } + break; + + case 99: +! #line 908 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 100: +! #line 910 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + COMMAND *tc; +*************** +*** 2919,2923 **** + + case 101: +! #line 936 "/usr/homes/chet/src/bash/src/parse.y" + { + (yyval.command) = make_subshell_command ((yyvsp[(2) - (3)].command)); +--- 2924,2928 ---- + + case 101: +! #line 941 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_subshell_command ((yyvsp[(2) - (3)].command)); +*************** +*** 2927,2931 **** + + case 102: +! #line 943 "/usr/homes/chet/src/bash/src/parse.y" + { + (yyval.command) = make_coproc_command ("COPROC", (yyvsp[(2) - (2)].command)); +--- 2932,2936 ---- + + case 102: +! #line 948 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_coproc_command ("COPROC", (yyvsp[(2) - (2)].command)); +*************** +*** 2935,2939 **** + + case 103: +! #line 948 "/usr/homes/chet/src/bash/src/parse.y" + { + COMMAND *tc; +--- 2940,2944 ---- + + case 103: +! #line 953 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + COMMAND *tc; +*************** +*** 2955,2959 **** + + case 104: +! #line 965 "/usr/homes/chet/src/bash/src/parse.y" + { + (yyval.command) = make_coproc_command ((yyvsp[(2) - (3)].word)->word, (yyvsp[(3) - (3)].command)); +--- 2960,2964 ---- + + case 104: +! #line 970 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_coproc_command ((yyvsp[(2) - (3)].word)->word, (yyvsp[(3) - (3)].command)); +*************** +*** 2963,2967 **** + + case 105: +! #line 970 "/usr/homes/chet/src/bash/src/parse.y" + { + COMMAND *tc; +--- 2968,2972 ---- + + case 105: +! #line 975 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + COMMAND *tc; +*************** +*** 2983,2987 **** + + case 106: +! #line 987 "/usr/homes/chet/src/bash/src/parse.y" + { + (yyval.command) = make_coproc_command ("COPROC", clean_simple_command ((yyvsp[(2) - (2)].command))); +--- 2988,2992 ---- + + case 106: +! #line 992 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_coproc_command ("COPROC", clean_simple_command ((yyvsp[(2) - (2)].command))); +*************** +*** 2991,3105 **** + + case 107: +! #line 994 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command), (COMMAND *)NULL); } + break; + + case 108: +! #line 996 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.command) = make_if_command ((yyvsp[(2) - (7)].command), (yyvsp[(4) - (7)].command), (yyvsp[(6) - (7)].command)); } + break; + + case 109: +! #line 998 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.command) = make_if_command ((yyvsp[(2) - (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(5) - (6)].command)); } + break; + + case 110: +! #line 1003 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.command) = make_group_command ((yyvsp[(2) - (3)].command)); } + break; + + case 111: +! #line 1007 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.command) = make_arith_command ((yyvsp[(1) - (1)].word_list)); } + break; + + case 112: +! #line 1011 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[(2) - (3)].command); } + break; + + case 113: +! #line 1015 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.command) = make_if_command ((yyvsp[(2) - (4)].command), (yyvsp[(4) - (4)].command), (COMMAND *)NULL); } + break; + + case 114: +! #line 1017 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.command) = make_if_command ((yyvsp[(2) - (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(6) - (6)].command)); } + break; + + case 115: +! #line 1019 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command), (yyvsp[(5) - (5)].command)); } + break; + + case 117: +! #line 1024 "/usr/homes/chet/src/bash/src/parse.y" + { (yyvsp[(2) - (2)].pattern)->next = (yyvsp[(1) - (2)].pattern); (yyval.pattern) = (yyvsp[(2) - (2)].pattern); } + break; + + case 118: +! #line 1028 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), (yyvsp[(4) - (4)].command)); } + break; + + case 119: +! #line 1030 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), (COMMAND *)NULL); } + break; + + case 120: +! #line 1032 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), (yyvsp[(5) - (5)].command)); } + break; + + case 121: +! #line 1034 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), (COMMAND *)NULL); } + break; + + case 122: +! #line 1038 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } + break; + + case 123: +! #line 1040 "/usr/homes/chet/src/bash/src/parse.y" + { (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } + break; + + case 124: +! #line 1042 "/usr/homes/chet/src/bash/src/parse.y" + { (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } + break; + + case 125: +! #line 1044 "/usr/homes/chet/src/bash/src/parse.y" + { (yyvsp[(2) - (3)].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } + break; + + case 126: +! #line 1046 "/usr/homes/chet/src/bash/src/parse.y" + { (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_TESTNEXT; (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } + break; + + case 127: +! #line 1048 "/usr/homes/chet/src/bash/src/parse.y" + { (yyvsp[(2) - (3)].pattern)->flags |= CASEPAT_TESTNEXT; (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } + break; + + case 128: +! #line 1052 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), (WORD_LIST *)NULL); } + break; + + case 129: +! #line 1054 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.word_list) = make_word_list ((yyvsp[(3) - (3)].word), (yyvsp[(1) - (3)].word_list)); } + break; + + case 130: +! #line 1063 "/usr/homes/chet/src/bash/src/parse.y" + { + (yyval.command) = (yyvsp[(2) - (2)].command); +--- 2996,3110 ---- + + case 107: +! #line 999 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command), (COMMAND *)NULL); } + break; + + case 108: +! #line 1001 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = make_if_command ((yyvsp[(2) - (7)].command), (yyvsp[(4) - (7)].command), (yyvsp[(6) - (7)].command)); } + break; + + case 109: +! #line 1003 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = make_if_command ((yyvsp[(2) - (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(5) - (6)].command)); } + break; + + case 110: +! #line 1008 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = make_group_command ((yyvsp[(2) - (3)].command)); } + break; + + case 111: +! #line 1012 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = make_arith_command ((yyvsp[(1) - (1)].word_list)); } + break; + + case 112: +! #line 1016 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = (yyvsp[(2) - (3)].command); } + break; + + case 113: +! #line 1020 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = make_if_command ((yyvsp[(2) - (4)].command), (yyvsp[(4) - (4)].command), (COMMAND *)NULL); } + break; + + case 114: +! #line 1022 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = make_if_command ((yyvsp[(2) - (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(6) - (6)].command)); } + break; + + case 115: +! #line 1024 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command), (yyvsp[(5) - (5)].command)); } + break; + + case 117: +! #line 1029 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyvsp[(2) - (2)].pattern)->next = (yyvsp[(1) - (2)].pattern); (yyval.pattern) = (yyvsp[(2) - (2)].pattern); } + break; + + case 118: +! #line 1033 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), (yyvsp[(4) - (4)].command)); } + break; + + case 119: +! #line 1035 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), (COMMAND *)NULL); } + break; + + case 120: +! #line 1037 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), (yyvsp[(5) - (5)].command)); } + break; + + case 121: +! #line 1039 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), (COMMAND *)NULL); } + break; + + case 122: +! #line 1043 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } + break; + + case 123: +! #line 1045 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } + break; + + case 124: +! #line 1047 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } + break; + + case 125: +! #line 1049 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyvsp[(2) - (3)].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } + break; + + case 126: +! #line 1051 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_TESTNEXT; (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } + break; + + case 127: +! #line 1053 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyvsp[(2) - (3)].pattern)->flags |= CASEPAT_TESTNEXT; (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } + break; + + case 128: +! #line 1057 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), (WORD_LIST *)NULL); } + break; + + case 129: +! #line 1059 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.word_list) = make_word_list ((yyvsp[(3) - (3)].word), (yyvsp[(1) - (3)].word_list)); } + break; + + case 130: +! #line 1068 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = (yyvsp[(2) - (2)].command); +*************** +*** 3110,3114 **** + + case 132: +! #line 1072 "/usr/homes/chet/src/bash/src/parse.y" + { + (yyval.command) = (yyvsp[(2) - (2)].command); +--- 3115,3119 ---- + + case 132: +! #line 1077 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = (yyvsp[(2) - (2)].command); +*************** +*** 3117,3121 **** + + case 134: +! #line 1079 "/usr/homes/chet/src/bash/src/parse.y" + { + if ((yyvsp[(1) - (3)].command)->type == cm_connection) +--- 3122,3126 ---- + + case 134: +! #line 1084 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + if ((yyvsp[(1) - (3)].command)->type == cm_connection) +*************** +*** 3127,3141 **** + + case 136: +! #line 1090 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), AND_AND); } + break; + + case 137: +! #line 1092 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), OR_OR); } + break; + + case 138: +! #line 1094 "/usr/homes/chet/src/bash/src/parse.y" + { + if ((yyvsp[(1) - (4)].command)->type == cm_connection) +--- 3132,3146 ---- + + case 136: +! #line 1095 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), AND_AND); } + break; + + case 137: +! #line 1097 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), OR_OR); } + break; + + case 138: +! #line 1099 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + if ((yyvsp[(1) - (4)].command)->type == cm_connection) +*************** +*** 3147,3181 **** + + case 139: +! #line 1101 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), ';'); } + break; + + case 140: +! #line 1103 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), ';'); } + break; + + case 141: +! #line 1105 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 144: +! #line 1113 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.number) = '\n'; } + break; + + case 145: +! #line 1115 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.number) = ';'; } + break; + + case 146: +! #line 1117 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.number) = yacc_EOF; } + break; + + case 149: +! #line 1131 "/usr/homes/chet/src/bash/src/parse.y" + { + (yyval.command) = (yyvsp[(1) - (1)].command); +--- 3152,3186 ---- + + case 139: +! #line 1106 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), ';'); } + break; + + case 140: +! #line 1108 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), ';'); } + break; + + case 141: +! #line 1110 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 144: +! #line 1118 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.number) = '\n'; } + break; + + case 145: +! #line 1120 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.number) = ';'; } + break; + + case 146: +! #line 1122 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.number) = yacc_EOF; } + break; + + case 149: +! #line 1136 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = (yyvsp[(1) - (1)].command); +*************** +*** 3193,3197 **** + + case 150: +! #line 1144 "/usr/homes/chet/src/bash/src/parse.y" + { + if ((yyvsp[(1) - (2)].command)->type == cm_connection) +--- 3198,3202 ---- + + case 150: +! #line 1149 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + if ((yyvsp[(1) - (2)].command)->type == cm_connection) +*************** +*** 3212,3216 **** + + case 151: +! #line 1160 "/usr/homes/chet/src/bash/src/parse.y" + { + (yyval.command) = (yyvsp[(1) - (2)].command); +--- 3217,3221 ---- + + case 151: +! #line 1165 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = (yyvsp[(1) - (2)].command); +*************** +*** 3228,3242 **** + + case 152: +! #line 1175 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), AND_AND); } + break; + + case 153: +! #line 1177 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), OR_OR); } + break; + + case 154: +! #line 1179 "/usr/homes/chet/src/bash/src/parse.y" + { + if ((yyvsp[(1) - (3)].command)->type == cm_connection) +--- 3233,3247 ---- + + case 152: +! #line 1180 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), AND_AND); } + break; + + case 153: +! #line 1182 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), OR_OR); } + break; + + case 154: +! #line 1184 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + if ((yyvsp[(1) - (3)].command)->type == cm_connection) +*************** +*** 3248,3267 **** + + case 155: +! #line 1186 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.command) = command_connect ((yyvsp[(1) - (3)].command), (yyvsp[(3) - (3)].command), ';'); } + break; + + case 156: +! #line 1189 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 157: +! #line 1193 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 158: +! #line 1195 "/usr/homes/chet/src/bash/src/parse.y" + { + if ((yyvsp[(2) - (2)].command)) +--- 3253,3272 ---- + + case 155: +! #line 1191 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = command_connect ((yyvsp[(1) - (3)].command), (yyvsp[(3) - (3)].command), ';'); } + break; + + case 156: +! #line 1194 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 157: +! #line 1198 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 158: +! #line 1200 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + if ((yyvsp[(2) - (2)].command)) +*************** +*** 3272,3276 **** + + case 159: +! #line 1201 "/usr/homes/chet/src/bash/src/parse.y" + { + if ((yyvsp[(2) - (2)].command)) +--- 3277,3281 ---- + + case 159: +! #line 1206 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + if ((yyvsp[(2) - (2)].command)) +*************** +*** 3281,3285 **** + + case 160: +! #line 1207 "/usr/homes/chet/src/bash/src/parse.y" + { + ELEMENT x; +--- 3286,3290 ---- + + case 160: +! #line 1212 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + ELEMENT x; +*************** +*** 3301,3305 **** + + case 161: +! #line 1224 "/usr/homes/chet/src/bash/src/parse.y" + { + ELEMENT x; +--- 3306,3310 ---- + + case 161: +! #line 1229 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + ELEMENT x; +*************** +*** 3322,3331 **** + + case 162: +! #line 1244 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), '|'); } + break; + + case 163: +! #line 1246 "/usr/homes/chet/src/bash/src/parse.y" + { + /* Make cmd1 |& cmd2 equivalent to cmd1 2>&1 | cmd2 */ +--- 3327,3336 ---- + + case 162: +! #line 1249 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), '|'); } + break; + + case 163: +! #line 1251 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + /* Make cmd1 |& cmd2 equivalent to cmd1 2>&1 | cmd2 */ +*************** +*** 3353,3372 **** + + case 164: +! #line 1269 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 165: +! #line 1273 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.number) = CMD_TIME_PIPELINE; } + break; + + case 166: +! #line 1275 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } + break; + + case 167: +! #line 1277 "/usr/homes/chet/src/bash/src/parse.y" + { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } + break; +--- 3358,3377 ---- + + case 164: +! #line 1274 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 165: +! #line 1278 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.number) = CMD_TIME_PIPELINE; } + break; + + case 166: +! #line 1280 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } + break; + + case 167: +! #line 1282 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } + break; +*************** +*** 3374,3378 **** + + /* Line 1267 of yacc.c. */ +! #line 3377 "y.tab.c" + default: break; + } +--- 3379,3383 ---- + + /* Line 1267 of yacc.c. */ +! #line 3382 "y.tab.c" + default: break; + } +*************** +*** 3588,3592 **** + + +! #line 1279 "/usr/homes/chet/src/bash/src/parse.y" + + +--- 3593,3597 ---- + + +! #line 1284 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + + +*************** +*** 4949,4952 **** +--- 4954,4972 ---- + static int esacs_needed_count; + ++ static void ++ push_heredoc (r) ++ REDIRECT *r; ++ { ++ if (need_here_doc >= HEREDOC_MAX) ++ { ++ last_command_exit_value = EX_BADUSAGE; ++ need_here_doc = 0; ++ report_syntax_error (_("maximum here-document count exceeded")); ++ reset_parser (); ++ exit_shell (last_command_exit_value); ++ } ++ redir_stack[need_here_doc++] = r; ++ } ++ + void + gather_here_documents () +*************** +*** 8542,8543 **** +--- 8562,8564 ---- + } + #endif /* HANDLE_MULTIBYTE */ ++ +*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 27 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 28 + + #endif /* _PATCHLEVEL_H_ */ + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-029 + +Bug-Reported-by: Michal Zalewski +Bug-Reference-ID: +Bug-Reference-URL: + +Bug-Description: + +When bash is parsing a function definition that contains a here-document +delimited by end-of-file (or end-of-string), it leaves the closing delimiter +uninitialized. This can result in an invalid memory access when the parsed +function is later copied. + +Patch (apply with `patch -p0'): + +*** bash-4.3/make_cmd.c 2011-12-16 08:08:01.000000000 -0500 +--- make_cmd.c 2014-10-02 11:24:23.000000000 -0400 +*************** +*** 693,696 **** +--- 693,697 ---- + temp->redirector = source; + temp->redirectee = dest_and_filename; ++ temp->here_doc_eof = 0; + temp->instruction = instruction; + temp->flags = 0; +*** bash-4.3/copy_cmd.c 2009-09-11 16:28:02.000000000 -0400 +--- copy_cmd.c 2014-10-02 11:24:23.000000000 -0400 +*************** +*** 127,131 **** + case r_reading_until: + case r_deblank_reading_until: +! new_redirect->here_doc_eof = savestring (redirect->here_doc_eof); + /*FALLTHROUGH*/ + case r_reading_string: +--- 127,131 ---- + case r_reading_until: + case r_deblank_reading_until: +! new_redirect->here_doc_eof = redirect->here_doc_eof ? savestring (redirect->here_doc_eof) : 0; + /*FALLTHROUGH*/ + case r_reading_string: +*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 28 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 29 + + #endif /* _PATCHLEVEL_H_ */ + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-030 + +Bug-Reported-by: Michal Zalewski +Bug-Reference-ID: +Bug-Reference-URL: + +Bug-Description: + +A combination of nested command substitutions and function importing from +the environment can cause bash to execute code appearing in the environment +variable value following the function definition. + +Patch (apply with `patch -p0'): + +*** bash-4.3/builtins/evalstring.c 2014-10-01 12:57:47.000000000 -0400 +--- builtins/evalstring.c 2014-10-03 11:57:04.000000000 -0400 +*************** +*** 309,318 **** + struct fd_bitmap *bitmap; + +! if ((flags & SEVAL_FUNCDEF) && command->type != cm_function_def) + { +! internal_warning ("%s: ignoring function definition attempt", from_file); +! should_jump_to_top_level = 0; +! last_result = last_command_exit_value = EX_BADUSAGE; +! break; + } + +--- 313,335 ---- + struct fd_bitmap *bitmap; + +! if (flags & SEVAL_FUNCDEF) + { +! char *x; +! +! /* If the command parses to something other than a straight +! function definition, or if we have not consumed the entire +! string, or if the parser has transformed the function +! name (as parsing will if it begins or ends with shell +! whitespace, for example), reject the attempt */ +! if (command->type != cm_function_def || +! ((x = parser_remaining_input ()) && *x) || +! (STREQ (from_file, command->value.Function_def->name->word) == 0)) +! { +! internal_warning (_("%s: ignoring function definition attempt"), from_file); +! should_jump_to_top_level = 0; +! last_result = last_command_exit_value = EX_BADUSAGE; +! reset_parser (); +! break; +! } + } + +*************** +*** 379,383 **** + + if (flags & SEVAL_ONECMD) +! break; + } + } +--- 396,403 ---- + + if (flags & SEVAL_ONECMD) +! { +! reset_parser (); +! break; +! } + } + } +*** bash-4.3/parse.y 2014-10-01 12:58:43.000000000 -0400 +--- parse.y 2014-10-03 14:48:59.000000000 -0400 +*************** +*** 2539,2542 **** +--- 2539,2552 ---- + } + ++ char * ++ parser_remaining_input () ++ { ++ if (shell_input_line == 0) ++ return 0; ++ if (shell_input_line_index < 0 || shell_input_line_index >= shell_input_line_len) ++ return '\0'; /* XXX */ ++ return (shell_input_line + shell_input_line_index); ++ } ++ + #ifdef INCLUDE_UNUSED + /* Back the input pointer up by one, effectively `ungetting' a character. */ +*************** +*** 4028,4033 **** + /* reset_parser clears shell_input_line and associated variables */ + restore_input_line_state (&ls); +! if (interactive) +! token_to_read = 0; + + /* Need to find how many characters parse_and_execute consumed, update +--- 4053,4058 ---- + /* reset_parser clears shell_input_line and associated variables */ + restore_input_line_state (&ls); +! +! token_to_read = 0; + + /* Need to find how many characters parse_and_execute consumed, update +*** bash-4.3/shell.h 2014-10-01 12:57:39.000000000 -0400 +--- shell.h 2014-10-03 14:49:12.000000000 -0400 +*************** +*** 181,184 **** +--- 181,186 ---- + + /* Let's try declaring these here. */ ++ extern char *parser_remaining_input __P((void)); ++ + extern sh_parser_state_t *save_parser_state __P((sh_parser_state_t *)); + extern void restore_parser_state __P((sh_parser_state_t *)); +*** bash-4.3/y.tab.c 2014-10-01 13:09:46.000000000 -0400 +--- y.tab.c 2014-10-04 19:26:22.000000000 -0400 +*************** +*** 169,173 **** + + /* Copy the first part of user declarations. */ +! #line 21 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + + #include "config.h" +--- 169,173 ---- + + /* Copy the first part of user declarations. */ +! #line 21 "/usr/src/local/bash/bash-4.3-patched/parse.y" + + #include "config.h" +*************** +*** 498,502 **** + #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED + typedef union YYSTYPE +! #line 329 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + WORD_DESC *word; /* the word that we read. */ +--- 498,502 ---- + #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED + typedef union YYSTYPE +! #line 329 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + WORD_DESC *word; /* the word that we read. */ +*************** +*** 2099,2103 **** + { + case 2: +! #line 383 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + /* Case of regular command. Discard the error +--- 2099,2103 ---- + { + case 2: +! #line 383 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + /* Case of regular command. Discard the error +*************** +*** 2113,2117 **** + + case 3: +! #line 394 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + /* Case of regular command, but not a very +--- 2113,2117 ---- + + case 3: +! #line 394 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + /* Case of regular command, but not a very +*************** +*** 2125,2129 **** + + case 4: +! #line 403 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + /* Error during parsing. Return NULL command. */ +--- 2125,2129 ---- + + case 4: +! #line 403 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + /* Error during parsing. Return NULL command. */ +*************** +*** 2143,2147 **** + + case 5: +! #line 418 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + /* Case of EOF seen by itself. Do ignoreeof or +--- 2143,2147 ---- + + case 5: +! #line 418 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + /* Case of EOF seen by itself. Do ignoreeof or +*************** +*** 2154,2168 **** + + case 6: +! #line 428 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), (WORD_LIST *)NULL); } + break; + + case 7: +! #line 430 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.word_list) = make_word_list ((yyvsp[(2) - (2)].word), (yyvsp[(1) - (2)].word_list)); } + break; + + case 8: +! #line 434 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = 1; +--- 2154,2168 ---- + + case 6: +! #line 428 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), (WORD_LIST *)NULL); } + break; + + case 7: +! #line 430 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.word_list) = make_word_list ((yyvsp[(2) - (2)].word), (yyvsp[(1) - (2)].word_list)); } + break; + + case 8: +! #line 434 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + source.dest = 1; +*************** +*** 2173,2177 **** + + case 9: +! #line 440 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = 0; +--- 2173,2177 ---- + + case 9: +! #line 440 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + source.dest = 0; +*************** +*** 2182,2186 **** + + case 10: +! #line 446 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +--- 2182,2186 ---- + + case 10: +! #line 446 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +*************** +*** 2191,2195 **** + + case 11: +! #line 452 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +--- 2191,2195 ---- + + case 11: +! #line 452 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +*************** +*** 2200,2204 **** + + case 12: +! #line 458 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +--- 2200,2204 ---- + + case 12: +! #line 458 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +*************** +*** 2209,2213 **** + + case 13: +! #line 464 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +--- 2209,2213 ---- + + case 13: +! #line 464 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +*************** +*** 2218,2222 **** + + case 14: +! #line 470 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = 1; +--- 2218,2222 ---- + + case 14: +! #line 470 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + source.dest = 1; +*************** +*** 2227,2231 **** + + case 15: +! #line 476 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +--- 2227,2231 ---- + + case 15: +! #line 476 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +*************** +*** 2236,2240 **** + + case 16: +! #line 482 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +--- 2236,2240 ---- + + case 16: +! #line 482 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +*************** +*** 2245,2249 **** + + case 17: +! #line 488 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = 1; +--- 2245,2249 ---- + + case 17: +! #line 488 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + source.dest = 1; +*************** +*** 2254,2258 **** + + case 18: +! #line 494 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +--- 2254,2258 ---- + + case 18: +! #line 494 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +*************** +*** 2263,2267 **** + + case 19: +! #line 500 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +--- 2263,2267 ---- + + case 19: +! #line 500 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +*************** +*** 2272,2276 **** + + case 20: +! #line 506 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = 0; +--- 2272,2276 ---- + + case 20: +! #line 506 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + source.dest = 0; +*************** +*** 2281,2285 **** + + case 21: +! #line 512 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +--- 2281,2285 ---- + + case 21: +! #line 512 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +*************** +*** 2290,2294 **** + + case 22: +! #line 518 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +--- 2290,2294 ---- + + case 22: +! #line 518 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +*************** +*** 2299,2303 **** + + case 23: +! #line 524 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = 0; +--- 2299,2303 ---- + + case 23: +! #line 524 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + source.dest = 0; +*************** +*** 2309,2313 **** + + case 24: +! #line 531 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +--- 2309,2313 ---- + + case 24: +! #line 531 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +*************** +*** 2319,2323 **** + + case 25: +! #line 538 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +--- 2319,2323 ---- + + case 25: +! #line 538 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +*************** +*** 2329,2333 **** + + case 26: +! #line 545 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = 0; +--- 2329,2333 ---- + + case 26: +! #line 545 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + source.dest = 0; +*************** +*** 2339,2343 **** + + case 27: +! #line 552 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +--- 2339,2343 ---- + + case 27: +! #line 552 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +*************** +*** 2349,2353 **** + + case 28: +! #line 559 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +--- 2349,2353 ---- + + case 28: +! #line 559 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +*************** +*** 2359,2363 **** + + case 29: +! #line 566 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = 0; +--- 2359,2363 ---- + + case 29: +! #line 566 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + source.dest = 0; +*************** +*** 2368,2372 **** + + case 30: +! #line 572 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +--- 2368,2372 ---- + + case 30: +! #line 572 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +*************** +*** 2377,2381 **** + + case 31: +! #line 578 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +--- 2377,2381 ---- + + case 31: +! #line 578 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +*************** +*** 2386,2390 **** + + case 32: +! #line 584 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = 0; +--- 2386,2390 ---- + + case 32: +! #line 584 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + source.dest = 0; +*************** +*** 2395,2399 **** + + case 33: +! #line 590 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +--- 2395,2399 ---- + + case 33: +! #line 590 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +*************** +*** 2404,2408 **** + + case 34: +! #line 596 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +--- 2404,2408 ---- + + case 34: +! #line 596 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +*************** +*** 2413,2417 **** + + case 35: +! #line 602 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = 1; +--- 2413,2417 ---- + + case 35: +! #line 602 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + source.dest = 1; +*************** +*** 2422,2426 **** + + case 36: +! #line 608 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +--- 2422,2426 ---- + + case 36: +! #line 608 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +*************** +*** 2431,2435 **** + + case 37: +! #line 614 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +--- 2431,2435 ---- + + case 37: +! #line 614 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +*************** +*** 2440,2444 **** + + case 38: +! #line 620 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = 0; +--- 2440,2444 ---- + + case 38: +! #line 620 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + source.dest = 0; +*************** +*** 2449,2453 **** + + case 39: +! #line 626 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +--- 2449,2453 ---- + + case 39: +! #line 626 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +*************** +*** 2458,2462 **** + + case 40: +! #line 632 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +--- 2458,2462 ---- + + case 40: +! #line 632 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +*************** +*** 2467,2471 **** + + case 41: +! #line 638 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = 1; +--- 2467,2471 ---- + + case 41: +! #line 638 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + source.dest = 1; +*************** +*** 2476,2480 **** + + case 42: +! #line 644 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +--- 2476,2480 ---- + + case 42: +! #line 644 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +*************** +*** 2485,2489 **** + + case 43: +! #line 650 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +--- 2485,2489 ---- + + case 43: +! #line 650 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +*************** +*** 2494,2498 **** + + case 44: +! #line 656 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = 1; +--- 2494,2498 ---- + + case 44: +! #line 656 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + source.dest = 1; +*************** +*** 2503,2507 **** + + case 45: +! #line 662 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +--- 2503,2507 ---- + + case 45: +! #line 662 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +*************** +*** 2512,2516 **** + + case 46: +! #line 668 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +--- 2512,2516 ---- + + case 46: +! #line 668 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +*************** +*** 2521,2525 **** + + case 47: +! #line 674 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = 0; +--- 2521,2525 ---- + + case 47: +! #line 674 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + source.dest = 0; +*************** +*** 2530,2534 **** + + case 48: +! #line 680 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +--- 2530,2534 ---- + + case 48: +! #line 680 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + source.dest = (yyvsp[(1) - (3)].number); +*************** +*** 2539,2543 **** + + case 49: +! #line 686 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +--- 2539,2543 ---- + + case 49: +! #line 686 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + source.filename = (yyvsp[(1) - (3)].word); +*************** +*** 2548,2552 **** + + case 50: +! #line 692 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = 1; +--- 2548,2552 ---- + + case 50: +! #line 692 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + source.dest = 1; +*************** +*** 2557,2561 **** + + case 51: +! #line 698 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + source.dest = 1; +--- 2557,2561 ---- + + case 51: +! #line 698 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + source.dest = 1; +*************** +*** 2566,2585 **** + + case 52: +! #line 706 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.element).word = (yyvsp[(1) - (1)].word); (yyval.element).redirect = 0; } + break; + + case 53: +! #line 708 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.element).word = (yyvsp[(1) - (1)].word); (yyval.element).redirect = 0; } + break; + + case 54: +! #line 710 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.element).redirect = (yyvsp[(1) - (1)].redirect); (yyval.element).word = 0; } + break; + + case 55: +! #line 714 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.redirect) = (yyvsp[(1) - (1)].redirect); +--- 2566,2585 ---- + + case 52: +! #line 706 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.element).word = (yyvsp[(1) - (1)].word); (yyval.element).redirect = 0; } + break; + + case 53: +! #line 708 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.element).word = (yyvsp[(1) - (1)].word); (yyval.element).redirect = 0; } + break; + + case 54: +! #line 710 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.element).redirect = (yyvsp[(1) - (1)].redirect); (yyval.element).word = 0; } + break; + + case 55: +! #line 714 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + (yyval.redirect) = (yyvsp[(1) - (1)].redirect); +*************** +*** 2588,2592 **** + + case 56: +! #line 718 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + register REDIRECT *t; +--- 2588,2592 ---- + + case 56: +! #line 718 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + register REDIRECT *t; +*************** +*** 2600,2624 **** + + case 57: +! #line 729 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = make_simple_command ((yyvsp[(1) - (1)].element), (COMMAND *)NULL); } + break; + + case 58: +! #line 731 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = make_simple_command ((yyvsp[(2) - (2)].element), (yyvsp[(1) - (2)].command)); } + break; + + case 59: +! #line 735 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = clean_simple_command ((yyvsp[(1) - (1)].command)); } + break; + + case 60: +! #line 737 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 61: +! #line 739 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + COMMAND *tc; +--- 2600,2624 ---- + + case 57: +! #line 729 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.command) = make_simple_command ((yyvsp[(1) - (1)].element), (COMMAND *)NULL); } + break; + + case 58: +! #line 731 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.command) = make_simple_command ((yyvsp[(2) - (2)].element), (yyvsp[(1) - (2)].command)); } + break; + + case 59: +! #line 735 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.command) = clean_simple_command ((yyvsp[(1) - (1)].command)); } + break; + + case 60: +! #line 737 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 61: +! #line 739 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + COMMAND *tc; +*************** +*** 2639,2708 **** + + case 62: +! #line 755 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 63: +! #line 757 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 64: +! #line 761 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 65: +! #line 763 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 66: +! #line 765 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = make_while_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command)); } + break; + + case 67: +! #line 767 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = make_until_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command)); } + break; + + case 68: +! #line 769 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 69: +! #line 771 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 70: +! #line 773 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 71: +! #line 775 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 72: +! #line 777 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 73: +! #line 779 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 74: +! #line 781 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 75: +! #line 785 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); +--- 2639,2708 ---- + + case 62: +! #line 755 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 63: +! #line 757 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 64: +! #line 761 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 65: +! #line 763 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 66: +! #line 765 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.command) = make_while_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command)); } + break; + + case 67: +! #line 767 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.command) = make_until_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command)); } + break; + + case 68: +! #line 769 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 69: +! #line 771 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 70: +! #line 773 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 71: +! #line 775 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 72: +! #line 777 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 73: +! #line 779 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 74: +! #line 781 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 75: +! #line 785 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); +*************** +*** 2712,2716 **** + + case 76: +! #line 790 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); +--- 2712,2716 ---- + + case 76: +! #line 790 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); +*************** +*** 2720,2724 **** + + case 77: +! #line 795 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); +--- 2720,2724 ---- + + case 77: +! #line 795 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); +*************** +*** 2728,2732 **** + + case 78: +! #line 800 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); +--- 2728,2732 ---- + + case 78: +! #line 800 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); +*************** +*** 2736,2740 **** + + case 79: +! #line 805 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); +--- 2736,2740 ---- + + case 79: +! #line 805 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); +*************** +*** 2744,2748 **** + + case 80: +! #line 810 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); +--- 2744,2748 ---- + + case 80: +! #line 810 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); +*************** +*** 2752,2756 **** + + case 81: +! #line 815 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[(2) - (9)].word), (WORD_LIST *)NULL, (yyvsp[(8) - (9)].command), word_lineno[word_top]); +--- 2752,2756 ---- + + case 81: +! #line 815 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[(2) - (9)].word), (WORD_LIST *)NULL, (yyvsp[(8) - (9)].command), word_lineno[word_top]); +*************** +*** 2760,2764 **** + + case 82: +! #line 820 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[(2) - (9)].word), (WORD_LIST *)NULL, (yyvsp[(8) - (9)].command), word_lineno[word_top]); +--- 2760,2764 ---- + + case 82: +! #line 820 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[(2) - (9)].word), (WORD_LIST *)NULL, (yyvsp[(8) - (9)].command), word_lineno[word_top]); +*************** +*** 2768,2772 **** + + case 83: +! #line 827 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_arith_for_command ((yyvsp[(2) - (7)].word_list), (yyvsp[(6) - (7)].command), arith_for_lineno); +--- 2768,2772 ---- + + case 83: +! #line 827 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + (yyval.command) = make_arith_for_command ((yyvsp[(2) - (7)].word_list), (yyvsp[(6) - (7)].command), arith_for_lineno); +*************** +*** 2776,2780 **** + + case 84: +! #line 832 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_arith_for_command ((yyvsp[(2) - (7)].word_list), (yyvsp[(6) - (7)].command), arith_for_lineno); +--- 2776,2780 ---- + + case 84: +! #line 832 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + (yyval.command) = make_arith_for_command ((yyvsp[(2) - (7)].word_list), (yyvsp[(6) - (7)].command), arith_for_lineno); +*************** +*** 2784,2788 **** + + case 85: +! #line 837 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_arith_for_command ((yyvsp[(2) - (5)].word_list), (yyvsp[(4) - (5)].command), arith_for_lineno); +--- 2784,2788 ---- + + case 85: +! #line 837 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + (yyval.command) = make_arith_for_command ((yyvsp[(2) - (5)].word_list), (yyvsp[(4) - (5)].command), arith_for_lineno); +*************** +*** 2792,2796 **** + + case 86: +! #line 842 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_arith_for_command ((yyvsp[(2) - (5)].word_list), (yyvsp[(4) - (5)].command), arith_for_lineno); +--- 2792,2796 ---- + + case 86: +! #line 842 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + (yyval.command) = make_arith_for_command ((yyvsp[(2) - (5)].word_list), (yyvsp[(4) - (5)].command), arith_for_lineno); +*************** +*** 2800,2804 **** + + case 87: +! #line 849 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_select_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); +--- 2800,2804 ---- + + case 87: +! #line 849 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + (yyval.command) = make_select_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); +*************** +*** 2808,2812 **** + + case 88: +! #line 854 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_select_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); +--- 2808,2812 ---- + + case 88: +! #line 854 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + (yyval.command) = make_select_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); +*************** +*** 2816,2820 **** + + case 89: +! #line 859 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_select_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); +--- 2816,2820 ---- + + case 89: +! #line 859 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + (yyval.command) = make_select_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); +*************** +*** 2824,2828 **** + + case 90: +! #line 864 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_select_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); +--- 2824,2828 ---- + + case 90: +! #line 864 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + (yyval.command) = make_select_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); +*************** +*** 2832,2836 **** + + case 91: +! #line 869 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_select_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); +--- 2832,2836 ---- + + case 91: +! #line 869 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + (yyval.command) = make_select_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); +*************** +*** 2840,2844 **** + + case 92: +! #line 874 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_select_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); +--- 2840,2844 ---- + + case 92: +! #line 874 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + (yyval.command) = make_select_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); +*************** +*** 2848,2852 **** + + case 93: +! #line 881 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_case_command ((yyvsp[(2) - (6)].word), (PATTERN_LIST *)NULL, word_lineno[word_top]); +--- 2848,2852 ---- + + case 93: +! #line 881 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + (yyval.command) = make_case_command ((yyvsp[(2) - (6)].word), (PATTERN_LIST *)NULL, word_lineno[word_top]); +*************** +*** 2856,2860 **** + + case 94: +! #line 886 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_case_command ((yyvsp[(2) - (7)].word), (yyvsp[(5) - (7)].pattern), word_lineno[word_top]); +--- 2856,2860 ---- + + case 94: +! #line 886 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + (yyval.command) = make_case_command ((yyvsp[(2) - (7)].word), (yyvsp[(5) - (7)].pattern), word_lineno[word_top]); +*************** +*** 2864,2868 **** + + case 95: +! #line 891 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_case_command ((yyvsp[(2) - (6)].word), (yyvsp[(5) - (6)].pattern), word_lineno[word_top]); +--- 2864,2868 ---- + + case 95: +! #line 891 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + (yyval.command) = make_case_command ((yyvsp[(2) - (6)].word), (yyvsp[(5) - (6)].pattern), word_lineno[word_top]); +*************** +*** 2872,2896 **** + + case 96: +! #line 898 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = make_function_def ((yyvsp[(1) - (5)].word), (yyvsp[(5) - (5)].command), function_dstart, function_bstart); } + break; + + case 97: +! #line 901 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = make_function_def ((yyvsp[(2) - (6)].word), (yyvsp[(6) - (6)].command), function_dstart, function_bstart); } + break; + + case 98: +! #line 904 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = make_function_def ((yyvsp[(2) - (4)].word), (yyvsp[(4) - (4)].command), function_dstart, function_bstart); } + break; + + case 99: +! #line 908 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 100: +! #line 910 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + COMMAND *tc; +--- 2872,2896 ---- + + case 96: +! #line 898 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.command) = make_function_def ((yyvsp[(1) - (5)].word), (yyvsp[(5) - (5)].command), function_dstart, function_bstart); } + break; + + case 97: +! #line 901 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.command) = make_function_def ((yyvsp[(2) - (6)].word), (yyvsp[(6) - (6)].command), function_dstart, function_bstart); } + break; + + case 98: +! #line 904 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.command) = make_function_def ((yyvsp[(2) - (4)].word), (yyvsp[(4) - (4)].command), function_dstart, function_bstart); } + break; + + case 99: +! #line 908 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 100: +! #line 910 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + COMMAND *tc; +*************** +*** 2924,2928 **** + + case 101: +! #line 941 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_subshell_command ((yyvsp[(2) - (3)].command)); +--- 2924,2928 ---- + + case 101: +! #line 941 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + (yyval.command) = make_subshell_command ((yyvsp[(2) - (3)].command)); +*************** +*** 2932,2936 **** + + case 102: +! #line 948 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_coproc_command ("COPROC", (yyvsp[(2) - (2)].command)); +--- 2932,2936 ---- + + case 102: +! #line 948 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + (yyval.command) = make_coproc_command ("COPROC", (yyvsp[(2) - (2)].command)); +*************** +*** 2940,2944 **** + + case 103: +! #line 953 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + COMMAND *tc; +--- 2940,2944 ---- + + case 103: +! #line 953 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + COMMAND *tc; +*************** +*** 2960,2964 **** + + case 104: +! #line 970 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_coproc_command ((yyvsp[(2) - (3)].word)->word, (yyvsp[(3) - (3)].command)); +--- 2960,2964 ---- + + case 104: +! #line 970 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + (yyval.command) = make_coproc_command ((yyvsp[(2) - (3)].word)->word, (yyvsp[(3) - (3)].command)); +*************** +*** 2968,2972 **** + + case 105: +! #line 975 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + COMMAND *tc; +--- 2968,2972 ---- + + case 105: +! #line 975 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + COMMAND *tc; +*************** +*** 2988,2992 **** + + case 106: +! #line 992 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = make_coproc_command ("COPROC", clean_simple_command ((yyvsp[(2) - (2)].command))); +--- 2988,2992 ---- + + case 106: +! #line 992 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + (yyval.command) = make_coproc_command ("COPROC", clean_simple_command ((yyvsp[(2) - (2)].command))); +*************** +*** 2996,3110 **** + + case 107: +! #line 999 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command), (COMMAND *)NULL); } + break; + + case 108: +! #line 1001 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = make_if_command ((yyvsp[(2) - (7)].command), (yyvsp[(4) - (7)].command), (yyvsp[(6) - (7)].command)); } + break; + + case 109: +! #line 1003 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = make_if_command ((yyvsp[(2) - (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(5) - (6)].command)); } + break; + + case 110: +! #line 1008 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = make_group_command ((yyvsp[(2) - (3)].command)); } + break; + + case 111: +! #line 1012 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = make_arith_command ((yyvsp[(1) - (1)].word_list)); } + break; + + case 112: +! #line 1016 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = (yyvsp[(2) - (3)].command); } + break; + + case 113: +! #line 1020 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = make_if_command ((yyvsp[(2) - (4)].command), (yyvsp[(4) - (4)].command), (COMMAND *)NULL); } + break; + + case 114: +! #line 1022 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = make_if_command ((yyvsp[(2) - (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(6) - (6)].command)); } + break; + + case 115: +! #line 1024 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command), (yyvsp[(5) - (5)].command)); } + break; + + case 117: +! #line 1029 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyvsp[(2) - (2)].pattern)->next = (yyvsp[(1) - (2)].pattern); (yyval.pattern) = (yyvsp[(2) - (2)].pattern); } + break; + + case 118: +! #line 1033 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), (yyvsp[(4) - (4)].command)); } + break; + + case 119: +! #line 1035 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), (COMMAND *)NULL); } + break; + + case 120: +! #line 1037 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), (yyvsp[(5) - (5)].command)); } + break; + + case 121: +! #line 1039 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), (COMMAND *)NULL); } + break; + + case 122: +! #line 1043 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } + break; + + case 123: +! #line 1045 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } + break; + + case 124: +! #line 1047 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } + break; + + case 125: +! #line 1049 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyvsp[(2) - (3)].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } + break; + + case 126: +! #line 1051 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_TESTNEXT; (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } + break; + + case 127: +! #line 1053 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyvsp[(2) - (3)].pattern)->flags |= CASEPAT_TESTNEXT; (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } + break; + + case 128: +! #line 1057 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), (WORD_LIST *)NULL); } + break; + + case 129: +! #line 1059 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.word_list) = make_word_list ((yyvsp[(3) - (3)].word), (yyvsp[(1) - (3)].word_list)); } + break; + + case 130: +! #line 1068 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = (yyvsp[(2) - (2)].command); +--- 2996,3110 ---- + + case 107: +! #line 999 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command), (COMMAND *)NULL); } + break; + + case 108: +! #line 1001 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.command) = make_if_command ((yyvsp[(2) - (7)].command), (yyvsp[(4) - (7)].command), (yyvsp[(6) - (7)].command)); } + break; + + case 109: +! #line 1003 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.command) = make_if_command ((yyvsp[(2) - (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(5) - (6)].command)); } + break; + + case 110: +! #line 1008 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.command) = make_group_command ((yyvsp[(2) - (3)].command)); } + break; + + case 111: +! #line 1012 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.command) = make_arith_command ((yyvsp[(1) - (1)].word_list)); } + break; + + case 112: +! #line 1016 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.command) = (yyvsp[(2) - (3)].command); } + break; + + case 113: +! #line 1020 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.command) = make_if_command ((yyvsp[(2) - (4)].command), (yyvsp[(4) - (4)].command), (COMMAND *)NULL); } + break; + + case 114: +! #line 1022 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.command) = make_if_command ((yyvsp[(2) - (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(6) - (6)].command)); } + break; + + case 115: +! #line 1024 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command), (yyvsp[(5) - (5)].command)); } + break; + + case 117: +! #line 1029 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyvsp[(2) - (2)].pattern)->next = (yyvsp[(1) - (2)].pattern); (yyval.pattern) = (yyvsp[(2) - (2)].pattern); } + break; + + case 118: +! #line 1033 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), (yyvsp[(4) - (4)].command)); } + break; + + case 119: +! #line 1035 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), (COMMAND *)NULL); } + break; + + case 120: +! #line 1037 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), (yyvsp[(5) - (5)].command)); } + break; + + case 121: +! #line 1039 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), (COMMAND *)NULL); } + break; + + case 122: +! #line 1043 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } + break; + + case 123: +! #line 1045 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } + break; + + case 124: +! #line 1047 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } + break; + + case 125: +! #line 1049 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyvsp[(2) - (3)].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } + break; + + case 126: +! #line 1051 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_TESTNEXT; (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } + break; + + case 127: +! #line 1053 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyvsp[(2) - (3)].pattern)->flags |= CASEPAT_TESTNEXT; (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } + break; + + case 128: +! #line 1057 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), (WORD_LIST *)NULL); } + break; + + case 129: +! #line 1059 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.word_list) = make_word_list ((yyvsp[(3) - (3)].word), (yyvsp[(1) - (3)].word_list)); } + break; + + case 130: +! #line 1068 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + (yyval.command) = (yyvsp[(2) - (2)].command); +*************** +*** 3115,3119 **** + + case 132: +! #line 1077 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = (yyvsp[(2) - (2)].command); +--- 3115,3119 ---- + + case 132: +! #line 1077 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + (yyval.command) = (yyvsp[(2) - (2)].command); +*************** +*** 3122,3126 **** + + case 134: +! #line 1084 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + if ((yyvsp[(1) - (3)].command)->type == cm_connection) +--- 3122,3126 ---- + + case 134: +! #line 1084 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + if ((yyvsp[(1) - (3)].command)->type == cm_connection) +*************** +*** 3132,3146 **** + + case 136: +! #line 1095 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), AND_AND); } + break; + + case 137: +! #line 1097 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), OR_OR); } + break; + + case 138: +! #line 1099 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + if ((yyvsp[(1) - (4)].command)->type == cm_connection) +--- 3132,3146 ---- + + case 136: +! #line 1095 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), AND_AND); } + break; + + case 137: +! #line 1097 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), OR_OR); } + break; + + case 138: +! #line 1099 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + if ((yyvsp[(1) - (4)].command)->type == cm_connection) +*************** +*** 3152,3186 **** + + case 139: +! #line 1106 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), ';'); } + break; + + case 140: +! #line 1108 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), ';'); } + break; + + case 141: +! #line 1110 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 144: +! #line 1118 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.number) = '\n'; } + break; + + case 145: +! #line 1120 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.number) = ';'; } + break; + + case 146: +! #line 1122 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.number) = yacc_EOF; } + break; + + case 149: +! #line 1136 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = (yyvsp[(1) - (1)].command); +--- 3152,3186 ---- + + case 139: +! #line 1106 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), ';'); } + break; + + case 140: +! #line 1108 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), ';'); } + break; + + case 141: +! #line 1110 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 144: +! #line 1118 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.number) = '\n'; } + break; + + case 145: +! #line 1120 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.number) = ';'; } + break; + + case 146: +! #line 1122 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.number) = yacc_EOF; } + break; + + case 149: +! #line 1136 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + (yyval.command) = (yyvsp[(1) - (1)].command); +*************** +*** 3198,3202 **** + + case 150: +! #line 1149 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + if ((yyvsp[(1) - (2)].command)->type == cm_connection) +--- 3198,3202 ---- + + case 150: +! #line 1149 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + if ((yyvsp[(1) - (2)].command)->type == cm_connection) +*************** +*** 3217,3221 **** + + case 151: +! #line 1165 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + (yyval.command) = (yyvsp[(1) - (2)].command); +--- 3217,3221 ---- + + case 151: +! #line 1165 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + (yyval.command) = (yyvsp[(1) - (2)].command); +*************** +*** 3233,3247 **** + + case 152: +! #line 1180 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), AND_AND); } + break; + + case 153: +! #line 1182 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), OR_OR); } + break; + + case 154: +! #line 1184 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + if ((yyvsp[(1) - (3)].command)->type == cm_connection) +--- 3233,3247 ---- + + case 152: +! #line 1180 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), AND_AND); } + break; + + case 153: +! #line 1182 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), OR_OR); } + break; + + case 154: +! #line 1184 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + if ((yyvsp[(1) - (3)].command)->type == cm_connection) +*************** +*** 3253,3272 **** + + case 155: +! #line 1191 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = command_connect ((yyvsp[(1) - (3)].command), (yyvsp[(3) - (3)].command), ';'); } + break; + + case 156: +! #line 1194 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 157: +! #line 1198 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 158: +! #line 1200 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + if ((yyvsp[(2) - (2)].command)) +--- 3253,3272 ---- + + case 155: +! #line 1191 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.command) = command_connect ((yyvsp[(1) - (3)].command), (yyvsp[(3) - (3)].command), ';'); } + break; + + case 156: +! #line 1194 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 157: +! #line 1198 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 158: +! #line 1200 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + if ((yyvsp[(2) - (2)].command)) +*************** +*** 3277,3281 **** + + case 159: +! #line 1206 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + if ((yyvsp[(2) - (2)].command)) +--- 3277,3281 ---- + + case 159: +! #line 1206 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + if ((yyvsp[(2) - (2)].command)) +*************** +*** 3286,3290 **** + + case 160: +! #line 1212 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + ELEMENT x; +--- 3286,3290 ---- + + case 160: +! #line 1212 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + ELEMENT x; +*************** +*** 3306,3310 **** + + case 161: +! #line 1229 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + ELEMENT x; +--- 3306,3310 ---- + + case 161: +! #line 1229 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + ELEMENT x; +*************** +*** 3327,3336 **** + + case 162: +! #line 1249 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), '|'); } + break; + + case 163: +! #line 1251 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { + /* Make cmd1 |& cmd2 equivalent to cmd1 2>&1 | cmd2 */ +--- 3327,3336 ---- + + case 162: +! #line 1249 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), '|'); } + break; + + case 163: +! #line 1251 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { + /* Make cmd1 |& cmd2 equivalent to cmd1 2>&1 | cmd2 */ +*************** +*** 3358,3377 **** + + case 164: +! #line 1274 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 165: +! #line 1278 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.number) = CMD_TIME_PIPELINE; } + break; + + case 166: +! #line 1280 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } + break; + + case 167: +! #line 1282 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } + break; +--- 3358,3377 ---- + + case 164: +! #line 1274 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 165: +! #line 1278 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.number) = CMD_TIME_PIPELINE; } + break; + + case 166: +! #line 1280 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } + break; + + case 167: +! #line 1282 "/usr/src/local/bash/bash-4.3-patched/parse.y" + { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } + break; +*************** +*** 3593,3597 **** + + +! #line 1284 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" + + +--- 3593,3597 ---- + + +! #line 1284 "/usr/src/local/bash/bash-4.3-patched/parse.y" + + +*************** +*** 4851,4854 **** +--- 4851,4864 ---- + } + ++ char * ++ parser_remaining_input () ++ { ++ if (shell_input_line == 0) ++ return 0; ++ if (shell_input_line_index < 0 || shell_input_line_index >= shell_input_line_len) ++ return '\0'; /* XXX */ ++ return (shell_input_line + shell_input_line_index); ++ } ++ + #ifdef INCLUDE_UNUSED + /* Back the input pointer up by one, effectively `ungetting' a character. */ +*************** +*** 6340,6345 **** + /* reset_parser clears shell_input_line and associated variables */ + restore_input_line_state (&ls); +! if (interactive) +! token_to_read = 0; + + /* Need to find how many characters parse_and_execute consumed, update +--- 6350,6355 ---- + /* reset_parser clears shell_input_line and associated variables */ + restore_input_line_state (&ls); +! +! token_to_read = 0; + + /* Need to find how many characters parse_and_execute consumed, update +*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 29 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 30 + + #endif /* _PATCHLEVEL_H_ */ + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-031 + +Bug-Reported-by: lolilolicon +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-08/msg00139.html + +Bug-Description: + +The new nameref assignment functionality introduced in bash-4.3 did not perform +enough validation on the variable value and would create variables with +invalid names. + +Patch (apply with `patch -p0'): + +*** bash-4.3/subst.h 2014-01-11 21:02:27.000000000 -0500 +--- subst.h 2014-09-01 12:16:56.000000000 -0400 +*************** +*** 48,51 **** +--- 48,52 ---- + #define ASS_MKGLOBAL 0x0008 /* force global assignment */ + #define ASS_NAMEREF 0x0010 /* assigning to nameref variable */ ++ #define ASS_FROMREF 0x0020 /* assigning from value of nameref variable */ + + /* Flags for the string extraction functions. */ +*** bash-4.3/variables.c 2014-05-15 08:26:50.000000000 -0400 +--- variables.c 2014-09-01 14:37:44.000000000 -0400 +*************** +*** 2504,2511 **** + int hflags, aflags; + { +! char *newval; + SHELL_VAR *entry; + + entry = (hflags & HASH_NOSRCH) ? (SHELL_VAR *)NULL : hash_lookup (name, table); + /* Follow the nameref chain here if this is the global variables table */ + if (entry && nameref_p (entry) && (invisible_p (entry) == 0) && table == global_variables->table) +--- 2566,2590 ---- + int hflags, aflags; + { +! char *newname, *newval; + SHELL_VAR *entry; ++ #if defined (ARRAY_VARS) ++ arrayind_t ind; ++ char *subp; ++ int sublen; ++ #endif + ++ newname = 0; ++ #if defined (ARRAY_VARS) ++ if ((aflags & ASS_FROMREF) && (hflags & HASH_NOSRCH) == 0 && valid_array_reference (name)) ++ { ++ newname = array_variable_name (name, &subp, &sublen); ++ if (newname == 0) ++ return (SHELL_VAR *)NULL; /* XXX */ ++ entry = hash_lookup (newname, table); ++ } ++ else ++ #endif + entry = (hflags & HASH_NOSRCH) ? (SHELL_VAR *)NULL : hash_lookup (name, table); ++ + /* Follow the nameref chain here if this is the global variables table */ + if (entry && nameref_p (entry) && (invisible_p (entry) == 0) && table == global_variables->table) +*************** +*** 2538,2541 **** +--- 2617,2630 ---- + } + } ++ #if defined (ARRAY_VARS) ++ else if (entry == 0 && newname) ++ { ++ entry = make_new_array_variable (newname); /* indexed array by default */ ++ if (entry == 0) ++ return entry; ++ ind = array_expand_index (name, subp, sublen); ++ bind_array_element (entry, ind, value, aflags); ++ } ++ #endif + else if (entry == 0) + { +*************** +*** 2658,2662 **** + if (nameref_cell (nv) == 0) + return (bind_variable_internal (nv->name, value, nvc->table, 0, flags)); +! return (bind_variable_internal (nameref_cell (nv), value, nvc->table, 0, flags)); + } + else +--- 2747,2752 ---- + if (nameref_cell (nv) == 0) + return (bind_variable_internal (nv->name, value, nvc->table, 0, flags)); +! /* XXX - bug here with ref=array[index] */ +! return (bind_variable_internal (nameref_cell (nv), value, nvc->table, 0, flags|ASS_FROMREF)); + } + else +*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 30 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 31 + + #endif /* _PATCHLEVEL_H_ */ + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-032 + +Bug-Reported-by: crispusfairbairn@gmail.com +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-09/msg00013.html + +Bug-Description: + +When bash is running in Posix mode, it allows signals -- including SIGCHLD -- +to interrupt the `wait' builtin, as Posix requires. However, the interrupt +causes bash to not run a SIGCHLD trap for all exited children. This patch +fixes the issue and restores the documented behavior in Posix mode. + +Patch (apply with `patch -p0'): + +*** bash-4.3/jobs.c 2014-05-14 09:20:15.000000000 -0400 +--- jobs.c 2014-09-09 11:50:38.000000000 -0400 +*************** +*** 3340,3344 **** + { + interrupt_immediately = 0; +! trap_handler (SIGCHLD); /* set pending_traps[SIGCHLD] */ + wait_signal_received = SIGCHLD; + /* If we're in a signal handler, let CHECK_WAIT_INTR pick it up; +--- 3346,3352 ---- + { + interrupt_immediately = 0; +! /* This was trap_handler (SIGCHLD) but that can lose traps if +! children_exited > 1 */ +! queue_sigchld_trap (children_exited); + wait_signal_received = SIGCHLD; + /* If we're in a signal handler, let CHECK_WAIT_INTR pick it up; +*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 31 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 32 + + #endif /* _PATCHLEVEL_H_ */ + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-033 + +Bug-Reported-by: mickael9@gmail.com, Jan Rome +Bug-Reference-ID: <20140907224046.382ED3610CC@mickael-laptop.localdomain>, + <540D661D.50908@gmail.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-09/msg00029.html + http://lists.gnu.org/archive/html/bug-bash/2014-09/msg00030.html + +Bug-Description: + +Bash does not clean up the terminal state in all cases where bash or +readline modifies it and bash is subsequently terminated by a fatal signal. +This happens when the `read' builtin modifies the terminal settings, both +when readline is active and when it is not. It occurs most often when a script +installs a trap that exits on a signal without re-sending the signal to itself. + +Patch (apply with `patch -p0'): + +*** bash-4.3/shell.c 2014-01-14 08:04:32.000000000 -0500 +--- shell.c 2014-12-22 10:27:50.000000000 -0500 +*************** +*** 74,77 **** +--- 74,78 ---- + + #if defined (READLINE) ++ # include + # include "bashline.h" + #endif +*************** +*** 910,913 **** +--- 912,923 ---- + fflush (stderr); + ++ /* Clean up the terminal if we are in a state where it's been modified. */ ++ #if defined (READLINE) ++ if (RL_ISSTATE (RL_STATE_TERMPREPPED) && rl_deprep_term_function) ++ (*rl_deprep_term_function) (); ++ #endif ++ if (read_tty_modified ()) ++ read_tty_cleanup (); ++ + /* Do trap[0] if defined. Allow it to override the exit status + passed to us. */ +*** bash-4.3/builtins/read.def 2014-10-01 12:57:38.000000000 -0400 +--- builtins/read.def 2014-12-22 10:48:54.000000000 -0500 +*************** +*** 141,148 **** + int sigalrm_seen; + +! static int reading; + static SigHandler *old_alrm; + static unsigned char delim; + + /* In all cases, SIGALRM just sets a flag that we check periodically. This + avoids problems with the semi-tricky stuff we do with the xfree of +--- 141,150 ---- + int sigalrm_seen; + +! static int reading, tty_modified; + static SigHandler *old_alrm; + static unsigned char delim; + ++ static struct ttsave termsave; ++ + /* In all cases, SIGALRM just sets a flag that we check periodically. This + avoids problems with the semi-tricky stuff we do with the xfree of +*************** +*** 189,193 **** + SHELL_VAR *var; + TTYSTRUCT ttattrs, ttset; +- struct ttsave termsave; + #if defined (ARRAY_VARS) + WORD_LIST *alist; +--- 191,194 ---- +*************** +*** 222,226 **** + USE_VAR(lastsig); + +! sigalrm_seen = reading = 0; + + i = 0; /* Index into the string that we are reading. */ +--- 223,227 ---- + USE_VAR(lastsig); + +! sigalrm_seen = reading = tty_modified = 0; + + i = 0; /* Index into the string that we are reading. */ +*************** +*** 439,442 **** +--- 440,445 ---- + goto assign_vars; + } ++ if (interactive_shell == 0) ++ initialize_terminating_signals (); + old_alrm = set_signal_handler (SIGALRM, sigalrm); + add_unwind_protect (reset_alarm, (char *)NULL); +*************** +*** 483,487 **** +--- 486,493 ---- + if (i < 0) + sh_ttyerror (1); ++ tty_modified = 1; + add_unwind_protect ((Function *)ttyrestore, (char *)&termsave); ++ if (interactive_shell == 0) ++ initialize_terminating_signals (); + } + } +*************** +*** 498,502 **** +--- 504,511 ---- + sh_ttyerror (1); + ++ tty_modified = 1; + add_unwind_protect ((Function *)ttyrestore, (char *)&termsave); ++ if (interactive_shell == 0) ++ initialize_terminating_signals (); + } + +*************** +*** 589,592 **** +--- 598,603 ---- + else + lastsig = 0; ++ if (terminating_signal && tty_modified) ++ ttyrestore (&termsave); /* fix terminal before exiting */ + CHECK_TERMSIG; + eof = 1; +*************** +*** 979,982 **** +--- 990,1007 ---- + { + ttsetattr (ttp->fd, ttp->attrs); ++ tty_modified = 0; ++ } ++ ++ void ++ read_tty_cleanup () ++ { ++ if (tty_modified) ++ ttyrestore (&termsave); ++ } ++ ++ int ++ read_tty_modified () ++ { ++ return (tty_modified); + } + +*** bash-4.3/builtins/common.h 2014-10-01 12:57:47.000000000 -0400 +--- builtins/common.h 2014-12-22 10:10:14.000000000 -0500 +*************** +*** 123,126 **** +--- 141,148 ---- + extern void getopts_reset __P((int)); + ++ /* Functions from read.def */ ++ extern void read_tty_cleanup __P((void)); ++ extern int read_tty_modified __P((void)); ++ + /* Functions from set.def */ + extern int minus_o_option_value __P((char *)); +*** bash-4.3/bashline.c 2014-05-14 09:22:39.000000000 -0400 +--- bashline.c 2014-09-08 11:28:56.000000000 -0400 +*************** +*** 203,206 **** +--- 203,207 ---- + extern int array_needs_making; + extern int posixly_correct, no_symbolic_links; ++ extern int sigalrm_seen; + extern char *current_prompt_string, *ps1_prompt; + extern STRING_INT_ALIST word_token_alist[]; +*************** +*** 4209,4214 **** + /* If we're going to longjmp to top_level, make sure we clean up readline. + check_signals will call QUIT, which will eventually longjmp to top_level, +! calling run_interrupt_trap along the way. */ +! if (interrupt_state) + rl_cleanup_after_signal (); + bashline_reset_event_hook (); +--- 4262,4268 ---- + /* If we're going to longjmp to top_level, make sure we clean up readline. + check_signals will call QUIT, which will eventually longjmp to top_level, +! calling run_interrupt_trap along the way. The check for sigalrm_seen is +! to clean up the read builtin's state. */ +! if (terminating_signal || interrupt_state || sigalrm_seen) + rl_cleanup_after_signal (); + bashline_reset_event_hook (); +*** bash-4.3/sig.c 2014-01-10 15:06:06.000000000 -0500 +--- sig.c 2014-09-08 11:26:33.000000000 -0400 +*************** +*** 533,538 **** + /* Set the event hook so readline will call it after the signal handlers + finish executing, so if this interrupted character input we can get +! quick response. */ +! if (interactive_shell && interactive && no_line_editing == 0) + bashline_set_event_hook (); + #endif +--- 533,540 ---- + /* Set the event hook so readline will call it after the signal handlers + finish executing, so if this interrupted character input we can get +! quick response. If readline is active or has modified the terminal we +! need to set this no matter what the signal is, though the check for +! RL_STATE_TERMPREPPED is possibly redundant. */ +! if (RL_ISSTATE (RL_STATE_SIGHANDLER) || RL_ISSTATE (RL_STATE_TERMPREPPED)) + bashline_set_event_hook (); + #endif +*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 32 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 33 + + #endif /* _PATCHLEVEL_H_ */ + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-034 + +Bug-Reported-by: Dreamcat4 +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2015-05/msg00001.html + +Bug-Description: + +If neither the -f nor -v options is supplied to unset, and a name argument is +found to be a function and unset, subsequent name arguments are not treated as +variables before attempting to unset a function by that name. + +Patch (apply with `patch -p0'): + +*** bash-4.3/builtins/set.def 2013-04-19 07:20:34.000000000 -0400 +--- builtins/set.def 2015-05-05 13:25:36.000000000 -0400 +*************** +*** 752,758 **** +--- 797,805 ---- + { + int unset_function, unset_variable, unset_array, opt, nameref, any_failed; ++ int global_unset_func, global_unset_var; + char *name; + + unset_function = unset_variable = unset_array = nameref = any_failed = 0; ++ global_unset_func = global_unset_var = 0; + + reset_internal_getopt (); +*************** +*** 762,769 **** + { + case 'f': +! unset_function = 1; + break; + case 'v': +! unset_variable = 1; + break; + case 'n': +--- 809,816 ---- + { + case 'f': +! global_unset_func = 1; + break; + case 'v': +! global_unset_var = 1; + break; + case 'n': +*************** +*** 778,782 **** + list = loptend; + +! if (unset_function && unset_variable) + { + builtin_error (_("cannot simultaneously unset a function and a variable")); +--- 825,829 ---- + list = loptend; + +! if (global_unset_func && global_unset_var) + { + builtin_error (_("cannot simultaneously unset a function and a variable")); +*************** +*** 796,799 **** +--- 843,849 ---- + name = list->word->word; + ++ unset_function = global_unset_func; ++ unset_variable = global_unset_var; ++ + #if defined (ARRAY_VARS) + unset_array = 0; + +*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 33 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 34 + + #endif /* _PATCHLEVEL_H_ */ + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-035 + +Bug-Reported-by: +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-08/msg00045.html + +Bug-Description: + +A locale with a long name can trigger a buffer overflow and core dump. This +applies on systems that do not have locale_charset in libc, are not using +GNU libiconv, and are not using the libintl that ships with bash in lib/intl. + +Patch (apply with `patch -p0'): + +*** bash-4.3/lib/sh/unicode.c 2014-01-30 16:47:19.000000000 -0500 +--- lib/sh/unicode.c 2015-05-01 08:58:30.000000000 -0400 +*************** +*** 79,83 **** + if (s) + { +! strcpy (charsetbuf, s+1); + t = strchr (charsetbuf, '@'); + if (t) +--- 79,84 ---- + if (s) + { +! strncpy (charsetbuf, s+1, sizeof (charsetbuf) - 1); +! charsetbuf[sizeof (charsetbuf) - 1] = '\0'; + t = strchr (charsetbuf, '@'); + if (t) +*************** +*** 85,89 **** + return charsetbuf; + } +! strcpy (charsetbuf, locale); + return charsetbuf; + } +--- 86,91 ---- + return charsetbuf; + } +! strncpy (charsetbuf, locale, sizeof (charsetbuf) - 1); +! charsetbuf[sizeof (charsetbuf) - 1] = '\0'; + return charsetbuf; + } +*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 34 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 35 + + #endif /* _PATCHLEVEL_H_ */ + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-036 + +Bug-Reported-by: emanuelczirai@cryptolab.net +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2015-02/msg00071.html + +Bug-Description: + +When evaluating and setting integer variables, and the assignment fails to +create a variable (for example, when performing an operation on an array +variable with an invalid subscript), bash attempts to dereference a null +pointer, causing a segmentation violation. + +Patch (apply with `patch -p0'): + +*** bash-4.3/variables.c 2015-01-23 20:39:27.000000000 -0500 +--- variables.c 2015-02-19 13:56:12.000000000 -0500 +*************** +*** 2834,2841 **** + v = bind_variable (lhs, rhs, 0); + +! if (v && isint) +! VSETATTR (v, att_integer); +! +! VUNSETATTR (v, att_invisible); + + return (v); +--- 2834,2843 ---- + v = bind_variable (lhs, rhs, 0); + +! if (v) +! { +! if (isint) +! VSETATTR (v, att_integer); +! VUNSETATTR (v, att_invisible); +! } + + return (v); +*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 35 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 36 + + #endif /* _PATCHLEVEL_H_ */ + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-037 + +Bug-Reported-by: Greg Wooledge +Bug-Reference-ID: <20150204144240.GN13956@eeg.ccf.org> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2015-02/msg00007.html + +Bug-Description: + +If an associative array uses `@' or `*' as a subscript, `declare -p' produces +output that cannot be reused as input. + +Patch (apply with `patch -p0'): + +*** bash-4.3/assoc.c 2011-11-05 16:39:05.000000000 -0400 +--- assoc.c 2015-02-04 15:28:25.000000000 -0500 +*************** +*** 437,440 **** +--- 440,445 ---- + if (sh_contains_shell_metas (tlist->key)) + istr = sh_double_quote (tlist->key); ++ else if (ALL_ELEMENT_SUB (tlist->key[0]) && tlist->key[1] == '\0') ++ istr = sh_double_quote (tlist->key); + else + istr = tlist->key; +*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 36 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 37 + + #endif /* _PATCHLEVEL_H_ */ + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-038 + +Bug-Reported-by: worley@alum.mit.edu (Dale R. Worley) +Bug-Reference-ID: <201406100051.s5A0pCeB014978@hobgoblin.ariadne.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-06/msg00028.html + +Bug-Description: + +There are a number of instances where `time' is not recognized as a reserved +word when the shell grammar says it should be. + +Patch (apply with `patch -p0'): + +*** bash-4.3/parse.y 2014-04-07 11:56:12.000000000 -0400 +--- parse.y 2014-06-11 10:25:53.000000000 -0400 +*************** +*** 2819,2827 **** + case OR_OR: + case '&': + case DO: + case THEN: + case ELSE: + case '{': /* } */ +! case '(': /* ) */ + case BANG: /* ! time pipeline */ + case TIME: /* time time pipeline */ +--- 2819,2832 ---- + case OR_OR: + case '&': ++ case WHILE: + case DO: ++ case UNTIL: ++ case IF: + case THEN: ++ case ELIF: + case ELSE: + case '{': /* } */ +! case '(': /* )( */ +! case ')': /* only valid in case statement */ + case BANG: /* ! time pipeline */ + case TIME: /* time time pipeline */ +*** bash-4.3/y.tab.c 2014-10-05 13:52:50.000000000 -0400 +--- y.tab.c 2015-05-19 15:08:43.000000000 -0400 +*************** +*** 5131,5139 **** + case OR_OR: + case '&': + case DO: + case THEN: + case ELSE: + case '{': /* } */ +! case '(': /* ) */ + case BANG: /* ! time pipeline */ + case TIME: /* time time pipeline */ +--- 5131,5144 ---- + case OR_OR: + case '&': ++ case WHILE: + case DO: ++ case UNTIL: ++ case IF: + case THEN: ++ case ELIF: + case ELSE: + case '{': /* } */ +! case '(': /* )( */ +! case ')': /* only valid in case statement */ + case BANG: /* ! time pipeline */ + case TIME: /* time time pipeline */ +*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 37 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 38 + + #endif /* _PATCHLEVEL_H_ */ + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-039 + +Bug-Reported-by: SN +Bug-Reference-ID: <54E2554C.205@gazeta.pl> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2015-02/msg00060.html + +Bug-Description: + +Using the output of `declare -p' when run in a function can result in variables +that are invisible to `declare -p'. This problem occurs when an assignment +builtin such as `declare' receives a quoted compound array assignment as one of +its arguments. + +Patch (apply with `patch -p0'): + +*** bash-4.3/arrayfunc.c 2014-10-01 13:08:48.000000000 -0400 +--- arrayfunc.c 2015-02-19 14:33:05.000000000 -0500 +*************** +*** 405,408 **** +--- 405,411 ---- + else + array_insert (a, i, l->word->word); ++ ++ VUNSETATTR (var, att_invisible); /* no longer invisible */ ++ + return var; + } +*************** +*** 635,638 **** +--- 638,645 ---- + if (nlist) + dispose_words (nlist); ++ ++ if (var) ++ VUNSETATTR (var, att_invisible); /* no longer invisible */ ++ + return (var); + } +*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 38 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 39 + + #endif /* _PATCHLEVEL_H_ */ + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-040 + +Bug-Reported-by: Jean Delvare +Bug-Reference-ID: <20150609180231.5f463695@endymion.delvare> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2015-06/msg00033.html + +Bug-Description: + +There is a memory leak that occurs when bash expands an array reference on +the rhs of an assignment statement. + +Patch (apply with `patch -p0'): + +*** bash-4.3/subst.c 2014-10-01 12:57:47.000000000 -0400 +--- subst.c 2015-06-22 09:16:53.000000000 -0400 +*************** +*** 5783,5787 **** + if (pflags & PF_ASSIGNRHS) + { +! temp = array_variable_name (name, &tt, (int *)0); + if (ALL_ELEMENT_SUB (tt[0]) && tt[1] == ']') + temp = array_value (name, quoted|Q_DOUBLE_QUOTES, 0, &atype, &ind); +--- 5783,5787 ---- + if (pflags & PF_ASSIGNRHS) + { +! var = array_variable_part (name, &tt, (int *)0); + if (ALL_ELEMENT_SUB (tt[0]) && tt[1] == ']') + temp = array_value (name, quoted|Q_DOUBLE_QUOTES, 0, &atype, &ind); +*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 39 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 40 + + #endif /* _PATCHLEVEL_H_ */ + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-041 + +Bug-Reported-by: Hanno Böck +Bug-Reference-ID: <20150623131106.6f111da9@pc1>, <20150707004640.0e61d2f9@pc1> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2015-06/msg00089.html, + http://lists.gnu.org/archive/html/bug-bash/2015-07/msg00018.html + +Bug-Description: + +There are several out-of-bounds read errors that occur when completing command +lines where assignment statements appear before the command name. The first +two appear only when programmable completion is enabled; the last one only +happens when listing possible completions. + +Patch (apply with `patch -p0'): + +*** bash-4.3/bashline.c 2014-12-29 14:39:43.000000000 -0500 +--- bashline.c 2015-08-12 10:21:58.000000000 -0400 +*************** +*** 1469,1476 **** +--- 1469,1489 ---- + os = start; + n = 0; ++ was_assignment = 0; + s = find_cmd_start (os); + e = find_cmd_end (end); + do + { ++ /* Don't read past the end of rl_line_buffer */ ++ if (s > rl_end) ++ { ++ s1 = s = e1; ++ break; ++ } ++ /* Or past point if point is within an assignment statement */ ++ else if (was_assignment && s > rl_point) ++ { ++ s1 = s = e1; ++ break; ++ } + /* Skip over assignment statements preceding a command name. If we + don't find a command name at all, we can perform command name +*** bash-4.3/lib/readline/complete.c 2013-10-14 09:27:10.000000000 -0400 +--- lib/readline/complete.c 2015-07-31 09:34:39.000000000 -0400 +*************** +*** 690,693 **** +--- 690,695 ---- + if (temp == 0 || *temp == '\0') + return (pathname); ++ else if (temp[1] == 0 && temp == pathname) ++ return (pathname); + /* If the basename is NULL, we might have a pathname like '/usr/src/'. + Look for a previous slash and, if one is found, return the portion +*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 40 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 41 + + #endif /* _PATCHLEVEL_H_ */ + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-042 + +Bug-Reported-by: Nathan Neulinger +Bug-Reference-ID: <558EFDF2.7060402@neulinger.org> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2015-06/msg00096.html + +Bug-Description: + +There is a problem when parsing command substitutions containing `case' +commands within pipelines that causes the parser to not correctly identify +the end of the command substitution. + +Patch (apply with `patch -p0'): + +*** bash-4.3/parse.y 2015-05-18 19:27:05.000000000 -0400 +--- parse.y 2015-06-29 10:59:27.000000000 -0400 +*************** +*** 3709,3712 **** +--- 3709,3714 ---- + tflags |= LEX_INWORD; + lex_wlen = 0; ++ if (tflags & LEX_RESWDOK) ++ lex_rwlen = 0; + } + } +*** bash-4.3/y.tab.c 2015-05-18 19:27:05.000000000 -0400 +--- y.tab.c 2015-06-29 10:59:27.000000000 -0400 +*************** +*** 6021,6024 **** +--- 6021,6026 ---- + tflags |= LEX_INWORD; + lex_wlen = 0; ++ if (tflags & LEX_RESWDOK) ++ lex_rwlen = 0; + } + } +*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 41 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 42 + + #endif /* _PATCHLEVEL_H_ */ + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-043 + +Bug-Reported-by: lolilolicon +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-08/msg00040.html + +Bug-Description: + +When the lastpipe option is enabled, the last component can contain nested +pipelines and cause a segmentation fault under certain circumestances. + +Patch (apply with `patch -p0'): + +*** bash-4.3/execute_cmd.c 2014-07-30 10:26:52.000000000 -0400 +--- execute_cmd.c 2014-08-15 08:55:24.000000000 -0400 +*************** +*** 2406,2412 **** + { + #if defined (JOB_CONTROL) +! append_process (savestring (the_printed_command), dollar_dollar_pid, exec_result, lastpipe_jid); +! #endif + lstdin = wait_for (lastpid); + #if defined (JOB_CONTROL) + /* If wait_for removes the job from the jobs table, use result of last +--- 2433,2447 ---- + { + #if defined (JOB_CONTROL) +! if (INVALID_JOB (lastpipe_jid) == 0) +! { +! append_process (savestring (the_printed_command_except_trap), dollar_dollar_pid, exec_result, lastpipe_jid); +! lstdin = wait_for (lastpid); +! } +! else +! lstdin = wait_for_single_pid (lastpid); /* checks bgpids list */ +! #else + lstdin = wait_for (lastpid); ++ #endif ++ + #if defined (JOB_CONTROL) + /* If wait_for removes the job from the jobs table, use result of last +*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 42 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 43 + + #endif /* _PATCHLEVEL_H_ */ + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-044 + +Bug-Reported-by: Ondrej Oprala +Bug-Reference-ID: <539ED55B.2080103@redhat.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-06/msg00046.html + +Bug-Description: + +A typo prevents the `compat42' shopt option from working as intended. + +Patch (apply with `patch -p0'): + +diff -rC 2 bash-4.3.42/builtins/shopt.def bash-4.3.43/builtins/shopt.def +*** bash-4.3.42/builtins/shopt.def 2013-02-27 09:43:20.000000000 -0500 +--- builtins/shopt.def 2015-10-16 11:25:28.000000000 -0400 +*************** +*** 161,165 **** + { "compat40", &shopt_compat40, set_compatibility_level }, + { "compat41", &shopt_compat41, set_compatibility_level }, +! { "compat42", &shopt_compat41, set_compatibility_level }, + #if defined (READLINE) + { "complete_fullquote", &complete_fullquote, (shopt_set_func_t *)NULL}, +--- 161,165 ---- + { "compat40", &shopt_compat40, set_compatibility_level }, + { "compat41", &shopt_compat41, set_compatibility_level }, +! { "compat42", &shopt_compat42, set_compatibility_level }, + #if defined (READLINE) + { "complete_fullquote", &complete_fullquote, (shopt_set_func_t *)NULL}, + +*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 43 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 44 + + #endif /* _PATCHLEVEL_H_ */ + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-045 + +Bug-Reported-by: Basin Ilya +Bug-Reference-ID: <5624C0AC.8070802@gmail.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2015-10/msg00141.html + +Bug-Description: + +If a file open attempted as part of a redirection fails because it is interrupted +by a signal, the shell needs to process any pending traps to allow the redirection +to be canceled. + +Patch (apply with `patch -p0'): + +*** bash-20150109/redir.c 2014-12-03 10:47:38.000000000 -0500 +--- redir.c 2015-01-16 10:15:47.000000000 -0500 +*************** +*** 672,676 **** + e = errno; + if (fd < 0 && e == EINTR) +! QUIT; + errno = e; + } +--- 672,679 ---- + e = errno; + if (fd < 0 && e == EINTR) +! { +! QUIT; +! run_pending_traps (); +! } + errno = e; + } + +*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 44 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 45 + + #endif /* _PATCHLEVEL_H_ */ + BASH PATCH REPORT + ================= + +Bash-Release: 4.3 +Patch-ID: bash43-046 + +Bug-Reported-by: Sergey Tselikh +Bug-Reference-ID: <20150816110235.91f3e12e3f20d20cdaad963e@gmail.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2015-08/msg00080.html + +Bug-Description: + +An incorrect conversion from an indexed to associative array can result in a +core dump. + +Patch (apply with `patch -p0'): + +*** bash-4.3/subst.c 2015-08-13 11:32:54.000000000 -0400 +--- subst.c 2015-08-18 10:13:59.000000000 -0400 +*************** +*** 9562,9566 **** + opts[opti] = '\0'; + if (opti > 0) +! make_internal_declare (tlist->word->word, opts); + + t = do_word_assignment (tlist->word, 0); +--- 9562,9573 ---- + opts[opti] = '\0'; + if (opti > 0) +! { +! t = make_internal_declare (tlist->word->word, opts); +! if (t != EXECUTION_SUCCESS) +! { +! last_command_exit_value = t; +! exp_jump_to_top_level (DISCARD); +! } +! } + + t = do_word_assignment (tlist->word, 0); + +*** bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 +--- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 45 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 46 + + #endif /* _PATCHLEVEL_H_ */ +--- bash-4.3/configure.orig 2014-02-11 15:38:00.000000000 +0000 ++++ bash-4.3/configure 2016-03-02 10:32:54.098832248 +0000 +@@ -2870,6 +2870,7 @@ + *-opennt*|*-interix*) opt_bash_malloc=no ;; # Interix, now owned by Microsoft + *-nsk*) opt_bash_malloc=no ;; # HP NonStop + *-haiku*) opt_bash_malloc=no ;; # Haiku OS ++*-midipix*) opt_bash_malloc=no ;; # Midipix + esac + + # memory scrambling on free() +@@ -5167,13 +5168,13 @@ + if test "x$ac_cv_lib_curses_tgetent" = xyes; then : + bash_cv_termcap_lib=libcurses + else +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -lncurses" >&5 +-$as_echo_n "checking for tgetent in -lncurses... " >&6; } +-if ${ac_cv_lib_ncurses_tgetent+:} false; then : ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -lncursesw" >&5 ++$as_echo_n "checking for tgetent in -lncursesw... " >&6; } ++if ${ac_cv_lib_ncursesw_tgetent+:} false; then : + $as_echo_n "(cached) " >&6 + else + ac_check_lib_save_LIBS=$LIBS +-LIBS="-lncurses $LIBS" ++LIBS="-lncursesw $LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + +@@ -5193,18 +5194,18 @@ + } + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : +- ac_cv_lib_ncurses_tgetent=yes ++ ac_cv_lib_ncursesw_tgetent=yes + else +- ac_cv_lib_ncurses_tgetent=no ++ ac_cv_lib_ncursesw_tgetent=no + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncurses_tgetent" >&5 +-$as_echo "$ac_cv_lib_ncurses_tgetent" >&6; } +-if test "x$ac_cv_lib_ncurses_tgetent" = xyes; then : +- bash_cv_termcap_lib=libncurses ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncursesw_tgetent" >&5 ++$as_echo "$ac_cv_lib_ncursesw_tgetent" >&6; } ++if test "x$ac_cv_lib_ncursesw_tgetent" = xyes; then : ++ bash_cv_termcap_lib=libncursesw + else + bash_cv_termcap_lib=gnutermcap + fi +@@ -5235,8 +5236,8 @@ + elif test $bash_cv_termcap_lib = libtinfo; then + TERMCAP_LIB=-ltinfo + TERMCAP_DEP= +-elif test $bash_cv_termcap_lib = libncurses; then +-TERMCAP_LIB=-lncurses ++elif test $bash_cv_termcap_lib = libncursesw; then ++TERMCAP_LIB=-lncursesw + TERMCAP_DEP= + elif test $bash_cv_termcap_lib = libc; then + TERMCAP_LIB= +@@ -15708,13 +15709,13 @@ + if test "x$ac_cv_lib_curses_tgetent" = xyes; then : + bash_cv_termcap_lib=libcurses + else +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -lncurses" >&5 +-$as_echo_n "checking for tgetent in -lncurses... " >&6; } +-if ${ac_cv_lib_ncurses_tgetent+:} false; then : ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -lncursesw" >&5 ++$as_echo_n "checking for tgetent in -lncursesw... " >&6; } ++if ${ac_cv_lib_ncursesw_tgetent+:} false; then : + $as_echo_n "(cached) " >&6 + else + ac_check_lib_save_LIBS=$LIBS +-LIBS="-lncurses $LIBS" ++LIBS="-lncursesw $LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + +@@ -15734,18 +15735,18 @@ + } + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : +- ac_cv_lib_ncurses_tgetent=yes ++ ac_cv_lib_ncursesw_tgetent=yes + else +- ac_cv_lib_ncurses_tgetent=no ++ ac_cv_lib_ncursesw_tgetent=no + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncurses_tgetent" >&5 +-$as_echo "$ac_cv_lib_ncurses_tgetent" >&6; } +-if test "x$ac_cv_lib_ncurses_tgetent" = xyes; then : +- bash_cv_termcap_lib=libncurses ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncursesw_tgetent" >&5 ++$as_echo "$ac_cv_lib_ncursesw_tgetent" >&6; } ++if test "x$ac_cv_lib_ncursesw_tgetent" = xyes; then : ++ bash_cv_termcap_lib=libncursesw + else + bash_cv_termcap_lib=gnutermcap + fi +@@ -15776,8 +15777,8 @@ + elif test $bash_cv_termcap_lib = libtinfo; then + TERMCAP_LIB=-ltinfo + TERMCAP_DEP= +-elif test $bash_cv_termcap_lib = libncurses; then +-TERMCAP_LIB=-lncurses ++elif test $bash_cv_termcap_lib = libncursesw; then ++TERMCAP_LIB=-lncursesw + TERMCAP_DEP= + elif test $bash_cv_termcap_lib = libc; then + TERMCAP_LIB= +--- bash-4.3/lib/intl/libgnuintl.h.in.orig 2009-01-04 19:32:30.000000000 +0000 ++++ bash-4.3/lib/intl/libgnuintl.h.in 2016-05-30 22:03:02.589798655 +0000 +@@ -107,7 +107,7 @@ + #endif + /* Auxiliary macros. */ + #ifdef _INTL_REDIRECT_ASM +-# define _INTL_ASM(cname) __asm__ (_INTL_ASMNAME (__USER_LABEL_PREFIX__, #cname)) ++# define _INTL_ASM(cname) __asm__ (#cname) + # define _INTL_ASMNAME(prefix,cnamestring) _INTL_STRINGIFY (prefix) cnamestring + # define _INTL_STRINGIFY(prefix) #prefix + #else diff --git a/patches/binutils-2.24.51.local.patch b/patches/binutils-2.24.51.local.patch new file mode 100644 index 00000000..1f983f04 --- /dev/null +++ b/patches/binutils-2.24.51.local.patch @@ -0,0 +1,739 @@ +diff -ru --new-file a/bfd/midipix.h b/bfd/midipix.h +--- a/bfd/midipix.h 1969-12-31 19:00:00.000000000 -0500 ++++ b/bfd/midipix.h 2015-03-11 17:23:18.492453732 -0400 +@@ -0,0 +1,10 @@ ++#ifndef MIDIPIX_H ++#define MIDIPIX_H ++ ++#define PE_TARGET_MIDIPIX ++ ++#define PE_DSO_SUFFIX ".so" ++#define PE_DSOLIB_SUFFIX ".dso.a" ++#define PE_IMPLIB_SUFFIX ".lib.a" ++ ++#endif +--- a/ld/configure 2014-07-03 01:37:48.000000000 -0400 ++++ b/ld/configure 2015-03-11 20:01:08.888756786 -0400 +@@ -19773,3 +19773,23 @@ + $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} + fi + ++sed -i -e 's/@pe_executable_name@/'$PE_EXECUTABLE_NAME'/g' Makefile ++sed -i -e 's/@pe_crt_section@/'$PE_CRT_SECTION'/g' Makefile ++sed -i -e 's/@pe_cygwin_fork_support@/'$PE_CYGWIN_FORK_SUPPORT'/g' Makefile ++ ++#PE custom import library support ++if [ -f peimplib.h ]; then ++ echo 'build directory is not clean (peimplib.h already exists)' ++ exit 2 ++fi ++ ++touch peimplib.h || exit 2 ++ ++case $target_os in ++ *midipix*) ++ cat >> peimplib.h << EOF ++ ++/* midipix supersystem support */ ++#include "midipix.h" ++EOF ++esac +diff -ru --new-file a/ld/emultempl/pe.em b/ld/emultempl/pe.em +--- a/ld/emultempl/pe.em 2014-07-03 01:37:48.000000000 -0400 ++++ b/ld/emultempl/pe.em 2015-11-25 09:02:09.729144140 -0500 +@@ -35,6 +35,18 @@ + only determine if the subsystem is console or windows in order to select + the correct entry point by default. */ + ++ ++#include "peimplib.h" ++ ++#ifndef PE_IMPLIB_SUFFIX ++#define PE_IMPLIB_SUFFIX ".dll.a" ++#endif ++ ++#ifndef PE_DSO_SUFFIX ++#define PE_DSO_SUFFIX ".dll" ++#endif ++ ++ + #define TARGET_IS_${EMULATION_NAME} + + /* Do this before including bfd.h, so we prototype the right functions. */ +@@ -132,7 +144,7 @@ + static char * thumb_entry_symbol = NULL; + static lang_assignment_statement_type *image_base_statement = 0; + static unsigned short pe_dll_characteristics = 0; +-static bfd_boolean insert_timestamp = TRUE; ++static bfd_boolean insert_timestamp = 0; + static const char *emit_build_id; + + #ifdef DLL_SUPPORT +@@ -471,8 +483,8 @@ + specifically set with --image-base\n")); + fprintf (file, _(" --disable-auto-image-base Do not auto-choose image base. (default)\n")); + fprintf (file, _(" --dll-search-prefix= When linking dynamically to a dll without\n\ +- an importlib, use .dll\n\ +- in preference to lib.dll \n")); ++ an importlib, use "PE_DSO_SUFFIX"\n\ ++ in preference to lib"PE_DSO_SUFFIX" \n")); + fprintf (file, _(" --enable-auto-import Do sophisticated linking of _sym to\n\ + __imp_sym for DATA references\n")); + fprintf (file, _(" --disable-auto-import Do not auto-import DATA items from DLLs\n")); +@@ -1698,7 +1710,7 @@ + extension, and use that for the remainder of the + comparisons. */ + pnt = strrchr (is3->the_bfd->filename, '.'); +- if (pnt != NULL && filename_cmp (pnt, ".dll") == 0) ++ if (pnt != NULL && filename_cmp (pnt, PE_DSO_SUFFIX) == 0) + break; + } + +@@ -1733,7 +1745,7 @@ + then leave the filename alone. */ + pnt = strrchr (is->the_bfd->filename, '.'); + +- if (is_ms_arch && (filename_cmp (pnt, ".dll") == 0)) ++ if (is_ms_arch && (filename_cmp (pnt, PE_DSO_SUFFIX) == 0)) + { + int idata2 = 0, reloc_count=0; + asection *sec; +@@ -2298,10 +2310,14 @@ + } + libname_fmt [] = + { ++ /* optionally support ldso-specific import libraries */ ++ #ifdef PE_DSOLIB_SUFFIX ++ { "lib%s"PE_DSOLIB_SUFFIX, FALSE }, ++ #endif + /* Preferred explicit import library for dll's. */ +- { "lib%s.dll.a", FALSE }, ++ { "lib%s"PE_IMPLIB_SUFFIX, FALSE }, + /* Alternate explicit import library for dll's. */ +- { "%s.dll.a", FALSE }, ++ { "%s"PE_IMPLIB_SUFFIX, FALSE }, + /* "libfoo.a" could be either an import lib or a static lib. + For backwards compatibility, libfoo.a needs to precede + libfoo.dll and foo.dll in the search. */ +@@ -2310,10 +2326,10 @@ + { "%s.lib", FALSE }, + #ifdef DLL_SUPPORT + /* Try "foo.dll" (preferred dll name, if specified). */ +- { "%s%s.dll", TRUE }, ++ { "%s%s"PE_DSO_SUFFIX, TRUE }, + #endif + /* Try "libfoo.dll" (default preferred dll name). */ +- { "lib%s.dll", FALSE }, ++ { "lib%s"PE_DSO_SUFFIX, FALSE }, + /* Finally try 'native' dll name "foo.dll". */ + { "%s.dll", FALSE }, + /* Note: If adding more formats to this table, make sure to check to +diff -ru --new-file a/ld/emultempl/pep.em b/ld/emultempl/pep.em +--- a/ld/emultempl/pep.em 2014-07-03 01:37:48.000000000 -0400 ++++ b/ld/emultempl/pep.em 2015-11-25 09:02:21.153143987 -0500 +@@ -42,6 +42,18 @@ + /* For WINDOWS_XP64 and higher */ + /* Based on pe.em, but modified for 64 bit support. */ + ++ ++#include "peimplib.h" ++ ++#ifndef PE_IMPLIB_SUFFIX ++#define PE_IMPLIB_SUFFIX ".dll.a" ++#endif ++ ++#ifndef PE_DSO_SUFFIX ++#define PE_DSO_SUFFIX ".dll" ++#endif ++ ++ + #define TARGET_IS_${EMULATION_NAME} + + #define COFF_IMAGE_WITH_PE +@@ -147,7 +159,7 @@ + static int support_old_code = 0; + static lang_assignment_statement_type *image_base_statement = 0; + static unsigned short pe_dll_characteristics = 0; +-static bfd_boolean insert_timestamp = TRUE; ++static bfd_boolean insert_timestamp = 0; + static const char *emit_build_id; + + #ifdef DLL_SUPPORT +@@ -434,8 +446,8 @@ + unless user specifies one\n")); + fprintf (file, _(" --disable-auto-image-base Do not auto-choose image base. (default)\n")); + fprintf (file, _(" --dll-search-prefix= When linking dynamically to a dll without\n\ +- an importlib, use .dll\n\ +- in preference to lib.dll \n")); ++ an importlib, use "PE_DSO_SUFFIX"\n\ ++ in preference to lib"PE_DSO_SUFFIX" \n")); + fprintf (file, _(" --enable-auto-import Do sophisticated linking of _sym to\n\ + __imp_sym for DATA references\n")); + fprintf (file, _(" --disable-auto-import Do not auto-import DATA items from DLLs\n")); +@@ -1635,7 +1647,7 @@ + extension, and use that for the remainder of the + comparisons. */ + pnt = strrchr (is3->the_bfd->filename, '.'); +- if (pnt != NULL && filename_cmp (pnt, ".dll") == 0) ++ if (pnt != NULL && filename_cmp (pnt, PE_DSO_SUFFIX) == 0) + break; + } + +@@ -1670,7 +1682,7 @@ + then leave the filename alone. */ + pnt = strrchr (is->the_bfd->filename, '.'); + +- if (is_ms_arch && (filename_cmp (pnt, ".dll") == 0)) ++ if (is_ms_arch && (filename_cmp (pnt, PE_DSO_SUFFIX) == 0)) + { + int idata2 = 0, reloc_count=0; + asection *sec; +@@ -2062,10 +2074,14 @@ + } + libname_fmt [] = + { ++ /* optionally support ldso-specific import libraries */ ++ #ifdef PE_DSOLIB_SUFFIX ++ { "lib%s"PE_DSOLIB_SUFFIX, FALSE }, ++ #endif + /* Preferred explicit import library for dll's. */ +- { "lib%s.dll.a", FALSE }, ++ { "lib%s"PE_IMPLIB_SUFFIX, FALSE }, + /* Alternate explicit import library for dll's. */ +- { "%s.dll.a", FALSE }, ++ { "%s"PE_IMPLIB_SUFFIX, FALSE }, + /* "libfoo.a" could be either an import lib or a static lib. + For backwards compatibility, libfoo.a needs to precede + libfoo.dll and foo.dll in the search. */ +@@ -2074,10 +2090,10 @@ + { "%s.lib", FALSE }, + #ifdef DLL_SUPPORT + /* Try "foo.dll" (preferred dll name, if specified). */ +- { "%s%s.dll", TRUE }, ++ { "%s%s"PE_DSO_SUFFIX, TRUE }, + #endif + /* Try "libfoo.dll" (default preferred dll name). */ +- { "lib%s.dll", FALSE }, ++ { "lib%s"PE_DSO_SUFFIX, FALSE }, + /* Finally try 'native' dll name "foo.dll". */ + { "%s.dll", FALSE }, + /* Note: If adding more formats to this table, make sure to check to +diff -ru --new-file a/ld/configure.tgt b/ld/configure.tgt +--- a/ld/configure.tgt 2014-07-03 01:37:48.000000000 -0400 ++++ b/ld/configure.tgt 2015-03-11 20:09:20.564772519 -0400 +@@ -319,6 +319,11 @@ + test "$targ" != "$host" && LIB_PATH='${tooldir}/lib/w32api' ;; + i[3-7]86-*-mingw32*) targ_emul=i386pe ; + targ_extra_ofiles="deffilep.o pe-dll.o" ;; ++i[3-7]86-*-midipix*) targ_emul=i386pe ; ++ targ_extra_ofiles="deffilep.o pe-dll.o" ; ++ PE_EXECUTABLE_NAME=a.out ; ++ PE_CRT_SECTION=no ; ++ PE_CYGWIN_FORK_SUPPORT=no ;; + x86_64-*-pe | x86_64-*-pep) targ_emul=i386pep ; + targ_extra_emuls=i386pe ; + targ_extra_ofiles="deffilep.o pep-dll.o pe-dll.o" ;; +@@ -329,7 +333,13 @@ + x86_64-*-mingw*) targ_emul=i386pep ; + targ_extra_emuls=i386pe + targ_extra_ofiles="deffilep.o pep-dll.o pe-dll.o" ;; +-i[3-7]86-*-interix*) targ_emul=i386pe_posix; ++x86_64-*-midipix*) targ_emul=i386pep ; ++ targ_extra_emuls=i386pe ; ++ targ_extra_ofiles="deffilep.o pep-dll.o pe-dll.o" ; ++ PE_EXECUTABLE_NAME=a.out ; ++ PE_CRT_SECTION=no ; ++ PE_CYGWIN_FORK_SUPPORT=no ;; ++i[3-7]86-*-interix*) targ_emul=i386pe_posix ; + targ_extra_ofiles="deffilep.o pe-dll.o" ;; + i[3-7]86-*-beospe*) targ_emul=i386beos ;; + i[3-7]86-*-beos*) targ_emul=elf_i386_be ;; +diff -ru --new-file a/ld/Makefile.in b/ld/Makefile.in +--- a/ld/Makefile.in 2014-07-03 01:37:48.000000000 -0400 ++++ b/ld/Makefile.in 2015-03-11 20:09:38.972773108 -0400 +@@ -54,6 +54,9 @@ + host_triplet = @host@ + target_triplet = @target@ + bin_PROGRAMS = ld-new$(EXEEXT) ++PE_EXECUTABLE_NAME = @pe_executable_name@ ++PE_CRT_SECTION = @pe_crt_section@ ++PE_CYGWIN_FORK_SUPPORT = @pe_cygwin_fork_support@ + + # Automake 1.9 will only build info files in the objdir if they are + # mentioned in DISTCLEANFILES. It doesn't have to be unconditional, +@@ -831,7 +833,7 @@ + POTFILES = $(CFILES) $(HFILES) $(EMULATION_FILES) + + # These all start with e so 'make clean' can find them. +-GENSCRIPTS = LIB_PATH='${LIB_PATH}' $(SHELL) $(srcdir)/genscripts.sh "${srcdir}" "${libdir}" "${prefix}" "${exec_prefix}" @host@ @target@ @target_alias@ "@EMULATION_LIBPATH@" "@NATIVE_LIB_DIRS@" @use_sysroot@ @enable_initfini_array@ ++GENSCRIPTS = EXECUTABLE_NAME='${PE_EXECUTABLE_NAME}' PE_CRT_SECTION='${PE_CRT_SECTION}' PE_CYGWIN_FORK_SUPPORT='${PE_CYGWIN_FORK_SUPPORT}' LIB_PATH='${LIB_PATH}' $(SHELL) $(srcdir)/genscripts.sh "${srcdir}" "${libdir}" "${prefix}" "${exec_prefix}" @host@ @target@ @target_alias@ "@EMULATION_LIBPATH@" "@NATIVE_LIB_DIRS@" @use_sysroot@ @enable_initfini_array@ + GEN_DEPENDS = $(srcdir)/genscripts.sh stringify.sed + ELF_DEPS = $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/elf-generic.em $(srcdir)/scripttempl/DWARF.sc + ELF_GEN_DEPS = $(srcdir)/emultempl/generic.em $(srcdir)/emultempl/elf-generic.em $(srcdir)/emultempl/genelf.em $(srcdir)/scripttempl/DWARF.sc +diff -ru --new-file a/ld/scripttempl/pep.sc b/ld/scripttempl/pep.sc +--- a/ld/scripttempl/pep.sc 2014-07-03 01:37:48.000000000 -0400 ++++ b/ld/scripttempl/pep.sc 2015-03-11 20:10:05.324773952 -0400 +@@ -92,12 +92,17 @@ + ${RELOCATING+ *(.gcc_except_table)} + } + ++EOF ++if [ x"$PE_CYGWIN_FORK_SUPPORT" != xno ]; then cat << EOF + /* The Cygwin32 library uses a section to avoid copying certain data + on fork. This used to be named ".data$nocopy". The linker used + to include this between __data_start__ and __data_end__, but that + breaks building the cygwin32 dll. Instead, we name the section + ".data_cygwin_nocopy" and explicitly include it after __data_end__. */ + ++EOF ++fi ++cat << EOF + .data ${RELOCATING+BLOCK(__section_alignment__)} : + { + ${RELOCATING+__data_start__ = . ;} +@@ -106,7 +111,12 @@ + ${R_DATA} + *(.jcr) + ${RELOCATING+__data_end__ = . ;} ++EOF ++if [ x"$PE_CYGWIN_FORK_SUPPORT" != xno ]; then cat << EOF + ${RELOCATING+*(.data_cygwin_nocopy)} ++EOF ++fi ++cat << EOF + } + + .rdata ${RELOCATING+BLOCK(__section_alignment__)} : +@@ -170,6 +180,8 @@ + ${RELOCATING+__IAT_end__ = .;} + ${R_IDATA67} + } ++EOF ++if [ x"$PE_CRT_SECTION" != xno ]; then cat << EOF + .CRT ${RELOCATING+BLOCK(__section_alignment__)} : + { + ${RELOCATING+___crt_xc_start__ = . ;} +@@ -188,6 +200,9 @@ + ${R_CRT_XT} + ${RELOCATING+___crt_xt_end__ = . ;} + } ++EOF ++fi ++cat << EOF + + /* Windows TLS expects .tls\$AAA to be at the start and .tls\$ZZZ to be + at the end of the .tls section. This is important because _tls_start MUST +diff -ru --new-file a/ld/scripttempl/pe.sc b/ld/scripttempl/pe.sc +--- a/ld/scripttempl/pe.sc 2014-07-03 01:37:48.000000000 -0400 ++++ b/ld/scripttempl/pe.sc 2015-03-11 20:10:10.036774102 -0400 +@@ -92,12 +92,17 @@ + ${RELOCATING+ *(.gcc_except_table)} + } + ++EOF ++if [ x"$PE_CYGWIN_FORK_SUPPORT" != xno ]; then cat << EOF + /* The Cygwin32 library uses a section to avoid copying certain data + on fork. This used to be named ".data$nocopy". The linker used + to include this between __data_start__ and __data_end__, but that + breaks building the cygwin32 dll. Instead, we name the section + ".data_cygwin_nocopy" and explicitly include it after __data_end__. */ + ++EOF ++fi ++cat << EOF + .data ${RELOCATING+BLOCK(__section_alignment__)} : + { + ${RELOCATING+__data_start__ = . ;} +@@ -106,7 +111,12 @@ + ${R_DATA} + *(.jcr) + ${RELOCATING+__data_end__ = . ;} ++EOF ++if [ x"$PE_CYGWIN_FORK_SUPPORT" != xno ]; then cat << EOF + ${RELOCATING+*(.data_cygwin_nocopy)} ++EOF ++fi ++cat << EOF + } + + .rdata ${RELOCATING+BLOCK(__section_alignment__)} : +@@ -165,6 +175,8 @@ + ${RELOCATING+__IAT_end__ = .;} + ${R_IDATA67} + } ++EOF ++if [ x"$PE_CRT_SECTION" != xno ]; then cat << EOF + .CRT ${RELOCATING+BLOCK(__section_alignment__)} : + { + ${RELOCATING+___crt_xc_start__ = . ;} +@@ -183,6 +195,9 @@ + ${R_CRT_XT} + ${RELOCATING+___crt_xt_end__ = . ;} + } ++EOF ++fi ++cat << EOF + + /* Windows TLS expects .tls\$AAA to be at the start and .tls\$ZZZ to be + at the end of section. This is important because _tls_start MUST +diff -ru --new-file a/binutils/winduni.c b/binutils/winduni.c +--- a/binutils/winduni.c 2014-07-03 01:37:23.000000000 -0400 ++++ b/binutils/winduni.c 2015-02-14 11:18:32.987163288 -0500 +@@ -57,7 +57,7 @@ + /* Codepages mapped. */ + static local_iconv_map codepages[] = + { +- { 0, "MS-ANSI" }, ++ { 0, "cp1252" }, + { 1, "WINDOWS-1252" }, + { 437, "MS-ANSI" }, + { 737, "MS-GREEK" }, +diff -ru a/ld/pe-dll.c b/ld/pe-dll.c +--- a/ld/pe-dll.c 2014-07-03 01:37:48.000000000 -0400 ++++ b/ld/pe-dll.c 2015-06-13 20:08:00.160401506 -0400 +@@ -40,6 +40,7 @@ + #include "coff/internal.h" + #include "../bfd/libcoff.h" + #include "deffile.h" ++#include "peimplib.h" + + #ifdef pe_use_x86_64 + +@@ -234,7 +235,11 @@ + { STRING_COMMA_LEN ("impure_ptr") }, + { STRING_COMMA_LEN ("_impure_ptr") }, + { STRING_COMMA_LEN ("_fmode") }, ++ #ifdef PE_TARGET_MIDIPIX ++ /* (default) excluded symbols are defined by the caller (specs, etc.) */ ++ #else + { STRING_COMMA_LEN ("environ") }, ++ #endif + { NULL, 0 } + }; + +@@ -644,10 +649,13 @@ + { + int i, j; + struct bfd_link_hash_entry *blhe; ++ struct bfd_link_hash_entry *blhew; + bfd *b; + struct bfd_section *s; + def_file_export *e = 0; + bfd_boolean resort_needed; ++ char *weaksym; ++ char *objsym; + + if (!pe_def_file) + pe_def_file = def_file_empty (); +@@ -737,6 +745,16 @@ + if (is_import (sn)) + continue; + ++ if (!strncmp (sn, ".weak.", 6) && strchr (sn + 6, '.')) ++ { ++ objsym = strdup (sn); ++ weaksym = strdup (sn + 6); ++ *(strchr (weaksym, '.')) = '\0'; ++ sn = weaksym; ++ } ++ else ++ weaksym = 0; ++ + name = xmalloc (strlen ("__imp_") + strlen (sn) + 1); + sprintf (name, "%s%s", "__imp_", sn); + +@@ -745,7 +763,8 @@ + free (name); + + if (blhe && blhe->type == bfd_link_hash_defined) +- continue; ++ if (strncmp (blhe->u.def.section->name, ".got$", 5)) ++ continue; + } + + if (pe_details->underscored && *sn == '_') +@@ -761,7 +780,20 @@ + /* Fill data flag properly, from dlltool.c. */ + if (!is_dup) + p->flag_data = !(symbols[j]->flags & BSF_FUNCTION); ++ ++ if (weaksym) ++ { ++ blhew = bfd_link_hash_lookup (info->hash, weaksym, ++ FALSE, FALSE, FALSE); ++ if (blhew->type != bfd_link_hash_defined) ++ { ++ free (p->internal_name); ++ p->internal_name = objsym; ++ } ++ } + } ++ if (weaksym) ++ free (weaksym); + } + } + } +@@ -910,6 +942,7 @@ + + if (blhe + && (blhe->type == bfd_link_hash_defined ++ || (blhe->type == bfd_link_hash_defweak) + || (blhe->type == bfd_link_hash_common))) + { + count_exported++; +@@ -919,7 +952,7 @@ + /* Only fill in the sections. The actual offsets are computed + in fill_exported_offsets() after common symbols are laid + out. */ +- if (blhe->type == bfd_link_hash_defined) ++ if ((blhe->type == bfd_link_hash_defined) || (blhe->type == bfd_link_hash_defweak)) + exported_symbol_sections[i] = blhe->u.def.section; + else + exported_symbol_sections[i] = blhe->u.c.p->section; +diff -ru --new-file a/bfd/config.bfd b/bfd/config.bfd +--- a/bfd/config.bfd 2014-07-03 01:37:20.000000000 -0400 ++++ b/bfd/config.bfd 2015-02-14 11:27:08.199179775 -0500 +@@ -679,7 +679,7 @@ + targ_archs="$targ_archs bfd_arm_arch" + want64=true + ;; +- x86_64-*-mingw* | x86_64-*-pe | x86_64-*-pep | x86_64-*-cygwin) ++ x86_64-*-mingw* | x86_64-*-pe | x86_64-*-pep | x86_64-*-cygwin | x86_64-*-midipix*) + targ_defvec=x86_64_pe_vec + targ_selvecs="x86_64_pe_vec x86_64_pei_vec x86_64_pe_be_vec x86_64_elf64_vec l1om_elf64_vec k1om_elf64_vec i386_pe_vec i386_pei_vec i386_elf32_vec" + want64=true +@@ -731,7 +731,7 @@ + targ_defvec=i386_elf32_vec + targ_selvecs=i386_coff_vec + ;; +- i[3-7]86-*-mingw32* | i[3-7]86-*-cygwin* | i[3-7]86-*-winnt | i[3-7]86-*-pe) ++ i[3-7]86-*-mingw32* | i[3-7]86-*-cygwin* | i[3-7]86-*-winnt | i[3-7]86-*-pe | i[3-7]86-*-midipix*) + targ_defvec=i386_pe_vec + targ_selvecs="i386_pe_vec i386_pei_vec i386_elf32_vec" + targ_underscore=yes +diff -ru --new-file a/binutils/configure b/binutils/configure +--- a/binutils/configure 2014-07-03 01:37:22.000000000 -0400 ++++ b/binutils/configure 2015-09-13 21:35:09.738957435 -0400 +@@ -14015,7 +14015,7 @@ + BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)' + BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)' + ;; +- x86_64-*-mingw* | x86_64-*-cygwin*) ++ x86_64-*-mingw* | x86_64-*-midipix* | x86_64-*-cygwin*) + BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' + if test -z "$DLLTOOL_DEFAULT"; then + DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_MX86_64" +@@ -14025,7 +14025,7 @@ + BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)' + BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)' + ;; +- i[3-7]86-*-pe* | i[3-7]86-*-cygwin* | i[3-7]86-*-mingw32** | i[3-7]86-*-netbsdpe*) ++ i[3-7]86-*-pe* | i[3-7]86-*-cygwin* | i[3-7]86-*-midipix* | i[3-7]86-*-mingw32** | i[3-7]86-*-netbsdpe*) + BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' + if test -z "$DLLTOOL_DEFAULT"; then + DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_I386" +diff -ru --new-file a/configure b/configure +--- a/configure 2014-07-03 01:37:23.000000000 -0400 ++++ b/configure 2015-03-11 17:07:15.820422926 -0400 +@@ -3428,6 +3428,9 @@ + x86_64-*-mingw*) + noconfigdirs="$noconfigdirs ${libgcj}" + ;; ++ *-midipix*) ++ noconfigdirs="$noconfigdirs ${libgcj}" ++ ;; + mmix-*-*) + noconfigdirs="$noconfigdirs target-libffi target-boehm-gc" + ;; +@@ -3549,6 +3552,9 @@ + *-*-mingw*) + noconfigdirs="$noconfigdirs target-newlib target-libgloss" + ;; ++ *-*-midipix*) ++ noconfigdirs="$noconfigdirs target-newlib target-libgloss" ++ ;; + *-*-netbsd*) + noconfigdirs="$noconfigdirs target-newlib target-libgloss" + ;; +@@ -6257,7 +6263,7 @@ + + target_elf=no + case $target in +- *-darwin* | *-aix* | *-cygwin* | *-mingw* | *-aout* | *-*coff* | \ ++ *-darwin* | *-aix* | *-cygwin* | *-mingw* | *-midipix* | *-aout* | *-*coff* | \ + *-msdosdjgpp* | *-vms* | *-wince* | *-*-pe* | \ + alpha*-dec-osf* | *-interix* | hppa[12]*-*-hpux*) + target_elf=no +diff -ru --new-file a/gas/configure.tgt b/gas/configure.tgt +--- a/gas/configure.tgt 2014-07-03 01:37:25.000000000 -0400 ++++ b/gas/configure.tgt 2015-02-14 11:27:08.223179776 -0500 +@@ -262,7 +262,7 @@ + i*) fmt=coff em=pe ;; + esac ;; + i386-*-interix*) fmt=coff em=interix ;; +- i386-*-mingw*) ++ i386-*-mingw* | i386-*-midipix*) + case ${cpu} in + x86_64*) fmt=coff em=pep ;; + i*) fmt=coff em=pe ;; +diff -ru a/bfd/cofflink.c b/bfd/cofflink.c +--- a/bfd/cofflink.c 2014-07-03 01:37:20.000000000 -0400 ++++ b/bfd/cofflink.c 2015-06-13 20:22:46.000389638 -0400 +@@ -202,6 +202,7 @@ + bfd_size_type symesz; + bfd_byte *esym; + bfd_byte *esym_end; ++ char *weaksym; + + *pneeded = FALSE; + +@@ -236,6 +237,16 @@ + && CONST_STRNEQ (name, "__imp_")) + h = bfd_link_hash_lookup (info->hash, name + 6, FALSE, FALSE, TRUE); + ++ if (!h && !strncmp (name, ".weak.", 6) && strchr (name + 6, '.')) ++ { ++ weaksym = strdup (name + 6); ++ *(strchr (weaksym, '.')) = '\0'; ++ h = bfd_link_hash_lookup (info->hash, weaksym, FALSE, FALSE, TRUE); ++ name = weaksym; ++ } ++ else ++ weaksym = 0; ++ + /* We are only interested in symbols that are currently + undefined. If a symbol is currently known to be common, + COFF linkers do not bring in an object file which defines +@@ -249,6 +260,9 @@ + *pneeded = TRUE; + return TRUE; + } ++ ++ if (weaksym) ++ free (weaksym); + } + + esym += (sym.n_numaux + 1) * symesz; +@@ -320,6 +334,7 @@ + bfd_byte *esym; + bfd_byte *esym_end; + bfd_size_type amt; ++ char *weaksym; + + symcount = obj_raw_syment_count (abfd); + +@@ -476,6 +491,20 @@ + addit = FALSE; + } + ++ if (!strncmp (name, ".weak.", 6) && strchr (name + 6, '.')) ++ { ++ if (! (bfd_coff_link_add_one_symbol ++ (info, abfd, name, flags, section, value, ++ (const char *) NULL, copy, FALSE, ++ (struct bfd_link_hash_entry **) sym_hash))) ++ goto error_return; ++ ++ weaksym = strdup (name + 6); ++ *(strchr(weaksym, '.')) = 0; ++ name = weaksym; ++ flags |= BSF_WEAK; ++ } ++ + if (addit) + { + if (! (bfd_coff_link_add_one_symbol +diff -ru a/bfd/linker.c b/bfd/linker.c +--- a/bfd/linker.c 2014-07-03 01:37:21.000000000 -0400 ++++ b/bfd/linker.c 2015-06-06 17:51:24.148275212 -0400 +@@ -1050,6 +1050,7 @@ + struct archive_hash_table arsym_hash; + unsigned int indx; + struct bfd_link_hash_entry **pundef; ++ char *weaksym; + + if (! bfd_has_map (abfd)) + { +@@ -1073,6 +1074,13 @@ + struct archive_hash_entry *arh; + struct archive_list *l, **pp; + ++ if (!strncmp (arsym->name, ".weak.", 6) && strchr (arsym->name + 6, '.')) ++ { ++ weaksym = strdup (arsym->name + 6); ++ *(strchr (weaksym, '.')) = '\0'; ++ arsym->name = weaksym; ++ } ++ + arh = archive_hash_lookup (&arsym_hash, arsym->name, TRUE, FALSE); + if (arh == NULL) + goto error_return; +diff -ru a/gas/config/tc-i386.c b/gas/config/tc-i386.c +--- a/gas/config/tc-i386.c 2014-07-03 01:37:25.000000000 -0400 ++++ b/gas/config/tc-i386.c 2015-06-12 22:40:37.100250091 -0400 +@@ -9148,25 +9148,6 @@ + value += md_pcrel_from (fixP); + #endif + } +-#if defined (OBJ_COFF) && defined (TE_PE) +- if (fixP->fx_addsy != NULL +- && S_IS_WEAK (fixP->fx_addsy) +- /* PR 16858: Do not modify weak function references. */ +- && ! fixP->fx_pcrel) +- { +-#if !defined (TE_PEP) +- /* For x86 PE weak function symbols are neither PC-relative +- nor do they set S_IS_FUNCTION. So the only reliable way +- to detect them is to check the flags of their containing +- section. */ +- if (S_GET_SEGMENT (fixP->fx_addsy) != NULL +- && S_GET_SEGMENT (fixP->fx_addsy)->flags & SEC_CODE) +- ; +- else +-#endif +- value -= S_GET_VALUE (fixP->fx_addsy); +- } +-#endif + + /* Fix a few things - the dynamic linker expects certain values here, + and we must not disappoint it. */ +@@ -9237,8 +9218,11 @@ + fixP->fx_done = 0; + /* Remember value for tc_gen_reloc. */ + fixP->fx_addnumber = value; +- /* Clear out the frag for now. */ +- value = 0; ++ /* for data symbols, cancel the effect of the relocation */ ++ if (!((S_GET_SEGMENT (fixP->fx_addsy)->flags) & SEC_CODE)) ++ value = -S_GET_VALUE (fixP->fx_addsy); ++ else ++ value = 0; + } + #endif + else if (use_rela_relocations) + +--- a/binutils/rename.c 2014-07-03 01:37:22.000000000 -0400 ++++ b/binutils/rename.c 2015-11-25 23:13:38.086948592 -0500 +@@ -167,7 +167,10 @@ + && s.st_nlink == 1) + ) + { +- ret = rename (from, to); ++ if ((ret = rename (from, to))) ++ if (!(ret = simple_copy (from, to))) ++ unlink (from); ++ + if (ret == 0) + { + if (exists) +--- binutils-2.24.51/intl/libgnuintl.h.orig 2014-07-03 05:37:48.000000000 +0000 ++++ binutils-2.24.51/intl/libgnuintl.h 2016-05-30 19:56:21.701967351 +0000 +@@ -105,7 +105,7 @@ + #endif + /* Auxiliary macros. */ + #ifdef _INTL_REDIRECT_ASM +-# define _INTL_ASM(cname) __asm__ (_INTL_ASMNAME (__USER_LABEL_PREFIX__, #cname)) ++# define _INTL_ASM(cname) __asm__ (#cname) + # define _INTL_ASMNAME(prefix,cnamestring) _INTL_STRINGIFY (prefix) cnamestring + # define _INTL_STRINGIFY(prefix) #prefix + #else diff --git a/patches/coreutils-8.23.local.patch b/patches/coreutils-8.23.local.patch new file mode 100644 index 00000000..a98d3791 --- /dev/null +++ b/patches/coreutils-8.23.local.patch @@ -0,0 +1,59 @@ +diff -ru --new-file a/configure b/configure +--- a/configure 2014-07-18 18:07:39.000000000 -0400 ++++ b/configure 2015-06-01 12:42:55.874926255 -0400 +@@ -66789,3 +66791,11 @@ + $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} + fi + ++# bypass dependency on help2man ++if [ x"$cross_compiling" = xyes ]; then ++ mkdir -p man; ++ for f in $srcdir/src/*.c; do src=$(basename $f); doc="${src%.*}"; echo $doc; touch man/$doc.1; done ++ for f in dir sha1sum sha224sum sha256sum sha384sum sha512sum vdir; do touch man/$f.1; done ++ ++ sed -i -e 's/@cross_compiling@/'$cross_compiling'/g' Makefile || exit 2 ++fi +diff -ru --new-file a/Makefile.in b/Makefile.in +--- a/Makefile.in 2014-07-18 18:22:24.000000000 -0400 ++++ b/Makefile.in 2015-06-01 12:03:29.274957961 -0400 +@@ -4911,6 +4911,8 @@ + $(bin_SCRIPTS) \ + $(EXTRA_PROGRAMS) + ++CROSS_COMPILE = @cross_compiling@ ++ + pm = progs-makefile + pr = progs-readme + @CROSS_COMPILING_FALSE@cu_install_program = src/ginstall +@@ -14061,6 +14063,10 @@ + # Include the generated man dependencies. + @AMDEP_TRUE@@am__include@ man/dynamic-deps.mk + ++ifeq ($(CROSS_COMPILE),yes) ++.x.1: ++ ++else + .x.1: + $(AM_V_GEN)name=`echo $@ | sed 's|.*/||; s|\.1$$||'` || exit 1; \ + case $$name in \ +@@ -14086,6 +14092,8 @@ + && chmod a-w $@-t \ + && mv $@-t $@ + .PHONY: check-root ++endif ++ + check-root: + $(MAKE) check TESTS='$(root_tests)' SUBDIRS=. + +diff -ru --new-file a/src/fs.h b/src/fs.h +--- a/src/fs.h 2014-07-18 14:33:26.000000000 -0400 ++++ b/src/fs.h 2015-06-01 10:19:57.475041184 -0400 +@@ -2,7 +2,7 @@ + Please send additions to bug-coreutils@gnu.org and meskes@debian.org. + This file is generated automatically from ./src/stat.c. */ + +-#if defined __linux__ ++#if defined __linux__ || defined __midipix__ + # define S_MAGIC_ADFS 0xADF5 + # define S_MAGIC_AFFS 0xADFF + # define S_MAGIC_AFS 0x5346414F diff --git a/patches/curl-7.47.1.local.patch b/patches/curl-7.47.1.local.patch new file mode 100644 index 00000000..3a10aa92 --- /dev/null +++ b/patches/curl-7.47.1.local.patch @@ -0,0 +1,41 @@ +--- curl-7.47.1/configure.orig 2016-02-07 15:43:48.000000000 +0100 ++++ curl-7.47.1/configure 2016-03-08 11:33:24.125711200 +0100 +@@ -14297,6 +14297,18 @@ + dynamic_linker='GNU/Linux ld.so' + ;; + ++midipix*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec="\${libname}\${release}\${shared_ext}\$versuffix \${libname}\${release}\${shared_ext}\$major \$libname\${shared_ext}" ++ soname_spec="\${libname}\${release}\${shared_ext}\$major" ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ hardcode_into_libs=no ++ dynamic_linker='GNU/Linux ld.so' ++ ;; ++ + netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no +--- curl-7.47.1/lib/Makefile.in.orig 2016-02-07 14:43:49.000000000 +0000 ++++ curl-7.47.1/lib/Makefile.in 2016-06-10 00:07:28.334457112 +0000 +@@ -243,7 +243,7 @@ + am__v_lt_1 = + libcurl_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libcurl_la_CFLAGS) \ +- $(CFLAGS) $(libcurl_la_LDFLAGS) $(LDFLAGS) -o $@ ++ $(CFLAGS) $(LDFLAGS) -o $@ + libcurlu_la_LIBADD = + am__objects_6 = libcurlu_la-file.lo libcurlu_la-timeval.lo \ + libcurlu_la-base64.lo libcurlu_la-hostip.lo \ +@@ -842,7 +842,7 @@ + vtls/$(DEPDIR)/$(am__dirstamp) + + libcurl.la: $(libcurl_la_OBJECTS) $(libcurl_la_DEPENDENCIES) $(EXTRA_libcurl_la_DEPENDENCIES) +- $(AM_V_CCLD)$(libcurl_la_LINK) -rpath $(libdir) $(libcurl_la_OBJECTS) $(libcurl_la_LIBADD) $(LIBS) ++ $(AM_V_CCLD)$(libcurl_la_LINK) -rpath $(libdir) $(libcurl_la_OBJECTS) $(libcurl_la_LIBADD) $(LIBS) $(libcurl_la_LDFLAGS) + vtls/libcurlu_la-openssl.lo: vtls/$(am__dirstamp) \ + vtls/$(DEPDIR)/$(am__dirstamp) + vtls/libcurlu_la-gtls.lo: vtls/$(am__dirstamp) \ diff --git a/patches/findutils-4.5.14.local.patch b/patches/findutils-4.5.14.local.patch new file mode 100644 index 00000000..a28d9dc2 --- /dev/null +++ b/patches/findutils-4.5.14.local.patch @@ -0,0 +1,27 @@ +diff -ru --new-file a/configure b/configure +--- a/configure 2014-07-19 06:24:44.000000000 -0400 ++++ b/configure 2015-05-31 23:05:19.895583486 -0400 +@@ -54948,3 +54950,23 @@ + $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} + fi + ++ ++cat >> config.h << EOF ++ ++#define HAVE_ENDPWENT 1 ++ ++#undef fchownat ++#undef fchdir ++#undef fseeko ++#undef fstatat ++#undef getcwd ++#undef gmtime ++#undef localtime ++#undef lstat ++#undef malloc ++#undef memcmp ++#undef mktime ++#undef realloc ++#undef strnlen ++ ++EOF diff --git a/patches/glib-2.46.2.local.patch b/patches/glib-2.46.2.local.patch new file mode 100644 index 00000000..8153cb8a --- /dev/null +++ b/patches/glib-2.46.2.local.patch @@ -0,0 +1,170 @@ +--- glib-2.46.2/configure.orig 2015-11-06 22:28:54.000000000 +0000 ++++ glib-2.46.2/configure 2016-03-06 18:55:06.490493143 +0000 +@@ -21737,33 +21737,7 @@ + if ${glib_cv_stack_grows+:} false; then : + $as_echo_n "(cached) " >&6 + else +- +- if test "$cross_compiling" = yes; then : +- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +-as_fn_error $? "cannot run test program while cross compiling +-See \`config.log' for more details" "$LINENO" 5; } +-else +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +- +- volatile int *a = 0, *b = 0; +- void f (int i) { volatile int x = 5; if (i == 0) b = &x; else f (i - 1); } +- int main () { volatile int y = 7; a = &y; f (100); return b > a ? 0 : 1; } +- +-_ACEOF +-if ac_fn_c_try_run "$LINENO"; then : + glib_cv_stack_grows=yes +- +-else +- glib_cv_stack_grows=no +- +-fi +-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ +- conftest.$ac_objext conftest.beam conftest.$ac_ext +-fi +- +- + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glib_cv_stack_grows" >&5 + $as_echo "$glib_cv_stack_grows" >&6; } +@@ -25142,37 +25116,7 @@ + if ${glib_cv_uscore+:} false; then : + $as_echo_n "(cached) " >&6 + else +- +- if test "$cross_compiling" = yes; then : +- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +-as_fn_error $? "cannot run test program while cross compiling +-See \`config.log' for more details" "$LINENO" 5; } +-else +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +-#include +- int glib_underscore_test (void) { return 42; } +- int main() { +- void *f1 = (void*)0, *f2 = (void*)0, *handle; +- handle = dlopen ((void*)0, 0); +- if (handle) { +- f1 = dlsym (handle, "glib_underscore_test"); +- f2 = dlsym (handle, "_glib_underscore_test"); +- } return (!f2 || f1); +- } +-_ACEOF +-if ac_fn_c_try_run "$LINENO"; then : + glib_cv_uscore=yes +-else +- glib_cv_uscore=no +-fi +-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ +- conftest.$ac_objext conftest.beam conftest.$ac_ext +-fi +- +- rm -f plugin.c plugin.$ac_objext plugin.lo +- + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glib_cv_uscore" >&5 + $as_echo "$glib_cv_uscore" >&6; } +@@ -26503,37 +26447,7 @@ + if ${ac_cv_func_posix_getpwuid_r+:} false; then : + $as_echo_n "(cached) " >&6 + else +- if test "$cross_compiling" = yes; then : +- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +-as_fn_error $? "cannot run test program while cross compiling +-See \`config.log' for more details" "$LINENO" 5; } +-else +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +- +-#include +-#include +-int main () { +- char buffer[10000]; +- struct passwd pwd, *pwptr = &pwd; +- int error; +- errno = 0; +- error = getpwuid_r (0, &pwd, buffer, +- sizeof (buffer), &pwptr); +- return (error < 0 && errno == ENOSYS) +- || error == ENOSYS; +-} +-_ACEOF +-if ac_fn_c_try_run "$LINENO"; then : + ac_cv_func_posix_getpwuid_r=yes +-else +- ac_cv_func_posix_getpwuid_r=no +-fi +-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ +- conftest.$ac_objext conftest.beam conftest.$ac_ext +-fi +- + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_posix_getpwuid_r" >&5 + $as_echo "$ac_cv_func_posix_getpwuid_r" >&6; } +@@ -26594,37 +26508,7 @@ + if ${ac_cv_func_posix_getgrgid_r+:} false; then : + $as_echo_n "(cached) " >&6 + else +- if test "$cross_compiling" = yes; then : +- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +-as_fn_error $? "cannot run test program while cross compiling +-See \`config.log' for more details" "$LINENO" 5; } +-else +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +- +-#include +-#include +-int main () { +- char buffer[10000]; +- struct group grp, *grpptr = &grp; +- int error; +- errno = 0; +- error = getgrgid_r (0, &grp, buffer, +- sizeof (buffer), &grpptr); +- return (error < 0 && errno == ENOSYS) +- || error == ENOSYS; +-} +-_ACEOF +-if ac_fn_c_try_run "$LINENO"; then : + ac_cv_func_posix_getgrgid_r=yes +-else +- ac_cv_func_posix_getgrgid_r=no +-fi +-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ +- conftest.$ac_objext conftest.beam conftest.$ac_ext +-fi +- + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_posix_getgrgid_r" >&5 + $as_echo "$ac_cv_func_posix_getgrgid_r" >&6; } +@@ -27053,7 +26937,7 @@ + } + _ACEOF + if ac_fn_c_try_compile "$LINENO"; then : +- glib_cv_eventfd=yes ++ glib_cv_eventfd=no + else + glib_cv_eventfd=no + fi +--- glib-2.46.2/gio/inotify/Makefile.in.orig 2015-11-06 23:28:59.000000000 +0100 ++++ glib-2.46.2/gio/inotify/Makefile.in 2016-09-07 05:20:16.670049836 +0200 +@@ -180,7 +180,7 @@ + "$(DESTDIR)$(installed_test_metadir)" \ + "$(DESTDIR)$(installed_testdir)" + LTLIBRARIES = $(installed_test_LTLIBRARIES) $(noinst_LTLIBRARIES) +-libinotify_la_LIBADD = ++libinotify_la_LIBADD = -L../../glib -lglib-2.0 + am__objects_1 = + am_libinotify_la_OBJECTS = libinotify_la-inotify-kernel.lo \ + libinotify_la-inotify-sub.lo libinotify_la-inotify-path.lo \ diff --git a/patches/gmp-5.1.3.local.patch b/patches/gmp-5.1.3.local.patch new file mode 100644 index 00000000..ecee6b99 --- /dev/null +++ b/patches/gmp-5.1.3.local.patch @@ -0,0 +1,22 @@ +diff -ru a/configfsf.sub b/configfsf.sub +--- a/configfsf.sub 2013-09-30 06:18:28.000000000 -0400 ++++ b/configfsf.sub 2015-05-28 00:18:19.772345286 -0400 +@@ -794,6 +794,9 @@ + microblaze*) + basic_machine=microblaze-xilinx + ;; ++ midipix) ++ os=-midipix ++ ;; + mingw64) + basic_machine=x86_64-pc + os=-mingw64 +@@ -1370,7 +1373,7 @@ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* | -cegcc* \ + | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ +- | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ ++ | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ + | -linux-newlib* | -linux-musl* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ diff --git a/patches/gnupg-2.1.15.local.patch b/patches/gnupg-2.1.15.local.patch new file mode 100644 index 00000000..b0bf6ca3 --- /dev/null +++ b/patches/gnupg-2.1.15.local.patch @@ -0,0 +1,105 @@ +diff -ru gnupg-2.1.15.orig/tests/inittests gnupg-2.1.15/tests/inittests +--- gnupg-2.1.15.orig/tests/inittests 2016-02-02 07:05:16.000000000 +0100 ++++ gnupg-2.1.15/tests/inittests 2016-10-19 18:09:36.112010000 +0200 +@@ -1,99 +1,3 @@ + #!/bin/sh +-# Copyright (C) 2002 Free Software Foundation, Inc. +-# +-# This file is free software; as a special exception the author gives +-# unlimited permission to copy and/or distribute it, with or without +-# modifications, as long as this notice is preserved. +-# +-# This file is distributed in the hope that it will be useful, but +-# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the +-# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +- +-set -e +- +-sample_certs=' +-cert_g10code_test1.pem +-cert_g10code_pete1.pem +-cert_g10code_theo1.pem +-' +- +-private_keys=' +-32100C27173EF6E9C4E9A25D3D69F86D37A4F939 +-' +- +-clean_files=' +-gpgsm.conf gpg-agent.conf trustlist.txt pubring.kbx +-msg msg.sig msg.unsig +-' +- +- +-[ -z "$srcdir" ] && srcdir=. +-[ -z "$GPGSM" ] && GPGSM=../sm/gpgsm +- +-if [ -d $srcdir/samplekeys ] \ +- && grep TESTS_ENVIRONMENT Makefile >/dev/null 2>&1; then +- : +-else +- # During make distclean the Makefile has already been removed, +- # so we need this extra test. +- if ! grep gnupg-test-directory testdir.stamp >/dev/null 2>&1; then +- echo "inittests: please cd to the tests directory first" >&2 +- exit 1 +- fi +-fi +- +-if [ "$1" = "--clean" ]; then +- if [ -d private-keys-v1.d ]; then +- rm private-keys-v1.d/* 2>/dev/null || true +- rmdir private-keys-v1.d +- fi +- rm ${clean_files} testdir.stamp 2>/dev/null || true +- exit 0 +-fi +- +-if [ "$GNUPGHOME" != "`/bin/pwd`" ]; then +- echo "inittests: please set GNUPGHOME to the test directory" >&2 +- exit 1 +-fi +- +-if [ -n "$GPG_AGENT_INFO" ]; then +- echo "inittests: please unset GPG_AGENT_INFO" >&2 +- exit 1 +-fi +- +-# A stamp file used with --clean +-echo gnupg-test-directory > testdir.stamp +- +- +-# Create the private key directy if it does not exists and copy +-# the sample keys. +-[ -d private-keys-v1.d ] || mkdir private-keys-v1.d +-for i in ${private_keys}; do +- cat ${srcdir}/samplekeys/$i.key >private-keys-v1.d/$i.key +-done +- +-# Create the configuration scripts +-# Note, die to an expired test certificate, we need to use +-# the faked system time option. +-cat > gpgsm.conf < gpg-agent.conf < trustlist.txt < /dev/null) ++ htop_config_script=$("${PKG_PREFIX}/bin/ncursesw6-config" --libs 2> /dev/null) + htop_script_success=no + htop_save_LDFLAGS="$LDFLAGS" + if test ! "x$htop_config_script" = x; then diff --git a/patches/irssi-0.8.18.local.patch b/patches/irssi-0.8.18.local.patch new file mode 100644 index 00000000..8c72336e --- /dev/null +++ b/patches/irssi-0.8.18.local.patch @@ -0,0 +1,103 @@ +--- irssi-0.8.18/src/core/servers.c.orig 2016-01-20 22:08:07.000000000 +0000 ++++ irssi-0.8.18/src/core/servers.c 2016-06-13 11:28:49.187797037 +0000 +@@ -407,6 +407,36 @@ + /* connect with unix socket */ + server_real_connect(server, NULL, server->connrec->address); + } else { ++ #ifdef __midipix__ ++ IPADDR ip4, ip6, *ip; ++ ++ connect_address = server->connrec->proxy != NULL ? ++ server->connrec->proxy : server->connrec->address; ++ if (net_gethostbyname(connect_address, &ip4, &ip6) == -1) { ++ g_warning("net_gethostbyname(): -1"); ++ g_free(server->tag); ++ g_free(server->nick); ++ return FALSE; ++ } else if (server->connrec->family == 0) { ++ /* prefer IPv4 addresses */ ++ ip = ip4.family != 0 ? &ip4 : &ip6; ++ } else if (server->connrec->family == AF_INET6) { ++ /* IPv6 address, use if possible */ ++ if (ip6.family != 0) { ++ ip = &ip6; ++ } else { ++ ip = &ip4; ++ } ++ } else { ++ /* IPv4 address, use if possible */ ++ if (ip4.family != 0) { ++ ip = &ip4; ++ } else { ++ ip = &ip6; ++ } ++ } ++ server_real_connect(server, ip, NULL); ++ #else + /* resolve host name */ + if (pipe(fd) != 0) { + g_warning("server_connect(): pipe() failed."); +@@ -433,6 +463,7 @@ + lookup_servers = g_slist_append(lookup_servers, server); + + signal_emit("server looking", 1, server); ++ #endif + } + return TRUE; + } +--- irssi-0.8.18/src/core/network.c.orig 2016-02-08 21:20:37.000000000 +0100 ++++ irssi-0.8.18/src/core/network.c 2016-06-17 16:34:16.870746400 +0200 +@@ -572,9 +572,13 @@ + int data; + socklen_t len = sizeof(data); + ++#ifndef __midipix__ + if (getsockopt(g_io_channel_unix_get_fd(handle), + SOL_SOCKET, SO_ERROR, (void *) &data, &len) == -1) + return -1; ++#else ++ data = 0; ++#endif + + return data; + } +--- irssi-0.8.18/src/core/pidwait.c.orig 2014-09-02 11:13:51.000000000 +0200 ++++ irssi-0.8.18/src/core/pidwait.c 2016-06-19 00:20:33.327763200 +0200 +@@ -39,8 +39,10 @@ + void pidwait_add(int pid) + { + if (g_hash_table_lookup(child_pids, GINT_TO_POINTER(pid)) == NULL) { ++#ifndef __midipix__ + int id = g_child_watch_add_full(10, pid, sig_child, NULL, NULL); + g_hash_table_insert(child_pids, GINT_TO_POINTER(pid), GINT_TO_POINTER(id)); ++#endif + pids = g_slist_append(pids, GINT_TO_POINTER(pid)); + } + } +--- irssi-0.8.18/src/fe-common/core/fe-exec.c.orig 2016-01-20 23:08:07.000000000 +0100 ++++ irssi-0.8.18/src/fe-common/core/fe-exec.c 2016-06-19 01:22:40.792090300 +0200 +@@ -288,6 +288,9 @@ + } + } + ++#ifdef __midipix__ ++static void sig_pidwait(void *pid, void *statusp); ++#endif + static void process_exec(PROCESS_REC *rec, const char *cmd) + { + const char *shell_args[4] = { "/bin/sh", "-c", NULL, NULL }; +@@ -535,6 +538,14 @@ + (GInputFunction) sig_exec_input_reader, + rec); + processes = g_slist_append(processes, rec); ++#ifdef __midipix__ ++ int status; ++ waitpid(rec->pid, &status, 0); ++ while (rec->read_tag != -1) { ++ sig_exec_input_reader(rec); ++ } ++ sig_pidwait((void *)rec->pid, &status); ++#endif + + if (rec->target == NULL && interactive) + rec->target_item = exec_wi_create(active_win, rec); diff --git a/patches/john-1.8.0.local.patch b/patches/john-1.8.0.local.patch new file mode 100644 index 00000000..21999942 --- /dev/null +++ b/patches/john-1.8.0.local.patch @@ -0,0 +1,155 @@ +diff -ru a/src/DES_bs.c b/src/DES_bs.c +--- a/src/DES_bs.c 2012-07-14 09:36:44.000000000 -0400 ++++ b/src/DES_bs.c 2016-08-07 15:08:48.011369100 -0400 +@@ -52,7 +52,7 @@ + }; + + #if DES_BS_ASM +-extern void DES_bs_init_asm(void); ++extern void DES_INTERNAL_CALL DES_bs_init_asm(void); + #endif + + void DES_bs_init(int LM, int cpt) +diff -ru a/src/DES_bs.h b/src/DES_bs.h +--- a/src/DES_bs.h 2013-05-06 02:19:49.000000000 -0400 ++++ b/src/DES_bs.h 2016-08-07 15:09:17.512056400 -0400 +@@ -35,6 +35,16 @@ + #define DES_bs_vector ARCH_WORD + #endif + ++#ifndef HAVE_INTERNAL_ATTR ++#define HAVE_INTERNAL_ATTR 0 ++#endif ++ ++#if HAVE_INTERNAL_ATTR ++#define DES_INTERNAL_CALL __attribute__((visibility("internal"))) ++#else ++#define DES_INTERNAL_CALL ++#endif ++ + /* + * All bitslice DES parameters combined into one struct for more efficient + * cache usage. Don't re-order unless you know what you're doing, as there +@@ -112,7 +122,7 @@ + #else + #define DES_bs_mt 0 + #define DES_bs_cpt 1 +-extern DES_bs_combined DES_bs_all; ++extern DES_INTERNAL_CALL DES_bs_combined DES_bs_all; + #define for_each_t(n) + #define init_t() + #endif +@@ -120,7 +130,7 @@ + /* + * Initializes the internal structures. + */ +-extern void DES_bs_init(int LM, int cpt); ++extern void DES_INTERNAL_CALL DES_bs_init(int LM, int cpt); + + /* + * Sets a salt for DES_bs_crypt(). +@@ -139,12 +149,12 @@ + /* + * Almost generic implementation: 24-bit salts, variable iteration count. + */ +-extern void DES_bs_crypt(int count, int keys_count); ++extern void DES_INTERNAL_CALL DES_bs_crypt(int count, int keys_count); + + /* + * A simplified special-case implementation: 12-bit salts, 25 iterations. + */ +-extern void DES_bs_crypt_25(int keys_count); ++extern void DES_INTERNAL_CALL DES_bs_crypt_25(int keys_count); + + /* + * Another special-case version: a non-zero IV, no salts, no iterations. +--- john-1.8.0/src/Makefile.orig 2013-05-29 23:21:25.000000000 +0000 ++++ john-1.8.0/src/Makefile 2016-09-11 21:19:18.930129331 +0000 +@@ -32,7 +32,7 @@ + # CFLAGS for use on the main john.c file only + CFLAGS_MAIN = $(CFLAGS) + ASFLAGS = -c $(OMPFLAGS) +-LDFLAGS = -s $(OMPFLAGS) ++LDFLAGS = $(LDFLAGS_DEBUG) $(OMPFLAGS) + OPT_NORMAL = -funroll-loops + # Remove the "-Os" if you're using an ancient version of gcc + OPT_INLINE = -Os -funroll-loops -finline-functions +@@ -104,6 +104,13 @@ + # @echo "linux-ppc64-altivec Linux, PowerPC 64-bit w/AltiVec" + @echo "linux-ppc64 Linux, PowerPC 64-bit" + @echo "linux-ia64 Linux, IA-64" ++ @echo "midipix-x86-64-avx Midipix, x86-64 with AVX (2011+ Intel CPUs)" ++ @echo "midipix-x86-64 Midipix, x86-64 with SSE2 (most common)" ++ @echo "midipix-x86-avx Midipix, x86 32-bit with AVX (2011+ Intel CPUs)" ++ @echo "midipix-x86-xop Midipix, x86 32-bit with AVX and XOP (2011+ AMD CPUs)" ++ @echo "midipix-x86-sse2 Midipix, x86 32-bit with SSE2 (most common, if 32-bit)" ++ @echo "midipix-x86-mmx Midipix, x86 32-bit with MMX (for old computers)" ++ @echo "midipix-x86-any Midipix, x86 32-bit (for truly ancient computers)" + @echo "freebsd-x86-64 FreeBSD, x86-64 with SSE2 (best)" + @echo "freebsd-x86-sse2 FreeBSD, x86 with SSE2 (best if 32-bit)" + @echo "freebsd-x86-mmx FreeBSD, x86 with MMX" +@@ -306,6 +313,64 @@ + CFLAGS="$(CFLAGS) -DHAVE_CRYPT" \ + LDFLAGS="$(LDFLAGS) -lcrypt" + ++midipix-x86-64-avx: ++ $(LN) x86-64.h arch.h ++ $(MAKE) $(PROJ) \ ++ JOHN_OBJS="$(JOHN_OBJS) c3_fmt.o x86-64.o" \ ++ CFLAGS_MAIN="$(CFLAGS) -DJOHN_AVX -DHAVE_CRYPT" \ ++ CFLAGS="$(CFLAGS) -mavx -DHAVE_CRYPT -DHAVE_INTERNAL_ATTR" \ ++ ASFLAGS="$(ASFLAGS) -mavx" \ ++ LDFLAGS="$(LDFLAGS) -lcrypt" ++ ++midipix-x86-64: ++ $(LN) x86-64.h arch.h ++ $(MAKE) $(PROJ) \ ++ JOHN_OBJS="$(JOHN_OBJS) c3_fmt.o x86-64.o" \ ++ CFLAGS="$(CFLAGS) -DHAVE_CRYPT -DHAVE_INTERNAL_ATTR" \ ++ LDFLAGS="$(LDFLAGS) -lcrypt" ++ ++midipix-x86-avx: ++ $(LN) x86-sse.h arch.h ++ $(MAKE) $(PROJ) \ ++ JOHN_OBJS="$(JOHN_OBJS) c3_fmt.o x86.o" \ ++ CFLAGS_MAIN="$(CFLAGS) -m32 -DJOHN_AVX -DHAVE_CRYPT -DHAVE_INTERNAL_ATTR -DUNDERSCORES" \ ++ CFLAGS="$(CFLAGS) -m32 -mavx -DHAVE_CRYPT -DHAVE_INTERNAL_ATTR -DUNDERSCORES" \ ++ ASFLAGS="$(ASFLAGS) -m32 -mavx -DUNDERSCORES" \ ++ LDFLAGS="$(LDFLAGS) -m32 -lcrypt" ++ ++midipix-x86-xop: ++ $(LN) x86-sse.h arch.h ++ $(MAKE) $(PROJ) \ ++ JOHN_OBJS="$(JOHN_OBJS) c3_fmt.o x86.o" \ ++ CFLAGS_MAIN="$(CFLAGS) -m32 -DJOHN_XOP -DHAVE_CRYPT -DHAVE_INTERNAL_ATTR -DUNDERSCORES" \ ++ CFLAGS="$(CFLAGS) -m32 -mxop -DHAVE_CRYPT -DHAVE_INTERNAL_ATTR -DUNDERSCORES" \ ++ ASFLAGS="$(ASFLAGS) -m32 -mxop -DUNDERSCORES" \ ++ LDFLAGS="$(LDFLAGS) -m32 -lcrypt" ++ ++midipix-x86-sse2: ++ $(LN) x86-sse.h arch.h ++ $(MAKE) $(PROJ) \ ++ JOHN_OBJS="$(JOHN_OBJS) c3_fmt.o x86.o x86-sse.o" \ ++ CFLAGS="$(CFLAGS) -DHAVE_CRYPT -DHAVE_INTERNAL_ATTR -DUNDERSCORES" \ ++ ASFLAGS="$(ASFLAGS) -m32 -DUNDERSCORES" \ ++ LDFLAGS="$(LDFLAGS) -lcrypt" ++ ++midipix-x86-mmx: ++ $(LN) x86-mmx.h arch.h ++ $(MAKE) $(PROJ) \ ++ JOHN_OBJS="$(JOHN_OBJS) c3_fmt.o x86.o x86-mmx.o" \ ++ CFLAGS="$(CFLAGS) -DHAVE_CRYPT -DHAVE_INTERNAL_ATTR -DUNDERSCORES" \ ++ ASFLAGS="$(ASFLAGS) -m32 -DUNDERSCORES" \ ++ LDFLAGS="$(LDFLAGS) -lcrypt" ++ ++midipix-x86-any: ++ $(LN) x86-any.h arch.h ++ $(MAKE) $(PROJ) \ ++ JOHN_OBJS="$(JOHN_OBJS) c3_fmt.o x86.o" \ ++ CFLAGS="$(CFLAGS) -DHAVE_CRYPT -DHAVE_INTERNAL_ATTR -DUNDERSCORES" \ ++ ASFLAGS="$(ASFLAGS) -m32 -DUNDERSCORES" \ ++ LDFLAGS="$(LDFLAGS) -lcrypt" ++ + freebsd-x86-64: + $(LN) x86-64.h arch.h + $(MAKE) $(PROJ) \ diff --git a/patches/libarchive-3.1.2.local.patch b/patches/libarchive-3.1.2.local.patch new file mode 100644 index 00000000..746a4b70 --- /dev/null +++ b/patches/libarchive-3.1.2.local.patch @@ -0,0 +1,139 @@ +--- libarchive-3.1.2/cpio/bsdcpio.1.orig ++++ libarchive-3.1.2/cpio/bsdcpio.1 +@@ -156,7 +156,8 @@ + .It Fl Fl insecure + (i and p mode only) + Disable security checks during extraction or copying. +-This allows extraction via symbolic links and path names containing ++This allows extraction via symbolic links, absolute paths, ++and path names containing + .Sq .. + in the name. + .It Fl J , Fl Fl xz +--- libarchive-3.1.2/cpio/cpio.c.orig ++++ libarchive-3.1.2/cpio/cpio.c +@@ -179,6 +179,7 @@ + cpio->extract_flags |= ARCHIVE_EXTRACT_NO_OVERWRITE_NEWER; + cpio->extract_flags |= ARCHIVE_EXTRACT_SECURE_SYMLINKS; + cpio->extract_flags |= ARCHIVE_EXTRACT_SECURE_NODOTDOT; ++ cpio->extract_flags |= ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS; + cpio->extract_flags |= ARCHIVE_EXTRACT_PERM; + cpio->extract_flags |= ARCHIVE_EXTRACT_FFLAGS; + cpio->extract_flags |= ARCHIVE_EXTRACT_ACL; +@@ -264,6 +265,7 @@ + case OPTION_INSECURE: + cpio->extract_flags &= ~ARCHIVE_EXTRACT_SECURE_SYMLINKS; + cpio->extract_flags &= ~ARCHIVE_EXTRACT_SECURE_NODOTDOT; ++ cpio->extract_flags &= ~ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS; + break; + case 'L': /* GNU cpio */ + cpio->option_follow_links = 1; +@@ -300,6 +302,7 @@ + "Cannot use both -p and -%c", cpio->mode); + cpio->mode = opt; + cpio->extract_flags &= ~ARCHIVE_EXTRACT_SECURE_NODOTDOT; ++ cpio->extract_flags &= ~ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS; + break; + case OPTION_PRESERVE_OWNER: + cpio->extract_flags |= ARCHIVE_EXTRACT_OWNER; +--- libarchive-3.1.2/libarchive/archive.h.orig ++++ libarchive-3.1.2/libarchive/archive.h +@@ -562,6 +562,8 @@ + /* Default: Do not use HFS+ compression if it was not compressed. */ + /* This has no effect except on Mac OS v10.6 or later. */ + #define ARCHIVE_EXTRACT_HFS_COMPRESSION_FORCED (0x8000) ++/* Default: Do not reject entries with absolute paths */ ++#define ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS (0x10000) + + __LA_DECL int archive_read_extract(struct archive *, struct archive_entry *, + int flags); +--- libarchive-3.1.2/libarchive/archive_write_disk.3.orig ++++ libarchive-3.1.2/libarchive/archive_write_disk.3 +@@ -177,6 +177,9 @@ + Note that paths ending in + .Pa .. + always cause an error, regardless of this flag. ++.It Cm ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS ++Refuse to extract an absolute path. ++The default is to not refuse such paths. + .It Cm ARCHIVE_EXTRACT_SPARSE + Scan data for blocks of NUL bytes and try to recreate them with holes. + This results in sparse files, independent of whether the archive format +--- libarchive-3.1.2/libarchive/archive_write_disk_posix.c.orig ++++ libarchive-3.1.2/libarchive/archive_write_disk_posix.c +@@ -2504,8 +2504,9 @@ + /* + * Canonicalize the pathname. In particular, this strips duplicate + * '/' characters, '.' elements, and trailing '/'. It also raises an +- * error for an empty path, a trailing '..' or (if _SECURE_NODOTDOT is +- * set) any '..' in the path. ++ * error for an empty path, a trailing '..', (if _SECURE_NODOTDOT is ++ * set) any '..' in the path or (if ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS ++ * is set) if the path is absolute. + */ + static int + cleanup_pathname(struct archive_write_disk *a) +@@ -2524,8 +2525,15 @@ + cleanup_pathname_win(a); + #endif + /* Skip leading '/'. */ +- if (*src == '/') ++ if (*src == '/') { ++ if (a->flags & ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS) { ++ archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, ++ "Path is absolute"); ++ return (ARCHIVE_FAILED); ++ } ++ + separator = *src++; ++ } + + /* Scan the pathname one element at a time. */ + for (;;) { +--- libarchive-3.1.2/libarchive/test/test_write_disk_secure.c.orig ++++ libarchive-3.1.2/libarchive/test/test_write_disk_secure.c +@@ -178,6 +178,29 @@ + assert(S_ISDIR(st.st_mode)); + archive_entry_free(ae); + ++ /* ++ * Without security checks, we should be able to ++ * extract an absolute path. ++ */ ++ assert((ae = archive_entry_new()) != NULL); ++ archive_entry_copy_pathname(ae, "/tmp/libarchive_test-test_write_disk_secure-absolute_path.tmp"); ++ archive_entry_set_mode(ae, S_IFREG | 0777); ++ assert(0 == archive_write_header(a, ae)); ++ assert(0 == archive_write_finish_entry(a)); ++ assertFileExists("/tmp/libarchive_test-test_write_disk_secure-absolute_path.tmp"); ++ assert(0 == unlink("/tmp/libarchive_test-test_write_disk_secure-absolute_path.tmp")); ++ ++ /* But with security checks enabled, this should fail. */ ++ assert(archive_entry_clear(ae) != NULL); ++ archive_entry_copy_pathname(ae, "/tmp/libarchive_test-test_write_disk_secure-absolute_path.tmp"); ++ archive_entry_set_mode(ae, S_IFREG | 0777); ++ archive_write_disk_set_options(a, ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS); ++ failure("Extracting an absolute path should fail here."); ++ assertEqualInt(ARCHIVE_FAILED, archive_write_header(a, ae)); ++ archive_entry_free(ae); ++ assert(0 == archive_write_finish_entry(a)); ++ assertFileNotExists("/tmp/libarchive_test-test_write_disk_secure-absolute_path.tmp"); ++ + assertEqualInt(ARCHIVE_OK, archive_write_free(a)); + + /* Test the entries on disk. */ +--- libarchive-3.1.2/libarchive/archive_write.c.orig 2016-06-03 13:15:42.862830537 +0000 ++++ libarchive-3.1.2/libarchive/archive_write.c 2016-06-03 13:19:01.590826126 +0000 +@@ -671,8 +671,12 @@ + _archive_write_data(struct archive *_a, const void *buff, size_t s) + { + struct archive_write *a = (struct archive_write *)_a; ++ const size_t max_write = INT_MAX; + archive_check_magic(&a->archive, ARCHIVE_WRITE_MAGIC, + ARCHIVE_STATE_DATA, "archive_write_data"); ++ /* In particular, this catches attempts to pass negative values. */ ++ if (s > max_write) ++ s = max_write; + archive_clear_error(&a->archive); + return ((a->format_write_data)(a, buff, s)); + } diff --git a/patches/libassuan-2.4.3.local.patch b/patches/libassuan-2.4.3.local.patch new file mode 100644 index 00000000..8e0265b0 --- /dev/null +++ b/patches/libassuan-2.4.3.local.patch @@ -0,0 +1,192 @@ +--- libassuan-2.4.3.orig/configure 2016-07-14 10:11:48.000000000 +0200 ++++ libassuan-2.4.3/configure 2016-10-18 22:20:05.511896688 +0200 +@@ -14171,187 +14171,8 @@ + + # Checking for libgpg-error. + +- gpg_error_config_prefix="" +- +-# Check whether --with-libgpg-error-prefix was given. +-if test "${with_libgpg_error_prefix+set}" = set; then : +- withval=$with_libgpg_error_prefix; gpg_error_config_prefix="$withval" +-fi +- +- +- +-# Check whether --with-gpg-error-prefix was given. +-if test "${with_gpg_error_prefix+set}" = set; then : +- withval=$with_gpg_error_prefix; gpg_error_config_prefix="$withval" +-fi +- +- +- if test x$gpg_error_config_prefix != x ; then +- if test x${GPG_ERROR_CONFIG+set} != xset ; then +- GPG_ERROR_CONFIG=$gpg_error_config_prefix/bin/gpg-error-config +- fi +- fi +- +- if test -n "$ac_tool_prefix"; then +- # Extract the first word of "${ac_tool_prefix}gpg-error-config", so it can be a program name with args. +-set dummy ${ac_tool_prefix}gpg-error-config; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if ${ac_cv_path_GPG_ERROR_CONFIG+:} false; then : +- $as_echo_n "(cached) " >&6 +-else +- case $GPG_ERROR_CONFIG in +- [\\/]* | ?:[\\/]*) +- ac_cv_path_GPG_ERROR_CONFIG="$GPG_ERROR_CONFIG" # Let the user override the test with a path. +- ;; +- *) +- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then +- ac_cv_path_GPG_ERROR_CONFIG="$as_dir/$ac_word$ac_exec_ext" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +- ;; +-esac +-fi +-GPG_ERROR_CONFIG=$ac_cv_path_GPG_ERROR_CONFIG +-if test -n "$GPG_ERROR_CONFIG"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GPG_ERROR_CONFIG" >&5 +-$as_echo "$GPG_ERROR_CONFIG" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- +-fi +-if test -z "$ac_cv_path_GPG_ERROR_CONFIG"; then +- ac_pt_GPG_ERROR_CONFIG=$GPG_ERROR_CONFIG +- # Extract the first word of "gpg-error-config", so it can be a program name with args. +-set dummy gpg-error-config; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if ${ac_cv_path_ac_pt_GPG_ERROR_CONFIG+:} false; then : +- $as_echo_n "(cached) " >&6 +-else +- case $ac_pt_GPG_ERROR_CONFIG in +- [\\/]* | ?:[\\/]*) +- ac_cv_path_ac_pt_GPG_ERROR_CONFIG="$ac_pt_GPG_ERROR_CONFIG" # Let the user override the test with a path. +- ;; +- *) +- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then +- ac_cv_path_ac_pt_GPG_ERROR_CONFIG="$as_dir/$ac_word$ac_exec_ext" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +- ;; +-esac +-fi +-ac_pt_GPG_ERROR_CONFIG=$ac_cv_path_ac_pt_GPG_ERROR_CONFIG +-if test -n "$ac_pt_GPG_ERROR_CONFIG"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_GPG_ERROR_CONFIG" >&5 +-$as_echo "$ac_pt_GPG_ERROR_CONFIG" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- if test "x$ac_pt_GPG_ERROR_CONFIG" = x; then +- GPG_ERROR_CONFIG="no" +- else +- case $cross_compiling:$ac_tool_warned in +-yes:) +-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +-ac_tool_warned=yes ;; +-esac +- GPG_ERROR_CONFIG=$ac_pt_GPG_ERROR_CONFIG +- fi +-else +- GPG_ERROR_CONFIG="$ac_cv_path_GPG_ERROR_CONFIG" +-fi +- +- min_gpg_error_version=1.17 +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GPG Error - version >= $min_gpg_error_version" >&5 +-$as_echo_n "checking for GPG Error - version >= $min_gpg_error_version... " >&6; } +- ok=no +- if test "$GPG_ERROR_CONFIG" != "no" \ +- && test -f "$GPG_ERROR_CONFIG" ; then +- req_major=`echo $min_gpg_error_version | \ +- sed 's/\([0-9]*\)\.\([0-9]*\)/\1/'` +- req_minor=`echo $min_gpg_error_version | \ +- sed 's/\([0-9]*\)\.\([0-9]*\)/\2/'` +- gpg_error_config_version=`$GPG_ERROR_CONFIG $gpg_error_config_args --version` +- major=`echo $gpg_error_config_version | \ +- sed 's/\([0-9]*\)\.\([0-9]*\).*/\1/'` +- minor=`echo $gpg_error_config_version | \ +- sed 's/\([0-9]*\)\.\([0-9]*\).*/\2/'` +- if test "$major" -gt "$req_major"; then +- ok=yes +- else +- if test "$major" -eq "$req_major"; then +- if test "$minor" -ge "$req_minor"; then +- ok=yes +- fi +- fi +- fi +- fi +- if test $ok = yes; then +- GPG_ERROR_CFLAGS=`$GPG_ERROR_CONFIG $gpg_error_config_args --cflags` +- GPG_ERROR_LIBS=`$GPG_ERROR_CONFIG $gpg_error_config_args --libs` +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes ($gpg_error_config_version)" >&5 +-$as_echo "yes ($gpg_error_config_version)" >&6; } +- : +- gpg_error_config_host=`$GPG_ERROR_CONFIG $gpg_error_config_args --host 2>/dev/null || echo none` +- if test x"$gpg_error_config_host" != xnone ; then +- if test x"$gpg_error_config_host" != x"$host" ; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: +-*** +-*** The config script $GPG_ERROR_CONFIG was +-*** built for $gpg_error_config_host and thus may not match the +-*** used host $host. +-*** You may want to use the configure option --with-gpg-error-prefix +-*** to specify a matching config script. +-***" >&5 +-$as_echo "$as_me: WARNING: +-*** +-*** The config script $GPG_ERROR_CONFIG was +-*** built for $gpg_error_config_host and thus may not match the +-*** used host $host. +-*** You may want to use the configure option --with-gpg-error-prefix +-*** to specify a matching config script. +-***" >&2;} +- fi +- fi +- else +- GPG_ERROR_CFLAGS="" +- GPG_ERROR_LIBS="" +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +- as_fn_error $? "libgpg-error was not found" "$LINENO" 5 +- fi +- +- +- ++#Overcomplicated useless checking for gpg-error, use CFLAGS and LDFLAGS! >:( ++ GPG_ERROR_LIBS="-lgpg-error" + + # + # Checks for library functions. diff --git a/patches/libelf-0.8.13.local.patch b/patches/libelf-0.8.13.local.patch new file mode 100644 index 00000000..73d60e90 --- /dev/null +++ b/patches/libelf-0.8.13.local.patch @@ -0,0 +1,39 @@ +diff -ru a/configure b/configure +--- a/configure 2008-05-23 04:18:03.000000000 -0400 ++++ b/configure 2015-03-10 20:32:16.332333640 -0400 +@@ -3445,6 +3445,16 @@ + LINK_SHLIB='$(LD) -G -z text -h $(SONAME)' + INSTALL_SHLIB='$(INSTALL_PROGRAM)' + ;; ++ *midipix*) ++ PICFLAGS='-fPIC -DPIC' ++ SHLIB_SFX='.so.$(VERSION)' ++ SHLINK_SFX='.so' ++ SONAME_SFX='.so.$(MAJOR)' ++ LINK_SHLIB='$(CC) -shared -Wl,-soname,$(SONAME) -mout-implib -moutput-def' ++ IMPLIB_NAME=libelf.`echo "so.$VERSION" | sed -E 's/[^\.]+$/lib.a/'` ++ INSTALL_SHLIB='cp $(IMPLIB_NAME) $(libdir)/libelf.lib.a; $(INSTALL_PROGRAM)' ++ DEPSHLIBS='' ++ ;; + *) + echo "configure: warning: shared libraries not supported for $host" 1>&2 + mr_enable_shared=no +@@ -3687,6 +3697,7 @@ + s%@INSTALL_SHLIB@%$INSTALL_SHLIB%g + s%@DEPSHLIBS@%$DEPSHLIBS%g + s%@DO_SHLIB@%$DO_SHLIB%g ++s%@IMPLIB_NAME@%$IMPLIB_NAME%g + + CEOF + EOF +diff -ru a/lib/Makefile.in b/lib/Makefile.in +--- a/lib/Makefile.in 2009-11-01 08:04:19.000000000 -0500 ++++ b/lib/Makefile.in 2015-03-09 00:13:06.842232837 -0400 +@@ -49,6 +49,7 @@ + SHLINK_SFX = @SHLINK_SFX@ + SONAME_SFX = @SONAME_SFX@ + LINK_SHLIB = @LINK_SHLIB@ ++IMPLIB_NAME = @IMPLIB_NAME@ + INSTALL_SHLIB = @INSTALL_SHLIB@ + + SHLIB = libelf$(SHLIB_SFX) diff --git a/patches/libevent-2.0.22-stable.local.patch b/patches/libevent-2.0.22-stable.local.patch new file mode 100644 index 00000000..f75fe90b --- /dev/null +++ b/patches/libevent-2.0.22-stable.local.patch @@ -0,0 +1,11 @@ +--- libevent-2.0.22-stable/configure.orig 2016-09-10 18:47:19.360327924 -0400 ++++ libevent-2.0.22-stable/configure 2016-09-10 18:48:54.160396670 -0400 +@@ -12937,7 +12937,7 @@ + BUILD_CYGWIN_FALSE= + fi + +- if test x$bwin32 = xtrue || test x$cygwin = xtrue; then ++ if test x$bwin32 = xtrue || test x$cygwin = xtrue || test x$ac_pe_target = xtrue; then + BUILD_WITH_NO_UNDEFINED_TRUE= + BUILD_WITH_NO_UNDEFINED_FALSE='#' + else diff --git a/patches/libfetch-2.33.local.patch b/patches/libfetch-2.33.local.patch new file mode 100644 index 00000000..8d0bbcf8 --- /dev/null +++ b/patches/libfetch-2.33.local.patch @@ -0,0 +1,149 @@ +--- libfetch-2.33/common.h.orig 2010-08-23 22:40:48.000000000 +0200 ++++ libfetch-2.33/common.h 2016-03-09 10:01:24.270907600 +0100 +@@ -47,7 +47,7 @@ + + #if !defined(__sun) && !defined(__hpux) && !defined(__INTERIX) && \ + !defined(__digital__) && !defined(__linux) && !defined(__MINT__) && \ +- !defined(__sgi) ++ !defined(__sgi) && !defined(__midipix__) + #define HAVE_SA_LEN + #endif + +--- libfetch-2.33/Makefile.orig 2010-08-23 20:40:48.000000000 +0000 ++++ libfetch-2.33/Makefile 2016-07-08 22:18:05.749860554 +0000 +@@ -1,42 +1,93 @@ +-# $NetBSD: Makefile,v 1.5 2010/02/24 22:00:51 joerg Exp $ +- +-LIB= fetch +-SRCS= fetch.c common.c ftp.c http.c file.c +-DPSRCS= ftperr.h httperr.h +-INCS= fetch.h +-MAN= fetch.3 +-CLEANFILES= ftperr.h httperr.h +-MKLINT= no +-MKPIC= no +-MKPROFILE= no +- +-.include +- +-CPPFLAGS+= -I. +-CPPFLAGS+= -D_LARGEFILE_SOURCE -D_LARGE_FILES +- +-FETCH_WITH_INET6?= no +-FETCH_WITH_OPENSSL?= no +- +-.if !empty(FETCH_WITH_INET6:M[yY][eE][sS]) +-CPPFLAGS+= -DINET6 +-.endif +- +-.if !empty(FETCH_WITH_OPENSSL:M[yY][eE][sS]) +-CPPFLAGS+= -DWITH_SSL +-LDADD= -lssl -lcrypto +-.endif +- +-CPPFLAGS+= -DFTP_COMBINE_CWDS +- +-WARNS?= 4 +- +-ftperr.h: ${.CURDIR}/ftp.errors ${.CURDIR}/Makefile ${.CURDIR}/errlist.sh +- ${.CURDIR}/errlist.sh ftp_errlist FTP \ +- ${.CURDIR}/ftp.errors > ${.TARGET} +- +-httperr.h: ${.CURDIR}/http.errors ${.CURDIR}/Makefile ${.CURDIR}/errlist.sh +- ${.CURDIR}/errlist.sh http_errlist HTTP \ +- ${.CURDIR}/http.errors > ${.TARGET} +- +-.include ++prefix = /usr ++DESTDIR = ++DEBUG = false ++FETCH_WITH_INET6 = true ++FETCH_WITH_OPENSSL = true ++FETCH_WITH_LFS = true ++ ++WARNINGS = -Wall -Wstrict-prototypes -Wsign-compare -Wchar-subscripts \ ++ -Wpointer-arith -Wcast-align -Wsign-compare ++CFLAGS += -O2 -pipe -I. -fPIC $(WARNINGS) ++ ++ ++CFLAGS += -DFTP_COMBINE_CWDS -DNETBSD ++ ++ifeq ($(strip $(FETCH_WITH_LFS)), true) ++CFLAGS+= -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGE_FILES ++endif ++ ++ifeq ($(strip $(FETCH_WITH_INET6)), true) ++CFLAGS+= -DINET6 ++endif ++ ++ifeq ($(strip $(FETCH_WITH_OPENSSL)), true) ++CFLAGS+= -DWITH_SSL ++LDFLAGS_LIBS+= -lssl -lcrypto ++endif ++ ++ifeq ($(strip $(DEBUG)), true) ++CFLAGS += -g -DDEBUG ++else ++CFLAGS += -UDEBUG ++endif ++ ++CC = $(CROSS_COMPILE)gcc ++LD = $(CROSS_COMPILE)gcc ++AR = $(CROSS_COMPILE)ar ++RANLIB = ranlib ++INSTALL = install -c -D ++ ++OBJS= fetch.o common.o ftp.o http.o file.o ++INCS= fetch.h common.h ++GEN = ftperr.h httperr.h ++MAN = libdownload.3 ++ ++#pretty print! ++E = @echo ++Q = @ ++ ++all: libfetch.so libfetch.a ++ $(E) " built with: " $(CFLAGS) ++.PHONY: all ++ ++%.o: %.c $(INCS) $(GEN) ++ $(E) " compile " $@ ++ $(Q) $(CC) $(CFLAGS) -c $< ++ ++ftperr.h: ftp.errors ++ $(E) " generate " $@ ++ $(Q) ./errlist.sh ftp_errlist FTP ftp.errors > $@ ++ ++httperr.h: http.errors ++ $(E) " generate " $@ ++ $(Q) ./errlist.sh http_errlist HTTP http.errors > $@ ++ ++libfetch.so: $(GEN) $(INCS) $(OBJS) ++ $(E) " build " $@ ++ $(Q) rm -f $@ ++ $(Q) $(LD) $(LDFLAGS) *.o -shared -o $@ $(LDFLAGS_LIBS) ++ ++libfetch.a: $(GEN) $(INCS) $(OBJS) ++ $(E) " build " $@ ++ $(Q) rm -f $@ ++ $(Q) $(AR) rcs $@ *.o ++ $(Q) $(RANLIB) $@ ++ ++clean: ++ $(E) " clean " ++ $(Q) rm -f libfetch.so libfetch.a *.o $(GEN) ++.PHONY: clean ++ ++install: all ++ $(Q) $(INSTALL) -m 755 libfetch.so $(DESTDIR)$(prefix)/lib/libfetch.so ++ $(Q) $(INSTALL) -m 644 libfetch.a $(DESTDIR)$(prefix)/lib/libfetch.a ++ $(Q) $(INSTALL) -m 644 fetch.h $(DESTDIR)$(prefix)/include/fetch.h ++ $(Q) $(INSTALL) -m 644 fetch.3 $(DESTDIR)$(prefix)/share/man/man3/fetch.3 ++.PHONY: install ++ ++uninstall: ++ $(Q) rm -f $(DESTDIR)$(prefix)/lib/libfetch.so ++ $(Q) rm -f $(DESTDIR)$(prefix)/lib/libfetch.a ++ $(Q) rm -f $(DESTDIR)$(prefix)/include/fetch.h ++ $(Q) rm -f $(DESTDIR)$(prefix)/share/man/man3/fetch.3 ++.PHONY: uninstall diff --git a/patches/libffi-3.2.1.local.patch b/patches/libffi-3.2.1.local.patch new file mode 100644 index 00000000..d5c7fbdc --- /dev/null +++ b/patches/libffi-3.2.1.local.patch @@ -0,0 +1,198 @@ +diff -ru --new-file a/configure b/configure +--- a/configure 2014-11-12 06:59:57.000000000 -0500 ++++ b/configure 2016-01-25 18:26:47.000000000 -0500 +@@ -17133,7 +17133,7 @@ + i?86-*-freebsd* | i?86-*-openbsd*) + TARGET=X86_FREEBSD; TARGETDIR=x86 + ;; +- i?86-win32* | i?86-*-cygwin* | i?86-*-mingw* | i?86-*-os2* | i?86-*-interix*) ++ i?86-win32* | i?86-*-cygwin* | i?86-*-mingw* | i?86-*-os2* | i?86-*-interix* | i?86-*-midipix*) + TARGET=X86_WIN32; TARGETDIR=x86 + # All mingw/cygwin/win32 builds require -no-undefined for sharedlib. + # We must also check with_cross_host to decide if this is a native +@@ -17161,7 +17161,7 @@ + TARGET=X86_DARWIN; TARGETDIR=x86 + ;; + +- x86_64-*-cygwin* | x86_64-*-mingw*) ++ x86_64-*-cygwin* | x86_64-*-mingw* | x86_64-*-midipix*) + TARGET=X86_WIN64; TARGETDIR=x86 + # All mingw/cygwin/win32 builds require -no-undefined for sharedlib. + # We must also check with_cross_host to decide if this is a native +diff -ru --new-file a/src/closures.c b/src/closures.c +--- a/src/closures.c 2014-11-08 07:47:24.000000000 -0500 ++++ b/src/closures.c 2016-01-25 17:57:43.000000000 -0500 +@@ -26,6 +26,25 @@ + DEALINGS IN THE SOFTWARE. + ----------------------------------------------------------------------- */ + ++#ifdef __midipix__ ++ ++#include ++ ++void * ffi_closure_alloc (size_t size, void ** code) ++{ ++ if (code) ++ return (*code = malloc(size)); ++ else ++ return 0; ++} ++ ++void ffi_closure_free (void * addr) ++{ ++ free(addr); ++} ++ ++#else ++ + #if defined __linux__ && !defined _GNU_SOURCE + #define _GNU_SOURCE 1 + #endif +@@ -686,3 +705,4 @@ + + # endif /* ! FFI_MMAP_EXEC_WRIT */ + #endif /* FFI_CLOSURES */ ++#endif +diff -ru --new-file a/src/x86/ffi.c b/src/x86/ffi.c +--- a/src/x86/ffi.c 2014-11-08 07:47:24.000000000 -0500 ++++ b/src/x86/ffi.c 2016-01-25 17:52:14.000000000 -0500 +@@ -31,8 +31,12 @@ + #if !defined(__x86_64__) || defined(_WIN64) || defined(__CYGWIN__) + + #ifdef _WIN64 ++#ifdef __midipix__ ++/* not needed */ ++#else + #include + #endif ++#endif + + #include + #include +diff -ru --new-file a/src/x86/win32.S b/src/x86/win32.S +--- a/src/x86/win32.S 2014-11-11 09:41:37.000000000 -0500 ++++ b/src/x86/win32.S 2016-01-25 18:36:49.000000000 -0500 +@@ -1344,6 +1344,14 @@ + .align 4 + .LEFDE5: + ++#ifdef __midipix__ ++ .section .got$ffi_call_win32,"r" ++ .global __imp_ffi_call_win32 ++__imp_ffi_call_win32: ++ .long ffi_call_win32 ++ .linkonce discard ++#endif ++ + #endif /* !_MSC_VER */ + + #if defined __ELF__ && defined __linux__ +diff -ru --new-file a/src/x86/win64.S b/src/x86/win64.S +--- a/src/x86/win64.S 2014-11-08 07:47:24.000000000 -0500 ++++ b/src/x86/win64.S 2016-01-25 17:47:17.000000000 -0500 +@@ -516,5 +516,15 @@ + pop %rbp + retq + .seh_endproc ++ ++ ++#ifdef __midipix__ ++ .section .got$ffi_call_win64,"r" ++ .global __imp_ffi_call_win64 ++__imp_ffi_call_win64: ++ .quad ffi_call_win64 ++ .linkonce discard ++#endif ++ + #endif /* !_MSC_VER */ + +--- libffi-3.2.1/src/x86/win32.S.orig2 2016-05-31 09:21:19.120895425 +0000 ++++ libffi-3.2.1/src/x86/win32.S 2016-05-31 09:22:19.252894091 +0000 +@@ -529,7 +529,9 @@ + + # This assumes we are using gas. + .balign 16 ++#ifndef __midipix__ + FFI_HIDDEN(ffi_call_win32) ++#endif + .globl USCORE_SYMBOL(ffi_call_win32) + #if defined(X86_WIN32) && !defined(__OS2__) + .def _ffi_call_win32; .scl 2; .type 32; .endef +@@ -712,7 +714,9 @@ + ret + .ffi_call_win32_end: + .balign 16 ++#ifndef __midipix__ + FFI_HIDDEN(ffi_closure_THISCALL) ++#endif + .globl USCORE_SYMBOL(ffi_closure_THISCALL) + #if defined(X86_WIN32) && !defined(__OS2__) + .def _ffi_closure_THISCALL; .scl 2; .type 32; .endef +@@ -725,7 +729,9 @@ + jmp .ffi_closure_STDCALL_internal + + .balign 16 ++#ifndef __midipix__ + FFI_HIDDEN(ffi_closure_FASTCALL) ++#endif + .globl USCORE_SYMBOL(ffi_closure_FASTCALL) + #if defined(X86_WIN32) && !defined(__OS2__) + .def _ffi_closure_FASTCALL; .scl 2; .type 32; .endef +@@ -737,7 +743,9 @@ + push %edx + push %ecx + jmp .ffi_closure_STDCALL_internal ++#ifndef __midipix__ + FFI_HIDDEN(ffi_closure_REGISTER) ++#endif + .globl USCORE_SYMBOL(ffi_closure_REGISTER) + #if defined(X86_WIN32) && !defined(__OS2__) + .def _ffi_closure_REGISTER; .scl 2; .type 32; .endef +@@ -754,7 +762,9 @@ + .LFE1: + # This assumes we are using gas. + .balign 16 ++#ifndef __midipix__ + FFI_HIDDEN(ffi_closure_SYSV) ++#endif + #if defined(X86_WIN32) + .globl USCORE_SYMBOL(ffi_closure_SYSV) + #if defined(X86_WIN32) && !defined(__OS2__) +@@ -898,7 +908,9 @@ + + #ifdef X86_WIN32 + .balign 16 ++#ifndef __midipix__ + FFI_HIDDEN(ffi_closure_raw_THISCALL) ++#endif + .globl USCORE_SYMBOL(ffi_closure_raw_THISCALL) + #if defined(X86_WIN32) && !defined(__OS2__) + .def _ffi_closure_raw_THISCALL; .scl 2; .type 32; .endef +@@ -1040,7 +1052,9 @@ + + # This assumes we are using gas. + .balign 16 ++#ifndef __midipix__ + FFI_HIDDEN(ffi_closure_STDCALL) ++#endif + .globl USCORE_SYMBOL(ffi_closure_STDCALL) + #if defined(X86_WIN32) && !defined(__OS2__) + .def _ffi_closure_STDCALL; .scl 2; .type 32; .endef +@@ -1345,10 +1359,17 @@ + .LEFDE5: + + #ifdef __midipix__ ++#if defined(SYMBOL_UNDERSCORE) ++ .section .got$ffi__call_win32,"r" ++ .global __imp__ffi_call_win32 ++__imp__ffi_call_win32: ++ .long _ffi_call_win32 ++#else + .section .got$ffi_call_win32,"r" + .global __imp_ffi_call_win32 + __imp_ffi_call_win32: + .long ffi_call_win32 ++#endif + .linkonce discard + #endif + diff --git a/patches/libgcrypt-1.7.3.local.patch b/patches/libgcrypt-1.7.3.local.patch new file mode 100644 index 00000000..ff81df03 --- /dev/null +++ b/patches/libgcrypt-1.7.3.local.patch @@ -0,0 +1,172 @@ +Only in libgcrypt-1.7.3.orig: config.log +diff -ru libgcrypt-1.7.3.orig/configure libgcrypt-1.7.3/configure +--- libgcrypt-1.7.3.orig/configure 2016-08-17 13:34:20.000000000 +0200 ++++ libgcrypt-1.7.3/configure 2016-10-18 22:58:40.255896688 +0200 +@@ -13067,7 +13067,9 @@ + *-linux*) + PRINTABLE_OS_NAME="GNU/Linux" + ;; +- ++ *-midipix*) ++ PRINTABLE_OS_NAME="Midipix" ++ ;; + *) + PRINTABLE_OS_NAME=`uname -s || echo "Unknown"` + ;; +@@ -14141,155 +14143,8 @@ + # gpg-error is required. + # + +- gpg_error_config_prefix="" +- +-# Check whether --with-libgpg-error-prefix was given. +-if test "${with_libgpg_error_prefix+set}" = set; then : +- withval=$with_libgpg_error_prefix; gpg_error_config_prefix="$withval" +-fi +- +- +- +-# Check whether --with-gpg-error-prefix was given. +-if test "${with_gpg_error_prefix+set}" = set; then : +- withval=$with_gpg_error_prefix; gpg_error_config_prefix="$withval" +-fi +- ++ GPG_ERROR_LIBS="-lgpg-error" + +- if test x"${GPG_ERROR_CONFIG}" = x ; then +- if test x"${gpg_error_config_prefix}" != x ; then +- GPG_ERROR_CONFIG="${gpg_error_config_prefix}/bin/gpg-error-config" +- else +- case "${SYSROOT}" in +- /*) +- if test -x "${SYSROOT}/bin/gpg-error-config" ; then +- GPG_ERROR_CONFIG="${SYSROOT}/bin/gpg-error-config" +- fi +- ;; +- '') +- ;; +- *) +- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring \$SYSROOT as it is not an absolute path." >&5 +-$as_echo "$as_me: WARNING: Ignoring \$SYSROOT as it is not an absolute path." >&2;} +- ;; +- esac +- fi +- fi +- +- # Extract the first word of "gpg-error-config", so it can be a program name with args. +-set dummy gpg-error-config; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if ${ac_cv_path_GPG_ERROR_CONFIG+:} false; then : +- $as_echo_n "(cached) " >&6 +-else +- case $GPG_ERROR_CONFIG in +- [\\/]* | ?:[\\/]*) +- ac_cv_path_GPG_ERROR_CONFIG="$GPG_ERROR_CONFIG" # Let the user override the test with a path. +- ;; +- *) +- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then +- ac_cv_path_GPG_ERROR_CONFIG="$as_dir/$ac_word$ac_exec_ext" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +- test -z "$ac_cv_path_GPG_ERROR_CONFIG" && ac_cv_path_GPG_ERROR_CONFIG="no" +- ;; +-esac +-fi +-GPG_ERROR_CONFIG=$ac_cv_path_GPG_ERROR_CONFIG +-if test -n "$GPG_ERROR_CONFIG"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GPG_ERROR_CONFIG" >&5 +-$as_echo "$GPG_ERROR_CONFIG" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- +- min_gpg_error_version="$NEED_GPG_ERROR_VERSION" +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GPG Error - version >= $min_gpg_error_version" >&5 +-$as_echo_n "checking for GPG Error - version >= $min_gpg_error_version... " >&6; } +- ok=no +- if test "$GPG_ERROR_CONFIG" != "no" \ +- && test -f "$GPG_ERROR_CONFIG" ; then +- req_major=`echo $min_gpg_error_version | \ +- sed 's/\([0-9]*\)\.\([0-9]*\)/\1/'` +- req_minor=`echo $min_gpg_error_version | \ +- sed 's/\([0-9]*\)\.\([0-9]*\)/\2/'` +- gpg_error_config_version=`$GPG_ERROR_CONFIG $gpg_error_config_args --version` +- major=`echo $gpg_error_config_version | \ +- sed 's/\([0-9]*\)\.\([0-9]*\).*/\1/'` +- minor=`echo $gpg_error_config_version | \ +- sed 's/\([0-9]*\)\.\([0-9]*\).*/\2/'` +- if test "$major" -gt "$req_major"; then +- ok=yes +- else +- if test "$major" -eq "$req_major"; then +- if test "$minor" -ge "$req_minor"; then +- ok=yes +- fi +- fi +- fi +- fi +- if test $ok = yes; then +- GPG_ERROR_CFLAGS=`$GPG_ERROR_CONFIG $gpg_error_config_args --cflags` +- GPG_ERROR_LIBS=`$GPG_ERROR_CONFIG $gpg_error_config_args --libs` +- GPG_ERROR_MT_CFLAGS=`$GPG_ERROR_CONFIG $gpg_error_config_args --mt --cflags 2>/dev/null` +- GPG_ERROR_MT_LIBS=`$GPG_ERROR_CONFIG $gpg_error_config_args --mt --libs 2>/dev/null` +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes ($gpg_error_config_version)" >&5 +-$as_echo "yes ($gpg_error_config_version)" >&6; } +- : +- gpg_error_config_host=`$GPG_ERROR_CONFIG $gpg_error_config_args --host 2>/dev/null || echo none` +- if test x"$gpg_error_config_host" != xnone ; then +- if test x"$gpg_error_config_host" != x"$host" ; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: +-*** +-*** The config script $GPG_ERROR_CONFIG was +-*** built for $gpg_error_config_host and thus may not match the +-*** used host $host. +-*** You may want to use the configure option --with-gpg-error-prefix +-*** to specify a matching config script or use \$SYSROOT. +-***" >&5 +-$as_echo "$as_me: WARNING: +-*** +-*** The config script $GPG_ERROR_CONFIG was +-*** built for $gpg_error_config_host and thus may not match the +-*** used host $host. +-*** You may want to use the configure option --with-gpg-error-prefix +-*** to specify a matching config script or use \$SYSROOT. +-***" >&2;} +- gpg_config_script_warn="$gpg_config_script_warn libgpg-error" +- fi +- fi +- else +- GPG_ERROR_CFLAGS="" +- GPG_ERROR_LIBS="" +- GPG_ERROR_MT_CFLAGS="" +- GPG_ERROR_MT_LIBS="" +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +- : +- fi +- +- +- +- +- +-if test "x$GPG_ERROR_LIBS" = "x"; then +- as_fn_error $? "libgpg-error is needed. +- See ftp://ftp.gnupg.org/gcrypt/libgpg-error/ ." "$LINENO" 5 +-fi + + + $as_echo "#define GPG_ERR_SOURCE_DEFAULT GPG_ERR_SOURCE_GCRYPT" >>confdefs.h diff --git a/patches/libgpg-error-1.24.local.patch b/patches/libgpg-error-1.24.local.patch new file mode 100644 index 00000000..208e47a1 --- /dev/null +++ b/patches/libgpg-error-1.24.local.patch @@ -0,0 +1,56 @@ +diff -ru --new-file libgpg-error-1.24.orig/src/syscfg/lock-obj-pub.i686-nt64-midipix.h libgpg-error-1.24/src/syscfg/lock-obj-pub.i686-nt64-midipix.h +--- libgpg-error-1.24.orig/src/syscfg/lock-obj-pub.i686-nt64-midipix.h 1970-01-01 01:00:00.000000000 +0100 ++++ libgpg-error-1.24/src/syscfg/lock-obj-pub.i686-nt64-midipix.h 2015-03-06 10:36:24.000000000 +0100 +@@ -0,0 +1,23 @@ ++## lock-obj-pub.i686-pc-linux-gnu.h ++## File created by gen-posix-lock-obj - DO NOT EDIT ++## To be included by mkheader into gpg-error.h ++ ++typedef struct ++{ ++ long _vers; ++ union { ++ volatile char _priv[24]; ++ long _x_align; ++ long *_xp_align; ++ } u; ++} gpgrt_lock_t; ++ ++#define GPGRT_LOCK_INITIALIZER {1,{{0,0,0,0,0,0,0,0, \ ++ 0,0,0,0,0,0,0,0, \ ++ 0,0,0,0,0,0,0,0}}} ++## ++## Local Variables: ++## mode: c ++## buffer-read-only: t ++## End: ++## +diff -ru --new-file libgpg-error-1.24.orig/src/syscfg/lock-obj-pub.x86_64-nt64-midipix.h libgpg-error-1.24/src/syscfg/lock-obj-pub.x86_64-nt64-midipix.h +--- libgpg-error-1.24.orig/src/syscfg/lock-obj-pub.x86_64-nt64-midipix.h 1970-01-01 01:00:00.000000000 +0100 ++++ libgpg-error-1.24/src/syscfg/lock-obj-pub.x86_64-nt64-midipix.h 2016-03-14 14:04:33.000000000 +0100 +@@ -0,0 +1,25 @@ ++## lock-obj-pub.x86_64-pc-linux-musl.h ++## File created by gen-posix-lock-obj - DO NOT EDIT ++## To be included by mkheader into gpg-error.h ++ ++typedef struct ++{ ++ long _vers; ++ union { ++ volatile char _priv[40]; ++ long _x_align; ++ long *_xp_align; ++ } u; ++} gpgrt_lock_t; ++ ++#define GPGRT_LOCK_INITIALIZER {1,{{0,0,0,0,0,0,0,0, \ ++ 0,0,0,0,0,0,0,0, \ ++ 0,0,0,0,0,0,0,0, \ ++ 0,0,0,0,0,0,0,0, \ ++ 0,0,0,0,0,0,0,0}}} ++## ++## Local Variables: ++## mode: c ++## buffer-read-only: t ++## End: ++## diff --git a/patches/libksba-1.3.5.local.patch b/patches/libksba-1.3.5.local.patch new file mode 100644 index 00000000..9c9420b0 --- /dev/null +++ b/patches/libksba-1.3.5.local.patch @@ -0,0 +1,160 @@ +--- libksba-1.3.5/baconfigure.orig 2016-08-22 11:56:54.000000000 +0200 ++++ libksba-1.3.5/configure 2016-10-18 22:46:31.763896688 +0200 +@@ -13852,155 +13852,9 @@ + # Checks for libraries. + # + +- gpg_error_config_prefix="" ++#Overcomplicated and useless check for gpg-error, use CFLAGS and LDFLAGS! >:( ++ GPG_ERROR_LIBS="-lgpg-error" + +-# Check whether --with-libgpg-error-prefix was given. +-if test "${with_libgpg_error_prefix+set}" = set; then : +- withval=$with_libgpg_error_prefix; gpg_error_config_prefix="$withval" +-fi +- +- +- +-# Check whether --with-gpg-error-prefix was given. +-if test "${with_gpg_error_prefix+set}" = set; then : +- withval=$with_gpg_error_prefix; gpg_error_config_prefix="$withval" +-fi +- +- +- if test x"${GPG_ERROR_CONFIG}" = x ; then +- if test x"${gpg_error_config_prefix}" != x ; then +- GPG_ERROR_CONFIG="${gpg_error_config_prefix}/bin/gpg-error-config" +- else +- case "${SYSROOT}" in +- /*) +- if test -x "${SYSROOT}/bin/gpg-error-config" ; then +- GPG_ERROR_CONFIG="${SYSROOT}/bin/gpg-error-config" +- fi +- ;; +- '') +- ;; +- *) +- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring \$SYSROOT as it is not an absolute path." >&5 +-$as_echo "$as_me: WARNING: Ignoring \$SYSROOT as it is not an absolute path." >&2;} +- ;; +- esac +- fi +- fi +- +- # Extract the first word of "gpg-error-config", so it can be a program name with args. +-set dummy gpg-error-config; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if ${ac_cv_path_GPG_ERROR_CONFIG+:} false; then : +- $as_echo_n "(cached) " >&6 +-else +- case $GPG_ERROR_CONFIG in +- [\\/]* | ?:[\\/]*) +- ac_cv_path_GPG_ERROR_CONFIG="$GPG_ERROR_CONFIG" # Let the user override the test with a path. +- ;; +- *) +- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then +- ac_cv_path_GPG_ERROR_CONFIG="$as_dir/$ac_word$ac_exec_ext" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +- test -z "$ac_cv_path_GPG_ERROR_CONFIG" && ac_cv_path_GPG_ERROR_CONFIG="no" +- ;; +-esac +-fi +-GPG_ERROR_CONFIG=$ac_cv_path_GPG_ERROR_CONFIG +-if test -n "$GPG_ERROR_CONFIG"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GPG_ERROR_CONFIG" >&5 +-$as_echo "$GPG_ERROR_CONFIG" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- +- min_gpg_error_version="$NEED_GPG_ERROR_VERSION" +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GPG Error - version >= $min_gpg_error_version" >&5 +-$as_echo_n "checking for GPG Error - version >= $min_gpg_error_version... " >&6; } +- ok=no +- if test "$GPG_ERROR_CONFIG" != "no" \ +- && test -f "$GPG_ERROR_CONFIG" ; then +- req_major=`echo $min_gpg_error_version | \ +- sed 's/\([0-9]*\)\.\([0-9]*\)/\1/'` +- req_minor=`echo $min_gpg_error_version | \ +- sed 's/\([0-9]*\)\.\([0-9]*\)/\2/'` +- gpg_error_config_version=`$GPG_ERROR_CONFIG $gpg_error_config_args --version` +- major=`echo $gpg_error_config_version | \ +- sed 's/\([0-9]*\)\.\([0-9]*\).*/\1/'` +- minor=`echo $gpg_error_config_version | \ +- sed 's/\([0-9]*\)\.\([0-9]*\).*/\2/'` +- if test "$major" -gt "$req_major"; then +- ok=yes +- else +- if test "$major" -eq "$req_major"; then +- if test "$minor" -ge "$req_minor"; then +- ok=yes +- fi +- fi +- fi +- fi +- if test $ok = yes; then +- GPG_ERROR_CFLAGS=`$GPG_ERROR_CONFIG $gpg_error_config_args --cflags` +- GPG_ERROR_LIBS=`$GPG_ERROR_CONFIG $gpg_error_config_args --libs` +- GPG_ERROR_MT_CFLAGS=`$GPG_ERROR_CONFIG $gpg_error_config_args --mt --cflags 2>/dev/null` +- GPG_ERROR_MT_LIBS=`$GPG_ERROR_CONFIG $gpg_error_config_args --mt --libs 2>/dev/null` +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes ($gpg_error_config_version)" >&5 +-$as_echo "yes ($gpg_error_config_version)" >&6; } +- : +- gpg_error_config_host=`$GPG_ERROR_CONFIG $gpg_error_config_args --host 2>/dev/null || echo none` +- if test x"$gpg_error_config_host" != xnone ; then +- if test x"$gpg_error_config_host" != x"$host" ; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: +-*** +-*** The config script $GPG_ERROR_CONFIG was +-*** built for $gpg_error_config_host and thus may not match the +-*** used host $host. +-*** You may want to use the configure option --with-gpg-error-prefix +-*** to specify a matching config script or use \$SYSROOT. +-***" >&5 +-$as_echo "$as_me: WARNING: +-*** +-*** The config script $GPG_ERROR_CONFIG was +-*** built for $gpg_error_config_host and thus may not match the +-*** used host $host. +-*** You may want to use the configure option --with-gpg-error-prefix +-*** to specify a matching config script or use \$SYSROOT. +-***" >&2;} +- gpg_config_script_warn="$gpg_config_script_warn libgpg-error" +- fi +- fi +- else +- GPG_ERROR_CFLAGS="" +- GPG_ERROR_LIBS="" +- GPG_ERROR_MT_CFLAGS="" +- GPG_ERROR_MT_LIBS="" +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +- : +- fi +- +- +- +- +- +-if test "x$GPG_ERROR_LIBS" = "x"; then +- as_fn_error $? "libgpg-error is needed. +- See ftp://ftp.gnupg.org/gcrypt/libgpg-error/ ." "$LINENO" 5 +-fi + + + $as_echo "#define GPG_ERR_SOURCE_DEFAULT GPG_ERR_SOURCE_KSBA" >>confdefs.h diff --git a/patches/libressl-2.2.6.local.patch b/patches/libressl-2.2.6.local.patch new file mode 100644 index 00000000..759cfecd --- /dev/null +++ b/patches/libressl-2.2.6.local.patch @@ -0,0 +1,193 @@ +--- libressl-2.2.6/crypto/compat/arc4random.h.orig 2015-10-15 23:18:44.000000000 +0200 ++++ libressl-2.2.6/crypto/compat/arc4random.h 2016-02-12 17:19:40.815245600 +0100 +@@ -12,7 +12,7 @@ + #elif defined(__hpux) + #include "arc4random_hpux.h" + +-#elif defined(__linux__) ++#elif defined(__linux__) || defined(__MIDIPIX) + #include "arc4random_linux.h" + + #elif defined(__NetBSD__) +--- libressl-2.2.6/crypto/compat/getentropy_linux.c.orig 2015-10-16 00:04:58.000000000 +0200 ++++ libressl-2.2.6/crypto/compat/getentropy_linux.c 2016-02-12 17:48:47.474391200 +0100 +@@ -27,7 +27,7 @@ + #include + #include + #include +-#ifdef SYS__sysctl ++#if defined(SYS__sysctl) && !defined(__MIDIPIX) + #include + #endif + #include +@@ -49,8 +49,10 @@ + #include + #include + ++#ifndef __MIDIPIX + #include + #include ++#endif + #ifdef HAVE_GETAUXVAL + #include + #endif +@@ -78,7 +80,7 @@ + static int getentropy_getrandom(void *buf, size_t len); + #endif + static int getentropy_urandom(void *buf, size_t len); +-#ifdef SYS__sysctl ++#if defined(SYS__sysctl) && !defined(__MIDIPIX) + static int getentropy_sysctl(void *buf, size_t len); + #endif + static int getentropy_fallback(void *buf, size_t len); +@@ -115,7 +117,7 @@ + if (ret != -1) + return (ret); + +-#ifdef SYS__sysctl ++#if defined(SYS__sysctl) && !defined(__MIDIPIX) + /* + * Try to use sysctl CTL_KERN, KERN_RANDOM, RANDOM_UUID. + * sysctl is a failsafe API, so it guarantees a result. This +@@ -241,10 +243,12 @@ + close(fd); + goto nodevrandom; + } ++#ifndef __MIDIPIX + if (ioctl(fd, RNDGETENTCNT, &cnt) == -1) { + close(fd); + goto nodevrandom; + } ++#endif + for (i = 0; i < len; ) { + size_t wanted = len - i; + ssize_t ret = read(fd, (char *)buf + i, wanted); +@@ -267,7 +271,7 @@ + return -1; + } + +-#ifdef SYS__sysctl ++#if defined(SYS__sysctl) && !defined(__MIDIPIX) + static int + getentropy_sysctl(void *buf, size_t len) + { +--- libressl-2.2.6/crypto/Makefile.in.orig 2016-01-28 19:18:08.000000000 +0100 ++++ libressl-2.2.6/crypto/Makefile.in 2016-02-12 17:19:40.823245600 +0100 +@@ -111,10 +111,11 @@ + @HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_FREEBSD_TRUE@am__append_19 = compat/getentropy_freebsd.c + @HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_HPUX_TRUE@am__append_20 = compat/getentropy_hpux.c + @HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_LINUX_TRUE@am__append_21 = compat/getentropy_linux.c +-@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_NETBSD_TRUE@am__append_22 = compat/getentropy_netbsd.c +-@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_DARWIN_TRUE@am__append_23 = compat/getentropy_osx.c +-@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_SOLARIS_TRUE@am__append_24 = compat/getentropy_solaris.c +-@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_WIN_TRUE@am__append_25 = compat/getentropy_win.c ++@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_MIDIPIX_TRUE@am__append_22 = compat/getentropy_linux.c ++@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_NETBSD_TRUE@am__append_23 = compat/getentropy_netbsd.c ++@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_DARWIN_TRUE@am__append_24 = compat/getentropy_osx.c ++@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_SOLARIS_TRUE@am__append_25 = compat/getentropy_solaris.c ++@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_WIN_TRUE@am__append_26 = compat/getentropy_win.c + @HOST_ASM_ELF_X86_64_TRUE@am__append_26 = -DAES_ASM -DBSAES_ASM \ + @HOST_ASM_ELF_X86_64_TRUE@ -DVPAES_ASM -DOPENSSL_IA32_SSE2 \ + @HOST_ASM_ELF_X86_64_TRUE@ -DOPENSSL_BN_ASM_MONT \ +@@ -220,17 +221,18 @@ + @HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_FREEBSD_TRUE@am__objects_13 = compat/getentropy_freebsd.lo + @HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_HPUX_TRUE@am__objects_14 = compat/getentropy_hpux.lo + @HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_LINUX_TRUE@am__objects_15 = compat/getentropy_linux.lo +-@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_NETBSD_TRUE@am__objects_16 = compat/getentropy_netbsd.lo +-@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_DARWIN_TRUE@am__objects_17 = compat/getentropy_osx.lo +-@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_SOLARIS_TRUE@am__objects_18 = compat/getentropy_solaris.lo +-@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_WIN_TRUE@am__objects_19 = compat/getentropy_win.lo ++@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_MIDIPIX_TRUE@am__objects_16 = compat/getentropy_linux.lo ++@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_NETBSD_TRUE@am__objects_17 = compat/getentropy_netbsd.lo ++@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_DARWIN_TRUE@am__objects_18 = compat/getentropy_osx.lo ++@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_SOLARIS_TRUE@am__objects_19 = compat/getentropy_solaris.lo ++@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_WIN_TRUE@am__objects_20 = compat/getentropy_win.lo + am_libcompat_la_OBJECTS = $(am__objects_1) $(am__objects_2) \ + $(am__objects_3) $(am__objects_4) $(am__objects_5) \ + $(am__objects_6) $(am__objects_7) $(am__objects_8) \ + $(am__objects_9) $(am__objects_10) $(am__objects_11) \ + $(am__objects_12) $(am__objects_13) $(am__objects_14) \ + $(am__objects_15) $(am__objects_16) $(am__objects_17) \ +- $(am__objects_18) $(am__objects_19) ++ $(am__objects_18) $(am__objects_19) $(am__objects_20) + libcompat_la_OBJECTS = $(am_libcompat_la_OBJECTS) + AM_V_lt = $(am__v_lt_@AM_V@) + am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +@@ -985,7 +987,7 @@ + $(am__append_16) $(am__append_17) $(am__append_18) \ + $(am__append_19) $(am__append_20) $(am__append_21) \ + $(am__append_22) $(am__append_23) $(am__append_24) \ +- $(am__append_25) ++ $(am__append_25) $(am__append_26) + libcompat_la_LIBADD = $(PLATFORM_LDADD) + + # rc4 +--- libressl-2.2.6/include/compat/machine/endian.h.orig 2015-10-15 23:18:44.000000000 +0200 ++++ libressl-2.2.6/include/compat/machine/endian.h 2016-02-12 17:19:40.827245600 +0100 +@@ -21,7 +21,7 @@ + #define BYTE_ORDER BIG_ENDIAN + #endif + +-#elif defined(__linux__) ++#elif defined(__linux__) || defined(__MIDIPIX) + #include + + #elif defined(__sun) || defined(_AIX) || defined(__hpux) +--- libressl-2.2.6/configure.orig 2016-01-28 18:18:06.000000000 +0000 ++++ libressl-2.2.6/configure 2016-02-23 13:25:30.689963257 +0000 +@@ -690,6 +690,8 @@ + HOST_NETBSD_TRUE + HOST_LINUX_FALSE + HOST_LINUX_TRUE ++HOST_MIDIPIX_FALSE ++HOST_MIDIPIX_TRUE + HOST_HPUX_FALSE + HOST_HPUX_TRUE + HOST_FREEBSD_FALSE +@@ -10824,7 +10826,7 @@ + ;; + + # This must be glibc/ELF. +-linux* | k*bsd*-gnu | kopensolaris*-gnu) ++linux* | k*bsd*-gnu | kopensolaris*-gnu | midipix*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no +@@ -11902,6 +11904,11 @@ + HOST_ABI=elf + CPPFLAGS="$CPPFLAGS -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_POSIX_SOURCE -D_GNU_SOURCE" + ;; ++ *midipix*) ++ HOST_OS=midipix ++ HOST_ABI=pe ++ CFLAGS="$CFLAGS -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_POSIX_SOURCE -D_GNU_SOURCE" ++ ;; + *netbsd*) + HOST_OS=netbsd + CPPFLAGS="$CPPFLAGS -D_OPENBSD_SOURCE" +@@ -11981,6 +11988,14 @@ + HOST_LINUX_FALSE= + fi + ++ if test x$HOST_OS = xmidipix; then ++ HOST_MIDIPIX_TRUE= ++ HOST_MIDIPIX_FALSE='#' ++else ++ HOST_MIDIPIX_TRUE='#' ++ HOST_MIDIPIX_FALSE= ++fi ++ + if test x$HOST_OS = xnetbsd; then + HOST_NETBSD_TRUE= + HOST_NETBSD_FALSE='#' +@@ -13422,6 +13437,10 @@ + as_fn_error $? "conditional \"HOST_LINUX\" was never defined. + Usually this means the macro was only invoked conditionally." "$LINENO" 5 + fi ++if test -z "${HOST_MIDIPIX_TRUE}" && test -z "${HOST_MIDIPIX_FALSE}"; then ++ as_fn_error $? "conditional \"HOST_MIDIPIX\" was never defined. ++Usually this means the macro was only invoked conditionally." "$LINENO" 5 ++fi + if test -z "${HOST_NETBSD_TRUE}" && test -z "${HOST_NETBSD_FALSE}"; then + as_fn_error $? "conditional \"HOST_NETBSD\" was never defined. + Usually this means the macro was only invoked conditionally." "$LINENO" 5 diff --git a/patches/lua-5.3.3.local.patch b/patches/lua-5.3.3.local.patch new file mode 100644 index 00000000..e4a035d1 --- /dev/null +++ b/patches/lua-5.3.3.local.patch @@ -0,0 +1,128 @@ +--- lua-5.3.3/src/luaconf.h.orig 2016-05-01 20:06:09.000000000 +0000 ++++ lua-5.3.3/src/luaconf.h 2016-06-23 10:02:23.471604030 +0000 +@@ -72,6 +72,12 @@ + #endif + + ++#if defined(LUA_USE_MIDIPIX) ++#define LUA_USE_POSIX ++#define LUA_USE_DLOPEN /* needs an extra library: -ldl */ ++#endif ++ ++ + /* + @@ LUA_C89_NUMBERS ensures that Lua uses the largest types available for + ** C89 ('long' and 'double'); Windows always has '__int64', so it does +@@ -188,7 +194,7 @@ + + #else /* }{ */ + +-#define LUA_ROOT "/usr/local/" ++#define LUA_ROOT "/usr/" + #define LUA_LDIR LUA_ROOT "share/lua/" LUA_VDIR "/" + #define LUA_CDIR LUA_ROOT "lib/lua/" LUA_VDIR "/" + #define LUA_PATH_DEFAULT \ +--- lua-5.3.3/src/Makefile.orig 2015-05-27 11:10:11.000000000 +0000 ++++ lua-5.3.3/src/Makefile 2016-06-23 10:45:40.323546394 +0000 +@@ -26,9 +26,10 @@ + + # == END OF USER SETTINGS -- NO NEED TO CHANGE ANYTHING BELOW THIS LINE ======= + +-PLATS= aix bsd c89 freebsd generic linux macosx mingw posix solaris ++PLATS= aix bsd c89 freebsd generic linux macosx midipix mingw posix solaris + + LUA_A= liblua.a ++LUA_SO= liblua.so + CORE_O= lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o \ + lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o \ + ltm.o lundump.o lvm.o lzio.o +@@ -36,14 +37,14 @@ + lmathlib.o loslib.o lstrlib.o ltablib.o lutf8lib.o loadlib.o linit.o + BASE_O= $(CORE_O) $(LIB_O) $(MYOBJS) + +-LUA_T= lua ++LUA_T= lua$(V) + LUA_O= lua.o + +-LUAC_T= luac ++LUAC_T= luac$(V) + LUAC_O= luac.o + + ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O) +-ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) ++ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) $(LUA_SO) + ALL_A= $(LUA_A) + + # Targets start here. +@@ -56,9 +57,14 @@ + a: $(ALL_A) + + $(LUA_A): $(BASE_O) +- $(AR) $@ $(BASE_O) ++ $(AR) rcs $@ $(BASE_O) + $(RANLIB) $@ + ++$(LUA_SO): $(CORE_O) $(LIB_O) ++ $(CC) -shared -ldl -Wl,-soname,$(LUA_SO).$(V) -o $@.$(R) $? -lm $(MYLDFLAGS) ++ ln -sf $(LUA_SO).$(R) $(LUA_SO).$(V) ++ ln -sf $(LUA_SO).$(R) $(LUA_SO) ++ + $(LUA_T): $(LUA_O) $(LUA_A) + $(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS) + +@@ -112,6 +118,9 @@ + macosx: + $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_MACOSX" SYSLIBS="-lreadline" CC=cc + ++midipix: ++ $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_MIDIPIX" SYSLIBS="-Wl,-E -ldl" ++ + mingw: + $(MAKE) "LUA_A=lua53.dll" "LUA_T=lua.exe" \ + "AR=$(CC) -shared -o" "RANLIB=strip --strip-unneeded" \ +--- lua-5.3.3/Makefile.orig 2015-05-27 11:10:11.000000000 +0000 ++++ lua-5.3.3/Makefile 2016-06-23 10:59:29.519527991 +0000 +@@ -36,23 +36,25 @@ + # == END OF USER SETTINGS -- NO NEED TO CHANGE ANYTHING BELOW THIS LINE ======= + + # Convenience platforms targets. +-PLATS= aix bsd c89 freebsd generic linux macosx mingw posix solaris ++PLATS= aix bsd c89 freebsd generic linux macosx midipix mingw posix solaris ++ ++# Lua version and release. ++V= 5.3 ++R= $V.3 + + # What to install. +-TO_BIN= lua luac ++TO_BIN= lua$(V) luac$(V) ++TO_BIN_LINKS= lua$(V):lua luac$(V):luac + TO_INC= lua.h luaconf.h lualib.h lauxlib.h lua.hpp + TO_LIB= liblua.a ++TO_LIBSO= liblua.so liblua.so.$V + TO_MAN= lua.1 luac.1 + +-# Lua version and release. +-V= 5.3 +-R= $V.3 +- + # Targets start here. + all: $(PLAT) + + $(PLATS) clean: +- cd src && $(MAKE) $@ ++ cd src && $(MAKE) $@ V=$(V) R=$(R) + + test: dummy + src/lua -v +@@ -60,8 +62,10 @@ + install: dummy + cd src && $(MKDIR) $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB) $(INSTALL_MAN) $(INSTALL_LMOD) $(INSTALL_CMOD) + cd src && $(INSTALL_EXEC) $(TO_BIN) $(INSTALL_BIN) ++ cd src && for FNAME in $(TO_BIN_LINKS); do echo ln -fs $${FNAME%:*} $(INSTALL_BIN)/$${FNAME#*:}; ln -fs $${FNAME%:*} $(INSTALL_BIN)/$${FNAME#*:}; done + cd src && $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC) + cd src && $(INSTALL_DATA) $(TO_LIB) $(INSTALL_LIB) ++ cd src && $(INSTALL_EXEC) $(TO_LIBSO) $(INSTALL_LIB) + cd doc && $(INSTALL_DATA) $(TO_MAN) $(INSTALL_MAN) + + uninstall: diff --git a/patches/mc-4.8.17.local.patch b/patches/mc-4.8.17.local.patch new file mode 100644 index 00000000..05c2ac50 --- /dev/null +++ b/patches/mc-4.8.17.local.patch @@ -0,0 +1,20 @@ +--- mc-4.8.17/configure.orig 2016-05-07 18:13:45.000000000 +0200 ++++ mc-4.8.17/configure 2016-09-06 18:16:45.987179012 +0200 +@@ -19922,7 +19922,7 @@ + + + # Determine how to get the list of mounted file systems. +-ac_list_mounted_fs= ++#ac_list_mounted_fs= + + # If the getmntent function is available but not in the standard library, + # make sure LIBS contains the appropriate -l option. +@@ -20634,7 +20634,7 @@ + + + # Determine how to get the list of mounted file systems. +-ac_list_mounted_fs= ++#ac_list_mounted_fs= + + # If the getmntent function is available but not in the standard library, + # make sure LIBS contains the appropriate -l option. diff --git a/patches/nc110.local.patch b/patches/nc110.local.patch new file mode 100644 index 00000000..fcf63536 --- /dev/null +++ b/patches/nc110.local.patch @@ -0,0 +1,56 @@ +--- nc110/Makefile.orig 1996-03-20 03:16:06.000000000 +0000 ++++ nc110/Makefile 2016-09-11 20:44:21.896119203 +0000 +@@ -9,13 +9,13 @@ + # pick gcc if you'd rather , and/or do -g instead of -O if debugging + # debugging + # DFLAGS = -DTEST -DDEBUG +-CFLAGS = -O ++CFLAGS = -O $(CFLAGS_EXTRA) + XFLAGS = # xtra cflags, set by systype targets + XLIBS = # xtra libs if necessary? + # -Bstatic for sunos, -static for gcc, etc. You want this, trust me. + STATIC = +-CC = cc $(CFLAGS) +-LD = $(CC) -s # linker; defaults to stripped executables ++CC = cc ${CFLAGS} ++LD = $(CC) $(LDFLAGS_DEBUG) # linker; defaults to stripped executables + o = o # object extension + + ALL = nc +@@ -28,7 +28,7 @@ + ### HARD TARGETS + + nc: netcat.c +- $(LD) $(DFLAGS) $(XFLAGS) $(STATIC) -o nc netcat.c $(XLIBS) ++ $(LD) $(CFLAGS) $(LDFLAGS) $(DFLAGS) $(XFLAGS) $(STATIC) -o nc netcat.c $(XLIBS) + + nc-dos: + @echo "DOS?! Maybe someday, but not now" +@@ -109,6 +109,10 @@ + next: + make -e $(ALL) $(MFLAGS) XFLAGS='-DNEXT' STATIC=-Bstatic + ++# midipix ++midipix: ++ make -e $(ALL) $(MFLAGS) XFLAGS='-DLINUX' STATIC= ++ + # start with this for a new architecture, and see what breaks. + generic: + make -e $(ALL) $(MFLAGS) XFLAGS='-DGENERIC' STATIC= +--- nc110/generic.h.orig 1996-02-18 01:36:43.000000000 +0000 ++++ nc110/generic.h 2016-06-15 18:44:06.379382216 +0000 +@@ -360,6 +360,14 @@ + #undef HAVE_SELECT_X + #endif /* NeXTSTEP 3.2 motorola */ + ++/* midipix */ ++#ifdef MIDIPIX ++#undef UTMPX ++#undef HAVE_SYSINFO ++#undef HAVE_SELECT_H ++#undef HAVE_TTYENT_H ++#endif /* midipix */ ++ + /* Make some "generic" assumptions if all else fails */ + #ifdef GENERIC + #undef HAVE_FLOCK diff --git a/patches/ncurses-6.0.local.patch b/patches/ncurses-6.0.local.patch new file mode 100644 index 00000000..6b86c27b --- /dev/null +++ b/patches/ncurses-6.0.local.patch @@ -0,0 +1,33 @@ +--- ncurses-6.0/configure.orig 2015-08-05 09:20:32.000000000 +0000 ++++ ncurses-6.0/configure 2016-02-23 11:33:12.718112802 +0000 +@@ -5856,7 +5856,7 @@ + LD_RPATH_OPT="-rpath " + fi + ;; +-(linux*|gnu*|k*bsd*-gnu) ++(linux*|gnu*|k*bsd*-gnu|midipix*) + LD_RPATH_OPT="-Wl,-rpath," + ;; + (openbsd[2-9].*|mirbsd*) +@@ -6188,7 +6188,7 @@ + fi + cf_cv_rm_so_locs=yes + ;; +- (linux*|gnu*|k*bsd*-gnu) ++ (linux*|gnu*|k*bsd*-gnu|midipix*) + if test "$DFT_LWR_MODEL" = "shared" ; then + LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)" + LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" +--- ncurses-6.0/misc/Makefile.in.orig 2015-08-05 23:15:41.000000000 +0000 ++++ ncurses-6.0/misc/Makefile.in 2016-06-23 08:40:43.767712775 +0000 +@@ -110,8 +110,8 @@ + install.libs :: $(DESTDIR)$(bindir) ncurses-config + $(INSTALL_SCRIPT) ncurses-config $(DESTDIR)$(bindir)/$(NCURSES_CONFIG) + +-@MAKE_PC_FILES@install.libs :: pc-files $(DESTDIR)$(PKG_CONFIG_LIBDIR) +-@MAKE_PC_FILES@ $(SHELL) -c 'for name in *.pc; do $(INSTALL_DATA) $$name $(DESTDIR)$(PKG_CONFIG_LIBDIR)/$$name; done' ++@MAKE_PC_FILES@install.libs :: pc-files $(PKG_CONFIG_LIBDIR) ++@MAKE_PC_FILES@ $(SHELL) -c 'for name in *.pc; do $(INSTALL_DATA) $$name $(PKG_CONFIG_LIBDIR)/$$name; done' + + @MAKE_PC_FILES@sources :: pc-files + @MAKE_PC_FILES@pc-files : diff --git a/patches/p7zip.local.patch b/patches/p7zip.local.patch new file mode 100644 index 00000000..e9233672 --- /dev/null +++ b/patches/p7zip.local.patch @@ -0,0 +1,14 @@ +diff -ru midipix_build.orig/build.vars midipix_build/build.vars +--- midipix_build.orig/build.vars 2016-11-11 20:27:40.381427111 +0100 ++++ midipix_build/build.vars 2016-11-11 23:23:58.045425113 +0100 +@@ -640,5 +640,10 @@ + : ${PKG_ZSH_SHA256SUM:=f17916320ffaa844bbd7ce48ceeb5945fc5f3eff64b149b4229bbfbdf3795a9d}; + : ${PKG_ZSH_URL:="https://fourdots.com/mirror/zsh/zsh-${PKG_ZSH_VERSION}.tar.xz"}; + : ${PKG_ZSH_FNAME:=zsh-${PKG_ZSH_VERSION}.tar.xz}; ++: ${PKG_P7ZIP_URL_TYPE:=git}; ++: ${PKG_P7ZIP_URL:=https://github.com/Redfoxmoon3/p7zip-midipix.git}; ++: ${PKG_P7ZIP_BUILD_DIR:=p7zip-midipix.git}; ++: ${PKG_P7ZIP_NO_MAKE_INSTALL:=1}; ++: ${PKG_P7ZIP_INSTALL_FILES:="bin/7za=bin/"}; + + # vim:filetype=sh textwidth=0 diff --git a/patches/pacman-5.0.1.local.patch b/patches/pacman-5.0.1.local.patch new file mode 100644 index 00000000..7df4cd24 --- /dev/null +++ b/patches/pacman-5.0.1.local.patch @@ -0,0 +1,44 @@ +--- pacman-5.0.1/lib/libalpm/Makefile.am.orig 2016-02-23 03:46:25.000000000 +0000 ++++ pacman-5.0.1/lib/libalpm/Makefile.am 2016-05-31 06:39:23.693111052 +0000 +@@ -78,6 +78,7 @@ + $(GPGME_LIBS) \ + $(LIBARCHIVE_LIBS) \ + $(LIBCURL_LIBS) \ +- $(LIBSSL_LIBS) ++ $(LIBSSL_LIBS) \ ++ $(LIBALPM_LIBS) + + # vim:set noet: +--- pacman-5.0.1/src/pacman/Makefile.am.orig 2016-02-23 03:46:25.000000000 +0000 ++++ pacman-5.0.1/src/pacman/Makefile.am 2016-05-31 08:33:33.452959027 +0000 +@@ -47,6 +47,6 @@ + util.h util.c \ + util-common.h util-common.c + +-LDADD = $(LTLIBINTL) $(top_builddir)/lib/libalpm/.libs/libalpm.la ++LDADD = $(LTLIBINTL) $(top_builddir)/lib/libalpm/libalpm.la + + # vim:set noet: +--- pacman-5.0.1/src/util/Makefile.am.orig 2016-02-23 03:46:25.000000000 +0000 ++++ pacman-5.0.1/src/util/Makefile.am 2016-05-31 08:33:48.912958683 +0000 +@@ -19,16 +19,16 @@ + $(LIBARCHIVE_CFLAGS) + + cleanupdelta_SOURCES = cleanupdelta.c +-cleanupdelta_LDADD = $(top_builddir)/lib/libalpm/.libs/libalpm.la ++cleanupdelta_LDADD = $(top_builddir)/lib/libalpm/libalpm.la + + pacsort_SOURCES = pacsort.c util-common.c +-pacsort_LDADD = $(top_builddir)/lib/libalpm/.libs/libalpm.la ++pacsort_LDADD = $(top_builddir)/lib/libalpm/libalpm.la + + pactree_SOURCES = pactree.c util-common.c +-pactree_LDADD = $(top_builddir)/lib/libalpm/.libs/libalpm.la ++pactree_LDADD = $(top_builddir)/lib/libalpm/libalpm.la + + testpkg_SOURCES = testpkg.c +-testpkg_LDADD = $(top_builddir)/lib/libalpm/.libs/libalpm.la ++testpkg_LDADD = $(top_builddir)/lib/libalpm/libalpm.la + + vercmp_SOURCES = vercmp.c + vercmp_LDADD = $(top_builddir)/lib/libalpm/libalpm_la-version.lo diff --git a/patches/pkg-cron.git.local.patch b/patches/pkg-cron.git.local.patch new file mode 100644 index 00000000..4d6bc53e --- /dev/null +++ b/patches/pkg-cron.git.local.patch @@ -0,0 +1,22 @@ +--- pkg-cron.git/Makefile.orig 2016-07-11 19:06:33.212362869 +0000 ++++ pkg-cron.git/Makefile 2016-09-11 20:37:42.714987721 +0000 +@@ -79,7 +79,7 @@ + #DEFS = -D_BSD_SIGNALS -Dconst= + #<> + #INSTALL = installbsd +-INSTALL = install -s ++INSTALL = install $(INSTALLFLAGS) + #<> + # LDFLAGS = -s + # Let install do the strip +@@ -118,8 +118,8 @@ + $(CC) $(LDFLAGS) -o crontab $(CRONTAB_OBJ) $(LIBS) + + install : all +- $(INSTALL) -c -m 755 -o root cron $(DESTSBIN)/ +- $(INSTALL) -c -m 4755 -o root crontab $(DESTBIN)/ ++ $(INSTALL) -c -m 755 cron $(DESTSBIN)/ ++ $(INSTALL) -c -m 4755 crontab $(DESTBIN)/ + sh putman.sh crontab.1 $(DESTMAN) + sh putman.sh cron.8 $(DESTMAN) + sh putman.sh crontab.5 $(DESTMAN) diff --git a/patches/tcsh-6.19.00.local.patch b/patches/tcsh-6.19.00.local.patch new file mode 100644 index 00000000..45674066 --- /dev/null +++ b/patches/tcsh-6.19.00.local.patch @@ -0,0 +1,201 @@ +--- tcsh-6.19.00/configure.orig 2015-05-21 21:41:48.000000000 +0000 ++++ tcsh-6.19.00/configure 2016-05-26 11:51:44.823732557 +0000 +@@ -2975,6 +2975,11 @@ + tcsh_config_file=qnx6 + ;; + ++ ## midipix ++ *-midipix*) ++ tcsh_config_file=midipix ++ ;; ++ + * ) + as_fn_error $? "Tcsh can't guess the configuration file name + for \`${host}' systems. +--- tcsh-6.19.00/sh.h.orig 2015-05-10 13:29:28.000000000 +0000 ++++ tcsh-6.19.00/sh.h 2016-05-26 12:16:19.303699832 +0000 +@@ -333,7 +333,7 @@ + #endif /* POSIX && !WINNT_NATIVE */ + #include + +-#if SYSVREL > 0 || defined(_IBMR2) || defined(_MINIX) || defined(__linux__) || defined(__GNU__) || defined(__GLIBC__) ++#if SYSVREL > 0 || defined(_IBMR2) || defined(_MINIX) || defined(__linux__) || defined(__GNU__) || defined(__GLIBC__) || defined(__midipix__) + # if !defined(pyr) && !defined(stellar) + # include + # ifdef _MINIX +--- tcsh-6.19.00/Makefile.in.orig 2014-07-24 22:52:13.000000000 +0000 ++++ tcsh-6.19.00/Makefile.in 2016-05-26 12:43:28.099663682 +0000 +@@ -24,6 +24,7 @@ + CF=-c + + CPPFLAGS=-I. -I$(srcdir) ++CPPFLAGS_FOR_GETHOST=-I. -I$(srcdir) + + LFLAGS= + # hpux lint +@@ -449,7 +450,7 @@ + + gethost: gethost.c sh.err.h tc.const.h sh.h + rm -f gethost +- ${CC_FOR_GETHOST} -o gethost ${CPPFLAGS} ${CFLAGS} $(srcdir)/gethost.c ++ ${CC_FOR_GETHOST} -o gethost ${CPPFLAGS_FOR_GETHOST} ${CFLAGS_FOR_GETHOST} $(srcdir)/gethost.c + + tc.defs.c: gethost host.defs + @rm -f $@.tmp +--- tcsh-6.19.00/config/midipix.orig 1970-01-01 00:00:00.000000000 +0000 ++++ tcsh-6.19.00/config/midipix 2016-05-26 13:04:58.627635040 +0000 +@@ -0,0 +1,138 @@ ++/* ++ * config.h -- configure various defines for tcsh ++ * ++ * All source files should #include this FIRST. ++ * ++ * This is the config file for midipix systems ++ */ ++ ++#ifndef _h_config ++#define _h_config ++/****************** System dependant compilation flags ****************/ ++/* ++ * POSIX This system supports IEEE Std 1003.1-1988 (POSIX). ++ */ ++#define POSIX ++ ++/* ++ * POSIXJOBS This system supports the optional IEEE Std 1003.1-1988 (POSIX) ++ * job control facilities. ++ */ ++#define POSIXJOBS ++ ++/* ++ * VFORK This machine has a vfork(). ++ * It used to be that for job control to work, this define ++ * was mandatory. This is not the case any more. ++ * If you think you still need it, but you don't have vfork, ++ * define this anyway and then do #define vfork fork. ++ * I do this anyway on a Sun because of yellow pages brain damage, ++ * [should not be needed under 4.1] ++ * and on the iris4d cause SGI's fork is sufficiently "virtual" ++ * that vfork isn't necessary. (Besides, SGI's vfork is weird). ++ * Note that some machines eg. rs6000 have a vfork, but not ++ * with the berkeley semantics, so we cannot use it there either. ++ */ ++#undef VFORK ++ ++/* ++ * BSDJOBS You have BSD-style job control (both process groups and ++ * a tty that deals correctly ++ */ ++#define BSDJOBS ++ ++/* ++ * BSDTIMES You have BSD-style process time stuff (like rusage) ++ * This may or may not be true. For example, Apple Unix ++ * (OREO) has BSDJOBS but not BSDTIMES. ++ */ ++#define BSDTIMES ++ ++/* ++ * BSDLIMIT You have BSD-style resource limit stuff (getrlimit/setrlimit) ++ */ ++#define BSDLIMIT ++ ++/* ++ * TERMIO You have struct termio instead of struct sgttyb. ++ * This is usually the case for SVID systems, where ++ * BSD uses sgttyb. POSIX systems should define this ++ * anyway, even though they use struct termios. ++ */ ++#define TERMIO ++ ++/* ++ * SYSVREL Your machine is SYSV based (HPUX, A/UX) ++ * NOTE: don't do this if you are on a Pyramid -- tcsh is ++ * built in a BSD universe. ++ * Set SYSVREL to 1, 2, 3, or 4, depending the version of System V ++ * you are running. Or set it to 0 if you are not SYSV based ++ * ++ * Note: Linux should work with any SYSVREL < 3. ++ */ ++#define SYSVREL 2 ++ ++/* ++ * YPBUGS Work around Sun YP bugs that cause expansion of ~username ++ * to send command output to /dev/null ++ */ ++#undef YPBUGS ++ ++/* ++ * Get the name space we want. ++ * ++ * The more recent defaults for gcc (e.g. on Red Hat 7.0) ++ * also define _POSIX_C_SOURCE, which throws our code off. ++ */ ++ ++#define __STRICT_ANSI__ ++#ifndef _BSD_SOURCE ++# define _BSD_SOURCE ++#endif ++#ifndef _SVID_SOURCE ++# define _SVID_SOURCE ++#endif ++#ifndef _POSIX_SOURCE ++# define _POSIX_SOURCE ++#endif ++#ifndef _XOPEN_SOURCE ++# define _XOPEN_SOURCE 500 ++#endif ++#ifndef _GNU_SOURCE ++# define _GNU_SOURCE ++#endif ++ ++/* ++ * Large file support from ++ */ ++ ++#ifndef _LARGEFILE_SOURCE ++# define _LARGEFILE_SOURCE ++#endif ++#ifndef _LARGEFILE64_SOURCE ++# define _LARGEFILE64_SOURCE ++#endif ++#ifndef _FILE_OFFSET_BITS ++# define _FILE_OFFSET_BITS 64 ++#endif ++ ++/****************** local defines *********************/ ++#ifndef _PATH_TCSHELL ++#define _PATH_TCSHELL "/bin/tcsh" ++#endif ++#define ECHO_STYLE BOTH_ECHO ++ ++#if !defined(SYSMALLOC) ++# define SYSMALLOC ++#endif ++#if !defined(NISPLUS) ++# define NISPLUS ++#endif ++#if !defined(POSIX) ++# define POSIX ++#endif ++ ++/* midipix allows paths prepended with double slashes (network paths). */ ++#define HAVE_SLASHSLASH 1 ++ ++#endif /* _h_config */ +--- tcsh-6.19.00/config_f.h.orig 2015-02-22 17:31:54.000000000 +0100 ++++ tcsh-6.19.00/config_f.h 2016-10-14 22:10:42.212000000 +0200 +@@ -135,11 +135,9 @@ + * This can be much slower and no memory statistics will be + * provided. + */ +-#if defined(__MACHTEN__) || defined(PURIFY) || defined(MALLOC_TRACE) || defined(_OSD_POSIX) || defined(__MVS__) || defined (__CYGWIN__) || defined(__GLIBC__) || defined(__OpenBSD__) || defined(__APPLE__) ++ ++/* always use the system malloc. seriously guys. */ + # define SYSMALLOC +-#else +-# undef SYSMALLOC +-#endif + + /* + * USE_ACCESS Use access(2) rather than stat(2) when POSIX is defined. diff --git a/patches/tmux-2.2.local.patch b/patches/tmux-2.2.local.patch new file mode 100644 index 00000000..3fdec0a7 --- /dev/null +++ b/patches/tmux-2.2.local.patch @@ -0,0 +1,51 @@ +--- tmux-2.2/configure.orig 2016-04-11 02:01:19.000000000 +0200 ++++ tmux-2.2/configure 2016-06-24 12:56:52.685289900 +0200 +@@ -3664,18 +3664,6 @@ + $as_echo "$ac_cv_prog_cc_g" >&6; } + if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +-elif test $ac_cv_prog_cc_g = yes; then +- if test "$GCC" = yes; then +- CFLAGS="-g -O2" +- else +- CFLAGS="-g" +- fi +-else +- if test "$GCC" = yes; then +- CFLAGS="-O2" +- else +- CFLAGS= +- fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 + $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +--- tmux-2.2/Makefile.in.orig 2016-04-11 02:01:16.000000000 +0200 ++++ tmux-2.2/Makefile.in 2016-06-24 12:58:45.526157800 +0200 +@@ -94,10 +94,10 @@ + + # glibc as usual does things ass-backwards and hides useful things by default, + # so everyone has to add this. +-@IS_GLIBC_TRUE@am__append_1 = -D_GNU_SOURCE ++am__append_1 = -D_GNU_SOURCE + + # Set flags for gcc. +-@IS_GCC_TRUE@am__append_2 = -std=gnu99 -O2 ++@IS_GCC_TRUE@am__append_2 = -std=gnu99 + @IS_DEBUG_TRUE@@IS_GCC_TRUE@am__append_3 = -g -Wno-long-long -Wall -W \ + @IS_DEBUG_TRUE@@IS_GCC_TRUE@ -Wnested-externs -Wformat=2 \ + @IS_DEBUG_TRUE@@IS_GCC_TRUE@ -Wmissing-prototypes \ +--- tmux-2.2/tmux.c.orig 2016-03-05 18:55:49.000000000 +0100 ++++ tmux-2.2/tmux.c 2016-06-24 13:00:39.079504000 +0200 +@@ -133,10 +133,12 @@ + errno = ENOTDIR; + goto fail; + } ++#if 0 + if (sb.st_uid != uid || (sb.st_mode & S_IRWXO) != 0) { + errno = EACCES; + goto fail; + } ++#endif + + if (realpath(base, resolved) == NULL) + strlcpy(resolved, base, sizeof resolved); diff --git a/patches/unzip60.local.patch b/patches/unzip60.local.patch new file mode 100644 index 00000000..1b5006e6 --- /dev/null +++ b/patches/unzip60.local.patch @@ -0,0 +1,14 @@ +--- unzip60/unix/Makefile.orig 2009-01-18 23:41:18.000000000 +0100 ++++ unzip60/unix/Makefile 2016-10-17 05:23:43.308917300 +0200 +@@ -535,6 +535,11 @@ + # INDIVIDUAL MACHINE MAKERULES # + ################################ + ++#Midipix target ++midipix: ++ $(MAKE) $(MAKEF) unzips CC="x86_64-nt64-midipix-gcc" CFLAGS="-g3 -O0 -I. -DUNIX -DNO_BZIP2_SUPPORT -DLARGE_FILE_SUPPORT -DUNICODE_SUPPORT -DUNICODE_WCHAR -DUNICODE_SUPPORT \ ++ -DUTF8_MAYBE_NATIVE -DNO_LCHMOD -DHAVE_DIRENT_H -DHAVE_TERMIOS_H -D_MBCS" CRCA_O="" AS="x86_64-nt64-midipix-gcc -c" LFLAGS1="" LF2="" ++ + #---------------------------------------------------------------------------- + # Generic targets using the configure script to determine configuration. + #---------------------------------------------------------------------------- diff --git a/patches/vim-7.4.1952.local.patch b/patches/vim-7.4.1952.local.patch new file mode 100644 index 00000000..178e0fc5 --- /dev/null +++ b/patches/vim-7.4.1952.local.patch @@ -0,0 +1,56 @@ +--- vim-7.4.1952/src/osdef2.h.in.orig 2016-06-21 23:42:20.000000000 +0200 ++++ vim-7.4.1952/src/osdef2.h.in 2016-09-06 18:33:43.655518796 +0200 +@@ -92,5 +92,5 @@ + extern int _Xmblen(char const *, size_t); + #else + /* This is different from the header but matches mblen() */ +-extern int _Xmblen(char *, size_t); ++extern int _Xmblen(char *, int); + #endif +--- vim-7.4.1952/src/Makefile.orig 2016-06-21 23:42:20.000000000 +0200 ++++ vim-7.4.1952/src/Makefile 2016-09-07 06:29:14.483862359 +0200 +@@ -2692,7 +2692,7 @@ + $(PERLLIB)/ExtUtils/typemap if_perl.xs >> $@ + + auto/osdef.h: auto/config.h osdef.sh osdef1.h.in osdef2.h.in +- CC="$(CC) $(OSDEF_CFLAGS)" srcdir=$(srcdir) sh $(srcdir)/osdef.sh ++ CC="$(CC) $(OSDEF_CFLAGS) -I$(PKG_PREFIX)/include" srcdir=$(srcdir) sh $(srcdir)/osdef.sh + + auto/pathdef.c: Makefile auto/config.mk + -@echo creating $@ +--- vim-7.4.1952/src/auto/configure.orig 2016-06-21 23:42:20.000000000 +0200 ++++ vim-7.4.1952/src/auto/configure 2016-09-16 16:37:28.147266000 +0200 +@@ -2603,7 +2603,7 @@ + ## -------------------- ## + + ac_ext=c +-ac_cpp='$CPP $CPPFLAGS' ++ac_cpp='$CPP $CFLAGS $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' + ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' + ac_compiler_gnu=$ac_cv_c_compiler_gnu +@@ -7607,6 +7607,7 @@ + + # Standard set of common directories for X headers. + # Check X11 before X11Rn because it is often a symlink to the current release. ++if test -z "$ac_x_header_dirs"; then + ac_x_header_dirs=' + /usr/X11/include + /usr/X11R7/include +@@ -7645,6 +7646,7 @@ + + /usr/openwin/include + /usr/openwin/share/include' ++fi + + if test "$ac_x_includes" = no; then + # Guess where to find include files, by looking for Xlib.h. +@@ -9488,7 +9490,7 @@ + + + +- ++SKIP_MOTIF=YES + if test -z "$SKIP_MOTIF"; then + gui_XXX="/usr/XXX/Motif* /usr/Motif*/XXX /usr/XXX /usr/shlib /usr/X11*/XXX /usr/XXX/X11* /usr/dt/XXX /local/Motif*/XXX /local/XXX/Motif* /usr/local/Motif*/XXX /usr/local/XXX/Motif* /usr/local/XXX /usr/local/X11*/XXX /usr/local/LessTif/Motif*/XXX $MOTIFHOME/XXX" + GUI_INC_LOC="`echo $GUI_INC_LOC|sed 's%-I%%g'`" diff --git a/patches/weechat-1.6.local.patch b/patches/weechat-1.6.local.patch new file mode 100644 index 00000000..c25f36ca --- /dev/null +++ b/patches/weechat-1.6.local.patch @@ -0,0 +1,45 @@ +diff -ru weechat-1.6.orig/config.sub weechat-1.6/config.sub +--- weechat-1.6.orig/config.sub 2016-10-19 20:51:03.610252372 +0200 ++++ weechat-1.6/config.sub 2016-10-19 20:33:14.686252372 +0200 +@@ -1376,7 +1376,7 @@ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* | -cegcc* \ + | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ +- | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ ++ | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ + | -linux-newlib* | -linux-musl* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ +--- weechat-1.6/configure.orig 2016-11-15 19:19:45.531918300 +0100 ++++ weechat-1.6/configure 2016-11-15 19:23:22.078226900 +0100 +@@ -23683,7 +23683,7 @@ + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + $as_echo "yes" >&6; } + GCRYPT_CFLAGS=`libgcrypt-config --cflags` +- GCRYPT_LFLAGS=`libgcrypt-config --libs` ++ GCRYPT_LFLAGS="-lgcrypt -lgpg-error" + + + fi +@@ -23760,8 +23760,8 @@ + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + $as_echo "yes" >&6; } +- GNUTLS_CFLAGS=`pkg-config gnutls --cflags` +- GNUTLS_LFLAGS=`pkg-config gnutls --libs` ++ GNUTLS_CFLAGS=`$PKG_CONFIG gnutls --cflags` ++ GNUTLS_LFLAGS=`$PKG_CONFIG gnutls --libs` + + + $as_echo "#define HAVE_GNUTLS 1" >>confdefs.h +@@ -23972,8 +23972,8 @@ + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + $as_echo "yes" >&6; } +- ZLIB_CFLAGS=`pkg-config zlib --cflags` +- ZLIB_LFLAGS=`pkg-config zlib --libs` ++ ZLIB_CFLAGS=`$PKG_CONFIG zlib --cflags` ++ ZLIB_LFLAGS=`$PKG_CONFIG zlib --libs` + + + fi diff --git a/patches/zip30.local.patch b/patches/zip30.local.patch new file mode 100644 index 00000000..0c37bcf9 --- /dev/null +++ b/patches/zip30.local.patch @@ -0,0 +1,16 @@ +diff -ru zip30.orig/unix/Makefile zip30/unix/Makefile +--- zip30.orig/unix/Makefile 2008-05-07 08:33:56.000000000 +0200 ++++ zip30/unix/Makefile 2016-10-17 01:03:49.734470317 +0200 +@@ -196,6 +196,12 @@ + # NO_UNICODE_SUPPORT - do not enable Unicode support even if available. + # NO_BZIP2_SUPPORT - do not compile in bzip2 code even if available. + ++# Midipix target ++midipix: ++ $(MAKE) $(MAKEF) zips LDFLAGS1="" CC="x86_64-nt64-midipix-gcc" CPP="x86_64-nt64-midipix-gcc -E" \ ++ CFLAGS="-g3 -O0 -DUNIX -I. -DHAVE_TERMIOS_H -DNO_BZIP2_SUPPORT -DLARGE_FILE_SUPPORT -DUNICODE_SUPPORT \ ++ -DHAVE_DIRENT_H -DUIDGID_NOT_16BIT" OBJA="" OCRCU8="crc32_.o " OCRCTB="" LN="ln -s" LFLAGS2="" ++ + # Generic targets: + + generic: flags diff --git a/pkg-cron.git.local.patch b/pkg-cron.git.local.patch deleted file mode 100644 index 4d6bc53e..00000000 --- a/pkg-cron.git.local.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- pkg-cron.git/Makefile.orig 2016-07-11 19:06:33.212362869 +0000 -+++ pkg-cron.git/Makefile 2016-09-11 20:37:42.714987721 +0000 -@@ -79,7 +79,7 @@ - #DEFS = -D_BSD_SIGNALS -Dconst= - #<> - #INSTALL = installbsd --INSTALL = install -s -+INSTALL = install $(INSTALLFLAGS) - #<> - # LDFLAGS = -s - # Let install do the strip -@@ -118,8 +118,8 @@ - $(CC) $(LDFLAGS) -o crontab $(CRONTAB_OBJ) $(LIBS) - - install : all -- $(INSTALL) -c -m 755 -o root cron $(DESTSBIN)/ -- $(INSTALL) -c -m 4755 -o root crontab $(DESTBIN)/ -+ $(INSTALL) -c -m 755 cron $(DESTSBIN)/ -+ $(INSTALL) -c -m 4755 crontab $(DESTBIN)/ - sh putman.sh crontab.1 $(DESTMAN) - sh putman.sh cron.8 $(DESTMAN) - sh putman.sh crontab.5 $(DESTMAN) diff --git a/pkg.build b/pkg.build deleted file mode 100644 index 888bc133..00000000 --- a/pkg.build +++ /dev/null @@ -1,274 +0,0 @@ -# -# . ./build.vars and set -o errexit -o noglob are assumed. -# - -parse_with_pkg_name ${SCRIPT_FNAME%%[0-9][0-9].*} ${2} ${PKG_BUILD_NAMES}; -if [ ${PKG_DISABLED:-0} -eq 1 ]; then - exit 0; -elif [ "${ARG_RESTART_SCRIPT_AT}" = diff ]; then - printf "" > ${MIDIPIX_BUILD_PWD}/${PKG_SUBDIR}.local.patch.new; - for __ in $(find ${PKG_SUBDIR} -name \*.orig); do - if [ -e ${__%.orig} ]; then - echo diff -Nru ${__} ${__%.orig}; - set +o errexit; diff -Nru ${__} ${__%.orig} \ - >> ${MIDIPIX_BUILD_PWD}/${PKG_SUBDIR}.local.patch.new; __=${?}; set -o errexit; - if [ ${__} -ge 2 ]; then - exit 1; - fi; - fi; - done; - ls -la ${MIDIPIX_BUILD_PWD}/${PKG_SUBDIR}.local.patch.new; - exit 0; -fi; -if ! is_build_script_done fetch; then - if test_cmd pkg_${PKG_NAME}_fetch; then - pkg_${PKG_NAME}_fetch; - else - if [ "${PKG_URL_TYPE:-wget}" = wget ]; then - fetch "${PKG_URL}" ${PKG_SHA256SUM}; - else - fetch_git ${PKG_SUBDIR} ${PKG_URL} ${PKG_GIT_BRANCH}; - fi; - fi; - if test_cmd pkg_${PKG_NAME}_fetch_post; then - pkg_${PKG_NAME}_fetch_post; - fi; - set_build_script_done fetch -extract; -fi; -if test_cmd pkg_${PKG_NAME}_finish; then - pkg_${PKG_NAME}_finish; exit 0; -elif [ "${PKG_URL_TYPE:-wget}" = wget ] &&\ -! is_build_script_done extract; then - secure_rm ${PKG_SUBDIR}; - if [ ${PKG_SUBDIR_CREATE:-0} -eq 1 ]; then - insecure_mkdir ${PKG_SUBDIR}; - fi; - if [ "${PKG_FNAME##*.tar.}" = "bz2" ]; then - bunzip2 -d < ${DLCACHEDIR}/${PKG_FNAME} | tar ${PKG_SUBDIR_CREATE:+-C ${PKG_SUBDIR}} -xf -; - elif [ "${PKG_FNAME##*.tar.}" = "gz" ]; then - gunzip -d < ${DLCACHEDIR}/${PKG_FNAME} | tar ${PKG_SUBDIR_CREATE:+-C ${PKG_SUBDIR}} -xf -; - elif [ "${PKG_FNAME##*.tar.}" = "xz" ]; then - xz -d < ${DLCACHEDIR}/${PKG_FNAME} | tar ${PKG_SUBDIR_CREATE:+-C ${PKG_SUBDIR}} -xf -; - elif [ "${PKG_FNAME##*.t}" = "bz2" ]; then - bunzip2 -d < ${DLCACHEDIR}/${PKG_FNAME} | tar ${PKG_SUBDIR_CREATE:+-C ${PKG_SUBDIR}} -xf -; - elif [ "${PKG_FNAME##*.t}" = "gz" ]; then - gunzip -d < ${DLCACHEDIR}/${PKG_FNAME} | tar ${PKG_SUBDIR_CREATE:+-C ${PKG_SUBDIR}} -xf -; - elif [ "${PKG_FNAME##*.t}" = "xz" ]; then - xz -d < ${DLCACHEDIR}/${PKG_FNAME} | tar ${PKG_SUBDIR_CREATE:+-C ${PKG_SUBDIR}} -xf -; - else - tar ${PKG_SUBDIR_CREATE:+-C ${PKG_SUBDIR}} -xf ${DLCACHEDIR}/${PKG_FNAME}; - fi; - if test_cmd pkg_${PKG_NAME}_extract_post; then - pkg_${PKG_NAME}_extract_post; - fi; - set_build_script_done extract -build_dir; -fi; -if [ -z "${PKG_BUILD_DIR}" ]; then - set_build_dir ${PKG_SUBDIR} ${PKG_BUILD_TYPE:-native}; -fi; -if ! is_build_script_done build_dir; then - [ "${PKG_SUBDIR}" != "${PKG_BUILD_DIR}" ] &&\ - secure_rm ${PKG_BUILD_DIR}; - insecure_mkdir ${PKG_BUILD_DIR}; - set_build_script_done build_dir -patch; -fi; -if [ -e ${PKG_SUBDIR}/configure -o \ - -e ${PKG_SUBDIR}/configure.ac -o \ - -e ${PKG_SUBDIR}/configure.in -o \ - -e ${PKG_SUBDIR}/config.guess ] \ -&& ! is_build_script_done autoconf; then - find ${PKG_SUBDIR} -name config.sub \ - -exec echo mv -- {} {}.orig \; \ - -exec mv -- {} {}.orig \; \ - -exec echo install -m 0700 ${MIDIPIX_BUILD_PWD}/config.sub {} \; \ - -exec install -m 0700 ${MIDIPIX_BUILD_PWD}/config.sub {} \;; - if [ -e ${PKG_SUBDIR}/configure.ac -a \ - ! -e ${PKG_SUBDIR}/configure ]; then - if [ -x ${PKG_SUBDIR}/autogen.sh ]; then - for __ in ${PKG_SUBDIR}/build-aux ${PKG_SUBDIR}; do - if [ -e ${__} ]; then - echo install -m 0700 \ - ${MIDIPIX_BUILD_PWD}/config.sub \ - ${__}/config.sub; - install -m 0700 \ - ${MIDIPIX_BUILD_PWD}/config.sub \ - ${__}/config.sub; - break; - fi; - done; - (cd ${PKG_SUBDIR} && ./autogen.sh) || exit 1; - else - (cd ${PKG_SUBDIR} && autoconf) || exit 1; - fi; - fi; - for __ in ${PKG_BUILD_DIR} ${PKG_CONFIG_CACHE_EXTRA}; do - echo cp -- ${MIDIPIX_BUILD_PWD}/config.cache ${__}/; - cp -- ${MIDIPIX_BUILD_PWD}/config.cache ${__}/; - done; - set_build_script_done autoconf -patch; -fi; -if ! is_build_script_done patch; then - for __patch_fname in \ - ${MIDIPIX_BUILD_PWD}/${PKG_SUBDIR}.local.patch \ - ${MIDIPIX_BUILD_PWD}/${PKG_SUBDIR}.local@${BUILD_HNAME}.patch \ - ${MIDIPIX_BUILD_PWD}/../${PKG_SUBDIR}.local.patch \ - ${MIDIPIX_BUILD_PWD}/../${PKG_SUBDIR}.local@${BUILD_HNAME}.patch; do - if [ -r "${__patch_fname}" ]; then - patch -b -d ${PKG_SUBDIR} -p1 < ${__patch_fname}; - fi; - done; unset __patch_fname; - if test_cmd pkg_${PKG_NAME}_patch_post; then - pkg_${PKG_NAME}_patch_post; - fi; - set_build_script_done patch -configure; -fi; -PKG_SUBDIR_PATH=${PWD}/${PKG_SUBDIR#/}; -if [ -z "${PKG_CONFIGURE}" ]; then - PKG_CONFIGURE=${PKG_SUBDIR_PATH}/configure; -else - PKG_CONFIGURE=${PWD}/${PKG_CONFIGURE#/}; -fi; -cd ${PKG_BUILD_DIR}; -if [ "${PKG_BUILD_TYPE}" = "host" ]; then - export AR=ar; - export CC=gcc; - export RANLIB=ranlib; -else - export AR=${PKG_TARGET}-ar; - export CC=${PKG_TARGET}-gcc; - export RANLIB=${PKG_TARGET}-ranlib; -fi; -if [ -x ${PKG_CONFIGURE} ]\ -&& ! is_build_script_done configure; then - if test_cmd pkg_${PKG_NAME}_configure_pre; then - pkg_${PKG_NAME}_configure_pre; - fi; - CFLAGS="${PKG_CFLAGS_CONFIGURE}${PKG_CFLAGS_CONFIGURE_EXTRA:+ ${PKG_CFLAGS_CONFIGURE_EXTRA}}"\ - LDFLAGS="${PKG_LDFLAGS_CONFIGURE}${PKG_LDFLAGS_CONFIGURE_EXTRA:+ ${PKG_LDFLAGS_CONFIGURE_EXTRA}}"\ - ${PKG_CONFIGURE} \ - ${PKG_CONFIGURE_ARGS} ${PKG_CONFIGURE_ARGS_EXTRA} ${PKG_CONFIGURE_ARGS_EXTRA_DEBUG}; - set_build_script_done configure clean -build; -else - __no_autoconf=1; - set_build_script_done clean -build; -fi; -if [ ${PKG_NO_CLEAN:-0} -eq 0 ]\ -&& ! is_build_script_done clean; then - make clean; - set_build_script_done clean -build; -fi; -if ! is_build_script_done build; then - if test_cmd pkg_${PKG_NAME}_build; then - pkg_${PKG_NAME}_build; - elif [ -n "${PKG_BUILD_CMDLINE}" ]; then - ${PKG_BUILD_CMDLINE}; - else - if [ "${PKG_SLIBTOOL}" != "default" ]; then - export MAKE="make LIBTOOL=${PKG_SLIBTOOL:-slibtool}"; - fi; - # N.B. We only specify CC= here if the current package does not use GNU - # autoconf as it often abuses it by appending -std={gnu99,...} to it - # instead of amending CFLAGS. - run_cmd_unsplit make \ - ${PKG_MAKEFLAGS_BUILD} \ - ${PKG_MAKEFLAGS_BUILD_EXTRA} \ - AR=${AR} ${__no_autoconf:+CC=${CC}} RANLIB=${RANLIB} \ - "${PKG_CFLAGS_BUILD:+CFLAGS=${PKG_CFLAGS_BUILD}}" \ - "${PKG_CFLAGS_BUILD_EXTRA:+CFLAGS+=${PKG_CFLAGS_BUILD_EXTRA}}" \ - "${PKG_LDFLAGS_BUILD:+LDFLAGS=${PKG_LDFLAGS_BUILD}}" \ - "${PKG_LDFLAGS_BUILD_EXTRA:+LDFLAGS+=${PKG_LDFLAGS_BUILD_EXTRA}}"; - unset __no_autoconf; - fi; - set_build_script_done build -install; -fi; -if ! is_build_script_done install; then - if test_cmd pkg_${PKG_NAME}_install; then - pkg_${PKG_NAME}_install; - else - if [ ${PKG_NO_MAKE_INSTALL:-0} -eq 0 ]; then - run_cmd_unsplit make \ - ${PKG_MAKEFLAGS_INSTALL} \ - ${PKG_MAKEFLAGS_INSTALL_EXTRA} \ - AR=${AR} CC=${CC} RANLIB=${RANLIB} \ - "${PKG_CFLAGS_INSTALL:+CFLAGS=${PKG_CFLAGS_INSTALL}}" \ - "${PKG_CFLAGS_INSTALL_EXTRA:+CFLAGS+=${PKG_CFLAGS_INSTALL_EXTRA}}" \ - "${PKG_LDFLAGS_INSTALL:+LDFLAGS=${PKG_LDFLAGS_INSTALL}}" \ - "${PKG_LDFLAGS_INSTALL_EXTRA:+LDFLAGS+=${PKG_LDFLAGS_INSTALL_EXTRA}}" \ - "${PKG_RANLIB_INSTALL:+RANLIB=${PKG_RANLIB_INSTALL}}" \ - ${PKG_INSTALL_TARGET:=install}; - if [ -n "${PKG_PREFIX_EXTRA}" ]; then - run_cmd_unsplit make \ - ${PKG_MAKEFLAGS_INSTALL} \ - ${PKG_MAKEFLAGS_INSTALL_EXTRA} \ - AR=${AR} CC=${CC} RANLIB=${RANLIB} \ - "${PKG_CFLAGS_INSTALL:+CFLAGS=${PKG_CFLAGS_INSTALL}}" \ - "${PKG_CFLAGS_INSTALL_EXTRA:+CFLAGS+=${PKG_CFLAGS_INSTALL_EXTRA}}" \ - "${PKG_LDFLAGS_INSTALL:+LDFLAGS=${PKG_LDFLAGS_INSTALL}}" \ - "${PKG_LDFLAGS_INSTALL_EXTRA:+LDFLAGS+=${PKG_LDFLAGS_INSTALL_EXTRA}}" \ - "${PKG_RANLIB_INSTALL:+RANLIB=${PKG_RANLIB_INSTALL}}" \ - ${PKG_INSTALL_TARGET_EXTRA:=install} \ - DESTDIR=${PKG_PREFIX_EXTRA}; - fi; - fi; - if test_cmd pkg_${PKG_NAME}_install_post; then - pkg_${PKG_NAME}_install_post; - fi; - fi; - if [ -d ${PKG_PREFIX}/lib ]; then - for __ in $(find ${PKG_PREFIX}/lib -type f -name \*.la); do - secure_rm ${__}; - done; - fi; - if [ -n "${PKG_INSTALL_FILES}" ]; then - (set -- ${PKG_INSTALL_FILES}; - while [ ${#} -gt 0 ]; do - case "${1}" in - @*=*) - __ln_target="${1%=*}"; - __ln_target="${__ln_target#@}"; - __ln_fname="${1#*=}"; - echo ln -sf -- ${__ln_target} ${PKG_PREFIX}/${__ln_fname}; - ln -sf -- ${__ln_target} ${PKG_PREFIX}/${__ln_fname}; - ;; - /=*) - __mkdir_fname="${1#/=}"; - insecure_mkdir ${PKG_PREFIX}/${__mkdir_fname}; - ;; - *) - __file_fname_src="${1%=*}"; - __file_fname_dst="${1#*=}"; - echo cp -pP -- ${__file_fname_src} ${PKG_PREFIX}/${__file_fname_dst}; - cp -pP -- ${__file_fname_src} ${PKG_PREFIX}/${__file_fname_dst}; - ;; - esac; shift; - done); - fi; - if test_cmd perk && test_cmd ${PKG_TARGET}-dlltool; then - for __so_fname in \ - $(find \( -name "*.so" \ - -or -name "*.so.[0-9]" \ - -or -name "*.so.[0-9].[0-9]" \ - -or -name "*.so.[0-9].[0-9].[0-9]" \) -printf '%P\n'); - do - if [ \( -e ${__so_fname%.so}.lib.a \) -o \ - \( ! -e ${PKG_PREFIX}/lib/$(basename ${__so_fname}) \) ]; - then - continue; - else - __so_name="${__so_fname%.so}"; - echo perk -epdlltool ${__so_fname} \> ${__so_fname%.so}.def; - perk -epdlltool ${__so_fname} > ${__so_fname%.so}.def; - echo ${PKG_TARGET}-dlltool -l ${__so_fname%.so}.lib.a \ - -D ${__so_fname} -d ${__so_fname%.so}.def; - ${PKG_TARGET}-dlltool -l ${__so_fname%.so}.lib.a \ - -D ${__so_fname} -d ${__so_fname%.so}.def; - echo cp -- ${__so_fname%.so}.lib.a "${PKG_PREFIX}/lib"; - cp -- ${__so_fname%.so}.lib.a "${PKG_PREFIX}/lib"; - fi; - done; - fi; - set_build_script_done install -finish; -fi; -set_build_script_done finish; - -# vim:filetype=sh diff --git a/scripts/gcc.full.build b/scripts/gcc.full.build new file mode 100644 index 00000000..91247e8c --- /dev/null +++ b/scripts/gcc.full.build @@ -0,0 +1,164 @@ +# +# . ./build.vars and set -o errexit -o noglob are assumed. +# + +# Order: stage1, runtime, full, native + +export MAKE="make LIBTOOL=slibtool"; +if [ "${2}" = runtime ]\ +|| [ "${2}" = libstdc++-v3 ]\ +|| [ "${2}" = full ]; then + set_build_dir cbb-gcc-${PKG_GCC_VERSION} cross; + cd ${PKG_BUILD_DIR}; + if [ "${2}" = runtime ]; then + # GCC, compiler runtime. + if ! is_build_script_done build; then + make ${MAKEFLAGS} all-target-libgcc; + set_build_script_done build -install; + fi; + if ! is_build_script_done install; then + make ${MAKEFLAGS} install-target-libgcc; + set_build_script_done install finish; + fi; + elif [ "${2}" = libstdc++-v3 ]; then + # GCC, libstdc++-v3. + if ! is_build_script_done build; then + make ${MAKEFLAGS} all-target-libstdc++-v3; + set_build_script_done build -install; + fi; + if ! is_build_script_done install; then + make ${MAKEFLAGS} install-target-libstdc++-v3; + set_build_script_done install finish; + fi; + elif [ "${2}" = full ]; then + # GCC, everything else. + if ! is_build_script_done build; then + make ${MAKEFLAGS}; + set_build_script_done build -install; + fi; + if ! is_build_script_done install; then + make ${MAKEFLAGS} install; + set_build_script_done install finish; + fi; + fi; +else + if [ "${2}" = stage1 ]; then + # GCC, stage1. + if ! is_build_script_done fetch; then + fetch_git cbb-gcc-${PKG_GCC_VERSION} \ + ${GITROOT}/cbb/cbb-gcc-${PKG_GCC_VERSION}; + set_build_script_done fetch -configure; + fi; + set_build_dir cbb-gcc-${PKG_GCC_VERSION} cross; + export cbb_ldflags_for_target=--sysroot=${PKG_PREFIX} \ + cbb_sysroot_for_libgcc=${PKG_PREFIX} \ + cbb_target=${TARGET} \ + cbb_neutral_libiberty=no \ + cbb_xgcc_for_specs=${WORKDIR}/${PKG_BUILD_DIR}/gcc/xgcc; + GCCTARGET_FLAGS="-DIN_TARGET_LIBRARY_BUILD --sysroot=${PKG_PREFIX}"; + elif [ "${2}" = native ]; then + # GCC, native. + set_build_dir cbb-gcc-${PKG_GCC_VERSION} native; + export cbb_ldflags_for_target=--sysroot=${PKG_PREFIX} \ + cbb_sysroot_for_libgcc=${PKG_PREFIX} \ + cbb_target=${TARGET} \ + cbb_xgcc_for_specs=${TARGET}-gcc; + GCCTARGET_FLAGS="-DIN_TARGET_LIBRARY_BUILD --sysroot=${PKG_PREFIX}"; + fi; + GCCFLAGS="${CFLAGS:+${CFLAGS} }--include $(readlink -f ${WORKDIR}/cbb-gcc-${PKG_GCC_VERSION}/libc/cbb-musl-pe.h)"; + for __ in CFLAGS CFLAGS_FOR_BUILD CPPFLAGS_FOR_BUILD CXXFLAGS CXXFLAGS_FOR_BUILD; do + export "${__}=${GCCFLAGS}"; + done; + for __ in CFLAGS_FOR_TARGET CPPFLAGS_FOR_TARGET CXXFLAGS_FOR_TARGET LIBCFLAGS_FOR_TARGET XGCC_FLAGS_FOR_TARGET; do + export "${__}=${GCCTARGET_FLAGS}"; + done; + for __ in cbb_cflags_for_stage1 cbb_cflags_for_stage2 cbb_cflags_for_stage3 cbb_cflags_for_stage4; do + export "${__}=${CFLAGS_FOR_BUILD}" ; + done; + export CFLAGS CXXFLAGS CFLAGS_FOR_BUILD CPPFLAGS_FOR_BUILD CXXFLAGS_FOR_BUILD CFLAGS_FOR_TARGET XGCC_FLAGS_FOR_TARGET CPPFLAGS_FOR_TARGET CXXFLAGS_FOR_TARGET LIBCFLAGS_FOR_TARGET; + if ! is_build_script_done configure; then + if [ "${2}" = stage1 ]; then + insecure_mkdir ${PKG_PREFIX}/include; + [ \! -d ${PKG_PREFIX}/usr ] && \ + ln -s -- . ${PKG_PREFIX}/usr; + _configure_args="--prefix=${PREFIX} --with-sysroot=${PKG_PREFIX}"; + elif [ "${2}" = native ]; then + insecure_mkdir ${PKG_PREFIX}/${TARGET}; + if [ \! -d ${PKG_PREFIX}/${TARGET}/usr ]; then + ln -s -- . ${PKG_PREFIX}/${TARGET}/usr; + fi; + if [ "${ARCH}" = nt32 ]; then + _configure_args="--host=i686-nt32-midipix"; + else + _configure_args="--host=x86_64-nt64-midipix"; + fi; + _configure_args="${_configure_args} \ + --prefix=/ \ + --with-elf=${PKG_PREFIX} \ + --with-gmp=${PKG_PREFIX} \ + --with-mpc=${PKG_PREFIX} \ + --with-mpfr=${PKG_PREFIX} \ + --with-sysroot="; + fi; + secure_rm ${PKG_BUILD_DIR}; + insecure_mkdir ${PKG_BUILD_DIR}; + secure_cd ${PKG_BUILD_DIR}; + ../cbb-gcc-${PKG_GCC_VERSION}/configure \ + --disable-bootstrap \ + --disable-libmudflap \ + --disable-multilib \ + --disable-nls \ + --disable-obsolete \ + --disable-sjlj-exceptions \ + --disable-symvers \ + --enable-canonical-system-headers \ + --enable-__cxa_atexit \ + --enable-debug \ + --enable-gnu-indirect-function \ + --enable-gnu-unique-object \ + --enable-initfini-array \ + --enable-languages=c,c++,objc,lto \ + --enable-libstdcxx-debug \ + --enable-lto \ + --enable-multiarch \ + --enable-secureplt \ + --enable-shared \ + --enable-threads=posix \ + --target=${TARGET} \ + --with-fpmath=sse \ + ${_configure_args}; + set_build_script_done configure clean -build; + else + cd ${PKG_BUILD_DIR}; + fi; + if ! is_build_script_done clean; then + make ${MAKEFLAGS} clean; + set_build_script_done clean -build; + fi; + if ! is_build_script_done build; then + if [ "${2}" = stage1 ]; then + make ${MAKEFLAGS} all-gcc; + elif [ "${2}" = native ]; then + make ${MAKEFLAGS} all-gcc; + make ${MAKEFLAGS} all-target-libgcc; + make ${MAKEFLAGS} all-target-libstdc++-v3; + make ${MAKEFLAGS} all; + fi; + set_build_script_done build -install; + fi; + if ! is_build_script_done install; then + if [ "${2}" = stage1 ]; then + make ${MAKEFLAGS} install-gcc; + __="$(uname -s)"; + if [ "${__#*CYGWIN*}" != "${__}" ]; then + ln -s -- ${PREFIX}/libexec/gcc/${TARGET}/${PKG_GCC_VERSION}/liblto_plugin.dll.a \ + ln -s -- ${PREFIX}/libexec/gcc/${TARGET}/${PKG_GCC_VERSION}/liblto_plugin.so; + fi; + elif [ "${2}" = native ]; then + make ${MAKEFLAGS} DESTDIR=${PKG_PREFIX} install; + fi; + set_build_script_done install finish; + fi; +fi; + +# vim:filetype=sh diff --git a/scripts/gcc.libstdc++-v3.build b/scripts/gcc.libstdc++-v3.build new file mode 120000 index 00000000..b809d40d --- /dev/null +++ b/scripts/gcc.libstdc++-v3.build @@ -0,0 +1 @@ +gcc.full.build \ No newline at end of file diff --git a/scripts/gcc.native.build b/scripts/gcc.native.build new file mode 120000 index 00000000..b809d40d --- /dev/null +++ b/scripts/gcc.native.build @@ -0,0 +1 @@ +gcc.full.build \ No newline at end of file diff --git a/scripts/gcc.runtime.build b/scripts/gcc.runtime.build new file mode 120000 index 00000000..b809d40d --- /dev/null +++ b/scripts/gcc.runtime.build @@ -0,0 +1 @@ +gcc.full.build \ No newline at end of file diff --git a/scripts/gcc.stage1.build b/scripts/gcc.stage1.build new file mode 120000 index 00000000..b809d40d --- /dev/null +++ b/scripts/gcc.stage1.build @@ -0,0 +1 @@ +gcc.full.build \ No newline at end of file diff --git a/scripts/midipix_sh.build b/scripts/midipix_sh.build new file mode 100644 index 00000000..94b98d31 --- /dev/null +++ b/scripts/midipix_sh.build @@ -0,0 +1,13 @@ +# +# . ./build.vars and set -o errexit -o noglob are assumed. +# + +if ! is_build_script_done install; then + (cd ${MIDIPIX_BUILD_PWD}/etc; + tar -cpf - midipix_check.sh midipix.sh README midipix_shortcut.vbs |\ + tar -C ${PREFIX} -xpf -); + chmod +x ${PREFIX}/midipix.sh; + set_build_script_done install finish; +fi; + +# vim:filetype=sh diff --git a/scripts/musl.full.build b/scripts/musl.full.build new file mode 100644 index 00000000..35d1de28 --- /dev/null +++ b/scripts/musl.full.build @@ -0,0 +1,68 @@ +# +# . ./build.vars and set -o errexit -o noglob are assumed. +# + +# Order: no-complex, native + +# Git clone what we need. +fetch_git lazy ${GITROOT}/lazy; + +export lz_arch=${ARCH} lz_cflags_debug=-O2 lz_target=${TARGET}; + +if [ "${2}" = no-complex ]; then + # Musl: build (no-complex) + _install=install_no_complex; + set_build_dir musl-${PKG_MUSL_VERSION}-${2} cross; + if ! is_build_script_done fetch; then + fetch http://www.musl-libc.org/releases/musl-${PKG_MUSL_VERSION}.tar.gz \ + ${PKG_MUSL_SHA256SUM}; + secure_rm mmglue; + fetch_git mmglue ${GITROOT}/mmglue; + set_build_script_done fetch -extract; + fi; + if ! is_build_script_done extract; then + secure_rm musl-${PKG_MUSL_VERSION}; + tar -xf ${DLCACHEDIR}/musl-${PKG_MUSL_VERSION}.tar.gz; + set +o noglob; cp -R -- mmglue/* musl-${PKG_MUSL_VERSION}/; set -o noglob; + set_build_script_done extract -configure; + fi; +elif [ "${2}" = native ]; then + # Musl: build (full) + _install=install; + set_build_dir musl-${PKG_MUSL_VERSION} "${2}"; +elif [ "${2}" = full ]; then + # Musl: build (full) + _install=install; + set_build_dir musl-${PKG_MUSL_VERSION} cross; +fi; +if ! is_build_script_done configure; then + secure_rm ${PKG_BUILD_DIR}; + insecure_mkdir ${PKG_BUILD_DIR}; + secure_cd ${PKG_BUILD_DIR}; + env lz_cflags_cmdline="${PKG_MUSL_CFLAGS_CONFIGURE_EXTRA}" \ + lz_debug="yes" \ + ../lazy/lazy \ + -a ${ARCH} \ + -c gcc \ + -f ${PKG_PREFIX} \ + -n musl \ + -p ../musl-${PKG_MUSL_VERSION} \ + -t ${lz_target} \ + -x config; + set_build_script_done configure clean -build; +else + cd ${PKG_BUILD_DIR}; +fi; +if ! is_build_script_done clean; then + make ${MAKEFLAGS} clean; + set_build_script_done clean -build; +fi; +if ! is_build_script_done build; then + ./lazy -e ${_install} \ + -x build; + [ "${2}" = native ] && \ + ln -sf -- ../lib/libc.so ${PKG_PREFIX}/bin/ldd; + set_build_script_done build finish; +fi; + +# vim:filetype=sh diff --git a/scripts/musl.native.build b/scripts/musl.native.build new file mode 120000 index 00000000..2ed15f0d --- /dev/null +++ b/scripts/musl.native.build @@ -0,0 +1 @@ +musl.full.build \ No newline at end of file diff --git a/scripts/musl.no-complex.build b/scripts/musl.no-complex.build new file mode 120000 index 00000000..2ed15f0d --- /dev/null +++ b/scripts/musl.no-complex.build @@ -0,0 +1 @@ +musl.full.build \ No newline at end of file diff --git a/scripts/pkg.build b/scripts/pkg.build new file mode 100644 index 00000000..1a9746b3 --- /dev/null +++ b/scripts/pkg.build @@ -0,0 +1,259 @@ +# +# . ./build.vars and set -o errexit -o noglob are assumed. +# + +parse_with_pkg_name ${1}; +if [ ${PKG_DISABLED:-0} -eq 1 ]; then + exit 0; +elif ! is_build_script_done fetch; then + if test_cmd pkg_${PKG_NAME}_fetch; then + pkg_${PKG_NAME}_fetch; + else + if [ "${PKG_URL_TYPE:-wget}" = wget ]; then + fetch "${PKG_URL}" ${PKG_SHA256SUM}; + else + fetch_git ${PKG_SUBDIR} ${PKG_URL} ${PKG_GIT_BRANCH}; + fi; + fi; + if test_cmd pkg_${PKG_NAME}_fetch_post; then + pkg_${PKG_NAME}_fetch_post; + fi; + set_build_script_done fetch -extract; +fi; +if test_cmd pkg_${PKG_NAME}_finish; then + pkg_${PKG_NAME}_finish; exit 0; +elif [ "${PKG_URL_TYPE:-wget}" = wget ] &&\ +! is_build_script_done extract; then + secure_rm ${PKG_SUBDIR}; + if [ ${PKG_SUBDIR_CREATE:-0} -eq 1 ]; then + insecure_mkdir ${PKG_SUBDIR}; + fi; + if [ "${PKG_FNAME##*.tar.}" = "bz2" ]; then + bunzip2 -d < ${DLCACHEDIR}/${PKG_FNAME} | tar ${PKG_SUBDIR_CREATE:+-C ${PKG_SUBDIR}} -xf -; + elif [ "${PKG_FNAME##*.tar.}" = "gz" ]; then + gunzip -d < ${DLCACHEDIR}/${PKG_FNAME} | tar ${PKG_SUBDIR_CREATE:+-C ${PKG_SUBDIR}} -xf -; + elif [ "${PKG_FNAME##*.tar.}" = "xz" ]; then + xz -d < ${DLCACHEDIR}/${PKG_FNAME} | tar ${PKG_SUBDIR_CREATE:+-C ${PKG_SUBDIR}} -xf -; + elif [ "${PKG_FNAME##*.t}" = "bz2" ]; then + bunzip2 -d < ${DLCACHEDIR}/${PKG_FNAME} | tar ${PKG_SUBDIR_CREATE:+-C ${PKG_SUBDIR}} -xf -; + elif [ "${PKG_FNAME##*.t}" = "gz" ]; then + gunzip -d < ${DLCACHEDIR}/${PKG_FNAME} | tar ${PKG_SUBDIR_CREATE:+-C ${PKG_SUBDIR}} -xf -; + elif [ "${PKG_FNAME##*.t}" = "xz" ]; then + xz -d < ${DLCACHEDIR}/${PKG_FNAME} | tar ${PKG_SUBDIR_CREATE:+-C ${PKG_SUBDIR}} -xf -; + else + tar ${PKG_SUBDIR_CREATE:+-C ${PKG_SUBDIR}} -xf ${DLCACHEDIR}/${PKG_FNAME}; + fi; + if test_cmd pkg_${PKG_NAME}_extract_post; then + pkg_${PKG_NAME}_extract_post; + fi; + set_build_script_done extract -build_dir; +fi; +if [ -z "${PKG_BUILD_DIR}" ]; then + set_build_dir ${PKG_SUBDIR} ${PKG_BUILD_TYPE:-native}; +fi; +if ! is_build_script_done build_dir; then + [ "${PKG_SUBDIR}" != "${PKG_BUILD_DIR}" ] &&\ + secure_rm ${PKG_BUILD_DIR}; + insecure_mkdir ${PKG_BUILD_DIR}; + set_build_script_done build_dir -patch; +fi; +if [ -e ${PKG_SUBDIR}/configure -o \ + -e ${PKG_SUBDIR}/configure.ac -o \ + -e ${PKG_SUBDIR}/configure.in -o \ + -e ${PKG_SUBDIR}/config.guess ] \ +&& ! is_build_script_done autoconf; then + find ${PKG_SUBDIR} -name config.sub \ + -exec echo mv -- {} {}.orig \; \ + -exec mv -- {} {}.orig \; \ + -exec echo install -m 0700 ${MIDIPIX_BUILD_PWD}/etc/config.sub {} \; \ + -exec install -m 0700 ${MIDIPIX_BUILD_PWD}/etc/config.sub {} \;; + if [ -e ${PKG_SUBDIR}/configure.ac -a \ + ! -e ${PKG_SUBDIR}/configure ]; then + if [ -x ${PKG_SUBDIR}/autogen.sh ]; then + for __ in ${PKG_SUBDIR}/build-aux ${PKG_SUBDIR}; do + if [ -e ${__} ]; then + echo install -m 0700 \ + ${MIDIPIX_BUILD_PWD}/etc/config.sub \ + ${__}/config.sub; + install -m 0700 \ + ${MIDIPIX_BUILD_PWD}/etc/config.sub \ + ${__}/config.sub; + break; + fi; + done; + (cd ${PKG_SUBDIR} && ./autogen.sh) || exit 1; + else + (cd ${PKG_SUBDIR} && autoconf) || exit 1; + fi; + fi; + for __ in ${PKG_BUILD_DIR} ${PKG_CONFIG_CACHE_EXTRA}; do + echo cp -- ${MIDIPIX_BUILD_PWD}/etc/config.cache ${__}/; + cp -- ${MIDIPIX_BUILD_PWD}/etc/config.cache ${__}/; + done; + set_build_script_done autoconf -patch; +fi; +if ! is_build_script_done patch; then + for __patch_fname in \ + ${MIDIPIX_BUILD_PWD}/patches/${PKG_SUBDIR}.local.patch \ + ${MIDIPIX_BUILD_PWD}/patches/${PKG_SUBDIR}.local@${BUILD_HNAME}.patch \ + ${MIDIPIX_BUILD_PWD}/../${PKG_SUBDIR}.local.patch \ + ${MIDIPIX_BUILD_PWD}/../${PKG_SUBDIR}.local@${BUILD_HNAME}.patch; do + if [ -r "${__patch_fname}" ]; then + patch -b -d ${PKG_SUBDIR} -p1 < ${__patch_fname}; + fi; + done; unset __patch_fname; + if test_cmd pkg_${PKG_NAME}_patch_post; then + pkg_${PKG_NAME}_patch_post; + fi; + set_build_script_done patch -configure; +fi; +PKG_SUBDIR_PATH=${PWD}/${PKG_SUBDIR#/}; +if [ -z "${PKG_CONFIGURE}" ]; then + PKG_CONFIGURE=${PKG_SUBDIR_PATH}/configure; +else + PKG_CONFIGURE=${PWD}/${PKG_CONFIGURE#/}; +fi; +cd ${PKG_BUILD_DIR}; +if [ "${PKG_BUILD_TYPE}" = "host" ]; then + export AR=ar; + export CC=gcc; + export RANLIB=ranlib; +else + export AR=${PKG_TARGET}-ar; + export CC=${PKG_TARGET}-gcc; + export RANLIB=${PKG_TARGET}-ranlib; +fi; +if [ -x ${PKG_CONFIGURE} ]\ +&& ! is_build_script_done configure; then + if test_cmd pkg_${PKG_NAME}_configure_pre; then + pkg_${PKG_NAME}_configure_pre; + fi; + CFLAGS="${PKG_CFLAGS_CONFIGURE}${PKG_CFLAGS_CONFIGURE_EXTRA:+ ${PKG_CFLAGS_CONFIGURE_EXTRA}}"\ + LDFLAGS="${PKG_LDFLAGS_CONFIGURE}${PKG_LDFLAGS_CONFIGURE_EXTRA:+ ${PKG_LDFLAGS_CONFIGURE_EXTRA}}"\ + ${PKG_CONFIGURE} \ + ${PKG_CONFIGURE_ARGS} ${PKG_CONFIGURE_ARGS_EXTRA} ${PKG_CONFIGURE_ARGS_EXTRA_DEBUG}; + set_build_script_done configure clean -build; +else + __no_autoconf=1; + set_build_script_done clean -build; +fi; +if [ ${PKG_NO_CLEAN:-0} -eq 0 ]\ +&& ! is_build_script_done clean; then + make clean; + set_build_script_done clean -build; +fi; +if ! is_build_script_done build; then + if test_cmd pkg_${PKG_NAME}_build; then + pkg_${PKG_NAME}_build; + elif [ -n "${PKG_BUILD_CMDLINE}" ]; then + ${PKG_BUILD_CMDLINE}; + else + if [ "${PKG_SLIBTOOL}" != "default" ]; then + export MAKE="make LIBTOOL=${PKG_SLIBTOOL:-slibtool}"; + fi; + # N.B. We only specify CC= here if the current package does not use GNU + # autoconf as it often abuses it by appending -std={gnu99,...} to it + # instead of amending CFLAGS. + run_cmd_unsplit make \ + ${PKG_MAKEFLAGS_BUILD} \ + ${PKG_MAKEFLAGS_BUILD_EXTRA} \ + AR=${AR} ${__no_autoconf:+CC=${CC}} RANLIB=${RANLIB} \ + "${PKG_CFLAGS_BUILD:+CFLAGS=${PKG_CFLAGS_BUILD}}" \ + "${PKG_CFLAGS_BUILD_EXTRA:+CFLAGS+=${PKG_CFLAGS_BUILD_EXTRA}}" \ + "${PKG_LDFLAGS_BUILD:+LDFLAGS=${PKG_LDFLAGS_BUILD}}" \ + "${PKG_LDFLAGS_BUILD_EXTRA:+LDFLAGS+=${PKG_LDFLAGS_BUILD_EXTRA}}"; + unset __no_autoconf; + fi; + set_build_script_done build -install; +fi; +if ! is_build_script_done install; then + if test_cmd pkg_${PKG_NAME}_install; then + pkg_${PKG_NAME}_install; + else + if [ ${PKG_NO_MAKE_INSTALL:-0} -eq 0 ]; then + run_cmd_unsplit make \ + ${PKG_MAKEFLAGS_INSTALL} \ + ${PKG_MAKEFLAGS_INSTALL_EXTRA} \ + AR=${AR} CC=${CC} RANLIB=${RANLIB} \ + "${PKG_CFLAGS_INSTALL:+CFLAGS=${PKG_CFLAGS_INSTALL}}" \ + "${PKG_CFLAGS_INSTALL_EXTRA:+CFLAGS+=${PKG_CFLAGS_INSTALL_EXTRA}}" \ + "${PKG_LDFLAGS_INSTALL:+LDFLAGS=${PKG_LDFLAGS_INSTALL}}" \ + "${PKG_LDFLAGS_INSTALL_EXTRA:+LDFLAGS+=${PKG_LDFLAGS_INSTALL_EXTRA}}" \ + "${PKG_RANLIB_INSTALL:+RANLIB=${PKG_RANLIB_INSTALL}}" \ + ${PKG_INSTALL_TARGET:=install}; + if [ -n "${PKG_PREFIX_EXTRA}" ]; then + run_cmd_unsplit make \ + ${PKG_MAKEFLAGS_INSTALL} \ + ${PKG_MAKEFLAGS_INSTALL_EXTRA} \ + AR=${AR} CC=${CC} RANLIB=${RANLIB} \ + "${PKG_CFLAGS_INSTALL:+CFLAGS=${PKG_CFLAGS_INSTALL}}" \ + "${PKG_CFLAGS_INSTALL_EXTRA:+CFLAGS+=${PKG_CFLAGS_INSTALL_EXTRA}}" \ + "${PKG_LDFLAGS_INSTALL:+LDFLAGS=${PKG_LDFLAGS_INSTALL}}" \ + "${PKG_LDFLAGS_INSTALL_EXTRA:+LDFLAGS+=${PKG_LDFLAGS_INSTALL_EXTRA}}" \ + "${PKG_RANLIB_INSTALL:+RANLIB=${PKG_RANLIB_INSTALL}}" \ + ${PKG_INSTALL_TARGET_EXTRA:=install} \ + DESTDIR=${PKG_PREFIX_EXTRA}; + fi; + fi; + if test_cmd pkg_${PKG_NAME}_install_post; then + pkg_${PKG_NAME}_install_post; + fi; + fi; + if [ -d ${PKG_PREFIX}/lib ]; then + for __ in $(find ${PKG_PREFIX}/lib -type f -name \*.la); do + secure_rm ${__}; + done; + fi; + if [ -n "${PKG_INSTALL_FILES}" ]; then + (set -- ${PKG_INSTALL_FILES}; + while [ ${#} -gt 0 ]; do + case "${1}" in + @*=*) + __ln_target="${1%=*}"; + __ln_target="${__ln_target#@}"; + __ln_fname="${1#*=}"; + echo ln -sf -- ${__ln_target} ${PKG_PREFIX}/${__ln_fname}; + ln -sf -- ${__ln_target} ${PKG_PREFIX}/${__ln_fname}; + ;; + /=*) + __mkdir_fname="${1#/=}"; + insecure_mkdir ${PKG_PREFIX}/${__mkdir_fname}; + ;; + *) + __file_fname_src="${1%=*}"; + __file_fname_dst="${1#*=}"; + echo cp -pP -- ${__file_fname_src} ${PKG_PREFIX}/${__file_fname_dst}; + cp -pP -- ${__file_fname_src} ${PKG_PREFIX}/${__file_fname_dst}; + ;; + esac; shift; + done); + fi; + if test_cmd perk && test_cmd ${PKG_TARGET}-dlltool; then + for __so_fname in \ + $(find \( -name "*.so" \ + -or -name "*.so.[0-9]" \ + -or -name "*.so.[0-9].[0-9]" \ + -or -name "*.so.[0-9].[0-9].[0-9]" \) -printf '%P\n'); + do + if [ \( -e ${__so_fname%.so}.lib.a \) -o \ + \( ! -e ${PKG_PREFIX}/lib/$(basename ${__so_fname}) \) ]; + then + continue; + else + __so_name="${__so_fname%.so}"; + echo perk -epdlltool ${__so_fname} \> ${__so_fname%.so}.def; + perk -epdlltool ${__so_fname} > ${__so_fname%.so}.def; + echo ${PKG_TARGET}-dlltool -l ${__so_fname%.so}.lib.a \ + -D ${__so_fname} -d ${__so_fname%.so}.def; + ${PKG_TARGET}-dlltool -l ${__so_fname%.so}.lib.a \ + -D ${__so_fname} -d ${__so_fname%.so}.def; + echo cp -- ${__so_fname%.so}.lib.a "${PKG_PREFIX}/lib"; + cp -- ${__so_fname%.so}.lib.a "${PKG_PREFIX}/lib"; + fi; + done; + fi; + set_build_script_done install -finish; +fi; +set_build_script_done finish; + +# vim:filetype=sh diff --git a/subr/build.subr b/subr/build.subr new file mode 100644 index 00000000..98bd4555 --- /dev/null +++ b/subr/build.subr @@ -0,0 +1,140 @@ +# +# . ./build.vars and set -o errexit -o noglob are assumed. +# See warning at the top of build.vars. +# + +check_cpuinfo() { + if [ -z "${BUILD_CPUS}" ] \ + && [ -e /proc/cpuinfo ]; then + BUILD_CPUS=$(awk '/^processor/{cpus++} END{print cpus}' /proc/cpuinfo); + fi; +}; + +clear_env() { + for __ in $(export | sed -e 's/^export //' -e 's/=.*$//'); do + if ! match_list "${CLEAR_ENV_VARS_EXCEPT}" " " "${__}"; then + unset "${__}"; + fi; + done; +}; + +check_paths() { + for __ in ${CHECK_PATH_VARS}; do + if [ -z "${___:=$(get_var_unsafe "${__}")}" ]; then + log_msg failexit "Error: variable \`${__}' is empty or unset."; + elif [ "${___#* *}" != "${___}" ]; then + log_msg failexit "Error: variable \`${__}' contains one or more whitespace characters."; + fi; + done; + for __ in ${CHECK_PREREQ_CMDS} $(eval echo ${CHECK_PREREQ_FILES_DYNAMIC}) ${CHECK_PREREQ_FILES}; do + if [ "${__#/}" != "${__}" ]; then + if [ ! -e "${__}" ]; then + log_msg fail "Error: missing prerequisite file \`${__}'."; + __exit=1; + fi; + else + if ! test_cmd "${__}"; then + log_msg fail "Error: missing prerequisite command \`${__}'."; + __exit=1; + fi; + fi; + done; + for __ in ${CHECK_PREREQ_PERL_MODULES}; do + if ! perl -M"${__}" -e "" 2>/dev/null; then + log_msg fail "Error: missing prerequisite Perl module \`${__}'."; + __exit=1; + fi; + done; + if [ ${__exit:-0} = 1 ]; then + exit 1; + elif [ -n "${__exit}" ]; then + unset __exit; + fi; +}; + +clean_prefix() { + if [ ${ARG_CLEAN:-0} -eq 1 ]; then + log_msg info "-c specified, cleaning prefix..."; + for __ in ${CLEAR_PREFIX_DIRS}; do + if [ -e ${PREFIX}/${__} ]; then + secure_rm ${PREFIX}/${__}; + fi; + done; + fi; +}; + +create_dirs() { + insecure_mkdir ${PREFIX} ${PREFIX_NATIVE} ${PREFIX_CROSS} ${PREFIX_TARGET}/lib ${DLCACHEDIR} ${WORKDIR}; + for __ in ${PREFIX}/usr ${PREFIX_NATIVE}/usr; do + if [ ! -L "${__}" ]; then + secure_rm "${__}"; ln -sf -- . "${__}"; + fi; + done; + insecure_mkdir ${PREFIX_MINIPIX}/bin; + for __ in lib libexec share; do + if [ ! -e ${PREFIX_MINIPIX}/${__} ]; then + ln -sf bin ${PREFIX_MINIPIX}/${__}; + fi; + done; +}; + +fini_build_progress_file() { + if [ -f "${BUILD_STATUS_IN_PROGRESS_FNAME}" ]; then + secure_rm ${BUILD_STATUS_IN_PROGRESS_FNAME}; + fi; +}; + +fini_build_vars() { + : $((BUILD_TIMES_SECS=$(command date +%s)-${BUILD_TIMES_SECS})); + : $((BUILD_TIMES_HOURS=${BUILD_TIMES_SECS}/3600)); + : $((BUILD_TIMES_MINUTES=(${BUILD_TIMES_SECS}%3600)/60)); + : $((BUILD_TIMES_SECS=(${BUILD_TIMES_SECS}%3600)%60)); +}; + +init_build_log() { + if [ -e ${BUILD_LOG_FNAME} ]; then + mv -- ${BUILD_LOG_FNAME} ${BUILD_LOG_LAST_FNAME}; + fi; +}; + +init_build_progress_file() { + touch ${BUILD_STATUS_IN_PROGRESS_FNAME}; +}; + +init_build_vars() { + BUILD_DATE_START="$(date %Y-%m-%d-%H-%M-%S)"; + BUILD_NFINI=${BUILD_NSKIP:=${BUILD_NFAIL:=${BUILD_NBUILT:=0}}}; + BUILD_TIMES_SECS=$(command date +%s); +}; + +source_scripts() { + set -- ${BUILD_PACKAGE_LC%.*} ${BUILD_PACKAGE_LC#*.}; + for SCRIPT_SOURCE in vars/${BUILD_PACKAGE_LC}.vars ${BUILD_SCRIPT_FNAME}; do + if [ -f ${MIDIPIX_BUILD_PWD}/${SCRIPT_SOURCE} ]; then + if [ ${ARG_DRYRUN:-0} -eq 1 ]; then + echo . ${MIDIPIX_BUILD_PWD}/${SCRIPT_SOURCE}; + else + . ${MIDIPIX_BUILD_PWD}/${SCRIPT_SOURCE}; + fi; + fi; + done; +}; + +source_vars() { + for __ in ${HOME}/midipix_build.vars ../midipix_build.vars ./vars/build.vars; do + [ -e ${__} ] && . ${__}; + done; +}; + +subst_tgts() { + while [ ${#} -ge 1 ]; do + case "${1}" in + devroot) + echo ${DEVROOT_PACKAGES}; ;; + world) echo ${WORLD_PACKAGES}; ;; + *) echo ${1}; ;; + esac; shift; + done; +}; + +# vim:filetype=sh diff --git a/subr/pkg.subr b/subr/pkg.subr new file mode 100644 index 00000000..2e0e36ae --- /dev/null +++ b/subr/pkg.subr @@ -0,0 +1,145 @@ +# +# . ./build.vars and set -o errexit -o noglob are assumed. +# See warning at the top of build.vars. +# + +# N.B. URLs ($1) may contain `?' or '&' characters. +fetch() { + _f_url="${1}"; _f_sha256sum_src="${2}"; + _f_url_dst="${DLCACHEDIR}/$(basename "${_f_url}")"; + if [ -e ${_f_url_dst}.fetched ]; then + unset _f_url _f_sha256sum_src _f_url_dst; + return 0; + else + wget ${WGET_ARGS} -c -O ${_f_url_dst} "${_f_url}"; + fi; + if [ -n "${_f_sha256sum_src}" ]; then + set -- $(openssl dgst -sha256 ${_f_url_dst}); shift $((${#}-1)); + if [ "${_f_sha256sum_dst:=${1}}" != "${_f_sha256sum_src}" ]; then + log_msg failexit "Error: hash mismatch for URL \`${_f_url}' (is: ${_f_sha256sum_dst}, should be: ${_f_sha256sum_src}.)"; + fi; + fi; + touch ${_f_url_dst}.fetched; + unset _f_url _f_url_dst _f_sha256sum_src _f_sha256sum_dst; +}; + +fetch_git() { + _fg_subdir="${1}"; _fg_url="${2}"; _fg_branch="${3}"; + if [ -e "${DLCACHEDIR}/${_fg_subdir}" ]; then + cd ${DLCACHEDIR}/${_fg_subdir} &&\ + git pull origin ${_fg_branch:-main} && cd ${OLDPWD}; + else + git clone ${_fg_url} ${DLCACHEDIR}/${_fg_subdir}; + if [ -n "${_fg_branch}" -a \ + \( -z "${_fg_branch#main}" \) -a \ + \( -z "${_fg_branch#master}" \) ]; then + cd ${DLCACHEDIR}/${_fg_subdir} &&\ + git checkout -b ${_fg_branch} && cd ${OLDPWD}; + fi; + fi; + secure_rm ${_fg_subdir}; + cp -pr ${DLCACHEDIR}/${_fg_subdir} .; +}; + +is_build_script_done() { + if match_list "${ARG_RESTART}" , ${BUILD_PACKAGE_LC}; then + if [ -n "${ARG_RESTART_AT}" ] \ + && [ "${ARG_RESTART_AT}" != "${1}" ]; then + return 0; # Skip + else + return 1; # Build + fi; + elif [ -f ${WORKDIR}/.${2:-${BUILD_PACKAGE_LC}}.${1} ]; then + return 0; # Skip + else + return 1; # Build + fi; +}; + +log_env_vars() { + log_msg info "Variables for this ${1:-build}:"; shift; + while [ ${_lev_nvar:=0} -lt ${#} ]; do + _lev_arg="$(eval echo \${${_lev_nvar}})"; + _lev_arg="${_lev_arg%%=*}"; + if [ ${#_lev_arg} -gt ${_lev_arg_len_max:=0} ]; then + _lev_arg_len_max=${#_lev_arg}; + fi; : $((_lev_nvar+=1)); + done; unset _lev_nvar _lev_arg; + while [ ${#} -gt 0 ]; do + log_msg info "$(printf \ + "%${_lev_arg_len_max}.${_lev_arg_len_max}s=%s" \ + "${1%%=*}" "$(get_var_unsafe ${1#*=})")"; + shift; + done; unset _lev_arg_len_max; +}; + +parse_with_pkg_name() { + PKG_NAME=${1}; shift; + _pwpn_pkg_name_uc=$(echo ${PKG_NAME} | tr a-z A-Z); + if [ -z "$(get_var_unsafe PKG_${_pwpn_pkg_name_uc}_URL)" ]; then + unset _pwpn_pkg_name_uc; + log_msg failexit "Error: package \`${PKG_NAME}' missing in build.vars."; + else + for _pwpn_vname in ${PKG_BUILD_VARS}; do + if [ -n "$(get_var_unsafe DEFAULT_${_pwpn_vname})" ]; then + export "PKG_${_pwpn_vname}=$(get_var_unsafe DEFAULT_${_pwpn_vname})"; + fi; + if [ -n "$(get_var_unsafe ${BUILD_TARGET}_${_pwpn_vname})" ]; then + export "PKG_${_pwpn_vname}=$(get_var_unsafe ${BUILD_TARGET}_${_pwpn_vname})"; + fi; + if [ "${BUILD}" = "debug" ] \ + && [ -n "$(get_var_unsafe PKG_${_pwpn_pkg_name_uc}_${_pwpn_vname}_DEBUG)" ]; then + export "PKG_${_pwpn_vname}=$(get_var_unsafe PKG_${_pwpn_pkg_name_uc}_${_pwpn_vname}_DEBUG)"; + elif [ "${BUILD}" = "release" ] \ + && [ -n "$(get_var_unsafe PKG_${_pwpn_pkg_name_uc}_${_pwpn_vname}_RELEASE)" ]; then + export "PKG_${_pwpn_vname}=$(get_var_unsafe PKG_${_pwpn_pkg_name_uc}_${_pwpn_vname}_RELEASE)"; + elif [ -n "$(get_var_unsafe PKG_${_pwpn_pkg_name_uc}_${_pwpn_vname})" ]; then + export "PKG_${_pwpn_vname}=$(get_var_unsafe PKG_${_pwpn_pkg_name_uc}_${_pwpn_vname})"; + fi; + done; unset _pwpn_vname; + fi; + [ -z "${PKG_FNAME}" ] && PKG_FNAME=${PKG_URL##*/}; + [ -z "${PKG_SUBDIR}" ] && PKG_SUBDIR=${PKG_FNAME%%.tar*}; + [ -n "${PKG_ENV_VARS_EXTRA}" ] && set_env_vars_with_sep : "${PKG_ENV_VARS_EXTRA}"; + for _pwpn_env_var in $(export); do + if [ "${_pwpn_env_var#PKG_}" != "${_pwpn_env_var}" ]; then + _pwpn_env_vars="${_pwpn_env_vars:+${_pwpn_env_vars} }${_pwpn_env_var%%=*}"; + fi; + done; + if [ -n "${_pwpn_env_vars}" ]; then + log_env_vars "build" ${_pwpn_env_vars}; + fi; unset _pwpn_pkg_name_uc _pwpn_env_var _pwpn_env_vars; +}; + +run_cmd_unsplit() { + _rcu_cmd=${1}; shift; + while [ ${#} -gt 0 ]; do + [ -n "${1}" ] &&\ + _rcu_cmdline="${_rcu_cmdline:+${_rcu_cmdline}:}${1}"; + shift; + done; + push_IFS :; ${_rcu_cmd} ${_rcu_cmdline}; _rcu_rc=$?; pop_IFS; + unset _rcu_cmd _rcu_cmdline; return ${_rcu_rc}; +}; + +set_build_script_done() { + _sbsd_script_fname=${BUILD_PACKAGE_LC}; + _sbsd_done_fname=${WORKDIR}/.${_sbsd_script_fname}; + while [ $# -ge 1 ]; do + if [ "${1#-}" != "${1}" ]; then + secure_rm ${_sbsd_done_fname}.${1#-}; + else + touch ${_sbsd_done_fname}.${1}; + log_msg info "Finished build step ${1} of \`${_sbsd_script_fname}'."; + fi; shift; + done; unset _sbsd_script_fname _sbsd_done_fname; +}; + +set_env_vars_with_sep() { + _sevws_sep=${1}; shift; push_IFS ${_sevws_sep}; set -- ${1}; + while [ ${#} -gt 0 ]; do + export "${1}"; shift; + done; unset _sevws_sep; pop_IFS; +}; + +# vim:filetype=sh diff --git a/subr/rtl.subr b/subr/rtl.subr new file mode 100644 index 00000000..5d1dd97a --- /dev/null +++ b/subr/rtl.subr @@ -0,0 +1,102 @@ +# +# . ./build.vars and set -o errexit -o noglob are assumed. +# See warning at the top of build.vars. +# + +date() { command date +"${1:-${TIMESTAMP_FMT}}"; }; +get_var_unsafe() { eval echo \${${1}}; }; +set_var_unsafe() { eval ${1}=\"${2}\"; }; +push_IFS() { _pI_IFS="${IFS}"; IFS="${1}"; }; +pop_IFS() { IFS="${_pI_IFS}"; unset _pI_IFS; }; +set_build_dir() { PKG_BUILD_DIR=${1}-${2}-${TARGET}; }; +split() { push_IFS "${1}"; set -- ${2}; pop_IFS; echo "${*}"; }; +test_cmd() { command -v "${1}" >/dev/null; }; +unsplit() { push_IFS "${1}"; shift; set -- "${@}"; echo "${*}"; pop_IFS; }; + +get_vars_unsafe() { + while [ ${#} -gt 0 ]; do + _gvu_vval="$(eval echo \${${1}})"; + [ -z "${_gvu_vval}" ] || _gvu_vval_="${_gvu_vval}"; + shift; + done; echo "${_gvu_vval_}"; + unset _gvu_vval _gvu_vval_; +}; + +log_msg() { + _lm_lvl=${1}; shift; + case ${_lm_lvl} in + failexit) printf "\033[0m\033[${LOG_MSG_FAIL_COLOUR}m"; ;; + fail) printf "\033[0m\033[${LOG_MSG_FAIL_COLOUR}m"; ;; + info) printf "\033[0m\033[${LOG_MSG_INFO_COLOUR}m"; ;; + succ) printf "\033[0m\033[${LOG_MSG_SUCC_COLOUR}m"; ;; + warn) printf "\033[0m\033[${LOG_MSG_WARN_COLOUR}m"; ;; + esac; + if [ $# -gt 1 ]; then + printf "==> %s %s %s\033[0m\n" "$(date "${TIMESTAMP_FMT}")" "${1}" "$*"; + else + printf "==> %s %s\033[0m\n" "$(date "${TIMESTAMP_FMT}")" "${1}"; + fi; [ ${_lm_lvl} = failexit ] && exit 1 || unset _lm_lvl; +}; + +insecure_mkdir() { + while [ ${#} -gt 0 ]; do + if [ -z "${1}" ]; then + return 1; + elif [ ! -e "${1}" ]; then + [ "${ARG_VERBOSE:-0}" -eq 1 ] &&\ + log_msg warn "Making directory \`${1}'."; + mkdir -p -- "${1}"; + fi; shift; + done; +}; + +match_list() { + _ml_cmp="${3}"; push_IFS "${2}"; set -- ${1}; pop_IFS; + while [ ${#} -gt 0 ]; do + if [ "${1}" = "${_ml_cmp}" ]; then + unset _ml_cmp; return 0; + fi; shift; + done; unset _ml_cmp; return 1; +}; + +secure_cd() { + if [ \( -z "${1}" \) -o \( ! -e "${1}" \) ]; then + return 1; + else + (cd "${1}"; [ "${PWD#${PREFIX_ROOT}}" = "${PWD}" ] &&\ + return 1 || return 0); + if [ ${?} -eq 0 ]; then + [ "${ARG_VERBOSE:-0}" -eq 1 ] &&\ + log_msg warn "Changing working directory to \`${1}'."; + cd -- "${1}"; + else + log_msg failexit "secure_cd() called with pathname \`${1}' not below \${PREFIX_ROOT} (${PREFIX_ROOT}). This is a bug."; + fi; + fi; +}; + +secure_rm() { + while [ ${#} -gt 0 ]; do + if [ -z "${1}" ]; then + return 1; + elif [ -e "${1}" ]; then + if [ -d "${1}" ]; then + _sr_pname_check="${1}"; + else + _sr_pname_check="$(dirname "${1}")"; + fi; + (cd "${_sr_pname_check}"; [ "${PWD#${PREFIX_ROOT}}" = "${PWD}" ] &&\ + return 1 || return 0); + if [ ${?} -eq 0 ]; then + unset _sr_pname_check; + [ "${ARG_VERBOSE:-0}" -eq 1 ] &&\ + log_msg warn "Removing directory or file \`${1}'."; + rm -rf -- "${1}"; + else + log_msg failexit "secure_rm() called with pathname \`${1}' not below \${PREFIX_ROOT} (${PREFIX_ROOT}). This is a bug."; + fi; + fi; shift; + done; +}; + +# vim:filetype=sh diff --git a/subr/strip.subr b/subr/strip.subr new file mode 100644 index 00000000..c4e17a3e --- /dev/null +++ b/subr/strip.subr @@ -0,0 +1,19 @@ +# +# . ./build.vars and set -o errexit -o noglob are assumed. +# + +do_strip() { + if [ ${BUILD_SCRIPT_RC:-0} -eq 0 ]\ + && [ "${BUILD}" = release ]; then + for __ in $(find ${PREFIX_NATIVE}/bin -perm -0100 \( -type f -or -type l \)); do + if objdump -sj .debug_info >/dev/null 2>&1; then + if [ ${ARG_VERBOSE:-0} -eq 1 ]; then + echo ${PKG_TARGET}-strip ${__}; + fi; + set +o errexit; ${PKG_TARGET}-strip ${__}; set -o errexit; + fi; + done; + fi; +}; + +# vim:filetype=sh diff --git a/subr/tarballs.subr b/subr/tarballs.subr new file mode 100644 index 00000000..7bde6642 --- /dev/null +++ b/subr/tarballs.subr @@ -0,0 +1,108 @@ +# +# . ./build.vars and set -o errexit -o noglob are assumed. +# + +do_tarball_dist() { + TARBALL_FNAME=${TARBALL_FNAME_PREFIX}${BUILD_USER}@${BUILD_HNAME}-${BUILD_DATE_START}.tar.${TARBALL_SUFFIX}; + secure_rm ${PREFIX_BASENAME}/lib.bak; + insecure_mkdir ${PREFIX_BASENAME}/lib.bak; + tar -C ${PREFIX_BASENAME}/lib -cpf - . | tar -C ${PREFIX_BASENAME}/lib.bak -xpf -; + log_msg info "Backed up ${PREFIX_BASENAME}/lib."; + for __ in $(find native/lib \( -iname \*.so -or -iname \*.so.\* \) \ + -type l); do + ___="native/lib/$(readlink -- ${__})"; + if [ -f "${___}" ]; then + secure_rm ${__}; ln -f -- "${___}" "${__}"; + fi; + done; + log_msg info "Converted symbolic links in ${PREFIX_BASENAME}/lib to hard links."; + + tar -cpf - $(find . -maxdepth 2 -mindepth 1 -type d \ + -not -path ./native -not -path ./native/lib.bak \ + -not -path ./tmp -not -path ./tmp/\*) \ + etc/midipix_shortcut.vbs etc/midipix.sh etc/README |\ + ${TARBALL_COMPRESS_CMD} ${TARBALL_COMPRESS_ARGS} -c > ${TARBALL_FNAME}; + log_msg info "Finished building binary distribution tarball."; + if [ -x "$(which gpg 2>/dev/null)" -a -n "${TARBALL_SIGN_GPG_KEY}" ] &&\ + gpg --list-keys "${TARBALL_SIGN_GPG_KEY}" >/dev/null 2>&1; then + gpg --armor --passphrase-file /dev/null \ + --local-user "${TARBALL_SIGN_GPG_KEY}" --sign ${TARBALL_FNAME}; + log_msg info "Signed binary distribution tarball."; + fi; + secure_rm ${PREFIX_BASENAME}/lib; mv -- ${PREFIX_BASENAME}/lib.bak ${PREFIX_BASENAME}/lib; + log_msg info "Restored ${PREFIX_BASENAME}/lib."; +}; + +do_tarball_toolchain() { + TARBALL_CROSS_FNAME=${TARBALL_CROSS_FNAME_PREFIX}${BUILD_USER}@${BUILD_HNAME}-${BUILD_DATE_START}.tar.${TARBALL_SUFFIX}; + tar -cpf - bin include lib lib64 libexec share ${PKG_TARGET} |\ + ${TARBALL_COMPRESS_CMD} ${TARBALL_COMPRESS_ARGS} -c > ${TARBALL_CROSS_FNAME}; + log_msg info "Finished building toolchain tarball."; + if [ -x "$(which gpg 2>/dev/null)" -a -n "${TARBALL_CROSS_SIGN_GPG_KEY}" ] &&\ + gpg --list-keys "${TARBALL_CROSS_SIGN_GPG_KEY}" >/dev/null 2>&1; then + gpg --armor --passphrase-file /dev/null \ + --local-user "${TARBALL_CROSS_SIGN_GPG_KEY}" --sign ${TARBALL_CROSS_FNAME}; + log_msg info "Signed toolchain tarball."; + fi; +}; + +do_tarball_minipix() { + TARBALL_MINIPIX_FNAME=${TARBALL_MINIPIX_FNAME_PREFIX}${BUILD_USER}@${BUILD_HNAME}-${BUILD_DATE_START}.tar.${TARBALL_SUFFIX}; + tar -cpf - minipix \ + etc/midipix_shortcut.vbs etc/midipix.sh etc/README |\ + ${TARBALL_COMPRESS_CMD} ${TARBALL_COMPRESS_ARGS} -c > ${TARBALL_MINIPIX_FNAME}; + log_msg info "Finished building binary Minipix distribution tarball."; + if [ -x "$(which gpg 2>/dev/null)" -a -n "${TARBALL_MINIPIX_SIGN_GPG_KEY}" ] &&\ + gpg --list-keys "${TARBALL_MINIPIX_SIGN_GPG_KEY}" >/dev/null 2>&1; then + gpg --armor --passphrase-file /dev/null \ + --local-user "${TARBALL_MINIPIX_SIGN_GPG_KEY}" --sign ${TARBALL_MINIPIX_FNAME}; + log_msg info "Signed binary Minipix distribution tarball."; + fi; +}; + +do_tarball_src() { + TARBALL_SRC_FNAME=${TARBALL_SRC_FNAME_PREFIX}${BUILD_USER}@${BUILD_HNAME}-${BUILD_DATE_START}.tar.${TARBALL_SUFFIX}; + log_msg info "Building source tarball..."; + tar -cpf - $(find tmp -mindepth 2 -maxdepth 2 \ + -not -path tmp/.\* \ + -not -path tmp/ntctty/.git \ + -not -path tmp/psxscl/.git \ + -not -path tmp/ptycon/.git) |\ + ${TARBALL_COMPRESS_CMD} ${TARBALL_COMPRESS_ARGS} -c > ${TARBALL_SRC_FNAME}; + log_msg info "Finished building source tarball."; + if [ -x "$(which gpg 2>/dev/null)" -a -n "${TARBALL_SRC_SIGN_GPG_KEY}" ] &&\ + gpg --list-keys "${TARBALL_SRC_SIGN_GPG_KEY}" >/dev/null 2>&1; then + gpg --armor --passphrase-file /dev/null \ + --local-user "${TARBALL_SRC_SIGN_GPG_KEY}" --sign ${TARBALL_SRC_FNAME}; + log_msg info "Signed source tarball."; + fi; +}; + +do_tarballs() { + if [ ${BUILD_SCRIPT_RC:-0} -eq 0 ]\ + && [ ${ARG_TARBALL:-0} -eq 1 ]; then + log_msg info "Building distribution tarballs..."; + case ${TARBALL_SUFFIX} in + bz2) if [ -n "$(which pbzip2 2>/dev/null)" ]; then + TARBALL_COMPRESS_CMD="pbzip2"; + else + TARBALL_COMPRESS_CMD="bzip2"; + fi; ;; + gz) if [ -n "$(which pigz 2>/dev/null)" ]; then + TARBALL_COMPRESS_CMD="pigz"; + else + TARBALL_COMPRESS_CMD="gzip"; + fi; ;; + xz) TARBALL_COMPRESS_CMD="xz"; + TARBALL_COMPRESS_ARGS="-T0"; ;; + *) log_msg failexit "Unknown tarball suffix \`.${TARBALL_SUFFIX}'."; + esac; + cd ${PREFIX}; PREFIX_BASENAME=${PREFIX_NATIVE##*/}; + do_tarball_dist; do_tarball_toolchain; do_tarball_minipix; + if [ "${BUILD}" = "debug" ]; then + do_tarball_src; + fi; + fi; +}; + +# vim:filetype=sh diff --git a/tcsh-6.19.00.local.patch b/tcsh-6.19.00.local.patch deleted file mode 100644 index 45674066..00000000 --- a/tcsh-6.19.00.local.patch +++ /dev/null @@ -1,201 +0,0 @@ ---- tcsh-6.19.00/configure.orig 2015-05-21 21:41:48.000000000 +0000 -+++ tcsh-6.19.00/configure 2016-05-26 11:51:44.823732557 +0000 -@@ -2975,6 +2975,11 @@ - tcsh_config_file=qnx6 - ;; - -+ ## midipix -+ *-midipix*) -+ tcsh_config_file=midipix -+ ;; -+ - * ) - as_fn_error $? "Tcsh can't guess the configuration file name - for \`${host}' systems. ---- tcsh-6.19.00/sh.h.orig 2015-05-10 13:29:28.000000000 +0000 -+++ tcsh-6.19.00/sh.h 2016-05-26 12:16:19.303699832 +0000 -@@ -333,7 +333,7 @@ - #endif /* POSIX && !WINNT_NATIVE */ - #include - --#if SYSVREL > 0 || defined(_IBMR2) || defined(_MINIX) || defined(__linux__) || defined(__GNU__) || defined(__GLIBC__) -+#if SYSVREL > 0 || defined(_IBMR2) || defined(_MINIX) || defined(__linux__) || defined(__GNU__) || defined(__GLIBC__) || defined(__midipix__) - # if !defined(pyr) && !defined(stellar) - # include - # ifdef _MINIX ---- tcsh-6.19.00/Makefile.in.orig 2014-07-24 22:52:13.000000000 +0000 -+++ tcsh-6.19.00/Makefile.in 2016-05-26 12:43:28.099663682 +0000 -@@ -24,6 +24,7 @@ - CF=-c - - CPPFLAGS=-I. -I$(srcdir) -+CPPFLAGS_FOR_GETHOST=-I. -I$(srcdir) - - LFLAGS= - # hpux lint -@@ -449,7 +450,7 @@ - - gethost: gethost.c sh.err.h tc.const.h sh.h - rm -f gethost -- ${CC_FOR_GETHOST} -o gethost ${CPPFLAGS} ${CFLAGS} $(srcdir)/gethost.c -+ ${CC_FOR_GETHOST} -o gethost ${CPPFLAGS_FOR_GETHOST} ${CFLAGS_FOR_GETHOST} $(srcdir)/gethost.c - - tc.defs.c: gethost host.defs - @rm -f $@.tmp ---- tcsh-6.19.00/config/midipix.orig 1970-01-01 00:00:00.000000000 +0000 -+++ tcsh-6.19.00/config/midipix 2016-05-26 13:04:58.627635040 +0000 -@@ -0,0 +1,138 @@ -+/* -+ * config.h -- configure various defines for tcsh -+ * -+ * All source files should #include this FIRST. -+ * -+ * This is the config file for midipix systems -+ */ -+ -+#ifndef _h_config -+#define _h_config -+/****************** System dependant compilation flags ****************/ -+/* -+ * POSIX This system supports IEEE Std 1003.1-1988 (POSIX). -+ */ -+#define POSIX -+ -+/* -+ * POSIXJOBS This system supports the optional IEEE Std 1003.1-1988 (POSIX) -+ * job control facilities. -+ */ -+#define POSIXJOBS -+ -+/* -+ * VFORK This machine has a vfork(). -+ * It used to be that for job control to work, this define -+ * was mandatory. This is not the case any more. -+ * If you think you still need it, but you don't have vfork, -+ * define this anyway and then do #define vfork fork. -+ * I do this anyway on a Sun because of yellow pages brain damage, -+ * [should not be needed under 4.1] -+ * and on the iris4d cause SGI's fork is sufficiently "virtual" -+ * that vfork isn't necessary. (Besides, SGI's vfork is weird). -+ * Note that some machines eg. rs6000 have a vfork, but not -+ * with the berkeley semantics, so we cannot use it there either. -+ */ -+#undef VFORK -+ -+/* -+ * BSDJOBS You have BSD-style job control (both process groups and -+ * a tty that deals correctly -+ */ -+#define BSDJOBS -+ -+/* -+ * BSDTIMES You have BSD-style process time stuff (like rusage) -+ * This may or may not be true. For example, Apple Unix -+ * (OREO) has BSDJOBS but not BSDTIMES. -+ */ -+#define BSDTIMES -+ -+/* -+ * BSDLIMIT You have BSD-style resource limit stuff (getrlimit/setrlimit) -+ */ -+#define BSDLIMIT -+ -+/* -+ * TERMIO You have struct termio instead of struct sgttyb. -+ * This is usually the case for SVID systems, where -+ * BSD uses sgttyb. POSIX systems should define this -+ * anyway, even though they use struct termios. -+ */ -+#define TERMIO -+ -+/* -+ * SYSVREL Your machine is SYSV based (HPUX, A/UX) -+ * NOTE: don't do this if you are on a Pyramid -- tcsh is -+ * built in a BSD universe. -+ * Set SYSVREL to 1, 2, 3, or 4, depending the version of System V -+ * you are running. Or set it to 0 if you are not SYSV based -+ * -+ * Note: Linux should work with any SYSVREL < 3. -+ */ -+#define SYSVREL 2 -+ -+/* -+ * YPBUGS Work around Sun YP bugs that cause expansion of ~username -+ * to send command output to /dev/null -+ */ -+#undef YPBUGS -+ -+/* -+ * Get the name space we want. -+ * -+ * The more recent defaults for gcc (e.g. on Red Hat 7.0) -+ * also define _POSIX_C_SOURCE, which throws our code off. -+ */ -+ -+#define __STRICT_ANSI__ -+#ifndef _BSD_SOURCE -+# define _BSD_SOURCE -+#endif -+#ifndef _SVID_SOURCE -+# define _SVID_SOURCE -+#endif -+#ifndef _POSIX_SOURCE -+# define _POSIX_SOURCE -+#endif -+#ifndef _XOPEN_SOURCE -+# define _XOPEN_SOURCE 500 -+#endif -+#ifndef _GNU_SOURCE -+# define _GNU_SOURCE -+#endif -+ -+/* -+ * Large file support from -+ */ -+ -+#ifndef _LARGEFILE_SOURCE -+# define _LARGEFILE_SOURCE -+#endif -+#ifndef _LARGEFILE64_SOURCE -+# define _LARGEFILE64_SOURCE -+#endif -+#ifndef _FILE_OFFSET_BITS -+# define _FILE_OFFSET_BITS 64 -+#endif -+ -+/****************** local defines *********************/ -+#ifndef _PATH_TCSHELL -+#define _PATH_TCSHELL "/bin/tcsh" -+#endif -+#define ECHO_STYLE BOTH_ECHO -+ -+#if !defined(SYSMALLOC) -+# define SYSMALLOC -+#endif -+#if !defined(NISPLUS) -+# define NISPLUS -+#endif -+#if !defined(POSIX) -+# define POSIX -+#endif -+ -+/* midipix allows paths prepended with double slashes (network paths). */ -+#define HAVE_SLASHSLASH 1 -+ -+#endif /* _h_config */ ---- tcsh-6.19.00/config_f.h.orig 2015-02-22 17:31:54.000000000 +0100 -+++ tcsh-6.19.00/config_f.h 2016-10-14 22:10:42.212000000 +0200 -@@ -135,11 +135,9 @@ - * This can be much slower and no memory statistics will be - * provided. - */ --#if defined(__MACHTEN__) || defined(PURIFY) || defined(MALLOC_TRACE) || defined(_OSD_POSIX) || defined(__MVS__) || defined (__CYGWIN__) || defined(__GLIBC__) || defined(__OpenBSD__) || defined(__APPLE__) -+ -+/* always use the system malloc. seriously guys. */ - # define SYSMALLOC --#else --# undef SYSMALLOC --#endif - - /* - * USE_ACCESS Use access(2) rather than stat(2) when POSIX is defined. diff --git a/tmux-2.2.local.patch b/tmux-2.2.local.patch deleted file mode 100644 index 3fdec0a7..00000000 --- a/tmux-2.2.local.patch +++ /dev/null @@ -1,51 +0,0 @@ ---- tmux-2.2/configure.orig 2016-04-11 02:01:19.000000000 +0200 -+++ tmux-2.2/configure 2016-06-24 12:56:52.685289900 +0200 -@@ -3664,18 +3664,6 @@ - $as_echo "$ac_cv_prog_cc_g" >&6; } - if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS --elif test $ac_cv_prog_cc_g = yes; then -- if test "$GCC" = yes; then -- CFLAGS="-g -O2" -- else -- CFLAGS="-g" -- fi --else -- if test "$GCC" = yes; then -- CFLAGS="-O2" -- else -- CFLAGS= -- fi - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 - $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } ---- tmux-2.2/Makefile.in.orig 2016-04-11 02:01:16.000000000 +0200 -+++ tmux-2.2/Makefile.in 2016-06-24 12:58:45.526157800 +0200 -@@ -94,10 +94,10 @@ - - # glibc as usual does things ass-backwards and hides useful things by default, - # so everyone has to add this. --@IS_GLIBC_TRUE@am__append_1 = -D_GNU_SOURCE -+am__append_1 = -D_GNU_SOURCE - - # Set flags for gcc. --@IS_GCC_TRUE@am__append_2 = -std=gnu99 -O2 -+@IS_GCC_TRUE@am__append_2 = -std=gnu99 - @IS_DEBUG_TRUE@@IS_GCC_TRUE@am__append_3 = -g -Wno-long-long -Wall -W \ - @IS_DEBUG_TRUE@@IS_GCC_TRUE@ -Wnested-externs -Wformat=2 \ - @IS_DEBUG_TRUE@@IS_GCC_TRUE@ -Wmissing-prototypes \ ---- tmux-2.2/tmux.c.orig 2016-03-05 18:55:49.000000000 +0100 -+++ tmux-2.2/tmux.c 2016-06-24 13:00:39.079504000 +0200 -@@ -133,10 +133,12 @@ - errno = ENOTDIR; - goto fail; - } -+#if 0 - if (sb.st_uid != uid || (sb.st_mode & S_IRWXO) != 0) { - errno = EACCES; - goto fail; - } -+#endif - - if (realpath(base, resolved) == NULL) - strlcpy(resolved, base, sizeof resolved); diff --git a/unzip60.local.patch b/unzip60.local.patch deleted file mode 100644 index 1b5006e6..00000000 --- a/unzip60.local.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- unzip60/unix/Makefile.orig 2009-01-18 23:41:18.000000000 +0100 -+++ unzip60/unix/Makefile 2016-10-17 05:23:43.308917300 +0200 -@@ -535,6 +535,11 @@ - # INDIVIDUAL MACHINE MAKERULES # - ################################ - -+#Midipix target -+midipix: -+ $(MAKE) $(MAKEF) unzips CC="x86_64-nt64-midipix-gcc" CFLAGS="-g3 -O0 -I. -DUNIX -DNO_BZIP2_SUPPORT -DLARGE_FILE_SUPPORT -DUNICODE_SUPPORT -DUNICODE_WCHAR -DUNICODE_SUPPORT \ -+ -DUTF8_MAYBE_NATIVE -DNO_LCHMOD -DHAVE_DIRENT_H -DHAVE_TERMIOS_H -D_MBCS" CRCA_O="" AS="x86_64-nt64-midipix-gcc -c" LFLAGS1="" LF2="" -+ - #---------------------------------------------------------------------------- - # Generic targets using the configure script to determine configuration. - #---------------------------------------------------------------------------- diff --git a/vars/build.vars b/vars/build.vars new file mode 100644 index 00000000..f7dbf3ff --- /dev/null +++ b/vars/build.vars @@ -0,0 +1,673 @@ +# +# WARNING: Do _NOT_ use whitespaces (` ') or tab (` ') +# characters in any of the variables below save for MAKEFLAGS, +# PATH, and TIMESTAMP_FMT. +# +# $PREFIX_{CROSS,NATIVE} and $WORKDIR must be immediately +# beneath $PREFIX. $PREFIX must be o+rwx. The variables mentioned +# should not be forward slash-terminated. +# + +if [ "${ARCH:=nt64}" = nt32 ]; then + TARGET="i686-nt32-midipix"; +elif [ "${ARCH}" = nt64 ]; then + TARGET="x86_64-nt64-midipix"; +else + log_msg failexit "Error: invalid architecture \`${ARCH}'."; +fi; +if [ "${BUILD:=debug}" = debug ]; then + HOST_TOOLCHAIN_CFLAGS_CONFIGURE_DEFAULT="-g2 -O0"; + NATIVE_TOOLCHAIN_CFLAGS_CONFIGURE_DEFAULT="-g2 -O0"; + RUNTIME_CFLAGS_CONFIGURE_DEFAULT="-g3 -O0"; + LIB_PACKAGES_CFLAGS_CONFIGURE_DEFAULT="-g2 -O0"; + LEAF_PACKAGES_CFLAGS_CONFIGURE_DEFAULT="-g2 -O0"; +elif [ "${BUILD}" = release ]; then + HOST_TOOLCHAIN_CFLAGS_CONFIGURE_DEFAULT="-g0 -O2"; + NATIVE_TOOLCHAIN_CFLAGS_CONFIGURE_DEFAULT="-g0 -O2"; + RUNTIME_CFLAGS_CONFIGURE_DEFAULT="-g0 -O2"; + LIB_PACKAGES_CFLAGS_CONFIGURE_DEFAULT="-g0 -O2"; + LEAF_PACKAGES_CFLAGS_CONFIGURE_DEFAULT="-g0 -O2"; +else + log_msg failexit "Error: unknown build type \`${BUILD}'."; +fi; +: ${PREFIX_ROOT:=${HOME}/midipix}; +: ${PREFIX:=${PREFIX_ROOT}/${ARCH}/${BUILD}}; +: ${PREFIX_MINIPIX:=${PREFIX}/minipix}; +: ${PREFIX_NATIVE:=${PREFIX}/native}; +: ${PREFIX_CROSS:=${PREFIX}/${TARGET}}; +: ${DLCACHEDIR:=${PREFIX_ROOT}/dlcache}; +: ${WORKDIR:=${PREFIX}/tmp}; +: ${BUILD_LOG_FNAME:=${PREFIX}/build.log}; +: ${BUILD_LOG_LAST_FNAME:=${PREFIX}/build.log.last}; +: ${BUILD_STATUS_IN_PROGRESS_FNAME:=${PREFIX}/BUILD_IN_PROGRESS}; +: ${CHECK_PREREQ_CMDS:="aclocal autoconf autopoint awk basename bunzip2 find flex gcc git groff gunzip install ld libtool lzma make makeinfo msgfmt nl nroff openssl patch python sed sha256sum sort tar tee tic tr uname wget xz"}; +: ${CHECK_PREREQ_FILES:="/usr/include/gmpxx.h /usr/include/mpc.h /usr/include/mpfr.h"}; +: ${CHECK_PREREQ_FILES_DYNAMIC:='/usr/share/groff/$(groff -v 2>/dev/null | awk '\''/^GNU groff version /{print $NF}'\'')/tmac/e.tmac'}; +: ${CHECK_PREREQ_PERL_MODULES:="autodie ExtUtils::MakeMaker"}; +: ${CHECK_PATH_VARS:="PREFIX PREFIX_NATIVE PREFIX_CROSS DLCACHEDIR WORKDIR"}; +: ${CLEAR_ENV_VARS_EXCEPT:="ARG_TARBALL ARG_VERBOSE HOME PATH SHELL TERM USER"}; +: ${CLEAR_PREFIX_DIRS:="bin i686-nt32-midipix include lib lib64 libexec minipix native share tmp x86_64-nt64-midipix"}; +: ${DEFAULT_MAKEFLAGS_BUILD:=-j${BUILD_CPUS:=1}}; +: ${GITROOT:=git://midipix.org}; +: ${GITROOT_HEAD:=git://midipix.org}; +: ${LOG_ENV_VARS:="HOME PATH SHELL USER GITROOT ARCH BUILD HOST_TOOLCHAIN_CFLAGS_CONFIGURE NATIVE_TOOLCHAIN_CFLAGS_CONFIGURE RUNTIME_CFLAGS_CONFIGURE LIB_PACKAGES_CFLAGS_CONFIGURE LEAF_PACKAGES_CFLAGS_CONFIGURE PREFIX PREFIX_NATIVE PREFIX_CROSS WORKDIR"}; +: ${LOG_MSG_FAIL_COLOUR:=91}; +: ${LOG_MSG_INFO_COLOUR:=93}; +: ${LOG_MSG_SUCC_COLOUR:=92}; +: ${LOG_MSG_WARN_COLOUR:=96}; +: ${PKG_BUILD_VARS:="BUILD_CMDLINE BUILD_DIR BUILD_TYPE CFLAGS_BUILD_EXTRA CFLAGS_CONFIGURE CFLAGS_CONFIGURE_EXTRA CFLAGS_INSTALL_EXTRA CONFIG_CACHE_EXTRA CONFIGURE CONFIGURE_ARGS CONFIGURE_ARGS_EXTRA DISABLED ENV_VARS_EXTRA FNAME GIT_BRANCH INSTALL_FILES INSTALL_TARGET INSTALL_TARGET_EXTRA LDFLAGS_BUILD_EXTRA LDFLAGS_CONFIGURE LDFLAGS_CONFIGURE_EXTRA LDFLAGS_INSTALL_EXTRA MAKEFLAGS_BUILD MAKEFLAGS_BUILD_EXTRA MAKEFLAGS_INSTALL MAKEFLAGS_INSTALL_EXTRA NO_CLEAN NO_MAKE_INSTALL PREFIX_EXTRA SHA256SUM SLIBTOOL SUBDIR SUBDIR_CREATE URL URL_FNAME URL_TYPE VERSION"}; +: ${TARBALL_FNAME_PREFIX:=midipix-${ARCH}-${BUILD}.}; +: ${TARBALL_SIGN_GPG_KEY:=}; +: ${TARBALL_CROSS_FNAME_PREFIX:=midipix-${ARCH}-${BUILD}_cross.}; +: ${TARBALL_CROSS_SIGN_GPG_KEY:=}; +: ${TARBALL_MINIPIX_FNAME_PREFIX:=minipix-${ARCH}-${BUILD}.}; +: ${TARBALL_MINIPIX_SIGN_GPG_KEY:=}; +: ${TARBALL_SRC_FNAME_PREFIX:=midipix-${ARCH}-${BUILD}_src.}; +: ${TARBALL_SRC_SIGN_GPG_KEY:=}; +: ${TARBALL_SUFFIX:=xz}; +: ${TIMESTAMP_FMT_STATUS_FILES:=%Y-%m-%d-%H-%M-%S}; +: ${TIMESTAMP_FMT:="%Y/%m/%d %H:%M:%S"}; +: ${VALID_BUILD_LEVELS="fetch,extract,build_dir,autoconf,patch,configure,clean,build,install"}; +: ${WGET_ARGS:="--no-check-certificate"}; +export PATH="${PREFIX}/bin${PATH:+:${PATH}}"; + +# +# Build target host_toolchain +# +HOST_TOOLCHAIN_BUILD_TYPE="host"; +HOST_TOOLCHAIN_CFLAGS_CONFIGURE="${HOST_TOOLCHAIN_CFLAGS_CONFIGURE_DEFAULT}"; +HOST_TOOLCHAIN_CONFIGURE_ARGS="-C --disable-nls --host=${TARGET} --prefix= --target=${TARGET}"; +HOST_TOOLCHAIN_PACKAGES="slibtool_host perk_host binutils_host gcc.stage1 psxstub musl.no-complex gcc.runtime musl.full gcc.libstdc++-v3 gcc.full pkgconf_host file_host"; +HOST_TOOLCHAIN_PREFIX="${PREFIX_CROSS}"; +: ${PKG_SLIBTOOL_HOST_URL:=git://midipix.org/slibtool}; +: ${PKG_SLIBTOOL_HOST_URL_TYPE:=git}; +: ${PKG_SLIBTOOL_HOST_CONFIGURE_ARGS:=--host= --prefix=}; +: ${PKG_SLIBTOOL_HOST_MAKEFLAGS_INSTALL=DESTDIR=${PREFIX}}; +: ${PKG_PERK_HOST_URL:=${GITROOT}/perk}; +: ${PKG_PERK_HOST_URL_TYPE:=git}; +: ${PKG_PERK_HOST_CONFIGURE_ARGS="--prefix=/usr"}; +: ${PKG_PERK_HOST_MAKEFLAGS_INSTALL="DESTDIR=${PREFIX}"}; +: ${PKG_BINUTILS_HOST_SHA256SUM:=250d3b2925c6b211fb16173b0b25bc091c58829fbcad3eb849645e0af52cf7fa}; +: ${PKG_BINUTILS_HOST_VERSION:=2.24.51}; +: ${PKG_BINUTILS_HOST_URL:=ftp://sourceware.org/pub/binutils/snapshots/binutils-${PKG_BINUTILS_HOST_VERSION}.tar.bz2}; +: ${PKG_BINUTILS_HOST_CONFIGURE_ARGS:=--disable-werror --prefix=${PREFIX} --target=${TARGET} --with-sysroot=${PREFIX_CROSS}}; +: ${PKG_BINUTILS_HOST_SLIBTOOL:=slibtool-static}; +: ${PKG_PSXSTUB_URL:=${GITROOT}/psxstub}; +: ${PKG_PSXSTUB_URL_TYPE:=git}; +: ${PKG_PKGCONF_HOST_SHA256SUM:=7ec8b516e655e247f4ba976837cee808134785819ab8f538f652fe919cc6c09f}; +: ${PKG_PKGCONF_HOST_VERSION:=0.9.12}; +: ${PKG_PKGCONF_HOST_URL:=https://github.com/pkgconf/pkgconf/releases/download/pkgconf-${PKG_PKGCONF_HOST_VERSION}/pkgconf-${PKG_PKGCONF_HOST_VERSION}.tar.bz2}; +: ${PKG_PKGCONF_HOST_CONFIGURE_ARGS:="-C --prefix=${PREFIX_NATIVE}"}; +: ${PKG_PKGCONF_HOST_MAKEFLAGS_INSTALL_EXTRA:=prefix=${PREFIX}}; +: ${PKG_FILE_HOST_SHA256SUM:=0ecb5e146b8655d1fa84159a847ee619fc102575205a0ff9c6cc60fc5ee2e012}; +: ${PKG_FILE_HOST_VERSION:=5.28}; +: ${PKG_FILE_HOST_URL:=ftp://ftp.astron.com/pub/file/file-${PKG_FILE_HOST_VERSION}.tar.gz}; +: ${PKG_FILE_HOST_CONFIGURE_ARGS:="-C --prefix=${PREFIX}"}; + +# +# Build target native_toolchain +# +NATIVE_TOOLCHAIN_CFLAGS_CONFIGURE="${NATIVE_TOOLCHAIN_CFLAGS_CONFIGURE_DEFAULT}"; +NATIVE_TOOLCHAIN_CONFIGURE_ARGS="--disable-nls --host=${TARGET} --prefix=/ --target=${TARGET}"; +NATIVE_TOOLCHAIN_MAKEFLAGS_INSTALL="DESTDIR=${PREFIX_NATIVE}"; +NATIVE_TOOLCHAIN_PACKAGES="slibtool perk pkgconf gmp mpfr mpc libelf binutils musl.native gcc.native"; +NATIVE_TOOLCHAIN_PREFIX="${PREFIX_NATIVE}"; +: ${PKG_SLIBTOOL_URL:=git://midipix.org/slibtool}; +: ${PKG_SLIBTOOL_URL_TYPE:=git}; +: ${PKG_SLIBTOOL_CONFIGURE_ARGS="--host=${TARGET} --prefix= --target=${TARGET}"}; +: ${PKG_PERK_URL:=${GITROOT}/perk}; +: ${PKG_PERK_URL_TYPE:=git}; +: ${PKG_PERK_CONFIGURE_ARGS="--prefix=/usr --target=${TARGET}"}; +: ${PKG_PKGCONF_SHA256SUM:=7ec8b516e655e247f4ba976837cee808134785819ab8f538f652fe919cc6c09f}; +: ${PKG_PKGCONF_VERSION:=0.9.12}; +: ${PKG_PKGCONF_URL:=https://github.com/pkgconf/pkgconf/releases/download/pkgconf-${PKG_PKGCONF_VERSION}/pkgconf-${PKG_PKGCONF_VERSION}.tar.bz2}; +: ${PKG_PKGCONF_INSTALL_FILES:=/=lib/pkgconfig}; +: ${PKG_GMP_VERSION:=5.1.3}; +: ${PKG_GMP_SHA256SUM:=752079520b4690531171d0f4532e40f08600215feefede70b24fabdc6f1ab160}; +: ${PKG_GMP_URL:=https://gmplib.org/download/gmp/gmp-${PKG_GMP_VERSION}.tar.bz2}; +: ${PKG_GMP_CONFIGURE_ARGS_EXTRA:=--disable-assembly}; +: ${PKG_GMP_PREFIX_EXTRA:=${PREFIX_CROSS}}; +: ${PKG_MPFR_VERSION:=3.1.2}; +: ${PKG_MPFR_SHA256SUM:=79c73f60af010a30a5c27a955a1d2d01ba095b72537dab0ecaad57f5a7bb1b6b}; +: ${PKG_MPFR_URL:=ftp://ftp.gnu.org/gnu/mpfr/mpfr-${PKG_MPFR_VERSION}.tar.bz2}; +: ${PKG_MPFR_CONFIGURE_ARGS_EXTRA:=--with-gmp=${PREFIX_NATIVE}}; +: ${PKG_MPFR_PREFIX_EXTRA:=${PREFIX_CROSS}}; +: ${PKG_MPC_VERSION:=1.0.1}; +: ${PKG_MPC_SHA256SUM:=ed5a815cfea525dc778df0cb37468b9c1b554aaf30d9328b1431ca705b7400ff}; +: ${PKG_MPC_URL:=ftp://ftp.gnu.org/gnu/mpc/mpc-${PKG_MPC_VERSION}.tar.gz}; +: ${PKG_MPC_CONFIGURE_ARGS_EXTRA:=--with-gmp=${PREFIX_NATIVE} --with-mpfr=${PREFIX_NATIVE}}; +: ${PKG_MPC_PREFIX_EXTRA:=${PREFIX_CROSS}}; +: ${PKG_LIBELF_VERSION:=0.8.13}; +: ${PKG_LIBELF_SHA256SUM:=591a9b4ec81c1f2042a97aa60564e0cb79d041c52faa7416acb38bc95bd2c76d}; +: ${PKG_LIBELF_URL:=http://www.mr511.de/software/libelf-${PKG_LIBELF_VERSION}.tar.gz}; +: ${PKG_LIBELF_CONFIGURE_ARGS:="--disable-nls --host=${TARGET} --prefix=${PREFIX_NATIVE} --target=${TARGET}"}; +: ${PKG_LIBELF_MAKEFLAGS_INSTALL:=}; +: ${PKG_BINUTILS_VERSION:=2.24.51}; +: ${PKG_BINUTILS_SHA256SUM:=250d3b2925c6b211fb16173b0b25bc091c58829fbcad3eb849645e0af52cf7fa}; +: ${PKG_BINUTILS_URL:=ftp://sourceware.org/pub/binutils/snapshots/binutils-${PKG_BINUTILS_VERSION}.tar.bz2}; +: ${PKG_BINUTILS_CONFIGURE_ARGS_EXTRA:=--with-libelf=${PREFIX_NATIVE} --with-gmp=${PREFIX_NATIVE} --with-mpc=${PREFIX_NATIVE} --with-mpfr=${PREFIX_NATIVE} --with-sysroot=/}; +: ${PKG_BINUTILS_SLIBTOOL:=slibtool-static}; +: ${PKG_MUSL_SHA256SUM:=720b83c7e276b4b679c0bffe9509340d5f81fd601508e607e708177df0d31c0e}; +: ${PKG_MUSL_VERSION:=1.1.12}; +: ${PKG_MUSL_URL:=http://www.musl-libc.org/releases/musl-${PKG_MUSL_VERSION}.tar.gz}; +: ${PKG_GCC_VERSION:=4.6.4}; + +# +# Build target runtime +# +RUNTIME_BUILD_TYPE="cross"; +RUNTIME_CFLAGS_CONFIGURE="${RUNTIME_CFLAGS_CONFIGURE_DEFAULT}"; +RUNTIME_CONFIGURE_ARGS="--prefix= --strict --host=${TARGET}"; +RUNTIME_ENV_VARS_EXTRA="CFLAGS_PATH=-I${PREFIX_NATIVE}/include:LDFLAGS_PATH=-L${PREFIX_NATIVE}/lib"; +RUNTIME_MAKEFLAGS_INSTALL="DESTDIR=${PREFIX_NATIVE}"; +RUNTIME_PACKAGES="psxtypes pemagine dalist ntcon ntapi psxscl psxscl_strace ntctty ptycon"; +RUNTIME_PREFIX="${PREFIX_NATIVE}"; +RUNTIME_URL_TYPE="git"; +: ${PKG_PSXTYPES_URL:=${GITROOT}/psxtypes}; +: ${PKG_PSXTYPES_BUILD_DIR:=psxtypes}; +: ${PKG_PSXTYPES_MAKEFLAGS_BUILD:="DESTDIR=${PREFIX_NATIVE}"}; +: ${PKG_PEMAGINE_URL:=${GITROOT}/pemagine}; +: ${PKG_PEMAGINE_CFLAGS_CONFIGURE_EXTRA:=-O0}; +: ${PKG_PEMAGINE_INSTALL_TARGET_EXTRA:=install-lib}; +: ${PKG_PEMAGINE_PREFIX_EXTRA:=${PREFIX_MINIPIX}}; +: ${PKG_DALIST_URL:=${GITROOT}/dalist}; +: ${PKG_DALIST_INSTALL_TARGET_EXTRA:=install-lib}; +: ${PKG_DALIST_PREFIX_EXTRA:=${PREFIX_MINIPIX}}; +: ${PKG_NTCON_URL:=${GITROOT}/ntcon}; +: ${PKG_NTCON_INSTALL_TARGET_EXTRA:=install-lib}; +: ${PKG_NTCON_PREFIX_EXTRA:=${PREFIX_MINIPIX}}; +: ${PKG_NTAPI_URL:=${GITROOT}/ntapi}; +: ${PKG_NTAPI_INSTALL_TARGET_EXTRA:=install-lib}; +: ${PKG_NTAPI_PREFIX_EXTRA:=${PREFIX_MINIPIX}}; +: ${PKG_PSXSCL_URL:=${GITROOT_HEAD}/psxscl}; +: ${PKG_PSXSCL_CFLAGS_CONFIGURE_EXTRA:=-O0}; +: ${PKG_PSXSCL_INSTALL_TARGET_EXTRA:=install-lib}; +: ${PKG_PSXSCL_PREFIX_EXTRA:=${PREFIX_MINIPIX}}; +: ${PKG_PSXSCL_STRACE_URL:=${GITROOT_HEAD}/psxscl}; +: ${PKG_PSXSCL_STRACE_CFLAGS_CONFIGURE_EXTRA="-DPSX_INTERNAL_STRACE -O0"}; +: ${PKG_PSXSCL_STRACE_INSTALL_FILES:="/=lib/psxscl_strace lib/libpsxscl.so=lib/psxscl_strace/"}; +: ${PKG_PSXSCL_STRACE_NO_MAKE_INSTALL:=1}; +: ${PKG_NTCTTY_URL:=${GITROOT_HEAD}/ntctty}; +: ${PKG_NTCTTY_CFLAGS_CONFIGURE_EXTRA:=-O0}; +: ${PKG_NTCTTY_PREFIX_EXTRA:=${PREFIX_MINIPIX}}; +: ${PKG_PTYCON_URL:=${GITROOT_HEAD}/ptycon}; +: ${PKG_PTYCON_CFLAGS_CONFIGURE_EXTRA:=-O0}; +: ${PKG_PTYCON_INSTALL_TARGET_EXTRA:=install-app install-lib}; +: ${PKG_PTYCON_PREFIX_EXTRA:=${PREFIX_MINIPIX}}; + +# +# Build target lib_packages +# +LIB_PACKAGES_CFLAGS_CONFIGURE="${LIB_PACKAGES_CFLAGS_CONFIGURE_DEFAULT:+${LIB_PACKAGES_CFLAGS_CONFIGURE_DEFAULT} }--sysroot=${PREFIX_NATIVE}"; +LIB_PACKAGES_CONFIGURE_ARGS="-C --disable-nls --host=${TARGET} --prefix= --target=${TARGET}"; +LIB_PACKAGES_LDFLAGS_CONFIGURE="--sysroot=${PREFIX_NATIVE}"; +LIB_PACKAGES_MAKEFLAGS_INSTALL="DESTDIR=${PREFIX_NATIVE}"; +LIB_PACKAGES_PACKAGES=" +bzip2 curl expat libz libffi gdbm pcre glib gzip libarchive libpipeline libressl libevent libfetch +libgpg_error libassuan libfirm libgcrypt libksba lua ncurses ncursestw ncursesw npth xz inputproto +kbproto xcb_proto xproto libXau libpthread_stubs xcb xextproto xtrans libX11 libXext libICE +libSM libXt libXmu renderproto Xrender libXpm libXaw libxkbfile"; +LIB_PACKAGES_PREFIX="${PREFIX_NATIVE}"; +: ${PKG_BZIP2_CFLAGS_BUILD_EXTRA:=${PACKAGES_CFLAGS_CONFIGURE}}; +: ${PKG_BZIP2_INSTALL_FILES:="@bzdiff=bin/bzcmp @bzgrep=bin/bzegrep @bzgrep=bin/bzfgrep @bzmore=bin/bzless libbz2.so.1.0=lib/ libbz2.so.1.0.6=lib/"}; +: ${PKG_BZIP2_MAKEFLAGS_BUILD_EXTRA:=-f Makefile-libbz2_so}; +: ${PKG_BZIP2_MAKEFLAGS_INSTALL_EXTRA:=PREFIX=${PREFIX_NATIVE}}; +: ${PKG_BZIP2_NO_CLEAN:=1}; +: ${PKG_BZIP2_SHA256SUM:=a2848f34fcd5d6cf47def00461fcb528a0484d8edef8208d6d2e2909dc61d9cd}; +: ${PKG_BZIP2_VERSION:=1.0.6}; +: ${PKG_BZIP2_BUILD_DIR:=bzip2-${PKG_BZIP2_VERSION}}; +: ${PKG_BZIP2_URL:=http://www.bzip.org/1.0.6/bzip2-${PKG_BZIP2_VERSION}.tar.gz}; +: ${PKG_CURL_LDFLAGS_BUILD_EXTRA:=-L${PREFIX_NATIVE}/lib}; +: ${PKG_CURL_SHA256SUM:=ddc643ab9382e24bbe4747d43df189a0a6ce38fcb33df041b9cb0b3cd47ae98f}; +: ${PKG_CURL_VERSION:=7.47.1}; +: ${PKG_CURL_URL:=https://curl.haxx.se/download/curl-${PKG_CURL_VERSION}.tar.bz2}; +: ${PKG_EXPAT_SHA256SUM:=d9e50ff2d19b3538bd2127902a89987474e1a4db8e43a66a4d1a712ab9a504ff}; +: ${PKG_EXPAT_VERSION:=2.2.0}; +: ${PKG_EXPAT_URL:=http://pkgs.fedoraproject.org/repo/pkgs/expat/expat-${PKG_EXPAT_VERSION}.tar.bz2/2f47841c829facb346eb6e3fab5212e2/expat-${PKG_EXPAT_VERSION}.tar.bz2}; +: ${PKG_LIBZ_CONFIGURE_ARGS:=--host=${TARGET} --prefix= --target=${TARGET}}; +: ${PKG_LIBZ_SHA256SUM:=33e65f22ec3d3e3f87436e53f82eb114054cd3aa373dc0480625dd92806fd9a0}; +: ${PKG_LIBZ_VERSION:=1.2.8.2015.05.20}; +: ${PKG_LIBZ_URL:=https://sortix.org/libz/release/libz-${PKG_LIBZ_VERSION}.tar.gz}; +: ${PKG_LIBFFI_CFLAGS_CONFIGURE_EXTRA:=-D_WIN64}; +: ${PKG_LIBFFI_CONFIGURE_ARGS_EXTRA:=--program-prefix=}; +: ${PKG_LIBFFI_SHA256SUM:=d06ebb8e1d9a22d19e38d63fdb83954253f39bedc5d46232a05645685722ca37}; +: ${PKG_LIBFFI_VERSION:=3.2.1}; +: ${PKG_LIBFFI_URL:=ftp://sourceware.org/pub/libffi/libffi-${PKG_LIBFFI_VERSION}.tar.gz}; +: ${PKG_GDBM_SHA256SUM:=d97b2166ee867fd6ca5c022efee80702d6f30dd66af0e03ed092285c3af9bcea}; +: ${PKG_GDBM_VERSION:=1.12}; +: ${PKG_GDBM_URL:=ftp://ftp.gnu.org/gnu/gdbm/gdbm-${PKG_GDBM_VERSION}.tar.gz}; +: ${PKG_PCRE_SHA256SUM:=ccdf7e788769838f8285b3ee672ed573358202305ee361cfec7a4a4fb005bbc7}; +: ${PKG_PCRE_VERSION:=8.39}; +: ${PKG_PCRE_URL:=ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-${PKG_PCRE_VERSION}.tar.gz}; +: ${PKG_GLIB_CONFIGURE_ARGS_EXTRA:=--disable-libelf}; +: ${PKG_GLIB_ENV_VARS_EXTRA:=LIBFFI_CFLAGS=-I${PREFIX_NATIVE}/lib/libffi-3.2.1/include:LIBFFI_LIBS=-L${PREFIX_NATIVE}/lib -lffi}; +: ${PKG_GLIB_LDFLAGS_CONFIGURE_EXTRA:=-L${PREFIX_NATIVE}/lib}; +: ${PKG_GLIB_MAKEFLAGS_BUILD_EXTRA:=V=99}; +: ${PKG_GLIB_SHA256SUM:=5031722e37036719c1a09163cc6cf7c326e4c4f1f1e074b433c156862bd733db}; +: ${PKG_GLIB_VERSION:=2.46.2}; +: ${PKG_GLIB_URL:=http://ftp.gnome.org/pub/GNOME/sources/glib/${PKG_GLIB_VERSION%.[0-9]}/glib-${PKG_GLIB_VERSION}.tar.xz}; +: ${PKG_GZIP_CFLAGS_CONFIGURE_EXTRA:=-DNO_ASM -UASMV}; +: ${PKG_GZIP_CONFIGURE_ARGS:=--host=${TARGET} --prefix= --target=${TARGET} --sysroot=${PREFIX_NATIVE}}; +: ${PKG_GZIP_MAKEFLAGS_BUILD_EXTRA:=OBJA= prefix=${PREFIX_NATIVE}}; +: ${PKG_GZIP_MAKEFLAGS_INSTALL_EXTRA:=OBJA= prefix=${PREFIX_NATIVE}}; +: ${PKG_GZIP_SHA256SUM:=1ca41818a23c9c59ef1d5e1d00c0d5eaa2285d931c0fb059637d7c0cc02ad967}; +: ${PKG_GZIP_VERSION:=1.2.4}; +: ${PKG_GZIP_URL:=https://ftp.gnu.org/gnu/gzip/gzip-${PKG_GZIP_VERSION}.tar.gz}; +: ${PKG_LIBARCHIVE_CONFIGURE_ARGS_EXTRA:=--without-xml2}; +: ${PKG_LIBARCHIVE_LDFLAGS_CONFIGURE_EXTRA:=-L${PREFIX_NATIVE}/lib}; +: ${PKG_LIBARCHIVE_MAKEFLAGS_INSTALL_EXTRA:="prefix=:DESTDIR=${PREFIX_NATIVE}:LIBTOOL=slibtool"}; +: ${PKG_LIBARCHIVE_SHA256SUM:=eb87eacd8fe49e8d90c8fdc189813023ccc319c5e752b01fb6ad0cc7b2c53d5e}; +: ${PKG_LIBARCHIVE_VERSION:=3.1.2}; +: ${PKG_LIBARCHIVE_URL:=http://www.libarchive.org/downloads/libarchive-${PKG_LIBARCHIVE_VERSION}.tar.gz}; +: ${PKG_LIBPIPELINE_CFLAGS_BUILD_EXTRA:=-Dprogram_name=program_invocation_name}; +: ${PKG_LIBPIPELINE_SHA256SUM:=da46d7b20163aadb9db2faae483f734e9096a7550c84b94029abeab62dd1b9ee}; +: ${PKG_LIBPIPELINE_VERSION:=1.4.1}; +: ${PKG_LIBPIPELINE_URL:=http://download.savannah.gnu.org/releases/libpipeline/libpipeline-${PKG_LIBPIPELINE_VERSION}.tar.gz}; +: ${PKG_LIBRESSL_CFLAGS_CONFIGURE_EXTRA:=-D__MIDIPIX}; +: ${PKG_LIBRESSL_CONFIGURE_ARGS_EXTRA:=--disable-asm}; +: ${PKG_LIBRESSL_SHA256SUM:=1ee19994cffd047d40f63ba149115dba18a681b0cc923beec301bf424b58d64f}; +: ${PKG_LIBRESSL_VERSION:=2.2.6}; +: ${PKG_LIBRESSL_URL:=http://ftp.eu.openbsd.org/pub/OpenBSD/LibreSSL/libressl-${PKG_LIBRESSL_VERSION}.tar.gz}; +: ${PKG_LIBEVENT_SHA256SUM:=71c2c49f0adadacfdbe6332a372c38cf9c8b7895bb73dabeaa53cdcc1d4e1fa3}; +: ${PKG_LIBEVENT_VERSION:=2.0.22-stable}; +: ${PKG_LIBEVENT_URL:=https://github.com/libevent/libevent/releases/download/release-${PKG_LIBEVENT_VERSION}/libevent-${PKG_LIBEVENT_VERSION}.tar.gz}; +: ${PKG_LIBFETCH_ENV_VARS_EXTRA:=CFLAGS=--sysroot=${PREFIX_NATIVE}:LDFLAGS=--sysroot=${PREFIX_NATIVE}}; +: ${PKG_LIBFETCH_MAKEFLAGS_BUILD_EXTRA:=E=echo Q= AR=${TARGET}-ar CC=${TARGET}-gcc LD=${TARGET}-gcc}; +: ${PKG_LIBFETCH_MAKEFLAGS_INSTALL_EXTRA:=E=echo Q= prefix=}; +: ${PKG_LIBFETCH_SHA256SUM:=3226f53d5ad29cc27510db968ef0d37bf4554b8aaaeadcd56e23067213b08943}; +: ${PKG_LIBFETCH_VERSION:=2.33}; +: ${PKG_LIBFETCH_BUILD_DIR:=libfetch-${PKG_LIBFETCH_VERSION}}; +: ${PKG_LIBFETCH_URL:=https://sources.archlinux.org/other/libfetch/libfetch-${PKG_LIBFETCH_VERSION}.tar.gz}; +: ${PKG_LIBGPG_ERROR_SHA256SUM:=9268e1cc487de5e6e4460fca612a06e4f383072ac43ae90603e5e46783d3e540}; +: ${PKG_LIBGPG_ERROR_VERSION:=1.24}; +: ${PKG_LIBGPG_ERROR_URL:=https://www.gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-${PKG_LIBGPG_ERROR_VERSION}.tar.bz2}; +: ${PKG_LIBASSUAN_SHA256SUM:=22843a3bdb256f59be49842abf24da76700354293a066d82ade8134bb5aa2b71}; +: ${PKG_LIBASSUAN_VERSION:=2.4.3}; +: ${PKG_LIBASSUAN_URL:=https://www.gnupg.org/ftp/gcrypt/libassuan/libassuan-${PKG_LIBASSUAN_VERSION}.tar.bz2}; +: ${PKG_LIBFIRM_BUILD_DIR:=cparser+libfirm/build/libfirm}; +: ${PKG_LIBFIRM_CONFIGURE_ARGS:="--source-dir=../../../libfirm --prefix="}; +: ${PKG_LIBFIRM_CONFIGURE:=bfirm/configure}; +: ${PKG_LIBFIRM_GIT_BRANCH:=master}; +: ${PKG_LIBFIRM_MAKEFLAGS_INSTALL:=DESTDIR=../../sysroot}; +: ${PKG_LIBFIRM_PREFIX_EXTRA:=${PREFIX_NATIVE}}; +: ${PKG_LIBFIRM_SUBDIR:=libfirm}; +: ${PKG_LIBFIRM_URL:=http://pp.info.uni-karlsruhe.de/git/libfirm.git}; +: ${PKG_LIBFIRM_URL_TYPE:=git}; +: ${PKG_LIBGCRYPT_CONFIGURE_ARGS_EXTRA:=--disable-asm --disable-padlock-support --disable-aesni-support --disable-pclmul-support --disable-sse41-support --disable-drng-support --disable-avx-support --disable-avx2-support gcry_cv_gcc_inline_asm_avx2=no gcry_cv_gcc_inline_asm_avx=no gcry_cv_gcc_inline_asm_bmi2=no gcry_cv_gcc_inline_asm_pclmul=no gcry_cv_gcc_inline_asm_sse41=no gcry_cv_gcc_inline_asm_ssse3=no --disable-amd64-as-feature-detection}; +: ${PKG_LIBGCRYPT_SHA256SUM:=ddac6111077d0a1612247587be238c5294dd0ee4d76dc7ba783cc55fb0337071}; +: ${PKG_LIBGCRYPT_VERSION:=1.7.3}; +: ${PKG_LIBGCRYPT_URL:=https://www.gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-${PKG_LIBGCRYPT_VERSION}.tar.bz2}; +: ${PKG_LIBKSBA_SHA256SUM:=41444fd7a6ff73a79ad9728f985e71c9ba8cd3e5e53358e70d5f066d35c1a340}; +: ${PKG_LIBKSBA_VERSION:=1.3.5}; +: ${PKG_LIBKSBA_URL:=https://www.gnupg.org/ftp/gcrypt/libksba/libksba-${PKG_LIBKSBA_VERSION}.tar.bz2}; +: ${PKG_LUA_BUILD_DIR=lua-5.3.3}; +: ${PKG_LUA_MAKEFLAGS_BUILD_EXTRA:="CC=${TARGET}-gcc midipix"}; +: ${PKG_LUA_MAKEFLAGS_INSTALL_EXTRA:=INSTALL_TOP=${PREFIX_NATIVE}}; +: ${PKG_LUA_SHA256SUM:=5113c06884f7de453ce57702abaac1d618307f33f6789fa870e87a59d772aca2}; +: ${PKG_LUA_VERSION:=5.3.3}; +: ${PKG_LUA_URL:=https://www.lua.org/ftp/lua-${PKG_LUA_VERSION}.tar.gz}; +: ${PKG_NCURSES_CONFIGURE_ARGS_EXTRA:="--enable-pc-files --program-prefix= --with-pkg-config-libdir=${PREFIX_NATIVE}/lib/pkgconfig --with-shared --without-manpages --without-progs --without-tests --disable-widec --without-pthread"}; +: ${PKG_NCURSES_SHA256SUM:=f551c24b30ce8bfb6e96d9f59b42fbea30fa3a6123384172f9e7284bcf647260}; +: ${PKG_NCURSES_VERSION:=6.0}; +: ${PKG_NCURSES_BUILD_DIR:=ncurses-${PKG_NCURSES_VERSION}-native-${TARGET}}; +: ${PKG_NCURSES_URL:=https://ftp.gnu.org/gnu/ncurses/ncurses-${PKG_NCURSES_VERSION}.tar.gz}; +: ${PKG_NCURSESTW_CONFIGURE_ARGS_EXTRA:="--enable-pc-files --program-prefix= --with-pkg-config-libdir=${PREFIX_NATIVE}/lib/pkgconfig --with-shared --without-manpages --without-progs --without-tests --disable-widec --with-pthread"}; +: ${PKG_NCURSESTW_SHA256SUM:=f551c24b30ce8bfb6e96d9f59b42fbea30fa3a6123384172f9e7284bcf647260}; +: ${PKG_NCURSESTW_VERSION:=6.0}; +: ${PKG_NCURSESTW_BUILD_DIR:=ncursestw-${PKG_NCURSESTW_VERSION}-native-${TARGET}}; +: ${PKG_NCURSESTW_URL:=https://ftp.gnu.org/gnu/ncurses/ncurses-${PKG_NCURSESTW_VERSION}.tar.gz}; +: ${PKG_NCURSESW_CONFIGURE_ARGS_EXTRA:="--enable-pc-files --program-prefix= --with-pkg-config-libdir=${PREFIX_NATIVE}/lib/pkgconfig --with-shared --with-manpages --with-progs --without-tests --enable-widec --without-pthread"}; +: ${PKG_NCURSESW_INSTALL_FILES:=@ncursesw/ncurses.h=include/ncurses.h}; +: ${PKG_NCURSESW_SHA256SUM:=f551c24b30ce8bfb6e96d9f59b42fbea30fa3a6123384172f9e7284bcf647260}; +: ${PKG_NCURSESW_VERSION:=6.0}; +: ${PKG_NCURSESW_BUILD_DIR:=ncursesw-${PKG_NCURSESW_VERSION}-native-${TARGET}}; +: ${PKG_NCURSESW_URL:=https://ftp.gnu.org/gnu/ncurses/ncurses-${PKG_NCURSESW_VERSION}.tar.gz}; +: ${PKG_NPTH_SHA256SUM:=6ddbdddb2cf49a4723f9d1ad6563c480d6760dcb63cb7726b8fc3bc2e1b6c08a}; +: ${PKG_NPTH_VERSION:=1.2}; +: ${PKG_NPTH_URL:=https://www.gnupg.org/ftp/gcrypt/npth/npth-${PKG_NPTH_VERSION}.tar.bz2}; +: ${PKG_XZ_SHA256SUM:=73df4d5d34f0468bd57d09f2d8af363e95ed6cc3a4a86129d2f2c366259902a2}; +: ${PKG_XZ_VERSION:=5.2.2}; +: ${PKG_XZ_URL:=http://tukaani.org/xz/xz-${PKG_XZ_VERSION}.tar.gz}; +: ${PKG_INPUTPROTO_SHA256SUM:=893a6af55733262058a27b38eeb1edc733669f01d404e8581b167f03c03ef31d}; +: ${PKG_INPUTPROTO_VERSION:=2.3.2}; +: ${PKG_INPUTPROTO_URL:=https://www.x.org/releases/individual/proto/inputproto-${PKG_INPUTPROTO_VERSION}.tar.bz2}; +: ${PKG_KBPROTO_SHA256SUM:=f882210b76376e3fa006b11dbd890e56ec0942bc56e65d1249ff4af86f90b857}; +: ${PKG_KBPROTO_VERSION:=1.0.7}; +: ${PKG_KBPROTO_URL:=https://www.x.org/releases/individual/proto/kbproto-${PKG_KBPROTO_VERSION}.tar.bz2}; +: ${PKG_XCB_PROTO_MAKEFLAGS_INSTALL:="DESTDIR=${PREFIX_NATIVE}/"}; +: ${PKG_XCB_PROTO_SHA256SUM:=5922aba4c664ab7899a29d92ea91a87aa4c1fc7eb5ee550325c3216c480a4906}; +: ${PKG_XCB_PROTO_VERSION:=1.12}; +: ${PKG_XCB_PROTO_URL:=https://www.x.org/releases/individual/xcb/xcb-proto-${PKG_XCB_PROTO_VERSION}.tar.bz2}; +: ${PKG_XPROTO_SHA256SUM:=6c1a477092ca73233902b8d5f33012635c4b0208f17e7833cc7efe5c93ba9f8a}; +: ${PKG_XPROTO_VERSION:=7.0.29}; +: ${PKG_XPROTO_URL:=https://www.x.org/releases/individual/proto/xproto-${PKG_XPROTO_VERSION}.tar.bz2}; +: ${PKG_LIBXAU_SHA256SUM:=fdd477320aeb5cdd67272838722d6b7d544887dfe7de46e1e7cc0c27c2bea4f2}; +: ${PKG_LIBXAU_VERSION:=1.0.8}; +: ${PKG_LIBXAU_URL:=https://www.x.org/releases/individual/lib/libXau-${PKG_LIBXAU_VERSION}.tar.bz2}; +: ${PKG_LIBPTHREAD_STUBS_SHA256SUM:=35b6d54e3cc6f3ba28061da81af64b9a92b7b757319098172488a660e3d87299}; +: ${PKG_LIBPTHREAD_STUBS_VERSION:=0.3}; +: ${PKG_LIBPTHREAD_STUBS_URL:=https://xcb.freedesktop.org/dist/libpthread-stubs-${PKG_LIBPTHREAD_STUBS_VERSION}.tar.bz2}; +: ${PKG_XCB_CONFIGURE_ARGS_EXTRA:=--disable-randr}; +: ${PKG_XCB_SHA256SUM:=4adfb1b7c67e99bc9c2ccb110b2f175686576d2f792c8a71b9c8b19014057b5b}; +: ${PKG_XCB_VERSION:=1.12}; +: ${PKG_XCB_URL:=https://www.x.org/releases/individual/xcb/libxcb-${PKG_XCB_VERSION}.tar.bz2}; +: ${PKG_XEXTPROTO_SHA256SUM:=f3f4b23ac8db9c3a9e0d8edb591713f3d70ef9c3b175970dd8823dfc92aa5bb0}; +: ${PKG_XEXTPROTO_VERSION:=7.3.0}; +: ${PKG_XEXTPROTO_URL:=https://www.x.org/releases/individual/proto/xextproto-${PKG_XEXTPROTO_VERSION}.tar.bz2}; +: ${PKG_XTRANS_SHA256SUM:=16bc4646f105efd3d0dd105899ac19035d67acf50950ca8c70cf68772508272d}; +: ${PKG_XTRANS_VERSION:=1.1}; +: ${PKG_XTRANS_URL:=https://www.x.org/releases/individual/lib/xtrans-${PKG_XTRANS_VERSION}.tar.bz2}; +: ${PKG_LIBX11_SHA256SUM:=cf31a7c39f2f52e8ebd0db95640384e63451f9b014eed2bb7f5de03e8adc8111}; +: ${PKG_LIBX11_VERSION:=1.6.3}; +: ${PKG_LIBX11_URL:=https://www.x.org/releases/individual/lib/libX11-${PKG_LIBX11_VERSION}.tar.bz2}; +: ${PKG_LIBXEXT_SHA256SUM:=b518d4d332231f313371fdefac59e3776f4f0823bcb23cf7c7305bfb57b16e35}; +: ${PKG_LIBXEXT_VERSION:=1.3.3}; +: ${PKG_LIBXEXT_URL:=https://www.x.org/releases/individual/lib/libXext-${PKG_LIBXEXT_VERSION}.tar.bz2}; +: ${PKG_LIBICE_SHA256SUM:=8f7032f2c1c64352b5423f6b48a8ebdc339cc63064af34d66a6c9aa79759e202}; +: ${PKG_LIBICE_VERSION:=1.0.9}; +: ${PKG_LIBICE_URL:=https://www.x.org/releases/individual/lib/libICE-${PKG_LIBICE_VERSION}.tar.bz2}; +: ${PKG_LIBSM_SHA256SUM:=0baca8c9f5d934450a70896c4ad38d06475521255ca63b717a6510fdb6e287bd}; +: ${PKG_LIBSM_VERSION:=1.2.2}; +: ${PKG_LIBSM_URL:=https://www.x.org/releases/individual/lib/libSM-${PKG_LIBSM_VERSION}.tar.bz2}; +: ${PKG_LIBXT_CFLAGS_CONFIGURE:=${PACKAGES_CFLAGS_CONFIGURE_DEFAULT}}; +: ${PKG_LIBXT_LDFLAGS_CONFIGURE:=-g}; +: ${PKG_LIBXT_SHA256SUM:=46eeb6be780211fdd98c5109286618f6707712235fdd19df4ce1e6954f349f1a}; +: ${PKG_LIBXT_VERSION:=1.1.5}; +: ${PKG_LIBXT_URL:=https://www.x.org/releases/individual/lib/libXt-${PKG_LIBXT_VERSION}.tar.bz2}; +: ${PKG_LIBXMU_SHA256SUM:=756edc7c383254eef8b4e1b733c3bf1dc061b523c9f9833ac7058378b8349d0b}; +: ${PKG_LIBXMU_VERSION:=1.1.2}; +: ${PKG_LIBXMU_URL:=https://www.x.org/releases/individual/lib/libXmu-${PKG_LIBXMU_VERSION}.tar.bz2}; +: ${PKG_RENDERPROTO_SHA256SUM:=06735a5b92b20759204e4751ecd6064a2ad8a6246bb65b3078b862a00def2537}; +: ${PKG_RENDERPROTO_VERSION:=0.11.1}; +: ${PKG_RENDERPROTO_URL:=https://www.x.org/releases/individual/proto/renderproto-${PKG_RENDERPROTO_VERSION}.tar.bz2}; +: ${PKG_XRENDER_SHA256SUM:=fc2fe57980a14092426dffcd1f2d9de0987b9d40adea663bd70d6342c0e9be1a}; +: ${PKG_XRENDER_VERSION:=0.9.9}; +: ${PKG_XRENDER_URL:=https://www.x.org/releases/individual/lib/libXrender-${PKG_XRENDER_VERSION}.tar.bz2}; +: ${PKG_LIBXPM_SHA256SUM:=c5bdafa51d1ae30086fac01ab83be8d47fe117b238d3437f8e965434090e041c}; +: ${PKG_LIBXPM_VERSION:=3.5.11}; +: ${PKG_LIBXPM_URL:=https://www.x.org/releases/individual/lib/libXpm-${PKG_LIBXPM_VERSION}.tar.bz2}; +: ${PKG_LIBXAW_SHA256SUM:=8ef8067312571292ccc2bbe94c41109dcf022ea5a4ec71656a83d8cce9edb0cd}; +: ${PKG_LIBXAW_VERSION:=1.0.13}; +: ${PKG_LIBXAW_URL:=https://www.x.org/releases/individual/lib/libXaw-${PKG_LIBXAW_VERSION}.tar.bz2}; +: ${PKG_LIBXKBFILE_SHA256SUM:=51817e0530961975d9513b773960b4edd275f7d5c72293d5a151ed4f42aeb16a}; +: ${PKG_LIBXKBFILE_VERSION:=1.0.9}; +: ${PKG_LIBXKBFILE_URL:=https://www.x.org/releases/individual/lib/libxkbfile-${PKG_LIBXKBFILE_VERSION}.tar.bz2}; + +# +# Build target leaf_packages +# +LEAF_PACKAGES_CFLAGS_CONFIGURE="${LEAF_PACKAGES_CFLAGS_CONFIGURE_DEFAULT:+${LEAF_PACKAGES_CFLAGS_CONFIGURE_DEFAULT} }--sysroot=${PREFIX_NATIVE}"; +LEAF_PACKAGES_CONFIGURE_ARGS="-C --disable-nls --host=${TARGET} --prefix= --target=${TARGET}"; +LEAF_PACKAGES_LDFLAGS_CONFIGURE="--sysroot=${PREFIX_NATIVE}"; +LEAF_PACKAGES_MAKEFLAGS_INSTALL="DESTDIR=${PREFIX_NATIVE}"; +LEAF_PACKAGES_PACKAGES=" +apk_tools bash coreutils cparser cron dash diffutils dos2unix ed file findutils gawk git gnupg grep +hexcurse htop inetutils infounzip infozip irssi john less lynx make man_db mc mksh nano netcat openssh +p7zip pacman patch perl procps_ng python3 rsync rxvt_unicode sed tar tcsh the_silver_searcher tmux +util_linux vim weechat which whois xeyes xwd zsh"; +LEAF_PACKAGES_PREFIX="${PREFIX_NATIVE}"; +: ${PKG_APK_TOOLS_ENV_VARS_EXTRA:=CFLAGS=--sysroot=${PREFIX_NATIVE}:CROSS_COMPILE=${TARGET}-:LUAAPK=:VERBOSE=1:PREFIX=${PREFIX_NATIVE}}; +: ${PKG_APK_TOOLS_MAKEFLAGS_INSTALL_EXTRA:=MANDIR=/share/man DOCDIR=/share/doc/apk}; +: ${PKG_APK_TOOLS_SHA256SUM:=7e5e86c856ce236c7fd54605ee0b1dbf59920398d3b33f9f6ff0e5f98e6828af}; +: ${PKG_APK_TOOLS_VERSION:=2.6.6}; +: ${PKG_APK_TOOLS_BUILD_DIR:=apk-tools-${PKG_APK_TOOLS_VERSION}}; +: ${PKG_APK_TOOLS_URL:=http://git.alpinelinux.org/cgit/apk-tools/snapshot/apk-tools-${PKG_APK_TOOLS_VERSION}.tar.bz2}; +: ${PKG_BASH_CONFIGURE_ARGS_EXTRA:="--without-bash-malloc --with-curses"}; +: ${PKG_BASH_PREFIX_EXTRA:=${PREFIX_MINIPIX}}; +: ${PKG_BASH_SHA256SUM:=afc687a28e0e24dc21b988fa159ff9dbcf6b7caa92ade8645cc6d5605cd024d4}; +: ${PKG_BASH_VERSION:=4.3}; +: ${PKG_BASH_URL:=https://ftp.gnu.org/gnu/bash/bash-${PKG_BASH_VERSION}.tar.gz}; +: ${PKG_COREUTILS_PREFIX_EXTRA:=${PREFIX_MINIPIX}}; +: ${PKG_COREUTILS_SHA256SUM:=ec43ca5bcfc62242accb46b7f121f6b684ee21ecd7d075059bf650ff9e37b82d}; +: ${PKG_COREUTILS_VERSION:=8.23}; +: ${PKG_COREUTILS_URL:=https://ftp.gnu.org/gnu/coreutils/coreutils-${PKG_COREUTILS_VERSION}.tar.xz}; +: ${PKG_CPARSER_BUILD_DIR:=cparser+libfirm/build/cparser}; +: ${PKG_CPARSER_CONFIGURE_ARGS:="--source-dir=../../../cparser --prefix="}; +: ${PKG_CPARSER_CONFIGURE:=bcparser/configure}; +: ${PKG_CPARSER_GIT_BRANCH:=master}; +: ${PKG_CPARSER_MAKEFLAGS_INSTALL:=DESTDIR=../../sysroot}; +: ${PKG_CPARSER_PREFIX_EXTRA:=${PREFIX_NATIVE}}; +: ${PKG_CPARSER_SUBDIR:=cparser}; +: ${PKG_CPARSER_URL:=http://pp.info.uni-karlsruhe.de/git/cparser.git}; +: ${PKG_CPARSER_URL_TYPE:=git}; +: ${PKG_CRON_BUILD_DIR:=pkg-cron.git}; +: ${PKG_CRON_ENV_VARS_EXTRA:="CC=${TARGET}-gcc:CFLAGS=${PACKAGES_CFLAGS_CONFIGURE} -D__GNU__"}; +: ${PKG_CRON_GIT_BRANCH:=debian/3.0pl1-128}; +: ${PKG_CRON_URL:=git://anonscm.debian.org/pkg-cron/pkg-cron.git}; +: ${PKG_CRON_URL_TYPE:=git}; +: ${PKG_DASH_INSTALL_FILES:=@dash=bin/sh}; +: ${PKG_DASH_SHA256SUM:=c6db3a237747b02d20382a761397563d813b306c020ae28ce25a1c3915fac60f}; +: ${PKG_DASH_VERSION:=0.5.8}; +: ${PKG_DASH_URL:=http://gondor.apana.org.au/~herbert/dash/files/dash-${PKG_DASH_VERSION}.tar.gz}; +: ${PKG_DIFFUTILS_SHA256SUM:=a25e89a8ab65fded1731e4186be1bb25cda967834b6df973599cdcd5abdfc19c}; +: ${PKG_DIFFUTILS_VERSION:=3.3}; +: ${PKG_DIFFUTILS_URL:=https://ftp.gnu.org/gnu/diffutils/diffutils-${PKG_DIFFUTILS_VERSION}.tar.xz}; +: ${PKG_DOS2UNIX_CFLAGS_BUILD_EXTRA:=${PACKAGES_CFLAGS_CONFIGURE}}; +: ${PKG_DOS2UNIX_INSTALL_FILES:="dos2unix=bin/ dos2unix=bin/ @dos2unix=bin/mac2unix @unix2dos=bin/unix2mac"}; +: ${PKG_DOS2UNIX_SHA256SUM:=8ccda7bbc5a2f903dafd95900abb5bf5e77a769b572ef25150fde4056c5f30c5}; +: ${PKG_DOS2UNIX_VERSION:=7.3.4}; +: ${PKG_DOS2UNIX_BUILD_DIR:=dos2unix-${PKG_DOS2UNIX_VERSION}}; +: ${PKG_DOS2UNIX_URL:=http://waterlan.home.xs4all.nl/dos2unix/dos2unix-${PKG_DOS2UNIX_VERSION}.tar.gz}; +: ${PKG_ED_CONFIGURE_ARGS="--prefix= CC=${TARGET}-gcc"}; +: ${PKG_ED_SHA256SUM:=c7a98062d0597b41295f03275a2ea07342b18b86653e3b9a51746b9983db8d48}; +: ${PKG_ED_VERSION:=1.13}; +: ${PKG_ED_URL:=http://ftp5.gwdg.de/pub/linux/slackware/slackware64-current/source/a/ed/ed-${PKG_ED_VERSION}.tar.xz}; +: ${PKG_FILE_SHA256SUM:=0ecb5e146b8655d1fa84159a847ee619fc102575205a0ff9c6cc60fc5ee2e012}; +: ${PKG_FILE_VERSION:=5.28}; +: ${PKG_FILE_URL:=ftp://ftp.astron.com/pub/file/file-${PKG_FILE_VERSION}.tar.gz}; +: ${PKG_FINDUTILS_CFLAGS_CONFIGURE_EXTRA:=-Dendpwent=setpwent}; +: ${PKG_FINDUTILS_SHA256SUM:=0de3cf625a5c9f154eee3171e072515ffdde405244dd00502af617ac57b73ae2}; +: ${PKG_FINDUTILS_VERSION:=4.5.14}; +: ${PKG_FINDUTILS_URL:=http://alpha.gnu.org/gnu/findutils/findutils-${PKG_FINDUTILS_VERSION}.tar.gz}; +: ${PKG_GAWK_SHA256SUM:=e3cf55e91e31ea2845f8338bedd91e40671fc30e4d82ea147d220e687abda625}; +: ${PKG_GAWK_VERSION:=4.1.3}; +: ${PKG_GAWK_URL:=https://ftp.gnu.org/gnu/gawk/gawk-${PKG_GAWK_VERSION}.tar.xz}; +: ${PKG_GIT_ENV_VARS_EXTRA:="ac_cv_fread_reads_directories=1:ac_cv_snprintf_returns_bogus=0"}; +: ${PKG_GIT_MAKEFLAGS_INSTALL_EXTRA:=prefix=}; +: ${PKG_GIT_SHA256SUM:=dad202c1a2dec4caa2a6cab5c1ca8dc486206fd4a39585613bece8aa8c9da93b}; +: ${PKG_GIT_VERSION:=2.9.0}; +: ${PKG_GIT_BUILD_DIR:=git-${PKG_GIT_VERSION}}; +: ${PKG_GIT_SUBDIR:=${PKG_GIT_BUILD_DIR}}; +: ${PKG_GIT_URL:=https://github.com/git/git/archive/v${PKG_GIT_VERSION}.tar.gz}; +: ${PKG_GNUPG_CONFIGURE_ARGS_EXTRA:="--with-libgpg-error-prefix=${PREFIX_NATIVE} --with-libgcrypt-prefix=${PREFIX_NATIVE} --with-libassuan-prefix=${PREFIX_NATIVE} --with-ksba-prefix=${PREFIX_NATIVE} --with-npth-prefix=${PREFIX_NATIVE}"}; +: ${PKG_GNUPG_SHA256SUM:=c28c1a208f1b8ad63bdb6b88d252f6734ff4d33de6b54e38494b11d49e00ffdd}; +: ${PKG_GNUPG_VERSION:=2.1.15}; +: ${PKG_GNUPG_URL:=https://www.gnupg.org/ftp/gcrypt/gnupg/gnupg-${PKG_GNUPG_VERSION}.tar.bz2}; +: ${PKG_GREP_SHA256SUM:=ca91d22f017bfcb503d4bc3b44295491c89a33a3df0c3d8b8614f2d3831836eb}; +: ${PKG_GREP_VERSION:=2.22}; +: ${PKG_GREP_URL:=https://ftp.gnu.org/gnu/grep/grep-${PKG_GREP_VERSION}.tar.xz}; +: ${PKG_HEXCURSE_CFLAGS_CONFIGURE_EXTRA:=-I${PREFIX_NATIVE}/include/ncursesw}; +: ${PKG_HEXCURSE_GIT_BRANCH:=master}; +: ${PKG_HEXCURSE_URL:=https://github.com/LonnyGomes/hexcurse}; +: ${PKG_HEXCURSE_URL_TYPE:=git}; +: ${PKG_HTOP_CONFIGURE_ARGS_EXTRA:=--program-prefix=}; +: ${PKG_HTOP_SHA256SUM:=f410626dfaf6b70fdf73cd7bb33cae768869707028d847fed94a978e974f5666}; +: ${PKG_HTOP_VERSION:=2.0.1}; +: ${PKG_HTOP_URL:=http://hisham.hm/htop/releases/${PKG_HTOP_VERSION}/htop-${PKG_HTOP_VERSION}.tar.gz}; +: ${PKG_INETUTILS_CONFIGURE_ARGS_EXTRA:="--disable-ftpd --disable-inetd --disable-rexecd --disable-rlogind --disable-rshd --disable-syslogd --disable-talkd --disable-telnetd --disable-tftpd --disable-uucpd --disable-ftp --disable-dnsdomainname --disable-hostname --disable-ping --disable-ping6 --disable-rcp --disable-rexec --disable-rlogin --disable-rsh --disable-logger --disable-talk --enable-telnet --disable-tftp --disable-whois --disable-ifconfig --disable-traceroute"}; +: ${PKG_INETUTILS_SHA256SUM:=849d96f136effdef69548a940e3e0ec0624fc0c81265296987986a0dd36ded37}; +: ${PKG_INETUTILS_VERSION=1.9.4}; +: ${PKG_INETUTILS_URL:=https://ftp.gnu.org/gnu/inetutils/inetutils-${PKG_INETUTILS_VERSION}.tar.xz}; +: ${PKG_INFOUNZIP_BUILD_DIR:=unzip60}; +: ${PKG_INFOUNZIP_INSTALL_FILES:="funzip=bin/ unzip=bin/ unzipsfx=bin/"}; +: ${PKG_INFOUNZIP_MAKEFLAGS_BUILD_EXTRA:="-f unix/Makefile midipix"}; +: ${PKG_INFOUNZIP_NO_MAKE_INSTALL:=1}; +: ${PKG_INFOUNZIP_SHA256SUM:=036d96991646d0449ed0aa952e4fbe21b476ce994abc276e49d30e686708bd37}; +: ${PKG_INFOUNZIP_SUBDIR:=${PKG_INFOUNZIP_BUILD_DIR}}; +: ${PKG_INFOUNZIP_VERSION:=60}; +: ${PKG_INFOUNZIP_URL:=ftp://ftp.info-zip.org/pub/infozip/src/unzip${PKG_INFOUNZIP_VERSION}.tgz}; +: ${PKG_INFOZIP_INSTALL_FILES:="zip=bin/ zipcloak=bin/ zipnote=bin/ zipsplit=bin/"}; +: ${PKG_INFOZIP_MAKEFLAGS_BUILD_EXTRA:="-f unix/Makefile midipix"}; +: ${PKG_INFOZIP_NO_MAKE_INSTALL:=1}; +: ${PKG_INFOZIP_SHA256SUM:=f0e8bb1f9b7eb0b01285495a2699df3a4b766784c1765a8f1aeedf63c0806369}; +: ${PKG_INFOZIP_VERSION:=30}; +: ${PKG_INFOZIP_BUILD_DIR:=zip${PKG_INFOZIP_VERSION}}; +: ${PKG_INFOZIP_SUBDIR:=${PKG_INFOZIP_BUILD_DIR}}; +: ${PKG_INFOZIP_URL:=ftp://ftp.info-zip.org/pub/infozip/src/zip${PKG_INFOZIP_VERSION}.tgz}; +: ${PKG_IRSSI_CONFIGURE_ARGS_EXTRA:=--with-ncurses=${PREFIX_NATIVE}}; +: ${PKG_IRSSI_SHA256SUM:=30043784815bb864b1bb66a82c1e659c325be0a18ddcf76fc101812e36c39c20}; +: ${PKG_IRSSI_VERSION=0.8.18}; +: ${PKG_IRSSI_URL:=https://github.com/irssi/irssi/releases/download/0.8.18/irssi-0.8.18.tar.gz}; +: ${PKG_JOHN_DISABLED:=$(if [ "${ARCH}" = "nt32" ]; then echo 1; fi)}; +: ${PKG_JOHN_INSTALL_FILES:="run/john=bin/ run/mailer=bin/ run/makechr=bin/ run/relbench=bin/ run/unafs=bin/ run/unique=bin/ run/unshadow=bin/ /=share/john run/ascii.chr=share/john/ run/digits.chr=share/john/ run/john.conf=share/john/ run/lm_ascii.chr=share/john/ run/password.lst=share/john/"}; +: ${PKG_JOHN_MAKEFLAGS_BUILD_EXTRA_DEBUG:="-C src midipix-x86-64"}; +: ${PKG_JOHN_MAKEFLAGS_BUILD_EXTRA_RELEASE:="-C src midipix-x86-64 LDFLAGS_DEBUG=-s"}; +: ${PKG_JOHN_MAKEFLAGS_INSTALL_EXTRA:="-C src"}; +: ${PKG_JOHN_NO_MAKE_INSTALL:=1}; +: ${PKG_JOHN_SHA256SUM:=952cf68369fb5b27f2d112ce7ca1eb16b975c85cbce8c658abb8bc5a20e1b266}; +: ${PKG_JOHN_VERSION:=1.8.0}; +: ${PKG_JOHN_BUILD_DIR:=john-${PKG_JOHN_VERSION}}; +: ${PKG_JOHN_SUBDIR:=john-${PKG_JOHN_VERSION}}; +: ${PKG_JOHN_URL:=http://www.openwall.com/john/j/john-${PKG_JOHN_VERSION}.tar.xz}; +: ${PKG_LESS_SHA256SUM:=3fa38f2cf5e9e040bb44fffaa6c76a84506e379e47f5a04686ab78102090dda5}; +: ${PKG_LESS_VERSION:=481}; +: ${PKG_LESS_URL:=http://www.greenwoodsoftware.com/less/less-${PKG_LESS_VERSION}.tar.gz}; +: ${PKG_LYNX_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include -I${PREFIX_NATIVE}/include/ncursesw"}; +: ${PKG_LYNX_CONFIGURE_ARGS_EXTRA:=--program-prefix=}; +: ${PKG_LYNX_SHA256SUM:=6980e75cf0d677fd52c116e2e0dfd3884e360970c88c8356a114338500d5bee7}; +: ${PKG_LYNX_SUBDIR:=lynx2-8-8}; +: ${PKG_LYNX_VERSION:=2.8.8rel.2}; +: ${PKG_LYNX_URL:=ftp://invisible-island.net/lynx/tarballs/lynx${PKG_LYNX_VERSION}.tar.bz2}; +: ${PKG_MAKE_SHA256SUM:=f3e69023771e23908f5d5592954d8271d3d6af09693cecfd29cee6fde8550dc8}; +: ${PKG_MAKE_VERSION:=3.81}; +: ${PKG_MAKE_URL:=https://ftp.gnu.org/gnu/make/make-${PKG_MAKE_VERSION}.tar.bz2}; +: ${PKG_MAN_DB_SHA256SUM:=5c4ddd0d67abbbcb408dc5804906f62210f7c863ef791198faca3d75681cca14}; +: ${PKG_MAN_DB_SLIBTOOL:=slibtool-static}; +: ${PKG_MAN_DB_VERSION:=2.7.5}; +: ${PKG_MAN_DB_URL:=http://download.savannah.gnu.org/releases/man-db/man-db-${PKG_MAN_DB_VERSION}.tar.xz}; +: ${PKG_MC_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include -I${PREFIX_NATIVE}/include/ncursesw"}; +: ${PKG_MC_CONFIGURE_ARGS_EXTRA:="--with-screen=ncurses --x-includes=${PREFIX_NATIVE}/include/X11 --x-libraries=${PREFIX_NATIVE}/lib"}; +: ${PKG_MC_SHA256SUM:=0447bdddc0baa81866e66f50f9a545d29d6eebb68b0ab46c98d8fddd2bf4e44d}; +: ${PKG_MC_VERSION:=4.8.17}; +: ${PKG_MC_URL:=http://ftp.midnight-commander.org/mc-${PKG_MC_VERSION}.tar.xz}; +: ${PKG_MKSH_BUILD_CMDLINE:="sh Build.sh"}; +: ${PKG_MKSH_BUILD_DIR:=mksh}; +: ${PKG_MKSH_ENV_VARS_EXTRA:="CC=${TARGET}-gcc:CFLAGS=${PACKAGES_CFLAGS_CONFIGURE:+${PACKAGES_CFLAGS_CONFIGURE} }-DMKSH_NOPROSPECTOFWORK"}; +: ${PKG_MKSH_INSTALL_FILES:="mksh=bin/ /=share/doc/mksh/examples dot.mkshrc=share/doc/mksh/examples/ mksh.1=share/man/man1/"}; +: ${PKG_MKSH_NO_MAKE_INSTALL:=1}; +: ${PKG_MKSH_SHA256SUM:=c6341acea725103f782c14e994d6e12dabaee69e60fe1bc78603a41258d43ba6}; +: ${PKG_MKSH_SUBDIR:=${PKG_MKSH_BUILD_DIR}}; +: ${PKG_MKSH_VERSION:=R52c}; +: ${PKG_MKSH_URL:=http://pub.allbsd.org/MirOS/dist/mir/mksh/mksh-${PKG_MKSH_VERSION}.tgz}; +: ${PKG_NANO_SHA256SUM:=b2b060129b9feff2d4870d803a441178c96531de9aed144ec0b83bd63ccb12ee}; +: ${PKG_NANO_VERSION:=2.5.3}; +: ${PKG_NANO_URL:=http://www.nano-editor.org/dist/v${PKG_NANO_VERSION%.[0-9]}/nano-${PKG_NANO_VERSION}.tar.gz}; +: ${PKG_NETCAT_BUILD_DIR:=nc110}; +: ${PKG_NETCAT_ENV_VARS_EXTRA:="CFLAGS_EXTRA=${PACKAGES_CFLAGS_CONFIGURE}:LDFLAGS=${PACKAGES_LDFLAGS_CONFIGURE}"}; +: ${PKG_NETCAT_INSTALL_FILES:=nc=bin/}; +: ${PKG_NETCAT_MAKEFLAGS_BUILD_EXTRA_DEBUG:="midipix CC=${TARGET}-gcc"}; +: ${PKG_NETCAT_MAKEFLAGS_BUILD_EXTRA_RELEASE:="midipix CC=${TARGET}-gcc LDFLAGS_DEBUG=-s"}; +: ${PKG_NETCAT_NO_MAKE_INSTALL:=1}; +: ${PKG_NETCAT_SHA256SUM:=5b3fda14e972d908896a605293f4634a72e2968278117410e12d8b3faf9a3976}; +: ${PKG_NETCAT_SUBDIR_CREATE:=1}; +: ${PKG_NETCAT_SUBDIR:=${PKG_NETCAT_BUILD_DIR}}; +: ${PKG_NETCAT_VERSION:=110}; +: ${PKG_NETCAT_URL:=https://dl.packetstormsecurity.net/UNIX/netcat/nc110.tgz}; +: ${PKG_OPENSSH_CONFIGURE_ARGS_EXTRA_DEBUG:=--disable-strip}; +: ${PKG_OPENSSH_INSTALL_TARGET:=install-nokeys}; +: ${PKG_OPENSSH_SHA256SUM:=dd75f024dcf21e06a0d6421d582690bf987a1f6323e32ad6619392f3bfde6bbd}; +: ${PKG_OPENSSH_VERSION:=7.1p2}; +: ${PKG_OPENSSH_URL:=http://artfiles.org/openbsd/OpenSSH/portable/openssh-${PKG_OPENSSH_VERSION}.tar.gz}; +: ${PKG_P7ZIP_BUILD_DIR:=p7zip-midipix.git}; +: ${PKG_P7ZIP_GIT_BRANCH:=master}; +: ${PKG_P7ZIP_INSTALL_FILES:="bin/7za=bin/"}; +: ${PKG_P7ZIP_NO_MAKE_INSTALL:=1}; +: ${PKG_P7ZIP_URL:=https://github.com/lalbornoz/p7zip-midipix.git}; +: ${PKG_P7ZIP_URL_TYPE:=git}; +: ${PKG_PACMAN_CONFIGURE_ARGS_EXTRA:=--disable-doc}; +: ${PKG_PACMAN_SHA256SUM:=84599e2ee2158134fd704f1cd681ea46e021165bed4df5f002aa1748caef9e7b}; +: ${PKG_PACMAN_VERSION:=5.0.1}; +: ${PKG_PACMAN_URL:=https://projects.archlinux.org/pacman.git/snapshot/pacman-${PKG_PACMAN_VERSION}.tar.gz}; +: ${PKG_PATCH_SHA256SUM:=59c29f56faa0a924827e6a60c6accd6e2900eae5c6aaa922268c717f06a62048}; +: ${PKG_PATCH_VERSION:=2.7}; +: ${PKG_PATCH_URL:=https://ftp.gnu.org/gnu/patch/patch-${PKG_PATCH_VERSION}.tar.gz}; +: ${PKG_PERL_CONFIGURE_ARGS:="-A ccflags=-I${PREFIX_NATIVE}/include --sysroot=${PREFIX_NATIVE} --target=${TARGET}"}; +: ${PKG_PERL_ENV_VARS_EXTRA:="TARGET=${TARGET}"}; +: ${PKG_PERL_MAKEFLAGS_BUILD:=-j1}; +: ${PKG_PERL_SHA256SUM:=2b475d0849d54c4250e9cba4241b7b7291cffb45dfd083b677ca7b5d38118f27}; +: ${PKG_PERL_VERSION:=5.22.1}; +: ${PKG_PERL_URL:=http://www.cpan.org/src/5.0/perl-${PKG_PERL_VERSION}.tar.gz}; +: ${PKG_PROCPS_NG_CFLAGS_CONFIGURE_EXTRA:=-I${PREFIX_NATIVE}/include/ncursesw}; +: ${PKG_PROCPS_NG_SHA256SUM:=b1036c109f271c7c50325b11a748236f8e58aa1dbafefb30c995ff1d05b4a1a8}; +: ${PKG_PROCPS_NG_VERSION:=3.3.12}; +: ${PKG_PROCPS_NG_SUBDIR:=procps-v${PKG_PROCPS_NG_VERSION}-e0784ddaed30d095bb1d9a8ad6b5a23d10a212c4}; +: ${PKG_PROCPS_NG_URL:=https://gitlab.com/procps-ng/procps/repository/archive.tar.gz?ref=v${PKG_PROCPS_NG_VERSION}}; +: ${PKG_PYTHON3_CONFIGURE_ARGS:="--build=x86_64 -C --enable-ipv6 --enable-shared --host=${TARGET} --prefix=${PREFIX_NATIVE} --without-ensurepip"}; +: ${PKG_PYTHON3_ENV_VARS_EXTRA:="BLDSHARED=${TARGET}-gcc -shared -mout-implib --sysroot=${PREFIX_NATIVE}:CC=${TARGET}-gcc:CFLAGS=--sysroot=${PREFIX_NATIVE}:CPPFLAGS=--sysroot=${PREFIX_NATIVE}:LDFLAGS=-L${PREFIX_NATIVE}/lib"}: +: ${PKG_PYTHON3_MAKEFLAGS_INSTALL_EXTRA:=prefix=}; +: ${PKG_PYTHON3_SHA256SUM:=687e067d9f391da645423c7eda8205bae9d35edc0c76ef5218dcbe4cc770d0d7}; +: ${PKG_PYTHON3_VERSION:=3.5.1}; +: ${PKG_PYTHON3_SUBDIR:=Python-${PKG_PYTHON3_VERSION}}; +: ${PKG_PYTHON3_URL:=https://www.python.org/ftp/python/${PKG_PYTHON3_VERSION}/Python-${PKG_PYTHON3_VERSION}.tgz}; +: ${PKG_RSYNC_CONFIGURE_ARGS_EXTRA:=--with-included-popt --with-included-zlib}; +: ${PKG_RSYNC_SHA256SUM:=ecfa62a7fa3c4c18b9eccd8c16eaddee4bd308a76ea50b5c02a5840f09c0a1c2}; +: ${PKG_RSYNC_VERSION:=3.1.2}; +: ${PKG_RSYNC_URL:=https://download.samba.org/pub/rsync/src/rsync-${PKG_RSYNC_VERSION}.tar.gz}; +: ${PKG_RXVT_UNICODE_CONFIGURE_ARGS_EXTRA:=--disable-perl --disable-lastlog --disable-utmp --disable-wtmp}; +: ${PKG_RXVT_UNICODE_SHA256SUM:=e94628e9bcfa0adb1115d83649f898d6edb4baced44f5d5b769c2eeb8b95addd}; +: ${PKG_RXVT_UNICODE_VERSION:=9.22}; +: ${PKG_RXVT_UNICODE_URL:=http://dist.schmorp.de/rxvt-unicode/rxvt-unicode-${PKG_RXVT_UNICODE_VERSION}.tar.bz2}; +: ${PKG_SED_SHA256SUM:=f048d1838da284c8bc9753e4506b85a1e0cc1ea8999d36f6995bcb9460cddbd7}; +: ${PKG_SED_VERSION:=4.2.2}; +: ${PKG_SED_URL:=https://ftp.gnu.org/gnu/sed/sed-${PKG_SED_VERSION}.tar.bz2}; +: ${PKG_TAR_SHA256SUM:=6a6b65bac00a127a508533c604d5bf1a3d40f82707d56f20cefd38a05e8237de}; +: ${PKG_TAR_VERSION:=1.28}; +: ${PKG_TAR_URL:=https://ftp.gnu.org/gnu/tar/tar-${PKG_TAR_VERSION}.tar.gz}; +: ${PKG_TCSH_SHA256SUM:=12e271e0b89e4259d9d6e8d525322e77340e7244cfbd199a591e5f8146285c49}; +: ${PKG_TCSH_VERSION:=6.19.00}; +: ${PKG_TCSH_URL:=http://ftp.funet.fi/pub/mirrors/ftp.astron.com/pub/tcsh/tcsh-${PKG_TCSH_VERSION}.tar.gz}; +: ${PKG_THE_SILVER_SEARCHER_SHA256SUM:=944ca77e498f344b2bfbd8df6d5d8df7bbc1c7e080b50c0bab3d1a9a55151b60}; +: ${PKG_THE_SILVER_SEARCHER_VERSION:=0.32.0}; +: ${PKG_THE_SILVER_SEARCHER_URL:=http://geoff.greer.fm/ag/releases/the_silver_searcher-${PKG_THE_SILVER_SEARCHER_VERSION}.tar.gz}; +: ${PKG_TMUX_SHA256SUM:=bc28541b64f99929fe8e3ae7a02291263f3c97730781201824c0f05d7c8e19e4}; +: ${PKG_TMUX_VERSION:=2.2}; +: ${PKG_TMUX_URL:=https://github.com/tmux/tmux/releases/download/${PKG_TMUX_VERSION}/tmux-${PKG_TMUX_VERSION}.tar.gz}; +: ${PKG_UTIL_LINUX_CONFIGURE_ARGS_EXTRA:=--disable-agetty --disable-wall --disable-write}; +: ${PKG_UTIL_LINUX_ENV_VARS_EXTRA:=PKG_CONFIG=${PREFIX}/bin/${TARGET}-pkg-config}; +: ${PKG_UTIL_LINUX_SHA256SUM:=133c14f625d40e90e73e9d200faf3f2ce87937b99f923c84e5504ac0badc71d6}; +: ${PKG_UTIL_LINUX_VERSION:=2.27.1}; +: ${PKG_UTIL_LINUX_URL:=https://www.kernel.org/pub/linux/utils/util-linux/v2.27/util-linux-${PKG_UTIL_LINUX_VERSION}.tar.gz}; +: ${PKG_VIM_CONFIGURE_ARGS_EXTRA:=--with-tlib=ncursesw}; +: ${PKG_VIM_ENV_VARS_EXTRA:=PKG_CONFIG=${PREFIX}/bin/${TARGET}-pkg-config}; +: ${PKG_VIM_INSTALL_FILES:=@vim=bin/vi}; +: ${PKG_VIM_MAKEFLAGS_INSTALL_EXTRA:=STRIP=/bin/true}; +: ${PKG_VIM_SHA256SUM:=8de19b12cabde17b87f915a05e1855f6ff8404962947c5cf2204cf51f1ce5d67}; +: ${PKG_VIM_VERSION:=7.4.1952}; +: ${PKG_VIM_SUBDIR:=vim-${PKG_VIM_VERSION}}; +: ${PKG_VIM_BUILD_DIR:=${PKG_VIM_SUBDIR}}; +: ${PKG_VIM_CONFIG_CACHE_EXTRA:=${PKG_VIM_BUILD_DIR}/src/auto}; +: ${PKG_VIM_URL:=https://github.com/vim/vim/archive/v${PKG_VIM_VERSION}.tar.gz}; +: ${PKG_WEECHAT_CONFIGURE_ARGS_EXTRA:="--disable-python --disable-python3 --disable-tcl"}; +: ${PKG_WEECHAT_ENV_VARS_EXTRA:="CURL_CONFIG=${PREFIX_NATIVE}/bin/curl-config:PKG_CONFIG=${PREFIX}/bin/${TARGET}-pkg-config"}; +: ${PKG_WEECHAT_LDFLAGS_BUILD_EXTRA:=-L${PREFIX_NATIVE}/lib}; +: ${PKG_WEECHAT_SHA256SUM:=3061e57460e0e3e4533551c45ced53b222fe0933848250d0fb7337d9aacfd853}; +: ${PKG_WEECHAT_VERSION:=1.6}; +: ${PKG_WEECHAT_URL:=https://weechat.org/files/src/weechat-${PKG_WEECHAT_VERSION}.tar.gz}; +: ${PKG_WHICH_SHA256SUM:=f4a245b94124b377d8b49646bf421f9155d36aa7614b6ebf83705d3ffc76eaad}; +: ${PKG_WHICH_VERSION:=2.21}; +: ${PKG_WHICH_URL:=https://ftp.gnu.org/gnu/which/which-${PKG_WHICH_VERSION}.tar.gz}; +: ${PKG_WHOIS_MAKEFLAGS_INSTALL:=BASEDIR=${PREFIX_NATIVE}}; +: ${PKG_WHOIS_SHA256SUM:=8485aa02909fd6aaa1cfd8b5e63559310879bf8a62793a83c96a4502164b968a}; +: ${PKG_WHOIS_VERSION:=5.2.12}; +: ${PKG_WHOIS_BUILD_DIR:=whois-${PKG_WHOIS_VERSION}}; +: ${PKG_WHOIS_SUBDIR:=${PKG_WHOIS_BUILD_DIR}}; +: ${PKG_WHOIS_URL:=https://github.com/rfc1036/whois/archive/v${PKG_WHOIS_VERSION}.tar.gz}; +: ${PKG_XEYES_SHA256SUM:=975e98680cd59e1f9439016386609546ed08c284d0f05a95276f96aca6e8a521}; +: ${PKG_XEYES_VERSION:=1.1.1}; +: ${PKG_XEYES_URL:=https://www.x.org/releases/individual/app/xeyes-${PKG_XEYES_VERSION}.tar.bz2}; +: ${PKG_XWD_SHA256SUM:=3bb396a2268d78de4b1c3e5237a85f7849d3434e87b3cd1f4d57eef614227d79}; +: ${PKG_XWD_VERSION:=1.0.6}; +: ${PKG_XWD_URL:=https://www.x.org/releases/individual/app/xwd-${PKG_XWD_VERSION}.tar.bz2}; +: ${PKG_ZSH_SHA256SUM:=f17916320ffaa844bbd7ce48ceeb5945fc5f3eff64b149b4229bbfbdf3795a9d}; +: ${PKG_ZSH_VERSION:=5.2}; +: ${PKG_ZSH_FNAME:=zsh-${PKG_ZSH_VERSION}.tar.xz}; +: ${PKG_ZSH_URL:="https://fourdots.com/mirror/zsh/zsh-${PKG_ZSH_VERSION}.tar.xz"}; + +# +# Build meta-targets +# +DEVROOT_PACKAGES="host_toolchain native_toolchain runtime"; +WORLD_PACKAGES="host_toolchain native_toolchain runtime lib_packages leaf_packages"; +ALL_TARGETS="host_toolchain native_toolchain runtime lib_packages leaf_packages devroot world"; + +# vim:filetype=sh textwidth=0 diff --git a/vars/cparser.vars b/vars/cparser.vars new file mode 100644 index 00000000..3126cd33 --- /dev/null +++ b/vars/cparser.vars @@ -0,0 +1,15 @@ +# +# . ./build.vars and set -o errexit -o noglob are assumed. +# + +pkg_cparser_fetch_post() { + fetch_git bcparser git://midipix.org/compilers/bcparser; + insecure_mkdir cparser+libfirm/sysroot cparser+libfirm/build/cparser; +}; + +pkg_cparser_configure_pre() { + export CFLAGS_PATH="-I../../sysroot/include"; + export LDFLAGS_PATH="-L../../sysroot/lib"; +}; + +# vim:filetype=sh diff --git a/vars/libfirm.vars b/vars/libfirm.vars new file mode 100644 index 00000000..5756b545 --- /dev/null +++ b/vars/libfirm.vars @@ -0,0 +1,10 @@ +# +# . ./build.vars and set -o errexit -o noglob are assumed. +# + +pkg_libfirm_fetch_post() { + fetch_git bfirm git://midipix.org/compilers/bfirm; + insecure_mkdir cparser+libfirm/sysroot cparser+libfirm/build/libfirm; +}; + +# vim:filetype=sh diff --git a/vars/ncurses.vars b/vars/ncurses.vars new file mode 120000 index 00000000..9a28bc0f --- /dev/null +++ b/vars/ncurses.vars @@ -0,0 +1 @@ +ncursesw.vars \ No newline at end of file diff --git a/vars/ncursestw.vars b/vars/ncursestw.vars new file mode 120000 index 00000000..9a28bc0f --- /dev/null +++ b/vars/ncursestw.vars @@ -0,0 +1 @@ +ncursesw.vars \ No newline at end of file diff --git a/vars/ncursesw.vars b/vars/ncursesw.vars new file mode 100644 index 00000000..50024dec --- /dev/null +++ b/vars/ncursesw.vars @@ -0,0 +1,18 @@ +# +# . ./build.vars and set -o errexit -o noglob are assumed. +# + +pkg_ncursesw_install_post() { + for __ in \ + bin/captoinfo bin/clear bin/infocmp bin/infotocap bin/ncursesw6-config \ + bin/reset bin/tabs bin/tic bin/toe bin/tput bin/tset \ + lib/libformw* lib/libmenuw* lib/libncursesw* lib/libpanelw* \ + share/man share/tabset share/terminfo; do + set +o noglob; + echo cp -pr ${PKG_PREFIX}/${__} ${PREFIX_MINIPIX}/${__%%/*}; + cp -pr ${PKG_PREFIX}/${__} ${PREFIX_MINIPIX}/${__%%/*}; + set -o noglob; + done; +}; + +# vim:filetype=sh diff --git a/vars/perl.vars b/vars/perl.vars new file mode 100644 index 00000000..853bef90 --- /dev/null +++ b/vars/perl.vars @@ -0,0 +1,24 @@ +# +# . ./build.vars and set -o errexit -o noglob are assumed. +# + +pkg_perl_extract_post() { + git clone https://github.com/lalbornoz/perl-cross; + for _ppep_fname_src in $(find perl-cross -type f \ + -not -path perl-cross/.git/\* -not -name .gitignore); do + _ppep_fname_dst=perl-${PKG_VERSION}${_ppep_fname_src#perl-cross}; + if [ -f ${_ppep_fname_dst} ]; then + mv -- ${_ppep_fname_dst} ${_ppep_fname_dst}.orig; + fi; + if [ ! -d "$(dirname ${_ppep_fname_dst})" ]; then + mkdir -p -- $(dirname ${_ppep_fname_dst}); + fi; + cp -- ${_ppep_fname_src} ${_ppep_fname_dst}; + done; + for _ppep_cflag in ${PKG_CFLAGS_CONFIGURE}; do + PKG_CONFIGURE_ARGS="${PKG_CONFIGURE_ARGS:+${PKG_CONFIGURE_ARGS} }-A ccflags=${_ppep_cflag}"; + done; + unset _ppep_fname_src _ppep_fname_dst _ppep_cflag; +}; + +# vim:filetype=sh diff --git a/vars/pkgconf_host.vars b/vars/pkgconf_host.vars new file mode 100644 index 00000000..61d467a2 --- /dev/null +++ b/vars/pkgconf_host.vars @@ -0,0 +1,19 @@ +# +# . ./build.vars and set -o errexit -o noglob are assumed. +# + +pkg_pkgconf_host_install_post() { + if [ -e ${PREFIX}/bin/${TARGET}-pkg-config ]; then + secure_rm ${PREFIX}/bin/${TARGET}-pkg-config; + fi; + cat > ${PREFIX}/bin/${TARGET}-pkg-config <> $@ - - auto/osdef.h: auto/config.h osdef.sh osdef1.h.in osdef2.h.in -- CC="$(CC) $(OSDEF_CFLAGS)" srcdir=$(srcdir) sh $(srcdir)/osdef.sh -+ CC="$(CC) $(OSDEF_CFLAGS) -I$(PKG_PREFIX)/include" srcdir=$(srcdir) sh $(srcdir)/osdef.sh - - auto/pathdef.c: Makefile auto/config.mk - -@echo creating $@ ---- vim-7.4.1952/src/auto/configure.orig 2016-06-21 23:42:20.000000000 +0200 -+++ vim-7.4.1952/src/auto/configure 2016-09-16 16:37:28.147266000 +0200 -@@ -2603,7 +2603,7 @@ - ## -------------------- ## - - ac_ext=c --ac_cpp='$CPP $CPPFLAGS' -+ac_cpp='$CPP $CFLAGS $CPPFLAGS' - ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' - ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' - ac_compiler_gnu=$ac_cv_c_compiler_gnu -@@ -7607,6 +7607,7 @@ - - # Standard set of common directories for X headers. - # Check X11 before X11Rn because it is often a symlink to the current release. -+if test -z "$ac_x_header_dirs"; then - ac_x_header_dirs=' - /usr/X11/include - /usr/X11R7/include -@@ -7645,6 +7646,7 @@ - - /usr/openwin/include - /usr/openwin/share/include' -+fi - - if test "$ac_x_includes" = no; then - # Guess where to find include files, by looking for Xlib.h. -@@ -9488,7 +9490,7 @@ - - - -- -+SKIP_MOTIF=YES - if test -z "$SKIP_MOTIF"; then - gui_XXX="/usr/XXX/Motif* /usr/Motif*/XXX /usr/XXX /usr/shlib /usr/X11*/XXX /usr/XXX/X11* /usr/dt/XXX /local/Motif*/XXX /local/XXX/Motif* /usr/local/Motif*/XXX /usr/local/XXX/Motif* /usr/local/XXX /usr/local/X11*/XXX /usr/local/LessTif/Motif*/XXX $MOTIFHOME/XXX" - GUI_INC_LOC="`echo $GUI_INC_LOC|sed 's%-I%%g'`" diff --git a/weechat-1.6.local.patch b/weechat-1.6.local.patch deleted file mode 100644 index 7f642469..00000000 --- a/weechat-1.6.local.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -ru weechat-1.6.orig/config.sub weechat-1.6/config.sub ---- weechat-1.6.orig/config.sub 2016-10-19 20:51:03.610252372 +0200 -+++ weechat-1.6/config.sub 2016-10-19 20:33:14.686252372 +0200 -@@ -1376,7 +1376,7 @@ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* | -cegcc* \ - | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ -- | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ -+ | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ - | -linux-newlib* | -linux-musl* | -linux-uclibc* \ - | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ -diff -ru weechat-1.6.orig/configure weechat-1.6/configure ---- weechat-1.6.orig/configure 2016-10-19 20:51:02.366252372 +0200 -+++ weechat-1.6/configure 2016-10-19 20:46:26.802252372 +0200 -@@ -23683,7 +23683,7 @@ - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 - $as_echo "yes" >&6; } - GCRYPT_CFLAGS=`libgcrypt-config --cflags` -- GCRYPT_LFLAGS=`libgcrypt-config --libs` -+ GCRYPT_LFLAGS="-lgcrypt -lgpg-error" - - - fi diff --git a/zip30.local.patch b/zip30.local.patch deleted file mode 100644 index 0c37bcf9..00000000 --- a/zip30.local.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff -ru zip30.orig/unix/Makefile zip30/unix/Makefile ---- zip30.orig/unix/Makefile 2008-05-07 08:33:56.000000000 +0200 -+++ zip30/unix/Makefile 2016-10-17 01:03:49.734470317 +0200 -@@ -196,6 +196,12 @@ - # NO_UNICODE_SUPPORT - do not enable Unicode support even if available. - # NO_BZIP2_SUPPORT - do not compile in bzip2 code even if available. - -+# Midipix target -+midipix: -+ $(MAKE) $(MAKEF) zips LDFLAGS1="" CC="x86_64-nt64-midipix-gcc" CPP="x86_64-nt64-midipix-gcc -E" \ -+ CFLAGS="-g3 -O0 -DUNIX -I. -DHAVE_TERMIOS_H -DNO_BZIP2_SUPPORT -DLARGE_FILE_SUPPORT -DUNICODE_SUPPORT \ -+ -DHAVE_DIRENT_H -DUIDGID_NOT_16BIT" OBJA="" OCRCU8="crc32_.o " OCRCTB="" LN="ln -s" LFLAGS2="" -+ - # Generic targets: - - generic: flags -- cgit v1.2.3