[PC-BSD Pbi-dev] Easy-bake PBI modules
ken at pcbsd.org
Thu Oct 27 11:33:42 PDT 2011
On 10/27/11 13:14, Jesse Smith wrote:
> On 11-10-27 01:30 PM, Ken Moore wrote:
>> On 10/27/11 10:48, Jesse Smith wrote:
>>> Fellow PBIers,
>>> I believe I've come up with a tool which will make it much easier
>>> for non-developers to create PBI modules. The tool is simply named
>>> (I'm not feeling creative today) EasyPBI. It's a Qt-based graphical
>>> application which will create new PBI modules with just a few mouse
>>> Right now it's a little rough, the last time I did any real coding
>>> in Qt.... well, KDE 2.2 was considered current. At any rate, I'm
>>> attaching my first attempt here. To compile it you will need the Qt
>>> development libraries installed on your system.
>>> To compile EasyPBI, save the attached tar archive and run the
>>> following commands
>>> tar zxf EasyPBI-0.1.tar.gz
>>> cd EasyPBI
>>> Then run
>>> The interface is a small window which displays the key fields of a
>>> PBI module. At the bottom of the screen the app displays
>>> instructions for the user to follow. To start off, we go to the File
>>> menu and select New Module. We pick which port we want to build. The
>>> app tries to fill in as many fields as possible and prompts the user
>>> to fill in the blanks for us. Then the user hits the Create Module
>>> button at the bottom of the window. EasyPBI will then try to build
>>> the module and bundle it as a tar archive. Its last step is to
>>> notify the user that the module has been created and provides the
>>> location of the tarball and the pbi-dev mailing list address so
>>> users can submit their module.
>>> The app can be used to build several modules, one after another.
>>> Right now I'm thinking more instructions and an option to open then
>>> port's FreshPort's page would be a logical next step. Comments,
>>> suggestions are welcome.
>>> - Jesse
>>> Pbi-dev mailing list
>>> Pbi-dev at lists.pcbsd.org
>> I just gave EasyPBI a whirl, and I must say that I am impressed! It
>> is still a bit rough, as you mentioned, but overall it is a nice
>> interface for a "casual" user to build a PBI module.
>> I have a couple suggestions here from my first use....
>> 1) Make use of the QT spacers to allow the GUI to dynamically fit to
>> the current size of the window.
>> 2) There is an extra bar under the "File" and "About" menus that I
>> can move around, but has no discernible purpose.
>> 3) A button to open up the freshports page for the selected port in
>> the default web browser might be a good idea (as you mentioned)
>> 1) Instead of creating the modules in the home directory, I would
>> recommend the following folder/structure:
>> 1-a) Create a EasyPBI-modules/ directory in the home folder and
>> place the uncompressed modules there
>> 1-b) Create a subdirectory within EasyPBI-modules/ for the
>> compressed modules
>> 2) Since you are using the /usr/ports/ directory on the system, you
>> might want to have some sanity checks to make sure the ports tree is
>> actually on the user's system or prompt the user to get it if it is not.
>> 3) In addition to creating the modules, you could actually have a
>> button to run the pbi_makeport command on the newly-created module to
>> actually run the process to build the PBI. This will take a bit more
>> work, but I think it would make a nice complement to the program.
>> All in all, it seems like a great start for the program. Would you
>> like some help with it? I do a lot of Qt development and could help
>> you out with the GUI if you are a bit rusty on it.
>> ~ Ken Moore ~
> Thank you for the feedback and the recommendations. I agree with all
> of the above. I would certainly welcome help with the GUI. Most of my
> work is more "behind the scenes" so interface design is a weak point
> for me. If you could tidy it up and send me a patch, it would be very
> I haven't used pbi_makeport yet, but I can look into adding a button
> to build the PBI.
> Pbi-dev mailing list
> Pbi-dev at lists.pcbsd.org
Ok, here is are the modified "mainwindow.*" files. The GUI is now on a
grid layout with spacers (I.E. the user can now resize it with
impunity), I removed the unneccesary bar, and I added a button to open
the freshports.org page for the selected port. I wrote a quick check to
make sure a port is selected for the port_info_button, but I did not
actually have it open a web browser. The function to add that capability
to is at the bottom of the mainwindow.cpp file.
Oh, I also fixed a bug on quitting that caused a "bus error" on exit.
(see the destructor for mainwindow)
Let me know if there is anything else I can do for you!
~ Ken Moore ~
-------------- next part --------------
An HTML attachment was scrubbed...
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 2932 bytes
Desc: not available
More information about the Pbi-dev