commit: a5a689c954d43c71014d003bfca1040eb67e2ee0
parent 25443468ee1067d6ca5045c3d7204974de8d19f2
Author: Googulator <netrolller.3d@gmail.com>
Date: Mon, 15 Apr 2024 10:17:13 +0200
Merge pull request #457 from fosslinux/byacc
Move heirloom lex and flex after musl, replace heirloom yacc with byacc
Diffstat:
14 files changed, 465 insertions(+), 1978 deletions(-)
diff --git a/LICENSES/CC0-1.0.txt b/LICENSES/CC0-1.0.txt
@@ -0,0 +1,121 @@
+Creative Commons Legal Code
+
+CC0 1.0 Universal
+
+ CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
+ LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
+ ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
+ INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
+ REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
+ PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
+ THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
+ HEREUNDER.
+
+Statement of Purpose
+
+The laws of most jurisdictions throughout the world automatically confer
+exclusive Copyright and Related Rights (defined below) upon the creator
+and subsequent owner(s) (each and all, an "owner") of an original work of
+authorship and/or a database (each, a "Work").
+
+Certain owners wish to permanently relinquish those rights to a Work for
+the purpose of contributing to a commons of creative, cultural and
+scientific works ("Commons") that the public can reliably and without fear
+of later claims of infringement build upon, modify, incorporate in other
+works, reuse and redistribute as freely as possible in any form whatsoever
+and for any purposes, including without limitation commercial purposes.
+These owners may contribute to the Commons to promote the ideal of a free
+culture and the further production of creative, cultural and scientific
+works, or to gain reputation or greater distribution for their Work in
+part through the use and efforts of others.
+
+For these and/or other purposes and motivations, and without any
+expectation of additional consideration or compensation, the person
+associating CC0 with a Work (the "Affirmer"), to the extent that he or she
+is an owner of Copyright and Related Rights in the Work, voluntarily
+elects to apply CC0 to the Work and publicly distribute the Work under its
+terms, with knowledge of his or her Copyright and Related Rights in the
+Work and the meaning and intended legal effect of CC0 on those rights.
+
+1. Copyright and Related Rights. A Work made available under CC0 may be
+protected by copyright and related or neighboring rights ("Copyright and
+Related Rights"). Copyright and Related Rights include, but are not
+limited to, the following:
+
+ i. the right to reproduce, adapt, distribute, perform, display,
+ communicate, and translate a Work;
+ ii. moral rights retained by the original author(s) and/or performer(s);
+iii. publicity and privacy rights pertaining to a person's image or
+ likeness depicted in a Work;
+ iv. rights protecting against unfair competition in regards to a Work,
+ subject to the limitations in paragraph 4(a), below;
+ v. rights protecting the extraction, dissemination, use and reuse of data
+ in a Work;
+ vi. database rights (such as those arising under Directive 96/9/EC of the
+ European Parliament and of the Council of 11 March 1996 on the legal
+ protection of databases, and under any national implementation
+ thereof, including any amended or successor version of such
+ directive); and
+vii. other similar, equivalent or corresponding rights throughout the
+ world based on applicable law or treaty, and any national
+ implementations thereof.
+
+2. Waiver. To the greatest extent permitted by, but not in contravention
+of, applicable law, Affirmer hereby overtly, fully, permanently,
+irrevocably and unconditionally waives, abandons, and surrenders all of
+Affirmer's Copyright and Related Rights and associated claims and causes
+of action, whether now known or unknown (including existing as well as
+future claims and causes of action), in the Work (i) in all territories
+worldwide, (ii) for the maximum duration provided by applicable law or
+treaty (including future time extensions), (iii) in any current or future
+medium and for any number of copies, and (iv) for any purpose whatsoever,
+including without limitation commercial, advertising or promotional
+purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
+member of the public at large and to the detriment of Affirmer's heirs and
+successors, fully intending that such Waiver shall not be subject to
+revocation, rescission, cancellation, termination, or any other legal or
+equitable action to disrupt the quiet enjoyment of the Work by the public
+as contemplated by Affirmer's express Statement of Purpose.
+
+3. Public License Fallback. Should any part of the Waiver for any reason
+be judged legally invalid or ineffective under applicable law, then the
+Waiver shall be preserved to the maximum extent permitted taking into
+account Affirmer's express Statement of Purpose. In addition, to the
+extent the Waiver is so judged Affirmer hereby grants to each affected
+person a royalty-free, non transferable, non sublicensable, non exclusive,
+irrevocable and unconditional license to exercise Affirmer's Copyright and
+Related Rights in the Work (i) in all territories worldwide, (ii) for the
+maximum duration provided by applicable law or treaty (including future
+time extensions), (iii) in any current or future medium and for any number
+of copies, and (iv) for any purpose whatsoever, including without
+limitation commercial, advertising or promotional purposes (the
+"License"). The License shall be deemed effective as of the date CC0 was
+applied by Affirmer to the Work. Should any part of the License for any
+reason be judged legally invalid or ineffective under applicable law, such
+partial invalidity or ineffectiveness shall not invalidate the remainder
+of the License, and in such case Affirmer hereby affirms that he or she
+will not (i) exercise any of his or her remaining Copyright and Related
+Rights in the Work or (ii) assert any associated claims and causes of
+action with respect to the Work, in either case contrary to Affirmer's
+express Statement of Purpose.
+
+4. Limitations and Disclaimers.
+
+ a. No trademark or patent rights held by Affirmer are waived, abandoned,
+ surrendered, licensed or otherwise affected by this document.
+ b. Affirmer offers the Work as-is and makes no representations or
+ warranties of any kind concerning the Work, express, implied,
+ statutory or otherwise, including without limitation warranties of
+ title, merchantability, fitness for a particular purpose, non
+ infringement, or the absence of latent or other defects, accuracy, or
+ the present or absence of errors, whether or not discoverable, all to
+ the greatest extent permissible under applicable law.
+ c. Affirmer disclaims responsibility for clearing rights of other persons
+ that may apply to the Work or any use thereof, including without
+ limitation any person's Copyright and Related Rights in the Work.
+ Further, Affirmer disclaims responsibility for obtaining any necessary
+ consents, permissions or other rights required for any use of the
+ Work.
+ d. Affirmer understands and acknowledges that Creative Commons is not a
+ party to this document and has no duty or obligation with respect to
+ this CC0 or use of the Work.
diff --git a/LICENSES/CDDL-1.0.txt b/LICENSES/CDDL-1.0.txt
@@ -1,298 +0,0 @@
-COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL)
-Version 1.0
-
-1. Definitions.
-
-1.1. “Contributor” means each individual or entity that creates or contributes
-to the creation of Modifications.
-
-1.2. “Contributor Version” means the combination of the Original Software,
-prior Modifications used by a Contributor (if any), and the Modifications
-made by that particular Contributor.
-
-1.3. “Covered Software” means (a) the Original Software, or (b) Modifications,
-or (c) the combination of files containing Original Software with files containing
-Modifications, in each case including portions thereof.
-
-1.4. “Executable” means the Covered Software in any form other than Source
-Code.
-
-1.5. “Initial Developer” means the individual or entity that first makes Original
-Software available under this License.
-
-1.6. “Larger Work” means a work which combines Covered Software or portions
-thereof with code not governed by the terms of this License.
-
-1.7. “License” means this document.
-
-1.8. “Licensable” means having the right to grant, to the maximum extent possible,
-whether at the time of the initial grant or subsequently acquired, any and
-all of the rights conveyed herein.
-
-1.9. “Modifications” means the Source Code and Executable form of any of the
-following:
-
-A. Any file that results from an addition to, deletion from or modification
-of the contents of a file containing Original Software or previous Modifications;
-
-B. Any new file that contains any part of the Original Software or previous
-Modification; or
-
-C. Any new file that is contributed or otherwise made available under the
-terms of this License.
-
-1.10. “Original Software” means the Source Code and Executable form of computer
-software code that is originally released under this License.
-
-1.11. “Patent Claims” means any patent claim(s), now owned or hereafter acquired,
-including without limitation, method, process, and apparatus claims, in any
-patent Licensable by grantor.
-
-1.12. “Source Code” means (a) the common form of computer software code in
-which modifications are made and (b) associated documentation included in
-or with such code.
-
-1.13. “You” (or “Your”) means an individual or a legal entity exercising rights
-under, and complying with all of the terms of, this License. For legal entities,
-“You” includes any entity which controls, is controlled by, or is under common
-control with You. For purposes of this definition, “control” means (a) the
-power, direct or indirect, to cause the direction or management of such entity,
-whether by contract or otherwise, or (b) ownership of more than fifty percent
-(50%) of the outstanding shares or beneficial ownership of such entity.
-
-2. License Grants.
-
-2.1. The Initial Developer Grant.
-Conditioned upon Your compliance with Section 3.1 below and subject to third
-party intellectual property claims, the Initial Developer hereby grants You
-a world-wide, royalty-free, non-exclusive license:
-
-(a) under intellectual property rights (other than patent or trademark) Licensable
-by Initial Developer, to use, reproduce, modify, display, perform, sublicense
-and distribute the Original Software (or portions thereof), with or without
-Modifications, and/or as part of a Larger Work; and
-
-(b) under Patent Claims infringed by the making, using or selling of Original
-Software, to make, have made, use, practice, sell, and offer for sale, and/or
-otherwise dispose of the Original Software (or portions thereof).
-
-(c) The licenses granted in Sections 2.1(a) and (b) are effective on the date
-Initial Developer first distributes or otherwise makes the Original Software
-available to a third party under the terms of this License.
-
-(d) Notwithstanding Section 2.1(b) above, no patent license is granted: (1)
-for code that You delete from the Original Software, or (2) for infringements
-caused by: (i) the modification of the Original Software, or (ii) the combination
-of the Original Software with other software or devices.
-
-2.2. Contributor Grant.
-Conditioned upon Your compliance with Section 3.1 below and subject to third
-party intellectual property claims, each Contributor hereby grants You a world-wide,
-royalty-free, non-exclusive license:
-
-(a) under intellectual property rights (other than patent or trademark) Licensable
-by Contributor to use, reproduce, modify, display, perform, sublicense and
-distribute the Modifications created by such Contributor (or portions thereof),
-either on an unmodified basis, with other Modifications, as Covered Software
-and/or as part of a Larger Work; and
-
-(b) under Patent Claims infringed by the making, using, or selling of Modifications
-made by that Contributor either alone and/or in combination with its Contributor
-Version (or portions of such combination), to make, use, sell, offer for sale,
-have made, and/or otherwise dispose of: (1) Modifications made by that Contributor
-(or portions thereof); and (2) the combination of Modifications made by that
-Contributor with its Contributor Version (or portions of such combination).
-
-(c) The licenses granted in Sections 2.2(a) and 2.2(b) are effective on the
-date Contributor first distributes or otherwise makes the Modifications available
-to a third party.
-
-(d) Notwithstanding Section 2.2(b) above, no patent license is granted: (1)
-for any code that Contributor has deleted from the Contributor Version; (2)
-for infringements caused by: (i) third party modifications of Contributor
-Version, or (ii) the combination of Modifications made by that Contributor
-with other software (except as part of the Contributor Version) or other devices;
-or (3) under Patent Claims infringed by Covered Software in the absence of
-Modifications made by that Contributor.
-
-3. Distribution Obligations.
-
-3.1. Availability of Source Code.
-Any Covered Software that You distribute or otherwise make available in Executable
-form must also be made available in Source Code form and that Source Code
-form must be distributed only under the terms of this License. You must include
-a copy of this License with every copy of the Source Code form of the Covered
-Software You distribute or otherwise make available. You must inform recipients
-of any such Covered Software in Executable form as to how they can obtain
-such Covered Software in Source Code form in a reasonable manner on or through
-a medium customarily used for software exchange.
-
-3.2. Modifications.
-The Modifications that You create or to which You contribute are governed
-by the terms of this License. You represent that You believe Your Modifications
-are Your original creation(s) and/or You have sufficient rights to grant the
-rights conveyed by this License.
-
-3.3. Required Notices.
-You must include a notice in each of Your Modifications that identifies You
-as the Contributor of the Modification. You may not remove or alter any copyright,
-patent or trademark notices contained within the Covered Software, or any
-notices of licensing or any descriptive text giving attribution to any Contributor
-or the Initial Developer.
-
-3.4. Application of Additional Terms.
-You may not offer or impose any terms on any Covered Software in Source Code
-form that alters or restricts the applicable version of this License or the
-recipients’ rights hereunder. You may choose to offer, and to charge a fee
-for, warranty, support, indemnity or liability obligations to one or more
-recipients of Covered Software. However, you may do so only on Your own behalf,
-and not on behalf of the Initial Developer or any Contributor. You must make
-it absolutely clear that any such warranty, support, indemnity or liability
-obligation is offered by You alone, and You hereby agree to indemnify the
-Initial Developer and every Contributor for any liability incurred by the
-Initial Developer or such Contributor as a result of warranty, support, indemnity
-or liability terms You offer.
-
-3.5. Distribution of Executable Versions.
-You may distribute the Executable form of the Covered Software under the terms
-of this License or under the terms of a license of Your choice, which may
-contain terms different from this License, provided that You are in compliance
-with the terms of this License and that the license for the Executable form
-does not attempt to limit or alter the recipient’s rights in the Source Code
-form from the rights set forth in this License. If You distribute the Covered
-Software in Executable form under a different license, You must make it absolutely
-clear that any terms which differ from this License are offered by You alone,
-not by the Initial Developer or Contributor. You hereby agree to indemnify
-the Initial Developer and every Contributor for any liability incurred by
-the Initial Developer or such Contributor as a result of any such terms You
-offer.
-
-3.6. Larger Works.
-You may create a Larger Work by combining Covered Software with other code
-not governed by the terms of this License and distribute the Larger Work as
-a single product. In such a case, You must make sure the requirements of this
-License are fulfilled for the Covered Software.
-
-4. Versions of the License.
-
-4.1. New Versions.
-Sun Microsystems, Inc. is the initial license steward and may publish revised
-and/or new versions of this License from time to time. Each version will be
-given a distinguishing version number. Except as provided in Section 4.3,
-no one other than the license steward has the right to modify this License.
-
-4.2. Effect of New Versions.
-You may always continue to use, distribute or otherwise make the Covered Software
-available under the terms of the version of the License under which You originally
-received the Covered Software. If the Initial Developer includes a notice
-in the Original Software prohibiting it from being distributed or otherwise
-made available under any subsequent version of the License, You must distribute
-and make the Covered Software available under the terms of the version of
-the License under which You originally received the Covered Software. Otherwise,
-You may also choose to use, distribute or otherwise make the Covered Software
-available under the terms of any subsequent version of the License published
-by the license steward.
-
-4.3. Modified Versions.
-When You are an Initial Developer and You want to create a new license for
-Your Original Software, You may create and use a modified version of this
-License if You: (a) rename the license and remove any references to the name
-of the license steward (except to note that the license differs from this
-License); and (b) otherwise make it clear that the license contains terms
-which differ from this License.
-
-5. DISCLAIMER OF WARRANTY.
-
-COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT
-WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION,
-WARRANTIES THAT THE COVERED SOFTWARE IS FREE OF DEFECTS, MERCHANTABLE, FIT
-FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY
-AND PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY COVERED SOFTWARE
-PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER
-CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION.
-THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE.
-NO USE OF ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
-
-6. TERMINATION.
-
-6.1. This License and the rights granted hereunder will terminate automatically
-if You fail to comply with terms herein and fail to cure such breach within
-30 days of becoming aware of the breach. Provisions which, by their nature,
-must remain in effect beyond the termination of this License shall survive.
-
-6.2. If You assert a patent infringement claim (excluding declaratory judgment
-actions) against Initial Developer or a Contributor (the Initial Developer
-or Contributor against whom You assert such claim is referred to as “Participant”)
-alleging that the Participant Software (meaning the Contributor Version where
-the Participant is a Contributor or the Original Software where the Participant
-is the Initial Developer) directly or indirectly infringes any patent, then
-any and all rights granted directly or indirectly to You by such Participant,
-the Initial Developer (if the Initial Developer is not the Participant) and
-all Contributors under Sections 2.1 and/or 2.2 of this License shall, upon
-60 days notice from Participant terminate prospectively and automatically
-at the expiration of such 60 day notice period, unless if within such 60 day
-period You withdraw Your claim with respect to the Participant Software against
-such Participant either unilaterally or pursuant to a written agreement with
-Participant.
-
-6.3. In the event of termination under Sections 6.1 or 6.2 above, all end
-user licenses that have been validly granted by You or any distributor hereunder
-prior to termination (excluding licenses granted to You by any distributor)
-shall survive termination.
-
-7. LIMITATION OF LIABILITY.
-
-UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING
-NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY
-OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED SOFTWARE, OR ANY SUPPLIER
-OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL,
-INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION,
-DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE
-OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF
-SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS
-LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL
-INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
-PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR
-LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION
-MAY NOT APPLY TO YOU.
-
-8. U.S. GOVERNMENT END USERS.
-
-The Covered Software is a “commercial item,” as that term is defined in 48
-C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” (as
-that term is defined at 48 C.F.R. § 252.227-7014(a)(1)) and “commercial computer
-software documentation” as such terms are used in 48 C.F.R. 12.212 (Sept.
-1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4
-(June 1995), all U.S. Government End Users acquire Covered Software with only
-those rights set forth herein. This U.S. Government Rights clause is in lieu
-of, and supersedes, any other FAR, DFAR, or other clause or provision that
-addresses Government rights in computer software under this License.
-
-9. MISCELLANEOUS.
-
-This License represents the complete agreement concerning subject matter hereof.
-If any provision of this License is held to be unenforceable, such provision
-shall be reformed only to the extent necessary to make it enforceable. This
-License shall be governed by the law of the jurisdiction specified in a notice
-contained within the Original Software (except to the extent applicable law,
-if any, provides otherwise), excluding such jurisdiction’s conflict-of-law
-provisions. Any litigation relating to this License shall be subject to the
-jurisdiction of the courts located in the jurisdiction and venue specified
-in a notice contained within the Original Software, with the losing party
-responsible for costs, including, without limitation, court costs and reasonable
-attorneys’ fees and expenses. The application of the United Nations Convention
-on Contracts for the International Sale of Goods is expressly excluded. Any
-law or regulation which provides that the language of a contract shall be
-construed against the drafter shall not apply to this License. You agree that
-You alone are responsible for compliance with the United States export administration
-regulations (and the export control laws and regulation of any other countries)
-when You use, distribute or otherwise make available any Covered Software.
-
-10. RESPONSIBILITY FOR CLAIMS.
-
-As between Initial Developer and the Contributors, each party is responsible
-for claims and damages arising, directly or indirectly, out of its utilization
-of rights under this License and You agree to work with Initial Developer
-and Contributors to distribute such responsibility on an equitable basis.
-Nothing herein is intended or shall be deemed to constitute any admission
-of liability.
diff --git a/steps/SHA256SUMS.pkgs b/steps/SHA256SUMS.pkgs
@@ -45,9 +45,9 @@ bda6afcd3a390a34a57443269a4857ccc470129f7a557981778c145fd841cbd1 dist-3.5-236_0
9c6f7e156f299f1d0948537e28f00d40e727a3debae3cce158e9bce827136214 ed-1.4_0.tar.bz2
0061d240f9bb2bb534db7003ddcc4eae9981954ad72e8f41ff1d76dc449ebd37 file-5.44_0.tar.bz2
eec07e0d710ed3dd8d0ba6a1ec6ca9f1fa3a611bbb225195435679175317bf90 findutils-4.2.33_0.tar.bz2
-41902ec0383ea977a8d008dee37150e022e0714cd99f54c37f29c153464b758a flex-2.5.11_0.tar.bz2
+6c59fe114161d5fb99101e54c3d40b8c9355a6e2705cc8804178a65e976ebfb1 flex-2.5.11_0.tar.bz2
b3a8d59229289ca5a1de6a24c9c828d2847144f6662e0d5b7f41e7ff6e57abaa flex-2.5.33_0.tar.bz2
-57f72a4d1cb89dc1e59af0228fddc0ea97a3588984114f702f142c82aeeef493 flex-2.6.4_0.tar.bz2
+521bf27dd28461fbc5d80e09bd56ab0f180af70020d74094b8edafae9713fc44 flex-2.6.4_0.tar.bz2
f0f1471e4a5ff95749bd655c145311cc03eec80525f2bb0b9b3ac3ff8be29e0b gawk-3.0.4_0.tar.bz2
62e90abe883f6ccd679adf42d00c2c18a9809bbab599411c81b6c4ac4d446452 gawk-5.3.0_0.tar.bz2
6de1c1380026ef9948387e665610185b6014f47a80453177a6c81898c95cbbd3 gc-8.0.4_0.tar.bz2
@@ -64,6 +64,7 @@ dc67fc1b132fa3945349efe74c5b2197bd0b6babf4d29d2deddd04f09d9af680 gettext-0.21_0
8035da0f42b40509a1f68c91164f20fec624cf8b61017aa4e135473e547dddf4 grub-2.06_0.tar.bz2
e2a85aad6d51e52c9a30afeed058f95172fde1215f77243549274672990f6237 guile-3.0.9_0.tar.bz2
6585ae3bc8149ec0e3fba766278fa30e2d7f0e7d1b9a9a4a457e0afa15b109c9 gzip-1.13_0.tar.bz2
+5de062a49595c0d8cd7ba0efb70b95b8fa3c5a9c61e4eeeeb0bdb26d2e426ae0 heirloom-devtools-070527_0.tar.bz2
8d2015b87337abbf287f7a39ee4cf53514120b5d3e90a93fe7d533dcc43f14fa help2man-1.36.4_0.tar.bz2
ea5639dc6198c5f243362a1a7adfbea0cb779e085975712a1b410e82d7e0cf84 kbd-1.15_0.tar.bz2
50a0f881161c68fe7c9ec6836b11a905b0d54e08e99b2476e8d1f5ac3212769e kexec-linux-1.0.0_0.tar.bz2
diff --git a/steps/bash-2.05b/bash-2.05b.checksums b/steps/bash-2.05b/bash-2.05b.checksums
@@ -1 +1 @@
-dd42ffbc30919b13693cbd58536599907d057dc58aabde2b2b1e36ec0475e694 /usr/bin/bash
+787a4096636b139d5b278c1a7dea6b2d951406302eca670ccab371b63b9dbb67 /usr/bin/bash
diff --git a/steps/byacc-20240109/byacc-20240109.checksums b/steps/byacc-20240109/byacc-20240109.checksums
@@ -0,0 +1 @@
+79ff462e4247dc7316a163124b32c54e6c8cb6d2ff4dfb0c1818799efcc1d8a7 /usr/bin/yacc
diff --git a/steps/byacc-20240109/files/Makefile b/steps/byacc-20240109/files/Makefile
@@ -0,0 +1,98 @@
+# SPDX-FileCopyrightText: 2002-2022 Thomas E. Dickey
+# SPDX-FileCopyrightText: 2024 Gábor Stefanik <netrolller.3d@gmail.com>
+#
+# SPDX-License-Identifier: CC0-1.0
+#
+# From original byacc README:
+# Berkeley Yacc is in the public domain. The data structures and algorithms
+# used in Berkeley Yacc are all either taken from documents available to the
+# general public or are inventions of the author. Anyone may freely distribute
+# source or binary forms of Berkeley Yacc whether unchanged or modified.
+# Distributers may charge whatever fees they can obtain for Berkeley Yacc.
+# Programs generated by Berkeley Yacc may be distributed freely.
+#
+# (typo "Distributers" in original)
+
+DEST = .
+
+HDRS = defs.h
+
+CFLAGS ?= -O -DNDEBUG
+
+LDFLAGS ?=
+
+LIBS ?=
+
+LINKER ?= $(CC)
+
+MAKEFILE = Makefile
+
+OBJS = closure.o \
+ error.o graph.o \
+ lalr.o \
+ lr0.o \
+ main.o \
+ mkpar.o mstring.o \
+ output.o \
+ reader.o \
+ symtab.o \
+ verbose.o \
+ warshall.o yaccpar.o
+
+PRINT = pr -f -l88
+
+PROGRAM = yacc
+
+SRCS = closure.c \
+ error.c graph.c \
+ lalr.c \
+ lr0.c \
+ main.c \
+ mkpar.c mstring.c \
+ output.c \
+ reader.c \
+ symtab.c \
+ verbose.c \
+ warshall.c yaccpar.c
+
+all: $(PROGRAM)
+
+$(PROGRAM): $(OBJS) $(LIBS)
+ @$(LINKER) $(LDFLAGS) -o $(PROGRAM) $(OBJS) $(LIBS)
+
+clean:; @rm -f $(OBJS)
+
+clobber:; @rm -f $(OBJS) $(PROGRAM)
+
+depend:; @mkmf -f $(MAKEFILE) PROGRAM=$(PROGRAM) DEST=$(DEST)
+
+index:; @ctags -wx $(HDRS) $(SRCS)
+
+install: $(PROGRAM)
+ @echo Installing $(PROGRAM) in $(DEST)
+ @install -s $(PROGRAM) $(DEST)
+
+listing:; @$(PRINT) Makefile $(HDRS) $(SRCS) | lpr
+
+lint:; @lint $(SRCS)
+
+program: $(PROGRAM)
+
+tags: $(HDRS) $(SRCS); @ctags $(HDRS) $(SRCS)
+
+###
+closure.o: defs.h
+error.o: defs.h
+lalr.o: defs.h
+lr0.o: defs.h
+main.o: defs.h
+mkpar.o: defs.h
+output.o: defs.h
+reader.o: defs.h
+symtab.o: defs.h
+verbose.o: defs.h
+warshall.o: defs.h
+btyaccpar.o: defs.h
+yaccpar.o: defs.h
+graph.o: defs.h
+mstring.o: defs.h
diff --git a/steps/byacc-20240109/pass1.kaem b/steps/byacc-20240109/pass1.kaem
@@ -0,0 +1,45 @@
+#!/bin/sh
+
+# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
+# SPDX-FileCopyrightText: 2021-22 fosslinux <fosslinux@aussies.space>
+# SPDX-FileCopyrightText: 2024 Gábor Stefanik <netrolller.3d@gmail.com>
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+set -ex
+
+# Check tarball checksums
+checksum-transcriber sources
+sha256sum -c sources.SHA256SUM
+
+mkdir build src
+cd build
+
+# Extract
+cp ${DISTFILES}/${pkg}.tgz ../src/${pkg}.tar.gz
+gunzip -f ../src/${pkg}.tar.gz
+tar xf ../src/${pkg}.tar
+rm -r ../src/
+cd ${pkg}
+
+# Prepare and patch
+cp ../../files/Makefile .
+patch -Np0 -i ../../patches/meslibc.patch
+
+# Build yacc
+make CC=tcc AR=tcc\ -ar CFLAGS=-DMAXPATHLEN=100\ -DEILSEQ=84\ -DMB_LEN_MAX=100 LDFLAGS=-lgetopt\ -static RANLIB=true
+
+# Install yacc
+install yacc ${BINDIR}/yacc
+
+cd ../..
+
+# Checksums
+if match x${UPDATE_CHECKSUMS} xTrue; then
+ sha256sum -o ${pkg}.checksums \
+ /usr/bin/yacc
+
+ install ${pkg}.checksums ${SRCDIR}
+else
+ sha256sum -c ${pkg}.checksums
+fi
diff --git a/steps/byacc-20240109/patches/meslibc.patch b/steps/byacc-20240109/patches/meslibc.patch
@@ -0,0 +1,170 @@
+SPDX-FileCopyrightText: 2024 Gábor Stefanik <netrolller.3d@gmail.com>
+
+SPDX-License-Identifier: GPL-3.0-or-later
+
+Remove usages of tmpfile(), rewind(), fgetpos(), fsetpos() and bsearch(),
+which are unsupported by meslibc, and add missing declaration for strdup.
+
+License note: Berkeley Yacc is in the public domain, but it's linked with
+meslibc, which is GPL-3.0-or-later, so we apply that license here too.
+
+diff -ru ../byacc-20240109.bak/main.c ./main.c
+--- ../byacc-20240109.bak/main.c 2024-04-14 16:06:09.646465507 +0200
++++ ./main.c 2024-04-14 20:41:56.227083399 +0200
+@@ -788,7 +788,7 @@
+ (void)umask(save_umask);
+ }
+ #else
+- result = tmpfile();
++ result = fopen(label, "w+");
+ #endif
+
+ if (result == 0)
+diff -ru ../byacc-20240109.bak/output.c ./output.c
+--- ../byacc-20240109.bak/output.c 2024-04-14 16:06:09.646465507 +0200
++++ ./output.c 2024-04-14 16:06:24.636465897 +0200
+@@ -1289,7 +1289,7 @@
+ {
+ if (union_file != 0)
+ {
+- rewind(union_file);
++ fseek(union_file, 0, SEEK_SET);
+ while ((c = getc(union_file)) != EOF)
+ putc_code(fp, c);
+ }
+@@ -1314,7 +1314,7 @@
+
+ if (text_file == NULL)
+ open_error("text_file");
+- rewind(text_file);
++ fseek(text_file, 0, SEEK_SET);
+ in = text_file;
+ if ((c = getc(in)) == EOF)
+ return;
+@@ -1684,7 +1684,7 @@
+ int state;
+ char line_state[20];
+
+- rewind(action_file);
++ fseek(action_file, 0, SEEK_SET);
+ if ((c = getc(action_file)) == EOF)
+ return;
+
+diff -ru ../byacc-20240109.bak/reader.c ./reader.c
+--- ../byacc-20240109.bak/reader.c 2024-04-14 16:06:09.646465507 +0200
++++ ./reader.c 2024-04-14 20:40:58.387082748 +0200
+@@ -70,7 +70,7 @@
+ char *line_data; /* saved input-line */
+ size_t line_used; /* position within saved input-line */
+ size_t line_size; /* length of saved input-line */
+- fpos_t line_fpos; /* pointer before reading past saved input-line */
++ long line_fpos; /* pointer before reading past saved input-line */
+ }
+ SAVE_LINE;
+
+@@ -315,7 +315,7 @@
+ line = save_area.line_data;
+ cptr = save_area.line_used + line;
+ linesize = save_area.line_size;
+- if (fsetpos(input_file, &save_area.line_fpos) != 0)
++ if (fseek(input_file, save_area.line_fpos, SEEK_SET) != 0)
+ on_error();
+ memset(&save_area, 0, sizeof(save_area));
+ }
+@@ -338,7 +338,7 @@
+ save_area.line_size = linesize;
+ NO_SPACE(save_area.line_data);
+ memcpy(save_area.line_data, line, linesize);
+- if (fgetpos(f, &save_area.line_fpos) != 0)
++ if ((save_area.line_fpos = ftell(f)) == -1)
+ on_error();
+ must_save = -must_save;
+ }
+@@ -572,6 +572,36 @@
+ return strcmp(p->name, q->name);
+ }
+
++/*
++ * Compare keyword to cached token, treating '_' and '-' the same. Some
++ * grammars rely upon this misfeature.
++ */
++static int
++matchec(const char *name)
++{
++ const char *p = cache;
++ const char *q = name;
++ int code = 0; /* assume mismatch */
++
++ while (*p != '\0' && *q != '\0')
++ {
++ char a = *p++;
++ char b = *q++;
++ if (a == '_')
++ a = '-';
++ if (b == '_')
++ b = '-';
++ if (a != b)
++ break;
++ if (*p == '\0' && *q == '\0')
++ {
++ code = 1;
++ break;
++ }
++ }
++ return code;
++}
++
+ static int
+ keyword(void)
+ {
+@@ -612,10 +642,36 @@
+ }
+ cachec(NUL);
+
+- if ((key = bsearch(cache, keywords,
+- sizeof(keywords) / sizeof(*key),
+- sizeof(*key), compare_keys)))
+- return key->token;
++ if (matchec("token") || matchec("term"))
++ return (TOKEN);
++ if (matchec("type"))
++ return (TYPE);
++ if (matchec("left"))
++ return (LEFT);
++ if (matchec("right"))
++ return (RIGHT);
++ if (matchec("nonassoc") || matchec("binary"))
++ return (NONASSOC);
++ if (matchec("start"))
++ return (START);
++ if (matchec("union"))
++ return (UNION);
++ if (matchec("ident"))
++ return (IDENT);
++ if (matchec("expect"))
++ return (EXPECT);
++ if (matchec("expect-rr"))
++ return (EXPECT_RR);
++ if (matchec("pure-parser"))
++ return (PURE_PARSER);
++ if (matchec("parse-param"))
++ return (PARSE_PARAM);
++ if (matchec("lex-param"))
++ return (LEX_PARAM);
++ if (matchec("token-table"))
++ return (TOKEN_TABLE);
++ if (matchec("yacc"))
++ return (POSIX_YACC);
+ }
+ else
+ {
+@@ -1178,6 +1234,9 @@
+ return result;
+ }
+
++char *
++strdup (char const *s);
++
+ static void
+ save_param(int k, char *buffer, int name, int type2)
+ {
diff --git a/steps/byacc-20240109/sources b/steps/byacc-20240109/sources
@@ -0,0 +1 @@
+https://invisible-island.net/archives/byacc/byacc-20240109.tgz f2897779017189f1a94757705ef6f6e15dc9208ef079eea7f28abec577e08446
diff --git a/steps/heirloom-devtools-070527/pass1.kaem b/steps/heirloom-devtools-070527/pass1.kaem
@@ -1,60 +0,0 @@
-#!/bin/sh
-
-# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
-# SPDX-FileCopyrightText: 2021-22 fosslinux <fosslinux@aussies.space>
-#
-# SPDX-License-Identifier: GPL-3.0-or-later
-
-set -ex
-
-# Check tarball checksums
-checksum-transcriber sources
-sha256sum -c sources.SHA256SUM
-
-mkdir build src
-cd build
-
-# Extract
-cp ${DISTFILES}/${pkg}.tar.bz2 ../src/
-bunzip2 -f ../src/${pkg}.tar.bz2
-tar xf ../src/${pkg}.tar ${pkg}/yacc ${pkg}/lex
-rm -r ../src/
-cd ${pkg}
-
-# Prepare and patch
-patch -Np0 -i ../../patches/yacc_remove_wchar.patch
-patch -Np0 -i ../../patches/lex_remove_wchar.patch
-
-# Build yacc
-cd yacc
-make -f Makefile.mk CC=tcc AR=tcc\ -ar CFLAGS=-DMAXPATHLEN=100\ -DEILSEQ=84\ -DMB_LEN_MAX=100 LDFLAGS=-lgetopt\ -static RANLIB=true
-
-# Install yacc
-install yacc ${BINDIR}
-install -m 644 yaccpar ${LIBDIR}
-
-# Build lex
-cd ../lex
-make -f Makefile.mk CC=tcc AR=tcc\ -ar CFLAGS=-DEILSEQ=84\ -DMB_LEN_MAX=100 LDFLAGS=-lgetopt\ -static RANLIB=true
-
-# Install lex
-mkdir ${LIBDIR}/lex
-install lex ${BINDIR}
-install libl.a ${LIBDIR}
-install -m 644 ncform ${LIBDIR}/lex
-
-cd ../../..
-
-# Checksums
-if match x${UPDATE_CHECKSUMS} xTrue; then
- sha256sum -o ${pkg}.checksums \
- /usr/bin/yacc \
- /usr/bin/lex \
- /usr/lib/mes/libl.a \
- /usr/lib/mes/yaccpar \
- /usr/lib/mes/lex/ncform
-
- install ${pkg}.checksums ${SRCDIR}
-else
- sha256sum -c ${pkg}.checksums
-fi
diff --git a/steps/heirloom-devtools-070527/pass1.sh b/steps/heirloom-devtools-070527/pass1.sh
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
+# SPDX-FileCopyrightText: 2021-22 fosslinux <fosslinux@aussies.space>
+# SPDX-FileCopyrightText: 2024 Gábor Stefanik <netrolller.3d@gmail.com>
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+src_compile() {
+ cd lex
+ make -f Makefile.mk CC=tcc AR=tcc\ -ar LDFLAGS=-static RANLIB=true
+ cd ..
+}
+
+src_install() {
+ mkdir -p "${DESTDIR}${BINDIR}" "${DESTDIR}${LIBDIR}/lex"
+ install lex/lex "${DESTDIR}${BINDIR}"
+ install lex/libl.a "${DESTDIR}${LIBDIR}"
+ install -m 644 lex/ncform "${DESTDIR}${LIBDIR}/lex"
+}
+
diff --git a/steps/heirloom-devtools-070527/patches/lex_remove_wchar.patch b/steps/heirloom-devtools-070527/patches/lex_remove_wchar.patch
@@ -1,454 +0,0 @@
-SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
-SPDX-FileCopyrightText: 2021 fosslinux <fosslinux@aussies.space>
-
-SPDX-License-Identifier: CDDL-1.0
-
-From 508eb06d40498acf954fc51ecb9171d2ce2236f6 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andrius=20=C5=A0tikonas?= <andrius@stikonas.eu>
-Date: Wed, 27 Jan 2021 00:40:19 +0000
-Subject: [PATCH] Workaround for lex to work with mes libc.
-
-Similarly to yacc, remove wchar. See yacc patch for further
-information.
-
----
- lex/Makefile.mk | 2 +-
- lex/allprint.c | 6 ++--
- lex/ldefs.c | 8 -----
- lex/main.c | 1 +
- lex/parser.y | 77 +++++++++++++++++++++++++++++++++++--------------
- lex/reject.c | 1 -
- lex/sub1.c | 44 ++++++++++++++++++----------
- lex/sub3.c | 2 +-
- 8 files changed, 89 insertions(+), 52 deletions(-)
-
-diff --git lex/Makefile.mk lex/Makefile.mk
-index 577f7cb..a413867 100644
---- lex/Makefile.mk
-+++ lex/Makefile.mk
-@@ -1,4 +1,4 @@
--XOBJ = main.o sub1.o sub2.o sub3.o header.o wcio.o parser.o getopt.o lsearch.o
-+XOBJ = main.o sub1.o sub2.o sub3.o header.o parser.o getopt.o lsearch.o
-
- LOBJ = allprint.o libmain.o reject.o yyless.o yywrap.o \
- allprint_w.o reject_w.o yyless_w.o reject_e.o yyless_e.o
-diff --git lex/allprint.c lex/allprint.c
-index 6e82495..cb0c6bb 100644
---- lex/allprint.c
-+++ lex/allprint.c
-@@ -42,8 +42,6 @@
- #include <sys/euc.h>
- #include <widec.h>
- #endif
--#include <wctype.h>
--#include <wchar.h>
-
- extern FILE *yyout;
-
-@@ -78,10 +76,10 @@ allprint(CHR c)
- fprintf(yyout, "\\_");
- break;
- default:
-- if (!iswprint(c))
-+ if (!iwprint(c))
- fprintf(yyout, "\\x%-2x", (int)c);
- else
-- putwc(c, yyout);
-+ putc(c, yyout);
- break;
- }
- }
-diff --git lex/ldefs.c lex/ldefs.c
-index ff99665..c5dcbaf 100644
---- lex/ldefs.c
-+++ lex/ldefs.c
-@@ -43,7 +43,6 @@
- #ifdef __sun
- #include <widec.h>
- #endif
--#include <wctype.h>
-
- #define CHR wchar_t
- #define BYTE char
-@@ -296,13 +295,6 @@ int mn1(int a, intptr_t d);
- int mn0(int a);
- int dupl(int n);
-
--#undef getwc
--#define getwc(f) lex_getwc(f)
--extern wint_t lex_getwc(FILE *);
--#undef putwc
--#define putwc(c, f) lex_putwc(c, f)
--extern wint_t lex_putwc(wchar_t, FILE *);
--
- #undef index
- #define index lex_index
-
-diff --git lex/main.c lex/main.c
-index 8aee8ea..52c892a 100644
---- lex/main.c
-+++ lex/main.c
-@@ -38,6 +38,7 @@
- * Sccsid @(#)main.c 1.9 (gritter) 11/26/05
- */
-
-+#include <getopt.h>
- #include <string.h>
- #include "once.h"
- #include "sgs.h"
-diff --git lex/parser.y lex/parser.y
-index b8618e3..34a7e9a 100644
---- lex/parser.y
-+++ lex/parser.y
-@@ -43,7 +43,6 @@
- void yyerror(char *);
-
- #include <ctype.h>
--#include <wchar.h>
- #include <inttypes.h>
- #ifndef __sun
- #define wcsetno(c) 0
-@@ -289,6 +288,19 @@ r: CHAR
- ;
-
- %%
-+
-+/*
-+Copy multibyte string into char string.
-+Mes C library does not support wide strings, and fprintf truncates all strings to 1 character.
-+This happens because wchar_t strings have 0 in a second byte.
-+*/
-+int
-+wstrcpy(char const *destination, wchar_t const *source) {
-+ int i = 0;
-+ do {
-+ destination[i]=source[i];
-+ } while (source[i++] != 0);
-+}
- int
- yylex(void)
- {
-@@ -353,7 +365,7 @@ yylex(void)
- (*(p+2) == 'O')) {
- if(lgatflg)
- error("Too late for %%pointer");
-- while(*p && !iswspace(*p))
-+ while(*p && !isspace(*p))
- p++;
- isArray = 0;
- continue;
-@@ -397,7 +409,7 @@ yylex(void)
- (*(p+2) == 'R')) {
- if(lgatflg)
- error("Too late for %%array");
-- while(*p && !iswspace(*p))
-+ while(*p && !isspace(*p))
- p++;
- isArray = 1;
- continue;
-@@ -426,7 +438,7 @@ yylex(void)
- if(handleeuc)
- error("\
- Character table (%t) is supported only in ASCII compatibility mode.\n");
-- ZCH = wcstol(p+2, NULL, 10);
-+ ZCH = strtol(p+2, NULL, 10);
- if (ZCH < NCH) ZCH = NCH;
- if (ZCH > 2*NCH) error("ch table needs redeclaration");
- chset = TRUE;
-@@ -438,13 +450,13 @@ Character table (%t) is supported only in ASCII compatibility mode.\n");
- continue;
- }
- while(digit(*p)) p++;
-- if(!iswspace(*p)) error("bad translation format");
-- while(iswspace(*p)) p++;
-+ if(!isspace(*p)) error("bad translation format");
-+ while(isspace(*p)) p++;
- t = p;
- while(*t){
- c = ctrans(&t);
- if(ctable[(unsigned)c]){
-- if (iswprint(c))
-+ if (isprint(c))
- warning("Character '%lc' used twice",c);
-
- else
-@@ -485,8 +497,12 @@ Character table (%t) is supported only in ASCII compatibility mode.\n");
- while(getl(p) && scomp(p, L_PctCbr) != 0)
- if(p[0]=='/' && p[1]=='*')
- cpycom(p);
-- else
-- fprintf(fout,"%ls\n",p);
-+ else {
-+ char p2[100];
-+ wstrcpy(p2, p);
-+ fprintf(fout,"%ls\n",p2);
-+ memset(p2, 0, sizeof p2);
-+ }
- if(p[0] == '%') continue;
- if (*p) error("EOF before %%%%");
- else error("EOF before %%}");
-@@ -501,12 +517,12 @@ Character table (%t) is supported only in ASCII compatibility mode.\n");
- start:
- lgate();
-
-- while(*p && !iswspace(*p) && ((*p) != (wchar_t)',')) p++;
-+ while(*p && !isspace(*p) && ((*p) != (wchar_t)',')) p++;
- n = TRUE;
- while(n){
-- while(*p && (iswspace(*p) || ((*p) == (wchar_t)','))) p++;
-+ while(*p && (isspace(*p) || ((*p) == (wchar_t)','))) p++;
- t = p;
-- while(*p && !iswspace(*p) && ((*p) != (wchar_t)',')) {
-+ while(*p && !isspace(*p) && ((*p) != (wchar_t)',')) {
- if(!isascii(*p))
- error("None-ASCII characters in start condition.");
- p++;
-@@ -516,7 +532,10 @@ start:
- if (*t == 0) continue;
- i = sptr*2;
- if(!ratfor)fprintf(fout,"# ");
-- fprintf(fout,"define %ls %d\n",t,i);
-+ char t2[100];
-+ wstrcpy(t2, t);
-+ fprintf(fout,"define %ls %d\n",t2,i);
-+ memset(t2, 0, sizeof t2);
- scopy(t,sp);
- sname[sptr] = sp;
- /* XCU4: save exclusive flag with start name */
-@@ -537,14 +556,20 @@ start:
- case ' ': case '\t': /* must be code */
- lgate();
- if( p[1]=='/' && p[2]=='*' ) cpycom(p);
-- else fprintf(fout, "%ls\n",p);
-+
-+ else {
-+ char p2[100];
-+ wstrcpy(p2, p);
-+ fprintf(fout, "%ls\n",p2);
-+ memset(p2, 0, sizeof p2);
-+ }
- continue;
- case '/': /* look for comments */
- lgate();
- if((*(p+1))=='*') cpycom(p);
- /* FALLTHRU */
- default: /* definition */
-- while(*p && !iswspace(*p)) p++;
-+ while(*p && !isspace(*p)) p++;
- if(*p == 0)
- continue;
- prev = *p;
-@@ -557,7 +582,7 @@ start:
- }
- } else { /* still sect 1, but prev != '\n' */
- p = bptr;
-- while(*p && iswspace(*p)) p++;
-+ while(*p && isspace(*p)) p++;
- if(*p == 0)
- warning("No translation given - null string assumed");
- scopy(p,token);
-@@ -632,8 +657,11 @@ start:
- while(!eof&& getl(buf) && scomp(L_PctCbr,buf)!=0)
- if(buf[0]=='/' && buf[1]=='*')
- cpycom(buf);
-- else
-- fprintf(fout,"%ls\n",buf);
-+ else {
-+ char buf2[100];
-+ wstrcpy(buf2, p);
-+ fprintf(fout,"%ls\n",buf2);
-+ }
- continue;
- }
- if(peek == '%'){
-@@ -944,9 +972,16 @@ Character range specified between different codesets.");
- else
- fprintf(fout,
- "\n# line %d \"%s\"\n", yyline-1, sargv[optind]);
-- fprintf(fout,"%ls\n",buf);
-- while(getl(buf) && !eof)
-- fprintf(fout,"%ls\n",buf);
-+ char buf2[100];
-+ wstrcpy(buf2, buf);
-+ fprintf(fout,"%ls\n",buf2);
-+ memset(buf2, 0, sizeof buf2);
-+ while(getl(buf) && !eof) {
-+ wstrcpy(buf2, buf);
-+ fprintf(fout,"%ls\n",buf2);
-+ memset(buf2, 0, sizeof buf2);
-+ }
-+ memset(buf2, 0, sizeof buf2);
- }
-
- return(freturn(0));
-diff --git lex/reject.c lex/reject.c
-index 31928e7..ef08c57 100644
---- lex/reject.c
-+++ lex/reject.c
-@@ -38,7 +38,6 @@
- #include <euc.h>
- #include <widec.h>
- #else /* !sun */
--#include <wchar.h>
- #endif /* !sun */
- #include <limits.h>
- #endif
-diff --git lex/sub1.c lex/sub1.c
-index b867948..eead84b 100644
---- lex/sub1.c
-+++ lex/sub1.c
-@@ -38,7 +38,6 @@
-
- #include "ldefs.c"
- #include <limits.h>
--#include <wchar.h>
- #include <ctype.h>
- #include <stdarg.h>
-
-@@ -394,6 +393,19 @@ cclinter(int sw)
- }
- }
-
-+int
-+mbtowc(wchar_t *pwc, const char *s, size_t n)
-+{
-+ if (s != 0) {
-+ if (n < 1)
-+ return -1;
-+ if (pwc != 0)
-+ *pwc = *s & 0377;
-+ return *s != '\0';
-+ } else
-+ return 0;
-+}
-+
- int
- usescape(int c)
- {
-@@ -546,7 +558,7 @@ cpyact(void)
- break;
- case ';':
- if (brac == 0) {
-- putwc(c, fout);
-+ putc(c, fout);
- putc('\n', fout);
- return (1);
- }
-@@ -558,26 +570,26 @@ cpyact(void)
- case '}':
- brac--;
- if (brac == 0) {
-- putwc(c, fout);
-+ putc(c, fout);
- putc('\n', fout);
- return (1);
- }
- break;
- case '/':
-- putwc(c, fout);
-+ putc(c, fout);
- c = gch();
- if (c != '*')
- goto swt;
-- putwc(c, fout);
-+ putc(c, fout);
- savline = yyline;
- while (c = gch()) {
- while (c == '*') {
-- putwc(c, fout);
-+ putc(c, fout);
- if ((c = gch()) == '/') {
- putc('/', fout);
- while ((c = gch()) == ' ' ||
- c == '\t' || c == '\n')
-- putwc(c, fout);
-+ putc(c, fout);
- goto swt;
- }
- }
-@@ -590,16 +602,16 @@ cpyact(void)
- case '\'': /* character constant */
- case '"': /* character string */
- mth = c;
-- putwc(c, fout);
-+ putc(c, fout);
- while (c = gch()) {
- if (c == '\\') {
-- putwc(c, fout);
-+ putc(c, fout);
- c = gch();
- }
- else
- if (c == mth)
- goto loop;
-- putwc(c, fout);
-+ putc(c, fout);
- if (c == '\n') {
- yyline--;
- error(
-@@ -620,7 +632,7 @@ cpyact(void)
- loop:
- if (c != ' ' && c != '\t' && c != '\n')
- sw = FALSE;
-- putwc(c, fout);
-+ putc(c, fout);
- if (peek == '\n' && !brac && copy_line) {
- putc('\n', fout);
- return (1);
-@@ -636,7 +648,7 @@ gch(void)
- int c;
- prev = pres;
- c = pres = peek;
-- peek = pushptr > pushc ? *--pushptr : getwc(fin);
-+ peek = pushptr > pushc ? *--pushptr : getc(fin);
- while (peek == EOF) {
- if (no_input) {
- if (!yyline)
-@@ -650,7 +662,7 @@ gch(void)
- if (fin == NULL)
- error("Cannot open file -- %s",
- sargv[optind]);
-- peek = getwc(fin);
-+ peek = getc(fin);
- } else
- break;
- } else {
-@@ -856,11 +868,11 @@ allprint(CHR c)
- printf("\\_");
- break;
- default:
-- if (!iswprint(c)) {
-+ if (!isprint(c)) {
- printf("\\x%-2x", c); /* up to fashion. */
- charc += 3;
- } else
-- putwc(c, stdout);
-+ putc(c, stdout);
- break;
- }
- charc++;
-@@ -903,7 +915,7 @@ sect1dump(void)
- allprint(i);
- putchar(' ');
- iswprint(ctable[i]) ?
-- putwc(ctable[i], stdout) :
-+ putc(ctable[i], stdout) :
- printf("%d", ctable[i]);
- putchar('\n');
- }
-diff --git lex/sub3.c lex/sub3.c
-index 186bcbc..aa07f66 100644
---- lex/sub3.c
-+++ lex/sub3.c
-@@ -147,7 +147,7 @@ remch(wchar_t c)
- */
- if (!handleeuc) {
- if (!isascii(c))
-- if (iswprint(c))
-+ if (isprint(c))
- warning(
- "Non-ASCII character '%lc' in pattern; use -w or -e lex option.", c);
- else warning(
---
-2.26.2
-
diff --git a/steps/heirloom-devtools-070527/patches/yacc_remove_wchar.patch b/steps/heirloom-devtools-070527/patches/yacc_remove_wchar.patch
@@ -1,1160 +0,0 @@
-SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
-SPDX-FileCopyrightText: 2021 fosslinux <fosslinux@aussies.space>
-SPDX-FileCopyrightText: 2023 Emily Trau <emily@downunderctf.com>
-
-SPDX-License-Identifier: CDDL-1.0
-
-Remove all kinds of wchar support. Mes Libc does not support wchar in any form,
-so we need to remove it.
-
-heirloom-devtools is all kinds of broken in this way. C standard dictates that
-wchar_t may be defined as char, however heirloom-devtools does not respect this,
-which makes this non-trivial.
-
-diff -U3 -r yacc/dextern yacc/dextern
---- yacc/dextern 2005-11-10 20:31:45.000000000 +0000
-+++ yacc/dextern 2021-01-25 18:21:45.286602527 +0000
-@@ -39,7 +39,6 @@
- #include <ctype.h>
- #include <string.h>
- #include <stdlib.h>
--#include <wctype.h>
-
- /* MANIFEST CONSTANT DEFINITIONS */
- #define WORD32
-@@ -166,17 +165,17 @@
- } ITEM;
-
- typedef struct toksymb {
-- wchar_t *name;
-+ char *name;
- int value;
- } TOKSYMB;
-
- typedef struct mbclit {
-- wchar_t character;
-+ char character;
- int tvalue; /* token issued for the character */
- } MBCLIT;
-
- typedef struct ntsymb {
-- wchar_t *name;
-+ char *name;
- int tvalue;
- } NTSYMB;
-
-@@ -212,7 +211,7 @@
- extern int nprod; /* number of productions */
- extern int **prdptr; /* pointers to descriptions of productions */
- extern int *levprd; /* contains production levels to break conflicts */
--extern wchar_t *had_act; /* set if reduction has associated action code */
-+extern char *had_act; /* set if reduction has associated action code */
-
- /* state information */
-
-@@ -273,24 +272,15 @@
- extern void go2out(void);
- extern void hideprod(void);
- extern void callopt(void);
--extern void warray(wchar_t *, int *, int);
--extern wchar_t *symnam(int);
--extern wchar_t *writem(int *);
-+extern void warray(char *, int *, int);
-+extern char *symnam(int);
-+extern char *writem(int *);
- extern void exp_mem(int);
- extern void exp_act(int **);
- extern int apack(int *, int);
- extern int state(int);
--extern void fprintf3(FILE *, const char *, const wchar_t *, const char *, ...);
--extern void error3(const char *, const wchar_t *, const char *, ...);
--
-- /* multibyte i/o */
--
--#undef getwc
--#define getwc(f) yacc_getwc(f)
--extern wint_t yacc_getwc(FILE *);
--#undef putwc
--#define putwc(c, f) yacc_putwc(c, f)
--extern wint_t yacc_putwc(wchar_t, FILE *);
-+extern void fprintf3(FILE *, const char *, const char *, const char *, ...);
-+extern void error3(const char *, const char *, const char *, ...);
-
- /* yaccpar location */
-
-diff -U3 -r yacc/y1.c yacc/y1.c
---- yacc/y1.c 2005-11-26 17:37:56.000000000 +0000
-+++ yacc/y1.c 2021-01-25 18:02:31.251542365 +0000
-@@ -41,12 +41,11 @@
- #include <unistd.h>
- #include <locale.h>
- #include <stdarg.h> /* For error() */
--#include <wchar.h>
-
- static void mktbls(void);
- static void others(void);
- static void summary(void);
--static wchar_t *chcopy(wchar_t *, wchar_t *);
-+static char *chcopy(char *, char *);
- static int setunion(int *, int *);
- static void prlook(LOOKSETS *);
- static void cpres(void);
-@@ -229,13 +228,13 @@
- if (finput == NULL)
- error("cannot find parser %s", parser);
-
-- warray(L"yyr1", levprd, nprod);
-+ warray("yyr1", levprd, nprod);
-
- aryfil(temp1, nprod, 0);
- /* had_act[i] is either 1 or 0 */
- PLOOP(1, i)
- temp1[i] = ((prdptr[i+1] - prdptr[i]-2) << 1) | had_act[i];
-- warray(L"yyr2", temp1, nprod);
-+ warray("yyr2", temp1, nprod);
-
- aryfil(temp1, nstate, -10000000);
- TLOOP(i)
-@@ -244,14 +243,14 @@
- NTLOOP(i)
- for (j = ntstates[i]; j != 0; j = mstates[j])
- temp1[j] = -i;
-- warray(L"yychk", temp1, nstate);
-+ warray("yychk", temp1, nstate);
-
-- warray(L"yydef", defact, nstate);
-+ warray("yydef", defact, nstate);
-
- if ((fdebug = fopen(DEBUGNAME, "r")) == NULL)
- error("cannot open yacc.debug");
-- while ((c = getwc(fdebug)) != EOF)
-- putwc(c, ftable);
-+ while ((c = getc(fdebug)) != EOF)
-+ putc(c, ftable);
- fclose(fdebug);
- ZAPFILE(DEBUGNAME);
-
-@@ -259,19 +258,19 @@
- fprintf(ftable, "# line\t1 \"%s\"\n", parser);
- tmpline = 1;
- /* copy parser text */
-- while ((c = getwc(finput)) != EOF) {
-+ while ((c = getc(finput)) != EOF) {
- if (c == '\n')
- tmpline++;
- if (c == L'$') {
-- if ((c = getwc(finput)) != L'A')
-- putwc(L'$', ftable);
-+ if ((c = getc(finput)) != L'A')
-+ putc(L'$', ftable);
- else { /* copy actions */
- tmpline++;
- faction = fopen(ACTNAME, "r");
- if (faction == NULL)
- error("cannot open action tempfile");
-- while ((c = getwc(faction)) != EOF)
-- putwc(c, ftable);
-+ while ((c = getc(faction)) != EOF)
-+ putc(c, ftable);
- fclose(faction);
- if (gen_lines)
- fprintf(ftable,
-@@ -279,18 +278,18 @@
- tmpline,
- parser);
- ZAPFILE(ACTNAME);
-- c = getwc(finput);
-+ c = getc(finput);
- }
- }
-- putwc(c, ftable);
-+ putc(c, ftable);
- }
- fclose(ftable);
- }
-
-
- /* copies string q into p, returning next free char ptr */
--static wchar_t *
--chcopy(wchar_t *p, wchar_t *q)
-+static char *
-+chcopy(char *p, char *q)
- {
- while (*p = *q++)
- ++p;
-@@ -299,16 +298,16 @@
-
- #define ISIZE 400
- /* creates output string for item pointed to by pp */
--wchar_t *
-+char *
- writem(int *pp)
- {
- int i, *p;
- static int isize = ISIZE;
-- static wchar_t *sarr = NULL;
-- wchar_t *q;
-+ static char *sarr = NULL;
-+ char *q;
-
- if (sarr == NULL) {
-- sarr = malloc(sizeof (wchar_t) * isize);
-+ sarr = malloc(sizeof (char) * isize);
- if (sarr == NULL)
- error("could not allocate output string array");
- for (i = 0; i < isize; ++i)
-@@ -317,7 +316,7 @@
- for (p = pp; *p > 0; ++p) /* EMPTY */;
- p = prdptr[-*p];
- q = chcopy(sarr, nontrst[*p-NTBASE].name);
-- q = chcopy(q, L" : ");
-+ q = chcopy(q, " : ");
-
- for (;;) {
- *q++ = ++p == pp ? L'_' : L' ';
-@@ -326,7 +325,7 @@
- break;
- q = chcopy(q, symnam(i));
- while (q > &sarr[isize-30]) {
-- static wchar_t *sarrbase;
-+ static char *sarrbase;
-
- sarrbase = sarr;
- isize += ISIZE;
-@@ -339,17 +338,17 @@
-
- /* an item calling for a reduction */
- if ((i = *pp) < 0) {
-- q = chcopy(q, L" (");
-- swprintf(q, q + isize - sarr, L"%d)", -i);
-+ q = chcopy(q, " (");
-+ snprintf(q, q + isize - sarr, "%d)", -i);
- }
- return (sarr);
- }
-
- /* return a pointer to the name of symbol i */
--wchar_t *
-+char *
- symnam(int i)
- {
-- wchar_t *cp;
-+ char *cp;
-
- cp = (i >= NTBASE) ? nontrst[i-NTBASE].name : tokset[i].name;
- if (*cp == L' ')
-diff -U3 -r yacc/y2.c yacc/y2.c
---- yacc/y2.c 2005-11-26 17:39:44.000000000 +0000
-+++ yacc/y2.c 2021-01-25 19:02:52.472120036 +0000
-@@ -35,9 +35,9 @@
- * Sccsid @(#)y2.c 1.11 (gritter) 11/26/05
- */
-
-+#include <getopt.h>
- #include "dextern"
- #include "sgs.h"
--#include <wchar.h>
- #include <unistd.h>
- #define IDENTIFIER 257
-
-@@ -66,17 +66,17 @@
- char *infile; /* input file name */
- static int numbval; /* value of an input number */
- static int toksize = NAMESIZE;
--static wchar_t *tokname; /* input token name */
-+static char *tokname; /* input token name */
- char *parser = NULL; /* location of common parser */
-
- static void finact(void);
--static wchar_t *cstash(wchar_t *);
-+static char *cstash(char *);
- static void defout(void);
- static void cpyunion(void);
- static void cpycode(void);
- static void cpyact(int);
--static void lhsfill(wchar_t *);
--static void rhsfill(wchar_t *);
-+static void lhsfill(char *);
-+static void rhsfill(char *);
- static void lrprnt(void);
- static void beg_debug(void);
- static void end_toks(void);
-@@ -85,9 +85,9 @@
- static void exp_prod(void);
- static void exp_ntok(void);
- static void exp_nonterm(void);
--static int defin(int, wchar_t *);
-+static int defin(int, char *);
- static int gettok(void);
--static int chfind(int, wchar_t *);
-+static int chfind(int, char *);
- static int skipcom(void);
- static int findchtok(int);
- static void put_prefix_define(char *);
-@@ -101,11 +101,11 @@
- * points to initial block - more space
- * is allocated as needed.
- */
--static wchar_t cnamesblk0[CNAMSZ];
--static wchar_t *cnames = cnamesblk0;
-+static char cnamesblk0[CNAMSZ];
-+static char *cnames = cnamesblk0;
-
- /* place where next name is to be put in */
--static wchar_t *cnamp = cnamesblk0;
-+static char *cnamp = cnamesblk0;
-
- /* number of defined symbols output */
- static int ndefout = 3;
-@@ -113,7 +113,7 @@
- /* storage of types */
- static int defunion = 0; /* union of types defined? */
- static int ntypes = 0; /* number of types defined */
--static wchar_t *typeset[NTYPES]; /* pointers to type tags */
-+static char *typeset[NTYPES]; /* pointers to type tags */
-
- /* symbol tables for tokens and nonterminals */
-
-@@ -143,8 +143,8 @@
-
- /* output string */
-
--static wchar_t *lhstext;
--static wchar_t *rhstext;
-+static char *lhstext;
-+static char *rhstext;
-
- /* storage for grammar rules */
-
-@@ -158,7 +158,7 @@
-
- int **prdptr;
- int *levprd;
--wchar_t *had_act;
-+char *had_act;
-
- /* flag for generating the # line's default is yes */
- int gen_lines = 1;
-@@ -181,7 +181,7 @@
- int c;
- int *p;
- char *cp;
-- wchar_t actname[8];
-+ char actname[8];
- unsigned int options = 0;
- char *file_prefix = DEFAULT_PREFIX;
- char *sym_prefix = "";
-@@ -192,16 +192,16 @@
- fdefine = NULL;
- i = 1;
-
-- tokname = malloc(sizeof (wchar_t) * toksize);
-+ tokname = malloc(sizeof (char) * toksize);
- tokset = malloc(sizeof (TOKSYMB) * ntoksz);
- toklev = malloc(sizeof (int) * ntoksz);
- nontrst = malloc(sizeof (NTSYMB) * nnontersz);
- mem0 = malloc(sizeof (int) * new_memsize);
- prdptr = malloc(sizeof (int *) * (nprodsz+2));
- levprd = malloc(sizeof (int) * (nprodsz+2));
-- had_act = calloc(nprodsz + 2, sizeof (wchar_t));
-- lhstext = malloc(sizeof (wchar_t) * LHS_TEXT_LEN);
-- rhstext = malloc(sizeof (wchar_t) * RHS_TEXT_LEN);
-+ had_act = calloc(nprodsz + 2, sizeof (char));
-+ lhstext = malloc(sizeof (char) * LHS_TEXT_LEN);
-+ rhstext = malloc(sizeof (char) * RHS_TEXT_LEN);
- aryfil(toklev, ntoksz, 0);
- aryfil(levprd, nprodsz, 0);
- for (ii = 0; ii < ntoksz; ++ii)
-@@ -307,10 +307,10 @@
-
- lineno = 1;
- cnamp = cnames;
-- defin(0, L"$end");
-+ defin(0, "$end");
- extval = 0400;
-- defin(0, L"error");
-- defin(1, L"$accept");
-+ defin(0, "error");
-+ defin(1, "$accept");
- mem = mem0;
- lev = 0;
- ty = 0;
-@@ -588,7 +588,7 @@
- /* process a rule */
-
- if (t == L'|') {
-- rhsfill((wchar_t *)0); /* restart fill of rhs */
-+ rhsfill((char *)0); /* restart fill of rhs */
- *mem = *prdptr[nprod-1];
- if (++mem >= &tracemem[new_memsize])
- exp_mem(1);
-@@ -638,8 +638,8 @@
- /* action within rule... */
-
- lrprnt(); /* dump lhs, rhs */
-- swprintf(actname, sizeof actname,
-- L"$$%d", nprod);
-+ snprintf(actname, sizeof actname,
-+ "$$%d", nprod);
- /*
- * make it nonterminal
- */
-@@ -722,8 +722,8 @@
- if (gen_lines)
- fprintf(ftable, "\n# line %d \"%s\"\n",
- lineno, infile);
-- while ((c = getwc(finput)) != EOF)
-- putwc(c, ftable);
-+ while ((c = getc(finput)) != EOF)
-+ putc(c, ftable);
- }
- fclose(finput);
- }
-@@ -736,15 +736,15 @@
- fprintf(ftable, "# define YYERRCODE %d\n", tokset[2].value);
- }
-
--static wchar_t *
-+static char *
- cstash(s)
--register wchar_t *s;
-+register char *s;
- {
-- wchar_t *temp;
-+ char *temp;
- static int used = 0;
- static int used_save = 0;
- static int exp_cname = CNAMSZ;
-- int len = wcslen(s);
-+ int len = strlen(s);
-
- /*
- * 2/29/88 -
-@@ -755,7 +755,7 @@
- exp_cname += CNAMSZ;
- if (!used)
- free(cnames);
-- if ((cnames = malloc(sizeof (wchar_t)*exp_cname)) == NULL)
-+ if ((cnames = malloc(sizeof (char)*exp_cname)) == NULL)
- error("cannot expand string dump");
- cnamp = cnames;
- used = 0;
-@@ -770,7 +770,7 @@
- }
-
- static int
--defin(int t, register wchar_t *s)
-+defin(int t, register char *s)
- {
- /* define s to be a terminal if t=0 or a nonterminal if t=1 */
-
-@@ -820,7 +820,7 @@
- } else if (s[2] <= L'7' && s[2] >= L'0') { /* \nnn sequence */
- int i = 3;
- val = s[2] - L'0';
-- while (iswdigit(s[i]) && i <= 4) {
-+ while (isdigit(s[i]) && i <= 4) {
- if (s[i] >= L'0' && s[i] <= L'7')
- val = val * 8 + s[i] - L'0';
- else
-@@ -831,17 +831,17 @@
- error("illegal \\nnn construction");
- if (val > 255)
- error(
--"\\nnn exceed \\377; use \\xnnnnnnnn for wchar_t value of multibyte char");
-+"\\nnn exceed \\377; use \\xnnnnnnnn for char value of multibyte char");
- if (val == 0 && i >= 4)
- error("'\\000' is illegal");
- } else if (s[2] == L'x') { /* hexadecimal \xnnn sequence */
- int i = 3;
- val = 0;
- warning(1, "\\x is ANSI C hex escape");
-- if (iswxdigit(s[i]))
-- while (iswxdigit(s[i])) {
-+ if (isxdigit(s[i]))
-+ while (isxdigit(s[i])) {
- int tmpval;
-- if (iswdigit(s[i]))
-+ if (isdigit(s[i]))
- tmpval = s[i] - L'0';
- else if (s[i] >= L'a')
- tmpval = s[i] - L'a' + 10;
-@@ -876,7 +876,7 @@
- /* write out the defines (at the end of the declaration section) */
-
- register int i, c;
-- register wchar_t *cp;
-+ register char *cp;
-
- for (i = ndefout; i <= ntokens; ++i) {
-
-@@ -889,8 +889,8 @@
- }
-
- for (; (c = *cp) != 0; ++cp) {
-- if (iswlower(c) || iswupper(c) ||
-- iswdigit(c) || c == L'_') /* EMPTY */;
-+ if (islower(c) || isupper(c) ||
-+ isdigit(c) || c == L'_') /* EMPTY */;
- else
- goto nodef;
- }
-@@ -919,14 +919,14 @@
- reserve = 0;
- lineno += peekline;
- peekline = 0;
-- c = getwc(finput);
-+ c = getc(finput);
- /*
- * while (c == ' ' || c == '\n' || c == '\t' || c == '\f') {
- */
-- while (iswspace(c)) {
-+ while (isspace(c)) {
- if (c == L'\n')
- ++lineno;
-- c = getwc(finput);
-+ c = getc(finput);
- }
- if (c == L'/') { /* skip comment */
- lineno += skipcom();
-@@ -938,11 +938,11 @@
- case EOF:
- return (ENDFILE);
- case L'{':
-- ungetwc(c, finput);
-+ ungetc(c, finput);
- return (L'='); /* action ... */
- case L'<': /* get, and look up, a type name (union member name) */
- i = 0;
-- while ((c = getwc(finput)) != L'>' &&
-+ while ((c = getc(finput)) != L'>' &&
- c != EOF && c != L'\n') {
- tokname[i] = c;
- if (++i >= toksize)
-@@ -954,7 +954,7 @@
- if (i == 0)
- error("missing type name in < ... > clause");
- for (i = 1; i <= ntypes; ++i) {
-- if (!wcscmp(typeset[i], tokname)) {
-+ if (!strcmp(typeset[i], tokname)) {
- numbval = i;
- return (TYPENAME);
- }
-@@ -968,11 +968,11 @@
- tokname[0] = L' ';
- i = 1;
- for (;;) {
-- c = getwc(finput);
-+ c = getc(finput);
- if (c == L'\n' || c == EOF)
- error("illegal or missing ' or \"");
- if (c == L'\\') {
-- c = getwc(finput);
-+ c = getc(finput);
- tokname[i] = L'\\';
- if (++i >= toksize)
- exp_tokname();
-@@ -986,7 +986,7 @@
- case L'%':
- case L'\\':
-
-- switch (c = getwc(finput)) {
-+ switch (c = getc(finput)) {
-
- case L'0': return (TERM);
- case L'<': return (LEFT);
-@@ -1001,81 +1001,81 @@
-
- default:
-
-- if (iswdigit(c)) { /* number */
-+ if (isdigit(c)) { /* number */
- numbval = c - L'0';
- base = (c == L'0') ? 8 : 10;
-- for (c = getwc(finput);
-- iswdigit(c);
-- c = getwc(finput)) {
-+ for (c = getc(finput);
-+ isdigit(c);
-+ c = getc(finput)) {
- numbval = numbval*base + c - L'0';
- }
-- ungetwc(c, finput);
-+ ungetc(c, finput);
- return (NUMBER);
-- } else if (iswlower(c) || iswupper(c) ||
-+ } else if (islower(c) || isupper(c) ||
- c == L'_' || c == L'.' ||
- c == L'$') {
- i = 0;
-- while (iswlower(c) || iswupper(c) ||
-- iswdigit(c) || c == L'_' ||
-+ while (islower(c) || isupper(c) ||
-+ isdigit(c) || c == L'_' ||
- c == L'.' || c == L'$') {
- tokname[i] = c;
-- if (reserve && iswupper(c))
-- tokname[i] = towlower(c);
-+ if (reserve && isupper(c))
-+ tokname[i] = tolower(c);
- if (++i >= toksize)
- exp_tokname();
-- c = getwc(finput);
-+ c = getc(finput);
- }
- }
- else
- return (c);
-
-- ungetwc(c, finput);
-+ ungetc(c, finput);
- }
-
- tokname[i] = 0;
-
- if (reserve) { /* find a reserved word */
-- if (!wcscmp(tokname, L"term"))
-+ if (!strcmp(tokname, "term"))
- return (TERM);
-- if (!wcscmp(tokname, L"token"))
-+ if (!strcmp(tokname, "token"))
- return (TERM);
-- if (!wcscmp(tokname, L"left"))
-+ if (!strcmp(tokname, "left"))
- return (LEFT);
-- if (!wcscmp(tokname, L"nonassoc"))
-+ if (!strcmp(tokname, "nonassoc"))
- return (BINARY);
-- if (!wcscmp(tokname, L"binary"))
-+ if (!strcmp(tokname, "binary"))
- return (BINARY);
-- if (!wcscmp(tokname, L"right"))
-+ if (!strcmp(tokname, "right"))
- return (RIGHT);
-- if (!wcscmp(tokname, L"prec"))
-+ if (!strcmp(tokname, "prec"))
- return (PREC);
-- if (!wcscmp(tokname, L"start"))
-+ if (!strcmp(tokname, "start"))
- return (START);
-- if (!wcscmp(tokname, L"type"))
-+ if (!strcmp(tokname, "type"))
- return (TYPEDEF);
-- if (!wcscmp(tokname, L"union"))
-+ if (!strcmp(tokname, "union"))
- return (UNION);
- error("invalid escape, or illegal reserved word: %ls", tokname);
- }
-
- /* look ahead to distinguish IDENTIFIER from C_IDENTIFIER */
-
-- c = getwc(finput);
-+ c = getc(finput);
- /*
- * while (c == ' ' || c == '\t' || c == '\n' || c == '\f' || c == '/')
- * {
- */
-- while (iswspace(c) || c == L'/') {
-+ while (isspace(c) || c == L'/') {
- if (c == L'\n') {
- ++peekline;
- } else if (c == L'/') { /* look for comments */
- peekline += skipcom();
- }
-- c = getwc(finput);
-+ c = getc(finput);
- }
- if (c == L':')
- return (C_IDENTIFIER);
-- ungetwc(c, finput);
-+ ungetc(c, finput);
- return (IDENTIFIER);
- }
-
-@@ -1096,19 +1096,19 @@
- }
-
- static int
--chfind(int t, register wchar_t *s)
-+chfind(int t, register char *s)
- {
- int i;
-
- if (s[0] == ' ')
- t = 0;
- TLOOP(i) {
-- if (!wcscmp(s, tokset[i].name)) {
-+ if (!strcmp(s, tokset[i].name)) {
- return (i);
- }
- }
- NTLOOP(i) {
-- if (!wcscmp(s, nontrst[i].name)) {
-+ if (!strcmp(s, nontrst[i].name)) {
- return (i + NTBASE);
- }
- }
-@@ -1137,11 +1137,11 @@
-
- level = 0;
- for (;;) {
-- if ((c = getwc(finput)) == EOF)
-+ if ((c = getc(finput)) == EOF)
- error("EOF encountered while processing %%union");
-- putwc(c, ftable);
-+ putc(c, ftable);
- if (fdefine)
-- putwc(c, fdefine);
-+ putc(c, fdefine);
-
- switch (c) {
-
-@@ -1172,29 +1172,29 @@
- /* copies code between \{ and \} */
-
- int c;
-- c = getwc(finput);
-+ c = getc(finput);
- if (c == L'\n') {
-- c = getwc(finput);
-+ c = getc(finput);
- lineno++;
- }
- if (gen_lines)
- fprintf(ftable, "\n# line %d \"%s\"\n", lineno, infile);
- while (c != EOF) {
- if (c == L'\\') {
-- if ((c = getwc(finput)) == L'}')
-+ if ((c = getc(finput)) == L'}')
- return;
- else
-- putwc(L'\\', ftable);
-+ putc(L'\\', ftable);
- } else if (c == L'%') {
-- if ((c = getwc(finput)) == L'}')
-+ if ((c = getc(finput)) == L'}')
- return;
- else
-- putwc(L'%', ftable);
-+ putc(L'%', ftable);
- }
-- putwc(c, ftable);
-+ putc(c, ftable);
- if (c == L'\n')
- ++lineno;
-- c = getwc(finput);
-+ c = getc(finput);
- }
- error("eof before %%}");
- }
-@@ -1207,17 +1207,17 @@
-
- /* skipcom is called after reading a / */
-
-- if (getwc(finput) != L'*')
-+ if (getc(finput) != L'*')
- error("illegal comment");
-- c = getwc(finput);
-+ c = getc(finput);
- while (c != EOF) {
- while (c == L'*') {
-- if ((c = getwc(finput)) == L'/')
-+ if ((c = getc(finput)) == L'/')
- return (i);
- }
- if (c == L'\n')
- ++i;
-- c = getwc(finput);
-+ c = getc(finput);
- }
- error("EOF inside comment");
- /* NOTREACHED */
-@@ -1229,7 +1229,7 @@
- {
- /* copy C action to the next ; or closing } */
- int brac, c, match, i, t, j, s, tok, argument, m;
-- wchar_t id_name[NAMESIZE+1];
-+ char id_name[NAMESIZE+1];
- int id_idx = 0;
-
- if (gen_lines) {
-@@ -1239,12 +1239,12 @@
- brac = 0;
- id_name[0] = 0;
- loop:
-- c = getwc(finput);
-+ c = getc(finput);
- swt:
- switch (c) {
- case L';':
- if (brac == 0) {
-- putwc(c, faction);
-+ putc(c, faction);
- return;
- }
- goto lcopy;
-@@ -1255,13 +1255,13 @@
- s = 1;
- tok = -1;
- argument = 1;
-- while ((c = getwc(finput)) == L' ' || c == L'\t') /* EMPTY */;
-+ while ((c = getc(finput)) == L' ' || c == L'\t') /* EMPTY */;
- if (c == L'<') { /* type description */
-- ungetwc(c, finput);
-+ ungetc(c, finput);
- if (gettok() != TYPENAME)
- error("bad syntax on $<ident> clause");
- tok = numbval;
-- c = getwc(finput);
-+ c = getc(finput);
- }
- if (c == L'$') {
- fprintf(faction, "yyval");
-@@ -1272,10 +1272,10 @@
- }
- goto loop;
- }
-- if (iswalpha(c)) {
-+ if (isalpha(c)) {
- int same = 0;
- int id_sw = 0;
-- ungetwc(c, finput);
-+ ungetc(c, finput);
- if (gettok() != IDENTIFIER)
- error("bad action format");
- /*
-@@ -1290,16 +1290,16 @@
- id_sw = 1;
- else
- id_sw = 0;
-- while ((c = getwc(finput)) == L' ' ||
-+ while ((c = getc(finput)) == L' ' ||
- c == L'\t') /* EMPTY */;
- if (c == L'#') {
-- while ((c = getwc(finput)) == L' ' ||
-+ while ((c = getc(finput)) == L' ' ||
- c == L'\t') /* EMPTY */;
-- if (iswdigit(c)) {
-+ if (isdigit(c)) {
- m = 0;
-- while (iswdigit(c)) {
-+ while (isdigit(c)) {
- m = m*10+c-L'0';
-- c = getwc(finput);
-+ c = getc(finput);
- }
- argument = m;
- } else
-@@ -1339,13 +1339,13 @@
- }
- if (c == '-') {
- s = -s;
-- c = getwc(finput);
-+ c = getc(finput);
- }
-- if (iswdigit(c)) {
-+ if (isdigit(c)) {
- j = 0;
-- while (iswdigit(c)) {
-+ while (isdigit(c)) {
- j = j*10 + c - L'0';
-- c = getwc(finput);
-+ c = getc(finput);
- }
- j = j*s - offset;
- if (j > 0) {
-@@ -1363,51 +1363,51 @@
- }
- goto swt;
- }
-- putwc(L'$', faction);
-+ putc(L'$', faction);
- if (s < 0)
-- putwc(L'-', faction);
-+ putc(L'-', faction);
- goto swt;
- case L'}':
- if (--brac)
- goto lcopy;
-- putwc(c, faction);
-+ putc(c, faction);
- return;
- case L'/': /* look for comments */
-- putwc(c, faction);
-- c = getwc(finput);
-+ putc(c, faction);
-+ c = getc(finput);
- if (c != L'*')
- goto swt;
- /* it really is a comment */
-- putwc(c, faction);
-- c = getwc(finput);
-+ putc(c, faction);
-+ c = getc(finput);
- while (c != EOF) {
- while (c == L'*') {
-- putwc(c, faction);
-- if ((c = getwc(finput)) == L'/')
-+ putc(c, faction);
-+ if ((c = getc(finput)) == L'/')
- goto lcopy;
- }
-- putwc(c, faction);
-+ putc(c, faction);
- if (c == L'\n')
- ++lineno;
-- c = getwc(finput);
-+ c = getc(finput);
- }
- error("EOF inside comment");
- /* FALLTHRU */
- case L'\'': /* character constant */
- case L'"': /* character string */
- match = c;
-- putwc(c, faction);
-- while ((c = getwc(finput)) != EOF) {
-+ putc(c, faction);
-+ while ((c = getc(finput)) != EOF) {
- if (c == L'\\') {
-- putwc(c, faction);
-- c = getwc(finput);
-+ putc(c, faction);
-+ c = getc(finput);
- if (c == L'\n')
- ++lineno;
- } else if (c == match)
- goto lcopy;
- else if (c == L'\n')
- error("newline in string or char. const.");
-- putwc(c, faction);
-+ putc(c, faction);
- }
- error("EOF in string or character constant");
- /* FALLTHRU */
-@@ -1419,7 +1419,7 @@
- goto lcopy;
- }
- lcopy:
-- putwc(c, faction);
-+ putc(c, faction);
- /*
- * Save the possible identifier name.
- * Used to print out a warning message.
-@@ -1434,7 +1434,7 @@
- * If c has a possibility to be a
- * part of identifier, save it.
- */
-- else if (iswalnum(c) || c == L'_') {
-+ else if (isalnum(c) || c == L'_') {
- id_name[id_idx++] = c;
- id_name[id_idx] = 0;
- } else {
-@@ -1446,28 +1446,28 @@
-
- static void
- lhsfill(s) /* new rule, dump old (if exists), restart strings */
--wchar_t *s;
-+char *s;
- {
- static int lhs_len = LHS_TEXT_LEN;
-- int s_lhs = wcslen(s);
-+ int s_lhs = strlen(s);
- if (s_lhs >= lhs_len) {
- lhs_len = s_lhs + 2;
-- lhstext = realloc(lhstext, sizeof (wchar_t)*lhs_len);
-+ lhstext = realloc(lhstext, sizeof (char)*lhs_len);
- if (lhstext == NULL)
- error("couldn't expanded LHS length");
- }
- rhsfill(NULL);
-- wcscpy(lhstext, s); /* don't worry about too long of a name */
-+ strcpy(lhstext, s); /* don't worry about too long of a name */
- }
-
- static void
--rhsfill(wchar_t *s) /* either name or 0 */
-+rhsfill(char *s) /* either name or 0 */
- {
-- static wchar_t *loc; /* next free location in rhstext */
-+ static char *loc; /* next free location in rhstext */
- static int rhs_len = RHS_TEXT_LEN;
- static int used = 0;
-- int s_rhs = (s == NULL ? 0 : wcslen(s));
-- register wchar_t *p;
-+ int s_rhs = (s == NULL ? 0 : strlen(s));
-+ register char *p;
-
- if (!s) /* print out and erase old text */
- {
-@@ -1481,10 +1481,10 @@
-
- used = loc - rhstext;
- if ((s_rhs + 3) >= (rhs_len - used)) {
-- static wchar_t *textbase;
-+ static char *textbase;
- textbase = rhstext;
- rhs_len += s_rhs + RHS_TEXT_LEN;
-- rhstext = realloc(rhstext, sizeof (wchar_t)*rhs_len);
-+ rhstext = realloc(rhstext, sizeof (char)*rhs_len);
- if (rhstext == NULL)
- error("couldn't expanded RHS length");
- loc = loc - textbase + rhstext;
-@@ -1508,15 +1508,15 @@
- static void
- lrprnt (void) /* print out the left and right hand sides */
- {
-- wchar_t *rhs;
-- wchar_t *m_rhs = NULL;
-+ char *rhs;
-+ char *m_rhs = NULL;
-
- if (!*rhstext) /* empty rhs - print usual comment */
-- rhs = L" /* empty */";
-+ rhs = " /* empty */";
- else {
- int idx1; /* tmp idx used to find if there are d_quotes */
- int idx2; /* tmp idx used to generate escaped string */
-- wchar_t *p;
-+ char *p;
- /*
- * Check if there are any double quote in RHS.
- */
-@@ -1525,8 +1525,8 @@
- /*
- * A double quote is found.
- */
-- idx2 = wcslen(rhstext)*2;
-- p = m_rhs = malloc((idx2 + 1)*sizeof (wchar_t));
-+ idx2 = strlen(rhstext)*2;
-+ p = m_rhs = malloc((idx2 + 1)*sizeof (char));
- if (m_rhs == NULL)
- error(
- "Couldn't allocate memory for RHS.");
-@@ -1617,7 +1617,7 @@
- exp_tokname(void)
- {
- toksize += NAMESIZE;
-- tokname = realloc(tokname, sizeof (wchar_t) * toksize);
-+ tokname = realloc(tokname, sizeof (char) * toksize);
- }
-
-
-@@ -1633,7 +1633,7 @@
-
- prdptr = realloc(prdptr, sizeof (int *) * (nprodsz+2));
- levprd = realloc(levprd, sizeof (int) * (nprodsz+2));
-- had_act = realloc(had_act, sizeof (wchar_t) * (nprodsz+2));
-+ had_act = realloc(had_act, sizeof (char) * (nprodsz+2));
- for (i = nprodsz-NPROD; i < nprodsz+2; ++i)
- had_act[i] = 0;
-
-diff -U3 -r yacc/y3.c yacc/y3.c
---- yacc/y3.c 2005-11-26 17:37:56.000000000 +0000
-+++ yacc/y3.c 2021-01-25 19:01:48.390375872 +0000
-@@ -41,7 +41,7 @@
- static void precftn(int, int, int);
- static void wract(int);
- static void wrstate(int);
--static void wdef(wchar_t *, int);
-+static void wdef(char *, int);
- #ifndef NOLIBW
- static void wrmbchars(void);
- #endif /* !NOLIBW */
-@@ -121,7 +121,7 @@
- }
-
- fprintf(ftable, "\t};\n");
-- wdef(L"YYNPROD", nprod);
-+ wdef("YYNPROD", nprod);
- #ifndef NOLIBW
- if (nmbchars > 0) {
- wrmbchars();
-@@ -485,14 +485,14 @@
- }
-
- static void
--wdef(wchar_t *s, int n)
-+wdef(char *s, int n)
- {
- /* output a definition of s to the value n */
- fprintf(ftable, "# define %ls %d\n", s, n);
- }
-
- void
--warray(wchar_t *s, int *v, int n)
-+warray(char *s, int *v, int n)
- {
- register int i;
- fprintf(ftable, "static YYCONST yytabelem %ls[]={\n", s);
-@@ -549,11 +549,11 @@
- wrmbchars(void)
- {
- int i;
-- wdef(L"YYNMBCHARS", nmbchars);
-+ wdef("YYNMBCHARS", nmbchars);
- qsort(mbchars, nmbchars, sizeof (*mbchars),
- (int (*)(const void *, const void *))cmpmbchars);
- fprintf(ftable,
-- "static struct{\n\twchar_t character;"
-+ "static struct{\n\tchar character;"
- "\n\tint tvalue;\n}yymbchars[YYNMBCHARS]={\n");
- for (i = 0; i < nmbchars; ++i) {
- fprintf(ftable, "\t{%#x,%d}",
-diff -U3 -r yacc/y4.c yacc/y4.c
---- yacc/y4.c 2005-11-26 17:37:56.000000000 +0000
-+++ yacc/y4.c 2021-01-25 19:02:06.780876425 +0000
-@@ -36,7 +36,6 @@
- */
-
- #include "dextern"
--#include <wchar.h>
- #include <unistd.h>
- #define NOMORE -1000
-
-@@ -44,7 +43,7 @@
- static void stin(int);
- static void osummary(void);
- static void aoutput(void);
--static void arout(wchar_t *, int *, int);
-+static void arout(char *, int *, int);
- static int nxti(void);
- static int gtnm(void);
-
-@@ -414,13 +413,13 @@
- /* write out the optimized parser */
-
- fprintf(ftable, "# define YYLAST %d\n", maxa-amem + 1);
-- arout(L"yyact", amem, (maxa - amem) + 1);
-- arout(L"yypact", indgo, nstate);
-- arout(L"yypgo", pgo, nnonter + 1);
-+ arout("yyact", amem, (maxa - amem) + 1);
-+ arout("yypact", indgo, nstate);
-+ arout("yypgo", pgo, nnonter + 1);
- }
-
- static void
--arout(wchar_t *s, int *v, int n)
-+arout(char *s, int *v, int n)
- {
- register int i;
-
-@@ -448,8 +447,8 @@
- s = 1;
- val = 0;
-
-- while ((c = getwc(finput)) != EOF) {
-- if (iswdigit(c))
-+ while ((c = getc(finput)) != EOF) {
-+ if (isdigit(c))
- val = val * 10 + c - L'0';
- else if (c == L'-')
- s = -1;
-diff -U3 -r yacc/Makefile.mk yacc/Makefile.mk
---- yacc/Makefile.mk 2007-01-04 23:31:24.000000000 +0000
-+++ yacc/Makefile.mk 2021-01-25 01:25:15.592235579 +0000
-@@ -1,4 +1,4 @@
--YOBJ = y1.o y2.o y3.o y4.o y5.o getopt.o
-+YOBJ = y1.o y2.o y3.o y4.o getopt.o
-
- LOBJ = libmai.o libzer.o
-
diff --git a/steps/manifest b/steps/manifest
@@ -49,7 +49,7 @@ build: tar-1.12
build: sed-4.0.9
build: bzip2-1.0.8
build: coreutils-5.0
-build: heirloom-devtools-070527
+build: byacc-20240109
build: bash-2.05b
improve: setup_repo
improve: update_env
@@ -57,7 +57,6 @@ improve: merged_usr
improve: populate_device_nodes
define: CONSOLES = ( INTERACTIVE == True && CHROOT == False )
improve: open_console ( CONSOLES == True )
-build: flex-2.5.11
build: tcc-0.9.27
improve: musl_libdir
build: musl-1.1.24
@@ -67,8 +66,10 @@ build: tcc-0.9.27
build: sed-4.0.9
build: bzip2-1.0.8
build: m4-1.4.7
+build: heirloom-devtools-070527
+build: flex-2.5.11
build: flex-2.6.4
-uninstall: /usr/bin/yacc
+uninstall: heirloom-devtools-070527
build: bison-3.4.1
build: bison-3.4.1
build: bison-3.4.1