Binary builds for my Harbour fork

1,073 views
Skip to first unread message

vszakats

unread,
Jun 24, 2015, 11:38:13 AM6/24/15
to harbou...@googlegroups.com
Hi All,

If someone is interested in my fork which contains mainline 
Harbour + about 2000+ extra commits, fresh binary builds 
are generated automatically after each commit.

Resulting Windows binaries available here:

Live build logs here:

The package contains matching OpenSSL and curl/libcurl 
binaries builds, which are also downloadable separately.

Build currently uses mingw 5.1.0 32-bit, with 64-bit currently 
disabled due to the time limits of the free-tier [1]. There 
are provisions for MSVS 2015 and 2013, too.

You can support this ongoing effort and count on my support 
in return by donating:

I've also made available past stable releases on GitHub, 
including Windows binaries for 3.0.0 and 2.0.0. These are 
identical with the sf.net downloads:


-Viktor

[1] Timelimit-free plan for OSS would cost $30/mth as per 

Massimo Belgrano

unread,
Jun 26, 2015, 12:32:47 PM6/26/15
to harbou...@googlegroups.com
hbmk2: Could not detect any supported C compiler in your PATH.
       Setup one or set -comp= option to one of these values: mingw, msvc,
       clang, bcc, watcom, icc, pocc, xcc, tcc, mingw64, msvc64, msvcia64,
       bcc64, iccia64, pocc64

Right this Mingw?


I hope that  Przemek and Viktor join effort and invite here discuss


--
--
You received this message because you are subscribed to the Google
Groups "Harbour Users" group.
Unsubscribe: harbour-user...@googlegroups.com
Web: http://groups.google.com/group/harbour-users

---
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to harbour-user...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
Massimo Belgrano
Delta Informatica S.r.l. (Cliccami per scoprire 

vszakats

unread,
Jun 26, 2015, 1:50:29 PM6/26/15
to harbou...@googlegroups.com

On Friday, June 26, 2015 at 6:32:47 PM UTC+2, Massimo Belgrano wrote:
hbmk2: Could not detect any supported C compiler in your PATH.
       Setup one or set -comp= option to one of these values: mingw, msvc,
       clang, bcc, watcom, icc, pocc, xcc, tcc, mingw64, msvc64, msvcia64,
       bcc64, iccia64, pocc64

Right this Mingw?

It seems alright. You can find a bin\getmingw.bat inside 
the package, that downloads it to the proper location.
It's documented in RELNOTES.txt.

-Viktor

Massimo Belgrano

unread,
Jun 26, 2015, 2:05:19 PM6/26/15
to harbou...@googlegroups.com
Do you plan join your effort with Przemek ?

--
--
You received this message because you are subscribed to the Google
Groups "Harbour Users" group.
Unsubscribe: harbour-user...@googlegroups.com
Web: http://groups.google.com/group/harbour-users

---
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to harbour-user...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

vszakats

unread,
Jun 26, 2015, 6:52:31 PM6/26/15
to harbou...@googlegroups.com
On Friday, June 26, 2015 at 8:05:19 PM UTC+2, Massimo Belgrano wrote:
Do you plan join your effort with Przemek ?

We're working together with Przemek as we always did,
We follow and use each other's contributions where we 
find them useful and we discuss if there is something to 
discuss. Technology makes this smoother than ever. 
Volume is indeed not as intense as before, and that's 
because both of us have other priorities to care of.

Injecting back myself day-to-day into the community, 
discussions (and Borland C 5.5 ;) as a volunteer service:
It was a self-destructing process, and I don't plan to repeat it.

Still doing a lot around Harbour though. Most of it is public:

- if you like it: use it, share it, give feedback
- if you don't: don't use it
- if you need support or want to support this work: please 
donate or let's discuss how to work together.

-Viktor

P.S.: This message was meant as a single announcement 
after stabilizing these features. I won't spam users forums 
after each ready build or commit.

DaNiEl MaXiMiLiAnO

unread,
Jun 26, 2015, 8:54:43 PM6/26/15
to harbou...@googlegroups.com
in hmgforum he gave this error when compiling a library and corrected in this way,
MinGW include your path

set path=%path%;C:\hmg.3.4.0\HARBOUR\bin;C:\hmg.3.4.0\MINGW\bin


 
Saludos
                DaNIEl MaXiMiLiAnO



paul.smi...@gmail.com

unread,
Jun 27, 2015, 8:35:45 PM6/27/15
to harbou...@googlegroups.com
Hello

Thank you for what is a big effort
What is actually going on here?
Is this an alternative build of harbour with 2000+ extra bug fixes?
Have the guys who do this at the harbour project run out of steam or is there a disagreement?
The release notes.txt mentions: 5. for x64 executable, type: `hbmk2 ../tests/hello.prg -cpu=x64`
but the post says 64 bit is disabled, is there a way to get it to link to a 64 bit executable.
Anyhow it seems to convert my old summer 87 code without a hitch
Thanks

Paul 

vszakats

unread,
Jun 28, 2015, 6:25:20 AM6/28/15
to harbou...@googlegroups.com


On Sunday, June 28, 2015 at 2:35:45 AM UTC+2, paul.smi...@gmail.com wrote:
Hello

Thank you for what is a big effort
What is actually going on here?
Is this an alternative build of harbour with 2000+ extra bug fixes?

Many of them, but not all is bug fixes.

Have the guys who do this at the harbour project run out of steam or is there a disagreement?

From my part it was unsustainable on both on a personal 
and an effort-vs-benefit level. The dynamics of open source 
involvement are well documented on the internet.

[ There are a few of these each month on Hacker News, 
two random ones:

The release notes.txt mentions: 5. for x64 executable, type: `hbmk2 ../tests/hello.prg -cpu=x64`
but the post says 64 bit is disabled, is there a way to get it to link to a 64 bit executable.

I know about it. RELNOTES is manually updated and the goal 
is to have it synced with proper details on a stable release. 
Refer to BUILD.txt for precise build properties, it's dynamically 
generated on each build. Initial message detailed why 64-bit 
is excluded from current builds.
 
Anyhow it seems to convert my old summer 87 code without a hitch

Good to know, thanks for trying!

-Viktor

Ash

unread,
Jun 28, 2015, 2:46:25 PM6/28/15
to harbou...@googlegroups.com
Hello Vicktor,

Are tip_MailSend() and hb_SendMail() interchageable?

Regards.
Ash

Ash

unread,
Jun 28, 2015, 5:21:56 PM6/28/15
to harbou...@googlegroups.com
Yes, they appear to be.
Tested in GTWVW and LetoDB setting and all is well.
Regards.
Ash 

vszakats

unread,
Jun 29, 2015, 3:01:52 AM6/29/15
to harbou...@googlegroups.com
Yes, it was a rename: [1]

Usual advice applies to lookup references in ChangeLog.txt, 
or even better do a `git log --follow <source>` on the source itself.
The function calls tip_MailAssemble() and there were fixes/updates 
there as well, f.e. [2]. Changes should be largely transparent.

Massimo Belgrano

unread,
Jul 10, 2015, 4:31:10 AM7/10/15
to harbou...@googlegroups.com
Is rddado missing from 3.4?

2015-06-24 17:38 GMT+02:00 vszakats <vsza...@gmail.com>:

--
--
You received this message because you are subscribed to the Google
Groups "Harbour Users" group.
Unsubscribe: harbour-user...@googlegroups.com
Web: http://groups.google.com/group/harbour-users

---
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to harbour-user...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Massimo Belgrano

unread,
Jul 10, 2015, 4:37:36 AM7/10/15
to harbou...@googlegroups.com
sorry i need  rddads 

vszakats

unread,
Jul 10, 2015, 5:55:42 AM7/10/15
to harbou...@googlegroups.com
You'll need to build that from source. Each 3rd party 
component requires constant maintenance, so I kept 
only those few that I use anyway. rddads in particular is 
problematic because SAP doesn't offer a direct 
download URL to an easy to unpack client component, 
so it cannot be automatized without maintaining 
a usable copy, which in turn would be probably illegal.

Anyhow, building extra components from source 
should be relatively simple:

-Viktor

vszakats

unread,
Jul 21, 2015, 12:24:39 PM7/21/15
to harbou...@googlegroups.com

I know about it. RELNOTES is manually updated and the goal 
is to have it synced with proper details on a stable release. 
Refer to BUILD.txt for precise build properties, it's dynamically 
generated on each build. Initial message detailed why 64-bit 
is excluded from current builds.

Thanks to an Appveyor CI update that apparently sped up 
the builds considerably, I've enabled 64-bit mingw target.

So now the unified package is a 32-bit hosted dual target one, 
meaning it runs on 32/64-bit machines and is able to build 
both 32/64-bit apps.

Build process is now also deterministic/reproducible. With Git 
clone protected with HTTPS and 3rd party components by 
SHA256 checksums, this means that a given Git commit hash 
(source repository revision) will always result in the exact same, 
bit-perfect .7z.exe binary package, verifiable by its SHA256 hash.


-Viktor

Massimo Belgrano

unread,
Jul 21, 2015, 1:08:03 PM7/21/15
to harbou...@googlegroups.com
Wow Nice

--
--
You received this message because you are subscribed to the Google
Groups "Harbour Users" group.
Unsubscribe: harbour-user...@googlegroups.com

Web: http://groups.google.com/group/harbour-users

---
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to harbour-user...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

paul.smi...@gmail.com

unread,
Jul 23, 2015, 3:03:21 AM7/23/15
to Harbour Users, vsza...@gmail.com
Hi Viktor

The latest build with both 32 and 64 bit linking produces a virus alert from bitdefender
when I compile and then run my project:

Scan Results
The Virus Shield detected one infected item.
Scan Results
File Name Infection Action
C:\hb34\Fees\fees.exe Gen:Variant.Symmi.50790 Moved to Quarantine

I did a fresh install of windows 7 downloaded and installed harbour-daily-win.7z.exe and ran the getmingw.bat
and got the same results

This doesn't happen if I use hb32 or if I replace the comp subdirectory in hb34 with the one from hb32 so it seems to come from the mingw32 process as opposed to harbour?
also non standard characters such as chr(24) ↑ and chr(25) ↓ don't display.

I don't know if this is real and can't get much information on what this means

Cheers
Paul 

vszakats

unread,
Jul 23, 2015, 5:07:35 AM7/23/15
to Harbour Users, paul.smi...@gmail.com
Hello Paul,


On Thursday, July 23, 2015 at 9:03:21 AM UTC+2, paul.smi...@gmail.com wrote:
Hi Viktor

The latest build with both 32 and 64 bit linking produces a virus alert from bitdefender
when I compile and then run my project:

Scan Results
The Virus Shield detected one infected item.
Scan Results
File Name Infection Action
C:\hb34\Fees\fees.exe Gen:Variant.Symmi.50790 Moved to Quarantine

This is strange indeed because there is no file named 
"Fees\fees.exe" neither inside the .7z package, nor 
inside the downloaded mingw package. Though the 
mingw package is not hash checked, so if it's corrupted 
or infested on the sf.net mirror URL the batch file uses, 
it can theoretically happen, but should be rather unlikely.

Just verified by downloading the latest .7z and run 
getmingw.bat and found no "fees.exe" in the folder tree.

So I'm not sure what you're seeing, but chances are high 
it doesn't come from Harbour 3.4.

[ If an actual Harbour or mingw .exe/.dll is giving an alarm 
it's useful to run it through https://www.virustotal.com to 
confirm if it's a false one or a true problem. ]

I did a fresh install of windows 7 downloaded and installed harbour-daily-win.7z.exe and ran the getmingw.bat
and got the same results

This doesn't happen if I use hb32 or if I replace the comp subdirectory in hb34 with the one from hb32 so it seems to come from the mingw32 process as opposed to harbour?
also non standard characters such as chr(24) ↑ and chr(25) ↓ don't display.

It can happen with the GTCGI driver when outputting to the 
console, 3.4 uses it in UNICODE mode on Vista and above. 
Other GTs, or GTCGI redirected to a file should work like 3.2.

Test code:

[ GTCGI is automatically used with non-interactive hbmk2/hbrun 
scripts, auto-switching to GTWIN if any interactive functions are 
used in the script, f.e. an Inkey() or a CLS. hbmk2/hbrun ]

UNICODE arrows work well:

On the other hand codepoint 24 and 25 are not mapped 
to displayable glyphs in UNICODE (nor in standard ASCII 
for that matter), what is probably the reason they don't display:


So, in general it's best to avoid them to display symbols 
in favor of standard UNICODE characters. (even though 
Harbour codebase also uses it in a few places, each marked 
with a "LOW-ASCII" comment, but, none of those is meant 
to be used in non-interactive CGI output.)

-Viktor

paul.smi...@gmail.com

unread,
Jul 23, 2015, 6:45:33 AM7/23/15
to Harbour Users, vsza...@gmail.com
Hi Viktor

c:\hb34\fees\fees.exe is my project

Sorry I should have been clearer about that, other than that everything was installed standard.

The first bit of code startswith :

*----- include this and call hb_GTInfo to disable the windows X close button

#include "set.ch"
#include "hbwin.ch"
#include "hbgtinfo.ch"
HB_GTINFO( HB_GTI_WINTITLE, "Fees Accounts System" )
HB_GTINFO( HB_GTI_CLOSABLE, .F. )
SETMODE(25,80)
SET EPOCH TO 1920

SET CENTURY ON
SET DATE BRITISH
SET WRAP ON
SET ESCAPE OFF
SET SCOREBOARD OFF
SETCANCEL(.F.)

Other than those few graphical features it still runs in consol mode circa summer 87

At the moment I,ve restored to a state before HB34 installation, when I get time I'll recreate it and submit it as per your suggestion to virustotal.com

Thanks for your advice and help

Cheers
Paul

vszakats

unread,
Jul 23, 2015, 7:22:51 AM7/23/15
to Harbour Users, paul.smi...@gmail.com
Hi Paul,


On Thursday, July 23, 2015 at 12:45:33 PM UTC+2, paul.smi...@gmail.com wrote:
Hi Viktor

c:\hb34\fees\fees.exe is my project

Sorry I should have been clearer about that, other than that everything was installed standard.

Ah, okay. Not very likely that a freshly generated .exe 
has a trojan inside, but virustotal should give truth here.

The first bit of code startswith :

*----- include this and call hb_GTInfo to disable the windows X close button

#include "set.ch"
#include "hbwin.ch"
#include "hbgtinfo.ch"
HB_GTINFO( HB_GTI_WINTITLE, "Fees Accounts System" )
HB_GTINFO( HB_GTI_CLOSABLE, .F. )
SETMODE(25,80)
SET EPOCH TO 1920

SET CENTURY ON
SET DATE BRITISH
SET WRAP ON
SET ESCAPE OFF
SET SCOREBOARD OFF
SETCANCEL(.F.)

Other than those few graphical features it still runs in consol mode circa summer 87

You mean this for the virus problem or the Chr( 24 ) issue?

It'd be nice if you could create a self-contained example, 
as I couldn't replicate this by @ SAY-ing Chr( 24 ), neither 
by running the code as an .hb script nor by building an 
exe using `hbmk2 test.prg hbwin.hbc`. In both tests I got 
arrows displayed as expected.

paul.smi...@gmail.com

unread,
Jul 23, 2015, 10:53:17 AM7/23/15
to Harbour Users, vsza...@gmail.com
Hi Viktor
This is the report from virus total, it looks worrying, I'm going  to restore back to earlier images until I can get a clear report
Cheers
Paul
VirusTotal
SHA256:4475ca671a74051b3187b1901263911b90815ef5e3732f45d1806640943334ea
File name:main.exe.122873.gzquar
Detection ratio:9 / 55
Analysis date:2015-07-23 14:02:11 UTC ( 1 minute ago )
0
0
AntivirusResultUpdate
ALYacGen:Variant.Symmi.5079020150723
Ad-AwareGen:Variant.Symmi.5079020150723
ArcabitTrojan.Symmi.DC66620150723
BitDefenderGen:Variant.Symmi.5079020150723
EmsisoftGen:Variant.Symmi.50790 (B)20150723
F-SecureGen:Variant.Symmi.5079020150723
GDataGen:Variant.Symmi.5079020150723
MicroWorld-eScanGen:Variant.Symmi.5079020150723
VBA32BScope.Trojan-Dropper.Injector20150723
AVG20150723
AVware20150723
AegisLab20150723
Agnitum20150722
AhnLab-V320150723
Alibaba20150723
Antiy-AVL20150723
Avast20150723
Avira20150723
Baidu-International20150723
Bkav20150723
ByteHero20150723
CAT-QuickHeal20150722
ClamAV20150723
Comodo20150723
Cyren20150723
DrWeb20150723
ESET-NOD3220150723
F-Prot20150723
Fortinet20150723
Ikarus20150723
Jiangmin20150722
K7AntiVirus20150723
K7GW20150723
Kaspersky20150723
Kingsoft20150723
Malwarebytes20150723
McAfee20150723
McAfee-GW-Edition20150723
Microsoft20150723
NANO-Antivirus20150723
Panda20150723
Qihoo-36020150723
Rising20150722
SUPERAntiSpyware20150722
Sophos20150723
Symantec20150723
Tencent20150723
TheHacker20150723
TrendMicro20150723
TrendMicro-HouseCall20150723
VIPRE20150723
ViRobot20150723
Zillya20150723
Zoner20150723
nProtect20150723

vszakats

unread,
Jul 23, 2015, 11:22:54 AM7/23/15
to Harbour Users, paul.smi...@gmail.com
Hi Paul,

Here's my `? "hello world` built into an .exe using `hbmk2 a.prg -strip`:

It is bogus detection. With the source open and reproducible builds, 
it's verifiable. (in above .exe only core code and mingw bits are 
included)

paul.smi...@gmail.com

unread,
Jul 23, 2015, 12:45:31 PM7/23/15
to Harbour Users, vsza...@gmail.com
Hi Viktor

Thanks for all your work
Glad to here you think its bogus
It's after midnight so I'm off to bed

Cheers
Paul

vszakats

unread,
Jul 23, 2015, 10:07:42 PM7/23/15
to Harbour Users, paul.smi...@gmail.com
Hi Paul,

Same source and environment built in 64-bit:
   (spoiler: no hits)

command-line:
   `hbmk2 a.prg -strip -map -oa64 -cpu=x64`

Hopefully the x86 misdetections will be reported and 
the offending search formulae be fixed eventually.

VBA32 even finds one in 3.2:
and with 3.2 with mingw 5.1:

Hard to guess what triggers these false hits, maybe 
the just revised Windows version detection code in 3.4? 
Core is mostly the same except some small details.

-Viktor

paul.smi...@gmail.com

unread,
Jul 24, 2015, 8:11:19 PM7/24/15
to Harbour Users, vsza...@gmail.com
Hi Viktor

I hope your right, way out of my depth here.
For the short term I've gone back to 3.2 , the odd behavior of the arrow characters and virus detections have completely disappeared.
 
0/55 for 32 bit:
https://www.virustotal.com/en/file/ffcf18b58aa68d8728115ad7bf6da5430b6740d08f920b0de0f8512af159eb9a/analysis/1437780822/
0/55 for 64 bit:

Cheers
Paul

vszakats

unread,
Jul 24, 2015, 10:08:12 PM7/24/15
to Harbour Users, paul.smi...@gmail.com
Hi,

On Saturday, July 25, 2015 at 2:11:19 AM UTC+2, paul.smi...@gmail.com wrote:
I hope your right, way out of my depth here.
For the short term I've gone back to 3.2 , the odd behavior of the arrow characters and virus detections have completely disappeared.

Short of an example that reproduces it, it will be difficult
to fix this.
Nice to know 3.4 is a virus and 3.2 is clean.

Another lesson learned.

JoséQuintas

unread,
Jul 24, 2015, 10:15:50 PM7/24/15
to harbou...@googlegroups.com

vszakats

unread,
Jul 25, 2015, 5:18:07 AM7/25/15
to Harbour Users, jmcqu...@gmail.com
Thanks José.

Aside from all these tests, what is important to understand 
about the binary builds is that all their components come 
from verifiable places (except two, see later). The source 
code comes from GitHub's Harbour fork repo, the tools come 
from the internet verified by SHA256 hashes. The generated 
binaries are built from the GitHub source using these public 
tools (and some preinstalled ones on the build server). All 
the tools are available in source form, too. It means that 
a virus cannot just suddenly appear and reappear, and if the 
originally hashes tool binaries were virus free, the result will 
be virus-free as well. Also the build machines can be infected, 
but I'd highly doubt this should be a serious concern as it 
would mean an instant death for the service (see also the 
sourceforge story).

Two exceptions are OpenSSL and libcurl library binaries, 
which I built on my own system using original source code.
This process is unverifiable and if you don't trust it, you 
shouldn't use them. Luckily these are optional components 
and most probably weren't even involved in above tests.

So, if someone has doubts, a) simply ignore 3.4 binaries because 
I'm not very interested in fighting with the antivirus industry 
and their products. (notice that VirusTotal has a sortiment of 
tools that include many products that most people never 
heard of or used - possibly with bugs, which is normal because 
it's mainly a tool for antivirus authors), or, b) spend some minutes, 
look into the build log [1] and run your favorite antivirus on the 
downloaded components. c) or build from source. If building 
from source still return trojans, you can look up the source code
and find what all the malicious code I contributed to it ;)

The turn this thread had with the red antivirus alerts and distrust 
(and lack of feedback after reporting problems) reminds me why 
I left this community.

This is my last post here.

vszakats

unread,
Jul 25, 2015, 5:19:31 AM7/25/15
to Harbour Users, jmcqu...@gmail.com, vsza...@gmail.com

paul.smi...@gmail.com

unread,
Jul 25, 2015, 4:22:43 PM7/25/15
to Harbour Users, vsza...@gmail.com
Hi Viktor

You sound really upset, I'm sorry no offence was intended.
I didn't realize red text was such a faux pas I was just trying to capture the screen info for you
I have isolated the difference in behavior between hb32 and hb34 over the arrow symbols.

Test.prg : 

clear
? "Highlight your choice using       Ä  Ä  then press enter ( ÄÄÙ)"
inkey(0)

Then compile with :
hbmk2 test -run

Then compare the result 
In 3.4, the arrow symbols don't display when test,exe is started from hbmk2 when using the -run switch but do when running test,exe from the command line
In 3.2 the arrow symbols display in both situations

To me this difference in the -run switch between the two versions wasn't the easiest to notice especially because my antivirus soon quarantined
test.exe and even with it turned off I was unable to recreate it , somehow access is denied by the operating system even with the antivirus turned off ! This also happened to my database which I've used in my business for 27years. What would you do? I couldn't see any alternative but to roll back to a previous state where I could access my stuff.

Once again my apologies,I am an elderly fellow not in the IT business who needed to get a useful clipper tool to run on 64 bit machines, and am very appreciative of your major
and largely thankless efforts

Cheers
Paul
 

Mario H. Sabado

unread,
Jul 25, 2015, 7:59:40 PM7/25/15
to harbou...@googlegroups.com
Hi,

I have also encountered the same scenario with the "Access Denied" problem but this only happens in my one application involving Mingw32 and Xailer's Fastreport library.  When I added -cpp option to hbmk2, the "Access Denied" problem has gone.

Regards,
Mario

paul.smi...@gmail.com

unread,
Aug 1, 2015, 8:37:25 AM8/1/15
to Harbour Users, vszakats
Hi Viktor

There is no longer any difference between the displayed characters in either situation, nor any unwanted quarantining of executable files by antivirus programs

Thanks
Paul

vszakats

unread,
Oct 10, 2015, 6:51:47 AM10/10/15
to Harbour Users
As a further improvement, curl/libcurl, libssh2 and OpenSSL 
component binary builds are now also automatised using the 
same principles as Harbour itself, including deterministic/reproducible 
builds, and (fat) LTO mode as an extra for OpenSSL.

It means that every single component that makes up the 
Harbour binary package is now transparently built over the 
Internet using open/free tools and services.


Donations are welcome:
   PayPal

-Viktor

vszakats

unread,
Nov 23, 2015, 8:14:17 AM11/23/15
to Harbour Users
Reply all
Reply to author
Forward
0 new messages