I’m actually trying to convert a Delphi component to Lazarus. The work is running Ok but I have some difficulties finding multiplatform equivalents working with FPC/Lazarus. This must be complicated as those functions are about shell integration and each shell have it’s own approach.
Here is the typical code giving me headackes :
//this windows specific function should be hard to convert
//we should need here something using mime types, anyway many more code
//should be required
procedure GetFileExtensionShellDescription(Ext: string;
var FileTypeName: string; var ShellImageIndex: Integer);
var
I, J: Integer;
T: string;
L: TImageList;
sFI: TSHFileInfo; //this is windows specific but an other type could be equivalent
Icon: TIcon;
PCh: PChar;
P: PFileDescriptionRecord;
begin
FileTypeName := '';
I := RegisteredExtensions.IndexOf(Ext); //this is a TStringList defined as global before
if I = -1 then
begin
New(P);
P^.FileType := '';
Icon := TIcon.Create;
for J := 0 to 1 do
begin
if J = 0 then
L := ShellSmallImageList
else L := ShellLargeImageList; //both are TImageList
GetMem(PCh, MAX_PATH);
GetTempPath(MAX_PATH, PCh); //those lines could be replaced by GetTempDir in FileUtil
T := PCh + 'TEMP' + Ext;
FreeMem(PCh);
TFileStream.Create(T, fmCreate or fmOpenWrite).Destroy;
//the following is the biggest problem... Impossible to find any
//equivalent with Lazarus. Any ideas ? Mime types and FreeDesktop
//implementation should provide this...
if SHGetFileInfo(PChar(T), 0, sFI, SizeOf(sFI),
SHGFI_TYPENAME or SHGFI_ICON or
(SHGFI_SMALLICON * (1 - J) + J * SHGFI_LARGEICON)) <> 0 then
begin
Icon.ReleaseHandle;
Icon.Handle := sFI.hIcon;
P^.FileType := sFI.szTypeName;
end;
P^.OpenImageIndex := L.AddIcon(I);
P^.CloseImageIndex := P^.OpenImageIndex;
if J = 1 then
I := RegisteredExtensions.AddObject(Ext, TObject(P));
end;
Icon.Destroy;
end;
with PFileDescriptionRecord(RegisteredExtensions.Objects[I])^ do
begin
ShellImageIndex := CloseImageIndex;
FileTypeName := FileType;
end;
end;
The problem seems simple, we just need to get system icons for every file extensions but nothing is currently available in lazarus to do that. I know FreeDesktop is providing a common interface for all modern Linux desktop environment, to be able to do that, as many software that don’t have the same API can do that (eg. Gnome applications running under KDE uses KDE theme). Is there a way to project a such implementation wich is the base for desktop integration ? This should be a very good added value to Lazarus…
Creating a Linux router using a good old computer is a very good way to create securised subnetwork. Unfortunately, post with clear explanation of the procedure are not always as simple as it should be.
To do it you need a very simple computer. Personnally I’m using P3 600 MHz with 327 MB of RAM and a 20 GB hard drive. This is very porwerfull for this use, but this machine is an HTTP and FTP server as well. For exemple my previous router was made using Pentium 200 with 48 MB of RAM and 500 MB hard drive and that was running well under a Debian Etch. Concerning network interface you need an ethernet network card in more of what you need to access the internet, wich is probably a second ethernet card. You’ll also need an ethernet hub connected on this network card. If you want wireless, I recommend a third network card (and a second subnetwork), were you’ll only have an access point connected. If you can’t (or don’t want to) have a third network card you can still connect it to the ethernet hub but that’s less secure.
All the following instruction will supose a Debian Lenny or Etch installed on that machine (wich is a good choice) with a working Internet connexion. You must install only the base system. It’s not recommended to install X server or any graphic software cause security is the main goal of those kind of routers and nothing else.
Once the base system is installed you need to install (as root) the following package :
- dhcp3-server wich is giving automatically IP adresses to your subnetwork client’s
- dhcp3-client is needed if your modem is providing you dynamic IP adresses or if this modem is a router himself (generally installed by default)
- iptables that is acting as a firewall and routing (using NAT) solution (generally installed by default)
- iptables-persistent that will keep your iptables settings and restore it if you need to restart your router
- nano is a simple to use editor (generally installed by default)
- w3m (or any other text web-browser) to test internet connexion on the router
- Any other server service you would have, like Apache, proFTPd, BIND…
First I must define some terms to be precise. Imagine the following configuration :
- eth0: is connected to your modem (internet zone) with address 192.168.0.1
- eth1: is connected to your private ethernet network with address 192.168.1.1
- eth2: is connected to your WiFi access point (optional WiFi zone) with address 192.168.2.1
Of course you will have to replace with the good values for your configuration and with the network address you want to have (must start with 192.168). The internet zone is automatically configured using dhcp-client launched inside the init script but not for the two other network. Unless you assign the good addresses while installation, you must configure it manually by editing the file “/etc/network/interfaces”:
# Begin of /etc/network/interfaces # Configuring the loopback interface auto lo iface lo inet loopback # Primary network interface (internet zone) allow-hotplug eth0 iface eth0 inet dhcp # Private network iface eth1 inet 192.168.1.1 iface eth2 inet 192.168.2.1
Now we have to modify /etc/dhcp3/dhcpd.conf to enable the DHCP (Dynamic Host Configuration Protocol) server:
# Begin /etc/dhcp3/dhcpd.conf
# Use ad-hoc style name server updating procedures
ddns-update-style ad-hoc;
# Configure client's dns settings: replace 212.27.40.24x with your ISP DNS servers and
# optionally add your DNS server (192.168.1.1 here) if you have your own.
option domain-name "jeff.levasseur.org";
option domain-name-servers 212.27.40.241, 212.27.40.240, 192.168.1.1;
# Configure lease time (in seconds)
default-lease-time 600000000;
max-lease-time 720000000;
# eth1 subnet configuration: this will give address from 192.168.1.10 to
# 192.168.1.99 and it's the only thing you may change. Note that you
# can have several range, and ranges with only one address.
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.10 192.168.1.99;
option routers 192.168.1.1;
option broadcast-address 192.168.1.255;
}
# eth2 subnet configuration: here you have an exemple of multiple range
subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.2 192.168.2.10;
range 192.168.2.100 192.168.2.199;
option routers 192.168.2.1;
option broadcast-address 192.168.2.255;
}
# End /etc/dhcp3/dhcpd.conf
Now you need to restart the DHCP server with:
/etc/init.d/dhcp3-server restart
You should test the DHCP server by reconfiguring the network and pinging the server on one of the client machine. For exemple with Linux:
dhclient eth0
ping 192.168.1.1
If dhclient is giving you a good IP address and ping returns no packet transmission error, you’re DHCP server is well configured. With Windows, you should use the “Control Panel” to configure the network settings of the client. If you use a WiFi hotspot you have to configure it before doing this test.
At this point the network is working fine but you still have no access to the Internet cause interface eth0 must “translate” addresses to eth1 and eth2 to allow access. This is done using iptables wich is at the same time a firewall and an network address translator (known as NAT). In the console type the following:
# Forward incoming link address from eth0 to eth1 and eth2 only # when connexion is already established iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,REQUIRED -j ACCEPT iptables -A FORWARD -i eth0 -o eth2 -m state --state ESTABLISHED,REQUIRED -j ACCEPT # Forward everything coming from clients and going to internet including request... iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT iptables -A FORWARD -i eth2 -o eth0 -j ACCEPT # Activate iptables's nat iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE # Enable Linux kernel packet forwarding echo 1 > /proc/sys/net/ipv4/ip_forward # Restart DHCP server /etc/init.d/dhcp3-server restart
Now your intenet access will work fine with a very good protection level. Nethertheless, if you want to tune your Iptables configuration, then the next step is to buy a book… That’s all folks !
As I was saying in a previous article I project to port all my old software from Delphi to Lazarus. The first on to come will be YaPeTaVi for Yet another Periodic Table Viewer. It was formerly a simple molecular mass analyzer and become, after some brain-storming and a nearly full rewrite of the application, a full featured analysis software. It’s project to include the following functions for the first beta version:
- Periodic table viewer with colorization support depending on atomic block or family, or gradients for discovery dates, melting point, boiling point, electronic affinity, covalent radius, Van Der Waals radius, electronegativity and first ionization energy.
- List supporting sorting options for detailed element information and a link to the appropriate Wikipedia article.
- Graph system representing numerical values on two axis with multiple range selection.
- Multi-filtering system available for periodic table, list and graph.
- Molecule (or ion) database with information.
I’m also thinking of several improvement like electronic configuration viewer, more controls on graph widget and isotope information.
You can actually download source code via SVN (the only available version is an early prealpha) by using one of the following command:
svn co svn://svn.tuxfamily.org/svnroot/geofperspage/gppsvn/trunk/yapetavi
If you are a Windows user you may use TortoiseSVN to do so. Alternatively you can browse the code at the address: http://svn.tuxfamily.org/viewvc.cgi/geofperspage_gppsvn/trunk/yapetavi/ of the SVN repository. You will need a recent SVN version of Lazarus, FPC version >= 2.3.1 and the optional TChart component installed (it’s distributed with Lazarus anyway but not compiled by default). If you need help, about compiling or anything else just contact me.
If you want to help you’re more than welcome. In more of the improvement I’ve listed, I need some test on Windows or MacOS and an idea to organize information on elements isotopes.
A page on this website will give you access on all the usual information (changelog, documentation, detailed compiling/installing instruction…). The news will stay on this blog.
It’s so great to be back on the Internet… especially after an half and 2 month being disconnected. How it is possible to need so much time to get a connection? Well this is simple: incompetence of the ISP I choose to establish it.
I decide to subscribe to a fully degrouped (eq. of unbundled in US) connection with the french ISP SFR, cause it was the only one present in my city at the time I was taking my new flat. When the technician comes he remarks that there was no wire for my flat between my building and the repartitor 20 meters away. He leaves saying me that they come back to place the missing wire. They never came back and SFR was not able to treat my folder to make it. After two month SFR give up and ask me to give them back the modem. In their letter they were writing that DSL connection are not available in my area! But, my neighbors have…
The same week I learned that the ISP Free was installing equipment for full degrouping (unbundling) in my city. I subscribe and two weeks later, here I am without any problem.
Thanks SFR for such an incompetence, it make me subscribe to my preferred ISP!
Several month ago I was running a Debian Lenny/Sid and used to have KDE 3.5.x running. KDE 4.0 was about to be released but it was not usable for production. So I decided to run KDE 4 following the techbase website instruction. Today I’m running KDE 4.2.4 from Sid Debian repositories. Nevertheless, KDE 4 support under Debian is still a very big mess. Many software are still not available for KDE 4 even if a stable version exists for it (e.g. Amarok or Kile). In more, the stability of the base desktop is awful and many bugs are Debian specific (the OpenSuse version is very stable). I don’t want to leave Debian cause my system is still quite more fast and reliable than in the past with OpenSuse.
An other point is that I need a development release (from SVN) of KDE 4 to be able to make some tests. After many discussion on KDE developers IRC channel, I was convinced that SVN version of KDE 4 (actual trunk is for future 4.4 version) is stable enough to be used for production.
Now here are my plans…
The Qt version provided by Debian (4.5.1) have dependencies with Phonon, and I need to build a SVN version of Phonon (Debian version is to old). So I need to remove all Qt dependent software, using aptitude or synaptic under a non KDE session (I use Xfce to do so). Please note that all Qt or KDE based software must be closed before uninstallation, elsewhere you may have a strange reaction of your system. When Aptitude or Synaptic show you the list of software it is about to uninstall it’s better to note it to be able to retrieve all you need. You will have to compile and install all these software manually.
The KDE techbase website is providing very good compilation and installation instructions but it is about to install it under a special user account that I don’t want. I will have to change various things. First the best way to set environment variable for all users is to create an init script. I’ve decide to run it mainly under run-level 3 because the X server can be ran manually anyway even if we are not run-level 5. So I create the file “/etc/rc3.d/S40kde4“:
# Begin /etc/rc3.d/S40kde4
if [ ! -d /tmp/${USER}-kde4 ]; then
mkdir /tmp/${USER}-kde4
fi
export KDEDIR=/usr/
export KDEDIRS=$KDEDIR
export KDETMP=/tmp/$USER-kde4
export STRIGI_HOME=${KDEDIR}
export QT_PLUGINS_DIR=$KDEDIR/lib/kde4/plugins:$QTDIR/lib${QT_PLUGINS_DIR+:}$QT_PLUGINS_DIR
export PATH="${PATH}:${KDEDIR}/bin"
export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}${PKG_CONFIG_PATH+:}${KDEDIR}/lib/pkgconfig"
# End /etc/rc3.d/S40kde4
You can change the base path if you want, but the one I use is respecting Debian guidelines. Note that KDEHOME variable is defined by Debian in an other script. So it is not safe to redefine it. When the file is saved (you must be root), you have to make it executable and it’s also more safe to copy the file to be executed to some other possible run-level. This is done by executing the following commands as root:
chmod -v +x /etc/rc3.d/S40kde4
cp -v /etc/rc3.d/S40kde4 /etc/rc2.d/
cp -v /etc/rc3.d/S40kde4 /etc/rc4.d/
cp -v /etc/rc3.d/S40kde4 /etc/rc5.d/
It is not useful to copy in directories for run-level 0, 1 or 6 (respectively halt, single user and reboot). Then you need to update your general profile and user session, if you don’t want to reboot:
/etc/rc3.d/S40kde4
source /etc/profile
Before processing any of the next steps, you have to install all the build dependencies by following the steps provided here.
If you have any error message at this point, you should check your configuration and the previous steps. Once this is done, you are ready to compile, but to make it more easy it is better to create an automated compilation script. I made this one, called “kdemake.sh“:
# Begin /usr/bin/kdemake.sh
if test -n "$1"; then
# Source folder is defined via command line argument
srcFolder="$1"
else
# srcFolder is the current dir
srcFolder=`pwd`
# default build directory is a build subdir inside the source folder
# -DCMAKE_INSTALL_PREFIX is forcing install prefix to the above definition
# -DKDE4_BUILD_TESTS=TRUE is optional and build test suite
# -DCMAKE_BUILD_TYPE=debugfull is optional and build full debugging information
cmake ${srcFolder} ${srcFolder}/build/ -DCMAKE_INSTALL_PREFIX=$KDEDIR -DKDE4_BUILD_TESTS=TRUE -DCMAKE_BUILD_TYPE=debugfull
cd ${srcFolder}/build/
# nice make -j3 is forcing make to use two processor (for dual core) replace with -j2 if you have mono-processor system
nice make -j3 && sudo make install
# note that sudo will ask you root password to install
# End /usr/bin/kdemake.sh
Make the script executable with:
chmod -v +x /usr/bin/kdemake.sh
If you run this (very simple) script, it is supposed that all the build directories have been created as child of the source directory… So, here is an example for compiling kdelibs package :
svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs
cd kdelibs
mkdir build
kdemake.sh
This is have to be done for first compilation then you only need to update and compile what is needed (this is why cmake is so fun), by doing this:
cd /kdelibs
svn up
kdemake.sh
If, like me, you prefer do this manually just forget it but a good idea is to create a variable containing systematic cmake parameters (this way you can pass some other parameters as you wish). For me, I call it “CM“. The other very useful thing is to create an alias for make, called fmake for “fast make”, allowing it to use the two processor of your dual core if you have one (the problem is that fmake will not accept parameters make used to accept because of nice):
export CM=-DCMAKE_INSTALL_PREFIX=$KDEDIR -DKDE4_BUILD_TESTS=TRUE -DCMAKE_BUILD_TYPE=debugfull
alias fmake=nice make -j3
You can add those lines to the init script above, that way it will always be available. Then you can do the same stuff as above, this way:
svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs
cd kdelibs
mkdir ../build
cd ../build
cmake ../kdelibs $CM
fmake
make install
The minimum KDE system is kdesupport, kdelibs, kdepimlibs and kdebase. You must compile it in that order due to dependencies. To install the full KDE suite you have to compile kdeadmin, kdeaccessibility, kdeartwork, kdebindings, kdeedu, kdegames, kdegraphics, kdemultimedia, kdenetwork, kdepim, kdeplasma-addons, kdesdk, kdetoys, kdeutils, kdevelop, kdevplatform and kdewebdev. You can compile some of these or everything in no particular order. The only exception is kdevplatform needed by kdevelop and kdewebdev that must be compiled first. After that, you can explore the websvn of KDE to find more software that you may be interested in. Check the playground and the extragear directories, koffice directory for the KDE Office Suite and l10n-kde4 for localization in your language.
When everything will be built for me, part two will be there as report of the experience (along with yours as comment).
That’s all folks… for the moment!
I was very good in Delphi programming until 2002. I was also using Borland Pascal 7 a lot mainly with my studies. This was very fun programming for me and very interesting. When I totally forget Windows, I was forced to forgot Delphi programming at the same time. Of course, there was Kylix but it was not a very good alternative:
- Closed source, and very expensive
- Not able to run on my Suse Linux 9.1 (I think) I was having at this period
- On my Red Hat machine it was very unstable
That’s for all those reasons that a small team decide to start programming their own version of Delphi, from scratch. The Lazarus project was born. Today I can use it very nicely and all the essential function of Delphi are present and even more. Some other functions are still missing (the project needs more developers) but everything is possible to do with it.
If you know something about Pascal programming, you can help with Lazarus development here.
Now I rediscover programming pleases and will port some of my old soft for FPC/Lazarus. This is a huge work for one of it but the others will soon be available. So see you soon!
That was growing in my head, for a very long time… Toulouse is very too big city for me and I was needing more “nature”. In an other hand, professional opportunity was not very good for me. I wanted to leave Toulouse and go elsewhere, in a smaller city. But where?
I have now find the right one: Villefranche de Rouergue. This is a small city in Aveyron department, just 200km away from Toulouse. I’m suppose to live there, starting 1st of July, 2009. This city will be the opportunity for me to create my own activity in a virgin area. Nearly no concurrence, so I will have very good chance of success.
I will need around 10 days to have a working internet connection there, so I will probably be absent from the internet between 2nd of July to 15th of July… After I will probably take some holidays, so my visits should be quite spacy while the three next weeks.
One week ago I was drinking to the health of the french minister of the culture, Mrs Christine Albanel, cause the “Hadopi” law, its dear baby, was definitely buried by the constitutional council, after having been abused by the European parliament. The reason was that a sanction, whatever it is, can not be taken by the legislator or anybody else than a judge. But the minister was not stopped and decided two days ago to purpose a new law… Hadopi 2!
For those who don’t know, Hadopi is supposed to be the new French legislative arsenal to protect our artists from illegal download. This law should create a new governmental agency, named Hadopi, able to spy users. For the moment, spying internet users by watching what they are doing with their connection require an authorization from a judge and must be done by the appropriate police service. Here no police, no judge, no instruction, just technocracy. It’s the open door for mass spying… If an illegal activity is detected on your connection, then you will receive a warning e-mail (the e-mail address is given by the ISP). If a new suspicious activity is detected you receive a second e-mail, then if that happen a third time the internet connection will be shut down without delay by the ISP for a minimum delay of one month. Of course no judgment, no proof that the faulting user is the proprietary of the connection, no recourse available, and cherry on the top of the cake: the same organization will have role as police, justice and investigator… All the reason why the constitutional council make this law unconstitutional!
So, now we have Hadopi 2 on the road. What will change? Nothing in fact, just that a judgment will be pronounced by a judge using a facility in the french law: “l’ordonnance pénale” approximately translated in “penal ordnance”. I will call it next “simplified procedure”. So what’s this? In France trials are overflowed: no way to use a real judgment, too expensive and nothing is more dangerous than a system where justice have money enough to do a good job… The solution is to use the same system than the one we use for road infraction.
When we are doing a road infraction the proof are easy to establish, and the punishment is not requiring in most of the case prison. In that way the suspect is judged without being present in a trial. The judge can decide three things. If all the proofs are present and if there’s no doubt on the identity of the suspect, the punishment is given and the suspect have 45 days to call the decision. Elsewhere, the judge can decide that the supposed punishment is not appropriate and ask for a real trial (particularly if prison is required) or that there’s not enough proofs and the ordnance is abandoned (nothing happen). See the 495th article of penal procedure codex for details (in french).
In the case of counterfeit offense, this is a very bad idea. First, this procedure can only work with very simple offense to prove, but a counterfeit done with computer is not really as simple than speed excess. The tribunal must have all the proofs:
- That the work was protected (we can download free content with BitTorrent or a Mule)
- That the downloader known that he was downloading something protected (file names are not always explicit enough or it’s nothing to do about the content of the file)
- There’s no doubt about the identity of the downloader (an IP address is not a proof of identity)
So if the law is respected, all the folders created with Hadopi system, should be rejected by the judge for insufficient proofs. The tribunal would be forced to ask for police investigation, loosing all the simplification interest of this procedure. Worst, the proof will be given by a government agency, non-sworned in. But the constitutional council is saying that, in the case of simplified procedure, no police investigation is possible if the proofs have not been gathered by a sword in agent, i.e. only the police or parts of the army in France (Decision n° 2002-461 DC, 29th of august 2002). Of course, and for the same reasons, Hadopi cannot investigate itself: it will not be a police service, so, they can’t have any rights for investigate. Hadopi could only get IP address, e-mail address and an activity and identity report from the ISP.
The other point is that this law is against artist’s interest. The french penal procedure codex, prohibit the victim to ask for compensation, in the case of the simplified procedure (495th article, al. 9, precising that a compensation ask must require a lawsuit). So, rights owner will not be able to ask for a compensation for their damage. They must sacrifice their right to the repression thirst of their government.
Last thing, this procedure is not applicable to minors (495th article of the penal procedure codex, al. 8), so I see that from here: “No it’s not me, it’s my 12 years old son that was downloading!“…
To resume, this new version of Hadopi will give us very good moment of fun…
This post was mainly inspired by this article written by a lawyer. Very complete, in french.
France is supposed to be a democracy and a country where liberty is one of its foundation. For ho long?
After liberty-killing law like Hadopi, that was like a starter, the main course is coming with a new one: Loppsi (loi pour la performance de la sécurité intérieure meaning law for inside security performance). A member of the commission studying the project wrote about it here.
As he’s saying the worst problem is in 6th article:
Il s’aggit d’« imposer aux fournisseurs d’accès à Internet l’obligation d’empêcher sans délai l’accès aux contenus illicites dont les adresses électroniques sont désignées par arrêté du ministre de l’intérieur sous peine d’un an d’emprisonnement et de 75.000 euros d’amende.»
It is translated this way:
It is about « to impose to Internet access providers the obligation to prohibit without delay access to illicit contents where electronic address are chosen by an arrest of the inside minister under liability for one year of imprisonment and 75.000 Euro of amends.»
In an other word, one person will be able to interrupt access to a web site on all the French territory, without judgement nor control. This just make me think of China witch is using the same kind of things!
I think sincerely liberty will soon and soon become a luxury in France…
Two weeks ago I was speaking with Anne-Marrie Mafhouf about a feature request zone in KDE development website. This idea was born in my mind when somebody tell me on KDE developer IRC channel that there was problem with a program that I’m translating, KDETV, because some of its main developers quit the project.
Never mind if this information is totally true or not but I know some project was abandoned in the past (KBabel for example) due to lack of developers. Some other project are growing very slow because of lacking elements (graphics, sound, essential function…).
The solution is to create a special zone in KDE developer’s site to centralize the needs of KDE developers and users. I think this is very good for many reason:
- New developers can check this zone and be guided. Some new developers are sometimes lost, facing the amazing quantity of projects and source code. At the same time, if we have more new developers on some old projects as long as they get experienced, we have quite less chance to loose a project due to a lack of developers.
- Developers can give some ideas of new functionality that could be interesting in the project, even more if they don’t really know how to do.
- User’s feature request could be concentrate providing an easiest access to maintainers and developers.
I have some times so I could manage this part of the job
, and something like a Wiki should be adapted. KDE guru’s, please tell me what you are thinking about it.
This weekend I was challenged to install Linux on an old PowerMac G3 by a friend living in a small city in Aveyron where internet connection is 10 time slower than in Toulouse, were I’m living. This was, at the same time, a very interesting experience and very disappointing as well…
After download of a Debian Lenny PowerPC edition (2 hours for the 200MB netinstall CD…), booting and installing the base system (4 hours) was as easy as on an Intel machine, giving me all the optimism I needed. My first problem came with Xorg. When trying to launch Xorg, a bug in the ATI driver (only PowerPC version) give me a black screen. This bug was already mentioned several month ago on Debian bug tracker with Lenny beta and still uncorrected for the final Lenny (with update and volatile repositories activated) ! I tried to update Xorg with Squeeze version… No success, same bug :/. Then Sid version and yes it’s working !
After that, the machine was fast and stable and KDE 3.5.9 running perfectly. Compiling KompoZer, no problem (KompoZer is not available in binary form for PowerPC). Installing and configuring a LAMP local server used for testing some PHP web pages was easy. At this moment everything was good for me. But…
Now what were my final problems ? Arf so many !
- Machintosh screens have no buttons (f*****g Apple design…) to arrange screen geometry and I didn’t find any Xorg utilities to do that… I was forced to use maximal resolution (1600×1200 on a 15 inches screen…) cause all other resolution was resulting of invisible part of the display cause it was partially out of the screen. And please don’t tell me I can resolve this by modifying xorg.conf file… I know ! But I don’t want to spend hours in tuning xorg.conf file, then testing, tuning and testing again and again until I have something acceptable ! That’s so easy to do that graphically (like SAX is doing, the OpenSuse Xorg configuration utility). Why Xorg is not providing a so useful and simple utility? My only solution was to change fonts and icons size with KDE’s control center. No real satisfaction of the result… of course !
- I tried to install a Brothers and a Canon all in one products… First I was happy cause their respective web site are providing Linux driver in Deb packages
… Arf, no Linux PPC binaries… Oh yes there’s source code for that, and Brothers providing it under GPL ! So cool. And no… Yes there’s some source code but some parts are precompiled and unavailable in source code, making errors while linking. Fortunately, there was a HP printer and an old Epson Perfection scanner. Thanks HP for giving us really and fully open source drivers. - My friend sometimes enjoy watching some internet video’s (eg. YouTube). Gnash is present but totally nonfunctional on PPC : the web browser is crashing each time Flash content is found (both Konqueror and Iceweasel). And, of course, no Linux-PPC package for Adobe’s Flash plug-in… So, we simply had to forgot about watching videos with the web browsers…
- The eject button for CD-Rom drive is on the keyboard (Argh Apple design!!!)… I didn’t find any support for this extended function on Apple’s keyboards. Good point: F13 to F15 keys are usable if you want to use it by modifying some shortcuts for example.
I spend 3 days on that machine (OK the internet connection was very slow…) and this is quite too much. PowerPC support is not always as good as on Intel platform. And all constructor and editors of binary packages (printers, scanner, flash…) just totally forgot PowerPC users (even for MacOS, I was forced to use old version of those software). The only good point is rapidity. For a 5 years old machine, I was surprised by performance (750 MHz and 512 MB of RAM), booting in less than one minute (including KDE). Compiling KompoZer (it’s bigger than Firefox) takes me only 30 min. If there was good support, Linux on PowerPC could be very good solution.

Français
Welcome to my blog ! This is my first post and you will soon discover what this blog is about…
Recent Comments