Twinkle, my favourite SIP client, seems no longer developed, has been accused of "bitrotting" and even dropped from some distributions. While I don't believe in bits actually rotting, there is one pressing issue: twinkle uses Qt3.

While there are some patches reportedly allowing to build twinkle with Qt4, e.g. here, all seem to use a Qt3 compatibility layer of Qt4 which has been dropped in Qt5, AFAIK, so that those won't be very future-proof either.

The goal is to replace uses of obsolete Qt3 API and replace them with native Qt5 features so that twinkle can survive few more years.

Looking for hackers with the skills:

c++ qt

This project is part of:

Hack Week 12

Activity

  • over 10 years ago: mkubecek added keyword "c++" to this project.
  • over 10 years ago: mkubecek added keyword "qt" to this project.
  • over 10 years ago: mkubecek started this project.
  • over 10 years ago: mkubecek originated this project.

  • Comments

    • mkubecek
      over 10 years ago by mkubecek | Reply

      End-of-hackweek status: twinkle now builds against Qt4 (but only with KDE support disabled for now), can be started, make a call, hang up and quit without crashing (and some more things, of course). What works:

      • cleaned up some mess in the build system
      • converted 5 out of 25 forms to native Qt4 classes
      • fixed a few bugs found on the way (that weren't seen with Qt3)

      What does not:

      • most forms still use Qt3Support compatibility module
      • once these are converted, try building against Qt5
      • only builds with --without-kde for now
      • "UI locking" model is broken; removed most broken parts, still a lot to do
      • more cleanup definitely needed
      • no work on IPv6 support yet

    • mkubecek
      almost 10 years ago by mkubecek | Reply

      An update: few months after the hackweek, I was contacted by Luboš Doležel who offered help. In a few days, he was able to finish the conversion, reworked the build system and implemented some more improvements.

      A new version 1.9.0 has been released in July 2015 and is available in Tumbleweed and Leap 42.1 (13.1 and 13.2 packages can be found in home:mkubecek:fun OBS project

    Similar Projects

    Port some classic game to Linux by MDoucha

    Let's pick some old classic game, reverse engineer the data formats and game rules and write an open source engine for it from scratch. Some games from 1990s are simple enough that we could have a playable prototype by the end of the week.

    Write which games you'd like to hack on in the comments. Don't forget to check e.g. on Open Source Game Clones, Github and SourceForge whether the game is ported already.

    Hack Week 25 - TBD

    It's time to pick a game for the upcoming Hack Week. Discuss in the comments what game you'd like to hack!

    Hack Week 24 - Master of Orion II: Battle at Antares & Chaos Overlords

    Work on Master of Orion II continues but we can hack more than one game. Chaos Overlords is a dystopian, lighthearted, cyberpunk turn-based strategy game originally released in 1996 for Windows 95 and Mac OS. The player takes on the role of a Chaos Overlord, attempting to control a city. Gameplay involves hiring mercenary gangs and deploying them on an 8-by-8 grid of city sectors to generate income, occupy sectors and take over the city.

    How to ~~install & play~~ observe the decompilation progress:

    • Clone the Git repository
    • A playable reimplementation does not exist yet, but when it does, it will be linked in the repository mentioned above.

    Further work needed:

    • Analyze the remaining unknown data structures, most of which are related to the AI.
    • Decompile the AI completely. The strong AI is part of the appeal of the game. It cannot be left out.
    • Reimplement the game.

    Hack Week 20, 21, 22 & 23 - Master of Orion II: Battle at Antares

    Master of Orion II is one of the greatest turn-based 4X games of the 1990s. Explore the galaxy, colonize planets, research new technologies, fight space monsters and alien empires and in the end, become the ruler of the galaxy one way or another.

    How to install & play:

    • Clone the Git repository
    • Run ./bootstrap; ./configure; make && make install
    • Copy all *.LBX files from the original Master of Orion II to the installation data directory (/usr/local/share/openorion2 by default)
    • Run openorion2

    Further work needed:

    • Analyze the rest of the original savegame format and a few remaining data files.
    • Implement most of the game. The open source engine currently supports only loading saved games from the original version and viewing the galaxy map, fleet management and list of known planets.

    Hack Week 19 - Signus: The Artifact Wars

    Signus is a Czech turn-based strategy game similar to Panzer General or Battle Isle series. Originally published in 1998 and open-sourced by the original developers in 2003.

    How to install & play:

    • Clone the Git repository
    • Run ./bootstrap; ./configure; make && make install in both signus and signus-data directories.
    • Run signus

    Further work needed:


    Create an Android app for Syncthing as part of the Syncthing Tray project by mkittler

    Description

    There's already an app but code/features already in Syncthing Tray could be reused to create a nicer app with additional features like managing ignore patterns more easily. The additional UI code for the app could then in turn be re-used by other parts of Syncthing Tray, e.g. to implement further steps in the wizard as requested by some users. This way one "UI wrapper codebase" could serve GNU/Linux, Windows and Android (and in theory MacOS) at the same time which is kind of neat.

    Goals

    • DONE: Learn more about development for Android and development of UIs with Qt Quick
    • DONE: Create an experimental app reusing as much existing Syncthing Tray code as possible
    • DONE: Build Syncthing as a library also for Android and use it in the app (already done but needs further testing and integration with the rest of the app configuration)
    • DONE: Update the Syncthing Tray website, documentation
    • DONE: Extend the app so it has at least a start page and an import
    • Update forum thread
    • DONE: Upload an experimental build on GitHub
    • Extend the Syncthing API to download single files on demand (instead of having to sync the whole directory or use ignore patterns)
    • Bring back parts of the newly developed mobile UI back to Syncthing Tray on the desktop to fully benefit from the cross-platform development
      • Add UI to add/edit folders and devices in desktop tray app
      • Add UI to show out-of-sync items in desktop tray app
      • Create an alternative "AppWindow" tailored for desktop platforms reusing UI components developed for the mobile app

    Resources

    • Android SDK/NDK and emulator
    • Qt Quick