diff options
author | Johannes 'josch' Schauer <josch@mister-muffin.de> | 2017-06-16 12:17:29 +0200 |
---|---|---|
committer | Johannes 'josch' Schauer <josch@mister-muffin.de> | 2017-06-16 15:19:38 +0200 |
commit | c3ab767d1b1fdf795eac51fc4933324452d08139 (patch) | |
tree | ca1992652d0e8afda6200413f55ff7bd8f166c5b | |
parent | 7fe1a5ea5ff4aeecbbc2af673cbdc88fbbea18d5 (diff) |
debianize
-rw-r--r-- | debian/README.Debian | 58 | ||||
-rw-r--r-- | debian/README.source | 15 | ||||
-rw-r--r-- | debian/changelog | 5 | ||||
-rw-r--r-- | debian/clean | 8 | ||||
-rw-r--r-- | debian/compat | 1 | ||||
-rw-r--r-- | debian/control | 69 | ||||
-rw-r--r-- | debian/copyright | 766 | ||||
-rw-r--r-- | debian/examples/nginx/sites-available/searx | 8 | ||||
-rw-r--r-- | debian/examples/uwsgi/apps-available/searx.ini | 24 | ||||
-rw-r--r-- | debian/python3-searx.install | 17 | ||||
-rw-r--r-- | debian/python3-searx.links | 8 | ||||
-rwxr-xr-x | debian/rules | 18 | ||||
-rw-r--r-- | debian/searx.docs | 1 | ||||
-rw-r--r-- | debian/searx.examples | 3 | ||||
-rw-r--r-- | debian/searx.install | 1 | ||||
-rw-r--r-- | debian/source/format | 1 | ||||
-rw-r--r-- | debian/source/options | 4 | ||||
-rw-r--r-- | debian/source/patch-header | 16 | ||||
-rw-r--r-- | debian/tests/control | 3 | ||||
-rw-r--r-- | debian/tests/general | 15 | ||||
-rw-r--r-- | debian/watch | 3 |
21 files changed, 1044 insertions, 0 deletions
diff --git a/debian/README.Debian b/debian/README.Debian new file mode 100644 index 0000000..772cda8 --- /dev/null +++ b/debian/README.Debian @@ -0,0 +1,58 @@ +Upstream installation guide: + + https://asciimoo.github.io/searx/dev/install/installation.html + +The Debian setup varies at some points. Here is the most simple setup that +starts searx in the foreground without daemonization: + + 1. Copy the default configuration file + + $ mkdir /etc/searx + $ gzip --to-stdout --decompress /usr/share/doc/searx/examples/settings.yml.gz > /etc/searx/settings.yml + + 2. Generate a secret key + + $ sed -i -e "s/ultrasecretkey/$(openssl rand -hex 16)/g" /etc/searx/settings.yml + + 3. Start searx + + $ searx-run + + 4. Try it out + + $ sensible-browser 127.0.0.1:8888 + +It follows a step by step instruction of how to setup searx as a uwsgi service +behind nginx: + + 1. Copy and symlink the nginx configuration + + $ cp /usr/share/doc/searx/examples/nginx/sites-available/searx /etc/nginx/sites-available + $ ln -s ../sites-available/searx /etc/nginx/sites-enabled/searx + + 2. Copy and symlink the uwsgi configuration + + $ cp /usr/share/doc/searx/examples/uwsgi/apps-available/searx.ini /etc/uwsgi/apps-available + $ ln -s ../apps-available/searx.ini /etc/uwsgi/apps-enabled/searx.ini + + 3. Copy the default configuration file + + $ mkdir /etc/searx + $ gzip --to-stdout --decompress /usr/share/doc/searx/examples/settings.yml.gz > /etc/searx/settings.yml + + 4. Generate a secret key + + $ sed -i -e "s/ultrasecretkey/$(openssl rand -hex 16)/g" /etc/searx/settings.yml + + 5. Restart nginx and uwsgi + + $ systemctl restart nginx + $ systemctl restart uwsgi + +The differences to the upstream instructions are: + + - the uwsgi user and group are www-data + - python3 is used instead of python2 + - no virtualenv is used + - uwsgi pythonpath and chdir are Debian-specific + - no root directive is set in nginx configuration diff --git a/debian/README.source b/debian/README.source new file mode 100644 index 0000000..8c2fe78 --- /dev/null +++ b/debian/README.source @@ -0,0 +1,15 @@ +General +======= + +This package uses the tarball-based variant of the dgit-maint-merge workflow. +Upstream uses git but distributes files constituting a copyright violation with +it. Thus, we do not want to ship upstream's git history but instead rely on +tarballs that were retrieved using uscan and repacked using mk-origtargz and +the Files-Excluded field from debian/copright. + +New upstream release +==================== + +To import a new upstream version, use: + + $ gbp import-orig --upstream-branch=upstream --debian-branch=master --upstream-tag='%(version)s' --sign-tags --no-pristine-tar --uscan diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..56e3cc6 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,5 @@ +searx (0.12.0+dfsg1-1) unstable; urgency=medium + + * Initial release. (Closes: #808564) + + -- Johannes Schauer <josch@debian.org> Fri, 16 Jun 2017 12:16:41 +0200 diff --git a/debian/clean b/debian/clean new file mode 100644 index 0000000..436e84d --- /dev/null +++ b/debian/clean @@ -0,0 +1,8 @@ +searx/translations/*/LC_MESSAGES/messages.mo +searx.egg-info/ +searx/static/themes/courgette/css/ +searx/static/themes/legacy/css/ +searx/static/themes/oscar/css/ +searx/static/themes/oscar/js/searx.js +searx/static/themes/oscar/js/searx.min.js +searx/static/themes/pix-art/css/ diff --git a/debian/compat b/debian/compat new file mode 100644 index 0000000..f599e28 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +10 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..0c5c623 --- /dev/null +++ b/debian/control @@ -0,0 +1,69 @@ +Source: searx +Section: web +Priority: optional +Maintainer: Johannes Schauer <josch@debian.org> +Build-depends: + debhelper (>= 10), + dh-python, + python3-all, + python3-setuptools, + node-less, + python3-babel, + grunt, + node-grunt-contrib-uglify, + node-grunt-contrib-concat +X-Python3-Version: >= 3.2 +Standards-Version: 3.9.8 +Homepage: https://github.com/asciimoo/searx/ +Vcs-Git: https://git.dgit.debian.org/searx +Vcs-Browser: https://browse.dgit.debian.org/searx.git/ + +Package: searx +Architecture: all +Depends: + ${python3:Depends}, + ${misc:Depends}, + python3-searx (= ${source:Version}) +Suggests: nginx, uwsgi, uwsgi-plugin-python3 +Description: Privacy-respecting metasearch engine + Searx is an internet metasearch engine which aggregates results from more than + 70 search services. Searx runs as a web service and provides a web interface + that allows the user to do a general search (aggregating results from google, + bing, yahoo) or search for files (piratebay, kickass, torrentz), images (bing, + deviantart, google images, flickr), IT (github, stackoverflow, Arch Linux + wiki), maps (OpenStreetMap, photon), music (youtube, spotify, soundcloud), + news (bing news, google news, reddit), science (arxiv, wolframalpha) social + media (digg, twitter) and videos (youtube, dailymotion, vimeo). + +Package: python3-searx +Architecture: all +Depends: + ${python3:Depends}, + ${misc:Depends}, + python3-certifi, + python3-yaml, + python3-pygments, + python3-werkzeug, + python3-flask, + python3-flask-babel, + python3-lxml, + python3-dateutil, + python3-openssl, + python3-ndg-httpsclient, + python3-pyasn1, + python3-requests, + libjs-bootstrap, + libjs-jquery, + node-requirejs, + libjs-leaflet +Description: Privacy-respecting metasearch engine - library package + Searx is an internet metasearch engine which aggregates results from more than + 70 search services. Searx runs as a web service and provides a web interface + that allows the user to do a general search (aggregating results from google, + bing, yahoo) or search for files (piratebay, kickass, torrentz), images (bing, + deviantart, google images, flickr), IT (github, stackoverflow, Arch Linux + wiki), maps (OpenStreetMap, photon), music (youtube, spotify, soundcloud), + news (bing news, google news, reddit), science (arxiv, wolframalpha) social + media (digg, twitter) and videos (youtube, dailymotion, vimeo). + . + This package provides the Python library. diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 0000000..a048840 --- /dev/null +++ b/debian/copyright @@ -0,0 +1,766 @@ +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: searx +Upstream-Contact: https://github.com/asciimoo/searx/issues +Source: https://github.com/asciimoo/searx +Files-Excluded: + searx/static/themes/oscar/js/searx.min.js + searx/static/themes/oscar/js/leaflet-0.7.3.min.js + searx/static/themes/oscar/css + searx/static/js + searx/static/css + searx/static/less + searx/static/fonts + searx/translations/*/LC_MESSAGES/messages.mo + searx/static/themes/legacy/css/style.css + searx/static/themes/legacy/css/style-rtl.css + searx/static/themes/courgette/css/style.css + searx/static/themes/courgette/css/style-rtl.css + searx/static/themes/oscar/css/pointhi.min.css + searx/static/themes/oscar/css/logicodev.min.css + searx/static/themes/pix-art/css/style.css + searx/static/themes/*/img/icons/*.ico + searx/static/themes/*/img/icons/*.png + searx/static/themes/*/img/github_ribbon.png + searx/static/themes/courgette/img/bg-body-index.jpg + +Files: * +Copyright: + 2013-2017 Adam Tauber <asciimoo@gmail.com> + 2016 Alexandre Flament <alex@al-f.net> + 2014-2015 Cqoicebordel <Cqoicebordel@users.noreply.github.com> + 2014 Thomas Pointhuber <thomas.pointhuber@gmx.at> +License: AGPL-3+ + +Files: searx/translations/* +Copyright: + 2014-2015 Adam Tauber <asciimoo@gmail.com> + 2015 adrian.fita <adrian.fita@gmail.com> + 2016 Akio Nishimura <akionux@gmail.com> + 2014-2016 Alejandro León Aznar, 2014 + 2017 Alexandre Flament <alex@al-f.net> + 2014-2017 André Koot <meneer@tken.net> + 2014 Benjamin Sonntag <benjamin@sonntag.fr> + 2014-20116 Caner Başaran <basaran.caner@protonmail.com> + 2016 caoswave + 2016 Carmen Fernández B. + 2017 Clon <fillip1@seznam.cz> + 2014 Cqoicebordel <david.barouh@wanadoo.fr> + 2014-2016 Cqoicebordel <david.barouh@wanadoo.fr> + 2015 Dimitris T. <dimitris@stinpriza.org> + 2015 dimqua <dimqua@riseup.net> + 2014 dp <d.pitrolo@gmx.com> + 2016 Ettore Atalan <atalanttore@googlemail.com> + 2015-2016 GenghisKhan <genghiskhan@gmx.ca> + 2016 Jona Abdinghoff <jona.abdinghoff@gmail.com> + 2016 Jonatan Nyberg <jonatan@autistici.org> + 2015-2016 juanda097 <juanda097@openmailbox.org> + 2015 Lucas Phillips <mail@lep.pw> + 2015 Luc <luc.absil2@gmail.com> + 2016 marc + 2015 Max <theshirinzu@gmail.com> + 2015-2016 Nathan Follens + 2015 Neton Brício <fervelinux@gmail.com> + 2016 Noémi Ványi <sitbackandwait@gmail.com> + 2015 Oscar Carrero <ocf@openmailbox.org> + 2016 pizzaiolo + 2014 pointhi + 2016 Rejo Zenger <rejo@zenger.nl> + 2014 rike + 2016 rivera valdez <riveravaldezmail@gmail.com> + 2014 stf <stefan.marsiske@gmail.com> + 2014-2017 Thomas Pointhuber + 2015-2017 ubone <van_ds_ff@mail.bg>, 2015 + 2016 wefwefew ewfewfewf <nnnedmz0d@moakt.ws> + 2015-2016 wenke + 2016 Дмитрий Михирев <bizdelnick@gmail.com> +License: AGPL-3+ + +Files: debian/* +Copyright: 2017 Johannes Schauer <josch@debian.org> +License: Expat + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + . + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + +License: AGPL-3+ + searx is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + . + searx is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + . + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 2007 + . + Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies of this + license document, but changing it is not allowed. + . + Preamble + . + The GNU Affero General Public License is a free, copyleft license for + software and other kinds of works, specifically designed to ensure + cooperation with the community in the case of network server software. + . + The licenses for most software and other practical works are designed + to take away your freedom to share and change the works. By contrast, + our General Public Licenses are intended to guarantee your freedom to + share and change all versions of a program--to make sure it remains + free software for all its users. + . + When we speak of free software, we are referring to freedom, not price. + Our General Public Licenses are designed to make sure that you have the + freedom to distribute copies of free software (and charge for them if + you wish), that you receive source code or can get it if you want it, + that you can change the software or use pieces of it in new free + programs, and that you know you can do these things. + . + Developers that use our General Public Licenses protect your rights + with two steps: (1) assert copyright on the software, and (2) offer you + this License which gives you legal permission to copy, distribute + and/or modify the software. + . + A secondary benefit of defending all users' freedom is that + improvements made in alternate versions of the program, if they receive + widespread use, become available for other developers to incorporate. + Many developers of free software are heartened and encouraged by the + resulting cooperation. However, in the case of software used on + network servers, this result may fail to come about. The GNU General + Public License permits making a modified version and letting the public + access it on a server without ever releasing its source code to the + public. + . + The GNU Affero General Public License is designed specifically to + ensure that, in such cases, the modified source code becomes available + to the community. It requires the operator of a network server to + provide the source code of the modified version running there to the + users of that server. Therefore, public use of a modified version, on + a publicly accessible server, gives the public access to the source + code of the modified version. + . + An older license, called the Affero General Public License and + published by Affero, was designed to accomplish similar goals. This is + a different license, not a version of the Affero GPL, but Affero has + released a new version of the Affero GPL which permits relicensing + under this license. + . + The precise terms and conditions for copying, distribution and + modification follow. + . + TERMS AND CONDITIONS + . + 0. Definitions. + . + "This License" refers to version 3 of the GNU Affero General Public + License. + . + "Copyright" also means copyright-like laws that apply to other kinds of + works, such as semiconductor masks. + . + "The Program" refers to any copyrightable work licensed under this + License. Each licensee is addressed as "you". "Licensees" and + "recipients" may be individuals or organizations. + . + To "modify" a work means to copy from or adapt all or part of the work + in a fashion requiring copyright permission, other than the making of + an exact copy. The resulting work is called a "modified version" of + the earlier work or a work "based on" the earlier work. + . + A "covered work" means either the unmodified Program or a work based on + the Program. + . + To "propagate" a work means to do anything with it that, without + permission, would make you directly or secondarily liable for + infringement under applicable copyright law, except executing it on a + computer or modifying a private copy. Propagation includes copying, + distribution (with or without modification), making available to the + public, and in some countries other activities as well. + . + To "convey" a work means any kind of propagation that enables other + parties to make or receive copies. Mere interaction with a user + through a computer network, with no transfer of a copy, is not + conveying. + . + An interactive user interface displays "Appropriate Legal Notices" to + the extent that it includes a convenient and prominently visible + feature that (1) displays an appropriate copyright notice, and (2) + tells the user that there is no warranty for the work (except to the + extent that warranties are provided), that licensees may convey the + work under this License, and how to view a copy of this License. If the + interface presents a list of user commands or options, such as a menu, + a prominent item in the list meets this criterion. + . + 1. Source Code. + . + The "source code" for a work means the preferred form of the work for + making modifications to it. "Object code" means any non-source form of + a work. + . + A "Standard Interface" means an interface that either is an official + standard defined by a recognized standards body, or, in the case of + interfaces specified for a particular programming language, one that is + widely used among developers working in that language. + . + The "System Libraries" of an executable work include anything, other + than the work as a whole, that (a) is included in the normal form of + packaging a Major Component, but which is not part of that Major + Component, and (b) serves only to enable use of the work with that + Major Component, or to implement a Standard Interface for which an + implementation is available to the public in source code form. A "Major + Component", in this context, means a major essential component (kernel, + window system, and so on) of the specific operating system (if any) on + which the executable work runs, or a compiler used to produce the work, + or an object code interpreter used to run it. + . + The "Corresponding Source" for a work in object code form means all the + source code needed to generate, install, and (for an executable work) + run the object code and to modify the work, including scripts to + control those activities. However, it does not include the work's + System Libraries, or general-purpose tools or generally available free + programs which are used unmodified in performing those activities but + which are not part of the work. For example, Corresponding Source + includes interface definition files associated with source files for + the work, and the source code for shared libraries and dynamically + linked subprograms that the work is specifically designed to require, + such as by intimate data communication or control flow between those + subprograms and other parts of the work. + . + The Corresponding Source need not include anything that users can + regenerate automatically from other parts of the Corresponding Source. + . + The Corresponding Source for a work in source code form is that same + work. + . + 2. Basic Permissions. + . + All rights granted under this License are granted for the term of + copyright on the Program, and are irrevocable provided the stated + conditions are met. This License explicitly affirms your unlimited + permission to run the unmodified Program. The output from running a + covered work is covered by this License only if the output, given its + content, constitutes a covered work. This License acknowledges your + rights of fair use or other equivalent, as provided by copyright law. + . + You may make, run and propagate covered works that you do not convey, + without conditions so long as your license otherwise remains in force. + You may convey covered works to others for the sole purpose of having + them make modifications exclusively for you, or provide you with + facilities for running those works, provided that you comply with the + terms of this License in conveying all material for which you do not + control copyright. Those thus making or running the covered works for + you must do so exclusively on your behalf, under your direction and + control, on terms that prohibit them from making any copies of your + copyrighted material outside their relationship with you. + . + Conveying under any other circumstances is permitted solely under the + conditions stated below. Sublicensing is not allowed; section 10 makes + it unnecessary. + . + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + . + No covered work shall be deemed part of an effective technological + measure under any applicable law fulfilling obligations under article + 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar + laws prohibiting or restricting circumvention of such measures. + . + When you convey a covered work, you waive any legal power to forbid + circumvention of technological measures to the extent such + circumvention is effected by exercising rights under this License with + respect to the covered work, and you disclaim any intention to limit + operation or modification of the work as a means of enforcing, against + the work's users, your or third parties' legal rights to forbid + circumvention of technological measures. + . + 4. Conveying Verbatim Copies. + . + You may convey verbatim copies of the Program's source code as you + receive it, in any medium, provided that you conspicuously and + appropriately publish on each copy an appropriate copyright notice; + keep intact all notices stating that this License and any + non-permissive terms added in accord with section 7 apply to the code; + keep intact all notices of the absence of any warranty; and give all + recipients a copy of this License along with the Program. + . + You may charge any price or no price for each copy that you convey, and + you may offer support or warranty protection for a fee. + . + 5. Conveying Modified Source Versions. + . + You may convey a work based on the Program, or the modifications to + produce it from the Program, in the form of source code under the terms + of section 4, provided that you also meet all of these conditions: + . + a) The work must carry prominent notices stating that you modified it, + and giving a relevant date. + . + b) The work must carry prominent notices stating that it is released + under this License and any conditions added under section 7. This + requirement modifies the requirement in section 4 to "keep intact all + notices". + . + c) You must license the entire work, as a whole, under this License to + anyone who comes into possession of a copy. This License will + therefore apply, along with any applicable section 7 additional terms, + to the whole of the work, and all its parts, regardless of how they are + packaged. This License gives no permission to license the work in any + other way, but it does not invalidate such permission if you have + separately received it. + . + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your work + need not make them do so. + . + A compilation of a covered work with other separate and independent + works, which are not by their nature extensions of the covered work, + and which are not combined with it such as to form a larger program, in + or on a volume of a storage or distribution medium, is called an + "aggregate" if the compilation and its resulting copyright are not used + to limit the access or legal rights of the compilation's users beyond + what the individual works permit. Inclusion of a covered work in an + aggregate does not cause this License to apply to the other parts of + the aggregate. + . + 6. Conveying Non-Source Forms. + . + You may convey a covered work in object code form under the terms of + sections 4 and 5, provided that you also convey the machine-readable + Corresponding Source under the terms of this License, in one of these + ways: + . + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium customarily + used for software interchange. + . + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a written + offer, valid for at least three years and valid for as long as you + offer spare parts or customer support for that product model, to give + anyone who possesses the object code either (1) a copy of the + Corresponding Source for all the software in the product that is + covered by this License, on a durable physical medium customarily used + for software interchange, for a price no more than your reasonable cost + of physically performing this conveying of source, or (2) access to + copy the Corresponding Source from a network server at no charge. + . + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This alternative is + allowed only occasionally and noncommercially, and only if you received + the object code with such an offer, in accord with subsection 6b. + . + d) Convey the object code by offering access from a designated place + (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to copy + the object code is a network server, the Corresponding Source may be on + a different server (operated by you or a third party) that supports + equivalent copying facilities, provided you maintain clear directions + next to the object code saying where to find the Corresponding Source. + Regardless of what server hosts the Corresponding Source, you remain + obligated to ensure that it is available for as long as needed to + satisfy these requirements. + . + e) Convey the object code using peer-to-peer transmission, provided you + inform other peers where the object code and Corresponding Source of + the work are being offered to the general public at no charge under + subsection 6d. + . + A separable portion of the object code, whose source code is excluded + from the Corresponding Source as a System Library, need not be included + in conveying the object code work. + . + A "User Product" is either (1) a "consumer product", which means any + tangible personal property which is normally used for personal, family, + or household purposes, or (2) anything designed or sold for + incorporation into a dwelling. In determining whether a product is a + consumer product, doubtful cases shall be resolved in favor of + coverage. For a particular product received by a particular user, + "normally used" refers to a typical or common use of that class of + product, regardless of the status of the particular user or of the way + in which the particular user actually uses, or expects or is expected + to use, the product. A product is a consumer product regardless of + whether the product has substantial commercial, industrial or + non-consumer uses, unless such uses represent the only significant mode + of use of the product. + . + "Installation Information" for a User Product means any methods, + procedures, authorization keys, or other information required to + install and execute modified versions of a covered work in that User + Product from a modified version of its Corresponding Source. The + information must suffice to ensure that the continued functioning of + the modified object code is in no case prevented or interfered with + solely because modification has been made. + . + If you convey an object code work under this section in, or with, or + specifically for use in, a User Product, and the conveying occurs as + part of a transaction in which the right of possession and use of the + User Product is transferred to the recipient in perpetuity or for a + fixed term (regardless of how the transaction is characterized), the + Corresponding Source conveyed under this section must be accompanied by + the Installation Information. But this requirement does not apply if + neither you nor any third party retains the ability to install modified + object code on the User Product (for example, the work has been + installed in ROM). + . + The requirement to provide Installation Information does not include a + requirement to continue to provide support service, warranty, or + updates for a work that has been modified or installed by the + recipient, or for the User Product in which it has been modified or + installed. Access to a network may be denied when the modification + itself materially and adversely affects the operation of the network or + violates the rules and protocols for communication across the network. + . + Corresponding Source conveyed, and Installation Information provided, + in accord with this section must be in a format that is publicly + documented (and with an implementation available to the public in + source code form), and must require no special password or key for + unpacking, reading or copying. + . + 7. Additional Terms. + . + "Additional permissions" are terms that supplement the terms of this + License by making exceptions from one or more of its conditions. + Additional permissions that are applicable to the entire Program shall + be treated as though they were included in this License, to the extent + that they are valid under applicable law. If additional permissions + apply only to part of the Program, that part may be used separately + under those permissions, but the entire Program remains governed by + this License without regard to the additional permissions. + . + When you convey a copy of a covered work, you may at your option remove + any additional permissions from that copy, or from any part of it. + (Additional permissions may be written to require their own removal in + certain cases when you modify the work.) You may place additional + permissions on material, added by you to a covered work, for which you + have or can give appropriate copyright permission. + . + Notwithstanding any other provision of this License, for material you + add to a covered work, you may (if authorized by the copyright holders + of that material) supplement the terms of this License with terms: + . + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + . + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + . + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + . + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + . + e) Declining to grant rights under trademark law for use of some trade + names, trademarks, or service marks; or + . + f) Requiring indemnification of licensors and authors of that material + by anyone who conveys the material (or modified versions of it) with + contractual assumptions of liability to the recipient, for any + liability that these contractual assumptions directly impose on those + licensors and authors. + . + All other non-permissive additional terms are considered "further + restrictions" within the meaning of section 10. If the Program as you + received it, or any part of it, contains a notice stating that it is + governed by this License along with a term that is a further + restriction, you may remove that term. If a license document contains + a further restriction but permits relicensing or conveying under this + License, you may add to a covered work material governed by the terms + of that license document, provided that the further restriction does + not survive such relicensing or conveying. + . + If you add terms to a covered work in accord with this section, you + must place, in the relevant source files, a statement of the additional + terms that apply to those files, or a notice indicating where to find + the applicable terms. + . + Additional terms, permissive or non-permissive, may be stated in the + form of a separately written license, or stated as exceptions; the + above requirements apply either way. + . + 8. Termination. + . + You may not propagate or modify a covered work except as expressly + provided under this License. Any attempt otherwise to propagate or + modify it is void, and will automatically terminate your rights under + this License (including any patent licenses granted under the third + paragraph of section 11). + . + However, if you cease all violation of this License, then your license + from a particular copyright holder is reinstated (a) provisionally, + unless and until the copyright holder explicitly and finally terminates + your license, and (b) permanently, if the copyright holder fails to + notify you of the violation by some reasonable means prior to 60 days + after the cessation. + . + Moreover, your license from a particular copyright holder is reinstated + permanently if the copyright holder notifies you of the violation by + some reasonable means, this is the first time you have received notice + of violation of this License (for any work) from that copyright holder, + and you cure the violation prior to 30 days after your receipt of the + notice. + . + Termination of your rights under this section does not terminate the + licenses of parties who have received copies or rights from you under + this License. If your rights have been terminated and not permanently + reinstated, you do not qualify to receive new licenses for the same + material under section 10. + . + 9. Acceptance Not Required for Having Copies. + . + You are not required to accept this License in order to receive or run + a copy of the Program. Ancillary propagation of a covered work + occurring solely as a consequence of using peer-to-peer transmission to + receive a copy likewise does not require acceptance. However, nothing + other than this License grants you permission to propagate or modify + any covered work. These actions infringe copyright if you do not + accept this License. Therefore, by modifying or propagating a covered + work, you indicate your acceptance of this License to do so. + . + 10. Automatic Licensing of Downstream Recipients. + . + Each time you convey a covered work, the recipient automatically + receives a license from the original licensors, to run, modify and + propagate that work, subject to this License. You are not responsible + for enforcing compliance by third parties with this License. + . + An "entity transaction" is a transaction transferring control of an + organization, or substantially all assets of one, or subdividing an + organization, or merging organizations. If propagation of a covered + work results from an entity transaction, each party to that transaction + who receives a copy of the work also receives whatever licenses to the + work the party's predecessor in interest had or could give under the + previous paragraph, plus a right to possession of the Corresponding + Source of the work from the predecessor in interest, if the predecessor + has it or can get it with reasonable efforts. + . + You may not impose any further restrictions on the exercise of the + rights granted or affirmed under this License. For example, you may + not impose a license fee, royalty, or other charge for exercise of + rights granted under this License, and you may not initiate litigation + (including a cross-claim or counterclaim in a lawsuit) alleging that + any patent claim is infringed by making, using, selling, offering for + sale, or importing the Program or any portion of it. + . + 11. Patents. + . + A "contributor" is a copyright holder who authorizes use under this + License of the Program or a work on which the Program is based. The + work thus licensed is called the contributor's "contributor version". + . + A contributor's "essential patent claims" are all patent claims owned + or controlled by the contributor, whether already acquired or hereafter + acquired, that would be infringed by some manner, permitted by this + License, of making, using, or selling its contributor version, but do + not include claims that would be infringed only as a consequence of + further modification of the contributor version. For purposes of this + definition, "control" includes the right to grant patent sublicenses in + a manner consistent with the requirements of this License. + . + Each contributor grants you a non-exclusive, worldwide, royalty-free + patent license under the contributor's essential patent claims, to + make, use, sell, offer for sale, import and otherwise run, modify and + propagate the contents of its contributor version. + . + In the following three paragraphs, a "patent license" is any express + agreement or commitment, however denominated, not to enforce a patent + (such as an express permission to practice a patent or covenant not to + sue for patent infringement). To "grant" such a patent license to a + party means to make such an agreement or commitment not to enforce a + patent against the party. + . + If you convey a covered work, knowingly relying on a patent license, + and the Corresponding Source of the work is not available for anyone to + copy, free of charge and under the terms of this License, through a + publicly available network server or other readily accessible means, + then you must either (1) cause the Corresponding Source to be so + available, or (2) arrange to deprive yourself of the benefit of the + patent license for this particular work, or (3) arrange, in a manner + consistent with the requirements of this License, to extend the patent + license to downstream recipients. "Knowingly relying" means you have + actual knowledge that, but for the patent license, your conveying the + covered work in a country, or your recipient's use of the covered work + in a country, would infringe one or more identifiable patents in that + country that you have reason to believe are valid. + . + If, pursuant to or in connection with a single transaction or + arrangement, you convey, or propagate by procuring conveyance of, a + covered work, and grant a patent license to some of the parties + receiving the covered work authorizing them to use, propagate, modify + or convey a specific copy of the covered work, then the patent license + you grant is automatically extended to all recipients of the covered + work and works based on it. + . + A patent license is "discriminatory" if it does not include within the + scope of its coverage, prohibits the exercise of, or is conditioned on + the non-exercise of one or more of the rights that are specifically + granted under this License. You may not convey a covered work if you + are a party to an arrangement with a third party that is in the + business of distributing software, under which you make payment to the + third party based on the extent of your activity of conveying the work, + and under which the third party grants, to any of the parties who would + receive the covered work from you, a discriminatory patent license (a) + in connection with copies of the covered work conveyed by you (or + copies made from those copies), or (b) primarily for and in connection + with specific products or compilations that contain the covered work, + unless you entered into that arrangement, or that patent license was + granted, prior to 28 March 2007. + . + Nothing in this License shall be construed as excluding or limiting any + implied license or other defenses to infringement that may otherwise be + available to you under applicable patent law. + . + 12. No Surrender of Others' Freedom. + . + If conditions are imposed on you (whether by court order, agreement or + otherwise) that contradict the conditions of this License, they do not + excuse you from the conditions of this License. If you cannot convey a + covered work so as to satisfy simultaneously your obligations under + this License and any other pertinent obligations, then as a consequence + you may not convey it at all. For example, if you agree to terms that + obligate you to collect a royalty for further conveying from those to + whom you convey the Program, the only way you could satisfy both those + terms and this License would be to refrain entirely from conveying the + Program. + . + 13. Remote Network Interaction; Use with the GNU General Public + License. + . + Notwithstanding any other provision of this License, if you modify the + Program, your modified version must prominently offer all users + interacting with it remotely through a computer network (if your + version supports such interaction) an opportunity to receive the + Corresponding Source of your version by providing access to the + Corresponding Source from a network server at no charge, through some + standard or customary means of facilitating copying of software. This + Corresponding Source shall include the Corresponding Source for any + work covered by version 3 of the GNU General Public License that is + incorporated pursuant to the following paragraph. + . + Notwithstanding any other provision of this License, you have + permission to link or combine any covered work with a work licensed + under version 3 of the GNU General Public License into a single + combined work, and to convey the resulting work. The terms of this + License will continue to apply to the part which is the covered work, + but the work with which it is combined will remain governed by version + 3 of the GNU General Public License. + . + 14. Revised Versions of this License. + . + The Free Software Foundation may publish revised and/or new versions of + the GNU Affero General Public License from time to time. Such new + versions will be similar in spirit to the present version, but may + differ in detail to address new problems or concerns. + . + Each version is given a distinguishing version number. If the Program + specifies that a certain numbered version of the GNU Affero General + Public License "or any later version" applies to it, you have the + option of following the terms and conditions either of that numbered + version or of any later version published by the Free Software + Foundation. If the Program does not specify a version number of the + GNU Affero General Public License, you may choose any version ever + published by the Free Software Foundation. + . + If the Program specifies that a proxy can decide which future versions + of the GNU Affero General Public License can be used, that proxy's + public statement of acceptance of a version permanently authorizes you + to choose that version for the Program. + . + Later license versions may give you additional or different + permissions. However, no additional obligations are imposed on any + author or copyright holder as a result of your choosing to follow a + later version. + . + 15. Disclaimer of Warranty. + . + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY + APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT + HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT + WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE + OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU + ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + . + 16. Limitation of Liability. + . + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING + WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR + CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, + INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES + ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT + NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES + SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO + OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY + HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + . + 17. Interpretation of Sections 15 and 16. + . + If the disclaimer of warranty and limitation of liability provided + above cannot be given local legal effect according to their terms, + reviewing courts shall apply local law that most closely approximates + an absolute waiver of all civil liability in connection with the + Program, unless a warranty or assumption of liability accompanies a + copy of the Program in return for a fee. + . + 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 + possible use to the public, the best way to achieve this is to make it + free software which everyone can redistribute and change under these + terms. + . + To do so, attach the following notices to the program. It is safest to + attach them to the start of each source file to most effectively state + the exclusion of warranty; and each file should have at least the + "copyright" line and a pointer to where the full notice is found. + . + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + . + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation, either version 3 of the + License, or (at your option) any later version. + . + This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Affero General Public License for more details. + . + You should have received a copy of the GNU Affero General Public + License along with this program. If not, see + <http://www.gnu.org/licenses/>. + . + Also add information on how to contact you by electronic and paper + mail. + . + If your software can interact with users remotely through a computer + network, you should also make sure that it provides a way for users to + get its source. For example, if your program is a web application, its + interface could display a "Source" link that leads users to an archive + of the code. There are many ways you could offer source, and different + solutions will be better for different programs; see section 13 for the + specific requirements. + . + You should also get your employer (if you work as a programmer) or + school, if any, to sign a "copyright disclaimer" for the program, if + necessary. For more information on this, and how to apply and follow + the GNU AGPL, see <http://www.gnu.org/licenses/>. diff --git a/debian/examples/nginx/sites-available/searx b/debian/examples/nginx/sites-available/searx new file mode 100644 index 0000000..0f95574 --- /dev/null +++ b/debian/examples/nginx/sites-available/searx @@ -0,0 +1,8 @@ +server { + listen 80; + server_name FIXME; + location / { + include uwsgi_params; + uwsgi_pass unix:/run/uwsgi/app/searx/socket; + } +} diff --git a/debian/examples/uwsgi/apps-available/searx.ini b/debian/examples/uwsgi/apps-available/searx.ini new file mode 100644 index 0000000..e526354 --- /dev/null +++ b/debian/examples/uwsgi/apps-available/searx.ini @@ -0,0 +1,24 @@ +[uwsgi] +# Who will run the code +uid = www-data +gid = www-data + +# disable logging for privacy +#disable-logging = true + +# Number of workers (usually CPU count) +workers = 1 + +# The right granted on the created socket +chmod-socket = 666 + +# Plugin to use and interpretor config +single-interpreter = true +master = true +plugin = python3 + +# Module to import +module = searx.webapp + +pythonpath = /usr/lib/python3/dist-packages/searx/ +chdir = /usr/lib/python3/dist-packages/searx/ diff --git a/debian/python3-searx.install b/debian/python3-searx.install new file mode 100644 index 0000000..87b2877 --- /dev/null +++ b/debian/python3-searx.install @@ -0,0 +1,17 @@ +usr/lib/python3* +# we must list each theme subdirectory manually because we do not want to +# install the less subdirectory or the oscar gruntfile or package.json +searx/static/themes/courgette/css /usr/share/python3-searx/static/themes/courgette +searx/static/themes/courgette/img /usr/share/python3-searx/static/themes/courgette +searx/static/themes/courgette/js /usr/share/python3-searx/static/themes/courgette +searx/static/themes/legacy/css /usr/share/python3-searx/static/themes/legacy +searx/static/themes/legacy/img /usr/share/python3-searx/static/themes/legacy +searx/static/themes/legacy/js /usr/share/python3-searx/static/themes/legacy +searx/static/themes/oscar/css /usr/share/python3-searx/static/themes/oscar +searx/static/themes/oscar/img /usr/share/python3-searx/static/themes/oscar +searx/static/themes/oscar/js /usr/share/python3-searx/static/themes/oscar +searx/static/themes/pix-art/css /usr/share/python3-searx/static/themes/pix-art +searx/static/themes/pix-art/img /usr/share/python3-searx/static/themes/pix-art +searx/static/themes/pix-art/js /usr/share/python3-searx/static/themes/pix-art +searx/static/plugins /usr/share/python3-searx/static +searx/templates /usr/share/python3-searx diff --git a/debian/python3-searx.links b/debian/python3-searx.links new file mode 100644 index 0000000..6221afc --- /dev/null +++ b/debian/python3-searx.links @@ -0,0 +1,8 @@ +/usr/share/javascript/bootstrap/fonts/glyphicons-halflings-regular.ttf /usr/share/python3-searx/static/fonts/glyphicons-halflings-regular.ttf +/usr/share/javascript/bootstrap/fonts/glyphicons-halflings-regular.woff /usr/share/python3-searx/static/fonts/glyphicons-halflings-regular.woff +/usr/share/javascript/bootstrap/fonts/glyphicons-halflings-regular.woff2 /usr/share/python3-searx/static/fonts/glyphicons-halflings-regular.woff2 +/usr/share/javascript/bootstrap/css/bootstrap.min.css /usr/share/python3-searx/static/css/bootstrap.min.css +/usr/share/javascript/jquery/jquery.min.js /usr/share/python3-searx/static/js/jquery-1.11.1.min.js +/usr/share/javascript/bootstrap/js/bootstrap.js /usr/share/python3-searx/static/js/bootstrap.min.js +/usr/lib/nodejs/requirejs/require.min.js /usr/share/python3-searx/static/js/require-2.1.15.min.js +/usr/share/javascript/leaflet/leaflet.css /usr/share/python3-searx/static/css/leaflet.min.css diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..a7fbbaf --- /dev/null +++ b/debian/rules @@ -0,0 +1,18 @@ +#! /usr/bin/make -f + +#export DH_VERBOSE = 1 +export SEARX_SETTINGS_PATH = $(shell pwd)/searx/settings.yml +# without a utf8 locale, python-yaml is unable to parse the ut8 encoded settings.yml +export export LC_ALL=C.UTF-8 + +%: + dh $@ --with python3 --buildsystem=pybuild + +override_dh_auto_build: + dh_auto_build + ./manage.sh styles # needed to run lessc because grunt-contrib-less is not packaged + ./manage.sh locales # run pybabel + ./manage.sh grunt_build # build the oscar theme + +# do not run tests because the splinter python3 module is not packaged yet +override_dh_auto_test: diff --git a/debian/searx.docs b/debian/searx.docs new file mode 100644 index 0000000..a1320b1 --- /dev/null +++ b/debian/searx.docs @@ -0,0 +1 @@ +README.rst diff --git a/debian/searx.examples b/debian/searx.examples new file mode 100644 index 0000000..2fedfe1 --- /dev/null +++ b/debian/searx.examples @@ -0,0 +1,3 @@ +debian/examples/nginx +debian/examples/uwsgi +searx/settings.yml diff --git a/debian/searx.install b/debian/searx.install new file mode 100644 index 0000000..57db456 --- /dev/null +++ b/debian/searx.install @@ -0,0 +1 @@ +usr/bin/searx-run diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 0000000..163aaf8 --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/debian/source/options b/debian/source/options new file mode 100644 index 0000000..3152b74 --- /dev/null +++ b/debian/source/options @@ -0,0 +1,4 @@ +# some source package options such that dgit can transparently handle the +# "dropping" and "refreshing" changes to the upstream source +single-debian-patch +auto-commit diff --git a/debian/source/patch-header b/debian/source/patch-header new file mode 100644 index 0000000..80cadf1 --- /dev/null +++ b/debian/source/patch-header @@ -0,0 +1,16 @@ +The Debian packaging of searx is maintained in git, using the merging workflow +described in dgit-maint-merge(7). There isn't a patch queue that can be +represented as a quilt series. + +A detailed breakdown of the changes is available from their canonical +representation - git commits in the packaging repository. For example, to see +the changes made by the Debian maintainer in the first upload of upstream +version 1.2.3, you could use: + + % git clone https://git.dgit.debian.org/searx + % cd searx + % git log --oneline 1.2.3..debian/1.2.3-1 -- . ':!debian' + +(If you have dgit, use `dgit clone searx`, rather than plain `git clone`.) + +A single combined diff, containing all the changes, follows. diff --git a/debian/tests/control b/debian/tests/control new file mode 100644 index 0000000..dbabf19 --- /dev/null +++ b/debian/tests/control @@ -0,0 +1,3 @@ +Tests: general +Restrictions: allow-stderr, isolation-container, needs-root +Depends: @, curl, nginx, uwsgi, uwsgi-plugin-python3 diff --git a/debian/tests/general b/debian/tests/general new file mode 100644 index 0000000..2dfba3f --- /dev/null +++ b/debian/tests/general @@ -0,0 +1,15 @@ +#!/bin/sh + +set -ex + +rm /etc/nginx/sites-enabled/default +cp /usr/share/doc/searx/examples/nginx/sites-available/searx /etc/nginx/sites-available +ln -s ../sites-available/searx /etc/nginx/sites-enabled/searx +cp /usr/share/doc/searx/examples/uwsgi/apps-available/searx.ini /etc/uwsgi/apps-available +ln -s ../apps-available/searx.ini /etc/uwsgi/apps-enabled/searx.ini +mkdir /etc/searx +gzip --to-stdout --decompress /usr/share/doc/searx/examples/settings.yml.gz > /etc/searx/settings.yml +sed -i -e "s/ultrasecretkey/$(openssl rand -hex 16)/g" /etc/searx/settings.yml +systemctl restart nginx +systemctl restart uwsgi +curl localhost | grep 'input type="search" name="q"' diff --git a/debian/watch b/debian/watch new file mode 100644 index 0000000..d2a6596 --- /dev/null +++ b/debian/watch @@ -0,0 +1,3 @@ +version=4 +opts=compression=xz,dversionmangle=s/\+dfsg\d*$//,repacksuffix=+dfsg1,repack \ + https://github.com/asciimoo/searx/tags .*/v(\d\S+)\.tar\.gz |