native pkgbuild system not installing

Moderators: kirk, jamesbond, p310don, JakeSFR, step, Forum moderators

Post Reply
libertas
Posts: 118
Joined: Thu Apr 22, 2021 8:35 pm
Has thanked: 24 times
Been thanked: 3 times

native pkgbuild system not installing

Post by libertas »

Hi,

I've build a recipe for kc https://github.com/levaidaniel/kc using the native pkgbuild system.
The software builds fine, but the single binary compiled is not installed.

The pkb_build() of the recipe:

Code: Select all

pkg_build() { 
        cd /tmp/kc*
        make -f Makefile.linux READLINE=y BUNDLED_BCRYPT=y && make -f Makefile.linux install && pkg_build_slackdesc

When I compile manually,

Code: Select all

make -f Makefile.linux READLINE=y BUNDLED_BCRYPT=y

returns exit code 0 and

Code: Select all

Makefile.linux install

install the binary to

Code: Select all

/usr/local/bin/kc

But not from the pkg_build() function of the recipe.

The last lines of the output of the recipe:

Code: Select all

gcc -m64  kc.o malloc_check.o cmd_c.o cmd_cdel.o cmd_clear.o cmd_clipboard.o cmd_clist.o cmd_cnew.o cmd_copy.o cmd_cedit.o cmd_del.o cmd_edit.o cmd_export.o cmd_getnum.o cmd_help.o cmd_import.o cmd_info.o cmd_list.o cmd_new.o cmd_near.o cmd_passwd.o cmd_quit.o cmd_search.o cmd_searchre.o cmd_status.o cmd_swap.o cmd_version.o cmd_write.o commands.o commands_init.o ssha.o bcrypt/bcrypt_pbkdf.o bcrypt/blf.o bcrypt/explicit_bzero.o bcrypt/sha2.o -o kc `pkg-config --libs libcrypto` `pkg-config --libs libbsd` `pkg-config --libs libxml-2.0` -lreadline
install -D -s -o root -m 755 kc /usr/local/bin/kc
install -D -o root -m 644 kc.1 /usr/local/man/man1/kc.1
mkdir: created directory '/install'
packaging kc-2.5.3-x86_64-1
done
# ls -l /usr/local/bin/kc 
ls: cannot access '/usr/local/bin/kc': No such file or directory

What is wrong and how to correct it?

Attachments
recipe.gz
(1.13 KiB) Downloaded 10 times
step
Posts: 559
Joined: Thu Aug 13, 2020 9:55 am
Has thanked: 59 times
Been thanked: 205 times
Contact:

Re: native pkgbuild system not installing

Post by step »

The pkgbuild system build a package file in the ./output directory. Then you install the package with command installpkg output/PKGNAME-PKGVER-PKGARCH-PKGBUILD.txz where the PKG... things correspond to the values set inside your recipe. After the package is installed, you can ls COMMAND successfully, assuming the recipe build and installed the package inside the pkgbuild environment. Many times that translates into make && make install within the pkg_build() function. Tip: after running ./build-pkg.sh successfully, click the .txz file icon in the ./output directory to open the archive, and verify that the files you expect to be there really are.

step
Posts: 559
Joined: Thu Aug 13, 2020 9:55 am
Has thanked: 59 times
Been thanked: 205 times
Contact:

Re: native pkgbuild system not installing

Post by step »

I almost forgot to add that your recipe looks well done. Sorry I can't test it right now.
I can add just a few observations about some things that I do differently:

- Don't set BUNDLE and FORCEDL, I mean delete the n and leave the rest.
- Fewer lines for the SLACKDESC variable. I *think* 10 is the maximum allowed, and no more than 80 characters per line.
- Add version and short description (in brackets) to the first line of SLACKDESC, e.g., kc: kc 2.5.3 (console password manager)

libertas
Posts: 118
Joined: Thu Apr 22, 2021 8:35 pm
Has thanked: 24 times
Been thanked: 3 times

Re: native pkgbuild system not installing

Post by libertas »

Thanks @step for your help.

Now, that I've installed the package in my system, how can I share it to other FatDog users?

step
Posts: 559
Joined: Thu Aug 13, 2020 9:55 am
Has thanked: 59 times
Been thanked: 205 times
Contact:

Re: native pkgbuild system not installing

Post by step »

@libertas, if the package size is within the forum's storage limits, you could attach it to this thread; or put it somewhere in the cloud and publish the link in this forum otherwise. The Fatdog64 repo used to have a section for contributions, https://distro.ibiblio.org/fatdog/contrib/, but it hasn't been activated for the 900 series. So we use this forum for announcing and, where possible, sharing contributions. Some best practices for posting packages to the forum:
- One package, one thread. This helps keeping support questions and answers in one place.
- Announce the package in the first post of the thread. If you announce a further package update somewhere in the middle of the thread, add the update links also to the first post.

If you want to get fancy with package making, and manage your own externally-accessible server in the cloud, you could even create your own repository, which users can add to their Gslapt package manager's configuration.

Post Reply

Return to “Software”