D-Programmieren

Zum Inhalt

Ubuntu Repository

Neuigkeiten aus der Welt von D und dem Forum.

Ubuntu Repository

Beitragvon WasserDragoon am Dezember 04, 2009, 11:36:04 AM

Hallo,

seit langem ist schon ein Ubuntu Repository am Start.
Leider mit noch nicht vielen Paketen, was sich aber die nächsten Tage ändern wird.
Verfügbar ist bereits der D Compiler ldc samt Tango-Lib (LDC Version) und Tango-Headers.
Desweiteren nun auch die Phobos-Lib, wobei ich aber noch den DMD Compiler dazu hochladen muss.

Hier der Link zum Launchpad Team:
https://launchpad.net/~d-language-packagers

Wer Interesse hat sich zu beteiligen, nur zu ;-)
Meinerseits wird aufjedenfall noch, durch Erlaubnis von Walter Bright, der DMD Compiler in der Version 1.051 dort veröffentlicht. Vielleicht auch noch die QtD-Headers und die Lib selbst als DMD-Version.

Aber um das Thema auch etwas in Schwung zu bringen und auch mal wieder das Forum etwas anzuheitzen starte ich mal eine Diskussionsrunde mit dem Thema: Soll sich die Konfigurationsdatei des Compilers nach Installation von Tango/Phobos verändern (I-Flag für das Include-Verzeichnis für Tango/Phobos), vorausgesetzt das ist möglich, damit man das nicht mehr manuell machen muss. Oder wie würdet ihr das handhaben? Oder würdet ihr direkt alle Verzeichnise einfügen für Pakete die dort landen werden? z.B.:
Code: Alles auswählen


[Environment]



DFLAGS=-I/usr/include/d/phobos -I/usr/include/d/tango -L-L/usr/lib/d



Ich denke auch nicht, dass das gehen wird... Deshalb seid ihr gefragt ;-)

MfG,
Danny.
Ich kaufe ein A und möchte lösen....Bockwurst!
Bild
"Du kannst dein iPhone nicht schrotten, denn selbst dafür brauchst Du 'ne App"
Benutzeravatar
WasserDragoon
Sr. Member
 
Beiträge: 299
Registriert: Juli 28, 2007, 06:07:30 PM

Re: Ubuntu Repository

Beitragvon IcyT am Dezember 04, 2009, 01:17:10 PM

Ich benutze zwar kein Ubuntu, aber finde es super, wenn D weitere Verbreitung findet.
Gut gemacht!

Zur Konfigurationsdatei: Du meinst wenn ich jetzt über den Paketmanager libtango installieren würde, dann würde die Konfigurationsdatei angepasst werden? Ist das deine Fragestellung?
Was würde passieren, wenn ich dann wieder libphobos installier? Oder libtango deinstallier?
Hört sich nicht so einfach an.
--
IRC-Chan: #D.de auf irc.freenode.net
Jabber MUC: d@conference.jabber.ccc.de
My Jabber ID: IcyT@jabber.ccc.de
My Website: http://www.icysoft.de
My Blog: http://www.icyt.de

In the beginning was the word and the word was content-type: text/plain
Benutzeravatar
IcyT
Administrator
 
Beiträge: 239
Registriert: August 24, 2007, 05:31:05 PM

Re: Ubuntu Repository

Beitragvon WasserDragoon am Dezember 04, 2009, 06:53:39 PM

Genau, das meinte ich :-)
Ja, deswegen frage ich. Also ich fände es ja schön komfortabel, aber man müsste halt schon wissen, wie das genau vor sich gehen soll...
Ich würde es ja bevorzugen, dass bei jeder Installation einfach die dmd.conf angepasst wird.
Bei libphobos wird der I-Flag auf /usr/include/d/phobos gesetzt, bei libtango auf /usr/include/d/tango.
Leider kann man ja noch nicht in vollem Umfang beides zugleich nutzen, was ich ehrlich gesagt auch eigentlich unnütz finde, aber das würde die Frage und das Problem beheben... Man könnte evtl. auch mit Symlinks arbeiten?! Vielleicht fällt euch ja dazu etwas ein...

EDIT: Vielleicht ein Symlink /usr/include/d/current oder so, der auf die zuletzt installierte standard library zeigt?! Wenn ich nun aber beide libs installiert habe und z.B. phobos, das gerade aktiv ist runterschmeiße, tango drauf lasse sollte er das ja schon erkennen und automatisch den I-flag oder symlink, jenachdem, auf tango setzen...
Ich kaufe ein A und möchte lösen....Bockwurst!
Bild
"Du kannst dein iPhone nicht schrotten, denn selbst dafür brauchst Du 'ne App"
Benutzeravatar
WasserDragoon
Sr. Member
 
Beiträge: 299
Registriert: Juli 28, 2007, 06:07:30 PM

Re: Ubuntu Repository

Beitragvon klickverbot am Dezember 05, 2009, 10:41:35 AM

Oder du lieferst die dmd.conf gleich nur mit den LIbraries aus, dann gibt es keine Probleme, solange das DMD-Paket von einem der beiden abhängt (oder vielleicht von einem Meta-Paket »d-stdlib«) und die beiden Library-Pakete sich gegenseitig auschließen.

Edit: Seid ihr beide eigentlich in #d anzutreffen?
klickverbot
Newbie
 
Beiträge: 13
Registriert: Oktober 18, 2008, 09:20:13 PM

Re: Ubuntu Repository

Beitragvon WasserDragoon am Dezember 05, 2009, 11:23:49 AM

Das hört sich nach einer vernünftigen Lösung an...
Da die dmd.conf als conffile eingetragen ist, wird er auch dem Nutzer sagen, wenn er sie überschreibt bzw. ob er sie überschreiben darf.
Danke, so werde ich das machen ;-)
libphobos-dmd-dev und libtango-dmd-dev werden beide die dmd.conf bekommen mit den richtigen Angaben.

EDIT: leider erst am montag, da ich dieses wochenende leider keine zeit mehr habe.
Ich kaufe ein A und möchte lösen....Bockwurst!
Bild
"Du kannst dein iPhone nicht schrotten, denn selbst dafür brauchst Du 'ne App"
Benutzeravatar
WasserDragoon
Sr. Member
 
Beiträge: 299
Registriert: Juli 28, 2007, 06:07:30 PM

Re: Ubuntu Repository

Beitragvon IcyT am Dezember 05, 2009, 07:17:55 PM

klickverbot hat geschrieben:Edit: Seid ihr beide eigentlich in #d anzutreffen?


Gelegentlich, ja. In letzter Zeit war ich aus beruflichen Gründen seltener im IRC anzutreffen, aber in den kommenden Wochen werde ich dann mal wieder öfters da sein. Du bist übrigens auch herzlich in #d.de eingeladen :) Das ist der "offizielle" Channel zum Board.
--
IRC-Chan: #D.de auf irc.freenode.net
Jabber MUC: d@conference.jabber.ccc.de
My Jabber ID: IcyT@jabber.ccc.de
My Website: http://www.icysoft.de
My Blog: http://www.icyt.de

In the beginning was the word and the word was content-type: text/plain
Benutzeravatar
IcyT
Administrator
 
Beiträge: 239
Registriert: August 24, 2007, 05:31:05 PM

Re: Ubuntu Repository

Beitragvon WasserDragoon am Dezember 07, 2009, 01:30:15 PM

Bin ab und zu im IRC, aber seltener in #d, dann eher mal in #d.de aber wie gesagt bin selten in Channels. Meist bin ich per Jabber zu kontaktieren...

Aber nochmal, um zum Thema zurück zu kommen...
Was soll passieren, wenn z.B. QtD installiert wird?
Soll die rules-Datei herausfinden, ob Phobos oder Tango installiert ist und daraus dann die dmd.conf erstellen? Schließlich benötigt QtD in der dmd.conf die -L-lQt4Core -L-lQt4Gui -L-lqtdcore -L-lqtdgui etc.
Ich kaufe ein A und möchte lösen....Bockwurst!
Bild
"Du kannst dein iPhone nicht schrotten, denn selbst dafür brauchst Du 'ne App"
Benutzeravatar
WasserDragoon
Sr. Member
 
Beiträge: 299
Registriert: Juli 28, 2007, 06:07:30 PM

Re: Ubuntu Repository

Beitragvon IcyT am Dezember 08, 2009, 10:04:53 AM

Ich würde sagen, dass die vorhandene conf-Datei nur überschrieben werden darf, wenn sie noch die selbe ist, wie die, die im dmd-Paket drin war. Wenn sie eine andere ist, dann sollte eine neue unter anderem Namen angelegt werden.
Bei Arch Linux gibt's da eine spezielle Richtlinie, wie die Konventionen sind. Sie ist hier ganz gut erklärt:
http://wiki.archlinux.org/index.php/Pac ... _Explained

Bei Ubuntu gibt es doch bestimmt auch so etwas, könnte ich mir vorstellen.
--
IRC-Chan: #D.de auf irc.freenode.net
Jabber MUC: d@conference.jabber.ccc.de
My Jabber ID: IcyT@jabber.ccc.de
My Website: http://www.icysoft.de
My Blog: http://www.icyt.de

In the beginning was the word and the word was content-type: text/plain
Benutzeravatar
IcyT
Administrator
 
Beiträge: 239
Registriert: August 24, 2007, 05:31:05 PM

Re: Ubuntu Repository

Beitragvon klickverbot am Dezember 08, 2009, 01:21:42 PM

WasserDragoon hat geschrieben:Schließlich benötigt QtD in der dmd.conf die -L-lQt4Core -L-lQt4Gui -L-lqtdcore -L-lqtdgui etc.

Diese Vorgehensweise würde meiner Meinung nach nur dann sinnvoll und angebracht sein, wenn davon auszugehen ist, dass der Benutzer nach dem Installieren des QtD-Paketes ausschließlich D-Projekte kompiliert, die von QtD gebraucht werden – was offensichtlich nicht der Fall ist. Sich darauf zu verlassen, dass der Linker erkennt, dass die QtD- und damit auch die Qt-Symbole im fertigen Executable nicht gebraucht werden und die Libraries deswegen auch nicht linkt, halte ich für keine gute Idee.

Schließlich verändert ja das Paket für Qt oder eine beliebige andere Library auch nicht deine globalen CXXFLAGS/LDFLAGS, sondern du musst die Abhängigkeiten in deinem Build-System händisch angeben, wenn du die Bibliothek verwenden willst. Um das zu vereinfachen, gibt es verschiedene Ansätze wie pkg-config, CMake-Module, im Fall von D DSSS, etc…

Eine Patentlösung für D kann ich dir leider nicht anbieten, weil es sie schlicht und einfach noch nicht gibt – ist die Situation schon für C/C++ alles andere als trivial, bewegst du dich bei D in völlig unbekannten Gewässern.
klickverbot
Newbie
 
Beiträge: 13
Registriert: Oktober 18, 2008, 09:20:13 PM

Re: Ubuntu Repository

Beitragvon WasserDragoon am Dezember 08, 2009, 03:50:55 PM

Wie ihr sehen könnt, habe ich bereits dmd und libphobos auf den Repository hochgeladen...
Nun habe ich die dmd.conf sowohl im Paket dmd als auch im Paket libphobos-dmd-dev...
Wenn ich nun die beiden Pakete installieren möchte, stoppt er bei libphobos-dmd-dev mit dem Fehler, dass er dmd.conf nicht überschreiben kann/will weil es bereits im Paket dmd vorhanden ist.
Ich hatte eher einen anderen Effekt erwartet: Man wird gefragt per y/n, ob man die Datei überschreiben möchte...
Muss ich nun die Datei in beiden Paketen aus der conffiles-Datei des debian-Ordners rausnehmen, damit es geht oder gibts noch ne bessere Lösung? Schließlich sollte der User schon mitbekommen, wann seine dmd.conf überschrieben wird...

EDIT: Okay nun habe ich in beiden Paketen die dmd.conf drin als conffile, aber libphobos-dmd-dev geht somit nun nicht mehr installieren... hatte mir auch bereits dpkg-divert angeschaut, aber dessen funktionalität ist von conffiles ausgeschlossen... Demnach werde ich es jetzt so machen, dass mit dem dmd-Paket die Konfigurationsdatei mitgeliefert wird, angepasst auf die phobos lib, da sie nunmal generell als standard beim dmd offiziell dabei ist und alles andere muss der user eben manuell machen...
Ich kaufe ein A und möchte lösen....Bockwurst!
Bild
"Du kannst dein iPhone nicht schrotten, denn selbst dafür brauchst Du 'ne App"
Benutzeravatar
WasserDragoon
Sr. Member
 
Beiträge: 299
Registriert: Juli 28, 2007, 06:07:30 PM

Re: Ubuntu Repository

Beitragvon darkdragon am Dezember 10, 2009, 07:10:05 AM

Mh momentan mit D1 wäre es auch möglich die Libraries gegenseitig auszuschließen also phobos und tango, man kann eh nur eine std-lib verwenden, also so wie das klickverbot geschrieben hat.

QtD als default eintragen halte ich auch für quatsch das muss man dann schon in seinen Projekten entsprechend konfigurieren.

Wenn du phobos als Standard lässt ist das auch oke, du könntest ja dann aber bei tango entsprechend eine dmd.conf mitliefern die man dann nur noch auswechseln braucht? Also z.b. dmd-tango.conf dann muss der User nur sie noch entsprechend "umbenennen".

Zu dem Depencies wie wäre es das dmd auch von libphobos abhängt? Ohne Standard Library (Runtime!) tut der Compiler ja nicht soviel ;), haut das so hin mit den Dependencies? Dann kannst du die dmd.conf nur in libphobos und libtango mitführen und für libtango eben so wie ich oben vorgeschlagen habe oder eben gegenseitig auschließend.

(Btw mich gibts auch noch im IRC in #D und #D.de. Notfalls einfach mal highlighten ;), wie wärs eigentlich mit nem D Jabber Channel?)

Gruß
DD
Post licensed under CC BY-NC-SA
JID: darkdragon (a.t) jabber.ccc.de
Benutzeravatar
darkdragon
Full Member
 
Beiträge: 194
Registriert: Februar 20, 2007, 04:41:20 PM

Re: Ubuntu Repository

Beitragvon IcyT am Dezember 10, 2009, 09:35:39 AM

darkdragon hat geschrieben:wie wärs eigentlich mit nem D Jabber Channel?

Gibt's schon lange von mir, nur ist keiner von euch drin :D
:arrow: d@conference.jabber.ccc.de
--
IRC-Chan: #D.de auf irc.freenode.net
Jabber MUC: d@conference.jabber.ccc.de
My Jabber ID: IcyT@jabber.ccc.de
My Website: http://www.icysoft.de
My Blog: http://www.icyt.de

In the beginning was the word and the word was content-type: text/plain
Benutzeravatar
IcyT
Administrator
 
Beiträge: 239
Registriert: August 24, 2007, 05:31:05 PM

Re: Ubuntu Repository

Beitragvon WasserDragoon am Dezember 10, 2009, 01:42:35 PM

Meintest du es so, wenn ich dmd installiere, dass libphobos automatisch mitinstalliert wird und nach installation von tango wieder runtergeschmissen wird und somit ersetzen sich die dmd.conf die ich in libphobos und libtango mitgebe? Das hört sich gut an :-) Werde eventuell sowieso ein eigenen Repo bei Launchpad machen, IcyT weiß warum ;-) Falls sich da irgendwas spalten sollte, will ich nicht von anderen Personen abhängig sein bzw. Gefahr laufen, dass meine Pakete einfach runtergeschmissen werden und die Arbeit sich nicht gelohnt hat.

Den Jabber Channel muss ich mir direkt mal adden, sobald ich wieder zu Hause bin ;-)

MfG
Ich kaufe ein A und möchte lösen....Bockwurst!
Bild
"Du kannst dein iPhone nicht schrotten, denn selbst dafür brauchst Du 'ne App"
Benutzeravatar
WasserDragoon
Sr. Member
 
Beiträge: 299
Registriert: Juli 28, 2007, 06:07:30 PM

Re: Ubuntu Repository

Beitragvon darkdragon am Dezember 10, 2009, 02:08:38 PM

Ja so in etwa meinte ich das.

Wenn du quasi ein Meta Package dmd-std-lib machst und sowohl tango als auch phobos erfüllen dieses Meta Package und stehen im Konflikt dann kannst du entweder tango oder phobos benutzen. Und hast jeweils die passende Variante, dmd-std-lib wäre quasi etwas was dann das dmd Package als Abhängkeit hat.

Allerdings soweit ich weiß sind Konflikte garnicht so gerne gesehen in Paketen, also das ein Paket die Installation eines anderen Paketes auschließt und andersrum. In Falle von dmd würd es Sinn machen ja, aber vllt wäre dann doch die andere Variante die bessere. Dann müsste man halt händisch immer die passend dmd.conf benennen. wenn beide vorhanden sind kann sie ja aber hin und her kopieren oder eventuell ein Bash Script mitliefern das das macht.
z.B.
#dmd-stdlib-switch tango
#dmd-stdlib-switch phobos

oder sowas.

gruß
DD
Post licensed under CC BY-NC-SA
JID: darkdragon (a.t) jabber.ccc.de
Benutzeravatar
darkdragon
Full Member
 
Beiträge: 194
Registriert: Februar 20, 2007, 04:41:20 PM

Re: Ubuntu Repository

Beitragvon klickverbot am Dezember 11, 2009, 04:36:44 PM

So hatte ich es auch in meinem ursprünglichen Beitrag gemeint, eine ähnliche Lösung wird meines Wissens auch für die Pakete in Arch Linux verwendet.

Wenn du aber doch eine Parallelinstallation der beiden Pakete anbieten willst, wäre eine Möglichkeit wohl auch, das /etc/alternatives-System zu benutzen – oder irre ich mich da?
klickverbot
Newbie
 
Beiträge: 13
Registriert: Oktober 18, 2008, 09:20:13 PM


Zurück zu Ankündigungen & Neues

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron