Where are Perl Core Modules?

New to Puppy and have questions? Start here

Moderator: Forum moderators

Post Reply
h2-1
Posts: 4
Joined: Tue Apr 12, 2022 10:10 pm

Where are Perl Core Modules?

Post by h2-1 »

I'm the inxi developer, and thought I'd check puppy out in a vm, but to my somewhat surprise, tested in slacko 7.0 and fossapup 9.5, using the package manager search, it appears that Perl Core Modules are not being shipped with Puppy Perl. When I tried to run inxi, which is perl now, I got missing core module errors, so it exits.

In slacko, I tried installing using cpan, just to test, but cpan wasn't installed either. Note that I'd never expect any user to actually use cpan perl install of missing core modules, but I wanted to just check if I could at least get Perl running properly.

Most if not all users who might want to run inxi I believe would give up at this point, but I'm slightly stubborn, and am wondering if there is something missing, I did a search for perl in the package manager in both versions, and nothing remotely resembling perl core modules appeared, though slacko had a lot of separate perl modules, but nothing that looks like the missing full core modules.

Note that when I've asked perlmonks about issues like this, they always correctly tell me to report the bug to the distro, since not including all the core modules is a bug technically in a perl install.

Interestingly, the two types I tested were missing different modules, but in for example fossapup, even the missing module was not present in a search of the package manager for perl, almost no modules appeared, and none of them were the ones that were missing.

I'm not super concerned about this, it was more curiosity, but is this by design? and if so, why? It makes it basically impossible to run standard perl applications, at least not without jumping through a bunch of hoops.

I package inxi for TinyCore, which roughly does this correctly, you have to install perl5 as a dependency, which is fine, but that is the complete real perl 5, including all core modules.

Note that which core modules are missing is not really relevant in this case, since the actual issue is that Perl is shipping in a broken and incomplete state, and does not include perl core modules, nor is there an obvious way to find if the missing core modules are available as a package.

I thought it would be fun to check inxi to see how it's doing on Puppy, but this is a pretty steep barrier to entry in my opinion, so I guess it is fine if it's not really something anyone is interested in or cares about in the project, but to me, this is a bug, and kind of kills Perl in general since if random unpredictable core modules are removed from core perl, it makes it pretty difficult to try to support Puppy.

Note that in recent testing, slackware users were running inxi successfully on slackware 9, and it's explicitly designed to run on anything with perl 5.08 or newer, as long as it's the actual perl distribution, which includes by definition core modules. I'd found this issue a few years back in early phase of testing perl inxi, and just gave up, but I thought I'd revisit once again just to make sure I'm not missing something very obvious.

Ancient debian, for example, from 2008 or so, at one brief point did ship without core modules included in perl default install, but they just had the core modules as a separate single package, which made it easy to resolve that, but that was fixed in the next Debian version. Fedora/redhat also for unknown reasons remove some of the core modules, but inxi works around that issue since they don't remove any of the primary ones required for inxi to run.

Note that this is just something I thought I'd check into one more time, then update the docs to indicate that this would be the only distro known that has this type of issue, but it would be nice to understand what is going on and why, since one of the main reasons to use Perl is because it always works, in any era system after 5.08 (earlier Perl versions get harder to support due to missing or changed features), with the same exact code from back then to today and even to tomorrow, with coming Perl 7.

Anyway, if someone can clarify this, or show how to resolve the issue in a consistent way, I'll update my docs, and if someone considers it a bug like Perl and I do, it would be nice to get that bug fixed, with a complete Perl shipping out of the box, or at least, the missing core modules shipped as a single perl-core-modules package, which would also be a fine solution if iso size is a major factor.

Anyway, thanks for your time reading this, I'll check back once in a while to see if there's some explanation or solution to this issue, otherwise I'lll make a note in the inxi docs and man page that inxi doesn't really run on puppy without many steps, just so it's clear to users. Its' worth noting that this would be the only known instance of inxi not running on something, it runs on termux, various stripped down router firmware things, this is actually the only system I know that inxi doesn't run on out of the box, which is what inxi is designed to do, run on everything made roughly after 2006 that runs the linux kernel, or the BSD kernels with less data. But I've never actually seen any other instance where it just doesn't run out of the box.

I believe perl will exit on the first missing module called at the start of the program, so it's hard to tell how many modules are present or missing, which is why of course perl core modules are supposed to ship with perl. Note that I go to quite extreme lengths to avoid using unnecessary modules, and non core modules are never required for any reason. I also use the absolute minimum number of core modules possible, so if inxi doesn't run on Puppy, I have to assume that most complex perl programs won't run either.

User avatar
OscarTalks
Posts: 623
Joined: Tue Jul 14, 2020 10:11 pm
Location: London UK
Has thanked: 2 times
Been thanked: 247 times

Re: Where are Perl Core Modules?

Post by OscarTalks »

Hello and welcome.
Try loading the devx development add-on. You might find that some of the core perl modules are in that. Whether they should be in the devx or in the main .sfs of the Puppy distro is an interesting question. I think it stems from the Puppy principle of keeping things as small and light as possible. Over time I think that some perl modules were moved from devx to main .sfs, but the Puppy variants may not all be the same. If commonly-used programs require these modules, you are making a good point and maybe the chief developers will want to consider this issue. By the way, if you look in /root/.packages or /var/packages there are lists of the packages in the main (woof-installed) .sfs and also a list of the devx-only packages, so you can see which perl packages are where. Thanks for developing inxi and thanks for sharing your thoughts.

h2-1
Posts: 4
Joined: Tue Apr 12, 2022 10:10 pm

Re: Where are Perl Core Modules?

Post by h2-1 »

The learning curve is too steep, to me this is just way too complicated. TinyCore is way smaller than puppy, 21 MiB install iso, but their stuff is easy to understand and use, within the limits of being tiny of course.

Just speaking for myself, looking where you suggested, this all is way too complicated and messy, I can't justify spending any more time on it. To me, having been a long time package management fan, nothing here works like you'd expect, at least not like I'd expect, which means a huge learning curve to get to a place I get to without doing any work whatsoever on basically every other platform. Heck, even termux is far more simple than this.

I'll just assume Puppy doesn't want perl programs to run on it, and that's fine, I accept that, this is broken perl, it's broken core modules, and the package manager isn't useful or helpful at all from what I can see.

Now I can see what drew me into be the packager of inxi after talking to tinycore devs for a while, there was something simple and clean and maybe a bit amusing about the entire thing that appealed to me.

I was here actually checking to see if I could verify some very light distro report adjustments I've made in inxi recently, but this is just too much work to get to the starting point.

I had found some older puppy docs where it did look like there was the expected perl-core-modules package, but it looks like that was removed and distributed across various things, making it a non starter, essentially, if a puppy person doens't know how to get this running easily, I obviously can't be expected to figure it out myself.

I do strive for complete linux support, and will generally more or less bend over backwards to achieve that, I run for example inxi on my phone on termux just to test it (though android locked a lot of data down after 7 or so release, so inxi can't get as much data as it used to on android).I'm probably one of the only if not the only people in the world who considers a bug report from an OS that is 15 years old to be valid, and not only valid, at times, a show stopper, must fix instantly, but none of them presented this type of pointless obstacle, so I guess that's what it is.

I'll check back in a few years again, maybe the perl bug and breaks will be fixed, if so, feel free to post an issue report on github/smxi inxi repo, and I'll check it out again, but I can kind of tell that there is too much random variation between the various puppy releases, making it way too hard to even try to figure out a universal method that would 'just work'.

I know my limits, so I'll raise my white flag here, puppy is not currently supportable. Would love to support it, but won't spend'waste the amount of time it would take to get something running that should not be broken. Again, Tinycore is about 1/15th the size in iso of Puppy, definitley quirky, but their stuff works and is explainable and predictable once you kind of figure some of the less intutive parts out, but it's one thing, not many.

Anyway, glad I asked, I'll check back once again to see if there's something less vague that would lead to an easy solution.

Technically, it' not really worth spending time on figuring out how to get inxi to even run since I would never expect a user to do that.

The core idea of inxi is very simple: is perl installed? yes? good, download inxi, set it executable, and run it. Period, end of story. If the os makes that step broken and difficult, I'll have to respect that as the decision of the os, it's freesoftware afterall, but why anyone would think it was a good idea to break one of the most stable and reliable languages in the world, Perl, nothing is even remotely close, is beyond me.

But thanks for taking the time to try to find something. I'm pretty experienced with distros, and when I see something is this complicated to figure out at the beginning, my general instinct is to walk away since that is just not a very good sign.

Last edited by h2-1 on Wed Apr 13, 2022 3:07 am, edited 1 time in total.
User avatar
bigpup
Moderator
Posts: 6836
Joined: Tue Jul 14, 2020 11:19 pm
Location: Earth, South Eastern U.S.
Has thanked: 874 times
Been thanked: 1471 times

Re: Where are Perl Core Modules?

Post by bigpup »

Well inxi works in Fossapup64 9.5
.
Note:
I do have the fossapup64 devx sfs package loaded.
The needed Perl stuff is in the devx sfs package.

Did this to install it:

In the console entered:

Code: Select all

cd /usr/local/bin && wget -O inxi smxi.org/inxi && chmod +x inxi

To see what it does:
Used the example command that is shown in the inxi documentation.

Code: Select all

inxi -b --usb

.

Screenshot(3).jpg
Screenshot(3).jpg (73.52 KiB) Viewed 1166 times

.
.
It is an OK program, but Puppy has Pup-Sysinfo that provides the same function and displays results in a GUI.
So Puppy already has a very good computer and system info program already in it.
.
.

The things you do not tell us, are usually the clue to fixing the problem.
When I was a kid, I wanted to be older.
This is not what I expected :o

h2-1
Posts: 4
Joined: Tue Apr 12, 2022 10:10 pm

Re: Where are Perl Core Modules?

Post by h2-1 »

I would guess that somewhere along the way you have installed the missing perl modules without realizing it. Probably some package installed the missing core modules I'd guess.

I'm doing this test as you always would, on a clean fresh install, actually not even an install, just the live cd. Same as I always do for distros where I want to test more the software than the hardware end of things. I actually tried the 14.2 slackware based installer but gave up, didn't try installing the fossa, too much time to get to point A, as I said, can't justify it.

Keep in mind the core requirement: you don't need to know or do anything to run inxi, period, if perl is there, it runs, out of the box, nothing needed. This is really a critical requirement, it's why I don't use features many times of Perl that might prevent this from happening. But I don't expect users to jump through hoops I can't myself figure out fairly easily.

Anyway, as I said, it's fine, I can't do everything in this short life, so it's ok to recognize when I hit stuff that isn't in my interests to use more time on, it's free software afterall, done for free, so it's not like it's a job where I have to make everything work or else, I just try to, but my time isn't infinite, nor my energy.

Anyway, thanks for looking.

Note that really a posting like this should never have been needed, and I think should be taken as a bug report on a valid Perl problem, that's what the perlmonks guys would tell me if I said anything about issues like this, and I agree with them, it's a bug that should be corrected.

Last edited by h2-1 on Wed Apr 13, 2022 3:18 am, edited 1 time in total.
User avatar
bigpup
Moderator
Posts: 6836
Joined: Tue Jul 14, 2020 11:19 pm
Location: Earth, South Eastern U.S.
Has thanked: 874 times
Been thanked: 1471 times

Re: Where are Perl Core Modules?

Post by bigpup »

The needed Perl stuff is provided by downloading and loading the Fossapup64 devx.sfs package.

This is Puppy Linux not other Linux OS versions.

Puppy Linux does some thing the Puppy way :thumbup:

All Puppy versions will have their own devx sfs package.

Basically there is nothing in the devx sfs that is needed for normal operation of Puppy Linux.
Everything that is in a Puppy Linux version is in the version iso.

The idea of the devx sfs package is a simple way to add needed stuff for compiling software, if someone in Puppy land has not already compiled it into a pet package for Puppy Linux.

The things you do not tell us, are usually the clue to fixing the problem.
When I was a kid, I wanted to be older.
This is not what I expected :o

h2-1
Posts: 4
Joined: Tue Apr 12, 2022 10:10 pm

Re: Where are Perl Core Modules?

Post by h2-1 »

As noted, any special steps required to get a working perl install going that are not obvious or intuitive to users means basically that there's no point in taking the time to do more testing, the bug is core modules have been split from perl, and that's a bug, not a feature. I could see not shipping perl at all, that would be fine, and requiring to install perl5 package or whatever, but splitting it up, that's a bug. In theory a packaged inxi could pull that in as a dependency (hint to any packagers who are feeling bored) if it's part of the package pool, but I checked for devx string in the search box and it didn't appear, so that to me is the end of that road. after that it's too complicated to expect users to do.

But thanks, I did want to see where this stood now, but not my thing, bugs are bugs and should be fixed, not up to me. Basically assuming this bug covers all the variants, that would mean that there's no point to doing anything further, unless the bug gets fixed in the future, so if it does, please post an issue on smxi github and I'll take a look at it again.

I'd suggest if iso size is critical and perl is required in its basic form, make a clean real perl-core-modules package, and if perl is not required in the iso for anything, remove it from the iso and make a real complete perl package and pull out the broken perl bits from where they are scattered, that way a search of the package manager packages would result in the needed package without any hoops.

Anyway, thanks for the feedback and info, that roughly confirms I think why I gave up last time I looked at this too.

User avatar
bigpup
Moderator
Posts: 6836
Joined: Tue Jul 14, 2020 11:19 pm
Location: Earth, South Eastern U.S.
Has thanked: 874 times
Been thanked: 1471 times

Re: Where are Perl Core Modules?

Post by bigpup »

Sorry you do not think you should have to learn how an operating system works.

Why does Puppy Linux have to work exactly like other Linux OS's :?:

To you it is a bug.

To Puppy Linux it is a feature to not have everything you could possibly need in the Puppy version install.

Do keep in mind that Puppy is designed for the complete OS to load into memory and fully operate from memory.
All the programs that are already installed in a Puppy version, are already in memory.

The only things that have to be loaded into memory, is stuff you add to Puppy, and are stored in the Puppy save.
If you run something that is in the save.
It is read from the save and loaded into memory.

If you really need to have Perl installed you can still install it.

I do agree with you.
The location of the specific Puppy version devx sfs is a little all over the place.
In Fossapup64 9.5, it is found by using the Quickpet program, which is a quick collection of common requested programs to add to Fossapup64.
Other Puppy versions will usually give a link to the devx sfs in the topic for the specific Puppy version.

The things you do not tell us, are usually the clue to fixing the problem.
When I was a kid, I wanted to be older.
This is not what I expected :o

User avatar
rockedge
Site Admin
Posts: 6378
Joined: Mon Dec 02, 2019 1:38 am
Location: Connecticut,U.S.A.
Has thanked: 2578 times
Been thanked: 2534 times
Contact:

Re: Where are Perl Core Modules?

Post by rockedge »

@h2-1 perhaps you should stick to what you know.

I develop PERL routines for certain enterprise projects that I use quite often on Puppy Linux in many variations. No problem to use any lib in the CPAN repos. Load the devx and install cpanminus and you'll be PERL'in all day and night, just like I said no problem at any level of complexity.

Your problem is misunderstanding what you have in hand. There is a good reason why PERL is only in a minimum installation in the Puppy Linux rootfs. I don't see the problem of loading devx SFS which by the way can be done on the fly and takes about 30 seconds one time. Go on and name me one other distro, that can do that, Not one. (other than KLV-Airedale, DebianDog's and FATDOG which all can)

So if the 1 minute it takes to load the devx SFS and have all the dev tools and the "CORE PERL" you so require is too much of a hassle for your fragile nerves than stick to Ubuntu or Red Hat or maybe Apple OSx which seems you are more suited for.

If these distro's where serving you so well why did you bother to try out a "buggy" Puppy Linux in the first place?

User avatar
bigpup
Moderator
Posts: 6836
Joined: Tue Jul 14, 2020 11:19 pm
Location: Earth, South Eastern U.S.
Has thanked: 874 times
Been thanked: 1471 times

Re: Where are Perl Core Modules?

Post by bigpup »

I decided to look into what is so great about Perl.

Well it sure is not about the size of a program.

Comparing the size of your inxi to that of Pup-Sysinfo.

inxi is 1063 K

Pup-Sysinfo is 50 K and is a simple bash x-shell script file.

inki is a terminal output program.

Pup- Sysinfo is a GUI program.
.
Example:
CPU info provided by simply selecting Mainboard -> CPU in Pup-Sysinfo
Notice the image is not showing the complete info that is provided.
.

Screenshot(4).jpg
Screenshot(4).jpg (65.29 KiB) Viewed 1117 times

.

The things you do not tell us, are usually the clue to fixing the problem.
When I was a kid, I wanted to be older.
This is not what I expected :o

User avatar
mikeslr
Posts: 2915
Joined: Mon Jul 13, 2020 11:08 pm
Has thanked: 175 times
Been thanked: 893 times

Re: Where are Perl Core Modules?

Post by mikeslr »

Using bash, Puppys accomplish much of the same things as other distros accomplish employing other languages that are perhaps easier to use (or more frequently taught) but require more RAM. inxi is a fine (almost essential) application under operating systems where perl is part of their 'infra-structure'.

In the game of bowling a square ball is very likely a system bug. Not requiring tennis players to always wear snowshoes is probably not. A lot, however, will depend on how you score the game and with what rules you require it to be played.

User avatar
Marv
Posts: 433
Joined: Fri Dec 20, 2019 3:09 am
Has thanked: 201 times
Been thanked: 116 times

Re: Where are Perl Core Modules?

Post by Marv »

FWIW, inxi started life as a bash script. I don't use it often as Pup-Sysinfo serves well, but still carry a bash version of inxi (version 2.3.8) in most of my savefiles.

My pups: LxPupSc64 and Voidpup64 with LXDE ydrv & synaptics touchpad drivers, both using savefiles. Ydrv based NoblePup64 (JWM & LXDE), Bookworm64 & Fossapup64-mid/mini (LXDE/PCManFM). No savefiles, no fdrvs there. :thumbup:

User avatar
mikewalsh
Moderator
Posts: 6034
Joined: Tue Dec 03, 2019 1:40 pm
Location: King's Lynn, UK
Has thanked: 738 times
Been thanked: 1899 times

Re: Where are Perl Core Modules?

Post by mikewalsh »

Inxi's developer sounds as though the problem he's facing is simple; he doesn't understand Puppy.

To him, it's "just" an OS, so why isn't it like all other OSs?

He doesn't know what the devX package is, and clearly doesn't want to know.

Lest we forget, Puppy gives veteran users of other mainstream distros plenty of grief. Many consider themselves to be power-users.....but implement anything in a slightly different way, and they're sugared. Completely lost. They resent the fact that their hard-won knowledge suddenly doesn't "work" for them, because when all's said & done, most of these guys have acquired their 'hard-won' knowledge by rote......purely & simply by being able to repeat the same set of commands over & over, again & again, from one distro to another......and expecting to get the exact same results.

The fault can't possibly be theirs. So the "fault" must therefore be ours, for being foolish enough NOT to make Puppy into a 'clone' of every other distro out there..! :!:

(Mind you, he's like 95% of the human population in this respect. Most of whom know what they know, and are comfortable with that knowledge. And who see absolutely no reason why they should have to learn to do anything differently.)

As referenced above, they don't want to know.... At the end of the day, veteran Linux 'geeks' are cut from exactly the same cloth as veteran Windows 'geeks', only stuck in a different set of ruts.

They just don't know it..!! :D

(*shrug*)

Mike. :roll:

Post Reply

Return to “Beginners Help”