* Package scripts that are shipped by upstream in their binary download
* Includes setup scripts (setup-seafile.sh to use SQLite,
setup-seafile-mysql.{sh,py} to use MySQL) and control scripts
(seafile.sh, seahub.sh)
* Does not include seafile-admin, which is not shipped in upstream's
binary download. Combined with the fact that it hasn't been updated
to Python 3 suggests the script has been abandoned.
* Replace previous init scripts with a simplified script
* Previous init scripts (seafile.init, seahub.init) were modified from
older versions of seafile.sh and seahub.sh, but they haven't kept up
with changes to upstream's scripts
* New init script (seafile-server.init) start/stops both Seafile and
Seahub (there is no need to control them separately) by calling
upstream's control scripts
* Replace previous package config file with new config file
* Options in previous config file (seafile.conf) were mainly for using
Seahub in FastCGI mode. FastCGI was deprecated in Django 1.7 and
removed in 1.9; upstream's control script will only start Seahub
using Gunicorn. (Options for Gunicorn including port number can be
changed by editing /etc/seafile/conf/gunicorn.conf.py.)
* New config file (seafile-server.config) has one option that controls
where the Seafile/Seahub data directories are stored
* Patch scripts/binaries to use standard, system-wide directory
locations
* Script files (wrappers for binaries) in /usr/bin
* Binaries (not meant to be run directly by the user) in /usr/libexec
* Config files in /etc/seafile
* Pid/socket files in /var/run/seafile
* Logs in /var/log/seafile
* Include a new script to create the first admin account
* With upstream's original scripts, the user is required to
interactively create the first admin account when Seahub is started
for the first time
* The user will now use the new script (create-seafile-admin.sh) to
create the first admin account after setup (using setup-seafile.sh
or setup-seafile-mysql.sh) and before starting Seafile/Seahub
* seahub.sh is patched to only check if there is at least one admin
account and exit with an error if there is no admin account
* Remove build config options and add seafile-server-fuse package
* The console option controls whether the console window is shown when
Seafile server is run on Windows. It has no use on Linux.
* The fuse option controls whether seaf-fuse is built. (seaf-fuse is a
FUSE implementation that allows the Seafile database/file system to
be mounted to a local directory.) seaf-fuse is now always built and
is available in a separate package (seafile-server-fuse).
* Add myself as a maintainer
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
Other changes include:
* Package Python bytecode in seafile-seahub, add source code package
(seafile-seahub-src)
* Instead of changing default settings, custom settings will be added to
/etc/seafile/conf/seahub_settings.py during seafile-server setup
* Use SEAFILE_UCI_DATA_DIR, which will be added to seafile-server
* Clean up Makefile formatting
* Add myself as a maintainer
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* Update package to 7.1.2
* Add Python 3 bindings package. The Python dependency is moved from
seafile-ccnet to python3-seafile-ccnet.
* Refresh patches. The path to valac does not need to be patched in
010-Makefile.patch because $(STAGING_DIR_HOSTPKG)/bin is already in
the path during package build.
* Use SEAFILE_UCI_LOG_DIR and SEAFILE_UCI_SOCKET_DIR, which will be
added to seafile-server
* Install binaries to /usr/libexec instead of /usr/bin, to mirror an
upcoming change in seafile-server
* Clean up Makefile formatting
* Add myself as a maintainer
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
This also moves the Python dependency from libsearpc to python3-searpc,
and adds myself as a maintainer.
Patches:
* 001-fix-memory-leak-GH-48.patch: This is (at this time) the only
difference between the tags v3.2.0 and v3.2-latest.
* 002-no-future-import.patch: The future package is only needed for
Python 2 compatibility; all of the functions/symbols it provides are
available in Python 3.
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
Previously, this packaged "django-jsonfield" on PyPI.
The only (in-tree) package that depends on this package is
django-postoffice.
django-post-office actually depends on "jsonfield" on PyPI.[1][2]
This changes the packaged project from "django-jsonfield" to
"jsonfield".
The version packaged here is not the latest available update, but the
last version compatible with Django 1.11 / Python 2.
[1]: https://github.com/ui/django-post_office/blob/v3.2.1/setup.py#L45
[2]: https://github.com/ui/django-post_office/issues/182
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
This patches Django to load byte-compiled (.pyc) db migration scripts,
since Python scripts are often distributed in byte-compiled form in
OpenWrt packages.
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
This adds a Python 3 version of the django1 package.
This also adds a python-django1-common package that contains a
django-admin script based on the one in Debian[1]. This allows
python-django1 and python3-django1 to be installed at the same time.
python3-django conflicts with python-django1 (via python-django1-common)
and python3-django1.
This also updates older Python 3 Django plugin packages to depend on
python3-django1, and newer plugin packages to depend on "django", which
both python3-django and python3-django1 provide.
Because of this dependency on either version of Django, the MDEPENDS for
Python 3 Django plugin packages no longer functions correctly and has
been removed.
[1]: https://salsa.debian.org/python-team/modules/python-django/blob/debian/buster/debian/django-admin
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* Move more environment variables into GoPackage/Environment
* Split GoPackage/Environment into target and build sections
* Do not set GOROOT_FINAL for Go packages (setting it should only affect
the Go compiler and not Go packages)
* Set CGO_LDFLAGS to $(TARGET_LDFLAGS)
* Move GO_TARGET_* variables from golang-values.mk, and GO_VERSION_*
variables from golang-version.mk, into golang/Makefile
This also updates runc, containerd, and docker-ce to reflect the changes
in GoPackage/Environment.
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* Set GOENV=off when building Go compiler and packages, to ignore user's
environment configuration file
* Set GOCACHE when building host Go
* Unset GOTMPDIR, to use the buildroot temp directory instead of temp
directories in build_dir
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* Replace $(PKG_NAME) with package name in call, define, and eval lines
* Remove extra "define" in $(call define Package/.../description)
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
New patches (both for SConstruct):
* Do not import from distutils. Since Python support/modules are not
built, there is no need to import from distutils. (Importing from
distutils may prevent the package from being built on systems without
a full distutils module, e.g. Debian with python3-minimal.)
I have added back the import in places where it may be helpful to
have, if scons is run manually.
Fixes#10993.
* Do not check the size of time_t. The way this is done is to compile
and run a test program; this fails when cross-compiling[1].
This doesn't appear to affect any functionality (other than missing a
compile-time warning that things will fail in 2038 if time_t is too
small).
[1]: https://gitlab.com/gpsd/gpsd/issues/48
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* Install the standalone (scons-local) version
Advantages:
- The regular version of SCons requires distutils during installation;
the standalone version does not have this requirement
Disadvantages:
- The scons-local package is not available from the Fossies mirror
- The patch will need to be manually updated with each version update
* Install files to $(STAGING_DIR_HOSTPKG) instead of $(STAGING_DIR_HOST)
* Write the correct shebang into scripts instead of using the wrapper
* Update to 3.1.2
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
The ASLR PIE option was changed to a tristate option
(openwrt/openwrt@19cbac7d26). This updates
the Go compiler package and golang-package.mk to account for this
change.
This also adds warning messages for when the user has selected PIE but
Go does not have PIE support for the chosen target.
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
This adds support to compile position-independent executables for
packages that use golang-package.mk.
Go packages will have PIE enabled if:
* Go supports PIE on the target platform;
* CONFIG_PKG_ASLR_PIE is selected; and
* PKG_ASLR_PIE (for the package) is not set to 0
Go 1.13 supports PIE for x86 and arm targets; mips support is in
progress[1].
[1]: https://github.com/golang/go/issues/21222#issuecomment-542064462
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
This fixes how GOARM is selected for arm platforms, based on support for
VFP/VFPv3 rather than CPU version.
Fixes#10967.
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
This adds support to compile host and target Go as position-independent
executables.
Host Go will have PIE enabled if Go supports PIE on the host platform.
Target Go will have PIE enabled if Go supports PIE on the target
platform and CONFIG_PKG_ASLR_PIE is selected.
Go 1.13 supports PIE for x86 and arm targets; mips support is in
progress[1].
[1]: https://github.com/golang/go/issues/21222#issuecomment-542064462
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
This replaces conditional functions with conditional directives to make
golang-values.mk more readable.
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
This adds calls to the strip function in golang-package.mk when using
variables expected to be set by Go packages.
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
This changes the formatting of environment variable unexports in
golang-values.mk to be more maintainable, and to document the sources of
variables.
There should be no change to the actual list of variables unexported.
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
go invokes the external linker by calling gcc, so -zxxx options in
TARGET_LDFLAGS (in golang-package.mk) need to be formatted as -Wl,z,xxx.
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
go build/install supports multiple -ldflags arguments, but they are not
combined; for each package, the latest match on the command line is
used.[1]
Previously, the main executable would not be affected by the default
ldflags if GO_PKG_LDFLAGS or GO_PKG_LDFLAGS_X were set. (The default
ldflags instructs go to use the external linker.)
This fixes golang-package.mk so that the default ldflags take effect in
all cases.
[1]: https://golang.org/cmd/go/#hdr-Compile_packages_and_dependencies
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
This change:
* Removes building of Lua bindings. These bindings were already removed
upstream[1].
* Fixes building of Python bindings:
* Fix SWIG_DIR path (note that SWIG_VERSION will need to be updated
whenever the swig package is upgraded)
* Fix Python module paths and filenames
* Packages the Python bindings in a new package (python3-sysrepo) and
builds it by default, instead of depending on a config option.
[1]: https://github.com/sysrepo/sysrepo/pull/1429
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
While the filespec example is technically correct, the more likely
scenario is that the files to be omitted would be inside of a package
subdirectory.
This adds an example_package directory into the example to illustrate
this case.
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
This adds documentation on including pypi.mk and its required/optional
variables to the Python section readme.
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
PKG_BUILD_DIR now takes variants into account
(openwrt/openwrt@e545fac8d9), so it should
not be necessary for Python packages to set these variables anymore.
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
This updates all Python packages that download their source from PyPi to
use pypi.mk.
This will allow future improvements/changes to pypi.mk to affect all
relevant packages.
This also makes it easier for future Python packages to start using
pypi.mk, when it's clear how it is used in existing packages.
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
This adds a new (optional) variable, PYPI_SOURCE_NAME, to pypi.mk.
For some PyPi packages (e.g. aiohttp_cors, click, django-compressor),
the name of the package and the source tarball name are slightly
different (usually by capitalisation or hyphen/underscore change).
This new variable is to make this difference explicit. PYPI_NAME is
meant for the "official" package name, whereas PYPI_SOURCE_NAME is meant
for the source tarball name.
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
This adds pypi.mk, which can be included in Python packages that
download their sources from PyPI, to auto-fill various PKG_* variables
based on the value of PYPI_NAME.
This makefile should be included after $(TOPDIR)/rules.mk but before
$(INCLUDE_DIR)/package.mk (and $(INCLUDE_DIR)/host-build.mk).
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
This removes lines that set PKG_BUILD_DIR when the set value is no
different from the default value.
Specifically, the line is removed if the assigned value is:
* $(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
The default PKG_BUILD_DIR was updated[1] to incorporate BUILD_VARIANT
if it is set, so now this is identical to the default value.
* $(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_SOURCE_SUBDIR)
if PKG_SOURCE_SUBDIR is set to $(PKG_NAME)-$(PKG_VERSION), making it
the same as the previous case
* $(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
This is the same as the default PKG_BUILD_DIR when there is no
BUILD_VARIANT.
* $(BUILD_DIR)/[name]-$(PKG_VERSION)
where [name] is a string that is identical to PKG_NAME
[1]: https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=e545fac8d968864a965edb9e50c6f90940b0a6c9
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
This package adds support for /etc/shinit and ~/.shinit files, which
contain commands to be run at the start of all interactive shells.
(/etc/profile and ~/.profile are read for login shells only.)
This is useful for those who regularly open non-login, interactive
shells, for example users of GNU Screen or tmux.
(This is based on a patch[1] I submitted for OpenWrt master, but there
does not appear to be much interest in merging the change.)
(This package uses the ENV shell variable, of which the POSIX standard
has a brief description[2]. The dash manpage[3] also describes how the
ENV variable is handled. (dash is the basis for busybox ash.))
[1]: https://patchwork.ozlabs.org/patch/1094493/
[2]: https://pubs.opengroup.org/onlinepubs/9699919799//utilities/V3_chap02.html#tag_18_05_03
[3]: https://manpages.debian.org/buster/dash/dash.1.en.html#Invocation
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
Go 1.13 added a new -trimpath option to the "go build" command[1] that
removes system paths from compiled executables. This replaces the
previous -trimpath flags.
There are still system paths in the compiled executable (for crti.o and
crtn.o, when cross-compiling); these appear to be stripped during the
packaging process.
[1]: https://golang.org/doc/go1.13#trimpath
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* Remove $$$$(pkg-config --static --libs libcrypto libssl) from
HOST_LDFLAGS
Having this leads to an "unknown type name 'u_int'" error on Mac.
Removing it doesn't appear to affect Python's ability to find
buildroot LibreSSL.
* Change -Wl,-rpath=... to -Wl,-rpath,... in HOST_LDFLAGS
The equals sign version is not supported by the Mac linker (appears to
be an GNU extension). The comma version is supported; -rpath and its
argument will be separated by a space when passed to the linker.
* Add ac_cv_header_libintl_h=no to HOST_CONFIGURE_VARS for Mac
Python on Mac doesn't expect to use libintl, but if gettext-full is
compiled for host, it will try, leading to undefined symbol errors
during compilation. This prevents configure from finding libintl.h.
Fixes#7171.
Fixes#9621.
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
Prometheus uses an older version of fsnotify, which uses a system call
(unix.InotifyInit) that is not implemented for mips64/mips64el.
This patches Prometheus to use a newer version of fsnotify that uses a
different system call (unix.InotifyInit1) that should be available on
all Linux systems.
Fixes#9494.
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
It appears snapshot target builds have switched from GPG signatures
(sha256sums.asc) to usign signatures (sha256sums.sig).
This adds support for verifying these usign signatures. (GPG signatures
will also be verified if found.)
This also restores the alphabetical ordering of packages to be installed
by apt-get.
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
This clarifies that Python 2-only libraries will have a Python 3 version
added, instead of being replaced by a Python 3 version (before the 2020
mass removal).
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
The path where python3-config is installed was changed in 64959a1d. This
updates that path for this package.
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
Build/InstallDev is passed a second argument, a path where host binaries
should be placed (ultimately $(STAGING_DIR)/host).
This change moves python[3]-config to that directory.
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
These patches address issue:
CVE-2019-9948: Unnecessary URL scheme exists to allow local_file://
reading file in urllib
Link to Python issue:
https://bugs.python.org/issue35907
Issue 35907 is still currently open, waiting for a decision for
Python 3.5; these patches for Python 2.7 and 3.7 have been merged.
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
These patches address issues:
CVE-2019-9740: Python urllib CRLF injection vulnerability
CVE-2019-9947: Header Injection in urllib
Links to Python issues:
https://bugs.python.org/issue36276 (resolved duplicated of 30458)
https://bugs.python.org/issue35906 (resolved duplicated of 30458)
https://bugs.python.org/issue30458
Issue 30458 is still currently open, waiting for a decision for
Python 3.5; these patches for Python 2.7 and 3.7 have been merged.
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
This changes the "patched" indicator files for host setuptools and pip
to include their PKG_RELEASE values. This also removes host setuptools
and/or pip before host install, if the installed copy does not match the
version (and PKG_RELEASE) of the copy to be installed.
This will allow added or removed patches to affect host setuptools /
pip, since these changes will cause PKG_RELEASE to be incremented.
This also fixes the host install error, when the install tries to patch
an already patched copy of setuptools. (This error occurs because the
existing indicator files do not have version numbers in their file
names, whereas host install expected version numbers to be present.)
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
This adds the current setuptools/pip version numbers to the indicator
files' names, which should allow upgraded versions to be patched.
Signed-off-by: Jeffery To <jeffery.to@gmail.com>