!1 I8QZ0I: init jdk21
From: @kuenking111 Reviewed-by: @alexanderbill Signed-off-by: @alexanderbill
This commit is contained in:
commit
782c9b183f
347
LICENSE
Normal file
347
LICENSE
Normal file
@ -0,0 +1,347 @@
|
|||||||
|
The GNU General Public License (GPL)
|
||||||
|
|
||||||
|
Version 2, June 1991
|
||||||
|
|
||||||
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies of this license
|
||||||
|
document, but changing it is not allowed.
|
||||||
|
|
||||||
|
Preamble
|
||||||
|
|
||||||
|
The licenses for most software are designed to take away your freedom to share
|
||||||
|
and change it. By contrast, the GNU General Public License is intended to
|
||||||
|
guarantee your freedom to share and change free software--to make sure the
|
||||||
|
software is free for all its users. This General Public License applies to
|
||||||
|
most of the Free Software Foundation's software and to any other program whose
|
||||||
|
authors commit to using it. (Some other Free Software Foundation software is
|
||||||
|
covered by the GNU Library General Public License instead.) You can apply it to
|
||||||
|
your programs, too.
|
||||||
|
|
||||||
|
When we speak of free software, we are referring to freedom, not price. Our
|
||||||
|
General Public Licenses are designed to make sure that you have the freedom to
|
||||||
|
distribute copies of free software (and charge for this service if you wish),
|
||||||
|
that you receive source code or can get it if you want it, that you can change
|
||||||
|
the software or use pieces of it in new free programs; and that you know you
|
||||||
|
can do these things.
|
||||||
|
|
||||||
|
To protect your rights, we need to make restrictions that forbid anyone to deny
|
||||||
|
you these rights or to ask you to surrender the rights. These restrictions
|
||||||
|
translate to certain responsibilities for you if you distribute copies of the
|
||||||
|
software, or if you modify it.
|
||||||
|
|
||||||
|
For example, if you distribute copies of such a program, whether gratis or for
|
||||||
|
a fee, you must give the recipients all the rights that you have. You must
|
||||||
|
make sure that they, too, receive or can get the source code. And you must
|
||||||
|
show them these terms so they know their rights.
|
||||||
|
|
||||||
|
We protect your rights with two steps: (1) copyright the software, and (2)
|
||||||
|
offer you this license which gives you legal permission to copy, distribute
|
||||||
|
and/or modify the software.
|
||||||
|
|
||||||
|
Also, for each author's protection and ours, we want to make certain that
|
||||||
|
everyone understands that there is no warranty for this free software. If the
|
||||||
|
software is modified by someone else and passed on, we want its recipients to
|
||||||
|
know that what they have is not the original, so that any problems introduced
|
||||||
|
by others will not reflect on the original authors' reputations.
|
||||||
|
|
||||||
|
Finally, any free program is threatened constantly by software patents. We
|
||||||
|
wish to avoid the danger that redistributors of a free program will
|
||||||
|
individually obtain patent licenses, in effect making the program proprietary.
|
||||||
|
To prevent this, we have made it clear that any patent must be licensed for
|
||||||
|
everyone's free use or not licensed at all.
|
||||||
|
|
||||||
|
The precise terms and conditions for copying, distribution and modification
|
||||||
|
follow.
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
|
0. This License applies to any program or other work which contains a notice
|
||||||
|
placed by the copyright holder saying it may be distributed under the terms of
|
||||||
|
this General Public License. The "Program", below, refers to any such program
|
||||||
|
or work, and a "work based on the Program" means either the Program or any
|
||||||
|
derivative work under copyright law: that is to say, a work containing the
|
||||||
|
Program or a portion of it, either verbatim or with modifications and/or
|
||||||
|
translated into another language. (Hereinafter, translation is included
|
||||||
|
without limitation in the term "modification".) Each licensee is addressed as
|
||||||
|
"you".
|
||||||
|
|
||||||
|
Activities other than copying, distribution and modification are not covered by
|
||||||
|
this License; they are outside its scope. The act of running the Program is
|
||||||
|
not restricted, and the output from the Program is covered only if its contents
|
||||||
|
constitute a work based on the Program (independent of having been made by
|
||||||
|
running the Program). Whether that is true depends on what the Program does.
|
||||||
|
|
||||||
|
1. You may copy and distribute verbatim copies of the Program's source code as
|
||||||
|
you receive it, in any medium, provided that you conspicuously and
|
||||||
|
appropriately publish on each copy an appropriate copyright notice and
|
||||||
|
disclaimer of warranty; keep intact all the notices that refer to this License
|
||||||
|
and to the absence of any warranty; and give any other recipients of the
|
||||||
|
Program a copy of this License along with the Program.
|
||||||
|
|
||||||
|
You may charge a fee for the physical act of transferring a copy, and you may
|
||||||
|
at your option offer warranty protection in exchange for a fee.
|
||||||
|
|
||||||
|
2. You may modify your copy or copies of the Program or any portion of it, thus
|
||||||
|
forming a work based on the Program, and copy and distribute such modifications
|
||||||
|
or work under the terms of Section 1 above, provided that you also meet all of
|
||||||
|
these conditions:
|
||||||
|
|
||||||
|
a) You must cause the modified files to carry prominent notices stating
|
||||||
|
that you changed the files and the date of any change.
|
||||||
|
|
||||||
|
b) You must cause any work that you distribute or publish, that in whole or
|
||||||
|
in part contains or is derived from the Program or any part thereof, to be
|
||||||
|
licensed as a whole at no charge to all third parties under the terms of
|
||||||
|
this License.
|
||||||
|
|
||||||
|
c) If the modified program normally reads commands interactively when run,
|
||||||
|
you must cause it, when started running for such interactive use in the
|
||||||
|
most ordinary way, to print or display an announcement including an
|
||||||
|
appropriate copyright notice and a notice that there is no warranty (or
|
||||||
|
else, saying that you provide a warranty) and that users may redistribute
|
||||||
|
the program under these conditions, and telling the user how to view a copy
|
||||||
|
of this License. (Exception: if the Program itself is interactive but does
|
||||||
|
not normally print such an announcement, your work based on the Program is
|
||||||
|
not required to print an announcement.)
|
||||||
|
|
||||||
|
These requirements apply to the modified work as a whole. If identifiable
|
||||||
|
sections of that work are not derived from the Program, and can be reasonably
|
||||||
|
considered independent and separate works in themselves, then this License, and
|
||||||
|
its terms, do not apply to those sections when you distribute them as separate
|
||||||
|
works. But when you distribute the same sections as part of a whole which is a
|
||||||
|
work based on the Program, the distribution of the whole must be on the terms
|
||||||
|
of this License, whose permissions for other licensees extend to the entire
|
||||||
|
whole, and thus to each and every part regardless of who wrote it.
|
||||||
|
|
||||||
|
Thus, it is not the intent of this section to claim rights or contest your
|
||||||
|
rights to work written entirely by you; rather, the intent is to exercise the
|
||||||
|
right to control the distribution of derivative or collective works based on
|
||||||
|
the Program.
|
||||||
|
|
||||||
|
In addition, mere aggregation of another work not based on the Program with the
|
||||||
|
Program (or with a work based on the Program) on a volume of a storage or
|
||||||
|
distribution medium does not bring the other work under the scope of this
|
||||||
|
License.
|
||||||
|
|
||||||
|
3. You may copy and distribute the Program (or a work based on it, under
|
||||||
|
Section 2) in object code or executable form under the terms of Sections 1 and
|
||||||
|
2 above provided that you also do one of the following:
|
||||||
|
|
||||||
|
a) Accompany it with the complete corresponding machine-readable source
|
||||||
|
code, which must be distributed under the terms of Sections 1 and 2 above
|
||||||
|
on a medium customarily used for software interchange; or,
|
||||||
|
|
||||||
|
b) Accompany it with a written offer, valid for at least three years, to
|
||||||
|
give any third party, for a charge no more than your cost of physically
|
||||||
|
performing source distribution, a complete machine-readable copy of the
|
||||||
|
corresponding source code, to be distributed under the terms of Sections 1
|
||||||
|
and 2 above on a medium customarily used for software interchange; or,
|
||||||
|
|
||||||
|
c) Accompany it with the information you received as to the offer to
|
||||||
|
distribute corresponding source code. (This alternative is allowed only
|
||||||
|
for noncommercial distribution and only if you received the program in
|
||||||
|
object code or executable form with such an offer, in accord with
|
||||||
|
Subsection b above.)
|
||||||
|
|
||||||
|
The source code for a work means the preferred form of the work for making
|
||||||
|
modifications to it. For an executable work, complete source code means all
|
||||||
|
the source code for all modules it contains, plus any associated interface
|
||||||
|
definition files, plus the scripts used to control compilation and installation
|
||||||
|
of the executable. However, as a special exception, the source code
|
||||||
|
distributed need not include anything that is normally distributed (in either
|
||||||
|
source or binary form) with the major components (compiler, kernel, and so on)
|
||||||
|
of the operating system on which the executable runs, unless that component
|
||||||
|
itself accompanies the executable.
|
||||||
|
|
||||||
|
If distribution of executable or object code is made by offering access to copy
|
||||||
|
from a designated place, then offering equivalent access to copy the source
|
||||||
|
code from the same place counts as distribution of the source code, even though
|
||||||
|
third parties are not compelled to copy the source along with the object code.
|
||||||
|
|
||||||
|
4. You may not copy, modify, sublicense, or distribute the Program except as
|
||||||
|
expressly provided under this License. Any attempt otherwise to copy, modify,
|
||||||
|
sublicense or distribute the Program is void, and will automatically terminate
|
||||||
|
your rights under this License. However, parties who have received copies, or
|
||||||
|
rights, from you under this License will not have their licenses terminated so
|
||||||
|
long as such parties remain in full compliance.
|
||||||
|
|
||||||
|
5. You are not required to accept this License, since you have not signed it.
|
||||||
|
However, nothing else grants you permission to modify or distribute the Program
|
||||||
|
or its derivative works. These actions are prohibited by law if you do not
|
||||||
|
accept this License. Therefore, by modifying or distributing the Program (or
|
||||||
|
any work based on the Program), you indicate your acceptance of this License to
|
||||||
|
do so, and all its terms and conditions for copying, distributing or modifying
|
||||||
|
the Program or works based on it.
|
||||||
|
|
||||||
|
6. Each time you redistribute the Program (or any work based on the Program),
|
||||||
|
the recipient automatically receives a license from the original licensor to
|
||||||
|
copy, distribute or modify the Program subject to these terms and conditions.
|
||||||
|
You may not impose any further restrictions on the recipients' exercise of the
|
||||||
|
rights granted herein. You are not responsible for enforcing compliance by
|
||||||
|
third parties to this License.
|
||||||
|
|
||||||
|
7. If, as a consequence of a court judgment or allegation of patent
|
||||||
|
infringement or for any other reason (not limited to patent issues), conditions
|
||||||
|
are imposed on you (whether by court order, agreement or otherwise) that
|
||||||
|
contradict the conditions of this License, they do not excuse you from the
|
||||||
|
conditions of this License. If you cannot distribute so as to satisfy
|
||||||
|
simultaneously your obligations under this License and any other pertinent
|
||||||
|
obligations, then as a consequence you may not distribute the Program at all.
|
||||||
|
For example, if a patent license would not permit royalty-free redistribution
|
||||||
|
of the Program by all those who receive copies directly or indirectly through
|
||||||
|
you, then the only way you could satisfy both it and this License would be to
|
||||||
|
refrain entirely from distribution of the Program.
|
||||||
|
|
||||||
|
If any portion of this section is held invalid or unenforceable under any
|
||||||
|
particular circumstance, the balance of the section is intended to apply and
|
||||||
|
the section as a whole is intended to apply in other circumstances.
|
||||||
|
|
||||||
|
It is not the purpose of this section to induce you to infringe any patents or
|
||||||
|
other property right claims or to contest validity of any such claims; this
|
||||||
|
section has the sole purpose of protecting the integrity of the free software
|
||||||
|
distribution system, which is implemented by public license practices. Many
|
||||||
|
people have made generous contributions to the wide range of software
|
||||||
|
distributed through that system in reliance on consistent application of that
|
||||||
|
system; it is up to the author/donor to decide if he or she is willing to
|
||||||
|
distribute software through any other system and a licensee cannot impose that
|
||||||
|
choice.
|
||||||
|
|
||||||
|
This section is intended to make thoroughly clear what is believed to be a
|
||||||
|
consequence of the rest of this License.
|
||||||
|
|
||||||
|
8. If the distribution and/or use of the Program is restricted in certain
|
||||||
|
countries either by patents or by copyrighted interfaces, the original
|
||||||
|
copyright holder who places the Program under this License may add an explicit
|
||||||
|
geographical distribution limitation excluding those countries, so that
|
||||||
|
distribution is permitted only in or among countries not thus excluded. In
|
||||||
|
such case, this License incorporates the limitation as if written in the body
|
||||||
|
of this License.
|
||||||
|
|
||||||
|
9. The Free Software Foundation may publish revised and/or new versions of the
|
||||||
|
General Public License from time to time. Such new versions will be similar in
|
||||||
|
spirit to the present version, but may differ in detail to address new problems
|
||||||
|
or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the Program
|
||||||
|
specifies a version number of this License which applies to it and "any later
|
||||||
|
version", you have the option of following the terms and conditions either of
|
||||||
|
that version or of any later version published by the Free Software Foundation.
|
||||||
|
If the Program does not specify a version number of this License, you may
|
||||||
|
choose any version ever published by the Free Software Foundation.
|
||||||
|
|
||||||
|
10. If you wish to incorporate parts of the Program into other free programs
|
||||||
|
whose distribution conditions are different, write to the author to ask for
|
||||||
|
permission. For software which is copyrighted by the Free Software Foundation,
|
||||||
|
write to the Free Software Foundation; we sometimes make exceptions for this.
|
||||||
|
Our decision will be guided by the two goals of preserving the free status of
|
||||||
|
all derivatives of our free software and of promoting the sharing and reuse of
|
||||||
|
software generally.
|
||||||
|
|
||||||
|
NO WARRANTY
|
||||||
|
|
||||||
|
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR
|
||||||
|
THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE
|
||||||
|
STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE
|
||||||
|
PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
|
||||||
|
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
|
||||||
|
PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE,
|
||||||
|
YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||||
|
|
||||||
|
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
|
||||||
|
ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE
|
||||||
|
PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||||
|
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
|
||||||
|
INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA
|
||||||
|
BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||||
|
FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER
|
||||||
|
OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
How to Apply These Terms to Your New Programs
|
||||||
|
|
||||||
|
If you develop a new program, and you want it to be of the greatest possible
|
||||||
|
use to the public, the best way to achieve this is to make it free software
|
||||||
|
which everyone can redistribute and change under these terms.
|
||||||
|
|
||||||
|
To do so, attach the following notices to the program. It is safest to attach
|
||||||
|
them to the start of each source file to most effectively convey the exclusion
|
||||||
|
of warranty; and each file should have at least the "copyright" line and a
|
||||||
|
pointer to where the full notice is found.
|
||||||
|
|
||||||
|
One line to give the program's name and a brief idea of what it does.
|
||||||
|
|
||||||
|
Copyright (C) <year> <name of author>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by the Free
|
||||||
|
Software Foundation; either version 2 of the License, or (at your option)
|
||||||
|
any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
|
more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License along
|
||||||
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
|
If the program is interactive, make it output a short notice like this when it
|
||||||
|
starts in an interactive mode:
|
||||||
|
|
||||||
|
Gnomovision version 69, Copyright (C) year name of author Gnomovision comes
|
||||||
|
with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free
|
||||||
|
software, and you are welcome to redistribute it under certain conditions;
|
||||||
|
type 'show c' for details.
|
||||||
|
|
||||||
|
The hypothetical commands 'show w' and 'show c' should show the appropriate
|
||||||
|
parts of the General Public License. Of course, the commands you use may be
|
||||||
|
called something other than 'show w' and 'show c'; they could even be
|
||||||
|
mouse-clicks or menu items--whatever suits your program.
|
||||||
|
|
||||||
|
You should also get your employer (if you work as a programmer) or your school,
|
||||||
|
if any, to sign a "copyright disclaimer" for the program, if necessary. Here
|
||||||
|
is a sample; alter the names:
|
||||||
|
|
||||||
|
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||||
|
'Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||||
|
|
||||||
|
signature of Ty Coon, 1 April 1989
|
||||||
|
|
||||||
|
Ty Coon, President of Vice
|
||||||
|
|
||||||
|
This General Public License does not permit incorporating your program into
|
||||||
|
proprietary programs. If your program is a subroutine library, you may
|
||||||
|
consider it more useful to permit linking proprietary applications with the
|
||||||
|
library. If this is what you want to do, use the GNU Library General Public
|
||||||
|
License instead of this License.
|
||||||
|
|
||||||
|
|
||||||
|
"CLASSPATH" EXCEPTION TO THE GPL
|
||||||
|
|
||||||
|
Certain source files distributed by Oracle America and/or its affiliates are
|
||||||
|
subject to the following clarification and special exception to the GPL, but
|
||||||
|
only where Oracle has expressly included in the particular source file's header
|
||||||
|
the words "Oracle designates this particular file as subject to the "Classpath"
|
||||||
|
exception as provided by Oracle in the LICENSE file that accompanied this code."
|
||||||
|
|
||||||
|
Linking this library statically or dynamically with other modules is making
|
||||||
|
a combined work based on this library. Thus, the terms and conditions of
|
||||||
|
the GNU General Public License cover the whole combination.
|
||||||
|
|
||||||
|
As a special exception, the copyright holders of this library give you
|
||||||
|
permission to link this library with independent modules to produce an
|
||||||
|
executable, regardless of the license terms of these independent modules,
|
||||||
|
and to copy and distribute the resulting executable under terms of your
|
||||||
|
choice, provided that you also meet, for each linked independent module,
|
||||||
|
the terms and conditions of the license of that module. An independent
|
||||||
|
module is a module which is not derived from or based on this library. If
|
||||||
|
you modify this library, you may extend this exception to your version of
|
||||||
|
the library, but you are not obligated to do so. If you do not wish to do
|
||||||
|
so, delete this exception statement from your version.
|
||||||
BIN
OpenJDK20U-jdk_aarch64_linux_hotspot_20.0.2_9.tar.xz
Normal file
BIN
OpenJDK20U-jdk_aarch64_linux_hotspot_20.0.2_9.tar.xz
Normal file
Binary file not shown.
BIN
OpenJDK20U-jdk_x64_linux_hotspot_20.0.2_9.tar.xz
Normal file
BIN
OpenJDK20U-jdk_x64_linux_hotspot_20.0.2_9.tar.xz
Normal file
Binary file not shown.
37
README.md
37
README.md
@ -1,37 +0,0 @@
|
|||||||
# openjdk-21
|
|
||||||
|
|
||||||
#### 介绍
|
|
||||||
openEuler Community builds of OpenJDK 21
|
|
||||||
|
|
||||||
#### 软件架构
|
|
||||||
软件架构说明
|
|
||||||
|
|
||||||
|
|
||||||
#### 安装教程
|
|
||||||
|
|
||||||
1. xxxx
|
|
||||||
2. xxxx
|
|
||||||
3. xxxx
|
|
||||||
|
|
||||||
#### 使用说明
|
|
||||||
|
|
||||||
1. xxxx
|
|
||||||
2. xxxx
|
|
||||||
3. xxxx
|
|
||||||
|
|
||||||
#### 参与贡献
|
|
||||||
|
|
||||||
1. Fork 本仓库
|
|
||||||
2. 新建 Feat_xxx 分支
|
|
||||||
3. 提交代码
|
|
||||||
4. 新建 Pull Request
|
|
||||||
|
|
||||||
|
|
||||||
#### 特技
|
|
||||||
|
|
||||||
1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md
|
|
||||||
2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com)
|
|
||||||
3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目
|
|
||||||
4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目
|
|
||||||
5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
|
|
||||||
6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
|
|
||||||
72
TestCryptoLevel.java
Normal file
72
TestCryptoLevel.java
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
/* TestCryptoLevel -- Ensure unlimited crypto policy is in use.
|
||||||
|
Copyright (C) 2012 Red Hat, Inc.
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Affero General Public License as
|
||||||
|
published by the Free Software Foundation, either version 3 of the
|
||||||
|
License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU Affero General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Affero General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import java.lang.reflect.Field;
|
||||||
|
import java.lang.reflect.Method;
|
||||||
|
import java.lang.reflect.InvocationTargetException;
|
||||||
|
|
||||||
|
import java.security.Permission;
|
||||||
|
import java.security.PermissionCollection;
|
||||||
|
|
||||||
|
public class TestCryptoLevel
|
||||||
|
{
|
||||||
|
public static void main(String[] args)
|
||||||
|
throws NoSuchFieldException, ClassNotFoundException,
|
||||||
|
IllegalAccessException, InvocationTargetException
|
||||||
|
{
|
||||||
|
Class<?> cls = null;
|
||||||
|
Method def = null, exempt = null;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
cls = Class.forName("javax.crypto.JceSecurity");
|
||||||
|
}
|
||||||
|
catch (ClassNotFoundException ex)
|
||||||
|
{
|
||||||
|
System.err.println("Running a non-Sun JDK.");
|
||||||
|
System.exit(0);
|
||||||
|
}
|
||||||
|
try
|
||||||
|
{
|
||||||
|
def = cls.getDeclaredMethod("getDefaultPolicy");
|
||||||
|
exempt = cls.getDeclaredMethod("getExemptPolicy");
|
||||||
|
}
|
||||||
|
catch (NoSuchMethodException ex)
|
||||||
|
{
|
||||||
|
System.err.println("Running IcedTea with the original crypto patch.");
|
||||||
|
System.exit(0);
|
||||||
|
}
|
||||||
|
def.setAccessible(true);
|
||||||
|
exempt.setAccessible(true);
|
||||||
|
PermissionCollection defPerms = (PermissionCollection) def.invoke(null);
|
||||||
|
PermissionCollection exemptPerms = (PermissionCollection) exempt.invoke(null);
|
||||||
|
Class<?> apCls = Class.forName("javax.crypto.CryptoAllPermission");
|
||||||
|
Field apField = apCls.getDeclaredField("INSTANCE");
|
||||||
|
apField.setAccessible(true);
|
||||||
|
Permission allPerms = (Permission) apField.get(null);
|
||||||
|
if (defPerms.implies(allPerms) && (exemptPerms == null || exemptPerms.implies(allPerms)))
|
||||||
|
{
|
||||||
|
System.err.println("Running with the unlimited policy.");
|
||||||
|
System.exit(0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
System.err.println("WARNING: Running with a restricted crypto policy.");
|
||||||
|
System.exit(-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
49
TestECDSA.java
Normal file
49
TestECDSA.java
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
/* TestECDSA -- Ensure ECDSA signatures are working.
|
||||||
|
Copyright (C) 2016 Red Hat, Inc.
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Affero General Public License as
|
||||||
|
published by the Free Software Foundation, either version 3 of the
|
||||||
|
License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU Affero General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Affero General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import java.math.BigInteger;
|
||||||
|
import java.security.KeyPair;
|
||||||
|
import java.security.KeyPairGenerator;
|
||||||
|
import java.security.Signature;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @test
|
||||||
|
*/
|
||||||
|
public class TestECDSA {
|
||||||
|
|
||||||
|
public static void main(String[] args) throws Exception {
|
||||||
|
KeyPairGenerator keyGen = KeyPairGenerator.getInstance("EC");
|
||||||
|
KeyPair key = keyGen.generateKeyPair();
|
||||||
|
|
||||||
|
byte[] data = "This is a string to sign".getBytes("UTF-8");
|
||||||
|
|
||||||
|
Signature dsa = Signature.getInstance("NONEwithECDSA");
|
||||||
|
dsa.initSign(key.getPrivate());
|
||||||
|
dsa.update(data);
|
||||||
|
byte[] sig = dsa.sign();
|
||||||
|
System.out.println("Signature: " + new BigInteger(1, sig).toString(16));
|
||||||
|
|
||||||
|
Signature dsaCheck = Signature.getInstance("NONEwithECDSA");
|
||||||
|
dsaCheck.initVerify(key.getPublic());
|
||||||
|
dsaCheck.update(data);
|
||||||
|
boolean success = dsaCheck.verify(sig);
|
||||||
|
if (!success) {
|
||||||
|
throw new RuntimeException("Test failed. Signature verification error");
|
||||||
|
}
|
||||||
|
System.out.println("Test passed.");
|
||||||
|
}
|
||||||
|
}
|
||||||
47
downgrade-the-glibc-symver-of-log2f-posix_spawn.patch
Normal file
47
downgrade-the-glibc-symver-of-log2f-posix_spawn.patch
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
From f03f70daa59157adcab807b393db21d57da33e23 Mon Sep 17 00:00:00 2001
|
||||||
|
From: sunjianye <sunjianye@huawei.com>
|
||||||
|
Date: Tue, 26 Oct 2021 15:49:42 +0800
|
||||||
|
Subject: [PATCH] downgrade the glibc symver of log2f & posix_spawn
|
||||||
|
|
||||||
|
---
|
||||||
|
src/hotspot/share/opto/parse2.cpp | 8 ++++++++
|
||||||
|
src/java.base/unix/native/libjava/ProcessImpl_md.c | 4 ++++
|
||||||
|
2 files changed, 12 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/src/hotspot/share/opto/parse2.cpp b/src/hotspot/share/opto/parse2.cpp
|
||||||
|
index becd187..9bbcb0c 100644
|
||||||
|
--- a/src/hotspot/share/opto/parse2.cpp
|
||||||
|
+++ b/src/hotspot/share/opto/parse2.cpp
|
||||||
|
@@ -45,6 +45,14 @@
|
||||||
|
#include "runtime/deoptimization.hpp"
|
||||||
|
#include "runtime/sharedRuntime.hpp"
|
||||||
|
|
||||||
|
+#ifdef AARCH64
|
||||||
|
+ __asm__(".symver log2f,log2f@GLIBC_2.17");
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+#ifdef AMD64
|
||||||
|
+ __asm__(".symver log2f,log2f@GLIBC_2.2.5");
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
#ifndef PRODUCT
|
||||||
|
extern int explicit_null_checks_inserted,
|
||||||
|
explicit_null_checks_elided;
|
||||||
|
diff --git a/src/java.base/unix/native/libjava/ProcessImpl_md.c b/src/java.base/unix/native/libjava/ProcessImpl_md.c
|
||||||
|
index 3854f36..26cf41c 100644
|
||||||
|
--- a/src/java.base/unix/native/libjava/ProcessImpl_md.c
|
||||||
|
+++ b/src/java.base/unix/native/libjava/ProcessImpl_md.c
|
||||||
|
@@ -48,6 +48,10 @@
|
||||||
|
|
||||||
|
#include "childproc.h"
|
||||||
|
|
||||||
|
+#if defined(amd64)
|
||||||
|
+ __asm__(".symver posix_spawn,posix_spawn@GLIBC_2.2.5");
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
* When starting a child on Unix, we need to do three things:
|
||||||
|
--
|
||||||
|
1.8.3.1
|
||||||
|
|
||||||
96
downgrade-the-glibc-symver-of-memcpy.patch
Normal file
96
downgrade-the-glibc-symver-of-memcpy.patch
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
From 2e5e3cc58933e166cba5a3f0e3c59d0ca3849196 Mon Sep 17 00:00:00 2001
|
||||||
|
From: zhangyipeng <zhangyipeng7@huawei.com>
|
||||||
|
Date: Thu, 24 Mar 2022 11:12:46 +0800
|
||||||
|
Subject: [PATCH] [Huawei] downgrade the glibc symver of memcpy
|
||||||
|
|
||||||
|
Signed-off-by: Sun Jianye <sunjianye@huawei.com>
|
||||||
|
---
|
||||||
|
make/common/NativeCompilation.gmk | 9 +++++++++
|
||||||
|
make/hotspot/lib/CompileJvm.gmk | 8 ++++++++
|
||||||
|
src/hotspot/share/runtime/memcpy.cpp | 20 ++++++++++++++++++++
|
||||||
|
.../linux/native/applauncher/LinuxPackage.c | 3 +++
|
||||||
|
4 files changed, 40 insertions(+)
|
||||||
|
create mode 100644 src/hotspot/share/runtime/memcpy.cpp
|
||||||
|
|
||||||
|
diff --git a/make/common/NativeCompilation.gmk b/make/common/NativeCompilation.gmk
|
||||||
|
index 1e2b170..4f22e2d 100644
|
||||||
|
--- a/make/common/NativeCompilation.gmk
|
||||||
|
+++ b/make/common/NativeCompilation.gmk
|
||||||
|
@@ -1102,6 +1102,15 @@ define SetupNativeCompilationBody
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
+ # if ldflags contain --wrap=memcpy, add memcpy.o to OBJS
|
||||||
|
+ ifneq ($$(findstring wrap=memcpy, $$($1_LDFLAGS)$$($1_EXTRA_LDFLAGS)),)
|
||||||
|
+ ifeq ($$(findstring memcpy$(OBJ_SUFFIX), $$($1_ALL_OBJS)),)
|
||||||
|
+ $$($1_BUILD_INFO):
|
||||||
|
+ $(ECHO) 'Adding $(SUPPORT_OUTPUTDIR)/memcpy/memcpy$(OBJ_SUFFIX) to $1_ALL_OBJS'
|
||||||
|
+ $1_ALL_OBJS += $(SUPPORT_OUTPUTDIR)/memcpy/memcpy$(OBJ_SUFFIX)
|
||||||
|
+ endif
|
||||||
|
+ endif
|
||||||
|
+
|
||||||
|
$1_VARDEPS := $$($1_LD) $$($1_SYSROOT_LDFLAGS) $$($1_LDFLAGS) $$($1_EXTRA_LDFLAGS) \
|
||||||
|
$$($1_LIBS) $$($1_EXTRA_LIBS) $$($1_MT) \
|
||||||
|
$$($1_CREATE_DEBUGINFO_CMDS) $$($1_MANIFEST_VERSION) \
|
||||||
|
diff --git a/make/hotspot/lib/CompileJvm.gmk b/make/hotspot/lib/CompileJvm.gmk
|
||||||
|
index 65edd04..d5b689e 100644
|
||||||
|
--- a/make/hotspot/lib/CompileJvm.gmk
|
||||||
|
+++ b/make/hotspot/lib/CompileJvm.gmk
|
||||||
|
@@ -167,6 +167,14 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBJVM, \
|
||||||
|
PRECOMPILED_HEADER_EXCLUDE := $(JVM_PRECOMPILED_HEADER_EXCLUDE), \
|
||||||
|
))
|
||||||
|
|
||||||
|
+MEMCPY_OBJECT_FILE := $(JVM_OUTPUTDIR)/objs/memcpy$(OBJ_SUFFIX)
|
||||||
|
+
|
||||||
|
+$(eval $(call SetupCopyFiles, COPY_MEMCPY_OBJECT_FILE, \
|
||||||
|
+ DEST := $(SUPPORT_OUTPUTDIR)/memcpy, \
|
||||||
|
+ FILES :=$(MEMCPY_OBJECT_FILE), \
|
||||||
|
+))
|
||||||
|
+TARGETS += $(COPY_MEMCPY_OBJECT_FILE)
|
||||||
|
+
|
||||||
|
# Always recompile abstract_vm_version.cpp if libjvm needs to be relinked. This ensures
|
||||||
|
# that the internal vm version is updated as it relies on __DATE__ and __TIME__
|
||||||
|
# macros.
|
||||||
|
diff --git a/src/hotspot/share/runtime/memcpy.cpp b/src/hotspot/share/runtime/memcpy.cpp
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..6ab4ddb
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/src/hotspot/share/runtime/memcpy.cpp
|
||||||
|
@@ -0,0 +1,20 @@
|
||||||
|
+/*
|
||||||
|
+ * Copyright (c) Huawei Technologies Co., Ltd. 2018-2021. All rights reserved.
|
||||||
|
+ */
|
||||||
|
+
|
||||||
|
+#if defined( __GNUC__ ) && \
|
||||||
|
+(__GNUC__ >= 5 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7))
|
||||||
|
+#include <string.h>
|
||||||
|
+
|
||||||
|
+#if (defined AMD64) || (defined amd64)
|
||||||
|
+/* some systems do not have newest memcpy@@GLIBC_2.14 - stay with old good one */
|
||||||
|
+asm (".symver memcpy, memcpy@GLIBC_2.2.5");
|
||||||
|
+
|
||||||
|
+extern "C"{
|
||||||
|
+ void *__wrap_memcpy(void *dest, const void *src, size_t n)
|
||||||
|
+ {
|
||||||
|
+ return memcpy(dest, src, n);
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+#endif
|
||||||
|
+#endif
|
||||||
|
diff --git a/src/jdk.jpackage/linux/native/applauncher/LinuxPackage.c b/src/jdk.jpackage/linux/native/applauncher/LinuxPackage.c
|
||||||
|
index 5e3ef36..55a7e9c 100644
|
||||||
|
--- a/src/jdk.jpackage/linux/native/applauncher/LinuxPackage.c
|
||||||
|
+++ b/src/jdk.jpackage/linux/native/applauncher/LinuxPackage.c
|
||||||
|
@@ -33,6 +33,9 @@
|
||||||
|
#include "JvmLauncher.h"
|
||||||
|
#include "LinuxPackage.h"
|
||||||
|
|
||||||
|
+#if (defined AMD64) || (defined amd64)
|
||||||
|
+__asm__(".symver memcpy, memcpy@GLIBC_2.2.5");
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
static char* getModulePath(void) {
|
||||||
|
char modulePath[PATH_MAX] = { 0 };
|
||||||
|
--
|
||||||
|
1.8.3.1
|
||||||
|
|
||||||
156
generate_source_tarball.sh
Normal file
156
generate_source_tarball.sh
Normal file
@ -0,0 +1,156 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Generates the 'source tarball' for JDK projects.
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# When used from local repo set REPO_ROOT pointing to file:// with your repo
|
||||||
|
# If your local repo follows upstream forests conventions, it may be enough to set OPENJDK_URL
|
||||||
|
# If you want to use a local copy of patch PR3788, set the path to it in the PR3788 variable
|
||||||
|
#
|
||||||
|
# In any case you have to set PROJECT_NAME REPO_NAME and VERSION. eg:
|
||||||
|
# PROJECT_NAME=jdk
|
||||||
|
# REPO_NAME=jdk
|
||||||
|
# VERSION=tip
|
||||||
|
# or to eg prepare systemtap:
|
||||||
|
# icedtea7's jstack and other tapsets
|
||||||
|
# VERSION=6327cf1cea9e
|
||||||
|
# REPO_NAME=icedtea7-2.6
|
||||||
|
# PROJECT_NAME=release
|
||||||
|
# OPENJDK_URL=http://icedtea.classpath.org/hg/
|
||||||
|
# TO_COMPRESS="*/tapset"
|
||||||
|
#
|
||||||
|
# They are used to create correct name and are used in construction of sources url (unless REPO_ROOT is set)
|
||||||
|
|
||||||
|
# This script creates a single source tarball out of the repository
|
||||||
|
# based on the given tag and removes code not allowed. For
|
||||||
|
# consistency, the source tarball will always contain 'openjdk' as the top
|
||||||
|
# level folder, name is created, based on parameter
|
||||||
|
#
|
||||||
|
|
||||||
|
if [ ! "x$PR3788" = "x" ] ; then
|
||||||
|
if [ ! -f "$PR3788" ] ; then
|
||||||
|
echo "You have specified PR3788 as $PR3788 but it does not exist. Exiting"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
OPENJDK_URL_DEFAULT=http://hg.openjdk.java.net
|
||||||
|
COMPRESSION_DEFAULT=xz
|
||||||
|
|
||||||
|
if [ "x$1" = "xhelp" ] ; then
|
||||||
|
echo -e "Behaviour may be specified by setting the following variables:\n"
|
||||||
|
echo "VERSION - the version of the specified OpenJDK project"
|
||||||
|
echo "PROJECT_NAME -- the name of the OpenJDK project being archived (optional; only needed by defaults)"
|
||||||
|
echo "REPO_NAME - the name of the OpenJDK repository (optional; only needed by defaults)"
|
||||||
|
echo "OPENJDK_URL - the URL to retrieve code from (optional; defaults to ${OPENJDK_URL_DEFAULT})"
|
||||||
|
echo "COMPRESSION - the compression type to use (optional; defaults to ${COMPRESSION_DEFAULT})"
|
||||||
|
echo "FILE_NAME_ROOT - name of the archive, minus extensions (optional; defaults to PROJECT_NAME-REPO_NAME-VERSION)"
|
||||||
|
echo "TO_COMPRESS - what part of clone to pack (default is openjdk)"
|
||||||
|
echo "PR3788 - the path to the PR3788 patch to apply (optional; downloaded if unavailable)"
|
||||||
|
exit 1;
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ "x$VERSION" = "x" ] ; then
|
||||||
|
echo "No VERSION specified"
|
||||||
|
exit -2
|
||||||
|
fi
|
||||||
|
echo "Version: ${VERSION}"
|
||||||
|
|
||||||
|
# REPO_NAME is only needed when we default on REPO_ROOT and FILE_NAME_ROOT
|
||||||
|
if [ "x$FILE_NAME_ROOT" = "x" -o "x$REPO_ROOT" = "x" ] ; then
|
||||||
|
if [ "x$PROJECT_NAME" = "x" ] ; then
|
||||||
|
echo "No PROJECT_NAME specified"
|
||||||
|
exit -1
|
||||||
|
fi
|
||||||
|
echo "Project name: ${PROJECT_NAME}"
|
||||||
|
if [ "x$REPO_NAME" = "x" ] ; then
|
||||||
|
echo "No REPO_NAME specified"
|
||||||
|
exit -3
|
||||||
|
fi
|
||||||
|
echo "Repository name: ${REPO_NAME}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "x$OPENJDK_URL" = "x" ] ; then
|
||||||
|
OPENJDK_URL=${OPENJDK_URL_DEFAULT}
|
||||||
|
echo "No OpenJDK URL specified; defaulting to ${OPENJDK_URL}"
|
||||||
|
else
|
||||||
|
echo "OpenJDK URL: ${OPENJDK_URL}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "x$COMPRESSION" = "x" ] ; then
|
||||||
|
# rhel 5 needs tar.gz
|
||||||
|
COMPRESSION=${COMPRESSION_DEFAULT}
|
||||||
|
fi
|
||||||
|
echo "Creating a tar.${COMPRESSION} archive"
|
||||||
|
|
||||||
|
if [ "x$FILE_NAME_ROOT" = "x" ] ; then
|
||||||
|
FILE_NAME_ROOT=${PROJECT_NAME}-${REPO_NAME}-${VERSION}
|
||||||
|
echo "No file name root specified; default to ${FILE_NAME_ROOT}"
|
||||||
|
fi
|
||||||
|
if [ "x$REPO_ROOT" = "x" ] ; then
|
||||||
|
REPO_ROOT="${OPENJDK_URL}/${PROJECT_NAME}/${REPO_NAME}"
|
||||||
|
echo "No repository root specified; default to ${REPO_ROOT}"
|
||||||
|
fi;
|
||||||
|
|
||||||
|
if [ "x$TO_COMPRESS" = "x" ] ; then
|
||||||
|
TO_COMPRESS="openjdk"
|
||||||
|
echo "No to be compressed targets specified, ; default to ${TO_COMPRESS}"
|
||||||
|
fi;
|
||||||
|
|
||||||
|
if [ -d ${FILE_NAME_ROOT} ] ; then
|
||||||
|
echo "exists exists exists exists exists exists exists "
|
||||||
|
echo "reusing reusing reusing reusing reusing reusing "
|
||||||
|
echo ${FILE_NAME_ROOT}
|
||||||
|
else
|
||||||
|
mkdir "${FILE_NAME_ROOT}"
|
||||||
|
pushd "${FILE_NAME_ROOT}"
|
||||||
|
echo "Cloning ${VERSION} root repository from ${REPO_ROOT}"
|
||||||
|
hg clone ${REPO_ROOT} openjdk -r ${VERSION}
|
||||||
|
popd
|
||||||
|
fi
|
||||||
|
pushd "${FILE_NAME_ROOT}"
|
||||||
|
if [ -d openjdk/src ]; then
|
||||||
|
pushd openjdk
|
||||||
|
echo "Removing EC source code we don't build"
|
||||||
|
CRYPTO_PATH=src/jdk.crypto.ec/share/native/libsunec/impl
|
||||||
|
rm -vf ${CRYPTO_PATH}/ec2.h
|
||||||
|
rm -vf ${CRYPTO_PATH}/ec2_163.c
|
||||||
|
rm -vf ${CRYPTO_PATH}/ec2_193.c
|
||||||
|
rm -vf ${CRYPTO_PATH}/ec2_233.c
|
||||||
|
rm -vf ${CRYPTO_PATH}/ec2_aff.c
|
||||||
|
rm -vf ${CRYPTO_PATH}/ec2_mont.c
|
||||||
|
rm -vf ${CRYPTO_PATH}/ecp_192.c
|
||||||
|
rm -vf ${CRYPTO_PATH}/ecp_224.c
|
||||||
|
|
||||||
|
echo "Syncing EC list with NSS"
|
||||||
|
if [ "x$PR3788" = "x" ] ; then
|
||||||
|
# originally for 8:
|
||||||
|
# get PR3788.patch (from http://icedtea.classpath.org/hg/icedtea14) from most correct tag
|
||||||
|
# Do not push it or publish it (see https://icedtea.classpath.org/bugzilla/show_bug.cgi?id=3788)
|
||||||
|
echo "PR3788 not found. Downloading..."
|
||||||
|
wget http://icedtea.classpath.org/hg/icedtea14/raw-file/fabce78297b7/patches/pr3788.patch
|
||||||
|
echo "Applying ${PWD}/pr3788.patch"
|
||||||
|
patch -Np1 < pr3788.patch
|
||||||
|
rm pr3788.patch
|
||||||
|
else
|
||||||
|
echo "Applying ${PR3788}"
|
||||||
|
patch -Np1 < $PR3788
|
||||||
|
fi;
|
||||||
|
find . -name '*.orig' -exec rm -vf '{}' ';'
|
||||||
|
popd
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Compressing remaining forest"
|
||||||
|
if [ "X$COMPRESSION" = "Xxz" ] ; then
|
||||||
|
SWITCH=cJf
|
||||||
|
else
|
||||||
|
SWITCH=czf
|
||||||
|
fi
|
||||||
|
tar --exclude-vcs -$SWITCH ${FILE_NAME_ROOT}.tar.${COMPRESSION} $TO_COMPRESS
|
||||||
|
mv ${FILE_NAME_ROOT}.tar.${COMPRESSION} ..
|
||||||
|
popd
|
||||||
|
echo "Done. You may want to remove the uncompressed version - $FILE_NAME_ROOT."
|
||||||
|
|
||||||
|
|
||||||
10
jconsole.desktop.in
Normal file
10
jconsole.desktop.in
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Name=OpenJDK @JAVA_MAJOR_VERSION@ Monitoring & Management Console @ARCH@
|
||||||
|
Comment=Monitor and manage OpenJDK @JAVA_MAJOR_VERSION@ applications for @ARCH@
|
||||||
|
Exec=@JAVA_HOME@/jconsole
|
||||||
|
Icon=java-@JAVA_MAJOR_VERSION@-@JAVA_VENDOR@
|
||||||
|
Terminal=false
|
||||||
|
Type=Application
|
||||||
|
StartupWMClass=sun-tools-jconsole-JConsole
|
||||||
|
Categories=Development;Profiling;Java;
|
||||||
|
Version=1.0
|
||||||
BIN
jdk-updates-jdk21u-jdk-21+35.tar.gz
Normal file
BIN
jdk-updates-jdk21u-jdk-21+35.tar.gz
Normal file
Binary file not shown.
5
nss.cfg.in
Normal file
5
nss.cfg.in
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
name = NSS
|
||||||
|
nssLibraryDirectory = @NSS_LIBDIR@
|
||||||
|
nssDbMode = noDb
|
||||||
|
attributes = compatibility
|
||||||
|
handleStartupErrors = ignoreMultipleInitialisation
|
||||||
1776
openjdk-21.spec
Normal file
1776
openjdk-21.spec
Normal file
File diff suppressed because it is too large
Load Diff
5
openjdk-21.yaml
Normal file
5
openjdk-21.yaml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
version_control: git
|
||||||
|
src_repo: https://github.com/openjdk/jdk21u
|
||||||
|
tag_prefix: jdk-
|
||||||
|
seperator: "."
|
||||||
87
pr3183-rh1340845-support_system_crypto_policy.patch
Normal file
87
pr3183-rh1340845-support_system_crypto_policy.patch
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
|
||||||
|
# HG changeset patch
|
||||||
|
# User andrew
|
||||||
|
# Date 1478057514 0
|
||||||
|
# Node ID 1c4d5cb2096ae55106111da200b0bcad304f650c
|
||||||
|
# Parent 3d53f19b48384e5252f4ec8891f7a3a82d77af2a
|
||||||
|
diff -r 3d53f19b4838 -r 1c4d5cb2096a src/java.base/share/classes/java/security/Security.java
|
||||||
|
--- a/src/java.base/share/classes/java/security/Security.java Wed Oct 26 03:51:39 2016 +0100
|
||||||
|
+++ b/src/java.base/share/classes/java/security/Security.java Wed Nov 02 03:31:54 2016 +0000
|
||||||
|
@@ -43,6 +43,9 @@
|
||||||
|
* implementation-specific location, which is typically the properties file
|
||||||
|
* {@code conf/security/java.security} in the Java installation directory.
|
||||||
|
*
|
||||||
|
+ * <p>Additional default values of security properties are read from a
|
||||||
|
+ * system-specific location, if available.</p>
|
||||||
|
+ *
|
||||||
|
* @author Benjamin Renaud
|
||||||
|
* @since 1.1
|
||||||
|
*/
|
||||||
|
@@ -52,6 +55,10 @@
|
||||||
|
private static final Debug sdebug =
|
||||||
|
Debug.getInstance("properties");
|
||||||
|
|
||||||
|
+ /* System property file*/
|
||||||
|
+ private static final String SYSTEM_PROPERTIES =
|
||||||
|
+ "/etc/crypto-policies/back-ends/java.config";
|
||||||
|
+
|
||||||
|
/* The java.security properties */
|
||||||
|
private static Properties props;
|
||||||
|
|
||||||
|
@@ -93,6 +100,7 @@
|
||||||
|
if (sdebug != null) {
|
||||||
|
sdebug.println("reading security properties file: " +
|
||||||
|
propFile);
|
||||||
|
+ sdebug.println(props.toString());
|
||||||
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
|
if (sdebug != null) {
|
||||||
|
@@ -114,6 +122,31 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
if ("true".equalsIgnoreCase(props.getProperty
|
||||||
|
+ ("security.useSystemPropertiesFile"))) {
|
||||||
|
+
|
||||||
|
+ // now load the system file, if it exists, so its values
|
||||||
|
+ // will win if they conflict with the earlier values
|
||||||
|
+ try (BufferedInputStream bis =
|
||||||
|
+ new BufferedInputStream(new FileInputStream(SYSTEM_PROPERTIES))) {
|
||||||
|
+ props.load(bis);
|
||||||
|
+ loadedProps = true;
|
||||||
|
+
|
||||||
|
+ if (sdebug != null) {
|
||||||
|
+ sdebug.println("reading system security properties file " +
|
||||||
|
+ SYSTEM_PROPERTIES);
|
||||||
|
+ sdebug.println(props.toString());
|
||||||
|
+ }
|
||||||
|
+ } catch (IOException e) {
|
||||||
|
+ if (sdebug != null) {
|
||||||
|
+ sdebug.println
|
||||||
|
+ ("unable to load security properties from " +
|
||||||
|
+ SYSTEM_PROPERTIES);
|
||||||
|
+ e.printStackTrace();
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if ("true".equalsIgnoreCase(props.getProperty
|
||||||
|
("security.overridePropertiesFile"))) {
|
||||||
|
|
||||||
|
String extraPropFile = System.getProperty
|
||||||
|
diff -r 3d53f19b4838 -r 1c4d5cb2096a src/java.base/share/conf/security/java.security
|
||||||
|
--- a/src/java.base/share/conf/security/java.security Wed Oct 26 03:51:39 2016 +0100
|
||||||
|
+++ b/src/java.base/share/conf/security/java.security Wed Nov 02 03:31:54 2016 +0000
|
||||||
|
@@ -276,6 +276,13 @@
|
||||||
|
security.overridePropertiesFile=true
|
||||||
|
|
||||||
|
#
|
||||||
|
+# Determines whether this properties file will be appended to
|
||||||
|
+# using the system properties file stored at
|
||||||
|
+# /etc/crypto-policies/back-ends/java.config
|
||||||
|
+#
|
||||||
|
+security.useSystemPropertiesFile=true
|
||||||
|
+
|
||||||
|
+#
|
||||||
|
# Determines the default key and trust manager factory algorithms for
|
||||||
|
# the javax.net.ssl package.
|
||||||
|
#
|
||||||
129
remove-intree-libraries.sh
Normal file
129
remove-intree-libraries.sh
Normal file
@ -0,0 +1,129 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
ZIP_SRC=src/java.base/share/native/libzip/zlib/
|
||||||
|
JPEG_SRC=src/java.desktop/share/native/libjavajpeg/
|
||||||
|
GIF_SRC=src/java.desktop/share/native/libsplashscreen/giflib/
|
||||||
|
PNG_SRC=src/java.desktop/share/native/libsplashscreen/libpng/
|
||||||
|
LCMS_SRC=src/java.desktop/share/native/liblcms/
|
||||||
|
|
||||||
|
cd openjdk
|
||||||
|
|
||||||
|
echo "Removing built-in libs (they will be linked)"
|
||||||
|
|
||||||
|
echo "Removing zlib"
|
||||||
|
if [ ! -d ${ZIP_SRC} ]; then
|
||||||
|
echo "${ZIP_SRC} does not exist. Refusing to proceed."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
rm -rvf ${ZIP_SRC}
|
||||||
|
|
||||||
|
echo "Removing libjpeg"
|
||||||
|
if [ ! -f ${JPEG_SRC}/jdhuff.c ]; then # some file that sound definitely exist
|
||||||
|
echo "${JPEG_SRC} does not contain jpeg sources. Refusing to proceed."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -vf ${JPEG_SRC}/jcomapi.c
|
||||||
|
rm -vf ${JPEG_SRC}/jdapimin.c
|
||||||
|
rm -vf ${JPEG_SRC}/jdapistd.c
|
||||||
|
rm -vf ${JPEG_SRC}/jdcoefct.c
|
||||||
|
rm -vf ${JPEG_SRC}/jdcolor.c
|
||||||
|
rm -vf ${JPEG_SRC}/jdct.h
|
||||||
|
rm -vf ${JPEG_SRC}/jddctmgr.c
|
||||||
|
rm -vf ${JPEG_SRC}/jdhuff.c
|
||||||
|
rm -vf ${JPEG_SRC}/jdhuff.h
|
||||||
|
rm -vf ${JPEG_SRC}/jdinput.c
|
||||||
|
rm -vf ${JPEG_SRC}/jdmainct.c
|
||||||
|
rm -vf ${JPEG_SRC}/jdmarker.c
|
||||||
|
rm -vf ${JPEG_SRC}/jdmaster.c
|
||||||
|
rm -vf ${JPEG_SRC}/jdmerge.c
|
||||||
|
rm -vf ${JPEG_SRC}/jdphuff.c
|
||||||
|
rm -vf ${JPEG_SRC}/jdpostct.c
|
||||||
|
rm -vf ${JPEG_SRC}/jdsample.c
|
||||||
|
rm -vf ${JPEG_SRC}/jerror.c
|
||||||
|
rm -vf ${JPEG_SRC}/jerror.h
|
||||||
|
rm -vf ${JPEG_SRC}/jidctflt.c
|
||||||
|
rm -vf ${JPEG_SRC}/jidctfst.c
|
||||||
|
rm -vf ${JPEG_SRC}/jidctint.c
|
||||||
|
rm -vf ${JPEG_SRC}/jidctred.c
|
||||||
|
rm -vf ${JPEG_SRC}/jinclude.h
|
||||||
|
rm -vf ${JPEG_SRC}/jmemmgr.c
|
||||||
|
rm -vf ${JPEG_SRC}/jmemsys.h
|
||||||
|
rm -vf ${JPEG_SRC}/jmemnobs.c
|
||||||
|
rm -vf ${JPEG_SRC}/jmorecfg.h
|
||||||
|
rm -vf ${JPEG_SRC}/jpegint.h
|
||||||
|
rm -vf ${JPEG_SRC}/jpeglib.h
|
||||||
|
rm -vf ${JPEG_SRC}/jquant1.c
|
||||||
|
rm -vf ${JPEG_SRC}/jquant2.c
|
||||||
|
rm -vf ${JPEG_SRC}/jutils.c
|
||||||
|
rm -vf ${JPEG_SRC}/jcapimin.c
|
||||||
|
rm -vf ${JPEG_SRC}/jcapistd.c
|
||||||
|
rm -vf ${JPEG_SRC}/jccoefct.c
|
||||||
|
rm -vf ${JPEG_SRC}/jccolor.c
|
||||||
|
rm -vf ${JPEG_SRC}/jcdctmgr.c
|
||||||
|
rm -vf ${JPEG_SRC}/jchuff.c
|
||||||
|
rm -vf ${JPEG_SRC}/jchuff.h
|
||||||
|
rm -vf ${JPEG_SRC}/jcinit.c
|
||||||
|
rm -vf ${JPEG_SRC}/jconfig.h
|
||||||
|
rm -vf ${JPEG_SRC}/jcmainct.c
|
||||||
|
rm -vf ${JPEG_SRC}/jcmarker.c
|
||||||
|
rm -vf ${JPEG_SRC}/jcmaster.c
|
||||||
|
rm -vf ${JPEG_SRC}/jcparam.c
|
||||||
|
rm -vf ${JPEG_SRC}/jcphuff.c
|
||||||
|
rm -vf ${JPEG_SRC}/jcprepct.c
|
||||||
|
rm -vf ${JPEG_SRC}/jcsample.c
|
||||||
|
rm -vf ${JPEG_SRC}/jctrans.c
|
||||||
|
rm -vf ${JPEG_SRC}/jdtrans.c
|
||||||
|
rm -vf ${JPEG_SRC}/jfdctflt.c
|
||||||
|
rm -vf ${JPEG_SRC}/jfdctfst.c
|
||||||
|
rm -vf ${JPEG_SRC}/jfdctint.c
|
||||||
|
rm -vf ${JPEG_SRC}/jversion.h
|
||||||
|
rm -vf ${JPEG_SRC}/README
|
||||||
|
|
||||||
|
echo "Removing giflib"
|
||||||
|
if [ ! -d ${GIF_SRC} ]; then
|
||||||
|
echo "${GIF_SRC} does not exist. Refusing to proceed."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
rm -rvf ${GIF_SRC}
|
||||||
|
|
||||||
|
echo "Removing libpng"
|
||||||
|
if [ ! -d ${PNG_SRC} ]; then
|
||||||
|
echo "${PNG_SRC} does not exist. Refusing to proceed."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
rm -rvf ${PNG_SRC}
|
||||||
|
|
||||||
|
echo "Removing lcms"
|
||||||
|
if [ ! -d ${LCMS_SRC} ]; then
|
||||||
|
echo "${LCMS_SRC} does not exist. Refusing to proceed."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
rm -vf ${LCMS_SRC}/cmscam02.c
|
||||||
|
rm -vf ${LCMS_SRC}/cmscgats.c
|
||||||
|
rm -vf ${LCMS_SRC}/cmscnvrt.c
|
||||||
|
rm -vf ${LCMS_SRC}/cmserr.c
|
||||||
|
rm -vf ${LCMS_SRC}/cmsgamma.c
|
||||||
|
rm -vf ${LCMS_SRC}/cmsgmt.c
|
||||||
|
rm -vf ${LCMS_SRC}/cmshalf.c
|
||||||
|
rm -vf ${LCMS_SRC}/cmsintrp.c
|
||||||
|
rm -vf ${LCMS_SRC}/cmsio0.c
|
||||||
|
rm -vf ${LCMS_SRC}/cmsio1.c
|
||||||
|
rm -vf ${LCMS_SRC}/cmslut.c
|
||||||
|
rm -vf ${LCMS_SRC}/cmsmd5.c
|
||||||
|
rm -vf ${LCMS_SRC}/cmsmtrx.c
|
||||||
|
rm -vf ${LCMS_SRC}/cmsnamed.c
|
||||||
|
rm -vf ${LCMS_SRC}/cmsopt.c
|
||||||
|
rm -vf ${LCMS_SRC}/cmspack.c
|
||||||
|
rm -vf ${LCMS_SRC}/cmspcs.c
|
||||||
|
rm -vf ${LCMS_SRC}/cmsplugin.c
|
||||||
|
rm -vf ${LCMS_SRC}/cmsps2.c
|
||||||
|
rm -vf ${LCMS_SRC}/cmssamp.c
|
||||||
|
rm -vf ${LCMS_SRC}/cmssm.c
|
||||||
|
rm -vf ${LCMS_SRC}/cmstypes.c
|
||||||
|
rm -vf ${LCMS_SRC}/cmsvirt.c
|
||||||
|
rm -vf ${LCMS_SRC}/cmswtpnt.c
|
||||||
|
rm -vf ${LCMS_SRC}/cmsxform.c
|
||||||
|
rm -vf ${LCMS_SRC}/lcms2.h
|
||||||
|
rm -vf ${LCMS_SRC}/lcms2_internal.h
|
||||||
|
rm -vf ${LCMS_SRC}/lcms2_plugin.h
|
||||||
16
rh1648242-accessible_toolkit_crash_do_not_break_jvm.patch
Normal file
16
rh1648242-accessible_toolkit_crash_do_not_break_jvm.patch
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
diff -r 618ad1237e73 src/java.desktop/share/classes/java/awt/Toolkit.java
|
||||||
|
--- a/src/java.desktop/share/classes/java/awt/Toolkit.java Thu Jun 13 19:37:49 2019 +0200
|
||||||
|
+++ b/src/java.desktop/share/classes/java/awt/Toolkit.java Thu Jul 04 10:35:42 2019 +0200
|
||||||
|
@@ -595,7 +595,11 @@
|
||||||
|
toolkit = new HeadlessToolkit(toolkit);
|
||||||
|
}
|
||||||
|
if (!GraphicsEnvironment.isHeadless()) {
|
||||||
|
- loadAssistiveTechnologies();
|
||||||
|
+ try {
|
||||||
|
+ loadAssistiveTechnologies();
|
||||||
|
+ } catch (AWTError error) {
|
||||||
|
+ // ignore silently
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return toolkit;
|
||||||
@ -0,0 +1,12 @@
|
|||||||
|
diff -r e3f940bd3c8f src/java.base/share/conf/security/java.security
|
||||||
|
--- openjdk/src/java.base/share/conf/security/java.security Thu Jun 11 21:54:51 2020 +0530
|
||||||
|
+++ openjdk/src/java.base/share/conf/security/java.security Mon Aug 24 10:14:31 2020 +0200
|
||||||
|
@@ -77,7 +77,7 @@
|
||||||
|
#ifdef macosx
|
||||||
|
security.provider.tbd=Apple
|
||||||
|
#endif
|
||||||
|
-security.provider.tbd=SunPKCS11
|
||||||
|
+#security.provider.tbd=SunPKCS11 ${java.home}/lib/security/nss.cfg
|
||||||
|
|
||||||
|
#
|
||||||
|
# A list of preferred providers for specific algorithms. These providers will
|
||||||
20
rh1648644-java_access_bridge_privileged_security.patch
Normal file
20
rh1648644-java_access_bridge_privileged_security.patch
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
--- openjdk/src/java.base/share/conf/security/java.security
|
||||||
|
+++ openjdk/src/java.base/share/conf/security/java.security
|
||||||
|
@@ -304,6 +304,8 @@
|
||||||
|
#
|
||||||
|
package.access=sun.misc.,\
|
||||||
|
sun.reflect.,\
|
||||||
|
+ org.GNOME.Accessibility.,\
|
||||||
|
+ org.GNOME.Bonobo.,\
|
||||||
|
|
||||||
|
#
|
||||||
|
# List of comma-separated packages that start with or equal this string
|
||||||
|
@@ -316,6 +318,8 @@
|
||||||
|
#
|
||||||
|
package.definition=sun.misc.,\
|
||||||
|
sun.reflect.,\
|
||||||
|
+ org.GNOME.Accessibility.,\
|
||||||
|
+ org.GNOME.Bonobo.,\
|
||||||
|
|
||||||
|
#
|
||||||
|
# Determines whether this properties file can be appended to
|
||||||
@ -0,0 +1,15 @@
|
|||||||
|
diff --git a/openjdk/src/java.smartcardio/unix/classes/sun/security/smartcardio/PlatformPCSC.java b/src/java.smartcardio/unix/classes/sun/security/smartcardio/PlatformPCSC.java
|
||||||
|
index bacff32efbc..ff7b3dcc81c 100644
|
||||||
|
--- openjdk/src/java.smartcardio/unix/classes/sun/security/smartcardio/PlatformPCSC.java
|
||||||
|
+++ openjdk/src/java.smartcardio/unix/classes/sun/security/smartcardio/PlatformPCSC.java
|
||||||
|
@@ -46,8 +46,8 @@ class PlatformPCSC {
|
||||||
|
|
||||||
|
private static final String PROP_NAME = "sun.security.smartcardio.library";
|
||||||
|
|
||||||
|
- private static final String LIB1 = "/usr/$LIBISA/libpcsclite.so";
|
||||||
|
- private static final String LIB2 = "/usr/local/$LIBISA/libpcsclite.so";
|
||||||
|
+ private static final String LIB1 = "/usr/$LIBISA/libpcsclite.so.1";
|
||||||
|
+ private static final String LIB2 = "/usr/local/$LIBISA/libpcsclite.so.1";
|
||||||
|
private static final String PCSC_FRAMEWORK = "/System/Library/Frameworks/PCSC.framework/Versions/Current/PCSC";
|
||||||
|
|
||||||
|
PlatformPCSC() {
|
||||||
@ -0,0 +1,19 @@
|
|||||||
|
Remove uses of FAR in jpeg code
|
||||||
|
|
||||||
|
Upstream libjpeg-trubo removed the (empty) FAR macro:
|
||||||
|
http://sourceforge.net/p/libjpeg-turbo/code/1312/
|
||||||
|
|
||||||
|
Adjust our code to not use the undefined FAR macro anymore.
|
||||||
|
|
||||||
|
diff --git a/jdk/src/java.desktop/share/native/libjavajpeg/imageioJPEG.c b/jdk/src/java.desktop/share/native/libjavajpeg/imageioJPEG.c
|
||||||
|
--- openjdk/src/java.desktop/share/native/libjavajpeg/imageioJPEG.c
|
||||||
|
+++ openjdk/src/java.desktop/share/native/libjavajpeg/imageioJPEG.c
|
||||||
|
@@ -1385,7 +1385,7 @@
|
||||||
|
/* and fill it in */
|
||||||
|
dst_ptr = icc_data;
|
||||||
|
for (seq_no = first; seq_no < last; seq_no++) {
|
||||||
|
- JOCTET FAR *src_ptr = icc_markers[seq_no]->data + ICC_OVERHEAD_LEN;
|
||||||
|
+ JOCTET *src_ptr = icc_markers[seq_no]->data + ICC_OVERHEAD_LEN;
|
||||||
|
unsigned int length =
|
||||||
|
icc_markers[seq_no]->data_length - ICC_OVERHEAD_LEN;
|
||||||
|
|
||||||
2
sources
Normal file
2
sources
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
SHA512 (jdk-updates-jdk16u-jdk-17.0.1+12.tar.gz) = 872cde89ff936fe782b463df500de62a8e3b5d342652106ad590bb9ef669d7f0c3acc68311cbe7231cbc0f916bdb4bd0d61d3cf2dcf39b72ec44ffb4c2ceae48
|
||||||
|
SHA512 (systemtap_3.2_tapsets_hg-icedtea8-9d464368e06d.tar.xz) = 9f5bbc1a6bf2ee44e4f846b0ef9c1cd93dc9cf01b17b17f31f081229c98222ee92897286a3d57e4b607de1ea4c6edc8d798e0887409ad60713b714daa8f4ee18
|
||||||
BIN
systemtap_3.2_tapsets_hg-icedtea8-9d464368e06d.tar.xz
Normal file
BIN
systemtap_3.2_tapsets_hg-icedtea8-9d464368e06d.tar.xz
Normal file
Binary file not shown.
69
update_package.sh
Normal file
69
update_package.sh
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
#!/bin/bash -x
|
||||||
|
# this file contains defaults for currently generated source tarballs
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# TAPSET
|
||||||
|
export PROJECT_NAME="hg"
|
||||||
|
export REPO_NAME="icedtea8"
|
||||||
|
export VERSION="9d464368e06d"
|
||||||
|
export COMPRESSION=xz
|
||||||
|
export OPENJDK_URL=http://icedtea.classpath.org
|
||||||
|
export FILE_NAME_ROOT=${PROJECT_NAME}-${REPO_NAME}-${VERSION}
|
||||||
|
export TO_COMPRESS="*/tapset"
|
||||||
|
# warning, filename and filenameroot creation is duplicated here from generate_source_tarball.sh
|
||||||
|
CLONED_FILENAME=${FILE_NAME_ROOT}.tar.${COMPRESSION}
|
||||||
|
TAPSET_VERSION=3.2
|
||||||
|
TAPSET=systemtap_"$TAPSET_VERSION"_tapsets_$CLONED_FILENAME
|
||||||
|
if [ ! -f ${TAPSET} ] ; then
|
||||||
|
if [ ! -f ${CLONED_FILENAME} ] ; then
|
||||||
|
echo "Generating ${CLONED_FILENAME}"
|
||||||
|
sh ./generate_source_tarball.sh
|
||||||
|
else
|
||||||
|
echo "exists exists exists exists exists exists exists "
|
||||||
|
echo "reusing reusing reusing reusing reusing reusing "
|
||||||
|
echo ${CLONED_FILENAME}
|
||||||
|
fi
|
||||||
|
mv -v $CLONED_FILENAME $TAPSET
|
||||||
|
else
|
||||||
|
echo "exists exists exists exists exists exists exists "
|
||||||
|
echo "reusing reusing reusing reusing reusing reusing "
|
||||||
|
echo ${TAPSET}
|
||||||
|
fi
|
||||||
|
|
||||||
|
# OpenJDK from Shenandoah project
|
||||||
|
export PROJECT_NAME="jdk-updates"
|
||||||
|
export REPO_NAME="jdk14u"
|
||||||
|
export VERSION="jdk-14.0.2-ga"
|
||||||
|
export COMPRESSION=xz
|
||||||
|
# unset tapsets overrides
|
||||||
|
export OPENJDK_URL=""
|
||||||
|
export TO_COMPRESS=""
|
||||||
|
# warning, filename and filenameroot creation is duplicated here from generate_source_tarball.sh
|
||||||
|
export FILE_NAME_ROOT=${PROJECT_NAME}-${REPO_NAME}-${VERSION}
|
||||||
|
FILENAME=${FILE_NAME_ROOT}.tar.${COMPRESSION}
|
||||||
|
|
||||||
|
if [ ! -f ${FILENAME} ] ; then
|
||||||
|
echo "Generating ${FILENAME}"
|
||||||
|
sh ./generate_source_tarball.sh
|
||||||
|
else
|
||||||
|
echo "exists exists exists exists exists exists exists "
|
||||||
|
echo "reusing reusing reusing reusing reusing reusing "
|
||||||
|
echo ${FILENAME}
|
||||||
|
fi
|
||||||
|
|
||||||
|
set +e
|
||||||
|
|
||||||
|
major=`echo $REPO_NAME | sed 's/[a-zA-Z]*//g'`
|
||||||
|
build=`echo $VERSION | sed 's/.*+//g'`
|
||||||
|
name_helper=`echo $FILENAME | sed s/$major/'%{majorver}'/g `
|
||||||
|
name_helper=`echo $name_helper | sed s/$build/'%{buildver}'/g `
|
||||||
|
echo "align specfile acordingly:"
|
||||||
|
echo " sed 's/^Source0:.*/Source0: $name_helper/' -i *.spec"
|
||||||
|
echo " sed 's/^Source8:.*/Source8: $TAPSET/' -i *.spec"
|
||||||
|
echo " sed 's/^%global buildver.*/%global buildver $build/' -i *.spec"
|
||||||
|
echo " sed 's/Release:.*/Release: 1%{?dist}/' -i *.spec"
|
||||||
|
echo "and maybe others...."
|
||||||
|
echo "you should fedpkg/rhpkg new-sources $TAPSET $FILENAME"
|
||||||
|
echo "you should fedpkg/rhpkg prep --arch XXXX on all architectures: x86_64 i386 i586 i686 ppc ppc64 ppc64le s390 s390x aarch64 armv7hl"
|
||||||
|
|
||||||
Loading…
x
Reference in New Issue
Block a user