PureBasic Forum
https://www.purebasic.fr/english/

Linux installer project
https://www.purebasic.fr/english/viewtopic.php?f=15&t=73471
Page 1 of 1

Author:  Bitblazer [ Sun Aug 25, 2019 3:20 pm ]
Post subject:  Linux installer project

I just uploaded the version 0.8 of my linux installer project. The goal will make most linux people laugh and shake their heads in disbelieve and suggest a perl solution ;)

The project homepage is here. Only for linux experts for now. As for any 0.8 release, its in a very early state and a lot changes will be incorporated during the next days, but if you are curious about the project or idea - this is the first working version tested on 64-bit Ubuntu 18/19 and Neptune. Please report any problems or missing files, so i can fix them. I am sure there are a few ;)

This is really a 0.8 version and should only be tried by experienced linux users.

Enjoy <3

Author:  Mijikai [ Sun Aug 25, 2019 3:53 pm ]
Post subject:  Re: Linux installer project

Good idea.

Author:  useful [ Sun Aug 25, 2019 4:15 pm ]
Post subject:  Re: Linux installer project

Great, but I really want to get the updated official documentation from Fred and the team before that.
viewtopic.php?p=540588#p540588

p.s. I'll be testing for x86 on (XL)debian-9,(XLM)ubuntu-16,(X)mint-18
and add euphoria 3.11 to my projects

Author:  Bitblazer [ Sun Aug 25, 2019 5:03 pm ]
Post subject:  Re: Linux installer project

Binaries updated with a better manual.

Author:  Bitblazer [ Sun Aug 25, 2019 5:10 pm ]
Post subject:  Re: Linux installer project

useful wrote:
p.s. I'll be testing for x86 on (XL)debian-9,(XLM)ubuntu-16,(X)mint-18
and add euphoria 3.11 to my projects


Testing would be awesome but i hope you mean x64 and not literally x86.

I'm not even sure if i will add x86 sometimes, that seems a bit too retro when even my raspberry PI, smartphone and my wristwatch have 64bit ;)

Author:  useful [ Sun Aug 25, 2019 5:26 pm ]
Post subject:  Re: Linux installer project

I'll still have access to the source code in the future, won't I?
I will build it myself under x86(32bit). !!!

p.s. I'm a retro programmer myself.
I started to study in September 1978 (41 years ago) ALGAMS(АЛГАМС-ru) (as nowadays it is fashionable to say fork ALGOL) :mrgreen:

Author:  Bitblazer [ Sun Aug 25, 2019 6:01 pm ]
Post subject:  Re: Linux installer project

useful wrote:
I'll still have access to the source code in the future, won't I?
I will build it myself under x86(32bit). !!!

p.s. I'm a retro programmer myself.
I started to study in September 1978 (41 years ago) ALGAMS(АЛГАМС-ru) (as nowadays it is fashionable to say fork ALGOL) :mrgreen:


Nice :) I started around 1981 with a ZX81 and my first software was a basic hex editor and monitor so i could write z80 assembler programs. Those machines where seriously limited but so much fun :D

The sources and project have a CC 4.0 license, so i hope you can have access and use the software for many years to come :)

I will make the project licensing more clear.

ps: Licensing added to the sources and to the webpage

pps: the compilation is a bit tricky currently. I compiled the GTK and QT versions with dummy binaries and as a last step, the textmode version which includesx the GTK/QT installers with their binaries. Because the resulting binary has includes which unpack the GUI versions. This way i ended with a 800 KB download instead of a 4 Megabyte one. An additional subsystem() parameter like "console" would really help.

Author:  Bitblazer [ Tue Sep 10, 2019 3:42 pm ]
Post subject:  Re: Linux installer project

I am still working on this in my spare time, but featuritis got a bit in my way again :wink:

I added a packagemanager terminal and a SO inspector.

Packager terminal

Image

SO inspector

Image

The result is a distribution dependant package list like this for ubuntu 18.04

Code:
GTKINSTALL V 0.7 packager terminal
GTKLibraries : 11
QTLibraries : 7
gcc
g++
libc6-dev
libsdl1.2-dev
libgtk-3-dev
unixodbc-dev
libgnome2-dev
libwebkitgtk-3.0-dev
libxxf86vm-dev
libwebkitgtk-dev
libgnome-2
qtbase5-dev
qttools5-dev
qtmultimedia5-dev
qtdeclarative5-dev
libqt5svg5-dev
libqt5webkit5-dev
libqt5multimedia5-plugins

Distribution file for Ubuntu_x64_18.04.distribution

I will probably add a pre and postprocessing option in case there are additional commands needed on some distributions. Currently the fokus is on application development, but from experience i know that multimedia and database development require individual libraries and sometimes setup/configuration commands.

Once this is finished, i will start a little (G)UI which shows a list of supported distributions and marks the one it thinks you run. Then asks you which GUI framework you want to develop for. Once you selected them and press some install button, the systems package manager will be called to fetch and install the required system libraries.

I think those are the 4 options needed - gtk, qt, multimedia and database. Multimedia will deal with image libraries and the tricky xine stuff while database will deal with mysql, mariadb, postgres et. all. Any comment or ideas?

Currently i am stuck with a bug which seems to make the SO inspector unuseable though :)

ps: snooping inside linux distribution libraries with the SO inspector function name filter was quite interesting.

Author:  Bitblazer [ Tue Sep 10, 2019 11:20 pm ]
Post subject:  Re: Linux installer project

For an interesting test, try this with your favorite linux.

Code:
EnableExplicit

Define DirID.i, LibID.i
Define Attributes.i, RaisedError.i
Define Path$, LibraryName$

; enumerate all libraries in the given path including their function names
If (OpenConsole("so loading test") <> 0)
  Path$ = "/usr/lib"
  DirID = ExamineDirectory(#PB_Any, Path$, "*")
 
  While NextDirectoryEntry(DirID)
    If (DirectoryEntryType(DirID) = #PB_DirectoryEntry_File)
      Attributes = DirectoryEntryAttributes(DirID)
      If ((Attributes & #PB_FileSystem_Link) = 0)
        LibraryName$ = DirectoryEntryName(DirID)
        OnErrorGoto(?SkipLibrary)
        RaisedError = 1
        LibID = OpenLibrary(#PB_Any, DirectoryEntryName(DirID))
       
        RaisedError = 0
        If (LibID <> 0)
          If (ExamineLibraryFunctions(LibID) <> 0)
            While (NextLibraryFunction() <> 0)
            Wend
          EndIf
          CloseLibrary(LibID)
        EndIf
       
        SkipLibrary:
          If (RaisedError <> 0)
            PrintN("  skipped " + Hex(Attributes) + " = " + LibraryName$)
          EndIf
       
      EndIf
    EndIf
  Wend
  FinishDirectory(DirID)
EndIf
Input()


Image

On Neptune linux, this creates a fatal error. Not sure if thats bug report worthy or even really any purbasic bug, but interesting to see imho because it throws a fatal error and purebasic is able to recover and handle the situation with the onerror library.

Author:  Bitblazer [ Sat Sep 14, 2019 9:30 am ]
Post subject:  Re: Linux installer project

Added another tool for the SO inspector and it now fully works from inside the GUI with fatal error handling. It takes roughly 2 seconds on my machine in which the GUI appears frozen while it indexes a SO directory and looks inside all libraries for their functions.

A library which could not be opened

Image

A library which created a fatal error while trying to open it

Image

Author:  void [ Sun Nov 24, 2019 1:08 am ]
Post subject:  Re: Linux installer project

Is this still an active project? Your most recent post is from september, but the download on the website returns a 404 error.

Author:  Bitblazer [ Sun Nov 24, 2019 8:40 pm ]
Post subject:  Re: Linux installer project

I still intend to finish it, but other projects have been taken my time lately and there didnt seem to be much interest :( The binaries are uploaded again and both links should work now. Remember that this is an unfinished version 0.81 though ;)

If you get a 501 page error from nginx - just reload the page again, it seems to be a timeout problem due to the cheap hosting.

Author:  void [ Wed Nov 27, 2019 1:34 am ]
Post subject:  Re: Linux installer project

Bitblazer wrote:
I still intend to finish it, but other projects have been taken my time lately and there didnt seem to be much interest :( The binaries are uploaded again and both links should work now. Remember that this is an unfinished version 0.81 though ;)

If you get a 501 page error from nginx - just reload the page again, it seems to be a timeout problem due to the cheap hosting.


I mostly thought to look into it because I set up again on Linux recently, and had a little trouble with dependencies (it seems like some of what PB's checkinstall script looks for were deprecated quite some time ago and are no longer in the ubuntu ecosystem), and thought "it could be worth trying this thing"

I did get it sorted, mostly (although checkinstall is still looking for things I don't have, PB works, so... good enough?)

Author:  Bitblazer [ Sat Nov 30, 2019 4:07 pm ]
Post subject:  Re: Linux installer project

Image

textmode support for the latest Kali linux added. For unknown linux versions, the package manager detection has been added for apt-get because several unknown Linux versions use apt-get.

No GUI version (GTK2/QT) currently works with Kali. I will release updated SystemInfo and Linux installer software once this is solved.

Page 1 of 1 All times are UTC + 1 hour
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/