Void Linux discussion
 help / color / mirror / Atom feed
* Few packaging questions
@ 2015-01-22 20:51 Logen Kain
  2015-01-22 23:21 ` Stefan Mühlinghaus
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Logen Kain @ 2015-01-22 20:51 UTC (permalink / raw)
  To: voidlinux


[-- Attachment #1.1: Type: text/plain, Size: 2350 bytes --]

 

If I have more dependencies listed than I actually need, what is the 
easiest way to check?
Where is the easiest place to see the list of packages that don't need to 
be explicitly declared?  Which, if I understand correctly, should be all 
the bootstrap packages.

I would like to add a Packaging 101 to the wiki where I explain quick and 
dirty ways to get a package running.

My typical method:

   - 
   
   Add the make jobs to my ./etc/conf 
   - 
   
   Find source I want to package.  
   - 
   
   Look at list of depends if the dev has it readily available.
   - 
   
   Find the equivalent void packages that have those depends.  If the 
   depends have a 32bit version, add it to target, if not, add it to host
   - 
   
   Add them to a template along with all the basic information.
   - 
   
   Tell xbps to install
   - 
   
   grab the checksum from hostdir, add it to the template, and run again. 
   -- Can also download the file separately but I prefer to do it this way for 
   consistency
   - 
   
   Notice any config errors and add more dependencies. 
   
Keep going about it that way till it builds, if there are other strange 
errors I take a look at the AUR to see if they patch it.  At that point 
I'll either make a patch or try to run a GIT version.

If I have any questions I consult the Manual religiously.  If I still can't 
figure it out I'd post to google+, thankfully now people are using this 
forum so I can post here.

As for the "depends" line, I'm also not sure how to figure out everything a 
package depends on.  If I check the dependencies on package foo after I 
build it, and I haven't added any depends, will it still list the depends I 
need to add to the template?  Or does xbps-query get it's depends 
information from the built package?

I'd like to refine my process here with knowledge from the community before 
doing a write up on the wiki.

Things that I'd like to add to the wiki:

   - 
   
   my process, as noted above
   - 
   
   an example of each build style with explanations
   - 
   
   an example without a build style
   - 
   
   How to install a custom built package
   
If you've gotten this far, thanks for taking the time and I hope I can get 
some new insight on how I suck at packaging ^_^


 

[-- Attachment #1.2: Type: text/html, Size: 2955 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Few packaging questions
  2015-01-22 20:51 Few packaging questions Logen Kain
@ 2015-01-22 23:21 ` Stefan Mühlinghaus
  2015-01-23  3:29   ` Logen Kain
  2015-02-02 19:09   ` Logen Kain
  2015-01-23  9:13 ` Stefan Mühlinghaus
  2015-02-02 19:05 ` Logen Kain
  2 siblings, 2 replies; 9+ messages in thread
From: Stefan Mühlinghaus @ 2015-01-22 23:21 UTC (permalink / raw)
  To: voidlinux


[-- Attachment #1.1: Type: text/plain, Size: 1114 bytes --]

Yes, a packing howto would be interesting, especially dependency 
resolution. My current approach is working so far, but I'm wondering if it 
could not be streamlined. Are there any void-tools that support manual 
dependency resolution?

Also I don't think I understand your reasoning of what to add to which 
"depends"-variable. Maybe I'm misunderstanding you, but this is how I 
divide them:


   - *hostmakedepends:* All the stuff that the building machine needs to be 
   able to run through the building process. Mostly tools, like pkg-config or 
   somesuch. This is needed regardless of which architecture you are building 
   for.
   - *makedepends:* All stuff that is needed du build the package on the 
   building machine. Usually devel-versions of the required libraries. This is 
   dependant on the architecture you are building for.
   - *depends:* All the stuff required to run the package on the target 
   system. Not needed at all on the building machine, and dependant on the 
   target architecture.
   

I'm probably stating something obvious here, but there you go :)

[-- Attachment #1.2: Type: text/html, Size: 1191 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Few packaging questions
  2015-01-22 23:21 ` Stefan Mühlinghaus
@ 2015-01-23  3:29   ` Logen Kain
  2015-02-02 19:09   ` Logen Kain
  1 sibling, 0 replies; 9+ messages in thread
From: Logen Kain @ 2015-01-23  3:29 UTC (permalink / raw)
  To: voidlinux


[-- Attachment #1.1: Type: text/plain, Size: 1320 bytes --]


   
   - *depends:* All the stuff required to run the package on the target 
   system. Not needed at all on the building machine, and dependant on the 
   target architecture.
   

I have the issue of knowing what those dependancies actually are.  Usually 
when I find lists from upstream they list everything needed to build which 
also happens to (usually) include the run-time depends as well.  I'm just 
not sure how to easily seperate the run-time depends from the build 
dependancies.  Most of what I know are simply things that i've learned over 
practice, such as .desktop files requireing desktop-file-utils to work 
properly.

I would like the wiki page to be able to help people jump into package 
creation.  My hope is that if people see a jump start guide, they will be 
more inclined to try and build packages and refernce our excellent manual 
when more detailed information is needed.

Which I suppose means that the wiki needs to be a short and consise, 
perhaps even dirty, guide so people can get their toes a bit wet before 
diving into the full manual.  Diving into a manual such as that is 
intemidating, even if it's important. 

Oh note to self: Add commit message standards for anyone intending to do a 
pull request as well as basic forking on github instructions.

[-- Attachment #1.2: Type: text/html, Size: 1369 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Few packaging questions
  2015-01-22 20:51 Few packaging questions Logen Kain
  2015-01-22 23:21 ` Stefan Mühlinghaus
@ 2015-01-23  9:13 ` Stefan Mühlinghaus
  2015-02-02 19:05 ` Logen Kain
  2 siblings, 0 replies; 9+ messages in thread
From: Stefan Mühlinghaus @ 2015-01-23  9:13 UTC (permalink / raw)
  To: voidlinux


[-- Attachment #1.1: Type: text/plain, Size: 517 bytes --]

Ah, I see what you mean. Regarding runtime dependencies void is very 
forthcoming since it usually automatically detects them and you will not 
have to specify anything. You only need to add what cannot be detected 
automatically, and that boils down to the infos from the softwares author 
and what you can discern yourself by testing. I don't think that part can 
be significantly simplified since the possible ways one package can depend 
on another are so diverse. I would gladly be proven wrong though ;)

[-- Attachment #1.2: Type: text/html, Size: 524 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Few packaging questions
  2015-01-22 20:51 Few packaging questions Logen Kain
  2015-01-22 23:21 ` Stefan Mühlinghaus
  2015-01-23  9:13 ` Stefan Mühlinghaus
@ 2015-02-02 19:05 ` Logen Kain
       [not found]   ` <CABLHwtef9mKadZZFR+06yNZhuOE8YS_Z_3FHE=xgZ9FUoX409Q@mail.gmail.com>
  2 siblings, 1 reply; 9+ messages in thread
From: Logen Kain @ 2015-02-02 19:05 UTC (permalink / raw)
  To: voidlinux


[-- Attachment #1.1: Type: text/plain, Size: 376 bytes --]

When it comes to installing home built packages, I typically do one of 
these: 
xbps-install -R /path/to/binpkgs foo

Is there a way to simply install a package without a repository?  I didn't 
notice anything in the man page.

To clarify:
In Archlinux, if I remember correctly, "pacman -u /path/to/package" Will 
install the package without the need for repo data.

[-- Attachment #1.2: Type: text/html, Size: 410 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Few packaging questions
  2015-01-22 23:21 ` Stefan Mühlinghaus
  2015-01-23  3:29   ` Logen Kain
@ 2015-02-02 19:09   ` Logen Kain
  1 sibling, 0 replies; 9+ messages in thread
From: Logen Kain @ 2015-02-02 19:09 UTC (permalink / raw)
  To: voidlinux


[-- Attachment #1.1: Type: text/plain, Size: 1080 bytes --]


>
>
>    - *hostmakedepends:* All the stuff that the building machine needs to 
>    be able to run through the building process. Mostly tools, like pkg-config 
>    or somesuch. This is needed regardless of which architecture you are 
>    building for.
>    - *makedepends:* All stuff that is needed du build the package on the 
>    building machine. Usually devel-versions of the required libraries. This is 
>    dependant on the architecture you are building for.
>    - *depends:* All the stuff required to run the package on the target 
>    system. Not needed at all on the building machine, and dependant on the 
>    target architecture.
>    
>
>
I just realized I never clarified myself here, my bad.

The way I look at it:

   - *hostmakedepends: *Depends that are not architecture specific.
   - *makedepends:* Depends that *are* architecture specific. - So I check 
   if 32-bit packages exist.  If they do, I know it's architecture specific.
   - *depends: *Same as what you said, which actually helped clarify it a 
   bit for me.
   

[-- Attachment #1.2: Type: text/html, Size: 1313 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Fwd: Few packaging questions
       [not found]   ` <CABLHwtef9mKadZZFR+06yNZhuOE8YS_Z_3FHE=xgZ9FUoX409Q@mail.gmail.com>
@ 2015-02-02 19:14     ` Juan Romero Pardines
       [not found]     ` <CABLHwtfWdKPsexjP_p4oscok4US_y8gXWym1qGQ6uf7q7+COxw@mail.gmail.com>
  1 sibling, 0 replies; 9+ messages in thread
From: Juan Romero Pardines @ 2015-02-02 19:14 UTC (permalink / raw)
  To: voidlinux

[-- Attachment #1: Type: text/plain, Size: 217 bytes --]

No, there's no way of installing pkgs without repos.

xbps has been designed to require a repository to store packages, the
reason is that this
is the way to check its sha256 hash (for local repos) among others.

[-- Attachment #2: Type: text/html, Size: 331 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Fwd: Few packaging questions
       [not found]     ` <CABLHwtfWdKPsexjP_p4oscok4US_y8gXWym1qGQ6uf7q7+COxw@mail.gmail.com>
@ 2015-02-02 19:14       ` Juan Romero Pardines
  2015-02-02 19:51         ` Logen Kain
  0 siblings, 1 reply; 9+ messages in thread
From: Juan Romero Pardines @ 2015-02-02 19:14 UTC (permalink / raw)
  To: voidlinux

[-- Attachment #1: Type: text/plain, Size: 228 bytes --]

If you don't want to specify -R/--repository each time, just can just
declare that
repo in a xbps configuration file (as explained in xbps.d(5)):

$ echo repository=/path/to/hostdir/binpkgs > /etc/xbps.d/my-local-repo.conf

[-- Attachment #2: Type: text/html, Size: 334 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Few packaging questions
  2015-02-02 19:14       ` Juan Romero Pardines
@ 2015-02-02 19:51         ` Logen Kain
  0 siblings, 0 replies; 9+ messages in thread
From: Logen Kain @ 2015-02-02 19:51 UTC (permalink / raw)
  To: voidlinux


[-- Attachment #1.1: Type: text/plain, Size: 191 bytes --]

Oh I don't mind typing it in every time, I use fish so it's painless 
anyway.  I was mostly interested in package portability.  I was guessing it 
was probably designed that way.  Thanks.

[-- Attachment #1.2: Type: text/html, Size: 225 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2015-02-02 19:51 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-22 20:51 Few packaging questions Logen Kain
2015-01-22 23:21 ` Stefan Mühlinghaus
2015-01-23  3:29   ` Logen Kain
2015-02-02 19:09   ` Logen Kain
2015-01-23  9:13 ` Stefan Mühlinghaus
2015-02-02 19:05 ` Logen Kain
     [not found]   ` <CABLHwtef9mKadZZFR+06yNZhuOE8YS_Z_3FHE=xgZ9FUoX409Q@mail.gmail.com>
2015-02-02 19:14     ` Fwd: " Juan Romero Pardines
     [not found]     ` <CABLHwtfWdKPsexjP_p4oscok4US_y8gXWym1qGQ6uf7q7+COxw@mail.gmail.com>
2015-02-02 19:14       ` Juan Romero Pardines
2015-02-02 19:51         ` Logen Kain

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).