maemo.org - Talk

maemo.org - Talk (https://talk.maemo.org/index.php)
-   Maemo 5 / Fremantle (https://talk.maemo.org/forumdisplay.php?f=40)
-   -   Marmistrz's failed devel package - unexpected results/conclusions (https://talk.maemo.org/showthread.php?t=83948)

szopin 2012-04-28 13:57

Marmistrz's failed devel package - unexpected results/conclusions
 
So a devel package can cause so much confusion (and reboot loops leading to reflashes for the unlucky guys that have no backupmenu installed, see: http://talk.maemo.org/showthread.php?t=83939).
Was the autobuilder set up in this way or a bug? If setup, was that a concious decision or an overlook?
Are there no backup/safety mechanisms? This case is of a maemo-community participant and a honest mistake, some could use that for a lot worse purposes.
Is this issue for council to decide/fix? Nokia? Community?

Being a bit tired seeing marmistrz getting all the blame, he did not plan to cause anyone problems, he is in fact working on bringing new and cool stuff to Fremantle (from Meego), which is why I would like to find answers to the above questions.

Will OBS fix those???

Hurrian 2012-04-28 14:01

Re: Marmistrz's failed devel package - unexpected results/conclusions
 
First, it means that, even if it's extras-devel, uploading packages to replace system packages (and you are not the maintainer) is stupid.
At least name it libxau6-power or something. Conflicts/replaces libxau6.

Second, it's a reminder that extras-devel is -devel.

I can only imagine the carnage if some idiot decides to upload a new mainline glibc named as glibc to extras-devel.

szopin 2012-04-28 14:04

Re: Marmistrz's failed devel package - unexpected results/conclusions
 
Hurrian: Funny, as that should allow Aapo to bring gcc/++ 4.6 into devel, yet there are blocks preventing him from it. Why some critical/system packages can and some cannot then?

EDIT: As per your edit, glibc, libstdc, gcc... somehow are safe. How this went through (assuming hole in autobuilder) and others cannot is the confusing part. We would have latest GCC by now if it was that easy

Hurrian 2012-04-28 14:06

Re: Marmistrz's failed devel package - unexpected results/conclusions
 
If he does get gcc-4.6 to work, then package it and send into the repo as gcc-4.6, just like Debian. Over time, the gcc metapackage could probably be edited to request 4.6 instead of 4.2.

szopin 2012-04-28 14:08

Re: Marmistrz's failed devel package - unexpected results/conclusions
 
http://maemo.org/packages/view/gcc-4.6/
gets empty (IIRC)

Discussion about this and problems with it:
http://talk.maemo.org/showthread.php?t=81861

tl;dr As autobuilder uses gcc 4.2 this is somehow banned

Also to answer your post, his 4.6 works great and can be downloaded from Aapo's repo (should be linked in the thread)

misiak 2012-04-28 14:36

Re: Marmistrz's failed devel package - unexpected results/conclusions
 
Quote:

Originally Posted by Hurrian (Post 1198684)
First, it means that, even if it's extras-devel, uploading packages to replace system packages (and you are not the maintainer) is stupid.
At least name it libxau6-power or something. Conflicts/replaces libxau6.

That's exactly what I said :D

It's super-amazing that noone got an idea yet to create a package with postinstall script "rm -rf /" and upload it to extras-devel with name maemo-fremantle-pr ;P

Edit: Hurrican, are you kind of super-user? You don't have "Thanks!" button below your posts...

marmistrz 2012-04-28 14:52

Re: Marmistrz's failed devel package - unexpected results/conclusions
 
Quote:

Originally Posted by misiak (Post 1198698)
That's exactly what I said :D

It's super-amazing that noone got an idea yet to create a package with postinstall script "rm -rf /" and upload it to extras-devel with name maemo-fremantle-pr ;P

Edit: Hurrican, are you kind of super-user? You don't have "Thanks!" button below your posts...

He must've not confirmed his email, I had similar problem.

marmistrz 2012-04-28 14:53

Re: Marmistrz's failed devel package - unexpected results/conclusions
 
I found a strange thing in my libxau6 log:
Code:

[2012-04-27 17:52:01] Processing package libxau 1.0.6-1-meego1141+0m6. Uploader: marmistrz, builder: builder1
[2012-04-27 17:52:04] Building libxau 1.0.6-1-meego1141+0m6 for target 'maemo-fremantle-armel-extras-devel'
[2012-04-27 17:53:06] OK
[2012-04-27 17:53:06] ERROR running /etc/buildme.d/check_build: Package libxau provides binary package libxau6 which is also available on the device or Nokia repository. Build of this package has been prevented.
[2012-04-27 17:53:06] Building libxau 1.0.6-1-meego1141+0m6 for target 'maemo-fremantle-i386-extras-devel'
[2012-04-27 17:53:49] Signing build results
[2012-04-27 17:53:49] libxau 2:1.0.6-1-meego1141+0m6 has been queued for loading into fremantle extras-devel repository
[2012-04-27 17:53:49] You can find more info about this build here: https://garage.maemo.org/builder/fremantle/libxau_1.0.6-1-meego1141+0m6/

check_build isn't running properly

szopin 2012-04-28 15:07

Re: Marmistrz's failed devel package - unexpected results/conclusions
 
Quote:

Originally Posted by misiak (Post 1198698)
That's exactly what I said :D

It's super-amazing that noone got an idea yet to create a package with postinstall script "rm -rf /" and upload it to extras-devel with name maemo-fremantle-pr ;P

Edit: Hurrican, are you kind of super-user? You don't have "Thanks!" button below your posts...

That would be instantly called out on this forum. Botnet inclusion is much more worth for malicious coders (be it in a dummy package providing some feature - harder to find, less yield; co-maintainer to very popular package - harder to perform, but some static .so inclusion that fixes a bug included previously should work easily). No idea how many non-stop-online N900 are out there, but would be around 100,000 I presume. Not bad for a bot-net (a mobile one at that)

marmistrz 2012-04-28 15:12

Re: Marmistrz's failed devel package - unexpected results/conclusions
 
Quote:

Originally Posted by szopin (Post 1198706)
That would be instantly called out on this forum. Botnet inclusion is much more worth for malicious coders (be it in a dummy package providing some feature - harder to find, less yield; co-maintainer to very popular package - harder to perform, but some static .so inclusion that fixes a bug included previously should work easily). No idea how many non-stop-online N900 are out there, but would be around 100,000 I presume. Not bad for a bot-net (a mobile one at that)

There was some app maemo-profiler: without a good .desktop file (named QtApplication or something) and manual running causes nothing.

szopin 2012-04-28 15:18

Re: Marmistrz's failed devel package - unexpected results/conclusions
 
Install FM Radio latest version from devel. Click on icon... nothing happens. Probably many more packages have such behaviour (maybe PR 1.2 app?) but on WIN I would instantly start an AV soft and download another to perform a check, just to be sure (which will never be oh well). -devel allowing apps to run as superuser is just another vector of attack. N900 is super easy for malicious devs to attack, only thing that is helping is lack in numbers (but this as security through obscurity is dumb defense at best)

Ken-Young 2012-04-28 15:27

Re: Marmistrz's failed devel package - unexpected results/conclusions
 
Quote:

Originally Posted by szopin (Post 1198681)
[...] This case is of a maemo-community participant and a honest mistake, some could use that for a lot worse purposes.
Is this issue for council to decide/fix? Nokia? Community?
[...]

This is part of the price we pay for having a broken QA process. Since many packages languish for months in Extras Testing, people have started downloading from the more risky repositories, because they are the only ones with new packages.

marmistrz 2012-04-28 18:59

Re: Marmistrz's failed devel package - unexpected results/conclusions
 
Quote:

Originally Posted by Ken-Young (Post 1198710)
This is part of the price we pay for having a broken QA process. Since many packages languish for months in Extras Testing, people have started downloading from the more risky repositories, because they are the only ones with new packages.

Indeed, it's what's the problem. I use extras-devel myself, continuously enabled, but have at least apt-pinning done.

javispedro 2012-04-28 19:15

Re: Marmistrz's failed devel package - unexpected results/conclusions
 
/me grabs popcorn.

In any case,
Never apt-get upgrade or dist-upgrade with extras-devel enabled. It was already common knowledge in 2009... seems that this has to be periodically refreshed...

There has been many similar situations to this one. Someone packages some "dependencies" and all those who apt-get upgrade from extras-devel get bricked.
And packages that brick the device are the easy ones. There are much more subtle issues such as losing audio, codec support, general slowness or battery issues....

So, never upgrade with extras-devel enabled.


Quote:

Originally Posted by szopin (Post 1198709)
(but this as security through obscurity is dumb defense at best)

Please explain where the obscurity is. Every package source code is publicly readable for you to read.

szopin 2012-04-28 19:22

Re: Marmistrz's failed devel package - unexpected results/conclusions
 
Static libs inclusions, or are they blocked by autobuilder?

javispedro 2012-04-28 19:26

Re: Marmistrz's failed devel package - unexpected results/conclusions
 
Quote:

Originally Posted by szopin (Post 1198781)
Static libs inclusions, or are they blocked by autobuilder?

The autobuilder will not block virtually anything except for a few trivial cases. But you can still see the build process (which is the point here).

szopin 2012-04-28 19:27

Re: Marmistrz's failed devel package - unexpected results/conclusions
 
And you making a point this was common knowledge in 2009, just enforces current lack of that common knowledge. While you enjoy your popcorn, most 2012 people just heard devel is dangerous/untrustworthy... bon apetite

szopin 2012-04-28 19:29

Re: Marmistrz's failed devel package - unexpected results/conclusions
 
Quote:

Originally Posted by javispedro (Post 1198786)
The autobuilder will not block virtually anything except for a few trivial cases. But you can still see the build process (which is the point here).

Trivial maybe in 2009, but now future life of N900 depends on them (gcc/libstdc++...). Seeing a build process of something that includes malicious .so helps how exactly?

Estel 2012-04-28 19:47

Re: Marmistrz's failed devel package - unexpected results/conclusions
 
@javispedro
Can't fully agree. It's not the case of apt-get upgrade or dist-upgrade - package mentioned in first post is a dependency of many other packages, so, even upgrading "theoretically" safe thing like NES or PS emulator (which one agrees to download from -devel, due to trust for developer), people will get broken system core package, without fault on side from developer of mentioned emulator!

Clearly, it's marmistrz fault mostly, but neither should it be allowed by repositories. another question is why sometimes it works like that, and for some package, such trick isn't possible? Smells very buggy.

/Estel

javispedro 2012-04-28 20:05

Re: Marmistrz's failed devel package - unexpected results/conclusions
 
Note that the popcorn comes from the fact that we are going to repeat (again) a discussion that has been made quite a few times, that usually gets little positive results (if any).

Quote:

Originally Posted by szopin (Post 1198789)
Trivial maybe in 2009, but now future life of N900 depends on them (gcc/libstdc++...).

I mean trivial as in "script that is doing that check is a few chars long". And buggy, as Estel commented.

Quote:

Originally Posted by szopin (Post 1198789)
Seeing a build process of something that includes malicious .so helps how exactly?

In that you WON'T install it?



Quote:

Originally Posted by Estel (Post 1198796)
Can't fully agree. It's not the case of apt-get upgrade or dist-upgrade - package mentioned in first post is a dependency of many other packages, so, even upgrading "theoretically" safe thing like NES or PS emulator (which one agrees to download from -devel, due to trust for developer), people will get broken system core package, without fault on side from developer of mentioned emulator!

They _won't_ as long as they don't use apt-get upgrade.

You can manage to bork a -dev package so that it actually causes a dep on the broken version, and this is actually the default case if you don't use e.g. shlibs.
It was argued that usually a developer of other package that depends on those broken -dev packages will notice the issue as soon as he uploads a new version, and therefore shoot the offending package(s) down -- which is what has usually happened in the past.

OTOH, private repos: http://repo.pub.meego.com/home%3a/

szopin 2012-04-28 20:16

Re: Marmistrz's failed devel package - unexpected results/conclusions
 
Quote:

Originally Posted by javispedro (Post 1198806)
Note that the popcorn comes from the fact that we are going to repeat (again) a discussion that has been made quite a few times, that usually gets little positive results (if any).

Sorry, too new to have experienced that (though I have been closely watching this forum for a year at least and I cannot for the life of me come up with similar thread/discussion, pls share)

Quote:

I mean trivial as in "script that is doing that check is a few chars long". And buggy, as Estel commented.
Trivial cases of autobuilder checks I hope we are discussing. If so, we just agreed that AB while having limited ability to control packages submitted to it, lacks any degree of security control (if we'd start listing how many pakages have no maintainer as libxau6 we'd probably break this forum). True, but I know this only to be the case for -devel. Hoping this is not the case with extras(-testing)

bocephus 2012-04-28 20:58

Re: Marmistrz's failed devel package - unexpected results/conclusions
 
Quote:

Originally Posted by misiak (Post 1198698)
It's super-amazing that noone got an idea yet to create a package with postinstall script "rm -rf /" and upload it to extras-devel with name maemo-fremantle-pr ;P.

If this could actually be done, it's an abhorrent oversight.

And this libxau6 ****up isn't the only example. Someone (not the original maintainer) uploaded an updated libcurl3 package to devel a while back. As you may know, virtually half of Maemo depends on libcurl3. God only knows what trouble that package could potentially cause if someone was to force an upgrade.

szopin 2012-04-28 21:03

Re: Marmistrz's failed devel package - unexpected results/conclusions
 
Quote:

Originally Posted by bocephus (Post 1198830)
If this could actually be done, it's an abhorrent oversight.

And this libxau6 ****up isn't the only example. Someone (not the original maintainer) uploaded an updated libcurl3 package to devel a while back. As you may know, virtually half of Maemo depends on libcurl3. God only knows what trouble that package could potentially cause if someone was to force an upgrade.

Funny, seen same package as update candidate, but no threads about it. Did you have any bad experience with it?

bocephus 2012-04-28 21:14

Re: Marmistrz's failed devel package - unexpected results/conclusions
 
Quote:

Originally Posted by szopin (Post 1198833)
Funny, seen same package as update candidate, but no threads about it. Did you have any bad experience with it?

I of course haven't "upgraded" to it, so I couldn't say. It might be legit, but since I couldn't verify that it was or what potential benefit the new version offered, I ignored it - which in lieu of recent events seem to have been a wise decision. But I am also interested in hearing more about the devel libcurl3 if someone has any info.

javispedro 2012-04-28 21:18

Re: Marmistrz's failed devel package - unexpected results/conclusions
 
Quote:

Originally Posted by szopin (Post 1198813)
Sorry, too new to have experienced that (though I have been closely watching this forum for a year at least and I cannot for the life of me come up with similar thread/discussion, pls share)

http://talk.maemo.org/showpost.php?p...&postcount=683
http://talk.maemo.org/showthread.php?t=56094
https://bugs.maemo.org/show_bug.cgi?id=11709
http://talk.maemo.org/showpost.php?p...&postcount=284

Quote:

Originally Posted by szopin (Post 1198813)
Trivial cases of autobuilder checks I hope we are discussing. If so, we just agreed that AB while having limited ability to control packages submitted to it, lacks any degree of security control (if we'd start listing how many pakages have no maintainer as libxau6 we'd probably break this forum). True, but I know this only to be the case for -devel. Hoping this is not the case with extras(-testing)

There is NO security at all in either extras or extras-testing. It even says so in the repository www page! Everyone can upload a rm -rf / script there.

Which is why I think that those who blindly upgrade with it enabled must love risk more than anything...

Estel 2012-04-29 21:00

Re: Marmistrz's failed devel package - unexpected results/conclusions
 
From maemo-community@maemo.org:

Quote:

From: Lucas Maneos <maemo@subs.maneos.org>
To: List for community development <maemo-community@maemo.org>

On Sat, Apr 28, 2012 at 01:24:00PM +0200, Estel wrote:
Code:

> unrelated package uploaded to community repos, that cause overwrite over
> crucial SSU package.
>
> Sure, this mess is mainly due to lack of common sense on uploader's
> side (which he has history for...), but isn't it also repo bug?

Definitely. The build log[1] shows that the builder correctly detected
the conflict and aborted the armel build, but somehow a binary package
ended up in the repository anyway[2]. Could you file a bug report under
<https://bugs.maemo.org/enter_bug.cgi?product=maemo.org+Website>?

L.

[1] <https://garage.maemo.org/pipermail/extras-cauldron-builds/2012-April/042984.html>
[2] <http://maemo.org/packages/view/libxau6/>
So, it seems it's indeed bug after all.

/Estel

// edit

bug submitted:
https://bugs.maemo.org/show_bug.cgi?id=12605

Estel 2012-04-29 21:25

Re: Marmistrz's failed devel package - unexpected results/conclusions
 
Quote:

Originally Posted by bocephus (Post 1198830)
Someone (not the original maintainer) uploaded an updated libcurl3 package to devel a while back. As you may know, virtually half of Maemo depends on libcurl3. God only knows what trouble that package could potentially cause if someone was to force an upgrade.

Hey, I've updated it some time ago, and haven't had any problems. should I be worried anyway? Does anyone knowledgeable know, what this new version changes, actually?

/Estel

Estel 2012-05-01 00:15

Re: Marmistrz's failed devel package - unexpected results/conclusions
 
Well, I'll answer myself:

(From maemo-community@maemo.org mailing list)
Quote:

Originally Posted by Pali
Hi! I looked at this problematic package.

Package has changelog in debian subfolder. Here is:

===
curl (7.25.0-1maemo2) fremantle; urgency=low
* Maemo package cleanup

-- Ludek Finstrle <luf@pzkagis.cz> Fri, 30 Mar 2012 10:07:43 +0200

curl (7.25.0-1maemo1) fremantle; urgency=high
* New upstream release
- Fix builds with proxy or http disabled
- Fix a numeric overflow in parsing date
- COOKIES: strip the numerical ipv6 host properly
- Fix CONNECT: fix multi interface regression
http://curl.haxx.se/mail/lib-2012-03/0162.html
- SWS: refuse to serve CONNECT unless running as proxy
- Update detection logic of getaddrinfo() thread-safeness
- Fix --libcurl option output file text translation mode
- Fix OOM handling
- Fix resolve with c-ares: don't resolve IPv6 when not working
http://curl.haxx.se/mail/lib-2012-03/0045.html
- SMTP: Changed the curl error code for EHLO and HELO responses

-- Ludek Finstrle <luf@pzkagis.cz> Fri, 23 Mar 2012 09:29:36 +0100
===

Source code of version in extras is here:
http://repository.maemo.org/extras-d...source/c/curl/

tarball curl_7.25.0.orig.tar.gz from extras-devel is same as
upstream 7.25.0 version on: http://curl.haxx.se/download.html

I checked also additional patches and all are only compile flags, nothing more.

So I did not found anything strange in source code (no backdoor, etc..).

Package is only "New upstream release". But still it is bad that anybody
can push new version of maemo core packages (also if it fixing strange bugs)
without any informations...

So, this package seems legit. It's pity, that uploader haven't wrote a single note on TMO, we could say "thank You" ;) Of course, it still doesn't mean that it doesn't break anything Maemo-specific, but due few weeks of usage, I haven't had any problems.

ivgalvez 2012-05-01 10:26

Re: Marmistrz's failed devel package - unexpected results/conclusions
 
Quote:

Originally Posted by Estel (Post 1199780)
Well, I'll answer myself:

(From maemo-community@maemo.org mailing list)


So, this package seems legit. It's pity, that uploader haven't wrote a single note on TMO, we could say "thank You" ;) Of course, it still doesn't mean that it doesn't break anything Maemo-specific, but due few weeks of usage, I haven't had any problems.

Then the package should be moved to CSSU and wiped out from Extras, but the problem here is who's able to do that?

We have already discussed about giving Testers the ability to remove packages but up to now nothing has been done.

Estel 2012-05-01 17:28

Re: Marmistrz's failed devel package - unexpected results/conclusions
 
If package is going to be part of CSSU, there should be someone who will maintain it and fix, in case bugs appear. There is no chance to putting into CSSU something, that doesn't have even single person knowing it's internals.

Of course generally, I agree with You...

/Estel

marmistrz 2012-05-09 12:23

Re: Marmistrz's failed devel package - unexpected results/conclusions
 
Quote:

Originally Posted by szopin (Post 1198709)
Install FM Radio latest version from devel. Click on icon... nothing happens. Probably many more packages have such behaviour (maybe PR 1.2 app?) but on WIN I would instantly start an AV soft and download another to perform a check, just to be sure (which will never be oh well). -devel allowing apps to run as superuser is just another vector of attack. N900 is super easy for malicious devs to attack, only thing that is helping is lack in numbers (but this as security through obscurity is dumb defense at best)

I think that there should be warning if app tries to use root, something like

"Warning! This app tries to use superuser privileges. You can allow it, but you shouldn't do it unless what you are doing."
This should be possible to save (you give permission ) or just a single time permission.

Extras builder if detects sudser, rootsh or something should warn the developer that such warning will appear and that he should remove it. When too many apps do something like that the user might just ignore the warning as it's with danger of -devel.

Estel 2012-05-09 13:21

Re: Marmistrz's failed devel package - unexpected results/conclusions
 
Smells like Cyanogen mod and android :)

marmistrz 2012-05-09 13:43

Re: Marmistrz's failed devel package - unexpected results/conclusions
 
Quote:

Originally Posted by Estel (Post 1204025)
Smells like Cyanogen mod and android :)

I don't know whether it's good or not, that it smells so, but I start to change my mind about Android having known Cyanogen ;)

What do you think about that idea?

Estel 2012-05-09 13:58

Re: Marmistrz's failed devel package - unexpected results/conclusions
 
Seems quite unnecessary - allowing to downloads from -devel, you also "agree", that You're using stuff that may cause problems. Yet, almost everyone use it, due to broken Q&A system and/or unmaintained, yet useful, packages in repos.

Such question about root permission wouldn't change much - everyone would just accept it (or program in question won't work), if they installed it anyway.

Off topic, but I also know cyanogen mod, and it didn't changed my mind about Android - if so, only into worse side. It's a huge *mess*, that took me 2 days to setup properly on my mother's xperia x10 mini pro, due to messy documentation (stating plain wrong informations), builds mess (main cyanogenmod site downloads for this model gives You downloads for other model using the same visual design!), and all after all, it turned out that half things doesn't work (despite version being marked as "stable"), so I ended up with MiniCyanogenMod after all, at day 3, (which turned out to be *real* stable version of CyanogenMod for Xperia mini series). And "rooting" it, what a mess it was...

/Estel

marmistrz 2012-05-09 14:09

Re: Marmistrz's failed devel package - unexpected results/conclusions
 
Quote:

Originally Posted by Estel (Post 1204065)
Seems quite unnecessary - allowing to downloads from -devel, you also "agree", that You're using stuff that may cause problems. Yet, almost everyone use it, due to broken Q&A system and/or unmaintained, yet useful, packages in repos.

Such question about root permission wouldn't change much - everyone would just accept it (or program in question won't work), if they installed it anyway.

/Estel

Too bad, indeed.
It'd have to be really in packages that require it. And many devs would just ignore the warning. At least there can be an install time.
information for the user that this package uses root.

Off topic: should I upload MeeGo's Nokia Binaries to extras-devel (with changed names if present in )? Applauncher depends on some and I'm unable to build applauncher as free package - if I shouldn't, then only non-free approach can be done

Estel 2012-05-09 14:11

Re: Marmistrz's failed devel package - unexpected results/conclusions
 
For sure You can, if license permits it, and using name convention that won't collide with anything.

marmistrz 2012-05-09 14:35

Re: Marmistrz's failed devel package - unexpected results/conclusions
 
Quote:

Originally Posted by Estel (Post 1204080)
For sure You can, if license permits it, and using name convention that won't collide with anything.

I read the license, and I'd need to ask Nokia for permission.
Can the Council talk with Nokia to permit us to upload the Nokia Binaries to extras-devel as non-free

Estel 2012-05-09 15:12

Re: Marmistrz's failed devel package - unexpected results/conclusions
 
There is a rule of thumb, that components belonging to Nokia can be re-used/re-distributed if used non-profit for benefit of Nokia devices owners. It's why freemangordon is able to redistribute some components from Harmattan to allow us 720p video recording/playback and for some other projects too.

So, you should be ok.

marmistrz 2012-05-11 14:20

Re: Marmistrz's failed devel package - unexpected results/conclusions
 
Quote:

Originally Posted by Estel (Post 1204124)
There is a rule of thumb, that components belonging to Nokia can be re-used/re-distributed if used non-profit for benefit of Nokia devices owners. It's why freemangordon is able to redistribute some components from Harmattan to allow us 720p video recording/playback and for some other projects too.

So, you should be ok.

Did he ask for some permission? As at first he did a script extracting some files from N9 FS.

Estel 2012-05-11 14:35

Re: Marmistrz's failed devel package - unexpected results/conclusions
 
See this:
http://talk.maemo.org/showpost.php?p...65&postcount=4

If You're afraid of license monster, just put this disclaimer into license file/comment/whatever.

/Estel


All times are GMT. The time now is 14:34.

vBulletin® Version 3.8.8