FreeBSD specific Release Engineering

From Lazarus wiki
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

scripts using sh instead of bash

(originally by Andres K. Foerster)

Current scripts: samplecfg/install.sh/cross* known scripts not affected: makepack (no chance of running on a TARGET computer)

The script sometimes uses one "=" and sometimes two "==" for comparisions. The /bin/sh of FreeBSD accepts just one "=" in comparisions. See test(1). or sometimes the "x" trick works: if [ "x$something" = "xsomething" ] ...

"echo -n" is supported in the shell of FreeBSD, but it's not standard. You could use "printf" instead of "echo -n". That seems more standardized.

Also the tar parameter "--directory" is a extension of GNU-tar. You could use "-C" instead of "--directory", but be careful with that. It seems "-C" is implemented differently. (My FreeBSD still comes with GNU tar, but I've heard that they switch to their own version of tar... I'll have a look at it.)

That's all as far as I can see. Then you can use "#!/bin/sh".

(Marco van de Voort:)

  • Also test using BSD sed and tar from time to time. (some sed constructs are already replaced by awk)
  • In case of bash use #!/usr/bin/env bash NEVER hardcode the shell path!

install.sh

The documentation currently generates the PDF docs with a directory in the .tar.gz, which doesn't play nice with FreeBSD hierarchy. Moreover, to workaround this on Linux, they use gnu tar specific options (--directory).

So every release the following changes are made: - the docs are repacked without the directory - the --directory option is removed from the doc tar x line in the install.sh script


notes from recent packaging

  • synced all ELF ABI tag versions to make it easier to patch with the i386/identpatch.sh script.
  • FreeBSD 8.2 bsdtar seems to understand --strip fine.
  • See sometimes "grab_vcsa" missing error.
  • debugger of 9.0/i386 gave funny results/output. Constantly gave "errorcode=0 3 hidden steps" msgs.
  • newer freebsd seems to have a kiconv. Maybe the RTL should use kiconv instead of iconv. If only because the iconv package has a dependency on perl 5.

See also