Coder Social home page Coder Social logo

eiriklv / spksrc Goto Github PK

View Code? Open in Web Editor NEW

This project forked from synocommunity/spksrc

0.0 2.0 0.0 23.44 MB

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

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

License: Other

spksrc's Introduction

spksrc

spksrc is a cross compilation framework intended to compile and package softwares for Synology NAS

Requirements

To use spksrc, it is recommended to use a virtual machine with an x86 version of Debian stable OS installed. You'll also need some stuff:

sudo aptitude install build-essential debootstrap python-pip automake libgmp3-dev libltdl-dev libunistring-dev libffi-dev ncurses-dev imagemagick libssl-dev pkg-config zlib1g-dev gettext git curl subversion check bjam intltool gperf flex bison xmlto php5 expect libgc-dev mercurial cython lzip
sudo pip install -U pip

You may need to install some packages from testing like autoconf. Read about Apt-Pinning to know how to do that.

You are now ready to use spksrc and make almost all SPKs. If you have any problem, try installing the missing packages on your virtual machine.

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)

Contribute

The only thing you should be editing in spksrc is Makefiles. To make a SPK, start by cross-compiling the underlying package. To do so:

  • Copy a standard cross package like spksrc/cross/transmission/Makefile in your new package directory spksrc/cross/newpackage/
  • Edit the Makefile variables so it fits your new package
  • Empty variables DEPENDS and CONFIGURE_ARGS in the Makefile
  • Try to cross-compile and fix issues as they come (missing dependencies, configure arguments, patches)
    • cd spksrc/cross/newpackage/
    • make arch-88f6281
    • Use make clean to clean up the whole working directory after a failed attempt
  • On a successful cross-compilation create a PLIST file with the same syntax as spksrc/cross/transmission/PLIST but based on the auto-generated PLIST for your new package at spksrc/cross/newpackage/work-88f6281/newpackage.plist

Once you have successfully cross compiled the new package, to create the SPK:

  • Copy a standard SPK directory like spksrc/spk/transmission in your new SPK directory spksrc/spk/newspk
  • Edit the stuff to fit your needs

After all that hard work, submit a pull request to have your work merged with the main repository on GitHub and published in SynoCommunity's repository.

If you are not familiar with git or GitHub, please refer to the excellent GitHub help pages.

Donate

If you like spksrc and packages made out of it, please consider making a donation to his authors:

  • Diaoul

    https://www.paypal.com/en_US/i/btn/btn_donate_LG.gif http://api.flattr.com/button/flattr-badge-large.png
  • moneytoo

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

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

    https://www.paypal.com/en_US/i/btn/btn_donate_LG.gif http://api.flattr.com/button/flattr-badge-large.png

Bugs

If you find a bug please report it in the bug tracker if it has not already been reported. Be sure to provide as much information as possible.

License

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

spksrc's People

Contributors

alucryd avatar blackjid avatar botho avatar bru7us avatar bud77 avatar butcher1982 avatar cytec avatar decipher avatar dr-bean avatar filin20 avatar hmflash avatar inrepublica avatar jborg avatar jdel avatar joelazaria avatar manulin44 avatar moneytoo avatar piwi82 avatar pziggo avatar rapiere avatar redsolo avatar saschpe avatar seblucas avatar simonvanderveldt avatar sschamp avatar styxit avatar tatablack avatar titan04 avatar zaggash avatar zebulon501 avatar

Watchers

 avatar  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.