Jump to content

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


Micky1979
2,126 posts in this topic

Recommended Posts

Here.

 

It's not really important.

 

Ok, I'm going to update the script with these modifications :)

 

EDIT done:

  • new printRev() function to acquire both Clover and edk2 revisions, by Needy. 
  • Clover's rev printed immediately (by Needy), so old option for that is removed!
  • Fixed a bug with svn command.
  • Like 1
Link to comment
Share on other sites

Build_Clover4.0.

OS X 10.11.6, UBUntu Studio16.04 (Without update,gcc-5.3.1) -Build_clover4.0 is working properly.

I see two nuances in the logs UBUNTU.

 

 

Setting up libcurl3-gnutls:amd64 (7.47.0-1ubuntu2.1) ...
Setting up curl (7.47.0-1ubuntu2.1) ...
Processing triggers for libc-bin (2.23-0ubuntu3) ...
root@ggh:~# exit
exit
W: chmod 0700 of directory /var/lib/apt/lists/partial failed - SetupAPTPartialDirectory (1: Operation not permitted)
E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied)
E: Unable to lock directory /var/lib/apt/lists/
W: Problem unlinking the file /var/cache/apt/pkgcache.bin - RemoveCaches (13: Permission denied)
W: Problem unlinking the file /var/cache/apt/srcpkgcache.bin - RemoveCaches (13: Permission denied)
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
Remote revision: 3758 Local revision: 0 
 
sed: can't read 73s/.*/"cloverEFI.64.blockio_title" = "Custom CloverEFI 64-bits (boot7)";/: No such file or directory
sed: can't read 74s/.*/"cloverEFI.64.blockio_description" = "Built using Build_Clover.command with: -D USE_APPLE_HFSPLUS_DRIVER -D USE_BIOS_BLOCKIO -D DISABLE_USB_SUPPORT -D NO_GRUB_DRIVERS_EMBEDDED -D ENABLE_VBIOS_PATCH_CLOVEREFI";/: No such file or directory
Error: in /tmp/Localizable.strings, no changes applied..
Error: in /tmp/Localizable.strings, no changes applied..
TOOLCHAIN_DIR: /usr
NASM_PREFIX: /usr/bin/
NASM_VER: 2.12.02
Initializing workspace 

 

 

 

OS_X_3758.txt

Ubuntu.txt

 

PS Ubuntu 16.04.1 with update, Build_Clover4 - clover is  compiled without any problems.

===============================================================================
Build_Clover script v4.0
                          <----------------------------------------------------
===============================================================================
By Micky1979 based on Slice, Zenith432, STLVNUB, JrCs, cecekpawon, Needy,
cvad, Rehabman, philip_petev

Supported OSes:macOS X, Ubuntu 16.04
                          <----------------------------------------------------
Remote revision: 3758 Local revision: 3758 
                          <----------------------------------------------------
Please enter your choice: 
1) update Clover only (no building)
2) update & build Clover
3) run my script on the source
4) build existing revision (no update, standard build)
5) build existing revision for release (no update, standard build)
6) build existing revision with custom macros enabled
7) info and limitations about this script
8) enter Developers mode (only for devs)
#? 1
===============================================================================
Running from: Linux
                          <----------------------------------------------------
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.4.0-6ubuntu1~16.04.2' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.2) 
===============================================================================

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

===============================================================================
Updating edk2
                          <----------------------------------------------------
checking..available, continuing..

 

Ubu_16041.txt

  • Like 1
Link to comment
Share on other sites

 

Ok, I'm going to update the script with these modifications :)

 

EDIT done:

  • new printRev() function to acquire both Clover and edk2 revisions, by Needy. 
  • Clover's rev printed immediately (by Needy), so old option for that is removed!
  • Fixed a bug with svn command.

 

getRev() to acquire and printRev() to display clover's remote and local revision.  :) 

 

Here's an update.

 

Print the new information after the update. The line will be projected only when Build_Flag = NO.

if [[ "$BUILD_FLAG" == NO ]]; then
    clear
    # print updated remote and local revision
    printRev "Remote revision: " "Local revision: "
    build
fi

That's all for now.

 

Best regards.

Build_Clover_rev_inf_after_upd.command.zip

Link to comment
Share on other sites

Hey Needy is ok. Would you like to be able to update the script directly in the download section?


Build_Clover4.0.

OS X 10.11.6, UBUntu Studio16.04 (Without update,gcc-5.3.1) -Build_clover4.0 is working properly.

I see two nuances in the logs UBUNTU.

 

 

Setting up libcurl3-gnutls:amd64 (7.47.0-1ubuntu2.1) ...
Setting up curl (7.47.0-1ubuntu2.1) ...
Processing triggers for libc-bin (2.23-0ubuntu3) ...
root@ggh:~# exit
exit
W: chmod 0700 of directory /var/lib/apt/lists/partial failed - SetupAPTPartialDirectory (1: Operation not permitted)
E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied)
E: Unable to lock directory /var/lib/apt/lists/
W: Problem unlinking the file /var/cache/apt/pkgcache.bin - RemoveCaches (13: Permission denied)
W: Problem unlinking the file /var/cache/apt/srcpkgcache.bin - RemoveCaches (13: Permission denied)
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
Remote revision: 3758 Local revision: 0 
 
sed: can't read 73s/.*/"cloverEFI.64.blockio_title" = "Custom CloverEFI 64-bits (boot7)";/: No such file or directory
sed: can't read 74s/.*/"cloverEFI.64.blockio_description" = "Built using Build_Clover.command with: -D USE_APPLE_HFSPLUS_DRIVER -D USE_BIOS_BLOCKIO -D DISABLE_USB_SUPPORT -D NO_GRUB_DRIVERS_EMBEDDED -D ENABLE_VBIOS_PATCH_CLOVEREFI";/: No such file or directory
Error: in /tmp/Localizable.strings, no changes applied..
Error: in /tmp/Localizable.strings, no changes applied..
TOOLCHAIN_DIR: /usr
NASM_PREFIX: /usr/bin/
NASM_VER: 2.12.02
Initializing workspace 

 

 

 

attachicon.gifOS_X_3758.txt

attachicon.gifUbuntu.txt

 

PS Ubuntu 16.04.1 with update, Build_Clover4 - clover is  compiled without any problems.

 

 

===============================================================================
Build_Clover script v4.0
                          <----------------------------------------------------
===============================================================================
By Micky1979 based on Slice, Zenith432, STLVNUB, JrCs, cecekpawon, Needy,
cvad, Rehabman, philip_petev

Supported OSes:macOS X, Ubuntu 16.04
                          <----------------------------------------------------
Remote revision: 3758 Local revision: 3758 
                          <----------------------------------------------------
Please enter your choice: 
1) update Clover only (no building)
2) update & build Clover
3) run my script on the source
4) build existing revision (no update, standard build)
5) build existing revision for release (no update, standard build)
6) build existing revision with custom macros enabled
7) info and limitations about this script
8) enter Developers mode (only for devs)
#? 1
===============================================================================
Running from: Linux
                          <----------------------------------------------------
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.4.0-6ubuntu1~16.04.2' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.2) 
===============================================================================

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

===============================================================================
Updating edk2
                          <----------------------------------------------------
checking..available, continuing..

 

 

 

attachicon.gifUbu_16041.txt

Thanks I had to revise something when you use custom macros in Linux because actually try to mod the pkg files (that will not be created).

Instead:

Setting up libcurl3-gnutls:amd64 (7.47.0-1ubuntu2.1) ...
Setting up curl (7.47.0-1ubuntu2.1) ...
Processing triggers for libc-bin (2.23-0ubuntu3) ...
root@ggh:~# exit
exit
W: chmod 0700 of directory /var/lib/apt/lists/partial failed - SetupAPTPartialDirectory (1: Operation not permitted)
E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied)
E: Unable to lock directory /var/lib/apt/lists/
W: Problem unlinking the file /var/cache/apt/pkgcache.bin - RemoveCaches (13: Permission denied)
W: Problem unlinking the file /var/cache/apt/srcpkgcache.bin - RemoveCaches (13: Permission denied)
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
Remote revision: 3758 Local revision: 0 

this happen because you are the root user, should be ok with a normal user.

  • Like 2
Link to comment
Share on other sites

Hey Needy is ok. Would you like to be able to update the script directly in the download section?

That's very kind of you and it would be rude not to accept your offer. However, keep in mind that I won't be in possession of a computer for, at least, the next month, in other words I won't be very useful for some time.

 

*If the text above looks confusing, I meant to say yes, I don't have a problem with that.  :) 

 

@Fljagd, the svn upgrade command should resolve your issue. Some automatisation could be implemented in the script as well.

 

Best regards.

Edited by Needy
Link to comment
Share on other sites

Thanks I see, but my reponse here was ..is possible the opposite? I mean, I see you have the src outside the home folder ("/Volumes/Development") so this also mean that you, may/probably, want to run it from an older OS? This fix il almost irreversible, and IMHO a normal error fixable downloading again the source, not really a surprise:

 

 

 

Note: The svn upgrade command need to do for every SVN working copy.

Note: After upgrading to Subversion 1.9, you cannot go back to Subversion 1.7. And upgraded working copies will be unusable by older versions of Subversion.

Note: The svn upgrade command may take a while, and for some users, it may be more practical to simply checkout a new working copy.

 

 

 

 

BTW I'm going to fix it.-->             #323            

 

mmmh subversion source code is 7.9 mb only..  :puppeh: .. maybe I can leave the same subversion..

That's very kind of you and it would be rude not to accept your offer. However, keep in mind that I won't be in possession of a computer for, at least, the next month, in other words I won't be very useful for some time.

 

You have now rights to update the script in the download section, feel free to update the script when you like  :D

  • Like 1
Link to comment
Share on other sites

Yep "delete ~/src"

I removed it because I was afraid that someone selected that option by mistake :hysterical:, (src can be also a folder containing other projects)

...but a right click with the mouse is enough I guess  :lol:

  • Like 1
Link to comment
Share on other sites

Yep, I removed it because I was afraid that someone selected that option by mistake :hysterical:

...but a right click with the mouse is enough I guess  :lol:

yes, it is wise +1

edit: or request a double validation for this option

Edited by Fljagd
  • Like 1
Link to comment
Share on other sites

Only one problem here:

edk2() {
    echo
    #local BaseToolsRev="unknown"

    local revision="-r $EDK2_REV"

    if [[ ! -d "${DIR_MAIN}/edk2" ]] ; then
        printHeader 'Downloading edk2'
        mkdir -p "${DIR_MAIN}"/edk2
    else
        printHeader 'Updating edk2'
        if [[ -d "${DIR_MAIN}/edk2/BaseTools" ]] ; then
            getRev "BaseTools"
        fi
    fi

#local BaseToolsRev="unknown" was need because we need to know the revision before and after a possible update. Based on this, comparing old and new, the script clean stuff (most important BaseTools otherise remain the same).

..but this way 'getRev "BaseTools"' in both edk2() and cleanAllTools() override the $BaseToolsRev .. and the result is that no clean is performed because it report that is the same revision even if is changed:

U    Library/MpInitLib/Microcode.c
U    Library/MpInitLib/MpLib.h
U    PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf
U    PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.c
U    PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.h
U    PiSmmCpuDxeSmm/CpuS3.c
Updated to revision 22628.

BaseTools before update was: r22435
now is: r22435 

.. but is effectively 22628 now. Can you fix it? :)

Link to comment
Share on other sites

Only one problem here:

edk2() {
    echo
    #local BaseToolsRev="unknown"

    local revision="-r $EDK2_REV"

    if [[ ! -d "${DIR_MAIN}/edk2" ]] ; then
        printHeader 'Downloading edk2'
        mkdir -p "${DIR_MAIN}"/edk2
    else
        printHeader 'Updating edk2'
        if [[ -d "${DIR_MAIN}/edk2/BaseTools" ]] ; then
            getRev "BaseTools"
        fi
    fi

#local BaseToolsRev="unknown" was need because we need to know the revision before and after a possible update. Based on this, comparing old and new, the script clean stuff (most important BaseTools otherise remain the same).

..but this way 'getRev "BaseTools"' in both edk2() and cleanAllTools() override the $BaseToolsRev .. and the result is that no clean is performed because it report that is the same revision even if is changed:

U    Library/MpInitLib/Microcode.c
U    Library/MpInitLib/MpLib.h
U    PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf
U    PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.c
U    PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.h
U    PiSmmCpuDxeSmm/CpuS3.c
Updated to revision 22628.

BaseTools before update was: r22435
now is: r22435 

.. but is effectively 22628 now. Can you fix it? :)

Here you go.

BaseTools before update was: r22627
now is: r22628
checking..available, continuing..

There was a misspell, getRev "BaseTolls", fixed that. In addition, there are 2 more checks.

 

*This is a prototype. The code is not clean.

 

Best regards.

Build_Clover_4_0_2_prototype.command.zip

Link to comment
Share on other sites

×
×
  • Create New...