I stand correctedIf hug_imports.bac hasn't been edited, it has a path set to /usr/lib/hug.so
thats not correct the official file is here (maybe you have an already edited file )
http://www.basic-converter.org/hug_imports.bac.html
-----------------
Just had a power outage
So I booted a fresh pup 528 into memory (pfix=ram).
- /usr/lib/hug.so is there.
- /usr/share/BaCon/ dir is there with two lang definition files. (For nicoedit and vim I think)
I ran a couple of bacon programs that were compiled with hug_imports.bac pointing to /usr/lib/hug.so
One file ran fine. The other failed. It expected a feature available in a later hug verson. (see below)
This points to a need for version tracking for hug. Bacon has a reserved variable $VERSION, but
this is for bacon itself and does not apply to hug.
The only way I know to find the hug version number is to open hug.bac. Peter maintains a commented
section there that includes the hug version number.
I've been backing up older files by naming them (for example) hug.59.so, hug.60.so, etc.
Simply having /usr/lib/hug.so (or libhug.so) gives no clue to what your working with.
In earlier post in this thread, I made tar files for the latest (beta) versions of hug as they became available.
Another point I'll mention; the hug_imports.bac version is loosely tied to the hug.bac/hug.so version.
To wit-
- hug_imports.bac is the mechanism to load HUG features from the shared library, hug.so
- When Peter adds a new HUG feature, hug_imports.bac is updated to include loading those new features.
- If a program is compiled with the new hug_imports.bac, it expects all the features are available in /usr/lib/hug.so
- If hug.bac is only updated for a bug fix, then hug_imports.bac version doesn't change, as there is no new features added.
. (Probably an oversimplification but works for this discussion)
- This is why the second program I tried didn't run. The program was compiled with a newer hug_imports, which was looking for
. /usr/lib/hug.so, which it found. However, that hug.so is outdated (pup 528), so the program failed because it couldn't
. import a feature from hug.so
So version control is another issue to consider when offering bacon programs for Puppy.
I really don't want to be limited to the "offical" hug version in Puppy. The current beta versions of Bacon, hug and hug_imports
have several bug fixes and some new features.
I don't follow gtkDialog closely, but it seems that it too is under development. Therefore new scripts require the latest gtkDialog version.
So, wonder how that is being addressed?
In conclusion, to shoot for success, this is what I've done with the programs that I've recently posted.
1.) I include the source code. Anyone that has bacon set up can compile it on their machine.
. They can use hug_imports.bac for the smallest possible program. And I comment in the
. source what versions of bacon, hug etc. were used.
2.) I include a "standalone" version of the binary/executable program. This is compiled using INCLUDE ".../hug.bac".
. It makes for a significantly larger program, but, it should only have common linux dependencies, (gtk etc.) and
. should run independent of any bacon related settings or programs.
Your Mi!eage May Vary,
GatorDog