Re: [Slackbuilds-users] What about slack-{required, suggests} files?

2018-03-12 Thread Didier Spaier
Caveat: this rant doesn't bring much added value to David's answer to
the OP. Still, here it is, as maybe not every submitter is aware of how
the information about deps is used by some tools.

Le 10/03/2018 à 20:23, B Watson a écrit :
> On 3/10/18, David Spencer  wrote:
> 
>> slack-required in the SBo repository is pointless, we already have
>> REQUIRES= in the .info file. When your preferred build tool builds the
>> package, it can create and package the slack-required file, and/or
>> create a .dep file, and/or PACKAGE REQUIRED line in a .meta file.
> 
> Also, tools that use slack-required are probably going to get confused
> by the fact that our REQUIRES doesn't list core Slackware packages,
> only SBo ones.

the slapt-get tool reads the metada in PACKAGES.TXT like this one for
espeak:

PACKAGE NAME:  espeak-1.48.04-x86_64-4slint.txz
PACKAGE LOCATION:  ./slint
PACKAGE SIZE (compressed):  1096 K
PACKAGE SIZE (uncompressed):  4384 K
PACKAGE REQUIRED:  
aaa_elflibs|alsa-lib,aaa_elflibs|gcc,aaa_elflibs|gcc-g++,portaudio
PACKAGE CONFLICTS:  
PACKAGE SUGGESTS:  
PACKAGE DESCRIPTION:
espeak: eSpeak (a compact open source software speech synthesizer)
espeak: 
espeak: eSpeak produces good quality English speech. It uses a different
espeak: synthesis method from other open source text to speech (TTS) engines,
espeak: and sounds quite different. It's perhaps not as natural or smooth,
espeak: but some find the articulation clearer and easier to listen to for
espeak: long periods. It can run as a command line program to speak text from
espeak: a file or from stdin.
espeak: 
espeak: HomePage:http://espeak.sourceforge.net/
espeak: 

In this case PACKAGE REQUIRED lists core Slackware packages as deps, as
they are written by a script that reads the .dep files, themselves
written using George Vlahavas' depfinder, then edited manually when
necessary.

Of course the list of deps depends on the context of the build.
It recently failed to start mate-terminal because I had built it with
webkit2gtk installed, but since removed.

About using the deps to build (not install) a package, the information
is already included in SLACKBUILD.TXT, e.g. this one:
https://slackbuilds.org/slackbuilds/14.2/SLACKBUILDS.TXT

Let's take again the espeak example.

SLACKBUILD NAME: espeak
SLACKBUILD LOCATION: ./accessibility/espeak
SLACKBUILD FILES: README espeak.1 espeak.SlackBuild espeak.info makefile.patch 
slack-desc
SLACKBUILD VERSION: 1.48.04
SLACKBUILD DOWNLOAD: 
http://downloads.sourceforge.net/espeak/espeak-1.48.04-source.zip
SLACKBUILD DOWNLOAD_x86_64: 
SLACKBUILD MD5SUM: cadd7482eaafe9239546bdc09fa244c3
SLACKBUILD MD5SUM_x86_64: 
SLACKBUILD REQUIRES: portaudio
SLACKBUILD SHORT DESCRIPTION:  espeak (a compact open source software speech 
synthesizer)

These lines are copied from espeak.info:
https://slackbuilds.org/slackbuilds/14.2/accessibility/espeak/espeak.info

Here portaudio is rightly listed here as the only needed dependency
beyond a full Slackware installation.

As an aside, slapt-src, used by Slint, Salix and other Slackware
derivatives use this file to manage the dependencies.

So, having a separate slack-required file in a submission would
be redundant at least for this use case IMHO.

I didn't check that slapt-src builds the deps in the right order as
the one give by sqg, but if it could using a similar algorithm.

Have a good day,
Didier
___
SlackBuilds-users mailing list
SlackBuilds-users@slackbuilds.org
https://lists.slackbuilds.org/mailman/listinfo/slackbuilds-users
Archives - https://lists.slackbuilds.org/pipermail/slackbuilds-users/
FAQ - https://slackbuilds.org/faq/



Re: [Slackbuilds-users] What about slack-{required, suggests} files?

2018-03-10 Thread B Watson
On 3/10/18, David Spencer  wrote:

> slack-required in the SBo repository is pointless, we already have
> REQUIRES= in the .info file. When your preferred build tool builds the
> package, it can create and package the slack-required file, and/or
> create a .dep file, and/or PACKAGE REQUIRED line in a .meta file.

Also, tools that use slack-required are probably going to get confused
by the fact that our REQUIRES doesn't list core Slackware packages,
only SBo ones.

> slack-conflicts is a rare case. At the moment we add some advice in
> README and we add %README% to REQUIRES=. I would be personally quite
> happy to kill %README% forever, by putting a new CONFLICTS= line in
> the .info file, which would be more elegant than having a separate
> slack-conflicts file. But see below :)

Same deal with this, it would have to be able to list core Slack packages.
Example would be texlive for 14.2 (conflicts with tetex).

The idea about separate variables for build-time vs. runtime deps is
almost appealing to me. If "foo" is a build dep that can be removed
afterward, and "bar" and "baz" are runtime deps:

REQUIRES="foo bar baz"
BUILDREQ="foo"

...meaning there's some redundancy (foo is listed in both places), but
it'd be backwards compatible with existing tools and workflows. To start
out with, some kind SBo admin would write a script that adds a BUILDREQ=""
line to every .info file, and maintainers could fill them in piecemeal.
___
SlackBuilds-users mailing list
SlackBuilds-users@slackbuilds.org
https://lists.slackbuilds.org/mailman/listinfo/slackbuilds-users
Archives - https://lists.slackbuilds.org/pipermail/slackbuilds-users/
FAQ - https://slackbuilds.org/faq/



Re: [Slackbuilds-users] What about slack-{required, suggests} files?

2018-03-10 Thread Erik Hanson
On 03/10/2018 10:50 AM, Andrew wrote:

> I think we should have MAKEDEP and RUNDEP lines in info file for listing 
> build-time and runtime dependencies there.

No need to complicate things, we're only concerned with what's required
to build a package. Anything that can be removed later should already be
noted in the README.

> Also, can we add SHA256SUM to .info file for slackers with paranoia? ;-)

The sums are not used for security, we have no control over upstream
sources anyway. It's just there so end users can verify they're using
the same source files that the script was tested against.


-- 
Erik



signature.asc
Description: OpenPGP digital signature
___
SlackBuilds-users mailing list
SlackBuilds-users@slackbuilds.org
https://lists.slackbuilds.org/mailman/listinfo/slackbuilds-users
Archives - https://lists.slackbuilds.org/pipermail/slackbuilds-users/
FAQ - https://slackbuilds.org/faq/



Re: [Slackbuilds-users] What about slack-{required, suggests} files?

2018-03-10 Thread Brenton Earl


On 03/10/2018 09:50 AM, Andrew wrote:
> Also, can we add SHA256SUM to .info file for slackers with paranoia? ;-)
> 
> --
>   Andrew

+1

I wouldn't call it paranoia, just peace of mind.

-- 
Brenton Earl
___
SlackBuilds-users mailing list
SlackBuilds-users@slackbuilds.org
https://lists.slackbuilds.org/mailman/listinfo/slackbuilds-users
Archives - https://lists.slackbuilds.org/pipermail/slackbuilds-users/
FAQ - https://slackbuilds.org/faq/



Re: [Slackbuilds-users] What about slack-{required, suggests} files?

2018-03-10 Thread Andrew


On March 10, 2018 3:37:56 PM UTC, David Spencer 
 wrote:
>
>*Personal opinions*
>
>slack-conflicts is a rare case. At the moment we add some advice in
>README and we add %README% to REQUIRES=. I would be personally quite
>happy to kill %README% forever, by putting a new CONFLICTS= line in
>the .info file, which would be more elegant than having a separate
>slack-conflicts file. But see below :)
>

I think we should have MAKEDEP and RUNDEP lines in info file for listing 
build-time and runtime dependencies there.

Also, can we add SHA256SUM to .info file for slackers with paranoia? ;-)

>A final personal opinion: our policies evolve when people ask good
>questions, and this is a good question. Thank you :)
>
>Cheers
>-D.
>___
>SlackBuilds-users mailing list
>SlackBuilds-users@slackbuilds.org
>https://lists.slackbuilds.org/mailman/listinfo/slackbuilds-users
>Archives - https://lists.slackbuilds.org/pipermail/slackbuilds-users/
>FAQ - https://slackbuilds.org/faq/

--
  Andrew
___
SlackBuilds-users mailing list
SlackBuilds-users@slackbuilds.org
https://lists.slackbuilds.org/mailman/listinfo/slackbuilds-users
Archives - https://lists.slackbuilds.org/pipermail/slackbuilds-users/
FAQ - https://slackbuilds.org/faq/



Re: [Slackbuilds-users] What about slack-{required, suggests} files?

2018-03-10 Thread David Spencer
> Are we allowed to add slack-required, slack-suggests and slack-conflicts
> files to our scripts?

At the moment, no. If you can find some, it was probably a mistake, or
maybe a specially negotiated exception, but I don't think there are
any :)

*Personal opinions*

slack-required in the SBo repository is pointless, we already have
REQUIRES= in the .info file. When your preferred build tool builds the
package, it can create and package the slack-required file, and/or
create a .dep file, and/or PACKAGE REQUIRED line in a .meta file.

slack-suggests in the SBo repository duplicates the 'Optional
Requirements' in the README file.  sbotools (for example) can read
that!  When the package is built, your options become hard
requirements (with very few exceptions). So slack-suggests in a
package is almost always pointless. Your build tool can add your
*actually* *selected* optional dependencies into the final built
package's slack-required, file and/or the .dep file, and/or PACKAGE
REQUIRED line in the .meta file.

slack-conflicts is a rare case. At the moment we add some advice in
README and we add %README% to REQUIRES=. I would be personally quite
happy to kill %README% forever, by putting a new CONFLICTS= line in
the .info file, which would be more elegant than having a separate
slack-conflicts file. But see below :)

Some more personal opinions:

slack-required potentially has a too-complex syntax. Adding version
constraints is *evil*, it creates an NP-hard problem for your
installer, instead of the human maintainers doing their jobs properly.

slack-suggests does not have a sufficiently complex syntax, it can't
do what we sometimes need in the real world, for example packageA
*needs* packageB to have been built with its optional python3
dependency. (it's not just python3, there are others too)

slack-conflicts does not have a sufficiently complex syntax, it can't
do what we sometimes need in the real world, like the conflicts
between nvidia-driver and mesa+xorg-server.

A final personal opinion: our policies evolve when people ask good
questions, and this is a good question. Thank you :)

Cheers
-D.
___
SlackBuilds-users mailing list
SlackBuilds-users@slackbuilds.org
https://lists.slackbuilds.org/mailman/listinfo/slackbuilds-users
Archives - https://lists.slackbuilds.org/pipermail/slackbuilds-users/
FAQ - https://slackbuilds.org/faq/