LinuxQuestions.org
Visit Jeremy's Blog.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices


Reply
  Search this Thread
Old 09-24-2022, 06:06 PM   #1
kjhambrick
Senior Member
 
Registered: Jul 2005
Location: Round Rock, TX
Distribution: Slackware64 15.0 + Multilib
Posts: 2,159

Rep: Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512
Opinions Wanted: Which Slackware Package Manager for an SBo SlackBuild Developer ( and why )?


All --

I've got a few SlackBuilds on SBo and I would like to submit a few more.

The ones I've submitted so far are pretty simple as far as REQUIRES Dependencies go.

The newer ones that I would like to submit have oodles-n-gobs of REQUIRES and to be fair to the maintainers and users, I should develop the SBo Files on a clean system so I can iron out all the obvious wrinkles before submission.

I've never adopted a high-level package manager for Slackware -- I still use my own hand-rolled system way that I came up with back when.

But my system requires me to clone a SlackBuild Directory into a local build dir ; build the SlackBuild then `installpkg --inatall-new` each package.

Building a new SBo Package with more than a couple REQUIRES on a clean system is killing me

Which High-Level Slackware Package Manager do you use ?

Does it allow for a Local Repo of my own SBo-Conformant Packages ?

Thanks !

-- kjh
 
Old 09-25-2022, 03:47 AM   #2
Tonus
Senior Member
 
Registered: Jan 2007
Location: Paris, France
Distribution: Slackware-15.0
Posts: 1,408
Blog Entries: 3

Rep: Reputation: 514Reputation: 514Reputation: 514Reputation: 514Reputation: 514Reputation: 514
Hi
I use sbopkg with its queue files.
I do a serie of one level deps and merge to test easily the final package. I share my build dir between my system and a genuine 15.0 VM (see Alien Bob instructions to get a base and a virtual layer to crash and regenerate every time you need it).

I did that for my main system, using an ls command sorted by time in /var/lib/pkgtool/packages to get a quickly and fully operational new system.
 
3 members found this post helpful.
Old 09-25-2022, 04:06 AM   #3
solarfields
Senior Member
 
Registered: Feb 2006
Location: slackalaxy.com
Distribution: Slackware, CRUX
Posts: 1,458

Rep: Reputation: 1010Reputation: 1010Reputation: 1010Reputation: 1010Reputation: 1010Reputation: 1010Reputation: 1010Reputation: 1010
i made my own set of small tools, to interact and display information from SBo:
https://github.com/slackalaxy/sboutils

for installing I just use sbopkg
 
3 members found this post helpful.
Old 09-25-2022, 07:18 AM   #4
kjhambrick
Senior Member
 
Registered: Jul 2005
Location: Round Rock, TX
Distribution: Slackware64 15.0 + Multilib
Posts: 2,159

Original Poster
Rep: Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512
Thanks for the input Tonus and solarFields

I've definitely got some ( a lotta ) studying ahead of me

Below is an example of a local librasterlite2.SlackBuild under development.

What I would like to be able to do is add my Local SlackBuild Development Repo ( /dld/15.0/slackbuilds/kjh-build/ ) to say, sbopkg so that I can auto-build and install the REQUIRE Tree for my local SlackBuild.

I don't see how to add my Local Development Repo to sbopkg or sboutils.

Am I missing something obvious ?

Thanks again !

-- kjh

This is librasterlite2.info which is in my Local SlackBuild Development Repo ~/librasterlite2/ directory
Code:
# cat librasterlite2.info

PRGNAM="librasterlite2"
VERSION="1.1.0-beta1"
HOMEPAGE="https://www.gaia-gis.it/fossil/librasterlite2/home"
DOWNLOAD="https://www.gaia-gis.it/gaia-sins/librasterlite2-sources/librasterlite2-1.1.0-beta1.tar.gz"
MD5SUM="39f6fe5348727920317c8037116c6766"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="libgeotiff leptonica"
MAINTAINER="Konrad J Hambrick"
EMAIL="kjhambrick@gmail.com"
Code:
# cd /dld/15.0/slackbuilds/kjh-build/librasterlite2/librasterlite2
#
# get-sb-requires ./librasterlite2.info

# Command Line: /home/local/bin/get-sb-requires ./librasterlite2.info
# 
# Dep | Lvl | Package              | Requires
    1 |   4 | protobuf3            | 
    2 |   3 | gdal                 | geos proj
    3 |   3 | postgresql           | 
    4 |   3 | protobuf-c           | protobuf3
    5 |   2 | freexl               | 
    6 |   2 | geos                 | 
    7 |   2 | libminizip           | 
    8 |   2 | postgis              | gdal postgresql protobuf-c
    9 |   2 | proj                 | 
   10 |   1 | leptonica            | 
   11 |   1 | libgeotiff           | proj
   12 |   1 | libspatialite        | proj geos freexl postgis libminizip
   13 |   0 | librasterlite2       | libgeotiff leptonica libspatialite
 
Old 09-25-2022, 07:27 AM   #5
solarfields
Senior Member
 
Registered: Feb 2006
Location: slackalaxy.com
Distribution: Slackware, CRUX
Posts: 1,458

Rep: Reputation: 1010Reputation: 1010Reputation: 1010Reputation: 1010Reputation: 1010Reputation: 1010Reputation: 1010Reputation: 1010
kjhambrick,

for this, make sbopkg use your local repo *and* use sqg to generate queue files from it, too. Then load said queue and build?
 
1 members found this post helpful.
Old 09-25-2022, 08:17 AM   #6
kjhambrick
Senior Member
 
Registered: Jul 2005
Location: Round Rock, TX
Distribution: Slackware64 15.0 + Multilib
Posts: 2,159

Original Poster
Rep: Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512
Thanks solarfields.

I am testing your idea as we speak ... librasterlite2 is compiling now ...

Thank you !

-- kjh
 
1 members found this post helpful.
Old 09-25-2022, 09:08 PM   #7
Regnad Kcin
Member
 
Registered: Jan 2014
Location: Beijing
Distribution: Slackware 64 -current .
Posts: 663

Rep: Reputation: 460Reputation: 460Reputation: 460Reputation: 460Reputation: 460
sqg and sbopkg with ponce's correction to sbopkg.conf for -current is generally trouble-free for me
 
1 members found this post helpful.
Old 09-25-2022, 10:30 PM   #8
USUARIONUEVO
Senior Member
 
Registered: Apr 2015
Posts: 2,357

Rep: Reputation: 962Reputation: 962Reputation: 962Reputation: 962Reputation: 962Reputation: 962Reputation: 962Reputation: 962
slapt-src

no need to do nothing to autodepency resolve.

and easy to mantain system up to date with single command

slapt-src -U

https://github.com/jaos/slapt-src
 
1 members found this post helpful.
Old 09-25-2022, 11:34 PM   #9
fourtysixandtwo
Member
 
Registered: Jun 2021
Location: Alberta
Distribution: Slackware...mostly
Posts: 328

Rep: Reputation: 217Reputation: 217Reputation: 217
Quote:
Originally Posted by solarfields View Post
kjhambrick,

for this, make sbopkg use your local repo *and* use sqg to generate queue files from it, too. Then load said queue and build?
I do this as well with a clone of slackbuilds into the local repo location and just switch between branches. Also use git to manage the queue files as it's easier to track the changes and switch between branches inline with the repo.

Part of my reason for going this direction was helping update all the slackbuilds from i486->i586 so I needed to work on the entire repo. Plus I didn't start down this path with any kind of repo of my own.

My process is still evolving as I've only recently become a maintainer so I'll be on the lookout for tips and tricks in this thread as well!

Quick setup and notes I use after installing sbopkg on the vm:

Code:
# cat << EOF > /root/.sbopkg.conf
OUTPUT=/tmp/pkgs
REPO_NAME=local
REPO_BRANCH=local
EOF

cd /var/lib/sbopkg/local/
git clone /nfs/git/slackbuilds local

#make it easier to move around
ln -sf /var/lib/sbopkg/local/local/ ~/sblocal
ln -sf /var/lib/sbopkg/queues/ ~/sbqueues

# don't use sbopkg -r
# manually checkout and rebase whatever branch and sbopkg won't reset any of your changes like it normally does

#generate all the queue files based on master(15.0) first, usually on the fastest machine then tar/git to an nfs location
sqg -j 8 -a

# main cli command I use to build packages
#   -k is really handy to skip already installed slackbuilds
sbopkg -R -B -k -i sbo_pkgname
 
1 members found this post helpful.
Old 09-26-2022, 10:05 AM   #10
drumz
Member
 
Registered: Apr 2005
Location: Oklahoma, USA
Distribution: Slackware
Posts: 907

Rep: Reputation: 697Reputation: 697Reputation: 697Reputation: 697Reputation: 697Reputation: 697
So I'm kind of weird and duplicate work. I used to exclusively use sbopkg. I manually created all my queue files in /var/lib/sbopkg/queues. I also tried to always document which dependencies were optional. For example, here is FlightGear.sqf:

Code:
@FlightGear-data
@SimGear
# Optional
@flite
FlightGear
and flite.sqf is pretty simple:

Code:
flite
This makes it super easy to find direct dependencies (I did all this before SBo added the reverse dependency search feature):

Code:
# grep flite *.sqf
FlightGear.sqf:@flite
ffmpeg.sqf:@flite
flite.sqf:flite
gst-plugins-bad-nonfree.sqf:@flite
gst-plugins-bad.sqf:@flite
I still maintain my sbopkg queue files, largely for this reason (and occasionally I still use sbopkg when building packages), but now I use slackrepo to build all my packages. Its hint files are easier to manage, but don't have the nice side effect of being effectively greppable. Here's FlightGear.hint:

Code:
ADDREQUIRES="flite"
I have much fewer hint files to manage since they're only needed when modifying a package's default options and/or dependencies. sbopkg requires a queue file for every package (technically stand-alone packages don't need one, like flite, but I always create one so that when that package is a dependency I can refer to it as @flite in the host queue file).

The only exception to my "every package gets a queue file" rule is fonts. Here is fonts.sqf:
Code:
adobe-source-code-pro-font
adobe-source-sans-pro-font
adobe-source-serif-pro-font
#cantarell-fonts
@dina-font
dse-typewriter-font
fira-fonts
fonts-opendyslexic
freefont #Remove symlink /etc/fonts/conf.d/35-freefont.conf
@gnu-unifont
google-droid-fonts
# hack-font-ttf # Added to Slackware
linux-libertine-fonts
noto-emoji
# noto-fonts # Added to Slackware
@symbola-font-ttf
tamsyn-font
ttf-ubuntu-font-family
univga-font
@webcore-fonts

Both sbopkg and slackrepo allow using a local repo. My local repo just has minimal patches on top of the 15.0 SBo branch (and of course additional patches when testing package updates that I maintain). I build inside a chroot.

For actually installing packages, I only use pkgtools.

Edit to add: the consequence of this is every week when I update SBo packages, I review the git history of all packages that need an update (quickly provided by "slackrepo update --preview") to check for newly-added optional (and required) dependencies. Then I modify my queue files and hint files together so they stay in sync.

Last edited by drumz; 09-26-2022 at 10:08 AM.
 
1 members found this post helpful.
Old 10-02-2022, 07:15 AM   #11
kjhambrick
Senior Member
 
Registered: Jul 2005
Location: Round Rock, TX
Distribution: Slackware64 15.0 + Multilib
Posts: 2,159

Original Poster
Rep: Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512
Thanks to Tonus, solarfields, Regnad Kcin, USUARIONUEVO, fourtysixandtwo and drumz for the feedback.

I have been making progress but I've hit a road-block.

Is it me and my Build System, or has anyone else been able to build office > pandoc ( not office > pandoc-bin, but pandoc.SlackBuild from source ).

Either manually or via a high-level package manager like sbopkg ?

I am stuck on haskell-lpeg.SlackBuild which fails as shown below my sig.

Thanks

-- kjh

tl;dr

I built a clean Slackware64 15.0 VMWare Guest with 2GB RAM and 128 GB HDD to learn sbopkg.

I chose sbopkg because I see how to add a local repo to develop and test new SlackBuilds for SBo which is what I am ultimately after.

I built several 'smallish' packages and I love the auto-build ; installpkg feature of sbopkg.

For example I built and installed gis/postgis which constructed the following queue file:
Code:
# cat /var/lib/sbopkg/queues/postgis.sqf

protobuf3
protobuf-c
postgresql
proj
geos
gdal
postgis
And everything worked ( woo hoo )

One Q I have is how does one manage requirements in the README for adding new users and groups and for say, adding an rc.postgresql file ?

I've got more studying to do

I've been using SBo office > pandoc-bin instead of office > pandoc for a while, mostly because there are 197 REQUIRES for the pandoc.SlackBuild when all is said an done and that's too hard to build manually

I tried pandoc.SlackBuild in sbopkg.

The build failed on ghc ( the first REQUIRE in the sqg queue ) -- it was killed due to out of memory on my VMWare box.

The following log was execution ghc.SlackBuild 'the old way' with a simple script wrapper:
Code:
ghc.SlackBuild startup  at Sun Sep 25 17:34:19 CDT 2022
ghc-8.10.4/INSTALL
<<snip>>
"inplace/bin/ghc-stage1" -hisuf p_hi -osuf  p_o -hcsuf p_hc -static -prof -eventlog  -H32m -O -Wall  -Iincludes -Iincludes/dist -Iincludes/dist-derivedconstants/header -Iincludes/dist-ghcconstants/header   -this-unit-id ghc-8.10.4 -hide-all-packages -i -icompiler/. -icompiler/backpack -icompiler/basicTypes -icompiler/cmm -icompiler/coreSyn -icompiler/deSugar -icompiler/ghci -icompiler/iface -icompiler/llvmGen -icompiler/main -icompiler/nativeGen -icompiler/parser -icompiler/prelude -icompiler/profiling -icompiler/rename -icompiler/simplCore -icompiler/simplStg -icompiler/specialise -icompiler/stgSyn -icompiler/stranal -icompiler/typecheck -icompiler/types -icompiler/utils -icompiler/hieFile -icompiler/stage2/build -Icompiler/stage2/build -icompiler/stage2/build/./autogen -Icompiler/stage2/build/./autogen -Icompiler/. -Icompiler/parser -Icompiler/utils -Icompiler/../rts/dist/build -Icompiler/stage2 -Icompiler/stage2/build/. -Icompiler/stage2/build/parser -Icompiler/stage2/build/utils -Icompiler/stage2/build/../rts/dist/build -Icompiler/stage2/build/stage2   -optP-DHAVE_INTERNAL_INTERPRETER -optP-DINTEGER_GMP -optP-DCAN_LOAD_DLL -optP-Iincludes/dist-install/build -optP-include -optPcompiler/stage2/build/./autogen/cabal_macros.h -package-id array-0.5.4.0 -package-id base-4.14.1.0 -package-id binary-0.8.8.0 -package-id bytestring-0.10.12.0 -package-id containers-0.6.2.1 -package-id deepseq-1.4.4.0 -package-id directory-1.3.6.0 -package-id filepath-1.4.2.1 -package-id ghc-boot-8.10.4 -package-id ghc-boot-th-8.10.4 -package-id ghc-heap-8.10.4 -package-id ghci-8.10.4 -package-id hpc-0.6.1.0 -package-id integer-gmp-1.0.3.0 -package-id process-1.6.9.0 -package-id template-haskell-2.16.0.0 -package-id terminfo-0.4.1.4 -package-id time-1.9.3 -package-id transformers-0.5.6.2 -package-id unix-2.7.2.2 -Wall -Wno-name-shadowing -Wnoncanonical-monad-instances -Wnoncanonical-monoid-instances -this-unit-id ghc -XHaskell2010 -XNoImplicitPrelude -optc-DTHREADED_RTS -DGHCI_TABLES_NEXT_TO_CODE -Iincludes/dist-install/build -Rghc-timing -O2 -haddock -Wcpp-undef  -no-user-package-db -rtsopts      -Wnoncanonical-monad-instances  -outputdir compiler/stage2/build   -c compiler/main/DynFlags.hs -o compiler/stage2/build/DynFlags.p_o -dyno compiler/stage2/build/DynFlags.dyn_o
make[1]: *** [compiler/ghc.mk:308: compiler/stage2/build/DynFlags.p_o] Killed
make: *** [Makefile:128: all] Error 2
ghc.SlackBuild FAILED   at Sun Sep 25 18:29:48 CDT 2022 ... RetCode = 2
So I bumped the RAM on my VMWare Machine to 8GB and I could see that I was going to run out of Disk Space too so I `resize2fs` my / partition to 256 GB and tried compiling ghc again and it worked via my simple script wrapper.

So I `removepkg ghc` and I tried the pandoc.sqg queue file again via sbopkg and it failed to build the haskell-lpeg.SlackBuild.

This is the error when I tried building haskell-lpeg via my old wrapper script:
Code:
haskell-lpeg.SlackBuild startup  at Mon Sep 26 09:18:39 CDT 2022
lpeg-1.0.2/
<<snip>>
Building library for lpeg-1.0.2..
[1 of 1] Compiling Lua.LPeg
[1 of 1] Compiling Lua.LPeg
Preprocessing library for lpeg-1.0.2..
Running Haddock on library for lpeg-1.0.2..
haddock: internal error: dist/doc/html/lpeg/haddock-response79014-1.txt: hGetContents: invalid argument (invalid byte sequence)
haskell-lpeg.SlackBuild FAILED   at Mon Sep 26 09:18:42 CDT 2022 ... RetCode = 1
I stopped there last Sunday ...

Does haskell-lpeg.SlackBuild work for anyone else ?

Better yet, does the sbopkg pandoc.sqg queue file work ?

If so, I'll look at my system.

If not, I'll see what I can find out about the latest requirements for compiling pandoc.

Any Ideas ?

Thanks again.

-- kjh
 
1 members found this post helpful.
Old 10-02-2022, 11:53 AM   #12
Tonus
Senior Member
 
Registered: Jan 2007
Location: Paris, France
Distribution: Slackware-15.0
Posts: 1,408
Blog Entries: 3

Rep: Reputation: 514Reputation: 514Reputation: 514Reputation: 514Reputation: 514Reputation: 514
I ended installing pandoc-bin because of similar problems.
Looking at your attempt, I was wondering if you build with the root account from login, su command or su -, and if you re-logged after installing haskell
Might have nothing related but since it's about a not so usual (and not avaible by default) compiler...
 
1 members found this post helpful.
Old 10-02-2022, 03:55 PM   #13
kjhambrick
Senior Member
 
Registered: Jul 2005
Location: Round Rock, TX
Distribution: Slackware64 15.0 + Multilib
Posts: 2,159

Original Poster
Rep: Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512
Thanks for the idea Tonus.

I always log in as root via su - ( or maybe via ssh -YC root@hostname )

-- kjh
 
Old 10-03-2022, 04:32 AM   #14
fourtysixandtwo
Member
 
Registered: Jun 2021
Location: Alberta
Distribution: Slackware...mostly
Posts: 328

Rep: Reputation: 217Reputation: 217Reputation: 217
It's still building, but I'm up to haskell-http-client.

-bumped up the mem to 10GB on the 15.0 vbox vm as I was having issues building ghc even at 8GB.
-only other issue is having to "rm /var/cache/sbopkg/*cabal" files when it stops, and hit (R)etry to continue.
 
1 members found this post helpful.
Old 10-03-2022, 04:44 AM   #15
kjhambrick
Senior Member
 
Registered: Jul 2005
Location: Round Rock, TX
Distribution: Slackware64 15.0 + Multilib
Posts: 2,159

Original Poster
Rep: Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512
fourtysixandtwo --

10GB might make sense if you're booting a GUI DeskTop ... I didn't mention that I boot the VM to runlevel 3 then I ssh in from my VMWare Host ...

I saw several retry's too but when I checked the System on another ssh terminal session, the Packages seemed to be installed OK after a retry.

Thanks for testing !

-- kjh
 
1 members found this post helpful.
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
SpiderOak Encryptr, Password Manager Opinions Wanted caseyl Linux - Software 2 02-20-2018 05:07 PM
nvidia-driver SBo The symbolic link '/usr/lib/libGL.so.1' does not point to 'tmp/SBo/package-nvidia-driver/usr/lib64/libGL.so.1' Gerardo Zamudio Slackware 5 07-30-2017 10:44 PM
SBo Protocol for using slackware-current package as slackbuild dependency? michaelslack Slackware 7 03-07-2013 07:35 PM
Nvidia-driver.SlackBuild from SBo (or: I am a bad and sloppy SBo maintainer) kingbeowulf Slackware 8 08-31-2012 02:41 AM
ffmpeg.SlackBuild: line 194: cd: /tmp/SBo/package-ffmpeg/usr/man: No such file or dir darkstarbyte Linux - Software 7 12-29-2010 05:45 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware

All times are GMT -5. The time now is 07:17 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration