How to make slackware repo?

Non release banter
User avatar
freestyler
Contributor
Contributor
Posts: 382
Joined: 17 Oct 2013, 14:21
Distribution: Porteus KDE4
Location: Traveller
Contact:

How to make slackware repo?

Post#1 by freestyler » 03 May 2014, 07:52

Just wondering what is required to make a slackware repository? Is there some sort of index file(s)?
Also how does USM determine required dependencies?
https://www.porteus-apps.org

User avatar
brokenman
Site Admin
Site Admin
Posts: 5436
Joined: 27 Dec 2010, 03:50
Distribution: Porteus v3.2rcX all desktops
Location: Brazil
Contact:

Re: How to make slackware repo?

Post#2 by brokenman » 03 May 2014, 18:50

I think alienbob has a script to create a slackware repo. Take a look at any slackware repo to see the file layout.

What is important for USM is the PACKAGES.TXT and MANIFEST files which are a record of all files contained within the repo. USM resolves dependencies by running 'ldd' against executables and seeing what is not found. It then searches through the database files (some of these database files do not exist in slackware repo's, they are created by me) until it finds the mother of the missing library. It loops through this process until all mother packages are found, no mother package is found or someother error is encountered.
How do i become super user?
Wear your underpants on the outside and put on a cape.

User avatar
freestyler
Contributor
Contributor
Posts: 382
Joined: 17 Oct 2013, 14:21
Distribution: Porteus KDE4
Location: Traveller
Contact:

Re: How to make slackware repo?

Post#3 by freestyler » 04 May 2014, 01:19

Thanks!
I gotta say I'm really impressed with USM, Its a really nice piece of code and Ive really enjoyed watching it evolve. Hats off!
off the topic..
I noticed that gtk_terminal only gets used for updating databases, how about:

Code: Select all

export GTK_TERMINAL='<window window_position="1" title="'$(gettext "Updating")'" allow-shrink="false" icon-name="usm">
That way it gives a more integrated look and feel :)
Out of curiousity, what does gettext do?
https://www.porteus-apps.org

User avatar
brokenman
Site Admin
Site Admin
Posts: 5436
Joined: 27 Dec 2010, 03:50
Distribution: Porteus v3.2rcX all desktops
Location: Brazil
Contact:

Re: How to make slackware repo?

Post#4 by brokenman » 04 May 2014, 14:22

Thanks Freestyler.

I'll take a look at the code for the terminal. The problem was that there is no real usable tailbox in gtkdialog where the window scrolls automatically as the text is shown. For this reason I went for the terminal display which also meant I could reuse the code from the CLI part instead of rewriting it.

gettext is a package that allows for i81n (internationalization) support ... meaning translations to different languages. Instead of a direct 'echo' it first goes via gettext which checks which LOCALE you are using and gets the text from /usr/share/locales instead. I've left the files intact for Japanese in the slackware package.
How do i become super user?
Wear your underpants on the outside and put on a cape.

User avatar
freestyler
Contributor
Contributor
Posts: 382
Joined: 17 Oct 2013, 14:21
Distribution: Porteus KDE4
Location: Traveller
Contact:

Re: How to make slackware repo?

Post#5 by freestyler » 04 May 2014, 16:01

ahh cool, Ill defiantly remember to use gettext for future coding.

Thanks for pointing me in the alien bob direction, really helped me out, found some other useful stuff too.
I got a sweet slackware repo on the way. I spent all day working on scripts to compile the entire SBo database for Porteus and finally got a real nice setup, still tweaking the compilation order. I'll share the scripts once ive finished testing it, there is almost 3500 packages in my queue and I want to make sure nothing get's missed. When its finished you will be able to clone the slackbuild database, download the source, build and install required dependencies in correct order from one command.
Ive also started pumping out my own slackbuild scripts for less common packages which is a bit of a pain but will make it really easy for the future.
Hopefully it will come in handy one day.

3 or 4 more computers would be handy...
https://www.porteus-apps.org

User avatar
brokenman
Site Admin
Site Admin
Posts: 5436
Joined: 27 Dec 2010, 03:50
Distribution: Porteus v3.2rcX all desktops
Location: Brazil
Contact:

Re: How to make slackware repo?

Post#6 by brokenman » 05 May 2014, 14:39

Sounds awesome. Also sounds like a lot of work.

If it helps any take a look in USM /var/usm/slacky/ and you will find LIBS.TXT and OPTIFEST. OPTIFEST (optimized manifest) is a record of all the libraries that a package contains. LIBS.TXT is a record of all the libraries a package needs.
These two are the key to dep resolution. It would be better if everybody followed the slacky standard and included a line each slackbuild called REQUIRED: but i don't think this will ever happen.
How do i become super user?
Wear your underpants on the outside and put on a cape.

User avatar
freestyler
Contributor
Contributor
Posts: 382
Joined: 17 Oct 2013, 14:21
Distribution: Porteus KDE4
Location: Traveller
Contact:

Re: How to make slackware repo?

Post#7 by freestyler » 05 May 2014, 15:53

Yeah its quite a bit of work but it's mostly automated now, I'm going through one category at a time to make sure everything gets built properly and in the right order. I ended up modifying spopkg and using queue files. Its at the point where I type in one command and wait a few hours and check the logfile for errors, then correct them/make slackbuild for any missing packages.

What would be the best way to make LIBS.TXT and OPTIFEST? do you have a script?
https://www.porteus-apps.org

User avatar
brokenman
Site Admin
Site Admin
Posts: 5436
Joined: 27 Dec 2010, 03:50
Distribution: Porteus v3.2rcX all desktops
Location: Brazil
Contact:

Re: How to make slackware repo?

Post#8 by brokenman » 05 May 2014, 20:15

My system is also automated. It is a set of scripts that do an rsync of the repo and then generate necessary files if the repo has any changes. I can upload the script set somewhere if you want it.
How do i become super user?
Wear your underpants on the outside and put on a cape.

User avatar
freestyler
Contributor
Contributor
Posts: 382
Joined: 17 Oct 2013, 14:21
Distribution: Porteus KDE4
Location: Traveller
Contact:

Re: How to make slackware repo?

Post#9 by freestyler » 06 May 2014, 01:32

That would be so awesome!
https://www.porteus-apps.org

User avatar
freestyler
Contributor
Contributor
Posts: 382
Joined: 17 Oct 2013, 14:21
Distribution: Porteus KDE4
Location: Traveller
Contact:

Re: How to make slackware repo?

Post#10 by freestyler » 06 May 2014, 05:25

I feel like Scrooge McDuck but instead of money, I'm bathing in slackware packages
https://www.porteus-apps.org

User avatar
freestyler
Contributor
Contributor
Posts: 382
Joined: 17 Oct 2013, 14:21
Distribution: Porteus KDE4
Location: Traveller
Contact:

Re: How to make slackware repo?

Post#11 by freestyler » 06 May 2014, 05:52

Image
https://www.porteus-apps.org

User avatar
brokenman
Site Admin
Site Admin
Posts: 5436
Joined: 27 Dec 2010, 03:50
Distribution: Porteus v3.2rcX all desktops
Location: Brazil
Contact:

Re: How to make slackware repo?

Post#12 by brokenman » 06 May 2014, 14:37

https://www.dropbox.com/sh/qku8qbrpsqt1ap0/t6cTkFLtVn

I have all slackware repos cloned onto a local HD. The first script I run is the check-changelog2.sh script. The paths are custom for my machine.
How do i become super user?
Wear your underpants on the outside and put on a cape.

User avatar
freestyler
Contributor
Contributor
Posts: 382
Joined: 17 Oct 2013, 14:21
Distribution: Porteus KDE4
Location: Traveller
Contact:

Re: How to make slackware repo?

Post#13 by freestyler » 06 May 2014, 15:17

Thanks for helping out and sharing your scripts brokenman, I really appreciate it.
https://www.porteus-apps.org

User avatar
freestyler
Contributor
Contributor
Posts: 382
Joined: 17 Oct 2013, 14:21
Distribution: Porteus KDE4
Location: Traveller
Contact:

Re: How to make slackware repo?

Post#14 by freestyler » 07 May 2014, 05:50

Just tested the scripts and they work great, The only problem is that it reads every file like .md5 etc. I will change it so it only reads the slackware packages
Thanks again.
https://www.porteus-apps.org


Post Reply