Heyas
As i'm new to packaging, specificly to linux, i am a little confused at this moment. I have my scripts (kind of framework, but for any enduser they are just tools) which i'd like to be shiped with Fedora, however, until now i was thinking like: My Package = Additional Software = /usr/share/%name.
Now that i had opened a Review Request ( https://bugzilla.redhat.com/show_bug.cgi?id=835089), someone asked my whe i didnt pack my scripts into /usr/bin. Allthought i like this idea, i do not feel that this would be 'clean', as my script tools base upon a directory structure, while there are no directories in /usr/bin.
From the same person i was told that /etc/profile.d/%name.sh would not be a
good solution as it wont work with csh, zsh, with which i agree, but couldnt think of a better solution until now.
---------- All above here is the actual question ---------- Now the idea came up to place the 'base-script' (st) in /usr/bin, while everything else would be in a folder somewhere. However, this has a hughe drawback, as it (the script tools) wont work in this mixed up (split away) environment. Until now, one could have been sure, that in any case if i move the directory the scripts tools are in, anywhere else, one could just execute the main script and everything kept working. This was achieved by symlinking the actualy path to /usr/share/%name, of course only if it wasnt installed there using rpm/yum (default).
Now after all this crapy text (its past midnight here), according to the feedback (very little) i have recieved so far, i do need feedback/info, from someone capable handling complex bash script structures across folders, using other scripts are libraries, offering the users to write their own libs and scripts. Further, it takes some use of 'configuration' files, uses some sort of templates and lots of other stuff.
It is NOT an easy task, to review, or to understand how it works, or to actualy give any kind of advice. I do know and understand this, thus i would appreciate any usefull feedback even more for the very same reason.
For more info about this package, please have a look at http://sea.hostingsociety.com/?p=Script-Tools&stc= many, but not all, things are explained there, or at least try to be there. Have i mentioned, i lack of feedback/questions so i could not write the readme appropriate to the 'demand' of explanation.
Where would be the proper place to put/package my script tools to?
Thank you in advance for any hints, advices, questions or suggestions. Kind regards ~sea~
On Thu, 12 Jul 2012 00:53:03 +0200, Simon A. Erat wrote:
Heyas
As i'm new to packaging, specificly to linux, i am a little confused at this moment.
I have my scripts (kind of framework, but for any enduser they are just tools) which i'd like to be shiped with Fedora, however, until now i was thinking like: My Package = Additional Software = /usr/share/%name.
It cannot be generalized like that. When deciding where to store files, one must tell what type of files they are. Skimming over the FHS can help to find the proper location, as the packaging for Fedora can get a lot more trouble-some, if a software project installs into uncommon locations or violates the FHS even. /usr/share/ is for architecture-independent read-only data files.
Now that i had opened a Review Request ( https://bugzilla.redhat.com/show_bug.cgi?id=835089), someone asked my whe i didnt pack my scripts into /usr/bin.
/usr/bin sounds reasonable.
At least, it should be easily possible for your project to store small scripts in /usr/bin, which know about their home directory, from where to load supporting files (including additional hidden scripts not to make available in $PATH).
Allthought i like this idea, i do not feel that this would be 'clean', as my script tools base upon a directory structure, while there are no directories in /usr/bin.
That sounds a bit like a design mistake. Can you tell why you think you would need a directory structure below /usr/bin and not elsewhere?
From the same person i was told that /etc/profile.d/%name.sh would not be a good solution as it wont work with csh, zsh, with which i agree, but couldnt think of a better solution until now.
That's inaccurate. Adjusting $PATH via profile.d scripts is a good solution for *some* projects, e.g "ccache", but it ought to be an exception (and there's a reason why "ccache" does it like that). It doesn't sound correct/ideal/elegant for your scripts.
Now the idea came up to place the 'base-script' (st) in /usr/bin, while everything else would be in a folder somewhere. However, this has a hughe drawback, as it (the script tools) wont work in this mixed up (split away) environment.
As above, a design mistake?
Until now, one could have been sure, that in any case if i move the directory the scripts tools are in, anywhere else, one could just execute the main script and everything kept working.
The scripts would stay in /usr/bin, be available for execution by every user, and if you moved anything at all with an update of the software in an update of the RPM package, you would replace the script files. Why would the new files not work anymore (or not know about changed directories)?
This was achieved by symlinking the actualy path to /usr/share/%name, of course only if it wasnt installed there using rpm/yum (default).
Perhaps you could explain in more detail what problem you're trying to solve?
Further, it takes some use of 'configuration' files, uses some sort of templates and lots of other stuff.
That's not unusual.
packaging@lists.fedoraproject.org