Skip to content

Lsb samples #5

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 7 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion lsb_release/debian/copyright
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Copyright:

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

On Debian GNU systems, the complete text of the GNU General
Public License can be found in `/usr/share/common-licenses/GPL'.
Expand Down
27 changes: 13 additions & 14 deletions lsb_release/src/COPYING
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991

Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.

Expand All @@ -15,7 +15,7 @@ software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.

When we speak of free software, we are referring to freedom, not
Expand Down Expand Up @@ -55,7 +55,7 @@ patent must be licensed for everyone's free use or not licensed at all.

The precise terms and conditions for copying, distribution and
modification follow.

GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

Expand Down Expand Up @@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)

These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
Expand Down Expand Up @@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.

4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
Expand Down Expand Up @@ -225,7 +225,7 @@ impose that choice.

This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.

8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
Expand Down Expand Up @@ -278,7 +278,7 @@ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.

END OF TERMS AND CONDITIONS

How to Apply These Terms to Your New Programs

If you develop a new program, and you want it to be of the greatest
Expand All @@ -303,17 +303,16 @@ the "copyright" line and a pointer to where the full notice is found.
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

Also add information on how to contact you by electronic and paper mail.

If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:

Gnomovision version 69, Copyright (C) year name of author
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
Expand All @@ -336,5 +335,5 @@ necessary. Here is a sample; alter the names:
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.
5 changes: 3 additions & 2 deletions lsb_release/src/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,16 @@ prefix=/usr/local
else
prefix=$(INSTALL_ROOT)
endif
mandir=${prefix}/man
mandir=${prefix}/share/man

all: man

man: lsb_release.1.gz

lsb_release.1.gz: lsb_release
@chmod u+x help2man lsb_release
@./help2man -N --include ./lsb_release.examples --alt_version_key=program_version ./lsb_release >lsb_release.1
@gzip -9f lsb_release.1
@gzip -9f -n lsb_release.1

install: all
install -D -m 644 lsb_release.1.gz ${mandir}/man1/lsb_release.1.gz
Expand Down
4 changes: 2 additions & 2 deletions lsb_release/src/help2man
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

# Written by Brendan O'Dea <[email protected]>
# Available from ftp://ftp.gnu.org/gnu/help2man/
Expand Down Expand Up @@ -173,7 +173,7 @@ my ($help_text, $version_text) = map {
or die "$this_program: can't get `--$_' info from $ARGV[0]\n"
} qw(help), $opt_version_key;

my $date = strftime "%B %Y", localtime;
my $date = strftime "%B %Y", gmtime($ENV{SOURCE_DATE_EPOCH} || time);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1 - thanks for this addition!

(my $program = $ARGV[0]) =~ s!.*/!!;
my $package = $program;
my $version;
Expand Down
12 changes: 1 addition & 11 deletions lsb_release/src/lsb_release
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# * Changes in 2.0
# - Support LSB 2.0 module layout (Mats Wichmann)
Expand Down Expand Up @@ -188,15 +188,6 @@ EnhancedGetopt() {

# Get/Init LSB infos (maybe Distrib infos too)
GetLSBInfo() {
if [ -f "$INFO_ROOT/$INFO_LSB_FILE" ]
then
# should init at least LSB_VERSION
. "$INFO_ROOT/$INFO_LSB_FILE"
fi
if [ -z "$LSB_VERSION" ]
then
LSB_VERSION=$MSG_NA
else
# if we found LSB_VERSION, continue to look in directory
if [ -d "$INFO_ROOT/$INFO_LSB_DIR" ]
then
Expand All @@ -205,7 +196,6 @@ GetLSBInfo() {
LSB_VERSION=$LSB_VERSION:`basename $tag`
done
fi
fi
}

# Get the whole distrib information string (from ARG $1 file)
Expand Down
54 changes: 27 additions & 27 deletions lsb_release/src/lsb_release.examples
Original file line number Diff line number Diff line change
@@ -1,29 +1,27 @@
[FILES]

If the installation is LSB compliant, the \fB"/etc/lsb-release"\fR
file should contain the \fBLSB_VERSION\fR field.
file should contain the \fBLSB_VERSION\fR field.
The value of the field should be a colon separated list of
supported module versions indicating the LSB specification
supported module versions indicating the LSB specification
modules to which the installation is compliant. If the installation is not
compliant, the above field should
compliant, the above field should
.B not
be present.

Optional fields are \fBDISTRIB_ID\fR, \fBDISTRIB_RELEASE\fR,
\fBDISTRIB_CODENAME\fR, \fBDISTRIB_DESCRIPTION\fR and can be used to
override information which is parsed from the
\fB"/etc/\fIdistrib\fB-release"\fR file.
override information which is parsed from the
\fB"/etc/os-release"\fR file. Since \fB"/etc/os-release"\fR is the new
standard, there is no need anymore to add any of the optional
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's a convention, yes - introduced by the systemd project and now in very wide usage. It's not correct to call it "standard", so in my opinion we might be looking for somewhat different wording here. This is just the manpage for the sample, so perhaps it doesn't matter too much.

fields to \fB"/etc/lsb-release"\fR.

If the \fB"/etc/lsb-release.d"\fR directory exists, it is
searched for filenames which are taken as additional module-version
strings to add to \fBLSB_VERSION\fR.

The \fB"/etc/\fIdistrib\fB-release"\fR file contains a description line
which is parsed to get information (especially on currently non-LSB
compliant systems).

The required line style is:
.br
.br
"\fIDistributor\fR \fBrelease\fR \fIx.x\fR \fB(\fR\fICodename\fR\fB)\fR"

Where \fIDistributor\fR can be a couple of words, but then concatenated
Expand All @@ -32,13 +30,6 @@ Where \fIDistributor\fR can be a couple of words, but then concatenated
\fIx.x\fR starts with a digit followed by any non-blank characters,
\fICodename\fR will also be concatenated (blanks cleanup only).

\fBrelease\fR may not be used as a keyword in \fBDISTRIB_DESCRIPTION\fR
if you don't want to override \fB"/etc/\fIdistrib\fB-release"\fR data.

\fBNotice:\fR To support the \fBDebian\fR distributions' lack of
information (see "/etc/debian_version" file) some have been directly
added into the \fBlsb_release\fR script.

[EXAMPLES]
If the "\fB/etc/lsb-release\fR" file contains:

Expand All @@ -50,27 +41,36 @@ and the "\fB/etc/lsb-release.d\fR" directory contains:

graphics-2.0-ia64 graphics-2.0-noarch

and the "\fB/etc/foobar-release\fP" file contains:
and the "\fB/etc/os-release\fP" file contains:

NAME="SLES"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure that we should be branding the example with a specific distribution - the original has been intentionally neutral on this.

.br
VERSION="12-SP2"
.br
VERSION_ID="12.2"
.br
PRETTY_NAME="SUSE Linux Enterprise Server 12 SP2"
.br
ID="sles"

My Linux Distrib release 1.0RC4 (TryIt)

Then the results of various options will be:

.B $ ./lsb_release --all
.br
LSB Version: core-2.0-ia64:core-2.0-noarch:graphics-2.0-ia64:graphics-2.0-noarch
.br
Distributor ID: MyDistrib
Distributor ID: SUSE
.br
Description: I enjoy using my distrib
.br
Release: 1.0RC4
Release: 12.2
.br
Codename: TryIt
Codename: n/a

.B $ ./lsb_release -a -s
.br
1.0 MyDistrib "I enjoy using my distrib" 1.0RC4 TryIt
1.0 SUSE "I enjoy using my distrib" 12.2 n/a

If the "/etc/lsb-release" file is absent (indicating this is
not an LSB compliant distribution), the result will be:
Expand All @@ -79,13 +79,13 @@ not an LSB compliant distribution), the result will be:
.br
LSB Version: n/a
.br
Distributor ID: MyDistrib
Distributor ID: SUSE
.br
Description: My Linux Distrib release 1.0RC4 (TryIt)
Description: SUSE Linux Enterprise Server 12 SP2
.br
Release: 1.0RC4
Release: 12.2
.br
Codename: TryIt
Codename: n/a

[REPORTING BUGS]
Report bugs at http://bugs.linuxbase.org.
Expand Down