Beta Comix 4.0.4


mindlord said:
Depending on your desktop there are some powerful tools on sourceforge for converting cbrs to pdfs, but I'm sure it's more hassle than it's worth. :p

In the time it would take me to figure out, you could code me my own personalized comic book reader!


mindlord said:
Thanks for testing. I'll get it working once I get my Pandora. I promise. :)

Cool cool :D


Edit: I tried out what you suggested Tripmonkey. I can extract and view the individual pages in Evince, but it's....how do I say this.......horrible!
 
Last edited by a moderator:
What kind of files are in the archive you are trying to view? JPEG, PNG? Maybe python doesn't support them normally and you need to add a python library to the pnd.
 
DasFool said:
What kind of files are in the archive you are trying to view? JPEG, PNG? Maybe python doesn't support them normally and you need to add a python library to the pnd.


Yeah they're all JPEG's.
 
Last edited by a moderator:
Okay I set aside some time today to look into this, and here's what I discovered.

Python Image - is in Zaxxon, but Python Imaging Library is not. PIL is in the Angstrom Repo, so I installed it to my NAND.

I've got all the dependancies met now, and it actually tries to run, but there is a problem. I'm not great at Python, but I understand it to do some basic debugging. I'm pretty sure I can get this to run, but I'm not sure how to handle a Python dependency like this. It's not like I can just add LDLIBRARY="/path/to/PIL/" to the shell script and have it look for PIL in some other directory (or can I?)
 
mindlord said:
Okay I set aside some time today to look into this, and here's what I discovered.

Python Image - is in Zaxxon, but Python Imaging Library is not. PIL is in the Angstrom Repo, so I installed it to my NAND.

I've got all the dependancies met now, and it actually tries to run, but there is a problem. I'm not great at Python, but I understand it to do some basic debugging. I'm pretty sure I can get this to run, but I'm not sure how to handle a Python dependency like this. It's not like I can just add LDLIBRARY="/path/to/PIL/" to the shell script and have it look for PIL in some other directory (or can I?)
Python uses the sys.path variable to search for imports. If all the Python files lie in one folder, you could probably just put the library there as well, as the directory of the running script is usually in sys.path.
Otherwise you could make a folder for the extra libraries and set the PYTHONPATH environment variable to point to it.
 
Last edited by a moderator:
Good news, I've made this to run. There are several missing Python libraries. The current PND will run if you do the following.
Code:
sudo opkg update
sudo opkg install python-imaging python-zlib python-compression python-subprocess python-fcntl

I will attept to combine the required packages into the PND to keep you from having to modify your NAND, but if you're dying to get your .CBZ on, you can. The Angstrom repos don't seem to have the unrar utility available, so I am unsure if .CBR files will work.
 
mindlord said:
Good news, I've made this to run. There are several missing Python libraries. The current PND will run if you do the following.
Code:
sudo opkg update
sudo opkg install python-imaging python-zlib python-compression python-subprocess python-fcntl

I will attept to combine the required packages into the PND to keep you from having to modify your NAND, but if you're dying to get your .CBZ on, you can. The Angstrom repos don't seem to have the unrar utility available, so I am unsure if .CBR files will work.
I've made a pnd of Comix 4.0.4 tuned to the Pandora display. I've also enabled the transform keep option which is very useful for comics. unrar is also included.
Can't get it to run from the pnd. Anyone know why?
 
Last edited by a moderator:
Here's a copy of my pxml.xml that works, perhaps it will give a clue.

Code:
<?xml version="1.0" encoding="UTF-8"?>
<!--This is an example PXML file for an application named "Exaile", to
    demonstrate how a PXML file is supposed to be structured. Feel free to
    replace all of the field contents with your own data, and to remove these
    comments afterwards, in order to get a working and valid PXML file.
 
    Note that this file is MINIMAL aka. this is the information you SHOULD
    specify if you're well-behaved (all of it isn't NEEDED per-se, though) -->
 
<!--
  PXML tag
  Indicates the root node of a PXML file.
 
  Attributes:
    xmlns:
      Identifies the namespace of this PXML file. Potential future PXML
      specifications will use a different name space.
  -->
<PXML xmlns="http://openpandora.org/namespaces/PXML">
  <!--
    application tag
    Declares a new application that this PND package provides. Most PND
    packages will only have one application entry, and it is discouraged to
    have too many application entries in one PND file, since a PND file is
    inseparable, i.e. an user cannot upgrade one app and leave another be if
    they share the same PND file.
 
    Attributes:
      id:
        Identifies the application in application enumerations.
        This has to be a string that is unique to the package series; there
        must not be two packages with entirely different purposes and
        origins that share the same ID.
 
        tl;dr: Choose an id like you would choose a package name on the
               Linux Desktop.
 
        Some things you have to consider when choosing an id:
          - If you release new versions of your application, they should have
            the same id as previous versions. Packages with different id's
            are not considered to be related at all, while packages with
            identical id's are considered to be of the same kind.
          - Your id should not be too complex. You should choose something
            that is unique to your application, and not something globally
            unique.
          - The application id will be used by package managers and the like.
            So, choose something that you expect to be typed in as:
            "installtool install %id%"
 
        If you are publishing an application that you created yourself,
        and that you don't expect anyone else to also publish, these
        would be GOOD id's:
          - "exaile"
          - "myapp"
          - "kdemod-extras-quassel"
          - "awesome-music-player"
 
        These would be BAD id's:
          - "Exaile" - This is an user-adapted name and not a machine-
            adapted name
          - "Exaile - A music player that rocks" - This contains spaces and
            might therefore be mistreated by shell scripts and the like.
          - "exaile-1.0" - This contains version information; you should
            put this information in the version tag below instead.
          - "exaile-written-by-foobar-in-the-year-of-the-lord-two-thousand-and-ten-and-given-to-yall-for-free"
            This is too long.
          - "ae4c8bc112cafedd" - This doesn't identify *the application*, but
            is just a random unique identifier.
        These would be GOOD id's if you PORTED or MODDED an existing
        application:
          - "exaile-dflemstr" - (port) The app was ported by dflemstr
          - "exaile-nox" - (mod) The app runs without X
          - "exaile-player" - (port) Only a part of the application was
            ported
          - "exaile-pure" - (mod) Substantial mods were carried through, and
            a rebranding was needed.
      appdata:
        Specifies a name for a data store for your application
        This is where all your writes to CWD will end up when you run
        your application. You should choose an user friendly name, but
        *not* an user-adapted name (think about localization and
        management).
        Good alternatives:
          - "exaile"
          - "exaile-1" - If you intend to release newer versions that use
            a different storage format.
          - "exaile-dev" - If you want an user to be able to use a dev
            version of your app, and a stable version of your app
            simultaneously.
    -->
  <application id="comix" appdata="comix">
    <!--
      title tag(s)
      Defines a human-readable title for the application in a specified locale.
      You MUST specify a title with the language "en_US"; other localizations
      are optional, but it is recommended to add one for generic,
      not-only-american english ("en"). Titles and descriptions should also be
      in pairs (you should not translate a title and omit a translation for a
      description).
 
      Attributes:
        lang:
          Specifies the language of the title.
 
          This is made up of two parts:
            - The language part. This code is the lower-case, two-letter
              code as defined by ISO-639.
            - OPTIONAL: The country part. This code is the upper-case,
              two-letter code as defined by ISO-3166, with an underscore
              as the prefix.
      -->
    <title lang="en_US">Comix - Comicbook Reader</title>
    <title lang="de">Comix - Comicbook Leser</title>
 
    <!--
      description tag(s)
      Defines a human-readable description for your application in a specified
      locale. The same rules apply to this element, as to title elements. Note
      that we by description don't mean page-long texts; the recommended length
      for a description is 128 characters, but certain implementations support
      up to 1024 or 4096 characters. More than that is absolutely not
      recommended. Also, please remember that newlines are ignored in
      descriptions according to the XML standard, but that spaces are
      significant. XML escaping applies for the characters less-than,
      greater-than and ampersand (&lt; &gt; &amp; respectively).
 
      Attributes:
        lang:
          See above.
      -->
    <description lang="en_US">A comic book reader written in Python.</description>
    <description lang="de">Ein Comic-Buchleser, in Python geschrieben.</description>
 
    <!--
      version tag
      This specifies the version quadron for this application.
      ALL FIELDS MUST BE POSITIVE INTEGERS OR 0. You are free to choose your
      own versioning scheme (ie. "build" doesn't have to be the number of times
      you built the application), but you must specify all four version fields
      below.
    -->
    <version major="4" minor="0" release="4" build="0"/>
 
    <!--
      exec tag
      Declares how the application should be started.
 
      Attributes:
        command:
          The executable to start when the program is launched. This is
          a path relative to the root of your PND file.
        arguments:
          Does the app need to be started with certain arguments every
          time it is run? This is useful for PNDs that contain
          multiple applications that use the same executable file.
          (specify the actual arguments, not true/false unless your app
          accepts true or false as arguments!)
        background:
          Can this application "be minimised" or should it run
          singleton?
          "true", "false", "1" or "0" accepted.
        startdir:
          Sets the CWD for the application before it is run.
          Default is the PND mount point.
        standalone:
          Can this application run directly, or should it only be
          started via associations? If this is "false" or "0", it
          won't show up in launchers.
        x11:
          Can be one of:
          "req" - X11 is required for the application to run.
          "stop" - X11 must be stopped for the application to run.
          "ignore" (default) - Don't care about X11.
      -->
    <exec command="./Comix/src/comix.py" startdir="./Comix/src/" background="true" standalone="true"/>
 
    <!--
      author tag
      Contains information about the application author. All three fields
      are optional.
      -->
    <author name="herrekberg" website="http://comix.sourceforge.net/" email="herrekberg@users.sourceforge.net."/>
 
    <!--
      icon tag
      Declares the icon for the application. This should be the same icon that
      is appended to the PND file, or something different if *this* application
      should have a different icon from the rest.
 
      Attributes:
        src:
          Relative URI to the icon (can be a relative file, or a
          fully-qualified URL; the latter is only supported in some
          implementations)
      -->
    <icon src="./images/32x32/comix.png"/>
 
    <!--
     categories tag
     Specifies which categories this application belongs to. See
     http://standards.freedesktop.org/menu-spec/latest/apa.html for more
     information. The optional sub-element "subcategory" is currently ignored
     by all implementations.
     -->
    <categories>
      <category name="Graphics"/>
      <category name="Viewer"/>
      <category name="GTK"/>
    </categories>
  </application>
</PXML>

If I had to guess it's the exec line needing startdir to point to where the .py files are.
<exec command="./Comix/src/comix.py" startdir="./Comix/src/" background="true" standalone="true"/>

Edit: added guess.
 
mindlord said:
Here's a copy of my pxml.xml that works, perhaps it will give a clue.

.......

If I had to guess it's the exec line needing startdir to point to where the .py files are.
<exec command="./Comix/src/comix.py" startdir="./Comix/src/" background="true" standalone="true"/>

Edit: added guess.
That's helped a bit thanks. The command line pnd_run works against it now. Is there any way of seeing the output of the xfce menu run command ?
View attachment 438
 
Last edited by a moderator:
Khan said:
Ooops! Missed that one...Cheers! ;)

It runs now, but can´t open cbr´s due to missing unrar lib (ouch!)
I'll look in to it!
 
Last edited by a moderator:
Khan said:
Ooops! Missed that one...Cheers! ;)

It runs now, but can´t open cbr´s due to missing unrar lib (ouch!)

Here's a new version, with unrar in the pnd, and added to comix's run path.
View attachment 441
 
Last edited by a moderator:
Thanks! It works like a charm now :) (Time to get file association right)

PD: May I suggest having a look at PSPComic? Simple GUI but plenty of options and with Pandora´s extra horsepower it would run blazingly fast :)

Here´s the Megapack, which includes the source code (GPL)
link
 
This is up on Pandora apps, but it doesn't work for me on a bog standard hotfix 3 Pandora.

Do we still need to download and install additional library stuff? If so, then I think it shouldn't really be up on Pandora apps as most peeps would just expect to download it and run it.
 
Back
Top