pan-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Pan-users] [ANNOUNCE] Pan release 0.152


From: Duncan
Subject: Re: [Pan-users] [ANNOUNCE] Pan release 0.152
Date: Thu, 17 Nov 2022 04:54:30 -0000 (UTC)
User-agent: Pan/0.153 (Mariupol; 6dc70f18f)

Brian Morrison posted on Wed, 16 Nov 2022 15:29:26 +0000 as excerpted:

> On Wed, 16 Nov 2022 13:09:04 -0000 (UTC)
> Maurice via Pan-users <pan-users@nongnu.org> wrote:
> 
>> On Sun, 13 Nov 2022 20:11:37 +0000, Brian Morrison wrote:
>> 
>> > ./autogen.sh --prefix=/usr
>> 
>>   Well, I couldn't get hold of autogen.sh, Brian, but many thanks
>> for your info.  Will reyurn to the fray soon.
> 
> autogen.sh is in the pan tarball that you download, along with
> configure.ac

[Some general search-path and build-system background for those who might 
find it useful...]

Yes.  And to the point, the ./ prefix indicates a path relative to the 
current directory[1], so any time you see the ./ prefix in the context of 
build instructions, it strongly indicates running either an executable 
shipped in the tarball itself, or something you just built from that 
tarball (say for testing without actually installing it to the system).

Of course that implies that you've already untarred the tarball and 
entered the resulting directory, a common enough procedure that sometimes 
build instructions skip right to the "run ..." bit, but in this case that 
was explicit in the instructions as well.

> Running autogen.sh creates the configure program that when re-run during
> the rpmbuild process sets up the Fedora configuration for the final
> binary rpms.

Yes.  The general toolset that both autogen and the configure scripts are 
part of is GNU autotools. It's one of the older and more common methods of 
allowing an upstream to create a portable configuration and build 
bootstrapping system usable across many distros and OSs, including but not 
limited to Linux, the BSDs and other Unices (including Sun's Solaris and 
Apple's OSX), and MS Windows, among others, tho of course not every 
package using autotools supports all platforms autotools itself does.  
CMake is another very common more modern alternative used by a lot of 
stuff these days.  The rpm/deb/other-package-manager stuff builds on top 
of that, automating dependency and installed-files tracking. 

---
[1] Current directory, aka current working directory:  Instead of 
searching for the executable using directories in the existing PATH 
variable, the normal unprefixed method of finding the named executable in 
the normal system and user executable directories like the system's
/usr/bin and often ~/bin (aka $HOME/bin, aka your user's executable 
directory, if so configured).

Unlike many OSs Linux/Unix does not normally include the current working 
directory in the executable search path by default.  A user can of course 
add the current working directory to the executable search path by 
changing the PATH variable accordingly, but doing so tends to be 
discouraged for security reasons -- the idea is that the default search 
path should only contain deliberately installed user or distro vetted 
executables, *not* whatever random executable happens to exist by that 
name in whatever directory you're currently working in.

Of course it's always possible to run executables in the current directory 
if that's what you specifically intend (as here) using the ./ prefix, just 
as it's always possible to run a specific executable using an absolute 
path by prefixing it with /<whatever-path>.  The idea is that if you want 
a specific executable you always prefix the path, whereas if you want 
whatever user or system executable happens to appear first in the 
directories listed in PATH, you don't have to specify path.

(In fact, the fact that default path search order is that specified in the 
PATH variable is often deliberately used to allow "wrapper scripts" that 
do some setup before calling the normal executable.  For instance, I have 
a pan wrapper script that exploits the fact that pan uses the PAN_HOME 
environmental variable if set to look for its configuration and data 
files, to allow me to run separate pan instances for binary groups, text 
groups, and testing, with text being my default instance.  So if I simply 
run "pan", it finds the "pan" wrapper script in ~/bin first, since that 
appears first in my PATH, and runs the default text instance, setting up 
stuff accordingly for that before the script then calls "/usr/bin/pan" 
specifically, using the absolute path so as to avoid the script calling 
itself as would happen if it just called "pan"!)

-- 
Duncan - List replies preferred.   No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master."  Richard Stallman




reply via email to

[Prev in Thread] Current Thread [Next in Thread]