Giter Site home page Giter Site logo

zhouziqunzzq / spksrc Goto Github PK

View Code? Open in Web Editor NEW

This project forked from synocommunity/spksrc

0.0 2.0 0.0 40.62 MB

Cross compilation framework to create native packages for the Synology's NAS

Home Page: https://github.com/SynoCommunity/spksrc

License: Other

Makefile 36.36% PHP 0.06% C 0.78% Vim Script 0.01% C++ 8.47% Shell 26.64% SuperCollider 0.35% Perl 0.98% Python 6.90% JavaScript 16.19% HTML 2.08% CSS 0.82% NewLisp 0.11% Ruby 0.21% Smarty 0.04%

spksrc's Introduction

spksrc

spksrc is a cross compilation framework intended to compile and package software for Synology NAS devices. Packages are made available via the SynoCommunity repository.

Contributing

Before opening issues or package requests, see CONTRIBUTING.

Setup Development Environment

Docker

  • Fork and clone spksrc: git clone https://[email protected]/You/spksrc.git ~/spksrc
  • Install Docker on your host OS: Docker installation. A wget-based alternative for linux: Install Docker with wget.
  • Download the spksrc docker container: docker pull synocommunity/spksrc
  • Run the container with docker run -it -v ~/spksrc:/spksrc synocommunity/spksrc /bin/bash

Virtual machine

A virtual machine based on an 64-bit version of Debian stable OS is recommended. Non-x86 architectures are not supported.

  • Install the requirements:

    sudo dpkg --add-architecture i386 && sudo apt-get update
    sudo aptitude install build-essential debootstrap python-pip automake libgmp3-dev libltdl-dev libunistring-dev libffi-dev libcppunit-dev ncurses-dev imagemagick libssl-dev pkg-config zlib1g-dev gettext git curl subversion check intltool gperf flex bison xmlto php5 expect libgc-dev mercurial cython lzip cmake swig libc6-i386
    sudo pip install -U setuptools pip wheel httpie
    
  • You may need to install some packages from testing like autoconf. Read about Apt-Pinning to know how to do that.

  • Some older toolchains may require 32-bit development versions of packages, e.g. zlib1g-dev:i386

For further instructions, refer to Pull Requests section of CONTRIBUTING.

Usage

Lets start with an example:

git clone https://github.com/SynoCommunity/spksrc.git
cd spksrc/
make setup
cd spk/transmission
make arch-88f6281

What have I done?

  • You cloned the repository
  • Went into the directory of the SPK for transmission
  • Started building the SPK for the architecture 88f6281
    • To list all available architectures use ls toolchains from within the spksrc directory. Remove the prefix syno- to have the actual architecture.
    • An overview of which architecture is used per Synology model can be found on the wiki page `Architecture per Synology model`_

At the end of the process, the SPK will be available in spksrc/packages/

What is spksrc doing?

  • First spksrc will read spksrc/spk/transmission/Makefile
  • Download the adequate toolchain for the chosen architecture
  • Recursively:
    • Process dependencies if any
    • Download the source in spksrc/distrib/
    • Extract the source
    • configure
    • make
    • make install
    • Package all the requirements into a SPK under spksrc/packages/:
    • Binaries
    • Installer script
    • Start/Stop/Status script
    • Package icon
    • Wizards (optional)
    • Help files (optional)

Donate

To support SynoCommunity, you can make a donation to its founder

https://www.paypal.com/en_US/i/btn/btn_donate_LG.gif

License

When not explicitly set, files are placed under a 3 clause BSD license

spksrc's People

Contributors

dr-bean avatar moneytoo avatar cytec avatar zebulon501 avatar diaoul avatar karaokestu avatar manulin44 avatar lost-carrier avatar gaetancambier avatar bru7us avatar kmarty avatar patsissons avatar joenyland avatar seblucas avatar filin20 avatar piejanssens avatar hmflash avatar blackjid avatar maxrogers avatar piwi82 avatar hurik avatar jdel avatar goodomens83 avatar botho avatar terziyski avatar rapiere avatar ffung avatar adrien-delhorme avatar rmsr avatar thunfischbrot avatar

Watchers

James Cloos avatar Bittersweet avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.