RiscPC: Wo kriege ich SharedCLibrary 5.43 her?

  • Beim Versuch Netsurf 3.8 auf meinem RiscPC unter RiscOS 4.02 zu starten kommt nach der Installation die Fehlermeldung, dass die SharedCLibrary 5.43 benötigt wird. Ich habe dann von riscosopen.org die "System Resources" heruntergeladen und das !SysMerge-Skript laufen gelassen. Da ist "nichts passiert" - lt. Readme sollte es also durchgelaufen sein. NetSurf beeindruckt das aber gar nicht, er meckert weiter die fehlende Bibliothek an... (Ich habe mal in das Archiv geguckt... Die Library muss sich aber in irgendeinem Module "verstecken" - ich kann in dem "System Ressourcen" Archiv gar nichts finden, was so ähnlich wie eine C-Lib klingt?!)


    Kann man irgendwie prüfen, welche Bibliothek installiert ist/benutzt wird?


    Ich bin nicht auf NetSurf angewiesen, nur auf irgendeinen Browser, um HTML-Files ansehen zu können (Doku für PC pro).

  • DiMa


    nachdem Du Netsurf geladen hast musst Du es entpacken , im dem entpacktem Ordner befinden sich unter anderem !Boot und !System,

    im !System ist der Ordner 310 und weiter Modules , dort findest Du die CLibrary.


    Soweit musst Du aber nicht gehen , Du musst !Boot starten und die Datei !Boot deinem System zufügen das gleiche gilt für System.

    Beim nächstem starten ist die Library dann geladen.


    Gruß

    Thomas

  • Es ist richtig - die Sachen für NetSurf kommen da eigentlich direkt mit. Alternativ kann man die auch auf der Webseite einzeln runterladen. Es reicht auch völlig, erstmal nur die Moduldatei doppelzuklicken, dadurch wird sie aktiviert. Langfristig will man die natürlich im !System (innerhalb von !Boot) installiert haben - allerdings wäre ich bißchen vorsichtig mit dem freien Mixen von Software von der ROOL Webseite in ein klassisches 4.02er System. Da muß man schon genau aufpassen, welches Files man da holt.


    Normalerweise ist das mittlerweile so gedacht, daß man direkt mithilfe der !Boot/Configure App Software ins System einspielt - "Mergen" ist der Begriff. Das findest Du unter der Konfiguration und dort unter System. Das !SysMerge ist eigentlich was, was so zu Zeiten von RISCOS 3.11 gängig war (heißt nicht, daß das nicht auch noch klappen kann, aber evtl. sollte man es doch lieber auf die "offizielle" Art machen).


    Prinzipiell macht es bei solchen Einzelmodulen aber auch durchaus Sinn die per Hand dahineinzulegen, wo sie hingehören, nämlich in den !System Ordner unter Modules bzw. ein Versionsverzeichnis dort. Dabei kann man nämlich schön die alte Datei retten, die nur bei den ganz neuen RISC OS nicht überschrieben wird; bei älteren wird einfach das vorhandene durch das eingespielte Modul ersetzt. Und manchmal stellt man nämlich später fest, daß das alte Modul besser funktioniert hat ...



    Die SharedCLibrary heißt als Moduldatei normalerweise CLib und sollte eigentlich auf jeden Fall vorhanden sein. Das ist aber eben nur der Name der Moduldatei. Wenn die nicht vorhanden ist, dann wird auf alle Fälle die SharedCLibrary aus dem ROM gestartet.

    Kontrollieren kann man das, indem man F12 drückt und dort "modules" oder "mo." eintippt. Dort sollte sie auftauchen. Wenn man die Version wissen will, schreibt man "help sharedclibrary". Mit "rommodules" bzw. "rommo." kann man sich die Module im ROM anzeigen lassen. Dort sollte dann die ROM Version auftauchen - und wenn eine höhere per !System Verzeichnis oder per Hand geladen worden ist, dann ist die ROMversion mit "Dormant" markiert.


    Die Version findet man für die Moduldatei - wenn man mehrere gesammelt hat - am einfachsten dadurch heraus, daß man das Modul auf StrongED oder Zap zieht. Da steht dann nämlich im Modulkopf der vollständige Modulname (also SharedCLibrary vs. CLib) und die Versionsnummer.



    Ganz klassisch gehörte diese CLib zu den Dingen, die mit dem Acorn Compiler kamen. Es ist i.P. einfach die Umsetzung der normalen C Library, aber eben als Modul, weshalb sie von vielen Programmen quasi gleichzeitig benutzt werden kann. Quasi sowas wie eine DLL unter Win. Irgendwann nach Acorn gab es dann mal eine "dezente" Trennung innerhalb der Entwicklung des RISC OS und da wurde es dann auch ein wenig komplizierter mit den Modulen, weil nun verschiedene Leute (mindestens 2 Parteien) daran rumentwickelt haben. Da sich aber letztlich ab ca. 2003 mit dem Iyonix dann der Castle Entwicklungsstrang durchgesetzt hat (zumindest was verkaufte neue Hardware anbelangt), findet sich dann dementsprechend auch dort die Weiterentwicklung der CLib. Klassischerweise hat man die lange Zeit über die Seite

    https://web.archive.org/web/20…ix.com/32bit/system.shtml

    beziehen können. Zusammen mit allerlei anderen Modulen und Infos zur Post-Acorn-Ära. Das geht dort für die CLib bei 5.45 los und endet irgendwann 2016 mit der Version 5.53.


    Die aktuellen sind dementsprechend, da das von Castle Technologies betrieben wird, auf der ROOL Seite zu holen, aber man muß halt schauen, ob sie speziell für RiscPC "passen" (legacy).

    Der Rechner und mithin das v4.02 ist schließlich noch ein ganz klassisches sogenanntes 26 Bit System - was natürlich eigentlich Blödsinn ist, weil die Register immer schon 32 Bit breit waren, nur eben der Adressbus ist erst mit den neueren Versionen echte 32 Bit breit.



    Die alternative RISC OS Entwicklung heißt insbesondere RISC OS 6 und wird unter riscos.com gepflegt.

    Das ist aber für v4.02 nicht so sonderlich interessant, wobei es da durchaus auch Sachen gibt die laufen können. Aber bei Systemmodulen würde ich das nur benutzen, wenn so ein 6er OS oder eines der vorherigen aka 4.39 benutzt wird.



    Und damit es nicht zu einfach wird, gibt es daneben noch eine sogenannte UnixLib. Auch das ist wiederum eine direkte Umsetzung der Standard C Library, wie sie eben zu C gehört, mit ein paar Extras und primär als Mitbringsel des GCC GNU C Compilers entwickelt. Diese gibt es, neben dem normalen statischen Einbinden, auch als sogenannte "Shared" Variante - also so, daß mehrere Programme sie benutzen können; und die heißt dann SharedULibrary.


    Die benötigt man auch oftmals, insbesondere, wenn man Umsetzungen von Unix Programmen oder Tools verwenden will. Die Seite die das mal massiv in Angriff genommen hat - solche Umsetzungen - ist riscos.info bzw. deren Betreiber Peter Naulls. Der hatte, quasi im Alleingang, mal irgendwann die Idee, eine komplette Unix Umgebung auf einem RISC OS zum Laufen zu bringen. Der Hintergrund war, daß es da einen riesigen Softwarepool gibt und insbesondere z.B. solche Sachen wie ein Webbrowser schon immer ein bißchen ein Problem unter RISC OS waren. Das war SEHR COOL als Projekt und SEHR AMBITIONIERT und hat für ein paar wirklich schöne Programmumsetzungen gesorgt. Eines der Hauptprojekte aus der Ecke war der Versuch einen X-Server zu bauen, quasi als Vorraussetzung für die grafikfähigen Programme aus der Unixwelt. Wer sich dafür interessiert, sollte mal bei drobe.co.uk oder generell im Web (ANS) nach ChoX11 suchen und seinem Namen suchen.


    Und dort auf der Seite findet man auch noch mehr Info zu den Libraries und was sie tun

    http://www.riscos.info/index.php/C_in_RISC_OS

    http://www.riscos.info/index.php/Shared_C_Library

    http://www.riscos.info/index.php/UnixLib

    http://www.riscos.info/index.php/SharedUnixLibrary


    insbesondere auch mit Links zu den aktuellen Versionen.

    -- 1982 gab es keinen Raspberry Pi , aber Pi und Raspberries

    Edited 3 times, last by ThoralfAsmussen ().

  • Soweit musst Du aber nicht gehen , Du musst !Boot starten und die Datei !Boot deinem System zufügen das gleiche gilt für System.

    Schon klar, steht ja auch so in der Installationsanleitung und habe ich auch brav gemacht. Inzwischen mehrfach und auch mit jungfräulichem !Boot - nutzt aber nix, die Fehlermeldung kriege ich trotzdem.



    Das !SysMerge ist eigentlich was, was so zu Zeiten von RISCOS 3.11 gängig war (heißt nicht, daß das nicht auch noch klappen kann, aber evtl. sollte man es doch lieber auf die "offizielle" Art machen).

    Bei den System Resources stand ausdrücklich, nicht zu mergen, sondern das Skriptfile zu benutzen - deshalb hab' ich das auch so gemacht...?!



    Wenn die nicht vorhanden ist, dann wird auf alle Fälle die SharedCLibrary aus dem ROM gestartet.

    Kontrollieren kann man das, indem man F12 drückt und dort "modules" oder "mo." eintippt. Dort sollte sie auftauchen. Wenn man die Version wissen will, schreibt man "help sharedclibrary"

    OK, Danke, das prüfe ich mal.

  • Bei den System Resources stand ausdrücklich, nicht zu mergen, sondern das Skriptfile zu benutzen - deshalb hab' ich das auch so gemacht...?!

    Na ja, wenns da so stand ... dann nochmal das Datum kontrollieren und wie gesagt, im Normalfall sollte das trotzdem klappen, weil diese InstallScripts eigentlich immer über Systemvariablen ihr Zeug verteilen und nicht direkte Pfade verwenden. Allerdings, wenn man eine !Boot Ordner Struktur hat, die neueren Datums ist, kann das auch mal schief gehen, wenn das !SysMerge z.B. von 1996 ist.



    Ansonsten: Ja, guck mal nach, was das Maschinchen so sagt.

    Ich hoffe Du hast mittlerweile die CLib Datei im Netsurf-ZIPfile gefunden oder einzeln dort geholt, oder von einem der Links. Die kann man auch prima doppelt anklicken, das aktiviert sie auch - kann man dann auch prüfen.


    Ansonsten guck mal in PN.


    Wenn das CLib da ist und in der richtigen Version läuft, kanns sein, daß Du dann mit dem NetSurf anschließend in den nächsten Error läufst (iconv o.ä.) - nicht abschrecken lassen (!), daß ist nur beim Anfang so. Wenn man dann mal gelernt hat, die !Run Files zu lesen, vereinfacht sich das, und das ist an sich nicht schwer.

    -- 1982 gab es keinen Raspberry Pi , aber Pi und Raspberries

  • Ansonsten: Ja, guck mal nach, was das Maschinchen so sagt.

    4.87 - ist also konsistent mit der Fehlermeldung (C Lib ist zu alt).



    Ich hoffe Du hast mittlerweile die CLib Datei im Netsurf-ZIPfile gefunden oder einzeln dort geholt, oder von einem der Links.

    Im Netsurf-Archiv ist die nicht 'drin, oder ich bin zu blöd, sie zu finden. Da ist nur eine SharedULibrary dabei. In den "System Resources" ist eine 6.00 dabei und wenn ich die "manuell starte" (Doppelklick) startet auch Netsurf :)


    Frage: Im "System Resources" steht die 6.00-Bibiliothek unter ...310.Modules - kann ich die einfach in den entsprechenden Ordner unter !Boot verschieben und die dort vorhandene Datei überschreiben, um das "permanent" zu machen?

  • 4.87 - ist also konsistent mit der Fehlermeldung (C Lib ist zu alt).

    Das paßt auch zu der Fehlermeldung, die im !Run File von NetSurf steht. Ich schreib das hier auf, weil es evtl. noch ein paar Zusatzinfos gibt


    Code
    | Ensure a 32bit SharedCLibrary is installed
    | (5.17 == first 32bit SCL, 5.43 == C99 features)
    RMEnsure SharedCLibrary 5.17 NetSurfRMLoad System:Modules.CLib
    RMEnsure SharedCLibrary 5.43 Error NetSurf requires SharedCLibrary 5.43 or later. This can be downloaded from https://www.riscosopen.org/content/downloads/common


    Da steht, daß nach System:Modules.CLib gesucht wird. Das Modul muß also CLib heißen und im Pfad System: liegen und dort unter dem Verzeichnis Modules.


    Geladen wird das nur, wenn die Versionsnummer des vorhandenen < 5.17 ist. Und dann wird getestet, ob das Modul Versionnummer 5.43 hat, wenn nicht, dann kommt die Fehlermeldung.


    Und nun kommts: Du kannst Dir mal die Pfadvariable für "System:" ansehen. Dazu drückst Du F12 und schreibst "show System$Path". Dort siehst Du dann eine Reihe von Ordnern, die im !System Directory abgesucht werden, wenn so ein Ladebefehl auftritt. Dabei wird quasi von oben begonnen, d.h. bei der Nummer, die kleiner-gleich Deiner installierten ROM Version ist. Wenn da also ein RISC OS 5 drauf ist, wird von 500 abwärts gesucht und alle kleineren Ordner angeschaut, also 360. dann 350. dann 310. , ob da eine Datei CLib drin ist. Wenn die dann tatsächlich in 310.Modules liegt, wird sie dadurch auch gefunden.


    Es wird also von <= der Versionsnummer des ROMsystemes begonnen und absteigend in den zu den jeweiligen Betriebsystemversionen gehörenden Modulordnern gesucht, bis der erste Treffer kommt - dieses Modul wird dann einfach geladen.


    Bedeutet: Natürlich kannst Du Module auch manuell da rein legen. Günstigerweise natürlich sollte man sich das irgendwo notieren. Was nämlich passieren kann, wenn man das per Hand macht, ist, daß man ein Modul mit höherer Versionsnummer in z.B. 310.Modules legt und später dann evtl. eines mit einer kleineren Version z.B. in 500.Modules - was dann dazu führt, daß immer nur das mit der kleineren Versionsnummer gefunden wird. Und das sind so Fehler, die man schlecht findet. Da auch immer, ganz zum Schluß, noch in !System direkt geschaut wird, ist eine übliche Variante sich dort einen "eigenen" Ordner Modules anzulegen und manuell Sachen dort reinzulegen - ohne Garantie, daß das mit allen Programmen funktioniert. Ansonsten direkt in 310.Modules - und die Datei, die man überschreibt irgendwo "backuppen".


    Ansonsten

    die SharedULib ist eben diese Unix Lib, die nicht die C Lib ist -obwohl sie eigentlich die gleichen Funktionen hat (mehr oder weniger). Deshalb hatte ich das oben so ausführlich versucht zu beschreiben. Also SharedCLib != SharedULib , und wie man sieht gibt es doch Programme, die beide gleichzeitig benutzen.


    Du brauchst also tatsächlich noch was Extra - was NICHT im NetSurf Download dabei ist. So kann man sich täuschen...


    Wenn die "6.00 Bibliothek" von der Du schreibst - wobei ich weder verstehe, was für "System Resources" Du meinst, noch wofür die 6.00 stehen soll (da die Castle Varianten alle v5 heißen sollten) - erstmal funktioniert, dann kannst Du die erstmal benutzen und nach 310.Modules kopieren. Aber wenn die von RISC OS 6 kommt, dann kann es sein, daß es da mal irgendwann komische Fehler gibt, in anderen Programmen. Guck mal in Dein Postfach hier.

    -- 1982 gab es keinen Raspberry Pi , aber Pi und Raspberries

  • Danke für die ausführliche Erklärung! Die "System Resources" bezieht sich auf den Download der Systemkomponenten von hier.


    Die dort enthaltende CLib zeigt mir die Version 6.00 wenn ich nach Doppelklick im Terminal "help SharedCLibrary" eingebe.