Compare commits

...

44 Commits
wip ... master

Author SHA1 Message Date
Andrius Štikonas c22e3dac66 Fix a typo in CFLAGS variable name. 2024-04-28 00:38:38 +01:00
Andrius Štikonas 0e6133eed2
Merge pull request #464 from Googulator/grub-reproducibility
Drop non-reproducible manpage from Grub package
2024-04-20 15:19:09 +01:00
Andrius Štikonas 5052c8ad76 Fix a typo reported by Hagfish. 2024-04-20 11:53:05 +01:00
Andrius Štikonas ca00dd635f
Merge pull request #458 from fosslinux/cleanup_weak_symbols_patch
Remove patch that is no longer needed.
2024-04-19 19:15:21 +01:00
Gábor Stefanik 8c67b9ee9c Drop non-reproducible manpage from Grub package
This embeds the type of the building system's firmware at build time,
causing different checksums on UEFI vs BIOS machines.

Fixes #463
2024-04-19 00:19:29 +02:00
Andrius Štikonas 71253f7f8c Remove patch that is no longer needed.
This fixed some issues with weak symbols but now tcc is properly patched.
2024-04-18 21:28:39 +01:00
Andrius Štikonas 3bbd639937
Merge pull request #461 from fosslinux/update-parts
Update parts.rst
2024-04-17 19:22:50 +01:00
Googulator cd74988efb
fix typos 2024-04-17 02:29:01 +02:00
Googulator 43f31ce543
Update parts.rst 2024-04-17 02:15:05 +02:00
Googulator 85026900ac
Fix formatting of Pythonless build instructions 2024-04-17 00:59:58 +02:00
Googulator 34a72584c1
Update Pythonless bootstrap instructions
* ``pre-network-sources`` is no more
* builder-hex0 stage1 is no longer precompiled, but instead needs to be generated from hex0 code (using POSIX tools or by hand)
2024-04-17 00:58:50 +02:00
Googulator 27b4f1c766
Merge pull request #460 from Googulator/after-extend
Add extension mechanism to execute .sh files dropped in /steps/after
2024-04-17 00:49:53 +02:00
Gábor Stefanik c73d8c9dc1 Add extension mechanism to execute .sh files dropped in /steps/after
These are executed at the end of the bootstrap, if /steps/after exists.
In interactive mode, they run before the interactive prompt is displayed.
2024-04-16 20:53:52 +02:00
Andrius Štikonas 5595a06ad9
Merge pull request #459 from Googulator/script-generator-checksum
Add checksum protection to script-generator
2024-04-16 19:25:45 +01:00
Gábor Stefanik c5eb402eeb Add checksum protection to script-generator 2024-04-16 10:20:39 +02:00
Gábor Stefanik 7f08661b6c Fix a missed amd64 checksum 2024-04-16 10:16:51 +02:00
Andrius Štikonas 0f91a466a1
Merge pull request #356 from Googulator/mes-0.26
Upgrade mes to 0.26
2024-04-16 06:59:39 +01:00
Gábor Stefanik aa3d36b934 Update checksums for x86, amd64 & riscv64
Also, add missing non-x86 checksums for simple-patch.
2024-04-16 00:24:44 +02:00
Gábor Stefanik e08f655cd6 Rebuild pregenerated files in nyacc 2024-04-15 22:11:44 +02:00
Gábor Stefanik c0494d9af8 Fix build of bash with mes-0.26
Since rename.c is now included in meslibc, we need -DHAVE_RENAME.
2024-04-15 22:11:44 +02:00
Gábor Stefanik 70fdbebd9c Upgrade mes to 0.26
This can successfully build a working tcc-mes, but then fails
creating unified-libc.c for subsequent tcc bootstrapping.
2024-04-15 22:11:39 +02:00
Andrius Štikonas 281f6e44d9
Merge pull request #455 from Googulator/linux-openela
Upgrade kernel to 4.14.341-openela
2024-04-15 19:41:59 +01:00
Googulator a5a689c954
Merge pull request #457 from fosslinux/byacc
Move heirloom lex and flex after musl, replace heirloom yacc with byacc
2024-04-15 10:17:13 +02:00
Gábor Stefanik 0c718aeece Update checksums for heirloom yacc -> byacc change 2024-04-15 02:17:59 +02:00
Gábor Stefanik 25443468ee Add files.bootstrapping.world mirrors for all Savannah snapshots 2024-04-15 02:11:05 +02:00
Gábor Stefanik e2a1df94a5 Add licensing information to byacc's makefile
This makefile was included in the byacc distribution as Makefile.old
It was slightly updated to fit our needs.

Berkeley yacc itself is in the public domain, but SPDX/REUSE provides
no good way to represent this. In keeping with that spirit, I chose
CC0 as the license for my modifications, which SPDX can represent.
2024-04-15 01:43:20 +02:00
Gábor Stefanik 02fb689ce1 Move heirloom lex and flex after musl, replace heirloom yacc with byacc
This way, heirloom-devtools is only linked to a libc with a CDDL-compatible
license, making it fully redistributable. Heirloom yacc doesn't work properly
with musl libc, but luckily byacc can do its job just fine, so we only need
heirloom lex now.

Thanks to the more complete libc, and bash being available, heirloom's
bootstrap is significantly simplified.
2024-04-15 01:22:50 +02:00
Gábor Stefanik 6567973a04 Make byacc actually work when compiled against meslibc
This replaces the previous sed hackery with a proper patch, and removes
a few more libc functions that meslibc is missing.
The binary name is changed to "byacc" so it doesn't get overwritten by
heirloom yacc.

The bsearch() replacement code comes from an earlier version of byacc.
2024-04-14 21:14:04 +02:00
Googulator 5ae504cb67
Merge pull request #453 from Googulator/openssl-upgrade
Upgrade OpenSSL to 3.0.13
2024-04-14 06:46:37 +02:00
Gábor Stefanik 3970ee7d1a Add byacc parser generator
This is meant to replace heirloom yacc for compiling pre-musl parsers.
Unlike heirloom yacc, it's in the public domain, and can be linked with
meslibc without licensing concerns.
2024-04-14 05:51:30 +02:00
Gábor Stefanik c75d609cf7 Upgrade kernel to 4.14.341-openela
This is a continuation of the 4.14 series by the Open Enterprise Linux
Alliance, ostensibly to the same maintenance standards as the now
discontinued kernel.org LTS.

This code is primarily offered as a Git repository, with gz tarballs
also available, but no xz versions. Switching back to a gzipped version
of the kernel source code would introduce too much srcfs growth, so we
use the last kernel.org tar.xz release (4.14.336), and apply OpenELA's
changes using a patch generated from the Git repository.
2024-04-14 05:04:24 +02:00
Googulator 29a029947c
Merge pull request #454 from Googulator/source-mirrors
Support multiple mirrors for each source file
2024-04-14 04:12:07 +02:00
Gábor Stefanik 89a4d18ff0 Support multiple mirrors for each source file
If multiple URLs are entered in a sources listing for the same file,
each will be tried in turn, until either one succeeds, or we fail
having run out of mirrors.
2024-04-14 00:17:41 +02:00
Gábor Stefanik 6017ae7a9f Add extra source URL for OpenSSL 3.0.13, to account for it being moved in the future
This will only be useful after #454 is merged.
2024-04-14 00:13:20 +02:00
Gábor Stefanik 637fa823f0 Upgrade OpenSSL to 3.0.13
Fixes #451
2024-04-13 23:43:41 +02:00
Googulator 86e1a5e7f6
Merge pull request #449 from pyy/master
update submodule stage0-posix to latest: updated unxz sources for amd64 aarch64 etc
2024-03-07 17:50:23 +01:00
pyy 5e11d2a592 update submodule stage0-posix to latest: updated unxz sources for amd64 aarch64 etc. 2024-03-07 17:09:31 +01:00
Andrius Štikonas 4737ab7481
Merge pull request #446 from Googulator/qemu-interactive
Use qemu's GUI support in interactive mode
2024-02-28 21:33:50 +00:00
Gábor Stefanik c1c6b278e6 Use qemu's GUI support in interactive mode
Previously, there was no way to access the additional consoles in
qemu mode, due to qemu running in -nographic mode with a serial
console. This is perfectly fine in non-interactive mode, but we can
make interactive mode more usable by using a graphical console like
on bare metal.

Also drop -no-reboot from interactive mode, since rebooting (e.g.
to load a newly compiled kernel) makes sense in this case.
2024-02-25 02:39:43 +01:00
fosslinux 2261098f98
Merge pull request #445 from fosslinux/check-substitutes
Check "substitutes"
2024-02-24 09:37:32 +00:00
fosslinux b80e1f6a57 Ensure that substituted files are equivalent to upstream 2024-02-24 20:36:12 +11:00
fosslinux d6e49c181c
Merge pull request #444 from Googulator/kconfig-update
Update Linux kernel configuration & patches
2024-02-20 10:37:14 +00:00
fosslinux 021574d2a9 Change diffutils-2.7 back to upstream gz tarball
The bz2 tarball we were using is a complete repack of the tarball,
including date & permission modifications. It adds an extra file
RPI-Configure too. This is not optimal as it impedes verification
ability.
2024-02-20 09:53:22 +11:00
Gábor Stefanik 60ec9ea80c Update Linux kernel configuration & patches
This updates the Linux kernel configuration, removing irrelevant
networking-related components, and switching framebuffer drivers to
the DRM-based ones. With this, we can finally bootstrap on systems
with newer NVIDIA cards, which would green screen with the nvidiafb
driver.

KVM is still disabled, see #443 - VIRTUALIZATION is also disabled,
as it's useless without KVM or any other suboption being enabled.

Additionally, we can now drop the bad-asm patch, since our newer
binutils has no problem supporting that syntax, and it doesn't look
quite innocuous to me, removing an offset from a memory access.

The kernel is now built in 2 stages: first, we build vmlinux only,
then, after cleaning up any intermediate .o files (except the ones
needed to build efistub), we convert it to a bzImage. This required
some creative use of the -o option to convince Make not to rebuild
all of the .o files we've just deleted as dependencies.
2024-02-18 17:54:25 +01:00
110 changed files with 16730 additions and 2501 deletions

View File

@ -21,7 +21,7 @@ jobs:
- name: Install pylint
run: sudo pip3 install pylint
- name: pylint
run: pylint rootfs.py lib/utils.py lib/generator.py lib/target.py --disable=duplicate-code
run: pylint rootfs.py lib/utils.py lib/generator.py lib/target.py check_substitutes.py --disable=duplicate-code
shellcheck:
name: Lint shell files
@ -42,3 +42,12 @@ jobs:
run: sudo pip3 install reuse
- name: reuse
run: reuse lint
substitutes:
name: Check validity of substituted tarballs
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v3
- name: Check validity of substitutes
run: ./check_substitutes.py

View File

@ -9,6 +9,6 @@ Source: https://github.com/fosslinux/live-bootstrap
# Copyright: $YEAR $NAME <$CONTACT>
# License: ...
Files: steps/*/sources steps/*/*.checksums steps/SHA256SUMS.pkgs steps/*/simple-patches/* steps/pre-network-sources
Files: steps/*/sources steps/*/*.checksums steps/SHA256SUMS.pkgs steps/*/simple-patches/* seed/*.checksums
Copyright: none
License: MIT

121
LICENSES/CC0-1.0.txt Normal file
View File

@ -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.

View File

@ -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 recipients 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 PARTYS 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 jurisdictions 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.

View File

@ -31,7 +31,7 @@ Without using Python:
metal. (All of this *can* be automated, but not in a trustable way. See
further below.)
a. **chroot:** Create a directory where the chroot will reside, run
``./download-distfiles.sh``, and copy:
``./download-distfiles.sh``, and copy:
* The entire contents of ``seed/stage0-posix`` into that directory.
* All other files in ``seed`` into that directory.
* ``steps/`` and ``distfiles/`` into that directory.
@ -40,16 +40,17 @@ Without using Python:
* Run ``/bootstrap-seeds/POSIX/x86/kaem-optional-seed`` in the chroot.
(Eg, ``chroot rootfs /bootstrap-seeds/POSIX/x86/kaem-optional-seed``).
b. **QEMU:** Create two blank disk images.
* On the first image, write
``seed/stage0-posix/bootstrap-seeds/NATIVE/x86/builder-hex0-x86-stage1.img``
to it, followed by ``kernel-bootstrap/builder-hex0-x86-stage2.hex0``,
followed by zeros padding the disk to the next sector.
* Generate ``builder-hex0-x86-stage1.img`` from hex0 source:
``sed 's/[;#].*$//g' builder-hex0/builder-hex0-x86-stage1-hex0 | xxd -r -p``
* On the first image, write ``builder-hex0-x86-stage1.img`` to it, followed
by ``kernel-bootstrap/builder-hex0-x86-stage2.hex0``, followed by zeros
padding the disk to the next sector.
* distfiles can be obtained using ``./download-distfiles.sh``.
* See the list in part a. For every file within that list, write a line to
the disk ``src <size-of-file> <path-to-file>``, followed by the contents
of the file.
* *Only* copy distfiles listed in ``steps/pre-network-sources`` into
this disk.
* *Only* copy distfiles listed in ``sources`` files for ``build:`` steps
manifested before ``improve: get_network`` into this disk.
* Optionally (if you don't do this, distfiles will be network downloaded):
* On the second image, create an MSDOS partition table and one ext3
partition.

162
check_substitutes.py Executable file
View File

@ -0,0 +1,162 @@
#!/usr/bin/env python3
# SPDX-License-Identifier: GPL-3.0-or-later
#
# SPDX-FileCopyrightText: 2024 fosslinux <fosslinux@aussies.space>
"""Check that substituted files are the same."""
import bz2
import filecmp
import gzip
import itertools
import lzma
import shutil
import tarfile
import tempfile
import sys
import os
from lib.generator import Generator
# Get a temporary directory to work in
working = tempfile.mkdtemp()
# Colour constants
# pylint: disable=too-few-public-methods
class Colors():
"""ANSI Color Codes"""
GREY = "\033[90m"
RED = "\033[91m"
GREEN = "\033[92m"
ORANGE = "\033[91m\033[93m"
YELLOW = "\033[93m"
END = "\033[0m"
def traverse_path(base_root):
"""Takes a path and returns a set of all directories and files in that path."""
all_dirs = set()
all_files = set()
for root, directories, files in os.walk(base_root, topdown=True):
for d in directories:
all_dirs.add(os.path.join(root, d).lstrip(base_root))
for f in files:
all_files.add(os.path.join(root, f).lstrip(base_root))
return (all_dirs, all_files)
class Distfile():
"""Represents one distfile and operations performed on it."""
def __init__(self, i, url):
self.i = i
self.url = url
self.out_file = f"{i}-{os.path.basename(url)}"
self.filepath = ""
def download(self):
"""Downloads the distfile."""
Generator.download_file(self.url, working, self.out_file, silent=True)
self.filepath = os.path.join(working, self.out_file)
def decompress(self):
"""Decompresses the distfile."""
compression = self.out_file.split('.')[-1]
decompress_func = {
"gz": gzip.open,
"tgz": gzip.open,
"bz2": bz2.open,
"xz": lzma.open,
"lzma": lzma.open
}
if compression not in decompress_func:
# No decompression needed
return
# Remove the compression extension
new_path = '.'.join(self.filepath.split('.')[:-1])
# tgz -> .tar
if compression == "tgz":
new_path = f"{new_path}.tar"
# Move the decompressed binary stream to a new file
with decompress_func[compression](self.filepath, 'rb') as fin:
with open(new_path, 'wb') as fout:
shutil.copyfileobj(fin, fout)
self.filepath = new_path
def extract(self):
"""Extracts the distfile."""
# Sanity check
if not tarfile.is_tarfile(self.filepath):
return
out_dir = os.path.join(working, f"{self.i}")
os.mkdir(out_dir)
with tarfile.open(self.filepath, 'r') as f:
f.extractall(path=out_dir)
self.filepath = out_dir
# It makes more sense here to label them d1 and d2 rather than have one be self.
# pylint: disable=no-self-argument
def compare(d1, d2):
"""Compares the distfile to another distfile."""
if not os.path.isdir(d1.filepath):
# Compare files
return filecmp.cmp(d1.filepath, d2.filepath, shallow=False)
if not os.path.isdir(d2.filepath):
# Then, d2 is a file and d1 is a directory
return False
# Otherwise it's two directories
dirnames1, filenames1 = traverse_path(d1.filepath)
dirnames2, filenames2 = traverse_path(d2.filepath)
if dirnames1 != dirnames2:
return False
if filenames1 != filenames2:
return False
return filecmp.cmpfiles(d1.filepath, d2.filepath, filenames1, shallow=False)
def check(*args):
"""Check if a list of distfiles are equivalent."""
notequiv = []
# Find all pairs that are not equivalent
for pair in itertools.combinations(args, 2):
if pair[0].compare(pair[1]):
print(f"{Colors.GREY}DEBUG: {pair[0].url} is equivalent to {pair[1].url}{Colors.END}")
else:
notequiv.append(pair)
# Decompress all, and check again
for d in {y for x in notequiv for y in x}:
d.decompress()
for pair in notequiv.copy():
if pair[0].compare(pair[1]):
# pylint: disable=line-too-long
print(f"{Colors.YELLOW}NOTE: {pair[0].url} is equivalent to {pair[1].url} when decompressed{Colors.END}")
notequiv.remove(pair)
# Extract all, and check again
for d in {y for x in notequiv for y in x}:
d.extract()
has_error = False
for pair in notequiv:
if pair[0].compare(pair[1]):
# pylint: disable=line-too-long
print(f"{Colors.ORANGE}WARN: {pair[0].url} is equivalent to {pair[1].url} when extracted{Colors.END}")
else:
has_error = True
# pylint: disable=line-too-long
print(f"{Colors.RED}ERROR: {pair[0].url} is not equivalent to {pair[1].url}!{Colors.END}")
return has_error
def main():
"""Main function."""
has_error = False
with open("substitutes", 'r', encoding="utf-8") as f:
for line in f.readlines():
urls = line.strip().split(' ')
distfiles = []
for i, url in enumerate(urls):
distfiles.append(Distfile(i, url))
for distfile in distfiles:
distfile.download()
if check(*distfiles):
has_error = True
sys.exit(has_error)
if __name__ == "__main__":
main()

View File

@ -15,8 +15,19 @@ download_source() {
local dest_path="${distfiles}/${fname}"
if ! [ -e "${dest_path}" ]; then
echo "Downloading ${fname}"
curl --fail --location "${url}" --output "${dest_path}"
curl --fail --location "${url}" --output "${dest_path}" || true
fi
}
check_source() {
local distfiles="${1}"
local url="${2}"
local checksum="${3}"
local fname="${4}"
# Default to basename of url if not given
fname="${fname:-$(basename "${url}")}"
local dest_path="${distfiles}/${fname}"
echo "${checksum} ${dest_path}" | sha256sum -c
}
@ -25,6 +36,7 @@ set -e
cd "$(dirname "$(readlink -f "$0")")"
mkdir -p distfiles
# First, try to download anything missing - ignore failing mirrors
for entry in steps/*; do
[ -e "${entry}/sources" ] || continue
@ -35,3 +47,15 @@ for entry in steps/*; do
download_source distfiles ${line}
done < "${entry}/sources"
done
# Then, check if everything has been obtained at least once
for entry in steps/*; do
[ -e "${entry}/sources" ] || continue
# shellcheck disable=SC2162
while read line; do
# This is intentional - we want to split out ${line} into separate arguments.
# shellcheck disable=SC2086
check_source distfiles ${line}
done < "${entry}/sources"
done

View File

@ -12,6 +12,7 @@ import hashlib
import os
import shutil
import tarfile
import traceback
import requests
# pylint: disable=too-many-instance-attributes
@ -274,7 +275,7 @@ When in doubt, try deleting the file in question -- it will be downloaded again
this script the next time")
@staticmethod
def download_file(url, directory, file_name):
def download_file(url, directory, file_name, silent=False):
"""
Download a single source archive.
"""
@ -290,7 +291,8 @@ this script the next time")
"User-Agent": "curl/7.88.1"
}
if not os.path.isfile(abs_file_name):
print(f"Downloading: {file_name}")
if not silent:
print(f"Downloading: {file_name}")
response = requests.get(url, allow_redirects=True, stream=True,
headers=headers, timeout=20)
if response.status_code == 200:
@ -304,7 +306,12 @@ this script the next time")
def get_packages(self):
"""Prepare remaining sources"""
for line in self.source_manifest:
path = self.download_file(line[2], line[1], line[3])
try:
path = self.download_file(line[2], line[1], line[3])
except requests.HTTPError:
print(traceback.format_exc())
for line in self.source_manifest:
path = os.path.join(line[1], line[3])
self.check_file(path, line[0])
@classmethod

275
parts.rst
View File

@ -4,6 +4,7 @@
.. SPDX-FileCopyrightText: 2021 Paul Dersey <pdersey@gmail.com>
.. SPDX-FileCopyrightText: 2021-23 fosslinux <fosslinux@aussies.space>
.. SPDX-FileCopyrightText: 2021 Melg Eight <public.melg8@gmail.com>
.. SPDX-FileCopyrightText: 2024 Gábor Stefanik <netrolller.3d@gmail.com>
.. SPDX-License-Identifier: CC-BY-SA-4.0
@ -152,8 +153,9 @@ mescc-tools-extra
utilities ``cp`` and ``chown``. This allows us to have one unified
directory for our binaries. Furthermore, we also build ``sha256sum``, a
checksumming tool, that we use to ensure reproducibility and authenticity
of generated binaries. We also build initial ``untar``, ``ungz`` and ``unbz2``
utilities to deal with compressed archives.
of generated binaries. We also build initial ``untar``, ``ungz``, ``unxz``
and ``unbz2`` utilities to deal with compressed archives, as well as
``replace``, a trivial search-and-replace program.
live-bootstrap seed
===================
@ -179,8 +181,9 @@ The following directives are supported:
* ``build``, builds a particular package defined in ``steps/``.
* ``improve``, runs a script making a distinct and logical improvement to the
live bootstrap system.
* ``define``, define a variable evaluated from other constants/variables.
* ``define``, defines a variable evaluated from other constants/variables.
* ``jump``, moves into a new rootfs/kernel using a custom script.
* ``uninstall``, removes a previously built package for file.
checksum-transcriber 1.0
========================
@ -196,7 +199,7 @@ simple-patch 1.0
text block given to it, and replacing it with another text block. This is
sufficient for the early patching required before we have full proper GNU patch.
mes 0.25
mes 0.26
========
GNU ``mes`` is a scheme interpreter. It runs the sister project ``mescc``,
@ -209,6 +212,10 @@ to this part:
2. We then use this to recompile the Mes interpreter as well as building
the libc. This second interpreter is faster and less buggy.
The ``mescc`` component depends on the ``nyacc`` parsing library, version 1.00.2.
We use a modified version, 1.00.2-lb1, which incorporates Timothy Sample's
changes required to bootstrap ``mescc`` without relying on pregenerated files.
From this point until musl, we are capable of making non-standard and strange
libraries. All libraries are in ``/usr/lib/mes``, and includes are in
``/usr/include/mes``, as they are incompatible with musl.
@ -243,13 +250,13 @@ using older versions compilable by tinycc. Prior to this point, all tools
have been adapted significantly for the bootstrap; now, we will be using
old tooling instead.
fiwix 1.4.0-lb1
fiwix 1.5.0-lb1
===============
If the kernel bootstrap option is enabled then the Fiwix kernel is built next.
This is a Linux 2.0 clone which is much simpler to understand and build than
Linux. This version of Fiwix is a fork of 1.4.0 that contains many
modifications and enhancements to support live-boostrap.
Linux. This version of Fiwix is an intermediate release on top of 1.5.0 that
contains many modifications and enhancements to support live-boostrap.
lwext4 1.0.0-lb1
================
@ -266,20 +273,6 @@ kexec-fiwix
If the kernel bootstrap option is enabled then a C program `kexec-fiwix` is compiled
and run which places the Fiwix ram drive in memory and launches the Fiwix kernel.
esfu 1.0
========
This is an extremely crippled basic implementation of ``mount`` and ``mknod``.
Sufficient only for the next step.
early_mount_disk
================
When using kernel bootstrap, distfiles from this point exist on an external
disk. Using ``esfu``'s ``mount`` and ``mknod``, we are able to mount this disk.
This is unnecessary when not using kernel bootstrap as everything is done on the
disk.
make 3.82
=========
@ -329,13 +322,15 @@ we skip them.
The ``cp`` in this stage replaces the ``mescc-tools-extra`` ``cp``.
heirloom devtools
=================
byacc 20240109
==============
``lex`` and ``yacc`` from the Heirloom project. The Heirloom project is
a collection of standard UNIX utilities derived from code by Caldera and
Sun. Differently from the analogous utilities from the GNU project, they
can be compiled with a simple ``Makefile``.
The Berkeley Yacc parser generator, a public-domain implementation of the
``yacc`` utility. Differently from the analogous ``bison`` utility from the
GNU project, it can be compiled with a simple ``Makefile``.
Some code is backported from an earlier version of byacc, 20140101, because
of an incompatibility of newer versions with meslibc.
bash 2.05b
==========
@ -346,7 +341,19 @@ kaem, including proper POSIX sh support, globbing, etc.
Bash ships with a bison pre-generated file here which we delete.
Unfortunately, we have not bootstrapped bison but fortunately for us,
heirloom yacc is able to cope here.
Berkeley Yacc is able to cope here.
setup_repo
==========
This is a simple script that sets up the ``/external/repo`` directory to hold
binary tarballs of artifacts built in each step. It also creates ``base.tar.bz2``,
a tarball containing every artifact built before ``setup_repo``, which have no
individual repository tarballs corresponding to them.
From this point on, every package is built and installed into a temporary
directory, packaged from there into a repository tarball, and then installed
onto the live system from the newly built repository tarball.
update_env
==========
@ -354,17 +361,26 @@ update_env
This is a simple script that makes some small updates to the env file that were
not possible when using kaem.
flex 2.5.11
===========
merged_usr
==========
``flex`` is a tool for generating lexers or scanners: programs that
recognize lexical patterns.
Sets up symlinks from folders outside the ``/usr`` hierarchy to the corresponding
``/usr`` ones ("merged-usr" file system layout).
Unfortunately ``flex`` also depends on itself for compiling its own
scanner, so first flex 2.5.11 is compiled, with its scanner definition
manually modified so that it can be processed by lex from the Heirloom
project (the required modifications are mostly syntactical, plus a few
workarounds to avoid some flex advanced features).
populate_device_nodes
=====================
Sets up important device nodes under ``/dev``. These nodes are temporary, as once
the Linux kernel is started, ``devtmpfs`` is used to maintain ``/dev``.
open_console
============
In interactive mode only, sets up an interactive Bash console, accessible by
pressing Ctrl+Alt+F2. Because the early Bash doesn't support true interactive
operation, we emulate it using a REPL. A side effect of this is that after every
command entered, one must press Enter followed by Ctrl+D, rather than just Enter
as with a real interactive shell.
tcc 0.9.27 (patched)
====================
@ -424,6 +440,30 @@ m4 1.4.7
flex 2.6.4 and bison. It allows macros to be defined and files to be
generated from those macros.
heirloom devtools
=================
``lex`` from the Heirloom project. The Heirloom project is a collection
of standard UNIX utilities derived from code by Caldera and Sun.
Differently from the analogous utilities from the GNU project, they can
be compiled with a simple ``Makefile``.
Because issues with the Heirloom version of ``yacc`` compiled against musl,
we continue using Berkeley Yacc together with Heirloom ``lex`` for the next
few steps.
flex 2.5.11
===========
``flex`` is a tool for generating lexers or scanners: programs that
recognize lexical patterns.
Unfortunately ``flex`` also depends on itself for compiling its own
scanner, so first flex 2.5.11 is compiled, with its scanner definition
manually modified so that it can be processed by lex from the Heirloom
project (the required modifications are mostly syntactical, plus a few
workarounds to avoid some flex advanced features).
flex 2.6.4
==========
@ -690,12 +730,19 @@ GCC can build the latest as of the time of writing musl version.
We also don't need any of the TCC patches that we used before.
To accomodate Fiwix, there are patches to avoid syscalls set_thread_area and clone.
Linux headers 5.10.41
=====================
Linux headers 4.14.341-openela
==============================
This gets some headers out of the Linux kernel that are required to use the
kernel ABI, needed for ``util-linux``.
The version of the Linux kernel used comes from the Open Enterprise Linux
Association, who maintain this version as a continuation of the now ended
4.14 LTS release, to the same maintenance standards as the LTS.
Because this isn't directly available as an efficiently compressed tarball,
we start with the final LTS release, version 4.14.336, and apply the
differences using a patch file.
gcc 4.0.4
=========
@ -708,14 +755,13 @@ util-linux 2.19.1
This gives us access to a much less crippled version of ``mount`` and ``mknod``.
The latest version is not used because of autotools/GCC incompatibilities.
move_disk
=========
dhcpcd 10.0.1
=============
In ``kernel-bootstrap`` mode, we have been working off an initramfs for some
things up until now. At this point we are now capable of moving to it entirely,
so we do so.
``dhcpcd`` is a DHCP client daemon, which we later use to obtain an IP address.
Only wired interfaces are supported at the moment.
kbd-1.15
kbd 1.15
========
``kbd`` contains ``loadkeys`` which is required for building the Linux kernel.
@ -755,40 +801,100 @@ kind of soft-restart. It is only built for non-chroot mode, as we only use it
in non-chroot mode. It is used to boot the Linux kernel that will be built next
from the current Linux kernel (when using ``--kernel``).
Linux kernel 4.9.10
===================
clean_sources
=============
A script to remove source tarballs no longer needed for subsequent build steps from
distfiles. This frees space for the Linux kernel build.
clean_artifacts
===============
More space freeing in preparation for the kernel build. This time, we clear out any
artifacts left over from previous builds that weren't packaged in a proper repository
tarball or ``base.tar.bz2``
Linux kernel 4.14.341-openela
=============================
A lot going on here. This is the first (and currently only) time the Linux kernel
is built. Firstly, Linux kernel version 4.9.x is used because newer versions
require much more stringent requirements on the make, GCC, binutils versions.
However, the docs are also wrong, as the latest of the 4.9.x series does not
work with our version of binutils. However, a much earlier 4.9.10 does
(selected arbitrarily, could go newer but did not test), with a small amount
of patching. This is also modern enough for most hardware and to cause few
problems with software built afterwards. Secondly, the linux-libre scripts are used
to deblob the kernel. Every other pregenerated file is appended with ``_shipped``
is built. Firstly, Linux kernel version 4.14.y is used because newer versions
require much more stringent requirements on the make and GCC versions. This is also
modern enough for most hardware and to cause few problems with software built
afterwards. Secondly, since 4.14.y is no longer supported by kernel.org, we use the
last available kernel.org tarball, 4.14.336, and patch it up to 4.14.341-openela,
maintained by the Open Enterprise Linux Association as an ELTS version.
Pregenerated files in the kernel have file names appended with ``_shipped``
so we use a ``find`` command to remove those, which are automatically regenerated.
The kernel config was originally taken from Void Linux, and was then modified
for the requirements of live-bootstrap, including compiler features, drivers,
and removing modules. Modules are unused. They are difficult to transfer to
subsequent systems, and we do not have ``modprobe``.
The linux-libre scripts are no longer used to deblob the kernel, due to undesirable
modifications they make beyond just deblobbing. Instead, the remaining 4 drivers that
ship binary blobs in line with source code are stripped using a patch - neither of
these drivers are relevant to bootstrapping.
The kernel is built in 2 stages:
1. We build ``vmlinux`` and all of its dependencies.
2. After clearing away any unnecessary intermediate files, we build the final
``bzImage`` kernel. This is necessary because the whole build wouldn't fit
in Fiwix's initrd image all at once.
We then kexec to use the new Linux kernel, using ``kexec-tools`` for a Linux
kernel and ``kexec-linux`` for Fiwix.
move_disk
=========
In ``kernel-bootstrap`` mode, we have been working off an initramfs for some
things up until now. At this point we are now capable of moving to it entirely,
so we do so.
finalize_job_count
==================
In ``kernel-bootstrap`` mode, up until this point, we had no multiprocessor
support, and very limited RAM, so all builds used only one thread.
At this point, we allow the full selected thread count to take effect,
speeding up subsequent builds thanks to parallelization.
finalize_fhs
============
Sets up the file system as per the Filesystem Hierarchy Standard (FHS), creating
directories and mounting pseudo-filesystems as necessary.
open_console
============
In interactive mode only, sets up an interactive Bash console, accessible by
pressing Ctrl+Alt+F2, again. This is still the early Bash, requiring Ctrl+D.
swap
====
If enabled in ``bootstrap.cfg``, creates and activates a swap file under the
name ``/swapfile``.
musl 1.2.4
==========
At this point, it is guaranteed that we are running on Linux with thread support,
so we rebuild musl with thread support.
curl 8.5.0
==========
curl 8.5.0 and get_network
==========================
``curl`` is used to download files using various protocols including HTTP and HTTPS.
However, this first build does not support encrypted HTTPS yet. ``curl`` requires
Linux and musl with thread support, which are now available.
Once curl is built, we use dhcpcd to set up networking for downloading subsequent
source packages.
bash 5.2.15
===========
@ -797,6 +903,13 @@ and is built with GNU readline support so it can be used as a fully-featured
interactive shell. ``autoconf-2.69`` is used to regenerate the configure
script and ``bison`` is used to recreate some included generated files.
open_console
============
Now that we have a proper interactive shell available, open another interactive
console (only in interactive mode), this time accessible using Ctrl+Shift+F3, since
Ctrl+Shift+F2 is already occupied by our previous console, running the old Bash.
xz 5.4.1
========
@ -822,10 +935,10 @@ tar 1.34
Newer tar has better support for decompressing .tar.bz2 and .tar.xz archives.
It also deals better with modern tar archives with extra metadata.
coreutils 8.32
coreutils 9.4
==============
We build the latest available coreutils 8.32 which adds needed options to make
We build the latest available coreutils 9.4 which adds needed options to make
results of build metadata reproducible. For example, timestamps are changed with
``touch --no-dereference``.
@ -883,7 +996,7 @@ bison 2.3
This is an older version of bison required for the bison files in perl 5.10.1.
We backwards-bootstrap this from 3.4.1, using 3.4.1 to compile the bison files
in 2.3. This parser works sufficiently well for perl 5.10.5.
in 2.3. This parser works sufficiently well for perl 5.10.1.
bison 3.4.2
===========
@ -919,11 +1032,13 @@ libarchive 3.5.2
``libarchive`` is a C library used to read and write archives.
openssl 1.1.1l
openssl 3.0.13
==============
OpenSSL is a C library for secure communications/cryptography.
We do not use the latest 3.3.0 release because it causes lockups in curl.
curl 8.5.0
==========
@ -975,7 +1090,7 @@ We also add in two patchsets to the compiler;
* one to add support for musl shared library support
* one providing a few compiler flags/features that are required later to build GCC 10
binutils 2.38
binutils 2.41
=============
This version of binutils provides a more comprehensive set of programming tools for
@ -1179,8 +1294,8 @@ Differences to 3.8.16:
* A new generated script ``Lib/re/_casefix.py`` is introduced.
* The ssl module, now unbroken, can be built again.
* Very recent Python versions allow for the use of ``SOURCE_DATE_EPOCH`` to
remove determinism from precompiled Python libraries (``.pyc``). Finally, we
can re-enable compiling of Python modules.
make output of precompiled Python libraries (``.pyc``) deterministic.
Finally, we can re-enable compiling of Python modules.
gcc 10.4.0
==========
@ -1190,14 +1305,14 @@ C/C++ standards available in GCC 4.7. Instead of manually configuring & compilin
every subdirectory, since we now have ``autogen`` available we are able to use
the top-level configure to build the project. We do not use GCC's bootstrap mode,
where GCC is recompiled with itself after being built, since we're just going
to use this GCC to compile GCC 12, it adds build time for little benefit.
to use this GCC to compile GCC 13, it adds build time for little benefit.
binutils 2.38 (pass 2)
binutils 2.41 (pass 2)
======================
We recompile Binutils with the full intended autogen top-level build system,
instead of the subdirectory build system used before. This creates a binutils
that functions completely correctly for the build of GCC 12 (eg, fixes the
that functions completely correctly for the build of GCC 13 (eg, fixes the
mistaken plugin loading support). Other modern features are added, including;
* threaded linking
@ -1281,3 +1396,29 @@ m4 1.4.19
We are in need of a newer version of m4 for some modern software. Attempts to
update m4 1.4.7 earlier in the bootstrap demonstrate some issues with Fiwix,
so we build a newer m4 at the end of the bootstrap instead.
cleanup_filesystem
==================
Remove any remaining loose build artifacts from ``steps``.
If preseeding was used, this step also removes the ``repo-preseeded`` directory.
null_time
=========
If FORCE_TIMESTAMPS is enabled, resets all file times in the file system to the
Unix epoch, to ensure maximum file system reproducibility.
update_checksums
================
If checksum updating is enabled, regenerates SHA256SUMS.pkgs to contain the actual
hashes of the packages just built.
after
=====
At the end of the bootstrap, executes any additional shell scripts placed in the
``/steps/after`` directory (if it exists), opens an interactive console (only in
interactive mode), and finally ensures a clean shutdown of the bootstrap system
(only needed in qemu and on bare metal).

View File

@ -38,7 +38,7 @@ def create_configuration_file(args):
config.write(f"FINAL_JOBS={args.cores}\n")
config.write(f"INTERNAL_CI={args.internal_ci or False}\n")
config.write(f"INTERACTIVE={args.interactive}\n")
config.write(f"BARE_METAL={args.bare_metal}\n")
config.write(f"BARE_METAL={args.bare_metal or (args.qemu and args.interactive)}\n")
if (args.bare_metal or args.qemu) and not args.kernel:
if args.repo or args.external_sources:
config.write("DISK=sdb1\n")
@ -254,7 +254,6 @@ print(shutil.which('chroot'))
'-enable-kvm',
'-m', str(args.qemu_ram) + 'M',
'-smp', str(args.cores),
'-no-reboot',
'-drive', 'file=' + target.get_disk("disk") + ',format=raw'
]
if target.get_disk("external") is not None:
@ -264,17 +263,20 @@ print(shutil.which('chroot'))
arg_list += [
'-nic', 'user,ipv6=off,model=e1000',
'-kernel', args.kernel,
'-nographic',
'-append', 'console=ttyS0 root=/dev/sda1 rootfstype=ext3 init=/init rw'
'-append',
]
run(args.qemu_cmd, *arg_list)
if args.interactive:
arg_list += ['consoleblank=0 earlyprintk=vga root=/dev/sda1 '
'rootfstype=ext3 init=/init rw']
else:
arg_list += ['console=ttyS0 earlycon=uart8250,io,0x3f8,115200n8 '
'root=/dev/sda1 rootfstype=ext3 init=/init rw']
else:
generator.prepare(target, kernel_bootstrap=True, target_size=size)
arg_list = [
'-enable-kvm',
'-m', str(args.qemu_ram) + 'M',
'-smp', str(args.cores),
'-no-reboot',
'-drive', 'file=' + generator.target_dir + '.img' + ',format=raw'
]
if target.get_disk("external") is not None:
@ -283,10 +285,11 @@ print(shutil.which('chroot'))
]
arg_list += [
'-machine', 'kernel-irqchip=split',
'-nic', 'user,ipv6=off,model=e1000',
'-nographic'
'-nic', 'user,ipv6=off,model=e1000'
]
run(args.qemu_cmd, *arg_list)
if not args.interactive:
arg_list += ['-no-reboot', '-nographic']
run(args.qemu_cmd, *arg_list)
if __name__ == "__main__":
main()

View File

@ -11,5 +11,5 @@ set -ex
PATH=/${ARCH_DIR}/bin
catm seed-full.kaem /steps/env seed.kaem
catm seed-full.kaem /steps/bootstrap.cfg /steps/env seed.kaem
kaem --file seed-full.kaem

View File

@ -0,0 +1 @@
1927a357c893d60952616146e788af25e637635b2862650914bf895d27f556a6 script-generator

View File

@ -0,0 +1 @@
1aa31b29ce0999b6a9cace93bc584020ec78059b9ad37d9aa3da9ad6c3d9af59 script-generator

View File

@ -0,0 +1 @@
dc6106dbc02839cdc9e3e2348432242eb6d33d840ab74badfd63c3c9997462b9 script-generator

View File

@ -60,10 +60,16 @@ M2LIBC_PATH=/M2libc
# mes envars
NYACC_PKG=nyacc-1.00.2
MES_PKG=mes-0.25
MES_PKG=mes-0.26
MES_PREFIX=${SRCDIR}/${MES_PKG}/build/${MES_PKG}
GUILE_LOAD_PATH=${MES_PREFIX}/mes/module:${MES_PREFIX}/module:${SRCDIR}/${MES_PKG}/build/${NYACC_PKG}/module
M2-Mesoplanet --architecture ${ARCH} -f script-generator.c -o script-generator
# Checksums
if match x${UPDATE_CHECKSUMS} xTrue; then
sha256sum -o script-generator.${ARCH}.checksums script-generator
else
sha256sum -c script-generator.${ARCH}.checksums
fi
./script-generator /steps/manifest
kaem --file /steps/0.sh

@ -1 +1 @@
Subproject commit 63fd7767db0651b703b8942cfc0c92989a3e4b25
Subproject commit 779e5424d4b55fe9b7faea2285ae8b6486df0433

View File

@ -22,33 +22,33 @@ ef08694bf8e78ffcf56f9c8a63b0f189e301c06f02ab240e15e4c7fe354c2a0d automake-1.7_0
c5807850a377e4bb9aa4121d9781d145bdd80327626a9419630a75ce2c8d9c71 automake-1.9.6_0.tar.bz2
f8a55bf656f950ee3c5cea48af03f552166f6db9926b78c78843f3cc52a6e22d bash-5.2.15_0.tar.bz2
ebc631ee8e9382650005984ec5f3910492ccb6fb2656b4c0af0f4afc16998906 bc-1.07.1_0.tar.bz2
b21f77069ca847268c115b7305da5927acebc59d89e9cd82d8ac416c126f3f0b binutils-2.30_0.tar.bz2
90009c7a2232fce68ad628d6afe1f474d57874462b3ea2c50ab1a3e6c60a5a36 binutils-2.30_0.tar.bz2
da658346866061324b92a6b734561257acfdb981783ad5794d67a0cd56e14e58 binutils-2.41_0.tar.bz2
026447a32ab08a8a5150bab82a2f150af4a2ed90c47cfde631e1460eaed019aa binutils-2.41_1.tar.bz2
f0bb18831983493b82fde53917e8d16c6a380761ac5e71e14769a82193fee788 bison-2.3_0.tar.bz2
76cb8b9752d82afa28789ccd5dcb9fd7ee44b605c2fd0fd5800e88c75f77593e bison-3.4.1_0.tar.bz2
485d20ada934b700460404ceef934788c6e0bd3e3c7be0ac4e8f337909a9e3d9 bison-3.4.1_1.tar.bz2
fcaab66694e70e8780b96e2d0dfd3c913427a741b494f820b595eb9617460e3e bison-3.4.1_2.tar.bz2
e4a3c9466d95c58bb072159da3473d71b40eb069b756acefba293588c4495a6f bison-3.4.1_0.tar.bz2
fd3a3b855c3cbc42d719a0cbbae773d27e0e12b563641124ba2870b7103da1f8 bison-3.4.1_1.tar.bz2
5232f6f8f3864b5827a015ce0414d484bb8aeb9f34ba66ceb7093da0a79561a8 bison-3.4.1_2.tar.bz2
6d5e4debdec03aee096dbcefcad878fb5c6a069f895ee7ade878d9eeb97fb83e bison-3.4.2_0.tar.bz2
ca7403a7503e8f3bb55e6c5bd54571b8c061b11c96e50ee89e006df6011d1518 bzip2-1.0.8_0.tar.bz2
727b0f28369b78f171dce4e227b05cea474dcb638c357387429c125f0d80fbc8 bzip2-1.0.8_0.tar.bz2
543214998317d764595d3dd247a1fb2e0803ad77978b8474bd24d64c161b9530 ca-certificates-3.95_0.tar.bz2
7450bb38caaa633f8c11269fed44eb680c6ba03bb0e19c18fce3b2450f80e358 coreutils-5.0_0.tar.bz2
c95fd8c51c3bfbd4d08a4a50d0033ee85394e6efe4ff82703c050e4dbc4347bf coreutils-6.10_0.tar.bz2
da3a3c7e0e6ce94ccb3d39885bc44207eb94c912b324a4c7669b5a752648b02d coreutils-5.0_0.tar.bz2
56b84ab2035847524d595bb417c2b91c290174965550be321cd3d5d1f77aa2e5 coreutils-6.10_0.tar.bz2
9fa31a4aeaa5132205efb796c8f546c94c1cfef6b5c27e64f6ebe06ca0360e67 coreutils-9.4_0.tar.bz2
abd629e5675196c39dae00afbe23e2116bbd277be1d82214e2ec557a3b03994f curl-8.5.0_0.tar.bz2
a4473a15de63a1d8ed0a9344f81b3926ce2b1324e48c2574b0042a91384aa5c7 curl-8.5.0_1.tar.bz2
db8757b5fe77f56073caa034bfe9b3af6076d7299db966c4348e06f01a34415f curl-8.5.0_1.tar.bz2
9534d834b018343b8335d0ef0b5faff3ee18e4ecbecf43a2a80deb972283f5d6 dhcpcd-10.0.1_0.tar.bz2
abb9f6fe46c57ea809100b71497e04905deaad345d64485532bf6ef7f2a07f2c diffutils-2.7_0.tar.bz2
e6372051f90c40d1f4a5cca2f8930187b363dfc916bcb973c72bca6c0aba3cd5 diffutils-2.7_0.tar.bz2
41e3129b974391fe4ace69914fdef9b0fe72c6f5d87d495750fb89bdd999fa01 diffutils-3.10_0.tar.bz2
bda6afcd3a390a34a57443269a4857ccc470129f7a557981778c145fd841cbd1 dist-3.5-236_0.tar.bz2
26c0835a8b9be115082a2866e906363947528169c7274bd3b82752df77e99f11 e2fsprogs-1.45.7_0.tar.bz2
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
80798628ccb38521f42e1ca1abe4f0244e4b283e6f662cd354ab70e61a9b4675 flex-2.5.11_0.tar.bz2
b3a8d59229289ca5a1de6a24c9c828d2847144f6662e0d5b7f41e7ff6e57abaa flex-2.5.33_0.tar.bz2
57f72a4d1cb89dc1e59af0228fddc0ea97a3588984114f702f142c82aeeef493 flex-2.6.4_0.tar.bz2
f0f1471e4a5ff95749bd655c145311cc03eec80525f2bb0b9b3ac3ff8be29e0b gawk-3.0.4_0.tar.bz2
e10060b55e2378a065cf8590cae17400c8befc6b3bb0cbbb7093f1b9f46ec4cc flex-2.6.4_0.tar.bz2
5619cf9a893902491a9d8a8f8da4d39efb3606d7d0a72cb4aaa9d1ff798b5495 gawk-3.0.4_0.tar.bz2
62e90abe883f6ccd679adf42d00c2c18a9809bbab599411c81b6c4ac4d446452 gawk-5.3.0_0.tar.bz2
6de1c1380026ef9948387e665610185b6014f47a80453177a6c81898c95cbbd3 gc-8.0.4_0.tar.bz2
c99d080cf17ac3f75cbae67095cb76220a92d96d877c92c896a7f05c9c94e92d gcc-10.4.0_0.tar.bz2
@ -59,11 +59,12 @@ c1bf792e90df13bf7a24d3f8ce3939fd96ff61b8117e4dcef75605974f3fcf25 gcc-4.0.4_1.ta
dc67fc1b132fa3945349efe74c5b2197bd0b6babf4d29d2deddd04f09d9af680 gettext-0.21_0.tar.bz2
309282ba840f80b5e10897b1221f3ff3329b9e05b982c788d03652f411974524 gmp-6.2.1_0.tar.bz2
62edfa633f64202b2d29199d11d56a897654a441c7ae39a4d59ca5fe75199f61 gperf-3.1_0.tar.bz2
276e073496931ff7d4caaabb53079412b88de953def88aec966c1f8506293e88 grep-2.4_0.tar.bz2
c1989fc2855dbb0350c4e5b677028306614a9f4b5cb6c01fd459c5e1abf592b9 grep-2.4_0.tar.bz2
8e612afb9a439aa8bf5db0fc2589eec890a6017690412d5c8e88a5838730b42c grep-3.7_0.tar.bz2
8035da0f42b40509a1f68c91164f20fec624cf8b61017aa4e135473e547dddf4 grub-2.06_0.tar.bz2
ed16ffe92f50bca0dac71145adc07c08043837457dee46bb3a5f5d0a6dc99221 grub-2.06_0.tar.bz2
e2a85aad6d51e52c9a30afeed058f95172fde1215f77243549274672990f6237 guile-3.0.9_0.tar.bz2
6585ae3bc8149ec0e3fba766278fa30e2d7f0e7d1b9a9a4a457e0afa15b109c9 gzip-1.13_0.tar.bz2
29a1603101cfbe2660e2d695f5b9c08dc9eefd8e3389405a6530c479e271821b 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
@ -76,49 +77,49 @@ b39826742e236890f3562cdf19492e7ef4224b271f3e75ddeab1f07982b03ebe libffi-3.3_0.t
daae709e98d2df2190d1d13b4e86f7f3fe90fa7a975282fe0bb03289b6539f29 libtool-2.2.4_0.tar.bz2
6cefa575362149620f8008a32c8af54f0198a18bc6ab910bd3cead196c1507d7 libtool-2.4.7_0.tar.bz2
503007bbcddcf4e49d26514c59b4c9501f8b42f0c994a59dfdc388b1ae6b7900 libunistring-0.9.10_0.tar.bz2
05a99e5404bc743570abf514d09a89a719d9443e0e6f196ce92c47a2be774a8a linux-4.14.336_0.tar.bz2
1d88015de1be5416d4794559962c1c700d72b877cc0ce2a47b28b078d11b2075 linux-headers-4.14.336_0.tar.bz2
5787f84a49e1d22560d0398e4f9075d6021017eb2a757697dc2877e7565d0199 linux-4.14.341-openela_0.tar.bz2
c97644d0db5b3de127b048683afee6d31453441d97ba5dea71df5838b13542a4 linux-headers-4.14.341-openela_0.tar.bz2
78b0cf6d9312e53c613186cbddd5f747310f375c1f322f33a6ac33682d2f3389 m4-1.4.19_0.tar.bz2
bd3885a389d3e058081e099850f95aa7938ce1d9b88a187aea6b7196124fbcfe m4-1.4.7_0.tar.bz2
0e3c21b0a1d8ca0c3f74a98ebe268809def62778ff4a486ff20c1d6e8247dc49 m4-1.4.7_0.tar.bz2
e69554b0a77b419ddd5d0a0e418ba4005ecd0f6784c92a6928a0270bd929a098 make-3.82_0.tar.bz2
6d24960d6a987f68a7e0e3abf6edb52d2e0fe4c86f6ba45327e9634dbf7d40b4 make-4.2.1_0.tar.bz2
17cd976bc0f6e897c6fffe43dd7c55d93ce0adadf1b4dc72925b80e2d266519f mpc-1.2.1_0.tar.bz2
98a9f55c01ed375fae21913284e7fa07ff434c0810f34d791f3fbaa1df221302 mpfr-4.1.0_0.tar.bz2
3561678ad3b8ed5a085cdd86baefb18a675c3cecca8e6e8e086b17007e918370 musl-1.1.24_0.tar.bz2
40a35b525f21dce1007e17a3557677d49477df753e715579c37438d5581b0dcd musl-1.1.24_1.tar.bz2
40fc3497fa8cdd96ac338a10e78504c6dc942e7f4fa459550fb953d52bd53aa7 musl-1.1.24_0.tar.bz2
20285055d84ac6106965a9d343ba8ebd19209f62782efb8ed863318c0b7d5e7d musl-1.1.24_1.tar.bz2
d58d85c4be26d90f111f273929a4998d05294fe5aa37c4842d5aecaa593e6079 musl-1.1.24_2.tar.bz2
81f79a0faf58e105c5f12d9f538d3ea7578a3b361e633ab8f47324ec23ec9de6 musl-1.2.4_0.tar.bz2
6dc5e763b747b66f72692c6820d7f46b7f4cf2e2fe05229a1d01c03919c1c936 musl-1.2.4_1.tar.bz2
820203286127e7c22cee9f1b3cff664431f10d14c3f22f00b3e771fd849fd449 musl-1.2.4_2.tar.bz2
a18c4b2e5de2bfe5bb3ee9d360484fcfebad3df042f1859d4aa333dd60f55e56 opendoas-6.8.2_0.tar.bz2
b1acdc394c2dd42f01046480db07da6b0393bf76b198abf099c4877e5e3b869e openssl-1.1.1l_0.tar.bz2
67b536b2f2a6c56e4673e462a3dbe2f42e8a4a5cb0b61b6bc1fdc14adea33f63 openssl-3.0.13_0.tar.bz2
71864d042cdc564b65eab21360902c714e9b43f80a19689c5600589529b267e7 patch-2.7.6_0.tar.bz2
5ae7fe43d62d1064c123d9813017015e5e8d5107d0e70f0199576141416ff81d perl-5.000_0.tar.bz2
4994c55e3832649600f190079bd4779c463478a092b167098b1d00eff3358fbe perl-5.003_0.tar.bz2
287b0a8c0de14a2817e68ab023bfc502a0880d8c34386162351d5ffaf942da70 perl-5.000_0.tar.bz2
9617799cdc9d4be39d31af54b9bcae47941d68416e9cc9c92cbc2ed08785dbc1 perl-5.003_0.tar.bz2
74d64a8af080022432fa94dba449090419d25b103d247710dc0b6102a4ad86a6 perl-5.10.1_0.tar.bz2
c6c3d729cf36b820f9a671130b84c83fd384f38f639be63804e90c3a1f21d3ab perl-5.32.1_0.tar.bz2
101a791b6843b997ec10d5ce6dc32af2637f687772674eb6f1cdc1c8ff836a03 perl-5.6.2_0.tar.bz2
ae6c84e55c2d9bcd7b80bf780ae6921fe890608123c9ba904e1b7d90759ade3d perl5.004-05_0.tar.bz2
8cedd2240bbbd5bca65a1362998ed73884756aa7ff5208226d3fa22c68868052 perl5.005-03_0.tar.bz2
d381e910532061ac97e48ff09906bddbcb0956b37fc47d8c666f56a56b50c589 perl-5.32.1_0.tar.bz2
d63d2fda752759778ae2d0dd08e6c023a81afbfc63ce11db860fc6858ae26c7f perl-5.6.2_0.tar.bz2
c39ab70bce0bd09f013109ad7370085e90d77ef2b55abcfdc922d7832524c9cf perl5.004-05_0.tar.bz2
2ac211ad3cf966dd89434c175970e10699c363b66228abc1642766aeafe2766a perl5.005-03_0.tar.bz2
1b9d4260edf7b2241d10e4c4ad17d0f90047bd4bf42f2487a7133902529e9dfe pkg-config-0.29.2_0.tar.bz2
2f7198009e4d021d52ee4ce86241b4936fb88349c20cc8b6c286261368878c3c python-2.0.1_0.tar.bz2
b5d86ddc98cfbc684b03f1c84c786caaad810d5e4c7be38089f324eb3c276ad9 python-2.0.1_1.tar.bz2
396577cdd0cc61d76420a1771c64156e49e8f9d00430c82feb88ad933b341632 python-2.3.7_0.tar.bz2
2499cb7f10f292c3506fbf1b6a876195179ec98edfe7b8c357140137a1449492 python-2.3.7_1.tar.bz2
2dd06364e281da421a16251fa2258df201efd180461718f5a000012c4b2bdfe5 python-2.5.6_0.tar.bz2
80d8fcaf68c82238ddffb120b62fbc20d58bd9e2416cba080547a9f442e9e229 python-2.5.6_0.tar.bz2
3508248f299b73c50e3607c4c294d40face05170476a5026b0821aed69025863 python-3.1.5_0.tar.bz2
12b1ffc7ec98ba8f807160b93ba69a694d5395567c3bcac1e49e8f8d1d50de43 python-3.1.5_1.tar.bz2
fde3a6af334434b35a8db0711d33c21a96762d09ff912e19638efbdf2dc363c5 python-3.11.1_0.tar.bz2
d6a7d3a109f63cd5ed4feaa772c33e272e570e216346ee90f6ca365d3a951615 python-3.11.1_0.tar.bz2
60b93253a2078f849f81e7e1ed6233e30702f03b1893640eee95671d814f5514 python-3.3.7_0.tar.bz2
da7c8ec579dd225c0d8bee63d95aeeb27ac2d5a60d4eefe298508cbf86bf506c python-3.4.10_0.tar.bz2
4c5c08b237d1c8cfe91d6b8f36d1942bf1e8f114894a228b5969c810ea52b8c3 python-3.8.16_0.tar.bz2
34c51d3df85585a8aee7691b3500a5c3c7442b06a6f57231b76970bdd6e99bf9 sed-4.0.9_0.tar.bz2
af7a8334045fed8bd610b19194c0b46aa670070fc4738c34449ba5e93e49db8a python-3.8.16_0.tar.bz2
c313520567176dd9bf61a271ee56e06a62e944e862f9dc4564d94b7fc884c8f9 sed-4.0.9_0.tar.bz2
e8daec00b2c2de7b18efbec057dc9290eed06668806c6f5a48914d4a5cd95eb4 sed-4.8_0.tar.bz2
ef2f2c791c1ae74f19c98ebcd7edae6ae28bc1d9367cc3a2cdb1ac302a156cb7 shadow-4.14.3_0.tar.bz2
912d8f344104f1322255d6210c7c7e1371413ab530b2c6796e6aa565c74bf647 tar-1.34_0.tar.bz2
1667937d5d646f2bb7ec7ab54a23ddd65a0ae3ca7d5e597f3fbcd5163031d2ef tcc-0.9.27_0.tar.bz2
b20cea098c8ff635a0ce9f99430d7c9a75d081194941ab54dc92dbc8af3776a4 tcc-0.9.27_1.tar.bz2
8e8cc802fccdb907cd74501dccce1ee85ffb0150b33b4719f86d6720f5b09a7a tcc-0.9.27_2.tar.bz2
60e98c09d9135b0150ed52b71cfbb072335741c0954a9b14bbba850c20564036 tcc-0.9.27_0.tar.bz2
e2c9ea82a1ebf2d5d4c937fa837ddb6fc6835395cf03f3207df40c96b6cafcd8 tcc-0.9.27_1.tar.bz2
4860223e6960ce976e6ad59aa90b69c18a1473684bce59ec8a8b36535405792b tcc-0.9.27_2.tar.bz2
d4fe9460ca561fc2f546f9730f19f541b17dac0bcc42eb190abba856588c3593 tcc-0.9.27_3.tar.bz2
50ebaa1d8fcc4a03a43d431eb71e2f435cc8712ae47d400564df3716037d553a texinfo-6.7_0.tar.bz2
59bda6faaa95782154b917a6600cdf932e08cd6bf9388ba40d801baf18e5b454 util-linux-2.19.1_0.tar.bz2

View File

@ -1,4 +1,6 @@
https://github.com/schierlm/gnu-autogen-bootstrapping/archive/refs/tags/autogen-5.18.16-v1.0.1.tar.gz 953ba180b18acff188a0a8700770c7cf2fc97e1683c7b9699a5a748b542ccdd5
https://mirrors.kernel.org/gnu/autogen/rel5.18.16/autogen-5.18.16.tar.xz f8a13466b48faa3ba99fe17a069e71c9ab006d9b1cfabe699f8c60a47d5bb49a
https://git.savannah.gnu.org/cgit/autogen.git/snapshot/autogen-5.18.16.tar.gz 0c04ab2f7ce13c4a1c06c4abc7dfe75312aad89b8b0a1068e5e563787eb56632
https://files.bootstrapping.world/autogen-5.18.16.tar.gz 0c04ab2f7ce13c4a1c06c4abc7dfe75312aad89b8b0a1068e5e563787eb56632
http://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-8f4538a5.tar.gz e207c0bb72093c3a72dde302fcfaa1dbda12a62172d47b73565883a92209ebab
https://files.bootstrapping.world/gnulib-8f4538a5.tar.gz e207c0bb72093c3a72dde302fcfaa1dbda12a62172d47b73565883a92209ebab

View File

@ -1 +1 @@
dd42ffbc30919b13693cbd58536599907d057dc58aabde2b2b1e36ec0475e694 /usr/bin/bash
467552a7875bae2086ba0fa9a8d2a253a158984e27b2e89acf2e3bcec539ad54 /usr/bin/bash

View File

@ -49,6 +49,7 @@ COMMON_CFLAGS = \
-DHAVE_BZERO \
-DHAVE_POSIX_SIGNALS \
-DHAVE_GETCWD \
-DHAVE_RENAME \
-DHAVE_SYS_SIGLIST \
-Dendpwent\(x\)=0 \
-Denable_hostname_completion\(on_or_off\)=0

View File

@ -1,2 +1,3 @@
http://mirrors.kernel.org/gnu/bison/bison-2.3.tar.bz2 b10d7e9e354be72aee4e4911cf19dd27b5c527d4e7200857365b5fcdeea0dffb
http://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-b28236b.tar.gz 0190f28cb155fedd22bf8558c3e8705eed9eacfb7ae29e7508d025a68eb90899
https://files.bootstrapping.world/gnulib-b28236b.tar.gz 0190f28cb155fedd22bf8558c3e8705eed9eacfb7ae29e7508d025a68eb90899

View File

@ -15,7 +15,7 @@ bison: src.a lib.a
%.a: FORCE
set -e ;\
DIR=$(basename $@ .a) ;\
$(MAKE) CC=$(CC) AR=$(AR) CFLAGS=$(CGLAGS) -C $$DIR $@ ;\
$(MAKE) CC=$(CC) AR=$(AR) CFLAGS=$(CFLAGS) -C $$DIR $@ ;\
cp $$DIR/$@ $@
FORCE:

View File

@ -1,2 +1,3 @@
http://mirrors.kernel.org/gnu/bison/bison-3.4.2.tar.xz 27d05534699735dc69e86add5b808d6cb35900ad3fd63fa82e3eb644336abfa0
http://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-672663a.tar.gz 8cced51f89a950472473856f86e88f5daf97a2347756125ccdc8ee907deec570
https://files.bootstrapping.world/gnulib-672663a.tar.gz 8cced51f89a950472473856f86e88f5daf97a2347756125ccdc8ee907deec570

View File

@ -0,0 +1 @@
5a478142a517173180b2030cdd87b5f0f0c077e4b4a152c4b72141febf4d5905 /usr/bin/yacc

View File

@ -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

View File

@ -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

View File

@ -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)
{

View File

@ -0,0 +1 @@
https://invisible-island.net/archives/byacc/byacc-20240109.tgz f2897779017189f1a94757705ef6f6e15dc9208ef079eea7f28abec577e08446

View File

@ -1 +1 @@
d04adf65091f839217b5ae725df01ad9ddeb77e74cd7474b26cf2fa8962ad150 /usr/bin/bzip2
103af2b8cb00efe5ea91266978db548a69cee5883aa6263e1f1b960448065580 /usr/bin/bzip2

View File

@ -1 +1 @@
234d061a727502f3ed3252a1767086a09fda04ee509758fc5852a919e994ca20 /usr/bin/checksum-transcriber
74656fa0cdd15992f7eee5797ecc33d7e65eb0e41acd3c6636cae45e5d3ce35d /usr/bin/checksum-transcriber

View File

@ -1 +1 @@
b6145df4b2a92d5ee75902f4367e7a1a5456a5cef7a2e1365610637b054c477a /usr/bin/checksum-transcriber
394b4651da547ae43b5de818a4bb9843f3872b2dbc022adf3711c991371d4398 /usr/bin/checksum-transcriber

View File

@ -1,61 +1,61 @@
292fcbf47ee383832767bb2bb8b378f96a14dd68725270ae0db5539a94d031f3 /usr/bin/install
a57f7328c2a81bd50fe5c83015406634baa8747211f912c9090e162e70735110 /usr/bin/basename
f2e6cf099ee87d2f4a3b1e62db57075fab98ee3d2d5839ff9e81eb0ac0e37137 /usr/bin/cat
9c77061b24adf9ba42951f8008dc457bcefff17b87d867f09a61f0c96817f083 /usr/bin/chmod
669211c275348cff62c580d96119af225735746c0168edb63492116bf9647bd1 /usr/bin/cksum
5be51d83898d33ffced444433fb977bd576e7bd3c37330f311458502f990083a /usr/bin/cp
e72996b66d573cfb1f27120ade2fd29bc9582e79057d8d43b6081aea510562d4 /usr/bin/csplit
a22cc2f79c70fac946e79fd93551578505c69a76beba68cbebb8d32e323a3e49 /usr/bin/cut
9e2b178412eaa6b8442940b632452d931af50dc8be1c770d47e752248d9fd4ea /usr/bin/dirname
42d8967cdfdd14e9f6f4ad6feb3e899f491ce2dcb6cb62f5160b6bd217bc4a04 /usr/bin/echo
dda7112d7c33fe77486f4336d5d57cc3228ce9a18082332250af2c0be57391b0 /usr/bin/expand
6f32c1383580aa37c9877eaed65090839dd3d12d8868ded3147c1adbdeb9a909 /usr/bin/expr
d8eaa5d9d8e601fdbbe4715e5632a55efa986e691027590ac5905c150d8e4f94 /usr/bin/factor
9f1f38e219d15070ece6229c3f75e40f11e5a3aaf426ee17745b95bb5205c94d /usr/bin/false
98915280c8bad059cfb1bf99636dc69bf33532f7a982bd086d2114e0daa39a76 /usr/bin/fmt
a8f6d99bc641f486ebdbc1bc5adb1b9fa424aceb4d9e0cc62ce08ceb43541c88 /usr/bin/fold
4d215db24218e8b6dfeeea05268477fac56b11651d789a5972945a15ab7b2917 /usr/bin/head
52718fa65c99150a773da13f4b155f8843391219f89d4aa0d5fe1d3cc9cf36b0 /usr/bin/hostname
fc845714f8d461698daaadcd7bb507d4228c09504b886a679c129226727186d0 /usr/bin/id
2fbe6af8f5c01521edacff2d145b8ee392489684e1624157e1e1841aade290a2 /usr/bin/join
ea4e13ec9e2f622600d961be4f41de96251e429e7ed8a881be8fb70c379b80de /usr/bin/kill
5c606a0febaeca39455847b11ea2ad1445cd4bfd40e187e4e3499c23e0dc2d43 /usr/bin/link
52c561306a91197034106b20678da1b06e77228ab77a3ce40639fa1c132d44bc /usr/bin/ln
2d7450a962ffdb434d2061aa36e74aa18e1e3e5d237eb39ccd3851a34a819694 /usr/bin/logname
bb651823aa51315576d30c79c84248577bce2daab9be4cbcaedabdf2aef882a5 /usr/bin/mkfifo
051a8465ba5e34d0f8c84f34f618b2ff059e566bf52d36c572d164762eca3618 /usr/bin/mkdir
50be768057f0284b4b9cc034b990cc739228b96449c1c2062d9d98c778b1d4b5 /usr/bin/mknod
e7c50e668907ce88388f127b2f07aed6dc10ddb6a8c9313f4269ed5b7e923c92 /usr/bin/nl
ae1033bcc79daca95df1feefa3b4d64c0313cc2bf021efcf14760cccc5b42215 /usr/bin/od
79aa11388de19028de66b06ce6e0983ba0d558b146aed51ce293d599fcaec627 /usr/bin/paste
70eb12b8db8550d5b642df34d28f19e76a768a425efccaa8dfaee18c41db1228 /usr/bin/pathchk
1fa81f879efc48472ab093eb82edc429736a10078aecab04d2b2cfb9634b47ef /usr/bin/pr
8913fd449afc122c42b99b89b04428a22e7f07e032eaa530cbd076e611849a23 /usr/bin/printf
b87663d81cc361221e643ca9f064995c7333f7c650f918393c9bb4482d8667e3 /usr/bin/ptx
d31910a5308cfe80f2136677234d515728a06c84f60441f131d2b8dd878ce3aa /usr/bin/pwd
84290d1d0a662ffc8d0ec314bbffa53aaacdae4104d8ba8f9a56d8896e97923b /usr/bin/readlink
55dfb9a4c9c1f4efe74aaceaad37baff1e9f24acea83ac92a7008b703394edd4 /usr/bin/rmdir
fec6d4f310ee0ad79fc76a23ed440b916502bc30af41c4a5e1ed578d2dca91f3 /usr/bin/seq
1d0c39f163aa5029d867a091e5d1963b8e55aec09c33cd99da237df7e5b31e60 /usr/bin/sleep
355ba0b4e1e655cfde75c493d907a68dbe2acf12adec88eaad019f231de1e75b /usr/bin/sort
96ab28039a859a5b78f142aabe75f55b560e340e350751ce3696d02903dfb31f /usr/bin/split
8852646f277cfbb01eff42c903f03248a7e3e9833cf3655c78a34f02687872ee /usr/bin/sum
79b02fef988b77c1e3adee565aa474aec05e522ef4a5fd4635ca9bb6b1e65b6c /usr/bin/tail
91038661556a3c6e91d4f45b41e44388bf62aea5a37abeca3395740344e03890 /usr/bin/tee
0c4517c49db58cd700f588281557514894e5c924bfad5df129a70ff46d4a8dae /usr/bin/tr
2d897818467998063800a4e92c50fa855b090202da11831f87be17665fd44a29 /usr/bin/tsort
f8ca50f4d91ef6233049e2bd68cf6aa05a300a16d9fba2dce2e90e085ab8f401 /usr/bin/unexpand
c8066c50b1a6f654a4cd1adc69e3a7fd58c6fa6ce987617c54b0d2668cb39daf /usr/bin/uniq
93feee6a854be3a733f9e7a4e421e274f0781d235c02421b837fee3134c47897 /usr/bin/unlink
a31f4b48b7517a348b44621e8d572eda835ffcdb7a97f64b1d7e78d67a38c84f /usr/bin/wc
fae709b45aca8b7e4630aa853681b6f1d053135b4a5c8f72477a1e311f1e4616 /usr/bin/whoami
11a17c10d03e56012685851f96145fe8a4701fd4ecbf05bad1c19b92fe97f347 /usr/bin/tac
ceac9200b63c7b8b3cda19ca4e90b7d619c3bbd412834a7cb14ae022e5f05fa2 /usr/bin/test
958a28e582bb69c684f666e2b47b98ff27d3b9a6177549444b85c03aad746c3d /usr/bin/touch
05dc8f5f6d78716f649eb7ad5d355a67b6e133e241efcd0b99d5bd1b3c01b3b1 /usr/bin/true
2203da05ecbf1d8be50e4c9669d78f8c45aa09055e55486322e18f9874cb3b4e /usr/bin/yes
7ec9570369e239d3f295490250fc0d79c32fd6cf2d7d4eb02042c56c67d8bc86 /usr/bin/ls
8323119905c2d42d9aefafb214ae314b7b9103247263328472d909fd794ffe8a /usr/bin/md5sum
e2ed596c2adba6cab2853cea203f66bf5aeee85d3424685acffc567dc417459a /usr/bin/mv
cb67b297e4e4f124f6c0a2a392fb8934ea8c07af4155bd7d49f367b9c77f4719 /usr/bin/rm
b51e023e8e70a8cc6dadaba1a789c5c8c96dc526f224a1e8de44e57aad31ca7a /usr/bin/sha1sum
523b51bf51c379c1dfa2d04b69863c02c31f31d54638a03a399bac71c498e302 /usr/bin/install
0b802f4c74c8a2640c84f7a87f010bccdc9858dc9b2ba438c6d3cc3894c3892a /usr/bin/basename
42a8ccb469ffd7e098626c2bd40d7933904a7d152b6b4aaa83512a7d43c8c026 /usr/bin/cat
0dc7228a05afd6956fec228358e38901e9176c8a01307547364f7f3d7df1ae85 /usr/bin/chmod
99d8f566fe26bf0997b32294cf301b8ac90796b79e7fe274bee19b8e5f4a2f2d /usr/bin/cksum
0a0b5e17e778a50637ae0f496232f742ae3748f137b4abaf78639c4278db5fe9 /usr/bin/cp
44d2c5e2d430998efb6260337a780cb730818be82fc1272da50e1dab2fcfb6a1 /usr/bin/csplit
c985d78e11c8a6140569068fcdb8473aaf81dee6a5d5e412bd47f9ae14c0aa8e /usr/bin/cut
7725e05029dd5537c673ca9f8662a70044202f5cce6267c6bbfa8b1bddb9a3e3 /usr/bin/dirname
95a6849907b9baf30168589ba2cfba2e08e760e2624962d8b5abf11f20662dd4 /usr/bin/echo
948341073b85442d6c00bef62360e810219189f2e0ae06b15bf512c9ad5586f6 /usr/bin/expand
ee13822dd21e78374d46671d38375ae8db1126e75c0dbe19bd63f92702ead9ca /usr/bin/expr
6918fd8d5f8a3f80c4f1bbd534c5115033927deb9ba816e12fca45d19eec1bcc /usr/bin/factor
d3c5662d77ad197191b53b88e0ffed4e1659084f41b18736a8deaf16755c17ab /usr/bin/false
83509ff0c83016065ad02086f255620c84ac12d668f7f0ab1b1463b621cd2467 /usr/bin/fmt
7649cb10eb246de6035e5d7db5c900ecaef8d83677452d1f084001962fdd251f /usr/bin/fold
8e26e4f22735c21109b4969ff6e4c8e52cb623198c708c91fc323f9a78d8a9f8 /usr/bin/head
dfa93d89a269ab8bc1a31ac27ae58ca4b57e9e80016c14bdb32560a11b5d2781 /usr/bin/hostname
a85003482887e354b121b2467244b9d8b289d484e888b95e4eac017356a50ca1 /usr/bin/id
a16d179a6252510cc3d7184a3afe03d67a2697f0958c65fc588cdc20540da0ba /usr/bin/join
fa575a974614812d656a739bd7971726c5ef37d9b659302caada5fb98c2d9bd2 /usr/bin/kill
60132054c00316ef9010664b90daeb3aed3edc7daa3492164aaf9cd6dda47385 /usr/bin/link
1422bd7e979aaa6fdb6b885f8befc95537207a6668df2d98f2f3e8b2997e754b /usr/bin/ln
b273ec1b70d14ad732b3843e66b80cc9995d0f064159c7fee06cea50b867414b /usr/bin/logname
dc1fb1d37393741dc72ec83c9ae52498ef0994cb9543c50f94e239f9cf80b30b /usr/bin/mkfifo
5eac78966fb4dbc976c834677eaf3162ed5eb4cfadc7e09693f1d982e9fe855b /usr/bin/mkdir
172edf9d1a9766eed0d836355c0e5f39e941ca0f3db1ee9a2a03a0ea63fa22d5 /usr/bin/mknod
9c9892aa721dc5dd7661c039d015d74525d071ee065df0bc1f6aa06ef0c50fce /usr/bin/nl
2a035b319845e589315a853b50818666c3d1198806430acdb9d5839471812b1f /usr/bin/od
02e8bd0034632d192d562ac6e7a65e1d5d58bdf704879de26dd02a74b4a0d645 /usr/bin/paste
7fcedafbe585d81fb1968c3cf8b3551817f1cdd98461896d1206f954f2d6a1e2 /usr/bin/pathchk
19038aeda999dd42316e08243c55b3d515150fbe11c811bb47f556face7add7f /usr/bin/pr
b990dc4321203613e56b0dabd8f8984dcbd8adc6e72f5e9265376a1911a08cad /usr/bin/printf
f32aaf380592c7ff14bd71515083c75d35d8fa396d600f75ce99be347ee6f387 /usr/bin/ptx
05dbc4ad66caace6dad054bc21ca98c261ef1cdcbd25431e4c82198eda2c12b2 /usr/bin/pwd
56ba3841290c6f5977bb44887b672bee3b97f571c845ea31e2d17f926662ffc5 /usr/bin/readlink
e9a9e3cf2c2908659a03b63b9fa4963d52c7fdf69d699c359855467a19df4756 /usr/bin/rmdir
e30b629fa1fcf35a5f46f5cfd1b1602aa5c7ca184a1ff343452349333b778a6c /usr/bin/seq
c30b559c2efb15b90865600f203f1ea75aa50e728f7dfd4d2a0eaf1aa8ff3924 /usr/bin/sleep
53e4e2c96092489cb2b9e6883e66164c12a228de0420389dd63cad506948487f /usr/bin/sort
b1a1344aaee44f1bf04430b0c0a4a6148af69128160f2bc093fce91d79d6e25f /usr/bin/split
e5de0b1782231a9ce0b0bbcc7c818a39517e419273fe56faddc628b7c0a0e5a6 /usr/bin/sum
df19f0df1b4198e02261b478266ce642c62450114c818c8812249cb1eac473e6 /usr/bin/tail
0b6726576538145c62a7c33994574ff3d2470ed475d612076caf7049a6eb8f7c /usr/bin/tee
311ce27575937ff583e67ee98cd8a64ef6d8a103666de773a0f61c7ba1537cf9 /usr/bin/tr
b4285c93f16b2f1521c2729c20df7176408d27c32a055676fadc34c009b956ba /usr/bin/tsort
5958c475dcee08b42516bf0aeec420e19ea592d56d1781692d2481e273999762 /usr/bin/unexpand
08a550c90975a232311cd2f41c8fabb06e3b32b4c6aa362a35ca038189712f67 /usr/bin/uniq
d33508270e1f86fc959d6abb12ae03ac6643f0138395e1b67586539d5c3dd38b /usr/bin/unlink
7e7526b6970838c620fbcccf8ce295a5d901aa03186da4036d1938ee907d1d46 /usr/bin/wc
ef0041e5daf3b96d6656068c9bc27cde52c11f10177ede1ee7ecc0d1fc09c061 /usr/bin/whoami
794107d42c946b844c84575f80b7fc2ac35bc197555d36ecefd9471a4ce8943e /usr/bin/tac
61624e0509eded80e4539890d33908e8f9b92da3f53685810da6bfa5f749c141 /usr/bin/test
cc16741fbadaeee5ef9427ac96f762c6e7d21ed8b80a625afde5b375443896b3 /usr/bin/touch
3f94bca6093256356dd09d896aa657c2f7aa26b6b337cbde19d59e1bb6ca2e34 /usr/bin/true
6256e12f10ab5e9e199db96fec51809591445d3135cea446e788523c47989504 /usr/bin/yes
f10746a6226e699da42a1a2a4e1a99d36fd7d9d6211a100a8bf0a98b3585321e /usr/bin/ls
e604f08d122e88c1a112c32b59b870f8b0c9000e4821684bc41d0a50d6338214 /usr/bin/md5sum
32aa8dc8b78a0807cdf3867725a529f56b8e0701f2fcd3dc93c5e19e0c8b4f9f /usr/bin/mv
4dcfebaed9312e084e9927ce1bb89ec4a928d668816c8f5f1efd6acaf54d8bbd /usr/bin/rm
e4c326abc31fac0c5bd77d5c2f6bafee9b9a97e6cfb603f55eb6c722bb41e875 /usr/bin/sha1sum

View File

@ -1,5 +1,7 @@
http://git.savannah.gnu.org/cgit/coreutils.git/snapshot/coreutils-9.4.tar.xz 8fb56810310253300b3d6f84e68dc97eb2d74e1f4f78e05776831d9d82e4f2d7
https://files.bootstrapping.world/coreutils-9.4.tar.xz 8fb56810310253300b3d6f84e68dc97eb2d74e1f4f78e05776831d9d82e4f2d7
http://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-bb5bb43.tar.gz b8aa1ac1b18c67f081486069e6a7a5564f20431c2313a94c20a46dcfb904be2a
https://files.bootstrapping.world/gnulib-bb5bb43.tar.gz b8aa1ac1b18c67f081486069e6a7a5564f20431c2313a94c20a46dcfb904be2a
http://ftp.unicode.org/Public/15.0.0/ucd/UnicodeData.txt 806e9aed65037197f1ec85e12be6e8cd870fc5608b4de0fffd990f689f376a73 UnicodeData-15.0.0.txt
http://ftp.unicode.org/Public/15.0.0/ucd/PropList.txt e05c0a2811d113dae4abd832884199a3ea8d187ee1b872d8240a788a96540bfd PropList-15.0.0.txt
http://ftp.unicode.org/Public/15.0.0/ucd/DerivedCoreProperties.txt d367290bc0867e6b484c68370530bdd1a08b6b32404601b8c7accaf83e05628d DerivedCoreProperties-15.0.0.txt

View File

@ -1 +1 @@
https://dept.rpi.edu/acm/packages/diffutils/2.7/distrib/diffutils-2.7.tar.bz2 fd6c44f7cbd0a942a3f0c012365997965451197ad4faeb0b8aac1fe03192de58
https://mirrors.kernel.org/gnu/diffutils/diffutils-2.7.tar.gz d5f2489c4056a31528e3ada4adacc23d498532b0af1a980f2f76158162b139d6

View File

@ -1,2 +1,3 @@
https://mirrors.kernel.org/gnu/diffutils/diffutils-3.10.tar.xz 90e5e93cc724e4ebe12ede80df1634063c7a855692685919bfe60b556c9bd09e
http://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-5d2fe24.tar.gz 72e7bb2d1d75e63d1c46d33b8dd22e8eb60afdba4af3e7251151b5c2a6f00bfb
https://files.bootstrapping.world/gnulib-5d2fe24.tar.gz 72e7bb2d1d75e63d1c46d33b8dd22e8eb60afdba4af3e7251151b5c2a6f00bfb

View File

@ -1,2 +1,3 @@
https://mirrors.kernel.org/gnu/findutils/findutils-4.2.33.tar.gz 813cd9405aceec5cfecbe96400d01e90ddad7b512d3034487176ce5258ab0f78
https://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-8e128e.tar.gz 0cfbf866bc39c31f25fa0e56af1e56c5e5c92fc1e5d51242ebafef7ea211f3d5
https://files.bootstrapping.world/gnulib-8e128e.tar.gz 0cfbf866bc39c31f25fa0e56af1e56c5e5c92fc1e5d51242ebafef7ea211f3d5

View File

@ -1,2 +1,3 @@
https://mirrors.kernel.org/gnu/gettext/gettext-0.21.tar.xz d20fcbb537e02dcf1383197ba05bd0734ef7bf5db06bdb241eb69b7d16b73192
https://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-7daa86f.tar.gz 2d911c2f2ed97b347d6d360b742abdc98aa626d4f8f847ee682c7cde12e90871
https://files.bootstrapping.world/gnulib-7daa86f.tar.gz 2d911c2f2ed97b347d6d360b742abdc98aa626d4f8f847ee682c7cde12e90871

View File

@ -1,2 +1,3 @@
https://mirrors.kernel.org/gnu/grep/grep-3.7.tar.xz 5c10da312460aec721984d5d83246d24520ec438dd48d7ab5a05dbc0d6d6823c
http://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-8f4538a5.tar.gz e207c0bb72093c3a72dde302fcfaa1dbda12a62172d47b73565883a92209ebab
https://files.bootstrapping.world/gnulib-8f4538a5.tar.gz e207c0bb72093c3a72dde302fcfaa1dbda12a62172d47b73565883a92209ebab

View File

@ -32,4 +32,5 @@ src_configure() {
src_install() {
default
rm "${DESTDIR}${PREFIX}/share/info/dir"
rm "${DESTDIR}${PREFIX}/share/man/man8/grub-install.8"
}

View File

@ -1,5 +1,6 @@
https://mirrors.kernel.org/gnu/grub/grub-2.06.tar.xz b79ea44af91b93d17cd3fe80bdae6ed43770678a9a5ae192ccea803ebb657ee1
https://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-d271f86.tar.gz 31d69d3d251e39135b5194ddc6f897910d344059f7494d96a739aecbf7ac2b66
https://files.bootstrapping.world/gnulib-d271f86.tar.gz 31d69d3d251e39135b5194ddc6f897910d344059f7494d96a739aecbf7ac2b66
http://ftp.unicode.org/Public/9.0.0/ucd/UnicodeData.txt 68dfc414d28257b9b5d6ddbb8b466c768c00ebdf6cbf7784364a9b6cad55ee8f UnicodeData-9.0.0.txt
http://ftp.unicode.org/Public/9.0.0/ucd/PropList.txt f413ea8dbd3858de72f3148b47dd0586019761357d1481e3b65f3a025bc27f82 PropList-9.0.0.txt
http://ftp.unicode.org/Public/9.0.0/ucd/DerivedCoreProperties.txt 6662c7e30b572df5d948c092692f52bcc79ab36d49a063a73d6435042db6fb3b DerivedCoreProperties-9.0.0.txt

View File

@ -1,5 +1,7 @@
https://mirrors.kernel.org/gnu/guile/guile-3.0.7.tar.xz f57d86c70620271bfceb7a9be0c81744a033f08adc7ceba832c9917ab3e691b7
https://mirrors.kernel.org/gnu/guile/guile-3.0.9.tar.xz 1a2625ac72b2366e95792f3fe758fd2df775b4044a90a4a9787326e66c0d750d
https://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-901694b9.tar.gz f9aad85de1f41d57c9368d304020ffbf354a5e56db1297f022c3d12181134e56
https://files.bootstrapping.world/gnulib-901694b9.tar.gz f9aad85de1f41d57c9368d304020ffbf354a5e56db1297f022c3d12181134e56
https://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-356a414e.tar.gz fc9973f1a9243fdc4b98d33d7704f3c71bfdc4c2ef96899b8f28cade7290a714
https://files.bootstrapping.world/gnulib-356a414e.tar.gz fc9973f1a9243fdc4b98d33d7704f3c71bfdc4c2ef96899b8f28cade7290a714
https://github.com/schierlm/guile-psyntax-bootstrapping/archive/refs/tags/guile-3.0.7.tar.gz 14cda9c416506dfadf60c14fc623ff01ef99b87564a78d0a29c5d17143c97609

View File

@ -1,2 +1,3 @@
https://mirrors.kernel.org/gnu/gzip/gzip-1.13.tar.xz 7454eb6935db17c6655576c2e1b0fabefd38b4d0936e0f87f48cd062ce91a057
http://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-5651802.tar.gz 56f1221eb682c3502ee097f583f44673570753cb452346ad4806d94560c3fac9
https://files.bootstrapping.world/gnulib-5651802.tar.gz 56f1221eb682c3502ee097f583f44673570753cb452346ad4806d94560c3fac9

View File

@ -1 +1 @@
2eea6424aebf9d68e674c48c729e2eff72cfe330f5d4a5cc3918b7275c36e679 /usr/bin/gzip
e5ddef55d9747552d3d29662312417d8223b125d6df423fdec303e2684e2c34c /usr/bin/gzip

View File

@ -1,5 +0,0 @@
22356e9e871747acbd93f0e08aee1c05aa0de8240bfd80f5d2565e3ea281ae0e /usr/bin/yacc
3719795cec49866ad20fdd75aceb1eb0cce9975f2afd716069f880dff16f668f /usr/bin/lex
ffe696afc1bda32a5f4035e29b3275cab73a27df7635ccbe02ed49a30374ccdd /usr/lib/mes/libl.a
bf3fb293f1ff89ee3dbcb08166c64b7a6793b49a12673d7633e3353ebea80d4d /usr/lib/mes/yaccpar
ee0f187b844f50d64c912bfcb5d73706662846d6d8a90b8b1fb20dda60464734 /usr/lib/mes/lex/ncform

View File

@ -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

View File

@ -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"
}

View File

@ -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

File diff suppressed because it is too large Load Diff

View File

@ -257,14 +257,25 @@ build() {
unset extract
}
interpret_source_line() {
download_source_line() {
url="${1}"
checksum="${2}"
fname="${3}"
# Default to basename of url if not given
fname="${fname:-$(basename "${url}")}"
if ! [ -e "${fname}" ]; then
curl --fail --retry 5 --location "${url}" --output "${fname}"
curl --fail --retry 5 --location "${url}" --output "${fname}" || true
fi
}
check_source_line() {
url="${1}"
checksum="${2}"
fname="${3}"
# Default to basename of url if not given
fname="${fname:-$(basename "${url}")}"
if ! [ -e "${fname}" ]; then
false
fi
echo "${checksum} ${fname}" > "${fname}.sum"
sha256sum -c "${fname}.sum"
@ -279,7 +290,13 @@ default_src_get() {
while read line; do
# This is intentional - we want to split out ${line} into separate arguments.
# shellcheck disable=SC2086
interpret_source_line ${line}
download_source_line ${line}
done < "${base_dir}/sources"
# shellcheck disable=SC2162
while read line; do
# This is intentional - we want to split out ${line} into separate arguments.
# shellcheck disable=SC2086
check_source_line ${line}
done < "${base_dir}/sources"
cd -
}

View File

@ -9,6 +9,10 @@
. /steps/bootstrap.cfg
. /steps/env
if [ -d /steps/after ]; then
find /steps/after -maxdepth 1 -name '*.sh' -exec bash {} \;
fi
if [ "${INTERACTIVE}" = True ]; then
env - PATH=${PREFIX}/bin PS1="\w # " setsid openvt -fec1 -- bash -i
fi

View File

@ -1 +1 @@
70dc5c96cf3103ce199b7bf225a1dc04d4a25122af13f9840c6865d2c862a881 /usr/bin/kexec-fiwix
4c9812c04d3bf98b62a628a17378a36b2a9534eee7b8b0af9d07b087275253a0 /usr/bin/kexec-fiwix

View File

@ -1,2 +1,3 @@
http://mirrors.kernel.org/gnu/libtool/libtool-2.4.7.tar.xz 4f7f217f057ce655ff22559ad221a0fd8ef84ad1fc5fcb6990cecc333aa1635d
http://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-a521820.tar.gz 719b399fe09a8f6ca14ba8c4a9a60ce9f93f4892effb50961ef3d8cd1a33ff65
https://files.bootstrapping.world/gnulib-a521820.tar.gz 719b399fe09a8f6ca14ba8c4a9a60ce9f93f4892effb50961ef3d8cd1a33ff65

View File

@ -1,2 +1,3 @@
https://mirrors.kernel.org/gnu/libunistring/libunistring-0.9.10.tar.xz eb8fb2c3e4b6e2d336608377050892b54c3c983b646c561836550863003c05d7
https://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-52a06cb3.tar.gz 009989b81c0bebc5f6550636ed653fbcb237dafc2af5c706f3522087ca571e4d
https://files.bootstrapping.world/gnulib-52a06cb3.tar.gz 009989b81c0bebc5f6550636ed653fbcb237dafc2af5c706f3522087ca571e4d

View File

@ -1,18 +0,0 @@
SPDX-FileCopyrightText: 2021 fosslinux <fosslinux@aussies.space>
SPDX-License-Identifier: GPL-2.0-only
Remove the 68() which I'm not really sure what it does but still works and
breaks our version of binutils.
--- arch/x86/boot/bioscall.S 2021-07-31 17:50:09.519480274 +1000
+++ arch/x86/boot/bioscall.S 2021-07-31 18:21:32.086972277 +1000
@@ -65,7 +65,7 @@
movw %ax, %es
/* Copy output state from stack frame */
- movw 68(%esp), %di /* Original %cx == 3rd argument */
+ movw %sp, %di /* Original %cx == 3rd argument */
andw %di, %di
jz 4f
movw %sp, %si

View File

@ -68,7 +68,7 @@ CONFIG_KERNEL_GZIP=y
# CONFIG_KERNEL_XZ is not set
# CONFIG_KERNEL_LZO is not set
# CONFIG_KERNEL_LZ4 is not set
CONFIG_DEFAULT_HOSTNAME="(none)"
CONFIG_DEFAULT_HOSTNAME="live-bootstrap"
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
@ -392,7 +392,6 @@ CONFIG_DEFAULT_IOSCHED="cfq"
CONFIG_MQ_IOSCHED_DEADLINE=y
CONFIG_MQ_IOSCHED_KYBER=y
# CONFIG_IOSCHED_BFQ is not set
# CONFIG_BFQ_GROUP_IOSCHED is not set
CONFIG_ASN1=y
CONFIG_UNINLINE_SPIN_UNLOCK=y
CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
@ -413,7 +412,7 @@ CONFIG_SMP=y
CONFIG_X86_FEATURE_NAMES=y
CONFIG_X86_FAST_FEATURE_TESTS=y
CONFIG_X86_MPPARSE=y
# CONFIG_X86_BIGSMP is not set
CONFIG_X86_BIGSMP=y
# CONFIG_GOLDFISH is not set
# CONFIG_RETPOLINE is not set
# CONFIG_INTEL_RDT is not set
@ -480,7 +479,7 @@ CONFIG_HPET_EMULATE_RTC=y
CONFIG_DMI=y
CONFIG_SWIOTLB=y
CONFIG_IOMMU_HELPER=y
CONFIG_NR_CPUS=8
CONFIG_NR_CPUS=64
CONFIG_SCHED_SMT=y
CONFIG_SCHED_MC=y
CONFIG_SCHED_MC_PRIO=y
@ -529,15 +528,20 @@ CONFIG_X86_PAE=y
CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
CONFIG_ARCH_DMA_ADDR_T_64BIT=y
CONFIG_ARCH_HAS_MEM_ENCRYPT=y
CONFIG_NUMA=y
# CONFIG_NUMA_EMU is not set
CONFIG_NODES_SHIFT=3
CONFIG_NEED_NODE_MEMMAP_SIZE=y
CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_ARCH_DISCONTIGMEM_ENABLE=y
CONFIG_ARCH_DISCONTIGMEM_DEFAULT=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_ILLEGAL_POINTER_VALUE=0
CONFIG_SELECT_MEMORY_MODEL=y
# CONFIG_FLATMEM_MANUAL is not set
# CONFIG_DISCONTIGMEM_MANUAL is not set
CONFIG_SPARSEMEM_MANUAL=y
CONFIG_SPARSEMEM=y
CONFIG_NEED_MULTIPLE_NODES=y
CONFIG_HAVE_MEMORY_PRESENT=y
CONFIG_SPARSEMEM_STATIC=y
CONFIG_HAVE_MEMBLOCK=y
@ -622,6 +626,7 @@ CONFIG_HOTPLUG_CPU=y
CONFIG_MODIFY_LDT_SYSCALL=y
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
CONFIG_USE_PERCPU_NUMA_NODE_ID=y
# CONFIG_GDS_FORCE_MITIGATION is not set
#
@ -664,6 +669,7 @@ CONFIG_ACPI_PROCESSOR=y
CONFIG_ACPI_HOTPLUG_CPU=y
# CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set
# CONFIG_ACPI_THERMAL is not set
# CONFIG_ACPI_NUMA is not set
# CONFIG_ACPI_CUSTOM_DSDT is not set
CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y
CONFIG_ACPI_TABLE_UPGRADE=y
@ -840,7 +846,6 @@ CONFIG_COREDUMP=y
CONFIG_COMPAT_32=y
CONFIG_HAVE_ATOMIC_IOMAP=y
CONFIG_NET=y
CONFIG_NET_INGRESS=y
#
# Networking options
@ -864,10 +869,7 @@ CONFIG_IP_ROUTE_VERBOSE=y
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE_DEMUX is not set
# CONFIG_NET_IP_TUNNEL is not set
CONFIG_IP_MROUTE=y
CONFIG_IP_MROUTE_MULTIPLE_TABLES=y
CONFIG_IP_PIMSM_V1=y
CONFIG_IP_PIMSM_V2=y
# CONFIG_IP_MROUTE is not set
CONFIG_SYN_COOKIES=y
# CONFIG_NET_UDP_TUNNEL is not set
# CONFIG_NET_FOU is not set
@ -913,7 +915,6 @@ CONFIG_IPV6_OPTIMISTIC_DAD=y
# CONFIG_INET6_ESP is not set
# CONFIG_INET6_IPCOMP is not set
# CONFIG_IPV6_MIP6 is not set
# CONFIG_IPV6_ILA is not set
# CONFIG_INET6_XFRM_TUNNEL is not set
# CONFIG_INET6_TUNNEL is not set
# CONFIG_INET6_XFRM_MODE_TRANSPORT is not set
@ -933,44 +934,7 @@ CONFIG_IPV6_SUBTREES=y
CONFIG_NETWORK_SECMARK=y
CONFIG_NET_PTP_CLASSIFY=y
# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
CONFIG_NETFILTER=y
CONFIG_NETFILTER_ADVANCED=y
#
# Core Netfilter Configuration
#
CONFIG_NETFILTER_INGRESS=y
# CONFIG_NETFILTER_NETLINK_ACCT is not set
# CONFIG_NETFILTER_NETLINK_QUEUE is not set
# CONFIG_NETFILTER_NETLINK_LOG is not set
# CONFIG_NF_CONNTRACK is not set
# CONFIG_NF_LOG_NETDEV is not set
# CONFIG_NF_TABLES is not set
# CONFIG_NETFILTER_XTABLES is not set
# CONFIG_IP_SET is not set
# CONFIG_IP_VS is not set
#
# IP: Netfilter Configuration
#
# CONFIG_NF_DEFRAG_IPV4 is not set
# CONFIG_NF_SOCKET_IPV4 is not set
# CONFIG_NF_DUP_IPV4 is not set
# CONFIG_NF_LOG_ARP is not set
# CONFIG_NF_LOG_IPV4 is not set
# CONFIG_NF_REJECT_IPV4 is not set
# CONFIG_IP_NF_IPTABLES is not set
# CONFIG_IP_NF_ARPTABLES is not set
#
# IPv6: Netfilter Configuration
#
# CONFIG_NF_DEFRAG_IPV6 is not set
# CONFIG_NF_SOCKET_IPV6 is not set
# CONFIG_NF_DUP_IPV6 is not set
# CONFIG_NF_REJECT_IPV6 is not set
# CONFIG_NF_LOG_IPV6 is not set
# CONFIG_IP6_NF_IPTABLES is not set
# CONFIG_NETFILTER is not set
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
# CONFIG_RDS is not set
@ -989,80 +953,18 @@ CONFIG_HAVE_NET_DSA=y
# CONFIG_PHONET is not set
# CONFIG_6LOWPAN is not set
# CONFIG_IEEE802154 is not set
CONFIG_NET_SCHED=y
#
# Queueing/Scheduling
#
# CONFIG_NET_SCH_CBQ is not set
# CONFIG_NET_SCH_HTB is not set
# CONFIG_NET_SCH_HFSC is not set
# CONFIG_NET_SCH_PRIO is not set
# CONFIG_NET_SCH_MULTIQ is not set
# CONFIG_NET_SCH_RED is not set
# CONFIG_NET_SCH_SFB is not set
# CONFIG_NET_SCH_SFQ is not set
# CONFIG_NET_SCH_TEQL is not set
# CONFIG_NET_SCH_TBF is not set
# CONFIG_NET_SCH_GRED is not set
# CONFIG_NET_SCH_DSMARK is not set
# CONFIG_NET_SCH_NETEM is not set
# CONFIG_NET_SCH_DRR is not set
# CONFIG_NET_SCH_MQPRIO is not set
# CONFIG_NET_SCH_CHOKE is not set
# CONFIG_NET_SCH_QFQ is not set
# CONFIG_NET_SCH_CODEL is not set
# CONFIG_NET_SCH_FQ_CODEL is not set
# CONFIG_NET_SCH_FQ is not set
# CONFIG_NET_SCH_HHF is not set
# CONFIG_NET_SCH_PIE is not set
# CONFIG_NET_SCH_INGRESS is not set
# CONFIG_NET_SCH_PLUG is not set
# CONFIG_NET_SCH_DEFAULT is not set
#
# Classification
#
CONFIG_NET_CLS=y
# CONFIG_NET_CLS_BASIC is not set
# CONFIG_NET_CLS_ROUTE4 is not set
# CONFIG_NET_CLS_FW is not set
# CONFIG_NET_CLS_U32 is not set
# CONFIG_NET_CLS_FLOW is not set
# CONFIG_NET_CLS_CGROUP is not set
# CONFIG_NET_CLS_BPF is not set
# CONFIG_NET_CLS_FLOWER is not set
# CONFIG_NET_CLS_MATCHALL is not set
# CONFIG_NET_EMATCH is not set
CONFIG_NET_CLS_ACT=y
# CONFIG_NET_ACT_POLICE is not set
# CONFIG_NET_ACT_GACT is not set
# CONFIG_NET_ACT_MIRRED is not set
# CONFIG_NET_ACT_SAMPLE is not set
# CONFIG_NET_ACT_NAT is not set
# CONFIG_NET_ACT_PEDIT is not set
# CONFIG_NET_ACT_SIMP is not set
# CONFIG_NET_ACT_SKBEDIT is not set
# CONFIG_NET_ACT_CSUM is not set
# CONFIG_NET_ACT_VLAN is not set
# CONFIG_NET_ACT_BPF is not set
# CONFIG_NET_ACT_SKBMOD is not set
# CONFIG_NET_ACT_IFE is not set
# CONFIG_NET_ACT_TUNNEL_KEY is not set
CONFIG_NET_SCH_FIFO=y
CONFIG_DCB=y
# CONFIG_NET_SCHED is not set
# CONFIG_DCB is not set
CONFIG_DNS_RESOLVER=y
# CONFIG_BATMAN_ADV is not set
# CONFIG_OPENVSWITCH is not set
# CONFIG_VSOCKETS is not set
# CONFIG_NETLINK_DIAG is not set
CONFIG_MPLS=y
# CONFIG_NET_MPLS_GSO is not set
# CONFIG_MPLS_ROUTING is not set
# CONFIG_MPLS is not set
# CONFIG_NET_NSH is not set
# CONFIG_HSR is not set
CONFIG_NET_SWITCHDEV=y
CONFIG_NET_L3_MASTER_DEV=y
# CONFIG_NET_SWITCHDEV is not set
# CONFIG_NET_L3_MASTER_DEV is not set
# CONFIG_NET_NCSI is not set
CONFIG_RPS=y
CONFIG_RFS_ACCEL=y
@ -1101,8 +1003,7 @@ CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
# CONFIG_NFC is not set
# CONFIG_PSAMPLE is not set
# CONFIG_NET_IFE is not set
CONFIG_LWTUNNEL=y
CONFIG_LWTUNNEL_BPF=y
# CONFIG_LWTUNNEL is not set
# CONFIG_DST_CACHE is not set
# CONFIG_GRO_CELLS is not set
# CONFIG_NET_DEVLINK is not set
@ -1415,10 +1316,7 @@ CONFIG_PATA_MPIIX=y
CONFIG_PATA_ACPI=y
CONFIG_ATA_GENERIC=y
CONFIG_PATA_LEGACY=y
CONFIG_MD=y
# CONFIG_BLK_DEV_MD is not set
# CONFIG_BCACHE is not set
# CONFIG_BLK_DEV_DM is not set
# CONFIG_MD is not set
# CONFIG_TARGET_CORE is not set
CONFIG_FUSION=y
# CONFIG_FUSION_SPI is not set
@ -1440,10 +1338,8 @@ CONFIG_NET_CORE=y
# CONFIG_DUMMY is not set
# CONFIG_EQUALIZER is not set
# CONFIG_NET_FC is not set
# CONFIG_IFB is not set
# CONFIG_NET_TEAM is not set
# CONFIG_MACVLAN is not set
# CONFIG_IPVLAN is not set
# CONFIG_VXLAN is not set
# CONFIG_GTP is not set
# CONFIG_MACSEC is not set
@ -1454,7 +1350,6 @@ CONFIG_NET_CORE=y
CONFIG_TUN_VNET_CROSS_LE=y
# CONFIG_VETH is not set
# CONFIG_NLMON is not set
# CONFIG_NET_VRF is not set
CONFIG_SUNGEM_PHY=y
# CONFIG_ARCNET is not set
@ -1486,7 +1381,6 @@ CONFIG_NET_VENDOR_AMD=y
CONFIG_AMD8111_ETH=y
CONFIG_PCNET32=y
CONFIG_AMD_XGBE=y
# CONFIG_AMD_XGBE_DCB is not set
CONFIG_AMD_XGBE_HAVE_ECC=y
CONFIG_NET_VENDOR_AQUANTIA=y
CONFIG_NET_VENDOR_ARC=y
@ -1514,7 +1408,6 @@ CONFIG_BNX2X_SRIOV=y
CONFIG_BNXT=y
# CONFIG_BNXT_SRIOV is not set
CONFIG_BNXT_FLOWER_OFFLOAD=y
# CONFIG_BNXT_DCB is not set
CONFIG_NET_VENDOR_BROCADE=y
CONFIG_BNA=y
CONFIG_NET_VENDOR_CAVIUM=y
@ -1567,10 +1460,8 @@ CONFIG_IGBVF=y
CONFIG_IXGB=y
CONFIG_IXGBE=y
CONFIG_IXGBE_HWMON=y
# CONFIG_IXGBE_DCB is not set
CONFIG_IXGBEVF=y
CONFIG_I40E=y
# CONFIG_I40E_DCB is not set
CONFIG_I40EVF=y
CONFIG_FM10K=y
CONFIG_NET_VENDOR_I825XX=y
@ -1585,15 +1476,12 @@ CONFIG_SKY2=y
# CONFIG_SKY2_DEBUG is not set
CONFIG_NET_VENDOR_MELLANOX=y
CONFIG_MLX4_EN=y
# CONFIG_MLX4_EN_DCB is not set
CONFIG_MLX4_CORE=y
CONFIG_MLX4_DEBUG=y
CONFIG_MLX5_CORE=y
# CONFIG_MLX5_FPGA is not set
CONFIG_MLX5_CORE_EN=y
CONFIG_MLX5_MPFS=y
CONFIG_MLX5_ESWITCH=y
# CONFIG_MLX5_CORE_EN_DCB is not set
# CONFIG_MLX5_CORE_IPOIB is not set
# CONFIG_MLXSW_CORE is not set
# CONFIG_MLXFW is not set
@ -1613,7 +1501,6 @@ CONFIG_NATSEMI=y
CONFIG_NS83820=y
CONFIG_NET_VENDOR_NETRONOME=y
CONFIG_NFP=y
CONFIG_NFP_APP_FLOWER=y
# CONFIG_NFP_DEBUG is not set
CONFIG_NET_VENDOR_8390=y
CONFIG_NE2K_PCI=y
@ -1629,7 +1516,6 @@ CONFIG_NET_VENDOR_QLOGIC=y
CONFIG_QLA3XXX=y
CONFIG_QLCNIC=y
CONFIG_QLCNIC_SRIOV=y
# CONFIG_QLCNIC_DCB is not set
CONFIG_QLCNIC_HWMON=y
CONFIG_QLGE=y
CONFIG_NETXEN_NIC=y
@ -1785,28 +1671,7 @@ CONFIG_USB_IPHETH=y
# CONFIG_USB_SIERRA_NET is not set
# CONFIG_USB_VL600 is not set
CONFIG_USB_NET_CH9200=y
CONFIG_WLAN=y
# CONFIG_WIRELESS_WDS is not set
CONFIG_WLAN_VENDOR_ADMTEK=y
CONFIG_WLAN_VENDOR_ATH=y
# CONFIG_ATH_DEBUG is not set
CONFIG_ATH5K_PCI=y
CONFIG_WLAN_VENDOR_ATMEL=y
CONFIG_WLAN_VENDOR_BROADCOM=y
CONFIG_WLAN_VENDOR_CISCO=y
CONFIG_WLAN_VENDOR_INTEL=y
CONFIG_WLAN_VENDOR_INTERSIL=y
# CONFIG_HOSTAP is not set
# CONFIG_PRISM54 is not set
CONFIG_WLAN_VENDOR_MARVELL=y
CONFIG_WLAN_VENDOR_MEDIATEK=y
CONFIG_WLAN_VENDOR_RALINK=y
CONFIG_WLAN_VENDOR_REALTEK=y
CONFIG_WLAN_VENDOR_RSI=y
CONFIG_WLAN_VENDOR_ST=y
CONFIG_WLAN_VENDOR_TI=y
CONFIG_WLAN_VENDOR_ZYDAS=y
CONFIG_WLAN_VENDOR_QUANTENNA=y
# CONFIG_WLAN is not set
#
# Enable WiMAX (Networking options) to see the WiMAX drivers
@ -2806,13 +2671,23 @@ CONFIG_DRM_TTM=y
CONFIG_DRM_I2C_CH7006=y
CONFIG_DRM_I2C_SIL164=y
CONFIG_DRM_I2C_NXP_TDA998X=y
# CONFIG_DRM_RADEON is not set
# CONFIG_DRM_AMDGPU is not set
CONFIG_DRM_RADEON=y
# CONFIG_DRM_RADEON_USERPTR is not set
CONFIG_DRM_AMDGPU=y
# CONFIG_DRM_AMDGPU_SI is not set
# CONFIG_DRM_AMDGPU_CIK is not set
# CONFIG_DRM_AMDGPU_USERPTR is not set
# CONFIG_DRM_AMDGPU_GART_DEBUGFS is not set
#
# ACP (Audio CoProcessor) Configuration
#
# CONFIG_DRM_NOUVEAU is not set
# CONFIG_DRM_AMD_ACP is not set
CONFIG_DRM_NOUVEAU=y
# CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT is not set
CONFIG_NOUVEAU_DEBUG=5
CONFIG_NOUVEAU_DEBUG_DEFAULT=3
# CONFIG_DRM_NOUVEAU_BACKLIGHT is not set
CONFIG_DRM_I915=y
# CONFIG_DRM_I915_ALPHA_SUPPORT is not set
# CONFIG_DRM_I915_CAPTURE_ERROR is not set
@ -2900,10 +2775,7 @@ CONFIG_FB_EFI=y
# CONFIG_FB_HGA is not set
# CONFIG_FB_OPENCORES is not set
# CONFIG_FB_S1D13XXX is not set
CONFIG_FB_NVIDIA=y
CONFIG_FB_NVIDIA_I2C=y
# CONFIG_FB_NVIDIA_DEBUG is not set
CONFIG_FB_NVIDIA_BACKLIGHT=y
# CONFIG_FB_NVIDIA is not set
CONFIG_FB_RIVA=y
CONFIG_FB_RIVA_I2C=y
# CONFIG_FB_RIVA_DEBUG is not set
@ -2914,10 +2786,7 @@ CONFIG_FB_I810=y
CONFIG_FB_LE80578=y
CONFIG_FB_CARILLO_RANCH=y
# CONFIG_FB_MATROX is not set
CONFIG_FB_RADEON=y
CONFIG_FB_RADEON_I2C=y
CONFIG_FB_RADEON_BACKLIGHT=y
# CONFIG_FB_RADEON_DEBUG is not set
# CONFIG_FB_RADEON is not set
CONFIG_FB_ATY128=y
CONFIG_FB_ATY128_BACKLIGHT=y
CONFIG_FB_ATY=y
@ -3499,7 +3368,6 @@ CONFIG_VIRT_DRIVERS=y
CONFIG_STAGING=y
# CONFIG_IRDA is not set
# CONFIG_COMEDI is not set
# CONFIG_R8712U is not set
# CONFIG_RTS5208 is not set
# CONFIG_FB_SM750 is not set
# CONFIG_FB_XGI is not set
@ -3529,23 +3397,36 @@ CONFIG_TYPEC_FUSB302=y
# CONFIG_DRM_VBOXVIDEO is not set
# CONFIG_PI433 is not set
CONFIG_X86_PLATFORM_DEVICES=y
# CONFIG_ACER_WMI is not set
# CONFIG_ACERHDF is not set
# CONFIG_ALIENWARE_WMI is not set
# CONFIG_ASUS_LAPTOP is not set
# CONFIG_DELL_LAPTOP is not set
# CONFIG_DELL_WMI is not set
# CONFIG_DELL_WMI_AIO is not set
# CONFIG_DELL_WMI_LED is not set
# CONFIG_DELL_SMO8800 is not set
# CONFIG_FUJITSU_LAPTOP is not set
# CONFIG_FUJITSU_TABLET is not set
# CONFIG_TC1100_WMI is not set
# CONFIG_HP_ACCEL is not set
# CONFIG_HP_WIRELESS is not set
# CONFIG_HP_WMI is not set
# CONFIG_PANASONIC_LAPTOP is not set
# CONFIG_SURFACE3_WMI is not set
# CONFIG_THINKPAD_ACPI is not set
# CONFIG_SENSORS_HDAPS is not set
# CONFIG_EEEPC_LAPTOP is not set
# CONFIG_ASUS_WMI is not set
# CONFIG_ASUS_WIRELESS is not set
# CONFIG_ACPI_WMI is not set
CONFIG_ACPI_WMI=y
CONFIG_WMI_BMOF=y
# CONFIG_MSI_WMI is not set
# CONFIG_PEAQ_WMI is not set
# CONFIG_TOPSTAR_LAPTOP is not set
# CONFIG_TOSHIBA_BT_RFKILL is not set
# CONFIG_TOSHIBA_HAPS is not set
# CONFIG_TOSHIBA_WMI is not set
# CONFIG_ACPI_CMPC is not set
# CONFIG_INTEL_CHT_INT33FE is not set
# CONFIG_INTEL_INT0002_VGPIO is not set
@ -3555,6 +3436,7 @@ CONFIG_X86_PLATFORM_DEVICES=y
CONFIG_INTEL_PMC_CORE=y
# CONFIG_IBM_RTL is not set
# CONFIG_SAMSUNG_LAPTOP is not set
CONFIG_MXM_WMI=y
# CONFIG_SAMSUNG_Q10 is not set
# CONFIG_APPLE_GMUX is not set
# CONFIG_INTEL_RST is not set
@ -4350,10 +4232,7 @@ CONFIG_PKCS7_MESSAGE_PARSER=y
# CONFIG_SYSTEM_TRUSTED_KEYRING is not set
# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set
CONFIG_HAVE_KVM=y
CONFIG_VIRTUALIZATION=y
# CONFIG_KVM is not set
# CONFIG_VHOST_NET is not set
CONFIG_VHOST_CROSS_ENDIAN_LEGACY=y
# CONFIG_VIRTUALIZATION is not set
# CONFIG_BINARY_PRINTF is not set
#

View File

@ -1,12 +1,15 @@
# SPDX-FileCopyrightText: 2021-22 fosslinux <fosslinux@aussies.space>
# SPDX-FileCopyrightText: 2022 Andrius Štikonas <andrius@stikonas.eu>
# SPDX-FileCopyrightText: 2024 Gábor Stefanik <netrolller.3d@gmail.com>
#
# SPDX-License-Identifier: GPL-3.0-or-later
dirname=linux-4.14.336
src_unpack() {
mkdir "${pkg}"
mkdir "linux-4.14.336"
default || true # Predictable link errors - not a problem
rm "${DISTFILES}/${pkg}.tar.xz"
rm "${DISTFILES}/linux-4.14.336.tar.xz"
}
generate_autoconf_h() {
@ -43,10 +46,19 @@ src_compile() {
# Allow use of patched initramfs_list.sh (which is required anyway)
make "${MAKEJOBS}" ARCH=i386 prepare
PATH="${PWD}/usr:${PATH}" make "${MAKEJOBS}" ARCH=i386
# Build just the vmlinux, because a full build will not fit our ramdisk
PATH="${PWD}/usr:${PATH}" make "${MAKEJOBS}" ARCH=i386 vmlinux
# Clear up more space
find . -name '*.o' -not -path './drivers/firmware/efi/libstub/*' -delete
# Now that we have space, build bzImage, taking care not to rebuild what we've just deleted
PATH="${PWD}/usr:${PATH}" make "${MAKEJOBS}" ARCH=i386 -o vmlinux bzImage
# Clear up one more time
find . -name '*.o' -delete
rm vmlinux
}
src_install() {

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,447 @@
SPDX-FileCopyrightText: 1991-2024 kernel.org contributors
SPDX-FileCopyrightText: 2023-2024 Open Enterprise Linux Association <kernel-lts@openela.org>
SPDX-License-Identifier: GPL-2.0-only
Patch kernel headers up to 4.14.341-openela
diff --git include/crypto/if_alg.h include/crypto/if_alg.h
index 2ea6a95ca825..f803dc8c45ad 100644
--- include/crypto/if_alg.h
+++ include/crypto/if_alg.h
@@ -146,6 +146,7 @@ struct af_alg_async_req {
* @enc: Cryptographic operation to be performed when
* recvmsg is invoked.
* @len: Length of memory allocated for this data structure.
+ * @inflight: Non-zero when AIO requests are in flight.
*/
struct af_alg_ctx {
struct list_head tsgl_list;
@@ -163,6 +164,8 @@ struct af_alg_ctx {
bool enc;
unsigned int len;
+
+ unsigned int inflight;
};
int af_alg_register_type(const struct af_alg_type *type);
diff --git include/drm/drm_bridge.h include/drm/drm_bridge.h
index 6522d4cbc9d9..bfbd38c0b609 100644
--- include/drm/drm_bridge.h
+++ include/drm/drm_bridge.h
@@ -161,7 +161,7 @@ struct drm_bridge_funcs {
* or &drm_encoder_helper_funcs.dpms hook.
*
* The bridge must assume that the display pipe (i.e. clocks and timing
- * singals) feeding it is no longer running when this callback is
+ * signals) feeding it is no longer running when this callback is
* called.
*
* The post_disable callback is optional.
diff --git include/drm/drm_mipi_dsi.h include/drm/drm_mipi_dsi.h
index 689f615471ab..a059f1d968b7 100644
--- include/drm/drm_mipi_dsi.h
+++ include/drm/drm_mipi_dsi.h
@@ -163,6 +163,7 @@ struct mipi_dsi_device_info {
* struct mipi_dsi_device - DSI peripheral device
* @host: DSI host for this peripheral
* @dev: driver model device node for this peripheral
+ * @attached: the DSI device has been successfully attached
* @name: DSI peripheral chip type
* @channel: virtual channel assigned to the peripheral
* @format: pixel format for video mode
@@ -172,6 +173,7 @@ struct mipi_dsi_device_info {
struct mipi_dsi_device {
struct mipi_dsi_host *host;
struct device dev;
+ bool attached;
char name[DSI_DEV_NAME_SIZE];
unsigned int channel;
diff --git include/linux/bpf.h include/linux/bpf.h
index 3aa05ea79ba1..0d7a61df056b 100644
--- include/linux/bpf.h
+++ include/linux/bpf.h
@@ -38,7 +38,11 @@ struct bpf_map_ops {
/* funcs called by prog_array and perf_event_array map */
void *(*map_fd_get_ptr)(struct bpf_map *map, struct file *map_file,
int fd);
- void (*map_fd_put_ptr)(void *ptr);
+ /* If need_defer is true, the implementation should guarantee that
+ * the to-be-put element is still alive before the bpf program, which
+ * may manipulate it, exists.
+ */
+ void (*map_fd_put_ptr)(struct bpf_map *map, void *ptr, bool need_defer);
u32 (*map_gen_lookup)(struct bpf_map *map, struct bpf_insn *insn_buf);
u32 (*map_fd_sys_lookup_elem)(void *ptr);
};
diff --git include/linux/device.h include/linux/device.h
index 65e06a066b67..27b70b810463 100644
--- include/linux/device.h
+++ include/linux/device.h
@@ -1474,6 +1474,9 @@ do { \
WARN_ONCE(condition, "%s %s: " format, \
dev_driver_string(dev), dev_name(dev), ## arg)
+extern __printf(3, 4)
+int dev_err_probe(const struct device *dev, int err, const char *fmt, ...);
+
/* Create alias, so I can be autoloaded. */
#define MODULE_ALIAS_CHARDEV(major,minor) \
MODULE_ALIAS("char-major-" __stringify(major) "-" __stringify(minor))
diff --git include/linux/dmaengine.h include/linux/dmaengine.h
index 8089e28539f1..d5a7d320e05c 100644
--- include/linux/dmaengine.h
+++ include/linux/dmaengine.h
@@ -816,7 +816,8 @@ static inline int dmaengine_slave_config(struct dma_chan *chan,
static inline bool is_slave_direction(enum dma_transfer_direction direction)
{
- return (direction == DMA_MEM_TO_DEV) || (direction == DMA_DEV_TO_MEM);
+ return (direction == DMA_MEM_TO_DEV) || (direction == DMA_DEV_TO_MEM) ||
+ (direction == DMA_DEV_TO_DEV);
}
static inline struct dma_async_tx_descriptor *dmaengine_prep_slave_single(
diff --git include/linux/fs.h include/linux/fs.h
index ff0a992846a3..bd6072556269 100644
--- include/linux/fs.h
+++ include/linux/fs.h
@@ -296,6 +296,8 @@ enum rw_hint {
#define IOCB_SYNC (1 << 5)
#define IOCB_WRITE (1 << 6)
#define IOCB_NOWAIT (1 << 7)
+/* kiocb is a read or write operation submitted by fs/aio.c. */
+#define IOCB_AIO_RW (1 << 23)
struct kiocb {
struct file *ki_filp;
diff --git include/linux/lsm_hooks.h include/linux/lsm_hooks.h
index 569debc49f3d..28ff40daccff 100644
--- include/linux/lsm_hooks.h
+++ include/linux/lsm_hooks.h
@@ -466,6 +466,12 @@
* simple integer value. When @arg represents a user space pointer, it
* should never be used by the security module.
* Return 0 if permission is granted.
+ * @file_ioctl_compat:
+ * @file contains the file structure.
+ * @cmd contains the operation to perform.
+ * @arg contains the operational arguments.
+ * Check permission for a compat ioctl operation on @file.
+ * Return 0 if permission is granted.
* @mmap_addr :
* Check permissions for a mmap operation at @addr.
* @addr contains virtual address that will be used for the operation.
@@ -1486,6 +1492,8 @@ union security_list_options {
void (*file_free_security)(struct file *file);
int (*file_ioctl)(struct file *file, unsigned int cmd,
unsigned long arg);
+ int (*file_ioctl_compat)(struct file *file, unsigned int cmd,
+ unsigned long arg);
int (*mmap_addr)(unsigned long addr);
int (*mmap_file)(struct file *file, unsigned long reqprot,
unsigned long prot, unsigned long flags);
@@ -1764,6 +1772,7 @@ struct security_hook_heads {
struct list_head file_alloc_security;
struct list_head file_free_security;
struct list_head file_ioctl;
+ struct list_head file_ioctl_compat;
struct list_head mmap_addr;
struct list_head mmap_file;
struct list_head file_mprotect;
diff --git include/linux/pci_ids.h include/linux/pci_ids.h
index 83f576d45d78..c977e636a1dd 100644
--- include/linux/pci_ids.h
+++ include/linux/pci_ids.h
@@ -2953,6 +2953,7 @@
#define PCI_DEVICE_ID_INTEL_82443GX_0 0x71a0
#define PCI_DEVICE_ID_INTEL_82443GX_2 0x71a2
#define PCI_DEVICE_ID_INTEL_82372FB_1 0x7601
+#define PCI_DEVICE_ID_INTEL_HDA_ARL 0x7728
#define PCI_DEVICE_ID_INTEL_SCH_LPC 0x8119
#define PCI_DEVICE_ID_INTEL_SCH_IDE 0x811a
#define PCI_DEVICE_ID_INTEL_E6XX_CU 0x8183
diff --git include/linux/security.h include/linux/security.h
index 1c8968a267c2..cf77cd971795 100644
--- include/linux/security.h
+++ include/linux/security.h
@@ -306,6 +306,8 @@ int security_file_permission(struct file *file, int mask);
int security_file_alloc(struct file *file);
void security_file_free(struct file *file);
int security_file_ioctl(struct file *file, unsigned int cmd, unsigned long arg);
+int security_file_ioctl_compat(struct file *file, unsigned int cmd,
+ unsigned long arg);
int security_mmap_file(struct file *file, unsigned long prot,
unsigned long flags);
int security_mmap_addr(unsigned long addr);
@@ -827,6 +829,13 @@ static inline int security_file_ioctl(struct file *file, unsigned int cmd,
return 0;
}
+static inline int security_file_ioctl_compat(struct file *file,
+ unsigned int cmd,
+ unsigned long arg)
+{
+ return 0;
+}
+
static inline int security_mmap_file(struct file *file, unsigned long prot,
unsigned long flags)
{
diff --git include/linux/spi/spi.h include/linux/spi/spi.h
index a8f6606dd498..5c7741ca3b99 100644
--- include/linux/spi/spi.h
+++ include/linux/spi/spi.h
@@ -153,6 +153,7 @@ struct spi_device {
#define SPI_MODE_1 (0|SPI_CPHA)
#define SPI_MODE_2 (SPI_CPOL|0)
#define SPI_MODE_3 (SPI_CPOL|SPI_CPHA)
+#define SPI_MODE_X_MASK (SPI_CPOL|SPI_CPHA)
#define SPI_CS_HIGH 0x04 /* chipselect active high? */
#define SPI_LSB_FIRST 0x08 /* per-word bits-on-wire */
#define SPI_3WIRE 0x10 /* SI/SO signals shared */
diff --git include/linux/units.h include/linux/units.h
new file mode 100644
index 000000000000..a0af6d2ef4e5
--- /dev/null
+++ include/linux/units.h
@@ -0,0 +1,92 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef _LINUX_UNITS_H
+#define _LINUX_UNITS_H
+
+#include <linux/kernel.h>
+
+#define HZ_PER_KHZ 1000UL
+#define KHZ_PER_MHZ 1000UL
+#define HZ_PER_MHZ 1000000UL
+
+#define MILLIWATT_PER_WATT 1000UL
+#define MICROWATT_PER_MILLIWATT 1000UL
+#define MICROWATT_PER_WATT 1000000UL
+
+#define ABSOLUTE_ZERO_MILLICELSIUS -273150
+
+static inline long milli_kelvin_to_millicelsius(long t)
+{
+ return t + ABSOLUTE_ZERO_MILLICELSIUS;
+}
+
+static inline long millicelsius_to_milli_kelvin(long t)
+{
+ return t - ABSOLUTE_ZERO_MILLICELSIUS;
+}
+
+#define MILLIDEGREE_PER_DEGREE 1000
+#define MILLIDEGREE_PER_DECIDEGREE 100
+
+static inline long kelvin_to_millicelsius(long t)
+{
+ return milli_kelvin_to_millicelsius(t * MILLIDEGREE_PER_DEGREE);
+}
+
+static inline long millicelsius_to_kelvin(long t)
+{
+ t = millicelsius_to_milli_kelvin(t);
+
+ return DIV_ROUND_CLOSEST(t, MILLIDEGREE_PER_DEGREE);
+}
+
+static inline long deci_kelvin_to_celsius(long t)
+{
+ t = milli_kelvin_to_millicelsius(t * MILLIDEGREE_PER_DECIDEGREE);
+
+ return DIV_ROUND_CLOSEST(t, MILLIDEGREE_PER_DEGREE);
+}
+
+static inline long celsius_to_deci_kelvin(long t)
+{
+ t = millicelsius_to_milli_kelvin(t * MILLIDEGREE_PER_DEGREE);
+
+ return DIV_ROUND_CLOSEST(t, MILLIDEGREE_PER_DECIDEGREE);
+}
+
+/**
+ * deci_kelvin_to_millicelsius_with_offset - convert Kelvin to Celsius
+ * @t: temperature value in decidegrees Kelvin
+ * @offset: difference between Kelvin and Celsius in millidegrees
+ *
+ * Return: temperature value in millidegrees Celsius
+ */
+static inline long deci_kelvin_to_millicelsius_with_offset(long t, long offset)
+{
+ return t * MILLIDEGREE_PER_DECIDEGREE - offset;
+}
+
+static inline long deci_kelvin_to_millicelsius(long t)
+{
+ return milli_kelvin_to_millicelsius(t * MILLIDEGREE_PER_DECIDEGREE);
+}
+
+static inline long millicelsius_to_deci_kelvin(long t)
+{
+ t = millicelsius_to_milli_kelvin(t);
+
+ return DIV_ROUND_CLOSEST(t, MILLIDEGREE_PER_DECIDEGREE);
+}
+
+static inline long kelvin_to_celsius(long t)
+{
+ return t + DIV_ROUND_CLOSEST(ABSOLUTE_ZERO_MILLICELSIUS,
+ MILLIDEGREE_PER_DEGREE);
+}
+
+static inline long celsius_to_kelvin(long t)
+{
+ return t - DIV_ROUND_CLOSEST(ABSOLUTE_ZERO_MILLICELSIUS,
+ MILLIDEGREE_PER_DEGREE);
+}
+
+#endif /* _LINUX_UNITS_H */
diff --git include/net/af_unix.h include/net/af_unix.h
index 7ec1cdb66be8..e514508bdc92 100644
--- include/net/af_unix.h
+++ include/net/af_unix.h
@@ -43,12 +43,6 @@ struct unix_skb_parms {
#define UNIXCB(skb) (*(struct unix_skb_parms *)&((skb)->cb))
-#define unix_state_lock(s) spin_lock(&unix_sk(s)->lock)
-#define unix_state_unlock(s) spin_unlock(&unix_sk(s)->lock)
-#define unix_state_lock_nested(s) \
- spin_lock_nested(&unix_sk(s)->lock, \
- SINGLE_DEPTH_NESTING)
-
/* The AF_UNIX socket */
struct unix_sock {
/* WARNING: sk has to be the first member */
@@ -72,6 +66,20 @@ static inline struct unix_sock *unix_sk(const struct sock *sk)
return (struct unix_sock *)sk;
}
+#define unix_state_lock(s) spin_lock(&unix_sk(s)->lock)
+#define unix_state_unlock(s) spin_unlock(&unix_sk(s)->lock)
+enum unix_socket_lock_class {
+ U_LOCK_NORMAL,
+ U_LOCK_SECOND, /* for double locking, see unix_state_double_lock(). */
+ U_LOCK_DIAG, /* used while dumping icons, see sk_diag_dump_icons(). */
+};
+
+static inline void unix_state_lock_nested(struct sock *sk,
+ enum unix_socket_lock_class subclass)
+{
+ spin_lock_nested(&unix_sk(sk)->lock, subclass);
+}
+
#define peer_wait peer_wq.wait
long unix_inq_len(struct sock *sk);
diff --git include/net/bluetooth/hci_core.h include/net/bluetooth/hci_core.h
index 8f899ad4a754..bac3d79139b2 100644
--- include/net/bluetooth/hci_core.h
+++ include/net/bluetooth/hci_core.h
@@ -647,7 +647,6 @@ void hci_inquiry_cache_flush(struct hci_dev *hdev);
/* ----- HCI Connections ----- */
enum {
HCI_CONN_AUTH_PEND,
- HCI_CONN_REAUTH_PEND,
HCI_CONN_ENCRYPT_PEND,
HCI_CONN_RSWITCH_PEND,
HCI_CONN_MODE_CHANGE_PEND,
diff --git include/net/dst_ops.h include/net/dst_ops.h
index 443863c7b8da..632086b2f644 100644
--- include/net/dst_ops.h
+++ include/net/dst_ops.h
@@ -16,7 +16,7 @@ struct dst_ops {
unsigned short family;
unsigned int gc_thresh;
- int (*gc)(struct dst_ops *ops);
+ void (*gc)(struct dst_ops *ops);
struct dst_entry * (*check)(struct dst_entry *, __u32 cookie);
unsigned int (*default_advmss)(const struct dst_entry *);
unsigned int (*mtu)(const struct dst_entry *);
@@ -53,9 +53,11 @@ static inline int dst_entries_get_slow(struct dst_ops *dst)
return percpu_counter_sum_positive(&dst->pcpuc_entries);
}
+#define DST_PERCPU_COUNTER_BATCH 32
static inline void dst_entries_add(struct dst_ops *dst, int val)
{
- percpu_counter_add(&dst->pcpuc_entries, val);
+ percpu_counter_add_batch(&dst->pcpuc_entries, val,
+ DST_PERCPU_COUNTER_BATCH);
}
static inline int dst_entries_init(struct dst_ops *dst)
diff --git include/net/llc_pdu.h include/net/llc_pdu.h
index 49aa79c7b278..581cd37aa98b 100644
--- include/net/llc_pdu.h
+++ include/net/llc_pdu.h
@@ -262,8 +262,7 @@ static inline void llc_pdu_header_init(struct sk_buff *skb, u8 type,
*/
static inline void llc_pdu_decode_sa(struct sk_buff *skb, u8 *sa)
{
- if (skb->protocol == htons(ETH_P_802_2))
- memcpy(sa, eth_hdr(skb)->h_source, ETH_ALEN);
+ memcpy(sa, eth_hdr(skb)->h_source, ETH_ALEN);
}
/**
@@ -275,8 +274,7 @@ static inline void llc_pdu_decode_sa(struct sk_buff *skb, u8 *sa)
*/
static inline void llc_pdu_decode_da(struct sk_buff *skb, u8 *da)
{
- if (skb->protocol == htons(ETH_P_802_2))
- memcpy(da, eth_hdr(skb)->h_dest, ETH_ALEN);
+ memcpy(da, eth_hdr(skb)->h_dest, ETH_ALEN);
}
/**
diff --git include/net/netns/ipv6.h include/net/netns/ipv6.h
index c004d051c2d3..290ca18589ee 100644
--- include/net/netns/ipv6.h
+++ include/net/netns/ipv6.h
@@ -64,8 +64,8 @@ struct netns_ipv6 {
struct dst_ops ip6_dst_ops;
rwlock_t fib6_walker_lock;
spinlock_t fib6_gc_lock;
- unsigned int ip6_rt_gc_expire;
- unsigned long ip6_rt_last_gc;
+ atomic_t ip6_rt_gc_expire;
+ unsigned long ip6_rt_last_gc;
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
bool fib6_has_custom_rules;
struct rt6_info *ip6_prohibit_entry;
diff --git include/uapi/linux/btrfs.h include/uapi/linux/btrfs.h
index 86d2a52b4665..ee7a34c237a5 100644
--- include/uapi/linux/btrfs.h
+++ include/uapi/linux/btrfs.h
@@ -522,6 +522,9 @@ struct btrfs_ioctl_clone_range_args {
*/
#define BTRFS_DEFRAG_RANGE_COMPRESS 1
#define BTRFS_DEFRAG_RANGE_START_IO 2
+#define BTRFS_DEFRAG_RANGE_FLAGS_SUPP (BTRFS_DEFRAG_RANGE_COMPRESS | \
+ BTRFS_DEFRAG_RANGE_START_IO)
+
struct btrfs_ioctl_defrag_range_args {
/* start of the defrag operation */
__u64 start;
diff --git include/uapi/linux/netfilter/nf_tables.h include/uapi/linux/netfilter/nf_tables.h
index c7bb18ea4962..835e9f345f35 100644
--- include/uapi/linux/netfilter/nf_tables.h
+++ include/uapi/linux/netfilter/nf_tables.h
@@ -229,9 +229,11 @@ enum nft_rule_attributes {
/**
* enum nft_rule_compat_flags - nf_tables rule compat flags
*
+ * @NFT_RULE_COMPAT_F_UNUSED: unused
* @NFT_RULE_COMPAT_F_INV: invert the check result
*/
enum nft_rule_compat_flags {
+ NFT_RULE_COMPAT_F_UNUSED = (1 << 0),
NFT_RULE_COMPAT_F_INV = (1 << 1),
NFT_RULE_COMPAT_F_MASK = NFT_RULE_COMPAT_F_INV,
};

View File

@ -1 +1 @@
5c750a976c8398092383783db26718002a67882bd8a7348a4d8f551cac02ee37 /usr/bin/make_fiwix_initrd
16d10331b900481d027b69bbd95ea070fe48cb0e4c072a74b62f3d729ee718ab /usr/bin/make_fiwix_initrd

View File

@ -1,2 +1,3 @@
https://mirrors.kernel.org/gnu/m4/m4-1.4.19.tar.xz 63aede5c6d33b6d9b13511cd0be2cac046f2e70fd0a07aa9573a04a82783af96
http://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-3639c57.tar.gz 97dfbad67832641bc7f73437617b78abeafb9946723f19cf4c2ceecfc65fa48d
https://files.bootstrapping.world/gnulib-3639c57.tar.gz 97dfbad67832641bc7f73437617b78abeafb9946723f19cf4c2ceecfc65fa48d

View File

@ -1 +1 @@
b1345773131fa42c6b746482a0031037823fb772dd81b7b3771c51db9aeeb7f9 /usr/bin/make
43ad49ef3345573286a93ce74c1c952edd600fb1335529d8394a53bc87189fd1 /usr/bin/make

View File

@ -33,7 +33,7 @@
build: checksum-transcriber-1.0
build: simple-patch-1.0
build: mes-0.25
build: mes-0.26
build: tcc-0.9.26
build: tcc-0.9.27
define: BUILD_FIWIX = ( KERNEL_BOOTSTRAP == True || BUILD_KERNELS == True )
@ -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
@ -110,7 +111,7 @@ improve: populate_device_nodes
build: gcc-4.0.4
build: findutils-4.2.33
build: musl-1.2.4
build: linux-headers-4.14.336
build: linux-headers-4.14.341-openela
build: gcc-4.0.4
build: util-linux-2.19.1
build: e2fsprogs-1.45.7
@ -124,7 +125,7 @@ build: kexec-linux-1.0.0 ( BUILD_LINUX == True )
build: kexec-tools-2.0.22 ( BUILD_LINUX == True )
improve: clean_sources
improve: clean_artifacts
build: linux-4.14.336 ( BUILD_LINUX == True )
build: linux-4.14.341-openela ( BUILD_LINUX == True )
jump: break ( INTERNAL_CI == pass1 )
improve: populate_device_nodes
jump: linux ( CHROOT == False )
@ -157,7 +158,7 @@ build: dist-3.5-236
build: perl-5.32.1
uninstall: perl-5.6.2 perl-5.10.1
build: libarchive-3.5.2
build: openssl-1.1.1l
build: openssl-3.0.13
build: ca-certificates-3.95
build: curl-8.5.0
build: zlib-1.2.13

View File

@ -1,2 +0,0 @@
https://mirrors.kernel.org/gnu/mes/mes-0.25.tar.gz 325250b3567ed9203ba70161c835af01079e73ebed97b4b5bb77ca500b828940
https://download.savannah.gnu.org/releases/nyacc/nyacc-1.00.2.tar.gz f36e4fb7dd524dc3f4b354d3d5313f69e7ce5a6ae93711e8cf6d51eaa8d2b318

View File

@ -4,4 +4,4 @@
// SPDX-License-Identifier: GPL-3.0-or-later
#undef SYSTEM_LIBC
#define MES_VERSION "0.25"
#define MES_VERSION "0.26"

View File

@ -1,14 +1,14 @@
4c722a7455db030122072f3bb7b2733a1b826460c1022308d314775685838447 /usr/bin/mes
c149469a741b170bfe3da4e737b3d68490996cc957d593ea5555301de0329afc /usr/bin/mes-m2
3296b313d02fe4a4f7ba37446b5cdf9e7c472426a942b7e7227fe7f9929ad97f /usr/bin/mescc.scm
1e76db632c2d1929a20b09b248feab99c54278605a33816bcb5357da59fd110b /usr/bin/mes
169f2b759248d2cdf3073ce3a7128857491eb0e26553b3a21d00d9d2c0fc6e55 /usr/bin/mes-m2
a63a6613ecc8f38f00675ea227b2198fbdaf0599c56e6911518da05854d7fa33 /usr/bin/mescc.scm
50441b03b915bd51fb811749901a56b3c42186b45f7f466dbf23337eafad520c /usr/lib/riscv64-mes/crt1.s
a96a0a8f1b2dd1e5a7dad8264c92b5448be7d29aa7706d40d67be978d5ddc305 /usr/lib/riscv64-mes/crt1.o
1511e99da81caa02490078c7a880ac97d439b6fec99cf846dc2044468e2444b8 /usr/lib/riscv64-mes/riscv64.M1
8f7e94270c7cbb076ff5fe3cdd0d6c891537e7945e5aa4bdbf167867471bfbc2 /usr/lib/riscv64-mes/libmescc.s
dc017df6d381bd13909f01eea43a9baf5210312715e1bb95c8d4df5f35566276 /usr/lib/riscv64-mes/libc+tcc.s
409ef724a5f67bcfec1696e5f99d15b089e7e2b9d8c9a91134d6e2bcdb515d9c /usr/lib/riscv64-mes/libc.s
24134e4f0b9b6f9f81b73cf473901847bc06f4ecb1071b8c7db52d20333432a0 /usr/lib/riscv64-mes/libc+tcc.s
f98c4b82fa99a7b298653c534d2337a0cad94b879e280d5407adf7fa50f21c7e /usr/lib/riscv64-mes/libc.s
5027a055f6c564417bf5194a9b43a8a93ae59d9a26ce75a55895f253a6aab2c2 /usr/lib/riscv64-mes/libmescc.a
938cbb375ca287c3a3e19d3b86ccf1e805963f6b47c4f7fcf3c857edf77f19f3 /usr/lib/riscv64-mes/libc+tcc.a
a994b9aeeff0b7a0cc36e0214848ede3b0dc9d11dd3986562713a672dcb6d3f6 /usr/lib/riscv64-mes/libc.a
24c10f036d406d7703e1900ed6b6fbeef2173abba5c70bd170d1f0b3dc691156 /usr/lib/riscv64-mes/libc+tcc.a
aeb8ba8c25a7edc6a3893049393fbf6695b7bdb6797d83d0f86c7a4fe1e4537b /usr/lib/riscv64-mes/libc.a
22ad5f7b6e5ea07b275619956bddd913b061d6ad492a442e4b6b2f28898e50ae /usr/lib/linux/riscv64-mes/elf64-header.hex2
94c796cb34a6e581491d0cf609e7fad01715c84a17b8b2017178a36568a80e48 /usr/lib/linux/riscv64-mes/elf64-footer-single-main.hex2

View File

@ -1,14 +1,14 @@
ab14556dd405debd1fc4aa18bffea9ee8c89bc8fa89f745e8fb20c9da83e5809 /usr/bin/mes
ddaa6eaaedc5f20298474b4118f12ef86e9e9a5b681893fb138ade189e971caf /usr/bin/mes-m2
834320264b245728c2270b2a60f1ceb5f63de8a79bcd99f5c6bba6be11ed7223 /usr/bin/mescc.scm
26db12128c08a6c83b8a96277949a46c8887f4c597df622f89ab4a52366aed8e /usr/bin/mes
d3e1278cac1d7d3d5fb82042d635a43300a576059496adf9ea71d8e978de2f73 /usr/bin/mes-m2
84ac050c808a858cc58b17388a063d4a82a1bf975db4113202eb539c1eee84e1 /usr/bin/mescc.scm
234c264965116a24583dd569050adc766d7cc2da83b1db38085210f26031b70c /usr/lib/x86-mes/crt1.s
494f184a87175abc485a898c250c3831b2b5dcf5aead46591e00b39d1c5529fc /usr/lib/x86-mes/crt1.o
8afe05c3e1e8848b6f3e8de751524de5f69818eb8524659827918e3fddde3e1e /usr/lib/x86-mes/x86.M1
771988b1df0dfa04bf5f1ab72af18c32b1a8205a07f10e5235d79dac0a072b00 /usr/lib/x86-mes/libmescc.s
d19d053950349296c7d33a6297831e0da12ff79c5b758187ce8b7759192f7d4a /usr/lib/x86-mes/libc+tcc.s
5ea659501bda293f9297b599b1385ed4d54bab0e6daf3207fc61429adc9abc78 /usr/lib/x86-mes/libc.s
aced8d8545f2274555c975e8db86e8804f3ba5a746e2a69bb02ca2905c257791 /usr/lib/x86-mes/libc+tcc.s
40c22be10018eaf9425f6b1b45e6ad2e4e169f8df12c4f03f271c892fe3422cd /usr/lib/x86-mes/libc.s
52f697278ccdff5e457f27e10f465a91ab9858f0c6cee0683831cadb3109bbb7 /usr/lib/x86-mes/libmescc.a
90d3e29ecc5af3a94f6540deb6e6f7a713da1c921f7853867f4e4bcc861e4a56 /usr/lib/x86-mes/libc+tcc.a
db62874a6cebeb0652945cb91cb91ade9783e631aaef5ec279e11aeca6adc421 /usr/lib/x86-mes/libc.a
ccf0ed21e4a8b6ed970f60c7ee7b1eb4cdd136e6a717632c538053d42231e155 /usr/lib/x86-mes/libc+tcc.a
c9c684c17a32b7adc1546a6ebba11a56ac88e6af2101f45cc0e8cd320555d735 /usr/lib/x86-mes/libc.a
82cac4353375a52efecc6fda1f8b37373988fe41ed197b63d8e906321b105d77 /usr/lib/linux/x86-mes/elf32-header.hex2
f9873d9aab12e70f24d97f8319e17a1e698ca60779ae9a6ab3ede648cd60fc61 /usr/lib/linux/x86-mes/elf32-footer-single-main.hex2

File diff suppressed because one or more lines are too long

4
steps/mes-0.26/sources Normal file
View File

@ -0,0 +1,4 @@
https://mirrors.kernel.org/gnu/mes/mes-0.26.tar.gz 0f2210ad5896249466a0fc9a509e86c9a16db2b722741c6dfb5e8f7b33e385d4
https://github.com/Googulator/nyacc/releases/download/V1.00.2-lb1/nyacc-1.00.2-lb1.tar.gz 708c943f89c972910e9544ee077771acbd0a2c0fc6d33496fe158264ddb65327
https://archive.org/download/live-bootstrap-sources/nyacc-1.00.2-lb1.tar.gz 708c943f89c972910e9544ee077771acbd0a2c0fc6d33496fe158264ddb65327
https://files.bootstrapping.world/nyacc-1.00.2-lb1.tar.gz 708c943f89c972910e9544ee077771acbd0a2c0fc6d33496fe158264ddb65327

View File

@ -1,64 +0,0 @@
SPDX-FileCopyrightText: 2021 Paul Dersey <pdersey@gmail.com>
SPDX-License-Identifier: MIT
Make sure real __stdio_exit() is called on exit and not the dummy
noop versions. This fixes the issue of truncated output when redirecting
output to a file or pipe. It also fixes truncated output on programs
that forget to call fclose()
diff --git a/src/exit/exit.c b/src/exit/exit.c
index a6869b37..a4164682 100644
--- src/exit/exit.c
+++ src/exit/exit.c
@@ -2,16 +2,6 @@
#include <stdint.h>
#include "libc.h"
-static void dummy()
-{
-}
-
-/* atexit.c and __stdio_exit.c override these. the latter is linked
- * as a consequence of linking either __toread.c or __towrite.c. */
-weak_alias(dummy, __funcs_on_exit);
-weak_alias(dummy, __stdio_exit);
-weak_alias(dummy, _fini);
-
extern weak hidden void (*const __fini_array_start)(void), (*const __fini_array_end)(void);
static void libc_exit_fini(void)
diff --git a/src/internal/stdio_impl.h b/src/internal/stdio_impl.h
index d7398f59..69141813 100644
--- src/internal/stdio_impl.h
+++ src/internal/stdio_impl.h
@@ -47,9 +47,9 @@ struct _IO_FILE {
struct __locale_struct *locale;
};
-extern hidden FILE *volatile __stdin_used;
-extern hidden FILE *volatile __stdout_used;
-extern hidden FILE *volatile __stderr_used;
+extern FILE *volatile __stdin_used;
+extern FILE *volatile __stdout_used;
+extern FILE *volatile __stderr_used;
hidden int __lockfile(FILE *);
hidden void __unlockfile(FILE *);
diff --git a/src/stdio/__stdio_exit.c b/src/stdio/__stdio_exit.c
index a5e42c67..5947a141 100644
--- src/stdio/__stdio_exit.c
+++ src/stdio/__stdio_exit.c
@@ -1,10 +1,5 @@
#include "stdio_impl.h"
-static FILE *volatile dummy_file = 0;
-weak_alias(dummy_file, __stdin_used);
-weak_alias(dummy_file, __stdout_used);
-weak_alias(dummy_file, __stderr_used);
-
static void close_file(FILE *f)
{
if (!f) return;
--
2.30.0

View File

@ -1 +0,0 @@
http://mirror.math.princeton.edu/pub/openssl/source/old/1.1.1/openssl-1.1.1l.tar.gz 0b7a3e5e59c34827fe0c3a74b7ec8baef302b98fa80088d7f9153aa16fa76bd1

View File

@ -8,18 +8,15 @@
src_prepare() {
default
# Remove two useless manpages that code in hostname
rm doc/man5/x509v3_config.pod doc/man5/config.pod
# Remove a bunch of pregenerated files
# thanks for making these easy to find :)
find . -name build.info -exec grep 'GENERATE\[' {} \; | sed 's/.*\[//' | sed 's/\].*$//' | xargs -I{} find . -name {} -delete
}
src_configure() {
MACHINE=i386 ./config --prefix="${PREFIX}" \
./config --prefix="${PREFIX}" \
--libdir="${LIBDIR}" \
no-shared
no-shared linux-generic32
}
src_compile() {
@ -30,7 +27,7 @@ src_compile() {
src_install() {
default
rm -r "${DESTDIR}${PREFIX}/share/doc/openssl/html/man"{1,3,7}
rm -r "${DESTDIR}${PREFIX}/share/man/man"{1,3,7}
rm -r "${DESTDIR}${PREFIX}/share/doc/openssl/html/man"{1,3,5,7}
rm -r "${DESTDIR}${PREFIX}/share/man/man"{1,3,5,7}
rm -r "${DESTDIR}${PREFIX}/ssl/misc"
}

View File

@ -0,0 +1,2 @@
http://ftp.openssl.org/source/openssl-3.0.13.tar.gz 88525753f79d3bec27d2fa7c66aa0b92b3aa9498dafd93d7cfa4b3780cdae313
http://ftp.openssl.org/source/old/3.0/openssl-3.0.13.tar.gz 88525753f79d3bec27d2fa7c66aa0b92b3aa9498dafd93d7cfa4b3780cdae313

View File

@ -1 +1 @@
cdb22238dfa7f659c3d7afae6e93f27b4c84a40e082b20bc78a8b19a0dc79536 /usr/bin/patch
728596bca1f67ec8386f312d8738eeb398203505851faad91406c29a299bc748 /usr/bin/patch

View File

@ -1,2 +1,3 @@
https://mirrors.kernel.org/gnu/patch/patch-2.7.6.tar.xz ac610bda97abe0d9f6b7c963255a11dcb196c25e337c61f94e4778d632f1d8fd
https://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-e017871.tar.gz a285dc300c3d9c25cc06e38827ef40f6073ec3b9b0fcb5bba433f943be92d8d4
https://files.bootstrapping.world/gnulib-e017871.tar.gz a285dc300c3d9c25cc06e38827ef40f6073ec3b9b0fcb5bba433f943be92d8d4

View File

@ -34,7 +34,7 @@ NOTE: this patch CANNOT be applied to a non-live-bootstrap environment.
# because the A-Z/a-z are not consecutive.
-myuname=`echo $myuname | $sed -e "s,['/],,g" | \
- ./tr '[A-Z]' '[a-z]' | $tr $trnl ' '`
+myuname="linux (none) 4.14.336 #1 mon jan 1 00:00:01 1970 i686 gnulinux"
+myuname="linux (none) 4.14.341-openela #1 mon jan 1 00:00:01 1970 i686 gnulinux"
?X: Save the value we just computed to reset myuname after we get done here.
newmyuname="$myuname"
dflt=n
@ -43,7 +43,7 @@ NOTE: this patch CANNOT be applied to a non-live-bootstrap environment.
?X: into using the SysV case!
gnu) osname=gnu
- osvers="$3" ;;
+ osvers="4.14.336" ;;
+ osvers="4.14.341-openela" ;;
?X: HP-UX uname -a gives something like
?X: HP-UX foobar B.10.20 A 9000/735 2016483812 two-user license
?X: Preserve the full 10.20 string instead of the previous plain '10'.

View File

@ -41,7 +41,7 @@ NOTE: this patch CANNOT be applied to a non-live-bootstrap environment.
linux) osname=linux
case "$3" in
- *) osvers="$3" ;;
+ *) osvers="4.14.336" ;;
+ *) osvers="4.14.341-openela" ;;
esac
;;
MiNT) osname=mint

View File

@ -10,10 +10,10 @@ src_prepare() {
Misc/stable_abi.toml
# Regenerate ssl_data for ssl module
rm Modules/_ssl_data_300.h Modules/_ssl_data.h
python -B Tools/ssl/make_ssl_data.py ../openssl-1.1.1l Modules/_ssl_data_111.h
rm Modules/_ssl_data_111.h Modules/_ssl_data.h
python -B Tools/ssl/make_ssl_data.py ../openssl-3.0.13 Modules/_ssl_data_300.h
sed -i 's#$(srcdir)/Modules/_ssl_data.h ##' Makefile.pre.in
sed -i 's#$(srcdir)/Modules/_ssl_data_300.h ##' Makefile.pre.in
sed -i 's#$(srcdir)/Modules/_ssl_data_111.h ##' Makefile.pre.in
# Regenerate encodings
grep generated -r . -l | grep encodings | xargs rm

View File

@ -21,4 +21,5 @@ http://ftp.unicode.org/Public/14.0.0/ucd/CaseFolding.txt a566cd48687b2cd897e0250
http://ftp.unicode.org/Public/14.0.0/ucd/Unihan.zip 2ae4519b2b82cd4d15379c17e57bfb12c33c0f54da4977de03b2b04bcf11852d Unihan-14.0.0.zip
http://ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/CP437.TXT 6bad4dabcdf5940227c7d81fab130dcb18a77850b5d79de28b5dc4e047b0aaac
https://www.ietf.org/rfc/rfc3454.txt eb722fa698fb7e8823b835d9fd263e4cdb8f1c7b0d234edf7f0e3bd2ccbb2c79
http://mirror.math.princeton.edu/pub/openssl/source/old/1.1.1/openssl-1.1.1l.tar.gz 0b7a3e5e59c34827fe0c3a74b7ec8baef302b98fa80088d7f9153aa16fa76bd1
http://ftp.openssl.org/source/openssl-3.0.13.tar.gz 88525753f79d3bec27d2fa7c66aa0b92b3aa9498dafd93d7cfa4b3780cdae313
http://ftp.openssl.org/source/old/3.0/openssl-3.0.13.tar.gz 88525753f79d3bec27d2fa7c66aa0b92b3aa9498dafd93d7cfa4b3780cdae313

View File

@ -1 +1 @@
27dbc29d04ad2a2905ab56c198660510010377062d716bc791a8d0e281fec4d4 /usr/bin/sed
58d2dd86201ed5ed48f546876eae862f6749983354e0408234d0801796dc8c0c /usr/bin/sed

View File

@ -1,2 +1,3 @@
https://mirrors.kernel.org/gnu/sed/sed-4.8.tar.xz f79b0cfea71b37a8eeec8490db6c5f7ae7719c35587f21edb0617f370eeff633
http://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-d279bc.tar.gz 12cfa21abf618a274017d6b18e95fc6582519d7c08e2403e5c5772ccdd5b85f4
https://files.bootstrapping.world/gnulib-d279bc.tar.gz 12cfa21abf618a274017d6b18e95fc6582519d7c08e2403e5c5772ccdd5b85f4

View File

@ -11,10 +11,10 @@ M2-Mesoplanet --architecture ${ARCH} -f src/simple-patch.c -o ${BINDIR}/simple-p
# Checksums
if match x${UPDATE_CHECKSUMS} xTrue; then
sha256sum -o ${pkg}.checksums \
sha256sum -o ${pkg}.${ARCH}.checksums \
/usr/bin/simple-patch
cp ${pkg}.checksums ${SRCDIR}
cp ${pkg}.${ARCH}.checksums ${SRCDIR}
else
sha256sum -c ${pkg}.${ARCH}.checksums
fi

View File

@ -0,0 +1 @@
0afc8a60b8b9f2c52f7836c74136160c2c83d38afc0f2181bc24a38f88a6b3a0 /usr/bin/simple-patch

View File

@ -0,0 +1 @@
a06cbf887341ea5387e7947bc4e01a07349ad5b604b214e6b0dab4a6c3e0e30b /usr/bin/simple-patch

Some files were not shown because too many files have changed in this diff Show More