Path: csiph.com!usenet.pasdenom.info!dedibox.gegeweb.org!gegeweb.eu!nntpfeed.proxad.net!proxad.net!feeder1-2.proxad.net!usenet-fr.net!nerim.net!novso.com!newsfeed.xs4all.nl!newsfeed2.news.xs4all.nl!xs4all!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.001 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'scripts': 0.03; 'subject:Python': 0.06; 'executable': 0.09; 'hierarchical': 0.09; 'scripts,': 0.09; 'skip:/ 10': 0.09; 'subject:files': 0.09; 'subject:How': 0.10; 'windows': 0.15; 'filesystem': 0.16; 'finney': 0.16; 'from:addr:rosuav': 0.16; 'from:name:chris angelico': 0.16; 'gpl,': 0.16; 'happily': 0.16; 'inclined': 0.16; 'interpreter,': 0.16; 'jumped': 0.16; 'libraries.': 0.16; 'segment': 0.16; 'struck': 0.16; 'subject:program': 0.16; 'subject:where': 0.16; 'files.': 0.16; 'prevent': 0.16; 'skip:# 20': 0.16; 'language': 0.16; 'wrote:': 0.18; 'bit': 0.19; 'drawing': 0.19; 'instance,': 0.24; 'fairly': 0.24; 'mon,': 0.24; "haven't": 0.24; 'skip:" 20': 0.27; 'header:In-Reply-To:1': 0.27; 'am,': 0.29; 'unix': 0.29; 'message-id:@mail.gmail.com': 0.30; "i'm": 0.30; 'code': 0.31; 'too.': 0.31; 'text': 0.33; 'skip:# 10': 0.33; 'something': 0.35; 'but': 0.35; 'received:google.com': 0.35; 'there': 0.35; 'subject:data': 0.36; 'ben': 0.38; 'to:addr :python-list': 0.38; 'files': 0.38; 'skip:- 10': 0.38; 'does': 0.39; 'though,': 0.39; 'to:addr:python.org': 0.39; 'called': 0.40; 'even': 0.60; 'more': 0.64; 'levels': 0.65; 'charset:windows-1252': 0.65; 'between': 0.67; 'covers': 0.68; 'limit': 0.70; 'legal': 0.71; 'attention': 0.75; 'subject:find': 0.84; '2013': 0.98 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; bh=ulmFPwq9eHIOJMi9ccpRKBKKQ2PMTDBV28mDFTMc1n4=; b=soQYbcJhKs4kQv//zehdkNI25p1aVOIMHWl5XQwZmmtheq+hP8qE1Q57FV0ZQryQoM 1OxsB9MCKhpJ6og4pPZZ2CBc8JaHyZdU0LnINBWbk/KFzx4vesvVNQWsXFXT9TRN3Ffm wjuljLT5kwTr7BCt3r30qMK/2gKHl8g/AEIUoFkKzknAl1b0eHjYTK94uq/Gi2Xf+h0i 7hHjXR135W9ZPKMqHFXaFGQ1zdU/dfWxWx0T6EixSTk920NIqLWHuAES0pozFdo9jrbY 61fBXzg11h9ZAkFfjZtwnsloKg2BKmyowblWeCBHTGH22cdbMezAjJEjZ6nWbbkZ/RxW A0UA== MIME-Version: 1.0 X-Received: by 10.66.250.163 with SMTP id zd3mr10171548pac.109.1382918316158; Sun, 27 Oct 2013 16:58:36 -0700 (PDT) In-Reply-To: <7w7gcy9tpk.fsf@benfinney.id.au> References: <00704f33-7e7f-4ccf-b28b-69776d2e237d@googlegroups.com> <526C7FEF.7020206@islandtraining.com> <7w7gcy9tpk.fsf@benfinney.id.au> Date: Mon, 28 Oct 2013 10:58:36 +1100 Subject: Re: How to find where data files are installed for my Python program From: Chris Angelico To: python-list@python.org Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 41 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1382918324 news.xs4all.nl 15988 [2001:888:2000:d::a6]:60387 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:57776 On Mon, Oct 28, 2013 at 10:31 AM, Ben Finney w= rote: > It is an unfortunate artefact of Unix history that =93binary=94 has an > established connotation of =93executable=94, encompassing even executable > text files. That's a lot broader than Unix - people talk about "binaries" meaning executables in Windows and OS/2 too. Unix is, if anything, _less_ inclined that way - the executable segment is called "text", which always struck me as a bit odd. > So the separation I'm drawing attention to in the FHS has nothing to do > with whether the files are text files, and everything to do with whether > they're executable programs and code libraries. Yup. Unix does a fairly good job of blurring the line between "executables that can be loaded and jumped to" and "scripts that get loaded by an interpreter". I actually have a few scripts that take several levels of interpreter, something like: foo.pike #!/usr/local/bin/pike bar.pike: #!/.../foo.pike --parameter fum.pike: #!/.../bar.pike --otherparameter Unix will happily execute ./fum.pike as "/usr/local/bin/pike /.../foo.pike --parameter /.../bar.pike --otherparameter ./fum.pike". There's a limit on the number of interpreters (to prevent loops), but I haven't hit it :) There is one important place, though, where scripts are called data files, and that's licensing. The GPL, for instance, does NOT cover your scripts, even if it covers the interpreter, because *to the language interpreter*, your scripts are just data files. But that's more of a legal distinction than a filesystem hierarchical one. ChrisA