U++ framework
Do not panic. Ask here before giving up.

Home » Community » U++ community news and announcements » New experimental Linux/FreeBSD release
New experimental Linux/FreeBSD release [message #53424] Thu, 02 April 2020 18:42 Go to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
Trying to make Linux experience nicer:

http://ultimatepp.org/downloads/upp-posix-14219.tar.xz

Unpack, cd to folder and run ./install (or if that does not work, sh install, but in that case let me know). If you are lucky, you will be in theide in about 2 minutes...

This is work in progress and at the moment will probably probably run flawlessly only on debian systems, although there is a try at fedora and openSUSE and related distros. I hope community will help to alter ./install to support more systems (just check the file, it is really easy to understand).

Mirek

[Updated on: Sat, 04 April 2020 15:10]

Report message to a moderator

Re: New experimental Linux/FreeBSD release [message #53429 is a reply to message #53424] Thu, 02 April 2020 21:06 Go to previous messageGo to next message
amrein is currently offline  amrein
Messages: 278
Registered: August 2008
Location: France
Experienced Member
Hi Mirek

This king of tarball, using a script to auto-install dependencies and containing static binaries... it's so Windows like experience.
Most Linux developers will hate this. Laughing

Several issue for me:

* The extracted directory should have the same name as the tarball (if possible) and the directory name should contain the version number too

upp-posix-14207.tar.xz => upp-posix-14207

* No binary inside a source tarball, ever. Rolling Eyes

* No auto-install of dependencies. Rolling Eyes
Re: New experimental Linux/FreeBSD release [message #53430 is a reply to message #53424] Thu, 02 April 2020 21:50 Go to previous messageGo to next message
dolik.rce is currently offline  dolik.rce
Messages: 1796
Registered: August 2008
Location: Czech Republic
Ultimate Contributor

Hi Mirek,

I Agree with everything Amrein said... Also never use sudo in a script like this Smile You should at least ask user if it is ok to run the packaging command, before showing password prompt Smile In ideal world, you wouldn't even call the command if all the dependencies are already present.

That aside, even after ironing this out, the script will fail, unless you already have used U++ in past. Or if you don't have any build method called CLANG, as in my case. Some minimal build method should be inside the tarball, or should be generated by the script. It could use pkgconfig to fill in the include and library directories. Compiler can be set to c++, which is usually present regardless whether the system uses gcc or clang.

Best regards,
Honza
Re: New experimental Linux/FreeBSD release [message #53431 is a reply to message #53430] Thu, 02 April 2020 22:46 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
dolik.rce wrote on Thu, 02 April 2020 21:50

That aside, even after ironing this out, the script will fail, unless you already have used U++ in past. Or if you don't have any build method called CLANG, as in my case. Some minimal build method should be inside the tarball, or should be generated by the script. It could use pkgconfig to fill in the include and library directories. Compiler can be set to c++, which is usually present regardless whether the system uses gcc or clang.


CLANG should be autocreated by umk (umks32). Have you really tried to run it so that autocreation failed or you do infer this from the script?

(We are now actually building with empty include/library dirs, thats recent addition (U++ using pkg-config in builder)).

Mirek

[Updated on: Thu, 02 April 2020 22:50]

Report message to a moderator

Re: New experimental Linux/FreeBSD release [message #53432 is a reply to message #53429] Thu, 02 April 2020 22:47 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
amrein wrote on Thu, 02 April 2020 21:06


* No binary inside a source tarball, ever. Rolling Eyes

* No auto-install of dependencies. Rolling Eyes


Do not think about this as source tarball.

EDIT: Or actually do, but then ignore ./install. You can ignore that, do dependecies yourself and just do 'make'. That should work. In other words, delete ./install, ./clean, ./umks32 and you have source tarball. Which will take much more time and effort to get working...

Mirek

[Updated on: Thu, 02 April 2020 22:50]

Report message to a moderator

Re: New experimental Linux/FreeBSD release [message #53436 is a reply to message #53431] Fri, 03 April 2020 06:37 Go to previous messageGo to next message
dolik.rce is currently offline  dolik.rce
Messages: 1796
Registered: August 2008
Location: Czech Republic
Ultimate Contributor

mirek wrote on Thu, 02 April 2020 22:46
CLANG should be autocreated by umk (umks32). Have you really tried to run it so that autocreation failed or you do infer this from the script?

(We are now actually building with empty include/library dirs, thats recent addition (U++ using pkg-config in builder)).

Mirek


I have tried to run it. Here is the relevant part of the output (called with bash -x):
+ ./umks32
Usage: umk assembly main_package build_method -options [+flags] [output]

Examples: umk examples Bombs GCC -ab +GUI,SHARED ~/bombs
          umk examples,uppsrc Bombs ~/GCC.bm -rv +GUI,SHARED ~/bin

See http://www.ultimatepp.org/app$ide$umk$en-us.html for details
+ echo Using umks32 to build
Using umks32 to build
+ UMK=./umks32
+ ./umks32 ./uppsrc ide CLANG -brs ./theide
Invalid build method
+ ./umks32 ./uppsrc umk CLANG -brs ./umk
Invalid build method


Oh and by the way, you should definitely add "set -e" at the beginning of the script, so it fails on errors. This way, it tries to launch TheIDE which it failed to build Smile

[Updated on: Fri, 03 April 2020 06:40]

Report message to a moderator

Re: New experimental Linux/FreeBSD release [message #53437 is a reply to message #53432] Fri, 03 April 2020 07:35 Go to previous messageGo to next message
amrein is currently offline  amrein
Messages: 278
Registered: August 2008
Location: France
Experienced Member
Here is what could be a well formed archive:

upp-posix-14205
|-cache
|    |-upp
|-config
|    |-upp
|       |-umk
|       |-theide
|           |-speller
|-extra
|    |-bazaar
|    |-examples
|    |-reference
|    |-tutorial
|-uppsrc

And how Makefile could be used:
make theide                                 : build umk then use it to build theide with default parameters
make theide OPTIONS=-rbsv                   : build umk then use it to build theide as release binary
make theide BUILD_METHOD=CLANG FLAGS=GUI,MT : build umk then use it to build theide using CLANG and specific FLAGS
make umk                                    : build umk only
make umk MAKE=gmake CXX=g++                 : build umk using gmake and g++ (see uppsrc/uMakefile.in for other possible options)
make clean                                  : delete build directory and binaries
make build ASSEMBLY=examples PACKAGE=Button : build examples Button package from extra directory


Please, test this tarball on Linux. It's well formed and Makefile is really faster:

http://dl.free.fr/mP39SKqYs

For Windows, the archive name could be upp-win64-14205.

For sandboxing umk and theide, it would be great to use $PWD/cache/upp and $PWD/config/upp/ and not use hidden directories
(and use ~/.config/upp and ~/.cache/upp only if umk and theide are in /opt or /usr)

And... another suggestion: add the option to clean the cache directory from command line and from inside theide. Confused
Re: New experimental Linux/FreeBSD release [message #53439 is a reply to message #53436] Fri, 03 April 2020 09:31 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
dolik.rce wrote on Fri, 03 April 2020 06:37
mirek wrote on Thu, 02 April 2020 22:46
CLANG should be autocreated by umk (umks32). Have you really tried to run it so that autocreation failed or you do infer this from the script?

(We are now actually building with empty include/library dirs, thats recent addition (U++ using pkg-config in builder)).

Mirek


I have tried to run it. Here is the relevant part of the output (called with bash -x):
+ ./umks32
Usage: umk assembly main_package build_method -options [+flags] [output]

Examples: umk examples Bombs GCC -ab +GUI,SHARED ~/bombs
          umk examples,uppsrc Bombs ~/GCC.bm -rv +GUI,SHARED ~/bin

See http://www.ultimatepp.org/app$ide$umk$en-us.html for details
+ echo Using umks32 to build
Using umks32 to build
+ UMK=./umks32
+ ./umks32 ./uppsrc ide CLANG -brs ./theide
Invalid build method
+ ./umks32 ./uppsrc umk CLANG -brs ./umk
Invalid build method


Oh and by the way, you should definitely add "set -e" at the beginning of the script, so it fails on errors. This way, it tries to launch TheIDE which it failed to build Smile


Thats really interesting. With freshly installed fedora, after fixing one wrong package name (gtk3-devel), all went as expected. It actually took longer to install dependecies than to compile theide...

Are you running as regular user? Do you have .config folder inside the unpacked archive? What is inside? There should be umks32 folder and inside autogenerated CLANG.bm (it is after I do this on ubuntu or fedora).

(Of course this is all work of progress, I will try to add most of suggestion today, while trying to make this work on Fedora, Suse and Arch).
Re: New experimental Linux/FreeBSD release [message #53440 is a reply to message #53437] Fri, 03 April 2020 09:41 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
amrein wrote on Fri, 03 April 2020 07:35
Here is what could be a well formed archive:


So if I play clueless user, this is what I get:

Quote:

[cxl@localhost upp-posix-14205]$ make theide
make[1]: Entering directory '/home/cxl/upp-posix-14205/uppsrc'
mkdir -p /home/cxl/upp-posix-14205/cache/upp/umk/GCCMK-Gcc-Linux-Main -Posix-Shared/
mkdir -p /home/cxl/upp-posix-14205/cache/upp/ide/Builders/GCCMK-Gcc-L inux-Posix-Shared/
mkdir -p /home/cxl/upp-posix-14205/cache/upp/ide/Core/GCCMK-Gcc-Linux -Posix-Shared/
mkdir -p /home/cxl/upp-posix-14205/cache/upp/ide/Android/GCCMK-Gcc-Li nux-Posix-Shared/
mkdir -p /home/cxl/upp-posix-14205/cache/upp/ide/Java/GCCMK-Gcc-Linux -Posix-Shared/
mkdir -p /home/cxl/upp-posix-14205/cache/upp/Esc/GCCMK-Gcc-Linux-Posi x-Shared/
mkdir -p /home/cxl/upp-posix-14205/cache/upp/plugin/bz2/GCCMK-Gcc-Lin ux-Posix-Shared/
mkdir -p /home/cxl/upp-posix-14205/cache/upp/plugin/lzma/GCCMK-Gcc-Li nux-Posix-Shared/
mkdir -p /home/cxl/upp-posix-14205/cache/upp/plugin/lz4/GCCMK-Gcc-Lin ux-Posix-Shared/
mkdir -p /home/cxl/upp-posix-14205/cache/upp/plugin/zstd/GCCMK-Gcc-Li nux-Posix-Shared/
mkdir -p /home/cxl/upp-posix-14205/cache/upp/Core/GCCMK-Gcc-Linux-Pos ix-Shared/
mkdir -p /home/cxl/upp-posix-14205/cache/upp/plugin/pcre/GCCMK-Gcc-Li nux-Posix-Shared/
(date '+#define bmYEAR %y%n#define bmMONTH %-m%n#define bmDAY %-d%n#define bmHOUR %-H%n#define bmMINUTE %-M%n#define bmSECOND %-S%n#define bmTIME Time(%y, %-m, %-d, %-H, %-M, %-S)' && \
echo '#define bmMACHINE "'`hostname`'"' && \
echo '#define bmUSER "'`whoami`'"') > build_info.h
c++ -c -x c++ -O3 -ffunction-sections -fdata-sections -std=c++14 -I./ -DflagGCC -DflagSHARED -DflagPOSIX -DflagLINUX -DflagMAIN umk/MacOs.cpp -o /home/cxl/upp-posix-14205/cache/upp/umk/GCCMK-Gcc-Linux-Main -Posix-Shared/MacOs.o
make[1]: c++: Command not found
make[1]: *** [uMakefile.in:216: /home/cxl/upp-posix-14205/cache/upp/umk/GCCMK-Gcc-Linux-Main -Posix-Shared/MacOs.o] Error 127
make[1]: *** Waiting for unfinished jobs....
echo '#define bmSVN_REVISION "14205"' >> build_info.h
echo '#define bmSVN_URL "svn://www.ultimatepp.org/upp/trunk/uppsrc/umk"' >> build_info.h
make[1]: Leaving directory '/home/cxl/upp-posix-14205/uppsrc'
make: *** [Makefile:51: umk] Error 2
Re: New experimental Linux/FreeBSD release [message #53441 is a reply to message #53440] Fri, 03 April 2020 10:13 Go to previous messageGo to next message
amrein is currently offline  amrein
Messages: 278
Registered: August 2008
Location: France
Experienced Member
Quote:
So if I play clueless user, this is what I get:
...
make[1]: c++: Command not found
...


Than you install a c++ compiler or read the readme.md file and install all required dependencies.
Most developers do this.

Installing gcc-c++ is enough to build umk. Then umk should tell what dependencies are missing (pkg-config and others).

[Updated on: Fri, 03 April 2020 10:13]

Report message to a moderator

Re: New experimental Linux/FreeBSD release [message #53442 is a reply to message #53441] Fri, 03 April 2020 10:27 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
amrein wrote on Fri, 03 April 2020 10:13
Quote:
So if I play clueless user, this is what I get:
...
make[1]: c++: Command not found
...


Than you install a c++ compiler or read the readme.md file and install all required dependencies.
Most developers do this.

Installing gcc-c++ is enough to build umk. Then umk should tell what dependencies are missing (pkg-config and others).



Small issues to (eventually) fix:

buildrequires.fedora - not sure whether this is supposed to be used, but it is wrong. libgtk3.0-devel is actually gtk3-devel. Also adding c++ there would not hurt.

at the end of process, theide size 60MB compared to 13MB in case of ./install

OK, I have spoiled things for me by fixing and running buildrequires.fedora. Going to create a new clone and test with installing just c++.
Re: New experimental Linux/FreeBSD release [message #53443 is a reply to message #53442] Fri, 03 April 2020 10:43 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
mirek wrote on Fri, 03 April 2020 10:27

OK, I have spoiled things for me by fixing and running buildrequires.fedora. Going to create a new clone and test with installing just c++.


So this is how it looks on freshly installed fedora, after installing just c++:

make theide
bash: make: command not found...
Install package 'make' to provide command 'make'? [N/y] y


 * Waiting in queue... 
The following packages have to be installed:
 gc-7.6.4-6.fc31.x86_64	A garbage collector for C and C++
 guile22-2.2.6-2.fc31.x86_64	A GNU implementation of Scheme for application extensibility
 libatomic_ops-7.6.10-2.fc31.x86_64	Atomic memory update operations
 make-1:4.2.1-15.fc31.x86_64	A GNU tool which simplifies the build process for users
Proceed with changes? [N/y] y


 * Waiting in queue... 
 * Waiting for authentication... 
 * Waiting in queue... 
 * Downloading packages... 
 * Requesting data... 
 * Testing changes... 
 * Installing packages... 
make[1]: Entering directory '/home/cxl/upp-posix-14205/uppsrc'
mkdir -p /home/cxl/upp-posix-14205/cache/upp/umk/GCCMK-Gcc-Linux-Main-Posix-Shared/
mkdir -p /home/cxl/upp-posix-14205/cache/upp/ide/Builders/GCCMK-Gcc-Linux-Posix-Shared/
mkdir -p /home/cxl/upp-posix-14205/cache/upp/ide/Core/GCCMK-Gcc-Linux-Posix-Shared/
mkdir -p /home/cxl/upp-posix-14205/cache/upp/ide/Android/GCCMK-Gcc-Linux-Posix-Shared/
mkdir -p /home/cxl/upp-posix-14205/cache/upp/ide/Java/GCCMK-Gcc-Linux-Posix-Shared/
mkdir -p /home/cxl/upp-posix-14205/cache/upp/Esc/GCCMK-Gcc-Linux-Posix-Shared/
mkdir -p /home/cxl/upp-posix-14205/cache/upp/plugin/bz2/GCCMK-Gcc-Linux-Posix-Shared/
mkdir -p /home/cxl/upp-posix-14205/cache/upp/plugin/lzma/GCCMK-Gcc-Linux-Posix-Shared/
mkdir -p /home/cxl/upp-posix-14205/cache/upp/plugin/lz4/GCCMK-Gcc-Linux-Posix-Shared/
mkdir -p /home/cxl/upp-posix-14205/cache/upp/plugin/zstd/GCCMK-Gcc-Linux-Posix-Shared/
mkdir -p /home/cxl/upp-posix-14205/cache/upp/Core/GCCMK-Gcc-Linux-Posix-Shared/
mkdir -p /home/cxl/upp-posix-14205/cache/upp/plugin/pcre/GCCMK-Gcc-Linux-Posix-Shared/
(date '+#define bmYEAR    %y%n#define bmMONTH   %-m%n#define bmDAY     %-d%n#define bmHOUR    %-H%n#define bmMINUTE  %-M%n#define bmSECOND  %-S%n#define bmTIME    Time(%y, %-m, %-d, %-H, %-M, %-S)' && \
echo '#define bmMACHINE "'`hostname`'"' && \
echo '#define bmUSER    "'`whoami`'"') > build_info.h
c++ -c -x c++ -O3 -ffunction-sections -fdata-sections  -std=c++14 -I./ -DflagGCC -DflagSHARED -DflagPOSIX -DflagLINUX -DflagMAIN  umk/MacOs.cpp -o /home/cxl/upp-posix-14205/cache/upp/umk/GCCMK-Gcc-Linux-Main-Posix-Shared/MacOs.o
c++ -c -x c++ -O3 -ffunction-sections -fdata-sections  -std=c++14 -I./ -DflagGCC -DflagSHARED -DflagPOSIX -DflagLINUX -DflagMAIN  umk/Console.cpp -o /home/cxl/upp-posix-14205/cache/upp/umk/GCCMK-Gcc-Linux-Main-Posix-Shared/Console.o
c++ -c -x c++ -O3 -ffunction-sections -fdata-sections  -std=c++14 -I./ -DflagGCC -DflagSHARED -DflagPOSIX -DflagLINUX -DflagMAIN  umk/IdeContext.cpp -o /home/cxl/upp-posix-14205/cache/upp/umk/GCCMK-Gcc-Linux-Main-Posix-Shared/IdeContext.o
c++ -c -x c++ -O3 -ffunction-sections -fdata-sections  -std=c++14 -I./ -DflagGCC -DflagSHARED -DflagPOSIX -DflagLINUX -DflagMAIN  umk/MakeBuild.cpp -o /home/cxl/upp-posix-14205/cache/upp/umk/GCCMK-Gcc-Linux-Main-Posix-Shared/MakeBuild.o
c++ -c -x c++ -O3 -ffunction-sections -fdata-sections  -std=c++14 -I./ -DflagGCC -DflagSHARED -DflagPOSIX -DflagLINUX -DflagMAIN  umk/Export.cpp -o /home/cxl/upp-posix-14205/cache/upp/umk/GCCMK-Gcc-Linux-Main-Posix-Shared/Export.o
c++ -c -x c++ -O3 -ffunction-sections -fdata-sections  -std=c++14 -I./ -DflagGCC -DflagSHARED -DflagPOSIX -DflagLINUX -DflagMAIN  umk/umake.cpp -o /home/cxl/upp-posix-14205/cache/upp/umk/GCCMK-Gcc-Linux-Main-Posix-Shared/umake.o
echo '#define bmSVN_REVISION "14205"' >> build_info.h
c++ -c -x c++ -O3 -ffunction-sections -fdata-sections  -std=c++14 -I./ -DflagGCC -DflagSHARED -DflagPOSIX -DflagLINUX  ide/Builders/CppBuilder.cpp -o /home/cxl/upp-posix-14205/cache/upp/ide/Builders/GCCMK-Gcc-Linux-Posix-Shared/CppBuilder.o
echo '#define bmSVN_URL "svn://www.ultimatepp.org/upp/trunk/uppsrc/umk"' >> build_info.h
c++ -c -x c++ -O3 -ffunction-sections -fdata-sections  -std=c++14 -I./ -DflagGCC -DflagSHARED -DflagPOSIX -DflagLINUX  ide/Builders/MakeFile.cpp -o /home/cxl/upp-posix-14205/cache/upp/ide/Builders/GCCMK-Gcc-Linux-Posix-Shared/MakeFile.o
In file included from ./Esc/Esc.h:4,
                 from ./ide/Core/Core.h:4,
                 from ide/Builders/Builders.h:4,
                 from ide/Builders/MakeFile.cpp:1:
./Core/Core.h:232:10: fatal error: zlib.h: No such file or directory
  232 | #include <zlib.h>
      |          ^~~~~~~~
compilation terminated.
In file included from ./Esc/Esc.h:4,
                 from ./ide/Core/Core.h:4,
                 from ./ide/Builders/Builders.h:4,
                 from umk/umake.h:4,
                 from umk/umake.cpp:1:
./Core/Core.h:232:10: fatal error: zlib.h: No such file or directory
  232 | #include <zlib.h>
      |          ^~~~~~~~
In file included from ./Esc/Esc.h:4,
                 from ./ide/Core/Core.h:4,
                 from ide/Builders/Builders.h:4,
                 from ide/Builders/CppBuilder.cpp:1:
./Core/Core.h:232:10: fatal error: zlib.h: No such file or directory
  232 | #include <zlib.h>
      |          ^~~~~~~~
compilation terminated.
In file included from ./Esc/Esc.h:4,
                 from ./ide/Core/Core.h:4,
                 from ./ide/Builders/Builders.h:4,
                 from umk/umake.h:4,
                 from umk/MacOs.cpp:1:
./Core/Core.h:232:10: fatal error: zlib.h: No such file or directory
  232 | #include <zlib.h>
      |          ^~~~~~~~
compilation terminated.
compilation terminated.
In file included from ./Esc/Esc.h:4,
                 from ./ide/Core/Core.h:4,
                 from ./ide/Builders/Builders.h:4,
                 from umk/umake.h:4,
                 from umk/IdeContext.cpp:1:
./Core/Core.h:232:10: fatal error: zlib.h: No such file or directory
  232 | #include <zlib.h>
      |          ^~~~~~~~
compilation terminated.
In file included from ./Esc/Esc.h:4,
                 from ./ide/Core/Core.h:4,
                 from ./ide/Builders/Builders.h:4,
                 from umk/umake.h:4,
                 from umk/Console.cpp:1:
./Core/Core.h:232:10: fatal error: zlib.h: No such file or directory
  232 | #include <zlib.h>
      |          ^~~~~~~~
compilation terminated.
make[1]: *** [uMakefile.in:896: /home/cxl/upp-posix-14205/cache/upp/ide/Builders/GCCMK-Gcc-Linux-Posix-Shared/MakeFile.o] Error 1
make[1]: *** Waiting for unfinished jobs....
In file included from ./Esc/Esc.h:4,
                 from ./ide/Core/Core.h:4,
                 from ./ide/Builders/Builders.h:4,
                 from umk/umake.h:4,
                 from umk/Export.cpp:1:
./Core/Core.h:232:10: fatal error: zlib.h: No such file or directory
  232 | #include <zlib.h>
      |          ^~~~~~~~
compilation terminated.
In file included from ./Esc/Esc.h:4,
                 from ./ide/Core/Core.h:4,
                 from ./ide/Builders/Builders.h:4,
                 from umk/umake.h:4,
                 from umk/MakeBuild.cpp:1:
./Core/Core.h:232:10: fatal error: zlib.h: No such file or directory
  232 | #include <zlib.h>
      |          ^~~~~~~~
make[1]: *** [uMakefile.in:800: /home/cxl/upp-posix-14205/cache/upp/ide/Builders/GCCMK-Gcc-Linux-Posix-Shared/CppBuilder.o] Error 1
compilation terminated.
make[1]: *** [uMakefile.in:410: /home/cxl/upp-posix-14205/cache/upp/umk/GCCMK-Gcc-Linux-Main-Posix-Shared/IdeContext.o] Error 1
make[1]: *** [uMakefile.in:216: /home/cxl/upp-posix-14205/cache/upp/umk/GCCMK-Gcc-Linux-Main-Posix-Shared/MacOs.o] Error 1
make[1]: *** [uMakefile.in:313: /home/cxl/upp-posix-14205/cache/upp/umk/GCCMK-Gcc-Linux-Main-Posix-Shared/Console.o] Error 1
make[1]: *** [uMakefile.in:701: /home/cxl/upp-posix-14205/cache/upp/umk/GCCMK-Gcc-Linux-Main-Posix-Shared/umake.o] Error 1
make[1]: *** [uMakefile.in:604: /home/cxl/upp-posix-14205/cache/upp/umk/GCCMK-Gcc-Linux-Main-Posix-Shared/Export.o] Error 1
make[1]: *** [uMakefile.in:507: /home/cxl/upp-posix-14205/cache/upp/umk/GCCMK-Gcc-Linux-Main-Posix-Shared/MakeBuild.o] Error 1
make[1]: Leaving directory '/home/cxl/upp-posix-14205/uppsrc'
make: *** [Makefile:51: umk] Error 2
Re: New experimental Linux/FreeBSD release [message #53444 is a reply to message #53443] Fri, 03 April 2020 10:46 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
Now truth the be told, zlib issue is not really the fault of tarball, I should probably use pkg-config for zlib too, which I do not at the moment.

However, it all just demonstrates how hard things can be for clueless users... and how hard is it to create tarball that is actually easy to use.
Re: New experimental Linux/FreeBSD release [message #53445 is a reply to message #53437] Fri, 03 April 2020 10:50 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
amrein wrote on Fri, 03 April 2020 07:35


And... another suggestion: add the option to clean the cache directory from command line and from inside theide. Confused


My archive has ./cleanup script.

theide should not be able to clean the whole .cache (what would other applications say to that? Smile. However it has "Clear UPPOUT" command (to clear all cached object files and binaries) for like 15 years.

Mirek
Re: New experimental Linux/FreeBSD release [message #53446 is a reply to message #53441] Fri, 03 April 2020 11:56 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
amrein wrote on Fri, 03 April 2020 10:13


Installing gcc-c++ is enough to build umk. Then umk should tell what dependencies are missing (pkg-config and others).



So I wondered how you mean this. I hoped that your tarball takes care about it, but now I see that you expect to add functionality to 'umk' that stops on failed pkg-config?

But even so, that would only list the names of missing libraries. The names of packages are different...

Mirek
Re: New experimental Linux/FreeBSD release [message #53448 is a reply to message #53446] Fri, 03 April 2020 15:25 Go to previous messageGo to next message
amrein is currently offline  amrein
Messages: 278
Registered: August 2008
Location: France
Experienced Member
mirek wrote on Fri, 03 April 2020 11:56
amrein wrote on Fri, 03 April 2020 10:13


Installing gcc-c++ is enough to build umk. Then umk should tell what dependencies are missing (pkg-config and others).



So I wondered how you mean this. I hoped that your tarball takes care about it, but now I see that you expect to add functionality to 'umk' that stops on failed pkg-config?

But even so, that would only list the names of missing libraries. The names of packages are different...

Mirek


Yes the name of package are different and distribution dependent.
It means that if you want to simplify the use of U++ tarball, you will have to know each package name for each distributions. Confused

Can you try again to play as clueless user? Embarassed
Here are two files. One is an up to date Makefile. The second one is a list of dependencies for a few Linux distribution used by this Makefile.

What do you think?

edit: Still, umk and theide should be able to tell when there are missing dependencies. They fail without explicit reasons. Same thing for current uppsrc/Makefile.in and uppsrc/uMakefile.in.

[Updated on: Fri, 03 April 2020 15:28]

Report message to a moderator

Re: New experimental Linux/FreeBSD release [message #53449 is a reply to message #53448] Fri, 03 April 2020 16:59 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
[quote title=amrein wrote on Fri, 03 April 2020 15:25]mirek wrote on Fri, 03 April 2020 11:56

What do you think?


Well, at that point, w.r.t. dependencies, this is just overengineered equivalent of ./install.

Thanks for finding the correct names though Smile Now we need pacman variants and freebsd...

BTW, I am 99% sure that "xorg-x11-server-devel freetype-devel expat-devel" are not needed.

Mirek
Re: New experimental Linux/FreeBSD release [message #53450 is a reply to message #53439] Fri, 03 April 2020 17:00 Go to previous messageGo to next message
dolik.rce is currently offline  dolik.rce
Messages: 1796
Registered: August 2008
Location: Czech Republic
Ultimate Contributor

mirek wrote on Fri, 03 April 2020 09:31
Are you running as regular user? Do you have .config folder inside the unpacked archive? What is inside? There should be umks32 folder and inside autogenerated CLANG.bm (it is after I do this on ubuntu or fedora).


There is only GCC.bm in .config/umks32/. Note that I'm using Arch and I do not have clang installed. The genrated GCC.bm seems to work just fine, it's just that the script is hardcoded to use CLANG.
Re: New experimental Linux/FreeBSD release [message #53451 is a reply to message #53449] Fri, 03 April 2020 17:17 Go to previous messageGo to next message
amrein is currently offline  amrein
Messages: 278
Registered: August 2008
Location: France
Experienced Member
[quote title=mirek wrote on Fri, 03 April 2020 16:59]amrein wrote on Fri, 03 April 2020 15:25
mirek wrote on Fri, 03 April 2020 11:56

What do you think?


Well, at that point, w.r.t. dependencies, this is just overengineered equivalent of ./install.

Thanks for finding the correct names though Smile Now we need pacman variants and freebsd...

BTW, I am 99% sure that "xorg-x11-server-devel freetype-devel expat-devel" are not needed.

Mirek


Perhaps. I'm playing with it right now. I'm trying to find Fedora 31 dependencies. Apparently, there is more dependencies than just gcc-c++ and make for umk.
You talked about it in another thread: zlib-devel bzip2-devel

Is this Makefile ok for you? I mean, shoudl I continue working on it than commit the change after test on BSD and Linux?

[Updated on: Fri, 03 April 2020 17:18]

Report message to a moderator

Re: New experimental Linux/FreeBSD release [message #53452 is a reply to message #53450] Fri, 03 April 2020 18:02 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
dolik.rce wrote on Fri, 03 April 2020 17:00
mirek wrote on Fri, 03 April 2020 09:31
Are you running as regular user? Do you have .config folder inside the unpacked archive? What is inside? There should be umks32 folder and inside autogenerated CLANG.bm (it is after I do this on ubuntu or fedora).


There is only GCC.bm in .config/umks32/. Note that I'm using Arch and I do not have clang installed. The genrated GCC.bm seems to work just fine, it's just that the script is hardcoded to use CLANG.


Ah, that explains it. Thank you.

Script indeed is hardcoded CLANG as CLANG is build requirement. Original idea was to install it by that automatic thing but I do not yet have arch support.

As for hardcoding CLANG, for now it is for simple reason that it is faster compiler. It is also supported everywhere anyway. In future, I would like to add llvm debugging libraries to theide, so then it will be "hard" requirement anyway...

Plus Win32 is now clang based as well as MacOS, so...

Mirek
Re: New experimental Linux/FreeBSD release [message #53453 is a reply to message #53451] Fri, 03 April 2020 18:24 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
[quote title=amrein wrote on Fri, 03 April 2020 17:17]mirek wrote on Fri, 03 April 2020 16:59

Is this Makefile ok for you? I mean, shoudl I continue working on it than commit the change after test on BSD and Linux?


I want to be able to ./install U++ (actualy, maybe instead of ./install, the better name is ./config). Actually, at this point, even if I am persuaded by community to drop it, I will probably keep maintaining it for myself.

What you are trying to do is formally correct, but it is just a new slightly improved iteration of current tarball.

Instead of trying that, I think it would be better to invest time to provide binary packages (again). For tarball, simple Makefile with readme is enough. I plan to start autogenerating Makefile to repo really soon.

Oh, and BTW, pkg-config is not enough to identify missing packages, fresh fedora does not even have 'make' installed.
Re: New experimental Linux/FreeBSD release [message #53455 is a reply to message #53453] Fri, 03 April 2020 22:20 Go to previous messageGo to next message
amrein is currently offline  amrein
Messages: 278
Registered: August 2008
Location: France
Experienced Member
[quote title=mirek wrote on Fri, 03 April 2020 18:24]amrein wrote on Fri, 03 April 2020 17:17
mirek wrote on Fri, 03 April 2020 16:59

Is this Makefile ok for you? I mean, shoudl I continue working on it than commit the change after test on BSD and Linux?


I want to be able to ./install U++ (actualy, maybe instead of ./install, the better name is ./config). Actually, at this point, even if I am persuaded by community to drop it, I will probably keep maintaining it for myself.

What you are trying to do is formally correct, but it is just a new slightly improved iteration of current tarball.

Instead of trying that, I think it would be better to invest time to provide binary packages (again). For tarball, simple Makefile with readme is enough. I plan to start autogenerating Makefile to repo really soon.

Oh, and BTW, pkg-config is not enough to identify missing packages, fresh fedora does not even have 'make' installed.


Yes. Pkg-config is not enough. This is why the last Makefile search for make pkg-config and c++ binaries.
I need to test this makefile on BSD and MacOS to see how it works. It's certainly too much gmake dependent.

Re: New experimental Linux/FreeBSD release [message #53463 is a reply to message #53455] Sat, 04 April 2020 15:17 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
Link in the first post updated to new version, it now asks more before doing "naughty" things...

Should now work with debians and rpms (to be tested...)

Mirek
Re: New experimental Linux/FreeBSD release [message #53490 is a reply to message #53463] Mon, 06 April 2020 09:53 Go to previous messageGo to next message
deep is currently offline  deep
Messages: 281
Registered: July 2011
Location: Bangalore
Experienced Member
Hi

I get following error in compilation.

ubuntu 16.04 , http://ultimatepp.org/downloads/upp-posix-14219.tar.xz

run ./install

CppBuilder.cpp
In file included from /home/deepak/src/upp/.cache/upp.out/ide/Common/CLANG.Blitz.Gui.Shared/ide/Common$blitz.cpp:3:
In file included from /home/deepak/src/upp/uppsrc/ide/Common/ComDlg.cpp:1:
In file included from /home/deepak/src/upp/uppsrc/ide/Common/Common.h:5:
In file included from /home/deepak/src/upp/uppsrc/CtrlLib/CtrlLib.h:4:
In file included from /home/deepak/src/upp/uppsrc/CtrlCore/CtrlCore.h:1657:
/home/deepak/src/upp/uppsrc/CtrlCore/GtkAfter.h:3:2: error: unknown type name 'GdkDrawingContext'; did you mean 'GdkDragContext'?
        GdkDrawingContext *ctx;
        ^~~~~~~~~~~~~~~~~
        GdkDragContext
/usr/include/gtk-3.0/gdk/gdktypes.h:137:39: note: 'GdkDragContext' declared here
typedef struct _GdkDragContext        GdkDragContext;
                                      ^
1 error generated.


Warm Regards

Deepak

[Updated on: Mon, 06 April 2020 09:54]

Report message to a moderator

Re: New experimental Linux/FreeBSD release [message #53491 is a reply to message #53490] Mon, 06 April 2020 10:01 Go to previous messageGo to next message
amrein is currently offline  amrein
Messages: 278
Registered: August 2008
Location: France
Experienced Member
Here is an updated buildrequires.posix file Mirek.

I tested umk and theide dependencies in those POSIX distributions.
Re: New experimental Linux/FreeBSD release [message #53493 is a reply to message #53491] Mon, 06 April 2020 10:18 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
amrein wrote on Mon, 06 April 2020 10:01
Here is an updated buildrequires.posix file Mirek.

I tested umk and theide dependencies in those POSIX distributions.


Thanks, this is very helpfull. I think we should add openssl too - while not required for theide at the moment, many examples and a lot of code needs it right away.

I believe it is "openssl-devel" in rpms.

Mirek
Re: New experimental Linux/FreeBSD release [message #53495 is a reply to message #53490] Mon, 06 April 2020 10:33 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
deep wrote on Mon, 06 April 2020 09:53
Hi

I get following error in compilation.

ubuntu 16.04 , http://ultimatepp.org/downloads/upp-posix-14219.tar.xz

run ./install

CppBuilder.cpp
In file included from /home/deepak/src/upp/.cache/upp.out/ide/Common/CLANG.Blitz.Gui.Shared/ide/Common$blitz.cpp:3:
In file included from /home/deepak/src/upp/uppsrc/ide/Common/ComDlg.cpp:1:
In file included from /home/deepak/src/upp/uppsrc/ide/Common/Common.h:5:
In file included from /home/deepak/src/upp/uppsrc/CtrlLib/CtrlLib.h:4:
In file included from /home/deepak/src/upp/uppsrc/CtrlCore/CtrlCore.h:1657:
/home/deepak/src/upp/uppsrc/CtrlCore/GtkAfter.h:3:2: error: unknown type name 'GdkDrawingContext'; did you mean 'GdkDragContext'?
        GdkDrawingContext *ctx;
        ^~~~~~~~~~~~~~~~~
        GdkDragContext
/usr/include/gtk-3.0/gdk/gdktypes.h:137:39: note: 'GdkDragContext' declared here
typedef struct _GdkDragContext        GdkDragContext;
                                      ^
1 error generated.


Thats actually a bug in CtrlCore. Should be fixed tomorrow; or you can fix CtrlCore/GtkAfter.h

class ViewDraw : public SystemDraw {
#if GTK_CHECK_VERSION(3, 22, 0) // <---- wrong version here
	GdkDrawingContext *ctx;
#endif
public:
	ViewDraw(Ctrl *ctrl);
	~ViewDraw();
};


Thanks for reporting!
Re: New experimental Linux/FreeBSD release [message #53496 is a reply to message #53495] Mon, 06 April 2020 11:52 Go to previous messageGo to next message
deep is currently offline  deep
Messages: 281
Registered: July 2011
Location: Bangalore
Experienced Member
Hi Mirek

Thanks. I changed the file as per your message.

It is working now.

I have now .config and .cache folders.

Could not locate log file. which used to be in .upp folder.

Serialised data "cfg" file is in .config/u++/.... folder.


EDIT : Now I have log files. On first run there was no log file created.


Warm Regards

Deepak

[Updated on: Mon, 06 April 2020 12:41]

Report message to a moderator

Re: New experimental Linux/FreeBSD release [message #53497 is a reply to message #53493] Mon, 06 April 2020 13:45 Go to previous messageGo to next message
amrein is currently offline  amrein
Messages: 278
Registered: August 2008
Location: France
Experienced Member
mirek wrote on Mon, 06 April 2020 10:18
amrein wrote on Mon, 06 April 2020 10:01
Here is an updated buildrequires.posix file Mirek.

I tested umk and theide dependencies in those POSIX distributions.


Thanks, this is very helpfull. I think we should add openssl too - while not required for theide at the moment, many examples and a lot of code needs it right away.

I believe it is "openssl-devel" in rpms.

Mirek


* openssl-devel on Fedora, on Redhat and on Mandriva.
* libopenssl-devel on OpenSuse
* libssl-dev on Debian and Ubuntu
* Nothing to install on FreeBSD (installed by default) but libcrypto.pc, libssl.pc and openssl.pc are missing
Re: New experimental Linux/FreeBSD release [message #53499 is a reply to message #53497] Mon, 06 April 2020 13:59 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
amrein wrote on Mon, 06 April 2020 13:45

* openssl-devel on Fedora, on Redhat and on Mandriva.
* libopenssl-devel on OpenSuse
* libssl-dev on Debian and Ubuntu
* Nothing to install on FreeBSD (installed by default) but libcrypto.pc, libssl.pc and openssl.pc are missing


Thanks a lot. Looks like not moving everything to pkg-config was a good idea... Smile

So I guess we have blind spot remaining now - pacman / ArchLinux and derivatives.... It unfortunately keeps crashing in virtualbox for me....
Re: New experimental Linux/FreeBSD release [message #53500 is a reply to message #53499] Mon, 06 April 2020 15:05 Go to previous messageGo to next message
amrein is currently offline  amrein
Messages: 278
Registered: August 2008
Location: France
Experienced Member
Last fixes on buildrequires.posix (mandriva => openmandriva + dependencies and package manager fixes):
OpenMandriva use clang by default...

openmandrivalinux.umk.dependencies: clang make zlib-devel bzip2-devel glibc-devel
openmandrivalinux.umk.pkg-config: zlib bzip2
openmandrivalinux.theide.dependencies: gtk+3-devel libnotify-devel # gtk+3-devel provided by lib64gtk+3.0-devel
openmandrivalinux.theide.pkg-config: gtk+-3.0 libnotify # x11 freetype2
openmandrivalinux.extra.dependencies: openssl-devel # openssl-devel provided by lib64openssl-devel
openmandrivalinux.extra.pkg-config: libcrypto libssl openssl # All are in openssl
openmandrivalinux.install.command: dnf install

[Updated on: Mon, 06 April 2020 15:05]

Report message to a moderator

Re: New experimental Linux/FreeBSD release [message #53503 is a reply to message #53499] Mon, 06 April 2020 16:18 Go to previous messageGo to next message
dolik.rce is currently offline  dolik.rce
Messages: 1796
Registered: August 2008
Location: Czech Republic
Ultimate Contributor

mirek wrote on Mon, 06 April 2020 13:59
So I guess we have blind spot remaining now - pacman / ArchLinux and derivatives.... It unfortunately keeps crashing in virtualbox for me....

This should work:
arch.umk.dependencies: gcc make zlib bzip2
arch.umk.pkg-config: zlib bzip2
arch.theide.dependencies: gtk3 libnotify
arch.theide.pkg-config: gtk+-3.0 libnotify # x11 freetype2
arch.install.command: sudo pacman -Sy --needed

I didn't actually test it, just checked the package names on my machine... But it should work Smile Also, gcc could be changed to clang, but gcc is probably already installed on most developers systems, since it is in base-devel group (unlike clang).

Honza
Re: New experimental Linux/FreeBSD release [message #53504 is a reply to message #53503] Mon, 06 April 2020 16:47 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
dolik.rce wrote on Mon, 06 April 2020 16:18
mirek wrote on Mon, 06 April 2020 13:59
So I guess we have blind spot remaining now - pacman / ArchLinux and derivatives.... It unfortunately keeps crashing in virtualbox for me....

This should work:
arch.umk.dependencies: gcc make zlib bzip2
arch.umk.pkg-config: zlib bzip2
arch.theide.dependencies: gtk3 libnotify
arch.theide.pkg-config: gtk+-3.0 libnotify # x11 freetype2
arch.install.command: sudo pacman -Sy --needed

I didn't actually test it, just checked the package names on my machine... But it should work Smile Also, gcc could be changed to clang, but gcc is probably already installed on most developers systems, since it is in base-devel group (unlike clang).

Honza


Thanks a lot. clang name is "clang", right?
Re: New experimental Linux/FreeBSD release [message #53505 is a reply to message #53504] Mon, 06 April 2020 16:50 Go to previous messageGo to next message
dolik.rce is currently offline  dolik.rce
Messages: 1796
Registered: August 2008
Location: Czech Republic
Ultimate Contributor

mirek wrote on Mon, 06 April 2020 16:47
Thanks a lot. clang name is "clang", right?


Yes, clang packge is called clang. Oh, and I forgot about the openssl, which is in openssl package Smile Arch tries to keep it simple Very Happy
Re: New experimental Linux/FreeBSD release [message #53508 is a reply to message #53424] Tue, 07 April 2020 10:28 Go to previous messageGo to next message
pvictor is currently offline  pvictor
Messages: 75
Registered: December 2015
Member
In the latest build (14263) the first line in Makefile is:
UPPDIR1 = /home/cxl/upp.src/uppsrc/

I had to replace it with:
UPPDIR1 = uppsrc/
in order to run make.

Victor
Re: New experimental Linux/FreeBSD release [message #53509 is a reply to message #53508] Tue, 07 April 2020 14:35 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
Should be now fixed.
Re: New experimental Linux/FreeBSD release [message #53515 is a reply to message #53509] Wed, 08 April 2020 10:41 Go to previous messageGo to next message
Oblivion is currently offline  Oblivion
Messages: 1266
Registered: August 2007
Senior Contributor
Hello Mirek,

There seems to be another problem on Linux with the latest code.

Logs are written to.cache/upp.out, but I get garbled log file names (sometimes even free mem blocks (FreeFreeFree) leak to names).
Contents of log files are fine, but TheIDE can't open them as the file names are trashed.

Screenshot:

index.php?t=getfile&id=6038&private=0

System: ArchLinux/Gnome 3.36, both GCC and CLANG, Flags: GUI, Encoding UTF-8.

Best regards,
Oblivion


[Updated on: Wed, 08 April 2020 10:53]

Report message to a moderator

Re: New experimental Linux/FreeBSD release [message #53516 is a reply to message #53515] Wed, 08 April 2020 10:58 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
Oblivion wrote on Wed, 08 April 2020 10:41
Hello Mirek,

There seems to be another problem on Linux with the latest code.

Logs are written to.cache/upp.out, but I get garbled log file names (sometimes even free mem blocks (FreeFreeFree) leak to names).
Logs are fine but, naturally, TheIDE can't open them as the file names are trashed.

Screenshot:

index.php?t=getfile&id=6038&private=0

System Arch/Linux/Gnume 3.36, both GCC and CLANG, Flags: GUI, Encoding UTF-8).

Best regards,
Oblivion


Thanks, sorry for trouble. Just a quick question, what is the name of the application? Do you have non-ASCII names in it?

Mirek
Re: New experimental Linux/FreeBSD release [message #53517 is a reply to message #53515] Wed, 08 April 2020 11:08 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
Oblivion wrote on Wed, 08 April 2020 10:41
Hello Mirek,

There seems to be another problem on Linux with the latest code.

Logs are written to.cache/upp.out, but I get garbled log file names (sometimes even free mem blocks (FreeFreeFree) leak to names).



That is already wrong, it should be .config/u++/{AppName}

I have now found and fixed a problem when LOGs started before MAIN. Could that be related?

Mirek
Re: New experimental Linux/FreeBSD release [message #53518 is a reply to message #53517] Wed, 08 April 2020 11:25 Go to previous messageGo to previous message
amrein is currently offline  amrein
Messages: 278
Registered: August 2008
Location: France
Experienced Member
Great. Now theide and umk uses sandboxed .config and .cache, and they use ~/.config/ and ~/.cache if there are not there.

Suggestion:

* use cache/upp/ and config/upp in tarball (instead of hidden directories)
* use config/upp/theide, config/upp/umk instead of config/u++/theide...
* share compiler .bm files between theide and umk (in config/upp/ and not in both config/upp/theide and config/upp/umk)
* fix code where ".upp" is still used (you can find some using "grep -R \\.upp uppsrc")
* move bazaar, examples, reference, tutorial in an extra directory (see layout at the end of this message)
* use share/upp in sandboxed upp directory or ~/.share/upp if the directory doesn't exist (for dictionaries and other future data)

I'm thinking right non on how to improve your current script and Makefiles. I will perhaps upload a few patches to review.


Directory layout:

cache
config
extra
  |--bazaar
  |--examples
  |--reference
  \--tutorial
share
  |--upp
        |--theide
              |--speller
uppsrc

[Updated on: Wed, 08 April 2020 11:30]

Report message to a moderator

Previous Topic: MacOS releases news
Next Topic: umk (small) improvements
Goto Forum:
  


Current Time: Wed May 06 21:10:23 GMT+2 2026

Total time taken to generate the page: 0.01107 seconds