This list should be transfered to the ticket system which would make a lot more transparent and easier to work with.

Place to make a list of things that need correcting before v2.0 ships.

Fixed bugs should be moved to VersionTwentyThreeCleanupDone.


  • In the Windows version, if forking is enabled then POPFile 0.23.0(CVS) will crash when trying to access a mail server. (In the Windows versions of 0.22.x, if forking is enabled then POPFile will crash when trying to use SSL to access a mail server)
  • Did we solve the Windows shutdown problems. See post. There were two likely related problems. PF fails to exit when Windows shutsdown requiring forced exit. The other is when using PF in the console it does not shutdown correctly when the console is closed, it dies immediatly. Sounds like it is not catching the shutdown signal. I have not checked to see if it is still doing this. Last posts I found on the topic were not long before 0.22.2 was released.
    • I don't consider the second case to be a bug. Windows can either ask a program to shutdown or it can terminate the program. If you close the console window I think Windows _terminates_ POPFile instead of shutting it down. Termination can result in the loss of unsaved data (or worse) and should be considered a last resort (Microsoft says “TerminateProcess is abrupt, messy, and best avoided whenever possible”). If the Windows installer shortcuts are used to start POPFile you can use the Message Capture utility instead of an ordinary console window (make a copy of msgcapture.exe, call it pfimsgcapture.exe and the Message Capture utility will be used whenever you enable console mode).
      • Seems you are probably right about closing the console window.
    • PF is a bit slow to shutdown even when nothing is accessing it. If we can improve that maybe this won't be such a problem.
      • POPFile startup and shutdown times seem to be affected by the database size. On my system POPFile shutdown (from idle state) takes about 1 sec with a 1 MB database and just over 15 sec with a huge 83 MB one.
      • Are we doing anything that needs DB access during shutdown like DB cleanup or backup?
  • Using the Windows version with trayicon If a default skin template is missing PF will freeze with the message HTML::Template→new() : Cannot open included file common-bottom.thtml : file not found. at C:/Program Files/POPFile22rep/lib/HTML/ line 2223. PF should die or do something other than freeze it was really wierd to figure out. Maybe we should have an internal Error page for cases when something prevents the pages from working.
  • If_Javascript_OK and Language_If_RTL are the same.
  • POPFile crashes at startup when Crypt::CBC v2.17, v2.18 or v2.19 is used (v2.15 is ok)

Test TODOs

  • Check whether users' history messages are cleaned up correctly when they are expired.
  • Check if the language configuration is correctly upgraded to the new version.

Multi-user features

  • Copy magnets when cloning user?
  • Copy corpus data when cloning user (optional)
  • Do not copy administrator flag (GLOBAL_can_admin) when cloning user? (optional)
  • Standard (non-admin) users need 'Advanced' page?

Test suite

  • Tests need to be updated for dynamic module loading (passing of POPFile::Loader via Module→loader()).
  • Tests need updating for new error/status UI interface (in progress: sschinke)
  • Tests for SSL and Socks would be a good idea.


  • The popfile.exe, popfileb.exe, popfilef.exe, popfileib.exe, popfileif.exe and popfile-service.exe programs need to be rebuilt (the current 'hacking' versions of popfile.exe, popfileb.exe and popfilef.exe do not work with the current CVS version)
  • Will 0.23.0 stay with SQLite 2.x or switch to SQLite 3.x? If we stay with SQLite 2.x will we upgrade to and the latest SQLite 2.8.15 library?
  • POPFile does not work properly if the values in POPFILE_ROOT and POPFILE_USER contain spaces. Will this still be true for the 0.23.0 release?
  • What would it take to make it work in case of env vars with spaces? Quote the values before using them? – Manni
  • Does quoting names work everywhere? On Linux you normally escape the spaces: File\ Name. Would that work on Windows? – Joe
  • I don't know. Perl itself is supposed to take care of stuff like that. But I once noticed that it didn't do so. Will have to find or recreate that code. – Manni
  • The first time I started PF with the new login code the login page was unstlyed. After the first login the stylesheet must get cached. – Joe
  • Crypt::Random was pretty large (1185100 bytes) when I dowloaded it from PPM. Is that going to increase the size of the Windows installer a lot? Are there any smaller alternatives?
  • Simply adding the extra Perl files would make the installer about 600 KB bigger than the 0.22.2 one (i.e. just under 13% bigger) - the problem is not Crypt::Random, it is Math::Pari (which the tiny Crypt::Random uses). However the Windows installer size has not increased because the old out-of-date manual is no longer included (the current CVS installer is about 500 KB smaller than that for 0.22.2 but it may not stay this size for long!).
  • Crypt::Random also refuses to cooperate with our module checking system in Do we really need 'real' random strings for the encryption of the cookie?
  • If an existing installation is upgraded only one set of 'User Data' will be upgraded to the new 0.23.0 format (to become the admin user's database). John thinks someone needs to write a little function for translating another set of user data in to a new POPFile user (he doesn't have time to write that code himself).
  • Make sure Jim's new Bucket stats code works right. Make sure the presentation makes sense to users.
    • Manni plans to go though the code and put it back in.
  • The user listed in the footer is only displaying “user”. In Single User mode, this should be like before displaying the last POP access. For multiuser, it should display the logged in user.

UI Stuff

These are things that mainly concern the UI. Much of what is left needs Perl developer attention since it can't be fixed only with templates. Some of these are minor visual things that don't prevent POPFile from working, but as we come closer to 1.0 we need the best quality UI we can come up with. A bunch of minor visual bugs can lead new users and reviewers to see the project as low quality.

  • (22Cleanup) Undo does not display a “Changed to ___” classification or any type of message. We had a “confirmation” message in 0.21. Its not absolutly necessary since the UI does show the change, but it would be nice for the user to see that the undo happened.
  • (22Cleanup) There appear to be an odd character (probably tab or newline) between some of the addresses in the To and CC title hover when there are many addresses. It is not on all addresses. Its not just one odd email client. There must be some way for Perl to strip tabs. It displays worst in Mozilla browsers. See example.
  • (22Cleanup) Magnet title (hover text) text should display magnet type like “Subject: sourceforge” instead of just magnet text “sourceforge”.
  • (22Cleanup) The skins dropdown will display any file that is in the skins directory as a skin. For most users its not going to be a problem at all, but it should only show directories (if possible). I just happen to have been using it for temporary skin files and noticed.
  • Config options on Administration and Users page should change to checkbox options instead of the confusing YES/NO buttons.
  • Add magnet warning text as discussed in UI forum - mostly done, just finalize placement. So far I am not really happy with the look of the one on the Magnets page. It just doesn't seem to fit with the rest of the page. We already have a lot of other text there so it seems odd that this text is different.
  • Need to finish adding tooltips (menu, history, bucket, magnet, configbar, and footer are done).
  • Test handheld and print stylesheets. Decide if they should be included in 0.23.
  • database_sqlite_tweaks is still shown as a “meaningless” number (I thought hex was going to be used to make it easier to see which flags are set)
  • Change style for tabs in default skin to make them less spread out in multiuser mode. 3 tabs spread out across the entire screen is strange.

Probably Later

  • Do something about trayicon freezes. Likely a seperate program not using PDK.
  • Only calculate colordistance on visual parts of the page (not pseudowords). Sam's post
  • Add access keys (possibly defined by some delimeter in the existing Language strings).

Required Documentation Changes

  • 0.23 will need additional perl modules: Digest::SHA, Crypt::Random, Crypt::CBC, Crypt::Blowfish, Class::Loader, Math::Pari, Image::Info, Crypt::OpenSSL::Random
  • When using ActivePerl's PPM, Class::Loader and Math::Pari may already get installed when installing Crypt::Random.

Installing the Perl modules again on another computer I ran into more trouble. I could not install Crypt::Blowfish because its not in the repository. According to AS they legally can't distribute it and a bunch of other encrpytion stuff including Crypt::SSLeay. To get them you need to use a different repository.

The instructions on the SSL page to do the same for SSL seem outdated. Don't we now include the SSL installer in the zip (Yes, we do. The SSL installer functions will be incorporated into the Windows installer for 0.23.0.) And the instructions for installing from a different repository are for Perl 5.6, they don't work on Perl 5.8. The same applies to getting Crypt::Blowfish:

For Perl 5.8 PPM:

For Perl 5.6 PPM:

To permanantly add another repository (on Perl 5.8) you can use:

Setting up Perl and PF on yet another computer, I have found things have changed since this section was last updated. With the AS repository, I cannot find Crypt::Random at all anymore.

Release notes “BACK UP YOUR OLD INSTALLATION” section needs to include backing up of user directory. See

devel/versiontwentythreecleanup.txt · Last modified: 2013/08/27 05:44 by texasfett

Should you find anything in the documentation that is incomplete, unclear, outdated or just plain wrong, please let us know and leave a note in the Documentation Forum.

Recent changes RSS feed Donate Driven by DokuWiki
The content of this wiki is protected by the GNU Fee Documentation License