diff --git a/LICENSES/CC0-1.0.txt b/LICENSES/CC0-1.0.txt new file mode 100644 index 0000000..0e259d4 --- /dev/null +++ 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 deleted file mode 100644 index 8d88c97..0000000 --- a/LICENSES/CDDL-1.0.txt +++ /dev/null @@ -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 index 722245a..9f5c0f5 100644 --- 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 index b2bde66..3ac85d5 100644 --- 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 new file mode 100644 index 0000000..78bec8f --- /dev/null +++ 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 new file mode 100644 index 0000000..51f0b0f --- /dev/null +++ b/steps/byacc-20240109/files/Makefile @@ -0,0 +1,98 @@ +# SPDX-FileCopyrightText: 2002-2022 Thomas E. Dickey +# SPDX-FileCopyrightText: 2024 Gábor Stefanik +# +# 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 new file mode 100644 index 0000000..1cfd9bc --- /dev/null +++ b/steps/byacc-20240109/pass1.kaem @@ -0,0 +1,45 @@ +#!/bin/sh + +# SPDX-FileCopyrightText: 2021 Andrius Štikonas +# SPDX-FileCopyrightText: 2021-22 fosslinux +# SPDX-FileCopyrightText: 2024 Gábor Stefanik +# +# 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 new file mode 100644 index 0000000..e080836 --- /dev/null +++ b/steps/byacc-20240109/patches/meslibc.patch @@ -0,0 +1,170 @@ +SPDX-FileCopyrightText: 2024 Gábor Stefanik + +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 new file mode 100644 index 0000000..0667978 --- /dev/null +++ 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 deleted file mode 100755 index 4224455..0000000 --- a/steps/heirloom-devtools-070527/pass1.kaem +++ /dev/null @@ -1,60 +0,0 @@ -#!/bin/sh - -# SPDX-FileCopyrightText: 2021 Andrius Štikonas -# SPDX-FileCopyrightText: 2021-22 fosslinux -# -# 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 new file mode 100644 index 0000000..db9c780 --- /dev/null +++ b/steps/heirloom-devtools-070527/pass1.sh @@ -0,0 +1,21 @@ +#!/bin/sh + +# SPDX-FileCopyrightText: 2021 Andrius Štikonas +# SPDX-FileCopyrightText: 2021-22 fosslinux +# SPDX-FileCopyrightText: 2024 Gábor Stefanik +# +# 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 deleted file mode 100644 index 91b231c..0000000 --- a/steps/heirloom-devtools-070527/patches/lex_remove_wchar.patch +++ /dev/null @@ -1,454 +0,0 @@ -SPDX-FileCopyrightText: 2021 Andrius Štikonas -SPDX-FileCopyrightText: 2021 fosslinux - -SPDX-License-Identifier: CDDL-1.0 - -From 508eb06d40498acf954fc51ecb9171d2ce2236f6 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andrius=20=C5=A0tikonas?= -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 - #include - #endif --#include --#include - - 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 - #endif --#include - - #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 - #include - #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 --#include - #include - #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 - #include - #else /* !sun */ --#include - #endif /* !sun */ - #include - #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 --#include - #include - #include - -@@ -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 deleted file mode 100644 index 8ce6fd5..0000000 --- a/steps/heirloom-devtools-070527/patches/yacc_remove_wchar.patch +++ /dev/null @@ -1,1160 +0,0 @@ -SPDX-FileCopyrightText: 2021 Andrius Štikonas -SPDX-FileCopyrightText: 2021 fosslinux -SPDX-FileCopyrightText: 2023 Emily Trau - -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 - #include - #include --#include - - /* 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 - #include - #include /* For error() */ --#include - - 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 - #include "dextern" - #include "sgs.h" --#include - #include - #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 $ 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 - #include - #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 index ea0077c..05df219 100644 --- 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