Jump to content

Build_Clover.command, another Script to build standard Clover (or customized)


Micky1979
2,126 posts in this topic

Recommended Posts

Speaking of which, is there any particular reason testing the new code to be done this way instead of using GIT's branching?

PS: I see now that you have write access to the Micky1979's github repo... sorry...

Hi philip_petev.

I don't think there is any particular problem in branching it... but looking at the "complexity" of the project (IMHO) there no reason to

branch it... (there is a single main shell script :o )... so if you prefer branch from the master into a "feature" branch then merge it...

is up to you...

 

PS: I don't know if you read my previous post.. I apply your changes to test script because I see later your write access to the repo..

 

ErmaC

  • Like 1
Link to comment
Share on other sites

Build_Clover.command4.2.8

Os X_10.12.3 ,Xcode8.2 -Clover compilation succeeds.

OS X _10.10.5, Xcode 7.1.1 I get a compilation error [NASM] boot1x.s -> .

 

attachicon.gifOSX10.12.3LogCompileBuildClover4.2.8b.txt.zip

OS X_10.9.5_Xcode-6.2 

Clover compilation succeeds.

OS X_10.10.5_Xcode-7.1.1 -error compile BootSectors.

  -> bdmesg.efi
Done!

Generating BootSectors
[NASM] boot0af.s -> /Users/droplets/src/edk2/Clover/CloverPackage/CloverV2/BootSectors/boot0af
[NASM] boot0ss.s -> /Users/droplets/src/edk2/Clover/CloverPackage/CloverV2/BootSectors/boot0ss
[NASM] boot0md.s -> /Users/droplets/src/edk2/Clover/CloverPackage/CloverV2/BootSectors/boot0md
[NASM] boot1h.s -> /Users/droplets/src/edk2/Clover/CloverPackage/CloverV2/BootSectors/boot1h
[NASM] boot1h2.s -> /Users/droplets/src/edk2/Clover/CloverPackage/CloverV2/BootSectors/boot1h2
[NASM] boot1f32.s -> /Users/droplets/src/edk2/Clover/CloverPackage/CloverV2/BootSectors/boot1f32
[NASM] boot1f32alt.s -> /Users/droplets/src/edk2/Clover/CloverPackage/CloverV2/BootSectors/boot1f32alt
[NASM] boot1x.s -> /Users/droplets/src/edk2/Clover/CloverPackage/CloverV2/BootSectors/boot1x
boot1x.s:188: error: short jump is out of range
boot1x.s:193: error: short jump is out of range
boot1x.s:204: error: short jump is out of range
boot1x.s:233: error: short jump is out of range
make: *** [/Users/droplets/src/edk2/Clover/CloverPackage/CloverV2/BootSectors/boot1x] Error 1

o_Ops, ./ebuild.sh exited with error(s), aborting..

XCODE62_OSX_1095_BuildCl_4.2.8_logcomp4004.txt.zip

 

Xcode7.1.1_OSX_10.10.5_BuildCl_4.2.8Log.txt.zip

Link to comment
Share on other sites

@droples, are you sure the NASM binary, used in OS X 10.10.5, is ok? Noticed that for OS X 10.9.5 the script downloads the right NASM binary and installs it at the usual place (~/src/opt/local/bin), but for 10.10.5 it uses the one, located at /opt/local/bin.

Link to comment
Share on other sites

===============================================================================
nasm check:
                          <----------------------------------------------------
NASM version 2.12.02 compiled on Jul  6 2016
===============================================================================

droples has the right version, but something is tellig me that the cuplrit comes from Xcode 7.1

Link to comment
Share on other sites

I have installed MacPorts and nasm (/opt/local/bin).

Last login: Mon Feb 13 16:33:04 on ttys002
IMac122:~ droplets$ nasm -v
NASM version 2.12.02 compiled on Jul  6 2016

But when I compile clover without using a script, it does not cause an error.

Now I removed nasm from /opt/loca/bin

IMac122:~ droplets$ nasm -v
-bash: /opt/local/bin/nasm: No such file or directory

Build_Clover.command4.2.8b,OS X10.10.5,Xcode7.1.1 - no problem.

 

OS_X_10.10.5_LogCompileFromSourceForge.txt.zip

 

OS_X10.10.5_Bcl428b.txt.zip

Link to comment
Share on other sites

I have installed MacPorts and nasm (/opt/local/bin).

Last login: Mon Feb 13 16:33:04 on ttys002
IMac122:~ droplets$ nasm -v
NASM version 2.12.02 compiled on Jul  6 2016

But when I compile clover without using a script, it does not cause an error.

Now I removed nasm from /opt/loca/bin

IMac122:~ droplets$ nasm -v
-bash: /opt/local/bin/nasm: No such file or directory

Build_Clover.command4.2.8b,OS X10.10.5,Xcode7.1.1 - no problem.

 

attachicon.gifOS_X_10.10.5_LogCompileFromSourceForge.txt.zip

 

attachicon.gifOS_X10.10.5_Bcl428b.txt.zip

Macports... hehe, I knew it. I also have Macports, installed on both my machines, but nasm is not installed (never needed it), so... no conflicts can occur.

It causes no errors because in both cases it uses the NASM binary, installed in ~/src/opt/local/bin (downloaded by the buildnasm.sh script in the first case and by the Build_Clover.command script in the second case) and the binary, installed in /opt/local/bin is missing (deleted as you said).

 

@Micky1979, so it seems I can push those changes to the main branch, right?

Link to comment
Share on other sites

unfortunately I get this

 

 

** INSTALL FAILED **


The following build commands failed:
    CompileC /Users/pico/src/edk2/Clover/CloverPackage/sym/build/clover-genconfig/clover-genconfig.build/Release/clover-genconfig.build/Objects-normal/x86_64/clover-genconfig.o clover-genconfig.c normal x86_64 c com.apple.compilers.llvm.clang.1_0.compiler
    CompileC /Users/pico/src/edk2/Clover/CloverPackage/sym/build/clover-genconfig/clover-genconfig.build/Release/clover-genconfig.build/Objects-normal/i386/clover-genconfig.o clover-genconfig.c normal i386 c com.apple.compilers.llvm.clang.1_0.compiler
(2 failures)
make[2]: *** [/users/pico/src/edk2/Clover/CloverPackage/sym/utils/clover-genconfig] Error 65
make[1]: *** [all-recursive] Error 1
make: *** [pkg] Error 2
===============================================================================
build started at:
Mon Feb 13 21:06:37 WIB 2017
finished at
Mon Feb 13 21:09:22 WIB 2017

Done!

 

note :

still get option add "buildclover" symlink to /usr/local/bin  after adding this choice

Link to comment
Share on other sites

not problem with the script, but  Slice deprecated the old way of patching dsdt in r4006, so clovergen-config need to be adjusted by commenting the line 604:

  // addBoolean(fixDict, CFSTR("NewWay_80000000"),    !!(s->FixDsdt & FIX_NEW_WAY)); //deprecated in r4006

 

path is ~/src/edk2/Clover/CloverPackage/utils/clover-genconfig/clover-genconfig.c  :wink_anim: 

  • Like 2
Link to comment
Share on other sites

not problem with the script, but  Slice deprecated the old way of patching dsdt in r4006, so clovergen-config need to be adjusted by commenting the line 604:

  // addBoolean(fixDict, CFSTR("NewWay_80000000"),    !!(s->FixDsdt & FIX_NEW_WAY)); //deprecated in r4006

 

path is ~/src/edk2/Clover/CloverPackage/utils/clover-genconfig/clover-genconfig.c  :wink_anim: 

Thanks, I think genconfig should be more revised.

  • Like 2
Link to comment
Share on other sites

Yep, is no longer in Clover


Thanks, I think genconfig should be more revised.

 
I made code to convert a TagPtr back to a propertylist_v1, may you can publish a config.plist already filled directly under IODeviceTree:/efi/platform:Settings?

(I've done it to to create kexts injector on the fly by reading two entries in a plist)

Link to comment
Share on other sites

Yep, is no longer in Clover

 

I made code to convert a TagPtr back to a propertylist_v1, may you can publish a config.plist already filled directly under IODeviceTree:/efi/platform:Settings?

(I've done it to to create kexts injector on the fly by reading two entries in a plist)

clover-genconfig (4009) does this or I don't understand what do you mean.

Link to comment
Share on other sites

clover-genconfig (4009) does this or I don't understand what do you mean.

I mean that if all the Clover settings are stored in a TagPtr you can covert it in a XML directly in Clover and append a property list where you want in the IO registry, so that clover-genconfig become obsolete (if that can apply).

Anyway project attached, build it and pass him a path to a kext. It will store the Info.plist to a tagptr and convert back to a XML representation. + will create a kext Injector (printing its new Info.plist) using the IOKitPresonalities of the given kext. The Info.plist is ready to be loaded by the bootloader. (what I'm attemting to do is to read the IOKitPresonalities dictionary from the o.c.b.p ... or maybe from the config.plist ), creating an injector instead of patching the info.plist under KextsToPatch or similar for Enoch. The real purpose.

 

Create a propertylist_v1 from TagPtr:

char * XMLConvertTagPtrToPropertyList_v1(TagPtr aDict);

 

Crete a kext injector from TagPtr

char * XMLGenerateKextInjectorFromTag(TagPtr aDict, char *personalityName, char *OSBundleRequired);

Link to comment
Share on other sites

So, I'm running Build_Clover.command v4.2.8 on El Capitan 10.11.6 (15G1217), with XCode 8.2 Build 8C38. But, got "svn: invalid option: --trust-server-cert" issue, then can not continue to later steps except by removing "--trust-server-cert" from the script. << my idiotic method however; causes build *.pkg finished w/o rev number and just "r" letter (with another svn upgrade issue), though it then installed successfully and my 10.11.6 just boots as expected. How can I solve this issue? Thanks  :)

post-826765-0-92664700-1487326572_thumb.jpg

post-826765-0-32847300-1487326575_thumb.jpg

post-826765-0-99162100-1487326579_thumb.jpg

svnLog.txt

Link to comment
Share on other sites

@badruzeus Those shots don't help much. Please, post the full script log from Terminal.

Last login: Fri Feb 17 18:25:25 on console
Badruzeus-MacBook-Pro:~ badruzeus$ /Users/badruzeus/Build_Clover.command 

===============================================================================
Build_Clover script v4.2.8  is the latest version avaiable
                          <----------------------------------------------------
===============================================================================
By Micky1979 based on Slice, Zenith432, STLVNUB, JrCs, cecekpawon, Needy,
cvad, Rehabman, philip_petev, ErmaC

Supported OSes: macOS X, Ubuntu (16.04/16.10), Debian Jessie (8.4/8.5/8.6)
                          <----------------------------------------------------
Remote revision: 4012 Local revision: 0
                          <----------------------------------------------------
===============================================================================
Running from: 10.11.6
                          <----------------------------------------------------
===============================================================================
Xcode 8.2
Build version 8C38
                          <----------------------------------------------------
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 8.0.0 (clang-800.0.42.1)
Target: x86_64-apple-darwin15.6.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
===============================================================================

                          <----------------------------------------------------

===============================================================================
Downloading edk2
                          <----------------------------------------------------
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   592  100   592    0     0    116      0  0:00:05  0:00:05 --:--:--   167
checking..available, continuing..
svn: invalid option: --trust-server-cert
Type 'svn help' for usage.

edksetup.sh:
checking..available, continuing..
svn: 'tf' is not a valid --accept value
MdePkg:
checking..available, continuing..
svn: invalid option: --trust-server-cert
Type 'svn help' for usage.
MdeModulePkg:
checking..available, continuing..
svn: invalid option: --trust-server-cert
Type 'svn help' for usage.
CryptoPkg:
checking..available, continuing..
svn: invalid option: --trust-server-cert
Type 'svn help' for usage.
DuetPkg:
checking..available, continuing..
svn: invalid option: --trust-server-cert
Type 'svn help' for usage.
EdkCompatibilityPkg:
checking..available, continuing..
svn: invalid option: --trust-server-cert
Type 'svn help' for usage.
IntelFrameworkModulePkg:
checking..available, continuing..
svn: invalid option: --trust-server-cert
Type 'svn help' for usage.
IntelFrameworkPkg:
checking..available, continuing..
svn: invalid option: --trust-server-cert
Type 'svn help' for usage.
OvmfPkg:
checking..available, continuing..
svn: invalid option: --trust-server-cert
Type 'svn help' for usage.
OptionRomPkg:
checking..available, continuing..
svn: invalid option: --trust-server-cert
Type 'svn help' for usage.
PcAtChipsetPkg:
checking..available, continuing..
svn: invalid option: --trust-server-cert
Type 'svn help' for usage.
ShellPkg:
checking..available, continuing..
svn: invalid option: --trust-server-cert
Type 'svn help' for usage.
UefiCpuPkg:
checking..available, continuing..
svn: invalid option: --trust-server-cert
Type 'svn help' for usage.
FatPkg:
checking..available, continuing..
svn: invalid option: --trust-server-cert
Type 'svn help' for usage.
BaseTools:
checking..available, continuing..
svn: invalid option: --trust-server-cert
Type 'svn help' for usage.

BaseTools before update was: r
now is: r
checking..

Sorry for my bad @philip_petev, I mean this.. after removing ~/src folder to the Trash (build from scratch).. but after "BaseTools before update was: .." message appears, it will repeat the process from the very beginning again & again. Thx.  :)

Link to comment
Share on other sites

×
×
  • Create New...