Puppy Linux Discussion Forum Forum Index Puppy Linux Discussion Forum
Puppy HOME page : puppylinux.com
"THE" alternative forum : puppylinux.info
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

The time now is Tue 17 Jul 2018, 05:48
All times are UTC - 4
 Forum index » Advanced Topics » Additional Software (PETs, n' stuff) » Unsorted
Are there rules/guidelines/advice for building PETs
Moderators: deshlab, Flash, GuestToo, Ian, JohnMurga, Lobster
Post new topic   Reply to topic View previous topic :: View next topic
Page 1 of 1 [7 Posts]  
Author Message
jonty

Joined: 07 Nov 2007
Posts: 4

PostPosted: Wed 07 Nov 2007, 15:36    Post subject:  Are there rules/guidelines/advice for building PETs  

I have started building a few PET files for console utilities (mutt, ledger, remind, openvpn, and so on). They run fine on the machine where I build them and I have tested them by installing on a different machine running a clean copy of Puppy 3.01.

Now I would like to give something back and start distributing the PETs. But before I inflict them on the world I would like to know if I have built them in a sensible way. I am looking for rules, guidelines, or advice on how I should configure a package to make it fit on most user's machines, for some value of 'most'.

I build my packages from source code, without applying any fancy patches so I usually do the 'configure && make && new2dir make install' dance. I'm looking for guidance on which options to build in to my packages, and this is usually done with common parameters to the 'configure' script:

* Where should a package usually be installed (--prefix parameter)? I use /usr at the moment.
* Where should the system-wide configuration go (--sysconfdir parameter)? I use /etc.
* Should I build for multi-lingual systems (--enable-nls parameter)? I'm embarrassed to say that I usually disable this.
* Should I provide 'typical' configuration files for a user to copy? I know what I'm doing with the programs I build so I don't bother to configure them in the PETs.
* Should I build documentation such as man pages or info files? I usually do this because my memory is fallible.
* Should I try to separate libraries and documentation into their own PETs? Mine are all-in-one packages.
* Should I take care to list the other PETs that my PETs depend on? I'm very slack about this as I just know what order to install things.
* Any other advice?

Thanks
Jonty
Back to top
View user's profile Send private message 
Flash
Official Dog Handler


Joined: 04 May 2005
Posts: 12916
Location: Arizona USA

PostPosted: Wed 07 Nov 2007, 19:02    Post subject:  

Have you noticed the sticky topics at the top of the Additional Software forum?
Back to top
View user's profile Send private message 
cthisbear

Joined: 29 Jan 2006
Posts: 4287
Location: Sydney Australia

PostPosted: Wed 07 Nov 2007, 19:39    Post subject:  

Has anyone seen this development?

http://www.murga-linux.com/puppy/viewtopic.php?t=23388

Chris
Back to top
View user's profile Send private message 
jonty

Joined: 07 Nov 2007
Posts: 4

PostPosted: Thu 08 Nov 2007, 12:45    Post subject:  

Flash wrote:
Have you noticed the sticky topics at the top of the Additional Software forum?


Yes I tried wading through 3 screens of 'DotPup developers: Please read this' but it was: 2 years old, based on an earlier version of Puppy with a different filesystem layout, and very hard to summarize into concise rules. The result seemed to be 'Install anywhere under /usr that seems good to you'. So it seemed worth asking the question.

I haven't found any stickies for my other questions:

jonty wrote:

* Where should the system-wide configuration go (--sysconfdir parameter)? I use /etc.
* Should I build for multi-lingual systems (--enable-nls parameter)? I'm embarrassed to say that I usually disable this.
* Should I provide 'typical' configuration files for a user to copy? I know what I'm doing with the programs I build so I don't bother to configure them in the PETs.
* Should I build documentation such as man pages or info files? I usually do this because my memory is fallible.
* Should I try to separate libraries and documentation into their own PETs? Mine are all-in-one packages.
* Should I take care to list the other PETs that my PETs depend on? I'm very slack about this as I just know what order to install things.
* Any other advice?


Thanks
Jonty
Back to top
View user's profile Send private message 
muggins

Joined: 20 Jan 2006
Posts: 6747
Location: hobart

PostPosted: Thu 08 Nov 2007, 21:08    Post subject:  

jonty,

i hope you're not disheartened by the lack of response to your queries? often people are off doing their own things, or, (maybe more likely?), we don't know!

i've made a few small, mostly game, .pets, so:

1) ./configure --prefix=/usr , which is what you were doing.
2) i wouldn't have a clue! some seem to end up in /etc, /usr/etc, /root
3) again, i wouldn't have a clue!
4) I suppose it depends on the complexity of the application?
5) Ditto
6) It depends on where you're going to upload them to. The forum limit is 1M.
7) Yes, definitely if your programs won't work without them.

Cool Just try making some .pets & upload them and, hopefully, if anyone finds something amiss, they'll provide some sort of feedback.
Back to top
View user's profile Send private message 
MU


Joined: 24 Aug 2005
Posts: 13648
Location: Karlsruhe, Germany

PostPosted: Thu 08 Nov 2007, 21:23    Post subject:  

1. depends.
I have built gimp 2.4rc3 with something like:
./configure --prefix=/usr/local/Gimp-2.4.0-rc3

This allows to install it parallel to other versions.
You just need a startscript then, like:
Code:
#!/bin/bash

export LD_LIBRARY_PATH=/usr/local/Gimp-2.4.0-rc3/dependencies:$LD_LIBRARY_PATH
export PATH=/usr/local/Gimp-2.4.0-rc3/bin:$PATH

/usr/local/Gimp-2.4.0-rc3/bin/gimp "$@" &


So you must set environment variables for the libs and the binaries.
I meanwhile prefer this method.

2.) I usually do not set this, no idea.
3.) yes, please. Then add the locale files in a seperate dotpup.
4.) good idea, but this risks to overwrite users configuration on re-installation.
You could add a Xdialog requesting if it should extract those files from an included tar.gz
5.) I usually remove doku, except for complex programs.
Or I add it as seperate package.
6.) if you use method 1.), you can include the dependencies, as you do not risk to overwrite existing ones.
If you configure for /usr, please seperate the libs.
Or there would be a dependency-mess on de-installation of the program.
Our packagemanagers are not yet fully capable to take care of these dependencies.
7.) shure Smile

Mark
Back to top
View user's profile Send private message Visit poster's website 
jonty

Joined: 07 Nov 2007
Posts: 4

PostPosted: Sun 11 Nov 2007, 16:19    Post subject:  

muggins wrote:

i hope you're not disheartened by the lack of response to your queries? often people are off doing their own things, or, (maybe more likely?), we don't know!
...
Cool Just try making some .pets & upload them and, hopefully, if anyone finds something amiss, they'll provide some sort of feedback.


Thanks. I understand it takes a while to get answers on a forum so I left it for a few days while I went and did some hill walking. I'm back, refreshed, and raring to go. So I'll try and upload a couple of PETs this week and see how we go.

MU wrote:
1. depends.
I have built gimp 2.4rc3 with something like:
./configure --prefix=/usr/local/Gimp-2.4.0-rc3

This allows to install it parallel to other versions.
You just need a startscript then, like:
Code:
#!/bin/bash

export LD_LIBRARY_PATH=/usr/local/Gimp-2.4.0-rc3/dependencies:$LD_LIBRARY_PATH
export PATH=/usr/local/Gimp-2.4.0-rc3/bin:$PATH

/usr/local/Gimp-2.4.0-rc3/bin/gimp "$@" &


So you must set environment variables for the libs and the binaries.
I meanwhile prefer this method.


My preferred technique is to run configure just like you, using --prefix=/usr/$application-$version and then once the files are installed create softlinks from /usr/bin to the programs in /usr/$application-$version/bin. The libraries take care of themselves (because the application was built with the library paths from configure), it is easy to have several versions installed and switch between them just by chaning the softlinks, and users who want to know which version they are running can usually find and follow the softlinks. I will try building a PET builds the softlinks in its install script. If this doesn't work I will fall back to your method.

Thank you both muggins and MU.
Jonty
Back to top
View user's profile Send private message 
Display posts from previous:   Sort by:   
Page 1 of 1 [7 Posts]  
Post new topic   Reply to topic View previous topic :: View next topic
 Forum index » Advanced Topics » Additional Software (PETs, n' stuff) » Unsorted
Jump to:  

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group
[ Time: 0.0862s ][ Queries: 11 (0.0265s) ][ GZIP on ]