Hi Reg
IPS uses very simple tools called pkgmogrify and pkgsend to create a
installable package from a built source tree. All those tools are
documented in our manpages. What we have ontop of it, is oi-userland
which is a set of Makfiles to wrangle autotools into compliance.
Sometimes as you mentioned that can be daunting depending on how the
autotools scripts where written by the Software author. Autotools added
many features we rely on for packaging as an afterthought so features
like seperated build and source directories and DESTDIR do not always
work correctly and we have to interupt autotools and do those steps
manually. Cmake and Meson are better in that regard but cmake is
notorious for needing patches to it's own Library search system. meson
always needs python patches because now all the logic is in the
software. Which Andy Fiddaman (OmniOS) thankfully maintains for all
illumos systems.
Anyway here is the PDF version of out docs about building with
oi-userland https://docs.openindiana.org/pdf/dev/userland.pdf all of
them can be found here
https://docs.openindiana.org/handbook/pdfdocs/#contrib
The 5000 foot overview of how out oi-userland works is:
1. Download sources (git, tarball etc.) and check checksum
2. patch sources with patches in the patches directory
3. run preconfgure and configure scripts and targets (allows for
customizations)
4. run build
5. run install with DESTDIR set to a local directory so all the final
software ends up in a so called prototype directory
5 a. (manual) run sample-manifest to generate or regenerate the listing
of files in the package (used to compare differences or if features got
autodetected on the build system vs. the packagers system)
5 b. (manual) run REQUIRED_PACKAGES to update the REQUIRED_PACKAGES
makefile section with the result from pkg tools. (IPS has code to auto
detect dependencies)
After that it's basically tweaking metadata in the Makefile and some
process knowledge which we guide people thorugh in the PR's
The trickyest bit is always to wrangle autotools, but it got better with
newer releases.
-Till
On 17.08.25 22:38, Reginald Beardsley via openindiana-discuss wrote:
A link to a decent pkg tutorial PDF would help. I plan to try building Octave again. It's got a ludicrously complex set of dependencies. Octave is the one thing I will use Linux for. Because it uses autotools it completely failed to build the last time I tried. *Supposedly* that's been fixed, but it's terminally braindead at birth. During the workstation wars there was some justification for Larry Wall's configure concept, but today's computing universe doesn't have 20 flavors of Unix.
My S10_u8 instance has hundreds of things I compiled from scratch. At one time
I maintained binaries for a huge amount of Gnu pre-autotools systems by knowing
how to run Gnu make on all the systems, Intergraph Clix, AIX, SunOS, HP-UX,
Ultrix and Irix. Autotools are the shell scripts from hell.
Before autoconf there was imake which was truly the spawn of the devil. That was when X11
was not yet available on SunOS so I had to supply binaries for ARCO's research lab and
any affiliate who needed them. IIRC I also did binaries for the Alliant i860 based
"super" computer. Imake tried to run Makefiles though the C preprocessor
instead of the Bourne shell. Only to discover that some systems would not let you do
that. I simply ported gmake and was done. Once I'd done all the system flavors I simply
included a hand built set of make definitions in an include file in the standard
Makefiles using gmake. This was what I did while waiting for the system compiles for the
work I was paid.
Got a really nice email from an admin I knew. He'd been facing doing a huge
system patch across the 6 OSes that I had built all the tools for. I had gotten
a new contract and was no longer there.
"I was facing a long evening installing patches, but Reg had been here and
expect(1m) was everywhere. I was done in almost no time at all."
I had to write the installer for an aggregate of 8 IIRC $100k/seat programs
which ran a root and trashed each other. A worked, install B and it works, but
A is broken. Reinstall A and B is broken. Now consider the fun when you get to
system H. I had mentioned the problem at the end of a meeting once and was
quite gob smacked when I was assigned to direct 2 full time employees to
resolve the issue. The problem was doiing tap dances on the system
configuration files. My install was a pair of tarballs which checked for
conflicts and archived all the files I was fiddling with.
"Install" saved the files and unpacked the tarballs. "Uninstall" removed them
and restored the archived files. Total was about 100 lines of /bin/sh. Completely bulletproof.
Have Fun!
Reg
On Sunday, August 17, 2025 at 10:50:08 AM CDT, Till Wegmüller
<[email protected]> wrote:
Speaking of making OI more friendly for new users. what would
incentivise people to make packages?
-Till
On 17.08.25 16:57, Reginald Beardsley via openindiana-discuss wrote:
Till,
I just signed up as a $100/month sponsor.
Kudos to whoever set up the donation link and including PayPal. That was an
excellent experience.
Have Fun!
Reg
_______________________________________________
openindiana-discuss mailing list
[email protected]
https://openindiana.org/mailman/listinfo/openindiana-discuss
_______________________________________________
openindiana-discuss mailing list
[email protected]
https://openindiana.org/mailman/listinfo/openindiana-discuss